当前位置 博文首页 > astrotycoon:8086实模式的内存布局

    astrotycoon:8086实模式的内存布局

    作者:[db:作者] 时间:2021-08-17 09:39

    写在前面

    CPU工作原理简单概述

    先来回顾一下现代计算机的组成图,如下:

    CPU是整个计算机的核心,控制着整个计算机的运作。CPU通过三类系统总线与外部设备相连,这三类系统总线分别为控制总线、地址总线和数据总线。


    控制总线

    控制总线主要用来传送控制信号和时序信号。CPU就是利用控制总线来控制外部器件的。控制总线的宽度决定了CPU对外部器件的控制能力。

    数据总线

    数据总线是CPU与内存或其他器件之间的数据传送的通道。数据总线的宽度决定了CPU和外界的数据传送速度。计算机字长是由数据总线宽度决定的。

    地址总线

    CPU利用地址总线来传送地址信息。地址总线的宽度决定了CPU的寻址能力。例如,CPU通过地址总线发送一个地址来读取内存,内存控制器收到后取出那个地址处的值通过数据总线传送给CPU处理。


    进一步,从第一张图片可以得出,CPU内部从逻辑上可以分成三个模块,分别为控制单元、运算单元以及存储单元。

    控制单元(Control Unit)

    控制单元是CPU的指挥中心,它控制着CPU内部任何时刻在发生着什么。它的工作流程可以简述如下:

    1. 提取。从内存或高速缓冲存储器中取出指令。
    2. 解码。指令译码。
    3. 运行。如果有必要,从内存中获取数据。
    4. 写回。将最终的运算结果写回。

    运算单元(Arithmetic Unit)

    运算单元包括算术逻辑运算单元ALU(Arithmetic andLogic Unit)和浮点运算单元FPU(Floating Point Unit)。在控制单元的控制下,可完成加、减、乘、除四则运算和各种逻辑运算。

    存储单元(Storage Unit)

    CPU内部的存储单元其实指的是寄存器组和片内缓存,是CPU中暂时存放数据的地方,里面保存着那些等待处理的数据,或已经处理过的数据。寄存器一般可以分为专用寄存器通用寄存器


    CPU的整体工作流程总结如下

    CPU在时钟脉冲的推动下,根据当前指令指针(instruction pointer)的值从内存或者高速缓冲存储器中检索指令码(instruction code)存入指令寄存器(instruction register)中。接着指令解码器(instruction decoder)将指令码分解成一系列微操作。如果指令执行过程中需要内存数据,则通过地址总线发送地址信息来获取数据。然后发出各种控制命令,命令运算单元对数据进行加工处理,最后暂存处理的结果,从而完成一条指令的执行。


    参考链接:

    《CPU的内部架构和工作原理》

    《处理器是如何工作的》

    《计算机是如何执行程序的》

    《CPU的工作过程》(intel官网)


    CPU的位数跟什么有关?

    大致了解CPU是如何工作的之后,我们来了解下关于CPU的几个相关概念吧!

    可能经常听到别人说CPU的位数,那么CPU的位数到底是由什么决定的呢?还有操作系统的位数,甚至有听到编译器的位数,它们都是由什么决定的呢,彼此之间有什么联系吗?

    首先来搞清楚CPU的位数跟什么有关!

    先给出结论:CPU的位数一般是以min{ALU可以处理数据的位数, 通用寄存器的位数, ?数据总线的宽度}来决定的。也就是说CPU的位数由ALU、通用寄存器、数据总线三者之中最少的位宽决定的。当然了,一般CPU中这三者都是相等的。

    需要强调的一点是,其实CPU的位数与CPU可寻址范围是没有关系的! 例如古老的8086 CPU是16位CPU,因为寄存器都是16位的,但是它的地址总线却有20根,也就是可寻址范围为1M。因此为了可以访问所有的物理内存,8086引入了段寄存器,搞出了奇怪的段寄存器:偏移地址的寻址方式。还比如,同样是AMD64 CPU,现实中可能根据机器的不同而地址总线的大小也是彼此不同的。例如,普通的笔记本,可能地址总线只有36位,PC机有48位,而服务器却有64位,这些都说明了CPU的寻址能力与CPU自身的位数是无关的!

    不过,CPU展现给程序员的虚拟地址空间大小和CPU寻址大小有什么关系吗? 我估计应该是没有什么关系的,具体的还要学习了!

    参考链接:

    《不要再被误导了,64位X86 CPU是没有64位寻址能力的!》

    《32位系统最大只能支持4GB内存之由来》

    《关于CPU位数和操作系统位数》


    参考链接:

    《寻访x86处理器“实模式”和“保护模式”的前世今生》

    cs
    下一篇:没有了