为什么现在使用多周期CPU,而单周期CPU被弃用?
最初设计的CPU结构简单,内部不复杂。之所以制造它是为了让机器自动跑程序,算数。
早期CPU都是单周期的,人们没考虑那么多,性能啥的。就让CPU每个时钟周期跑一个指令,这些时钟周期等长。这样下来,有的指令跑完耗时长,有的指令跑完耗时短, 而CPU是走完一条指令再处理下一条的,给每个指令的时钟周期都是相同的,那么木桶原理,时钟周期肯定就是耗时最长的指令所需的时间。后来人们意识到了计算机的巨大威力,便开始专心制造更强的电子计算机。这时,为了提升CPU的速度,优化CPU的结构,有人设计了一套多周期CPU结构。对指令集的所有指令作分析,可以发现它们处理过程有相同的地方,那这下好了,我把所有的指令切成几段基本操作(换句话说,所有的指令都可以看成是几个基本操作的序列组成),例如:指令1可以看成{opA——>opC——>opV},指令2可以看成{opA——>opK——>opV——>opT}。然后让时钟周期适配op,而不是单条指令。每个指令需要多个周期(周期值较小)。这里的多周期CPU依然是逐条执行每个指令。下图为一个多周期CPU的控制器状态自动机。

举例对比上面所述单周期CPU和多周期CPU的耗时:
CPU的指令集Ins中有多条指令,指令4耗时最长,执行一次它需要800ps。
单周期CPU的时钟周期最少设为800ps。此时假如我们要执行指令1,2,3,4,5,6,那么总共耗时6x800ps=4800ps。
多周期CPU,分别可以把指令123456分解为3个op,2个op,4个op,8个op,3个op,5个op。每个op延时为100ps。那么假如我们要执行指令1,2,3,4,5,6,则总共耗时为(3+2+4+8+3+5)x100ps=2500ps。
这样一对比多周期CPU相较于单周期CPU的优势是不是很明显啦。
在这之后,有人发现了上面所说的多周期CPU还可以改进优化提速,他把流水线的思想拿到了CPU设计上,允许指令并行执行,这样一来速度又得到了提升。现在的CPU基本都是使用流水线技术设计的CPU。
为什么现在使用多周期CPU,而单周期CPU被弃用?的更多相关文章
- verilog实现的16位CPU单周期设计
verilog实现的16位CPU单周期设计 这个工程完成了16位CPU的单周期设计,模块化设计,包含对于关键指令的仿真与设计,有包含必要的分析说明. 单周期CPU结构图 单周期CPU设计真值表与结构图 ...
- 单周期CPU设计的理论基础
写在前面:本博客内容为本人老师原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法UR ...
- 单周期CPU设计
终于有点时间了,恰好多周期的设计也已经完成,其实只想写写多周期的,无奈单周期补上才好,哈哈哈~ —————+—————黄金分割线—————+————— 首先要理解什么叫单周期CPU(与后面多周期CPU ...
- 单周期cpu设计代码解读
目录 写在前面 单周期cpu设计代码讲解 概念回顾 Verilog代码讲解 写在前面 欢迎转载,转载请说明出处. 单周期cpu设计代码讲解 概念回顾 一.电子计算机的部件 分为:中央处理器(cpu). ...
- P4-verilog实现mips单周期CPU
最近对学习的掌控可能出现了问题,左支右绌,p2挂了,p2.p3.p4.p5每周在计组花的连续时间少了很多,学习到的东西也少了很多,流水线都还没真正开始写,和别人比落后了一大截,随笔自然就荒废了,我得尽 ...
- 单周期CPU
一个时钟周期执行一条指令的过程理解(单周期CPU): https://blog.csdn.net/a201577F0546/article/details/84726912 单周期CPU指的是一条指令 ...
- 使用logisim搭建单周期CPU与添加指令
使用logisim搭建单周期CPU与添加指令 搭建 总设计 借用高老板的图,我们只需要分别做出PC.NPC.IM.RF.EXT.ALU.DM.Controller模块即可,再按图连线,最后进行控制信号 ...
- 使用Verilog搭建一个单周期CPU
使用Verilog搭建一个单周期CPU 搭建篇 总体结构 其实跟使用logisim搭建CPU基本一致,甚至更简单,因为完全可以照着logisim的电路图来写,各个模块和模块间的连接在logisim中非 ...
- Verilog单周期CPU(未完待续)
单周期CPU:指令周期=CPU周期 Top模块作为数据通路 运算器中有ALU,通路寄存器(R1.R2.R3.R4),数据缓冲寄存器(鉴于书上的运算器只有R0)........... 此为ALU和通用寄 ...
随机推荐
- [考试反思]0807NOIP模拟测试14:承认
一大排并列Rank#9之一. 考试题还没改完(而且并不会模拟退火)所以题解又只能咕了 然而并不想吐槽T2对sjzyz是原题导致4个AC里面有3个他们的 虽说这次的成绩不怎么样,但是这次的考试过程是全新 ...
- NOIP模拟 36
又是sb错误丢rank1... T1加了一句特判,暴涨80分... 要不要这么残忍...我暴力其实打的很满的好吗QAQ T1 暴力写成$while(lim[j].id==i)$少写的特判是$(j< ...
- 05 MySQL之查询、插入、更新与删除
01-查询数据 语法格式: select * | 字段列表 from 表1, 表2 where 表达式 group by ... having ... order by ... limit .. # ...
- Appium+python自动化(三十九)-Appium自动化测试框架综合实践 - 代码实现(超详解)
简介 经过一段时间的准备,完善的差不多了,继续分享有关Appium自动化测试框架综合实践.想必小伙伴们有点等不及了吧! driver配置封装 kyb_caps.yaml 配置表 参考代码 platfo ...
- win7 安装php插件imagick
win7 安装php插件imagick <h2>安装步骤:</h2><h2><a name="t1"></a> ...
- php imagick设置图片圆角的方法
php imagick设置图片圆角的方法 <pre>header('Content-Type: image/png'); $image = new Imagick('http://stat ...
- html与css连接代码
demo01.html: <!DOCTYPE html><html> <head> <meta charset="utf-8"> ...
- MySql——创建数据表,查询数据,排序查询数据
参考资料:<Mysql必知必会> 创建数据表 在学习前首先创建数据表和插入数据.如何安装mysql可以看看上个博客https://www.cnblogs.com/lbhym/p/11675 ...
- hdu 1171 Big Event in HDU (01背包, 母函数)
Big Event in HDU Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- 深入理解Kafka必知必会(2)
Kafka目前有哪些内部topic,它们都有什么特征?各自的作用又是什么? __consumer_offsets:作用是保存 Kafka 消费者的位移信息 __transaction_state:用来 ...