CPU或微控制器的硬件微体系结构(x86,x86_64,ARM,...)。
为什么DPD、Decimal64等没有像浮点数那样有CPU级别的支持?
在存在 Decimal 的语言(C#、Python)中,它比 float/double 慢,因为硬件层面不支持它。那么为什么不使用DPD(密集十进制)、BID(二进制整数十进制)...
当发生内存访问并且 PT 中的访问位为 0 时,它会触发微码辅助,该微码辅助会遍历 PT 并设置每个级别中的访问位。 在 oredr 中为辅助代码编写
我目前正在尝试编写一个将 x86-64 指令解码为汇编的程序,但在处理指令时,我一直坚持确定默认内存/寄存器操作数大小...
我目前正在尝试编写一个将 x86-64 指令解码为汇编的程序,但在处理指令时,我一直坚持确定默认内存/寄存器操作数大小...
我有一个关于CPU执行的问题。 CPU 可以通过让不同的进程在同一时钟周期使用 CPU 的不同组件来实现超线程。但我想知道这是否可以用来特殊...
Gem5 中‘断言 `_numOutstandingPackets == 0'失败’的原因
我正在为 Gem5 O3 CPU 编写一个新的内存依赖预测器。目前,它设置的内存依赖性在某种程度上导致加载指令在数据包发送到时失败此断言
在 riscv-spec-2.2 中,它为返回地址堆栈(RAS)行为提供以下真值表: rd rs1 rs1=rd RAS 操作 !link !link - 无 !link 链接 - 弹出 链接!li...
MESI:为什么我们需要 write-miss 来从共享转移到修改
Hennessy/Patterson 所著的《计算机体系结构》一书,第 6 版,第 394 页,包含一个使用 2 个处理器的真实共享和错误共享未命中的示例。 这是来自...的示例
MSI:为什么我们需要 write-miss 来从共享转移到修改
Hennessy/Patterson 所著的《计算机体系结构》一书,第 6 版,第 394 页,包含一个使用 2 个处理器的真实共享和错误共享未命中的示例。 这是来自...的示例
能否设计专门的汇编指令来实现内存块的移位,简化数组的插入和删除?
在学习数组操作时,我发现插入和删除很麻烦,需要将元素一一移位。我们能否设计一个专门的组装指令来转移...
如果内存中的每个地址都直接映射到缓存中的确定性位置,则不需要缓存一致性,因为访问共享数据的所有线程共享相同的缓存。 IE。在上下文中...
单线程是运行在单核还是单CPU上? 另外,我有i7。它说我有 4 个核心,但有 8 个线程。核心和线程不是1-1的比例吗?怎么翻倍了?
当我声明一个整数时,我使用指令 .word,它有 32 位,如果我正确的话,这也是 MIPS 架构中寄存器的大小。 现在,根据我的理解,.double 应该是......
我最近一直在研究计算机硬件,但是在研究多核处理器时,我找不到任何关于多核CPU(特别是x86_64 CPU)如何防止竞争条件的资料...
在 x86 处理器上,系统开机后,处理器通常执行的第一条指令位于 0xFFFFFFF0,称为复位向量。通常该地址位于 BIOS 或闪存中...
MOESI 协议:当 Owned 脏且其他处理器读取 Shared 中的行时会发生什么?
我一直在思考 MOESI 协议的“拥有”状态。假设存在以下情况: P0 的 A 线处于 O 状态。 P1 的 A 线处于 S 状态。 P0 写入...
在rigtorp的SPSCQueue中使用索引缓存的目的是什么
我正在阅读rigtorp的SPSCQueue的实现,这是一个非常优雅的设计并且具有非常好的基准。 我理解自述文件中描述的大部分设计哲学。我什么...
ARMv8 big.LITTLE 系统上如何保持缓存一致性?
据我所知,big.LITTLE 系统上的大核和小核位于不同的集群中。集群之间的缓存一致性要求将区域标记为外部共享,并且非常expe...
我知道MTE使用ARM的TBI(Top Bit Ignore)功能,因此虚拟内存地址中的前4位中的一些用于携带内存分配的标记。 但后来我很好奇如何...