- 主题:risc 64 cpu的取指问题
有个疑问,因为risc架构的普通指令长度是32位,但64位cpu的数据接口是64位的,那不是每次取指其实都取出两条指令?
--
FROM 112.17.238.*
没有规定说取指每周期只能取一条指令。实际上现代处理器指令级并行度高,需要取指单元每周期取很多指令才能利用好处理器的计算资源。
【 在 liriver 的大作中提到: 】
: 有个疑问,因为risc架构的普通指令长度是32位,但64位cpu的数据接口是64位的,那不是每次取指其实都取出两条指令?
--
FROM 111.206.173.*
低端的实现可能只取一条
高端的可能取很多条
【 在 liriver 的大作中提到: 】
: 有个疑问,因为risc架构的普通指令长度是32位,但64位cpu的数据接口是64位的,那不是每次取指其实都取出两条指令?
--
FROM 107.204.171.*
也是,超标量处理器必须能够同时取多条指令,不管是32位还是64位。因为现在讲自制cpu的书籍基本都是讲单序,所以想到64位的话那一次取两条指令其实有一条应该是浪费的,故有此一问
【 在 ArchLinux 的大作中提到: 】
: 没有规定说取指每周期只能取一条指令。实际上现代处理器指令级并行度高,需要取指单元每周期取很多指令才能利用好处理器的计算资源。
:
--
FROM 112.17.238.*
64位指的是cpu内部General Purpose Register是64 bit 宽。 instruction fetch unit和L1 instruction cache之间的width 看cpu实现。
多取的指令不会浪费,流水线里面还有所谓的instruction queue给记录下来。出现branch mis prediction后会被flush掉。
【 在 liriver (浮云) 的大作中提到: 】
: 也是,超标量处理器必须能够同时取多条指令,不管是32位还是64位。因为现在讲自制cpu的书籍基本都是讲单序,所以想到64位的话那一次取两条指令其实有一条应该是浪费的,故有此一问
: 【 在 ArchLinux 的大作中提到: 】
: : 没有规定说取指每周期只能取一条指令。实际上现代处理器指令级并行度高,需要取指单元每周期取很多指令才能利用好处理器的计算资源。
: :
--
FROM 114.87.75.*