当前位置 博文首页 > jtwqwq的博客:Crash Course(4)

    jtwqwq的博客:Crash Course(4)

    作者:[db:作者] 时间:2021-08-19 09:55

    由于7、8、9集实在太难,分为三个板块,且慢慢整理
    7.中央处理器
    我们已经做了一个算术逻辑单元ALU,输入二进制它会执行计算。
    寄存器:小内存,能存一个值
    RAM:大内存,能在不同地址存大量数字
    CPU负责则执行程序。程序由一个个操作组成,这些操作叫指令(instruction),他们指示计算机要做什么。
    如果是数学指令(如±),CPU交给ALU来进行数学运算
    也可能是内存指令,CPU会和内存通信,然后读/写值
    建造过程中我们把重点放在功能上。当我们用一条线连接两个组件时,这条线只是所必须线路的一个抽象,这种高层次视角叫“微体系架构”
    首先需要一些内存(上节课造的RAM)

    寄存器用来临时存数据和操作数据
    程序可以像数据一样被存在内存里

    在这个假设的例子里,我们用前四位存“操作代码”(operation code)简称“操作码”(opcode)
    后四位表示数据来自哪里,(可以是寄存器或者内存地址)
    我们还需要两个寄存器来完成CPU
    第一个寄存器追踪程序运行到哪里了,我们叫它“指令地址寄存器”(instruction address register)存当前指令的内存地址
    另一个寄存器存当前指令,叫”指令寄存器”(instruction register)
    当我们启动计算机时,所有寄存器从0开始
    CPU第一阶段:取指令阶段(fetch phase)负责拿到指令。首先,将指令地址寄存器连接到RAM。
    因为寄存器的值为0,所以RAM返回地址0的值。
    然后上图中0 address地址对应的数据0010 1110会复制到指令寄存器中
    第二阶段:解码阶段(decode phase)
    拿到了指令,我们要知道指令是什么才能执行(execute)

    前四位是0010 LOAD_A指令,意思是”把RAM的值放入寄存器A”
    而后四位1110是RAM的地址。
    接下来,指令由“控制单元”进行解码
    (控制单元也是有逻辑门组成的。比如为了检查输入是不是0010的电路如下图 )
    执行阶段(execute phase)
    用刚刚的“检查是不是LOAD_A指令”的电路,我们可以打开RAM的允许读取线,把地址14传过去

    最后一步是把指令地址+1
    指令完成了!我们可以关掉所有线路去拿下一条指令了。
    LOAD_A只是CPU可以执行的各种指令之一。不同的指令由不同的逻辑电路解码,这些逻辑电路会配置CPU内的组件来执行对应操作。

    简化
    (后四位是指针,指向内存位置)

    控制单元负责选择正确的寄存器作为输入,并配置ALU执行正确的操作。
    对于“ADD”指令,“控制单元”会启用寄存器B,作为ALU的第一个输入;A作为ALU的第二个输入
    因为ALU可以执行不同的操作,所以控制单元必须传递ADD操作码告诉ALU它要做什么
    最后,结果应该存到寄存器A(但是不能直接写入寄存器A,这样新值会进入ALU,不断和自己相加)
    因此,控制单元用一个自己的寄存器暂时保存结果,关闭ALU,然后把值写入正确的寄存器

    和之前一样,最后一件事是指令地址+1

    刚刚我们是一步步讲的,我们人工切换CPU的状态“取指令-解码-执行”其实是“时钟”来负责CPU的节奏。
    时钟以精确的间隔触发电信号;控制单元会用这个信号推进CPU的内部操作,确保一切按步骤进行。(就像拔河时喊号子一起一样)
    因为就算是电也需要一定的时间传输,CPU“取指令-解码-执行”的速度叫“时钟速度”(clock speed)单位是赫兹,是表示频率的单位。(1HZ代表一秒一个周期)人最快也只能1赫兹
    第一个单芯片CPU是“英特尔4004”1971年发布的四位CPU,结构虽然简单,时钟速度达到了740千赫兹。
    如今的处理器:电脑手机有几千兆赫兹(1兆=100万)
    把计算机超频:加快时钟速度。芯片制造商通常给CPU留一些超频的余地。但是会过热或产生乱码,因为信号跟不上时钟。
    降频:当不需要CPU火力全开的时候使用,可以省电
    很多现代处理器都可以按照需求超频/降频,这叫“动态调整频率”

    左边:CPU
    右边:RAM
    中间用“地址线”“数据线”“允许读/写线”进行通信
    尽管我们现在学到的CPU是简化的,但是很多机制仍然存在于现代处理器中。

    cs
    下一篇:没有了