CPU是如何来判断本次取指需要取多少字节的指令数据

手写的从前66 2018-11-08 10:56:46
下面是我的猜想,求拍砖指导:
首先,CPU在取指阶段并不知道具体取多长字节的指令,所以根据指令的最大长度~15字节。CPU在一次取指阶段,直接从内存中预取15字节的指令数据。然后对该15字节的指令数据进行长度识别。
不知道上述猜测是否正确?
另外,谁知道指令寄存器(IR)的位数?
求指导,或者说说你们的理解,以及依据
...全文
1214 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我没说L1指令缓存与L1数据缓存是同一个东西啊,带宽也不一样应该是你的推测,指令缓存和数据缓存本质并无区别,通常设计规格也是一样的,之所以分开两个部分,是为了能并发访问,提高效率,如果不一样,也应该是指令缓存的带宽高于数据缓存。
预解码的指令窗口大小,我查了一下,在skylake架构中仍然是16字节:https://en.wikichip.org/wiki/intel/microarchitectures/skylake_(client) 所以这个数据你说的是对的(虽然core第9代的资料没查到,但是6、7、8代核心都是skylake微架构,应该不会有大的变化)

一凡stkeke 2019-01-07
  • 打赏
  • 举报
回复
L1指令缓存与L1数据缓存不是同一个东西,带宽也不一样。你说的是L1数据缓存的带宽。
  • 打赏
  • 举报
回复
超标量架构有多个译码单元,可以在单周期解码多条指令(x86指令,不是intel称之的uop或者AMD说的RISC86指令,后者可能多达十几条),所以每周期供给译码单元16字节应该是供不应求的。SNB这架构比较老了,我印象intel有文章说过IVB的L1缓存读带宽是32字节每周期,haswell是64字节。
一凡stkeke 2019-01-07
  • 打赏
  • 举报
回复
引用 5 楼 早打大打打核战争 的回复:
[quote=引用 2 楼 一凡stkeke 的回复:] CPU内部有个指令预取单元,每周期从一级指令缓存中取16字节指令流,此时并不知道取了多少指令。随后有一个指令预译码阶段,会根据x86指令的译码规则界定出每条指令的边界。后续是指令译码阶段,将x86指令翻译成微指令。
16字节... 那是386 [/quote] 至少在Sandy Bridge微架构上,也还是每次取16字节进行译码,这个值主要取决于流水线中译码器的能力,好多年没有变过了。 参看Sandy Bridge的微架构图
  • 打赏
  • 举报
回复
引用 2 楼 一凡stkeke 的回复:
CPU内部有个指令预取单元,每周期从一级指令缓存中取16字节指令流,此时并不知道取了多少指令。随后有一个指令预译码阶段,会根据x86指令的译码规则界定出每条指令的边界。后续是指令译码阶段,将x86指令翻译成微指令。


16字节... 那是386
  • 打赏
  • 举报
回复
引用 3 楼 那年那人 的回复:
[quote=引用 1 楼 早打大打打核战争 的回复:]
RISC处理器是定长指令,没有这个问题,CISC处理器采用变长指令,指令预取部件会从指令缓存中取一段到指令队列中,并不限于单指令最大长度,可能达到几十字节,和每时钟周期指令发射条数有关。


感觉你懂的很多啊,各种编程知识都精通,学习了[/quote]


BAO BAO 2019-01-06
  • 打赏
  • 举报
回复
引用 1 楼 早打大打打核战争 的回复:
RISC处理器是定长指令,没有这个问题,CISC处理器采用变长指令,指令预取部件会从指令缓存中取一段到指令队列中,并不限于单指令最大长度,可能达到几十字节,和每时钟周期指令发射条数有关。


感觉你懂的很多啊,各种编程知识都精通,学习了
一凡stkeke 2019-01-05
  • 打赏
  • 举报
回复
CPU内部有个指令预取单元,每周期从一级指令缓存中取16字节指令流,此时并不知道取了多少指令。随后有一个指令预译码阶段,会根据x86指令的译码规则界定出每条指令的边界。后续是指令译码阶段,将x86指令翻译成微指令。
  • 打赏
  • 举报
回复
RISC处理器是定长指令,没有这个问题,CISC处理器采用变长指令,指令预取部件会从指令缓存中取一段到指令队列中,并不限于单指令最大长度,可能达到几十字节,和每时钟周期指令发射条数有关。

21,497

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧