• 小海海
    2019-06-07
    (手滑点了保存,接上条)无条件跳转意味着没有计算的逻辑,应该是可以不经过ALU的,但是要控制器把PC设置成跳转后的指令地址,不知我理解的对不对🤣

    作者回复: 小海海同学你好,

    回答正确😀

    
     7
  • 小海海
    2019-06-07
    @陈华应 我的理解无条件跳转就是goto,是没有比较结果的

    作者回复: 👍

    
     3
  • 鱼向北游
    2019-06-11
    应该是无条件跳转没有cmp吧

    作者回复: 鱼向北游同学,你好

    cmp是一条单独的指令,和跳转是否是有条件的没有关系。无条件跳转不需要检查条件码寄存器哦。可以想想这样的话,在硬件上有什么区别呢?

    
     2
  • humor
    2019-06-10
    一个指令的执行想用多少个时钟周期都可以吗?

    作者回复: humor同学你好,

    一个指令需要的时钟周期是固定的,并不是多少个都可以啊。

     1
     1
  • 南山
    2019-06-07
    无条件跳转不需要依赖于比较结果吗?

    作者回复: 既然是“无条件”了,当然不依赖比较结果啦。

    
     1
  • HardToGiveaName
    2020-01-21
    老师,对于图1的PC计数器,有个疑问,如果图中的D触发器,是电平触发的,那CLK置1的时间段内,
    触发器输出->加法器+1->触发器输出...... 应该一直进行该循环计算并自增,只有当D触发器是 沿触发的,才会在时钟上升沿只加1次,不知道理解是否有误

    作者回复: HardToGiveaName同学,

    你好,这样理解没有问题

    
    
  • 许先森
    2020-01-09
    老是您好有个问题:
    文章说:cmp 指令的执行结果放到了条件码寄存器里面,我们的条件跳转指令也是在 ALU 层面执行的,而不是在控制器里面执行的。这样的实现方式在电路层面非常直观,我们不需要一个非常复杂的电路,就能实现 if…else 的功能。
    但是else中是jmp指令,也就是无条件跳转,实际是不经过ALU的,而是控制器直接执行的。上文中所说是否有问题?

    作者回复: 许先森同学,

    你好,抱歉我可能没有太理解清楚你的问题,你说的具体的问题是指哪个?

    
    
  • wei
    2019-11-30
    老师好,“加法器的两个输入,一个始终设置成 1,另外一个来自于一个 D 型触发器 A。我们把加法器的输出结果,写到这个 D 型触发器 A 里面。于是,D 型触发器里面的数据就会在固定的时钟信号为 1 的时候更新一次。” 这里我明白,为什么时钟信号为 1 的时候只会更新一次,而不是两次或更多次?
    
    
  • 寒玉
    2019-11-07
    一个周期执行多条指令和java里面的多线程意思上是一样的吗?
    
    
  • Im Robin
    2019-10-31
    老师你好,有一个问题很困惑,PC寄存器自动加1,我怎么感觉应该是自动加指令字节数啊,这样寄存器里才能存下一个指令的起始地址,如果PC寄存器里只是数值,那么程序如何从PC寄存器中取出指令地址呢,麻烦老师给予解答,谢谢
    
    
  • Im Robin
    2019-10-30
    老师你好,看了好几遍也没理解下面这句,我理解时钟周期(机器时钟)是固定值,也就是1/主频,在这样的语境下,想实现一个时钟周期内执行一个任意的CPU指令,我感觉是不可能的事情,能否帮忙解惑,谢谢
    ——————————————————————————
    在这种设计下,我们需要在一个时钟周期里,确保执行完一条最复杂的 CPU 指令,也就是耗时最长的一条 CPU 指令。这样的 CPU 设计,我们称之为单指令周期处理器(Single Cycle Processor)。
     1
    
  • 随心而至
    2019-10-15
    真的是深入浅出,赞
    
    
  • 活的潇洒
    2019-09-01
    “怎样通过连接不同功能的电路,实现出一个完整的CPU” 讲的真好
    day19 笔记:https://www.cnblogs.com/luoahong/p/11431367.html
    
    
  • 业余爱好者
    2019-08-27
    流水线让我想起了大学时的一门选修课———项目管理
    
    
  • 小先生
    2019-08-14
    为什么我们的 if…else 会变成这样两条指令,而不是设计成一个复杂的电路,变成一条指令?到这里,我们就可以解释了。这样分成两个指令实现,完全匹配好了我们在电路层面,“译码 - 执行 - 更新寄存器“这样的步骤。

    请问老师这段话,是什么意思,还是没看懂。
     2
    
  • 张立昊Leon
    2019-07-01
    还记得当年数电考试分还挺高的,不知道有啥用。后面就直接学c++,嵌入式系统之类的课程,跳过了中间的计算机组成,操作系统之类的东西,万恶的电气系学科体系...嵌入式系统当时学得完全不知所云,也极大的损害了我对这些东西的兴趣,今天在这里总算补学了一些重要的东西啊
    
    
  • Geek_54edc1
    2019-06-25
    因为无条件跳转不需要访问条件码寄存器,而且地址跳转就是一个直接寻址的过程,因此不需要通过运算器和ALU
    
    
  • -W.LI-
    2019-06-22
    老师好!无条件调整,直接把跳转过去的指令跟在当前指令后面可以么?变成顺序的。
    D触发器感觉用处很大啊,存储相关的都可以通过它实现,寄存器的速度比内存快很多,和硬件实现有关系么比如D触发器比CMOS快?
    高速缓存使用触发器实现的还是CMOS啊?
    
    
  • -W.LI-
    2019-06-22
    老师好,读取数据的那个寄存器就是。当前指令地址+指令长度。每次就能取到下一条指令了是吧?这里的内存地址都是虚存地址么?物理内存很容易就不连续吧。特别是那种动态申请内存的。还是说Java这样的编程语言,编译后的机器码就是在物理内存里顺序存储的?
    
    
  • 许童童
    2019-06-07
    《编码:隐匿在计算机软硬件背后的语言》这本书这几天看完了,写得真是很不错。希望老师再多推荐一些好看的书。
    
    
我们在线,来聊聊吧