Hi All, On 6/23/25 08:47, Michael Clark wrote: [snipped]
btw this started as a sketch in a gist in June 20th of last year: https://gist.github.com/michaeljclark/8f9b81e5e40488035dc252c9da3ecc2e # the glyph architecture current: https://metaparadigm.com/~mclark/glyph.pdf latest: https://metaparadigm.com/~mclark/glyph-20250622.pdf a clean-slate, portable virtual machine designed for efficient binary translation to X86 system mode targeting features like SMAP, SMEP, APIC, TSC, and PCI-style message signaled interrupts, with a system model that favors simplicity e.g., only supervisor/user modes and no interrupt delegation. the fundamental architectural design elements, such as the variable length instruction packet format and split instruction and constant streams are in place, the 16-bit compressed opcodes are fully specified, and there is now the beginnings of a system or protected mode. yet there is still a lot of work for it to virtualize a target like X86+AVX-512 with address translation. ## address translation adopts a page table format designed for shadow paging on X86. the page translation system has a physical address permission check feature and adds PTE.T (translate bit) for optional hardware zoning of translation pages. in addition to virtual memory, the translation system performs optional per-page physical permission checks, and physical self-mapping validation with zoning for PTE pages that have the PTE.T bit set. the architecture introduces the concept of a translation address which are addresses boxed with an address space prefix (AS) designed to provide a canonical address form for user and supervisor virtual addresses as well as physical addresses, to make it easier to implement meta-circular emulation for nested page translation with translation agnostic source and destination address spaces.
there were some errata related to the spec yesterday but the bones and intention is there. as I haven't seen page tables deployed in this way to check self maps in a physical tree; and the primary intent, which is to set permission for PTE zones and page table page monitoring. so there may be some more bugs when we try to test it out in a simulator. - https://github.com/michaeljclark/glyph/ - https://metaparadigm.com/~mclark/glyph-20250623.pdf errata: - swap the supervisor and physical address space prefixes to be consistent with Linux kernel address space on x86-64. - physical permission self-mapping check is only on leaf entries - fix rename P bit to T bit in 64-bit page table entry structure turns out that if we add an 'internal' AS it would be ..FFFE0000.. so we could think about adding an internal address space prefix. Michael.