美文网首页
汇编二、CPU

汇编二、CPU

作者: fanren | 来源:发表于2018-04-21 15:35 被阅读0次

    总线

    总线的定义

    每一个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地址总线的宽度限制,8086的地址总线宽度是20,可以定位2^20 个不同的内存单元(内存地址范围0x00000~0xFFFFF),所以8086的内存大小是1MB;
    • 0x00000~0x9FFFF:主存储器。可读可写
    • 0xA0000~0xBFFFF:向显存中写入数据,这些数据会被显卡输出到显示器。可读可写
    • 0xC0000~0xFFFFF:存储各种硬件\系统信息。只读

    寄存器

    15193738988252.jpg

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

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

    高速缓存

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

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

    相关文章

      网友评论

          本文标题:汇编二、CPU

          本文链接:https://www.haomeiwen.com/subject/xjpxlftx.html