本人在复习计组流水线时,遇到了一些问题,再次记录,以备不时之需。
首先要弄明白一点,那就是cpu的各阶段是否具有相同的时钟周期,也就是说,每个阶段所花费的时间是否都是相同的?
为什么会想到这个问题,先看一下408统考真题的这一题:
刚开始那是想都没想,这他么这么简单的题,肯定选A啊,虽然的确做对了,但分析这道题所考的知识点时,想的就多了,为什么时钟周期不能小一点,比如为50ns,让每个阶段所占用两个时钟周期不就得了,但是这时候脑子突然想到,cpu流水线的每个阶段是不是必须是一个时钟周期啊?这时候,我知道我迷了,赶紧查资料,最后问了老师,得到以下两个结论:
1.cpu流水线的每个阶段不一定只占用一个周期。
2.cpu流水线的每个阶段所占用时钟周期数可以不相同。
那么问题来了,这样说得话,这题没有固定答案啊。仔细分析题目,才发现题目中的“流经”二字,显然题目的意思是硬件已经设计完毕,功能块不受时钟控制,相当于组合逻辑电路,故必须大于90ns,才能保证指令顺利流经各个功能段。
再看一题求解cpu流水线的吞吐率的问题。
之所以有疑问,是因为当时不知道每个阶段可以具有不同的时钟周期,明白了这一点,问题影刃而解。