PowerPC segmentation model
Posted: Thu Dec 20, 2012 8:10 am
After reading some PowerPC manuals, here are what I understand about PowerPC segmentation model:
Program access memory by a 32-bit address called effective address. An effective address has two parts, a 4-bit segment selector and a 28-bit offset. So each segment is fixed size, 256 MB. This effective address is converted to a 52-bit virtual address. The convert process as follow:
From 4-bit segment selector, the processor will choose 1 segment register (SR) from total 16 SRs. So this segment selector is same as segment prefix in an instruction of Intel ISA. SR contain a 24-bit base of the segment in virtual address space, which is called Virtual Segment ID (VSID). VSID is concatenated with the 28-bit offset in effective address to form 52-bit virtual address.
So in basic, PowerPC has a 52-bit address space but you can only access it by 256 MB windows (segments). Therefore, this segmentation model isn't similar to 80386 model but 8086 model, which has a 20-bit address space but can only access by 64 KB segments. Am I correct?
By the way, are there another ISA which use segmentation model?
Program access memory by a 32-bit address called effective address. An effective address has two parts, a 4-bit segment selector and a 28-bit offset. So each segment is fixed size, 256 MB. This effective address is converted to a 52-bit virtual address. The convert process as follow:
From 4-bit segment selector, the processor will choose 1 segment register (SR) from total 16 SRs. So this segment selector is same as segment prefix in an instruction of Intel ISA. SR contain a 24-bit base of the segment in virtual address space, which is called Virtual Segment ID (VSID). VSID is concatenated with the 28-bit offset in effective address to form 52-bit virtual address.
So in basic, PowerPC has a 52-bit address space but you can only access it by 256 MB windows (segments). Therefore, this segmentation model isn't similar to 80386 model but 8086 model, which has a 20-bit address space but can only access by 64 KB segments. Am I correct?
By the way, are there another ISA which use segmentation model?