问题标签 [computer-architecture]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
assembly - MIPS 中基于指针的数组访问
MIPS 中基于指针的数组访问是什么意思?
assembly - MIPS 中的清除指令:clear $t0
指令 clear $t0 在 MIPS 中执行什么?我的意思是这个伪指令的实际 MIPS 指令是什么?
performance - 为什么未对齐的地址访问会导致 2 次或更多次访问?
为什么数据对齐的正常答案是为了更有效地访问和简化 CPU 的设计。
一个相关的问题及其答案在这里。另一个来源在这里。但他们都没有解决我的问题。
假设 CPU 的访问粒度为 4 个字节。这意味着 CPU 一次读取 4 个字节。我上面列出的材料都说,如果我访问一个未对齐的数据,比如地址 0x1,那么 CPU 必须执行 2 次访问(一个来自地址 0x0、0x1、0x2 和 0x3,一个来自地址 0x4、0x5、0x6 和 0x7)并结合结果。我不明白为什么。为什么当我发出访问地址 0x1 时 CPU 不能从 0x1、0x2、0x3、0x4 读取数据。它不会降低性能并在电路中产生很多复杂性。
先感谢您!
spatial - 分析空间和时间局部性的代码
您好有一些关于空间和时间局部性的问题。我在课程理论中读到
空间局部性
如果一个项目被引用,其他地址附近的可能性将很快被引用
时间局部性
在某个时间点被引用的一个项目往往很快会再次被引用。
好的,但是我如何在代码中看到它?我想我理解了时间局部性的概念,但我还不了解空间局部性。例如在这个循环中
当访问 a[i] 十次时,内部循环将调用相同的内存地址,所以我猜这是时间局部性的一个例子。但是在上述循环中是否也存在空间局部性?
cpu - 关于冯诺依曼架构图的一些疑问
好吧,我无法理解上面的冯诺依曼架构图 [引自维基百科],甚至不确定它是否正确。我有一些明显的疑问-
ALU 如何与内存通信?这不应该是CU的工作吗?
累加器如何成为 ALU 的一部分?
而且,蓄能器的工作到底是什么?
unix - 如何从命令行找出计算机的体系结构?
是否有一个标准程序可以用来确定我是在 i386 还是 x86、32 位还是 64 位机器上?我在一个 Unix 盒子上。
c - 登记册和临时登记册有什么区别?
Valgrind 使用中间代码表示来让我们检测二进制代码,这样我们就不必处理编程语言级别的结构。在将二进制代码转换为 Valgrind 的中间表示 (IR) 代码的过程中,它显示了寄存器用于加法等操作。其中有 1024 个正在使用。我没有得到的是另一种类型的寄存器,称为临时寄存器,表示为tX
X 是某个数字。因此,我可以看到:
t
意思是临时寄存器。据我所见,它们的行为似乎与常规寄存器非常相似,但无法弄清楚它们有何不同。有人能告诉我什么是临时登记册,它与普通登记册有何不同?
computer-architecture - 哪个更快?
哪个更快更有用?累加器、寄存器还是堆栈?
c++ - C 或 C++ 或 SystemC 中的 CPU 缓存实现
我需要一个非常基本的 CPU 缓存 C 或 C++ 源代码。谷歌没有帮我找到合适的。实现只需要提供缓存最基本的功能。例如,在 C++ 中:
有人知道一些源代码吗?
谢谢!!