前言

 

 

上一篇我们了解了x86-16 CPU计算机的内存访问方式,寻址方式,以及基于MS-DOS的应用程序的内存布局。这一篇会主要介绍32位处理器的内存访问,内存管理以及应用程序的内存布局。虽然目前64位CPU已经非常普及了,不过相对于32位的内存管理方式并没有大的变化,而32位相对于16位却有了极大的改变。

 

 

1.  IA-32 CPU

 

1985年10月。Intel推出了80386 CPU 用来取代之前x86-16位的架构,一直到现在差不多块20年的时间里,虽然处理的速度,制造工艺都在不断提升,但x86-32的架构都没有大的改变。一般我们说的IA-32, I386和x86-32是一个意思。

从80386开始,地址线变为了32位,和CPU寄存器以及运算单元位数一样,最大寻址范围增加到4G。所以在也不会出现16位CPU时访问内存出现的问题。另外80386处理器都可以支持虚拟存储器,支持实模式,保护模式和虚拟8086模式,支持多任务。 而之后的CPU,主要的改进就在于:

  1. CPU内部集成DMA,计数器,定时器等;
  2. 制造工艺的提示,更多的晶体管,更快的速度
  3. 加入更多的指令集,如MMX,SSE,SSE2等
  4. 集成L1,L2,L3高速缓存,减少外部总线的访问
  5. 超线程,多核心提高CPU效率

但是在内存管理访问,却没有太大的变化,所以我们后面介绍的内容基本上可以试用所有的x86-32 CPU而不用特意去区分那个型号的CPU。

继续阅读