5 Replies Latest reply on Oct 27, 2015 4:43 PM by Janagewen

    What does EM64T mean?

      The very first time I heard of this name, Intel EM64T, is in 2004, when I was still in college, reading a book on Pentium II/III and IA-32. I was crazy about Intel's own 64-bit extension of IA-32, before I was able to set up a real and physical AMD64 based computer. After diving into the world of AMD64, I found something once familiar with happened to change, and not like the world which I was familiar with when I was in high school living with my Celeron based computer. Last year I found something different accidently, "Intel 64 architecture increases the linear address space for software to 64 bits and supports physical address space up to 46 bits". Here 46-bit address could access a space of 64TB. So EM64T, in my guess, might possibly be Extended Memory to 64TB Technology.


      I think EM64T is a processor feature alongside with PAE, Physical Address(ing) Extention. PAE is a processor feature introduced with Pentium Pro processor, it extends the physical addressing capability to 64GB, but does not change the IA-32 architecture. The memory space above 4GB is just like yesterday's Extended Memory (XM, above 1MB+65,519B). The real mode instructions could not access XM directly, but must be assisted with system routines (included in HIMEM.sys and/or EMM386.exe), bringing back the extra resource to the accessible space (UMA, or other regions within 1MB space) and forward. Similarly, the protected mode instructions could not access the space above 4GB directly, but must be assisted with paging mechanism managed by OS, exchanging the data between within 4GB and above 4GB. Thinking naturally, if instructions could access those extra resources, then its own architecture must be expanded (IA-32e) or extended, to contain the enough processor resource (registers) to access them directly. Then EM64T is just another processor feature, enabling an IA-32 processor to access the memory above 4GB directly, and extending its reach up to 64TB space. 


      The real mode segmentation is that 1MB space is segmented into 65,536 parts, and each part has 65,536 bytes. Some segments overlap each other. When Intel introduced their second generation 16-bit processor, 80286, it softly segments those 16,384 (global and local, vs 65,536 in real mode) parts from 16MB (24-bit) physical space, if none overlap each other, then virtually 1TB (30-bit) space could be accessed. The first 32-bit Intel processor, 80386, untied the laps over those 16-bit segments (in real mode), expanded the registers from 16-bit to 32-bit,  accessing 4GB memory directly without needing further segmentation. But 16,384 segments still existed, each segment had been expanded from 64KB to 4GB, if none overlaps each other, then virtually 64TB (46-bit) space could be accessed. This processor also introduces paging mechanism, it enables a computer equipped with much less than 4GB physical memory to take advantages of this 32-bit architecture. Later introduced with Pentium Pro, PAE feature could also enable 32-bit instructions to access physical memory larger than 4GB indirectly through paging extension. But take care that paging extension is merely a way to implement Physical Address(ing) Extension, because segmenting extension could also softly segment those 16,384 parts from the 64GB or more physical space, similar with it in 80286 system. Well, as is known to us, Intel has their advanced 64-bit architecture, IA-64 or Intel Itanium Architecture. So the needing of 64-bit computing is balanced, for directly accessing physical memory above 4GB, EM64T might need only to untie the laps over those 16,384 segments, so up to 64TB memory could be accessed by IA-32e instructions directly.


      I have no ideas about what Intel's own 64-bit version of IA-32 looks like, but I could never forget all those exciting moments when in college expecting the arrive of Yamhill and third version of Windows XP 64-bit.