IT铁人
Clock Cycle Time又称为时脉周期,代表电脑里面计时器一个Cycle的时间。在上一回的内容中,我们将CPU组装起来,这时候所有的零件连接在一起,代表要做完所有步骤才会轮到下一个指令,所以一个Cycle的时间就要订成最长的指令时间,也就是说假设每个指令需要的时间为:
指令类型 | 时间 |
---|---|
R-type | 400ps |
Load word | 600ps |
Store word | 550ps |
Branch | 350ps |
Jump | 200ps |
那麽我们就要挑最长的600ps当作一个Cycle的时间。
那麽每600ps我们就只能完成一个指令,太慢了。
假设现在有四个人要洗衣服,步骤有洗衣服 30min、烘衣服 40min、摺衣服 20min,如果大家轮流做,并且全部做完才轮到下一个人,那麽就会发生:
不仅时间会拖很久,中间洗衣机及烘衣机都会有很大的时间处於闲置状态,如果我们能够让机器在闲置的时候就交给下一个人使用,那麽时间轴就会变成:
如此一来就可以大幅减少时间,这就是Pipeline的观念,将过程拆成多个Stage来执行,前一个Stage结束後就交给下一个指令进行该Stage。
对於MIPS我们拆成5个Stage,分别为
Stage缩写 | 全名 | 作用 |
---|---|---|
IF | Instruction Fetch | 取得指令 |
ID | Instruction Decode & Register Read | 指令解码和读取Register |
EX | Execution or Address Calculation | 执行或位址运算 |
MEM | Data Memory Access | 记忆体读取 |
WB | Write Back | 写回Register |
以下用5个Stage划分了Datapath:
由於每个阶段做完不会刚好能马上进行下一阶段,可能发生该Stage已经做完但下一个Stage尚未执行完,所以我们需要在中间加入Pipeline Register来暂时存取前一个结果,加上去後的结果如下图:
如此一来我们能够更快速的执行多个指令,并且一个Cycle的时间也可以取最久的步骤即可,不用取所有的过程,用数字来讨论的话就是:
假设每个步骤的时间为:
IF ID EX MEM WB > 300ps 400ps 350ps 500ps 100ps 如此一来我们的Cycle Time要取500ps,那麽执行一个指令过了五个步骤後,耗费时间为:
500 x 5 = 2500ps
假设我们用原先一个Cycle执行一个指令,以R-type来说,不会用到MEM部分,所需时间为:
300 + 400 + 350 + 100 = 1150ps虽然看起来Pipeline比较久,不过如果把指令数量放大来看,假设两边都有N个R-type指令:
对於Pipeline来说,除了最前面4个Cycle没有完成指令外,後面每个Cycle各完成了一个指令,时间为:500 x 4 + 500 x N (ps)
对於没有Pipeline来说,时间为1150 x N (ps)
假设N趋近无限大,Pipeline速度会是Non-Pipeline的两倍以上。
对照前面的图会发现今天的图片还没有Control Unit,接下来就要讨论到了。
上一篇的datapath | 今天的 |
---|---|
Control Unit要注意的是,在Control Unit判断的事项,可能在後面的Stage才会用到,比如说Register, Memory是否要写入,ALUop的值是多少等等,所以这些Control bits也要塞进去Pipeline Register中,一个Stage一个Stage的传下去,最後的结果会像是这样:
够难了吧~不过这还不够,因为Pipeline还会有另一个问题等着我们去解决,那就是Hazard。这部分就留到下一个部分再来烦恼ㄅ,就这样ㄅㄅ。
上一篇 | 下一篇 |
---|---|
Build a CPU | Hazard |
<<: Day 5:20. Valid Parentheses
>>: Day04 - [丰收款] 金流API的起手式,每次沟通都机密
在写好flask 服务之後,可能会将服务给弱点分析软件进行扫描, 之後会显示出一些高风险的漏洞, 而...
Python 中的字串和串列有很多相似的性质,可以想成字串是元只能是字元的串列 所以可以用索引和 S...
mat介绍 mat全名:Memory Analyzer Tool。这篇要介绍的内容比较例外一点,ma...
资料库类型补充 1. SQL 资料库 结构化查询语言(Structured Query Langua...
在ML的专案中,从资料的收集、建构模型、测试到部署到产品。这个流程除了需要自动化之外,也需要保有该行...