The IA Software Developer's Manual有三卷:
Volume 1:
describes the basic architecture and programming environment of an IA processor;
[第一卷描述基本结构和IA处理器的编程环境]
Volume 2:
describes the instruction set of the processor and the opcode structure.
[第二卷描述指令集和操作码结构]
Volume 3:
describes the operating-system support environment of an IA processor, including memory management, protection, task management, interrupt and exception handling, and system management mode. It also provides IA processor compatibility information. This volume is aimed at operating-system and BIOS designers and programmers.
[第三卷描述IA cpu对OS环境的支持,包括内存管理,保护模式,任务管理,中断和异常处理,以及系统管理方式。并且它也提供IA cpu 的兼容信息。这一卷的目的在于操作系统和BIOS设计人员和系统编程人员。
]
IA处理器简要历史:
8086:
真正的t第一个IA处理器是8086: 16-bit registers and a 16-bit external data bus, with 20-bit addressing giving a 1-MByte address space.
即8086使用16位寄存器,16位外部数据总线,20位地址总线,1MB地址空间 (1M=2^20Byte)
显然,对于20位的地址空间,一个寄存器寻址是不可能做到的 (2^16<2^20)..那么:These processors introduced IA segmentation, but only in “Real Mode”; 16-bit registers can act as pointers to address into segments of up to 64 KBytes in size. The four segment registers hold the (effectively) 20-bit base addresses of the currently active segments; up to 256 KBytes can be addressed without switching between segments, and a total address range of 1 MByte is available.
IA引入了”段“机制 ,但是只运行于实地址模式下。一个作为指针的16位寄存器在一个段内可指向64位地址空间。因此,对于一个活动”段“,可指向256(=4*64)MB的地址空间(因为一个活动”段“包含四个段...cs,ds,es,ss......
80286: 24位地址总线。
引入了保护机制 。 This new mode uses the segment register contents as selectoror pointers into descriptor tables.
这种机制把段寄存器作为 选择器(指针),指向描述符表.
The descriptors provide 24-bit base addresses, allowing a maximum physical memory size of up to 16 MBytes, support for virtual memory management on a segment swapping basis, and various protection mechanisms. These include segment limit checking, read-only and execute-only segment options, and up to four privilege levels to protect operating system code (in several subdivisions, if desired) from application or user programs.
这些描述符有24位基址 ,因此允许最大寻址16MB. 并且在硬件上支持段交换,虚拟内存管理和保护机制。包括段限制检查,只读,只执行,以及4个不同级别的权限。
并且,80286也引入了局部描述符。
80386: 引入32位寄存器,可用于寻址和对操作数计算。
并且,它可虚拟(多个)8086处理器。
386扩展成32位地址总线,32位外部数据总线,每个段有最大4G寻址空间。
386将16位的指令扩展为可处理32位地址和数据指令,并支持位操作。
重要的是,386引入了页式机制来支持虚拟内存的管理.
正是因为 页式机制和 段的4G物理寻址, 使”flat“出现,并由此而产生了UNIX系统..
the Bus Interface Unit
the Code Prefetch Unit
the Instruction Decode Unit
the Execution Unit
the Segment Unit
the Paging Unit
80486:
主要加了以下几个功能:
新加芯片支持笔记本电源管理(被它独有的中断芯片支持),停止时钟,自动关闭电源或关机。。。。
Pentium:
allow for 4-MByte as well as 4-KByte pages.
外部数据总线64位,内部数据总线为128或256位.
另 APIC:高级可编程中断控制器....the Advanced Programmable Interrupt Controller
并且支持双CPU
Pentium® Pro: 36位地址总线。。。
引入动态执行技术。
has an expanded 36-bit address bus, giving a maximum physical address space of 64 GBytes.