美文网首页From Nand To Tetris 从与非门到俄罗斯方块
33、P1 W5 U5.2 取-执行-再取-再执行(待完善)

33、P1 W5 U5.2 取-执行-再取-再执行(待完善)

作者: shazizm | 来源:发表于2019-08-12 15:06 被阅读0次

    视频:
    如果本次课程对应的 Coursera 的视频打不开,可以点击下面链接
    P1W5U5.2 - The Fetch-Execute Cycle

    基本上CPU就是在循环干两件事:

    1.取 指令 fetch
    2.执行 指令 execute

    取、执行

    一、取 - Fetching

    通过下一条指令的地址,对应找到程序存储区(ROM是存程序的memory)的 寄存器。
    并把指令从对应寄存器取出来。

    Fetching

    而下下条将要执行的指令,是通过Program Counter (PC)里存的地址 来决定取ROM里哪条指令的。

    如下图:
    PC里存的 是 程序存储区(ROM)的 地址。
    通过地址 在程序存储区找到 对应的寄存器。取出CPU将要执行的指令。

    取出的指令 是通过 控制总线(上节提到的c控制位)被传到CPU。

    PC里通常都是当前指令地址加1,跳转由其它命令载入跳转地址

    二、执行 - Executing

    指令主要干下面一些事:

    1.算术或者逻辑运算
    2.访问存储器
    3.跳转指令

    U4.4 HACK的机器语言这节课里讲过,指令都是被具体分成好几块来提供不同的控制。

    指令的执行会涉及 访问寄存器 或者 访问 数据存储区。

    那么详细细节,老师会在接下来的几节课里说命令。

    Executing

    三、取 和 执行,这里有一个冲突问题。

    取指令 (程序区ROM)
    读数据 (数据区RAM)

    两种操作都会用到 存储区,那么控制指令如何区分这种的区别呢?

    解决办法也很简单,就是分两步来执行。先取,再执行。就区分开了。


    12.png

    实际操作的时候,这里 利用了 一个 选择器 Multiplexor,先取指令,存在一个寄存器里。然后在取数据,存在一个寄存器里。最后一起执行。

    Multiplexor

    这种把 程序 和 数据 放在一个 存储器里,并分别处理的架构叫

    哈佛架构

    一种 冯诺依曼架构的 变种。

    避免了复杂化。


    哈佛架构

    这节课有点抽象。
    下节课终于可以具体来实现Hack小电脑了。

    相关文章

      网友评论

        本文标题:33、P1 W5 U5.2 取-执行-再取-再执行(待完善)

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