汇编二、CPU

总线

汇编二、CPU_第1张图片

总线的定义

每一个CPU芯片都有许多管脚,这些管脚和总线相连,CPU通过总线跟外部器件进行交互
总线实际上就是一根根导线的集合

总线的分类

  • 地址总线
    • CPU通过地址总线,向内存中传递要处理的数据的地址
    • 它的宽度决定了CPU的寻址能力

宽度:地址总线的宽度就是传递地址的导线的个数;每根导线不是传递0就是1,所以地址总线的宽度,决定了要传递的二进制位的位数,也就是能找到地址的最大值,即寻址能力;
8086的地址总线宽度为20,能传递20位二进制位,所以最大能传递的地址值是2^20, 所以它的寻址能力是2^20(1M);

  • 数据总线
    • CPU通过数据总线,与内存进行数据的传递(写入数据,取出数据);
    • 它的宽度决定了CPU的单次数据传送量,也就是数据传送速度;
    • 我们平常说的32位、64位就是数据总线的宽度;

宽度:数据总线宽度就是传递数据的导线的个数,每根导线只能传递一个二进制位;导线的个数,就是每次可以传递二进制的位数;导线越多,每次传递的二进制位越多,即每次传递的数据越多;所以总线的宽度,也就是单次数据传送量(数据吞吐量);
例如:8086的地址总线宽度是16,有16根导线,每次传输数据,只能传输16位二进制位,即2个字节;
arm64第地址总线宽度是64,有64根导线,每次传输数据,可以传输64位的二进制位,就是8个字节;
如果要传递8个字节,8086需要传4次,而arm64只需要传一次;

  • 控制总线
    • 它的宽度决定了CPU对其他器件的控制能力、能有多少种控制
  • 小练习

1.一个CPU 的寻址能力为8KB,那么它的地址总线的宽度为____.
2.8080,8088,80286,80386 的地址总线宽度分别为16根,20根,24根,32根.那么他们的寻址能力分别为多少____KB, ____MB,____MB,____GB?
3.8080,8088,8086,80286,80386 的数据总线宽度分别为8根,8根,16根,16根,32根.那么它们一次可以传输的数据为:____B,____B,____B,____B,____B.
4.从内存中读取1024字节的数据,8086至少要读____次,80386至少要读取____次.

  1. 13
  2. 64KB, 1MB, 16MB, 4G
  3. 1B, 1B, 2B, 2B, 4B
  4. 512, 256

总线的工作过程

汇编二、CPU_第2张图片

汇编二、CPU_第3张图片

内存

汇编二、CPU_第4张图片

汇编二、CPU_第5张图片
  • 内存地址的大小受CPU地址总线的宽度限制,8086的地址总线宽度是20,可以定位2^20 个不同的内存单元(内存地址范围0x00000~0xFFFFF),所以8086的内存大小是1MB;
  • 0x00000~0x9FFFF:主存储器。可读可写
  • 0xA0000~0xBFFFF:向显存中写入数据,这些数据会被显卡输出到显示器。可读可写
  • 0xC0000~0xFFFFF:存储各种硬件\系统信息。只读

寄存器

汇编二、CPU_第6张图片
15193738988252.jpg

CPU的运算速度特别快,为了性能CPU在内部开辟了一小块临时的存储存储区域,并在进行运算时,先将数据从内存复制到这一小块临时区域中,运算时就在这一小块临时区域中进行,我们称这块区域为寄存器;

  • CPU除了有控制器、运算器还有寄存器
  • 寄存器的作用就是进行数据的临时存储
  • 对程序员来说,CPU中最主要部件是寄存器,可以通过改变寄存器的内容来实现对CPU的控制;
  • 不同的CPU,寄存器的个数、结构是不相同的;

高速缓存

CPU每执行一条指令前都需要从内存中将指令读取到CPU内并执行。而寄存器的运行速度相比内存读写要快很多。为了性能,CPU还集成了一个高速缓存存储区域.当程序在运行时,先将要执行的指令代码以及数据复制到高速缓存中去(由操作系统完成)。CPU直接从高速缓存依次读取指令来执行。

  • iPhoneX上搭载的ARM处理器A11它的1级缓存的容量是64KB,2级缓存的容量8M。

你可能感兴趣的:(汇编二、CPU)