C专家编程 第7章 对内存的思考 7.1 Intel 80x86系列

Intel 80x86系列
Intel总是能够及时提供向后兼容的处理器。可兼容性使用户更容易升级到新的芯片,但这也严重限制了芯片的革新。
现代的Pentium处理器就是15年前Intel8086处理器的直接后代,它存在许多架构上的不规整性,目的就是为了与8086保持向后兼容(在8086上编译的程序可以直接在Pentium上运行)

Intel 4004是一个4位的微控制器(开创事业) 
Intel 8008是一个8位的微控制器,这是第一片性能强大到可以称其为微处理器的芯片。 (带来财富)(通用目的设计)
8085处理器充分利用了芯片整合技术,它将3块芯片整合组合成一块。在本质上,它是把8080处理器、8224时钟驱动器、8228控制器整合到一块芯片上。虽然它内部的数据总线宽度仍然是8位,但它使用了16位的地址总线,所以能够访问2^16也就是64KB的内存。
8086处理器于1978年诞生,它对8085做了改进,允许16位的数据总线和20位的地址总线,可以访问多达1MB的内存(这在当时是一个非常惊人的数字)。这块芯片采用了一个非比寻常的设计决定,它通过重叠两个16位的字来形成20位的地址,而不是通过简单地链接两个字来形成32位的地址。8086在指令集一级上与8085不兼容,但汇编程序宏(assembler macro)可以容易把原来的程序转移到新的芯片上来。

16位值加上......               15...0
经过移位的16位值         +  15...0 
产生一个20位的地址       19...0
第一个16位值可称为“偏移量”,第二个偏移量移位后称为“段”,8086芯片有4个段寄存器,用于存储地址的值,并能自动进入移位和加法操作来产生20位的地址。
8086有代码寄存器CS,数据寄存器DS和堆栈寄存器SS,分别存放代码段、数据段和堆栈段的首地址,另外还有一个附加段ES。从编译器作者的角度看,这些是非常有用的。(保持豪门的位置) 
80286差不多就是80186(只是内置了一些微不足道的外设端口支持),但它第一次试图扩展内存空间。它把内存控制器移到处理器芯片的外面,并提供了一种野心勃勃的内存模式,称为虚拟模式(virtual mode)。在虚拟模式中,段寄存器并不与偏移地址相加,而是为一个存放实际段地址的表提供索引。这种地址模式也被称作保护模式(protected mode),它依然是16位的。

80386在80286的基础上增加了两种新的地址模式:32位的保护模式和虚拟的8086模式。
另一种内存模式(虚拟的8086模式)可以创建一种内存空间为1MB的8086虚拟机。几个虚拟机可以同时运行,从而支持MS-DOS的虚拟多任务系统。它们中的每一个都认为自己运行于自己的8086处理器上。
上述所有这些处理器都可以附加协处理器,通常用于实现浮点数的硬件支持。
80486适当地增加了一些指令,并在处理器内部集成了cache(高速的处理器内存),其余部分的性能提高主要应归功于它。
Intel连续推出新芯片的格言就是“要么更快,要么灭亡”。

你可能感兴趣的:(C专家编程,c语言,开发语言,c++)