8086实模式的内存布局

写在前面

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处理器“实模式”和“保护模式”的前世今生

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值