【发布时间】:2021-03-03 05:21:06
【问题描述】:
RISC Pipelining 中的说明坚持 5 个步骤。
我有一个关于流水线是否会影响设置断点的问题。
示例:
假设下面的二进制文件正在运行并且$pc 在line 1
line1: lwz r11 8(r31) <= PC @ here
line2: lwz r0, 0(r31)
line3: cmpwi cr7, r10, 0
line4: lwz r9, 4(r31)
line5: stw r11, 0xA0(r1)
管道状态(我的猜测):
据我所知,PPC 指令有 5 种状态:获取、解码、执行、内存访问、写回
在这一刻,我猜流水线会像下面这样。对吗?
line1: lwz r11 8(r31) <= execution (because PC is at here)
line2: lwz r0, 0(r31) <= decode
line3: cmpwi cr7, r10, 0 <= fetch
line4: lwz r9, 4(r31)
line5: stw r11, 0xA0(r1)
问题
- 我写的状态是否正确?
- 此时,是不是不允许调试器在运行时更改
line 3中的指令?
(比如在line 3处设置断点?)
【问题讨论】:
-
这都是非常多的实现定义的,对于初学者来说,真正的硬件管道看起来是教科书式的,不一定是现实的。如果定义了一个实现,那么调试器如何工作没有涵盖所有实现的通用答案。
标签: assembly pipeline breakpoints cpu-architecture powerpc