前言
上一篇文章 我们尝试着将5级流水线扩展以提升性能。首先我们尝试着加入数据前推功能,发现的确减少了RAW冲突的影响。之后我们想尝试着扩宽流水线以便塞下更多运算单元,可是导致了更多数据冲突的产生。要缓解这些问题,计分板这个结构就产生了。
宽流水线是如何引入问题的
在解决问题之前,我们有必要探究一下宽流水线与简单五级流水线的不同。这样的宽流水线,取决于不同的实现,又可以被称为I2O2 或 IO3 流水线。而简单流水线又可以叫做I4 流水线。I代表着某一级是顺序的(In-Order) ; O代表着(Out-of-Order)。也就是说宽流水线的存在导致了乱序执行。里面的数字当然是有多少级的意思,只是为了方便写4级能表示出来结构就行了。
Name | Fetch | Decode | Issue | Execute | Write Back |
---|---|---|---|---|---|
I4 | I | I | I | I | I |
I2O2 | I | I< |