cpu-architecture相关内容

为什么英特尔使用VIPT缓存而不是VIVT或PIPT?

我不确定,但如果我没记错的话,我想知道英特尔使用VIPT(虚拟索引物理标记)缓存的原因,为什么它比VIVT或PIPT更好,它有什么优势,可能还有什么劣势。谢谢。 推荐答案 可能没有公布确切的设计决策,但总的来说,VIPT的好处是: 虚拟索引意味着您可以在TLB中查找转换之前(或与之并行)开始从缓存中读取集合。这意味着常见案例的查找将比物理索引缓存快得多,在物理索引缓存中,您只能在 ..
发布时间:2022-05-08 20:06:56 其他开发

现代英特尔处理器有多少种超标量?

我刚刚了解了超标量处理器(https://en.wikipedia.org/wiki/Superscalar_processor)。 我还了解到,随着超标量处理器在宽度/方式数量上的增加,事情变得更加复杂,复杂性增加得如此之快,以至于最好添加更多的内核,而不是更多的宽度。我的教练说,在4路和8路超标量之间增加更多的方式是不值得的。 这让我想知道:英特尔从哪里停止增加方法,开始增加内核? ..
发布时间:2022-05-08 19:58:04 其他开发

为什么Intel x87寄存器有80位宽?

为什么使用如此“奇怪”的寄存器大小?是否有任何文档说明为什么不建议对这些寄存器使用64位或128位? 推荐答案 Wikipedia page on the IEEE 754-1985 standard关于80位扩展格式有一个很好的解释: 该标准还建议使用扩展格式来执行 内部计算的精度高于 最终结果,以最大限度地减少舍入误差“ 双精度浮点数以64位表示。您可能需要更多的位以获得更 ..
发布时间:2022-05-08 19:29:41 其他开发

现代英特尔x86 CPU如何实现商店的总订单

由于其TSO内存模型,x86保证了所有存储的总顺序。我的问题是,有没有人知道这实际上是如何实施的。 我对所有4个围栏是如何实施的印象很好,所以我可以解释当地的秩序是如何保持的。但4个栅栏只会给出程序顺序;它不会给您提供TSO(我知道TSO允许较旧的商店跳到新负载之前,因此只需要4个栅栏中的3个)。 在单个地址上的所有内存操作的总顺序是一致性的责任。但我想知道英特尔(尤其是Skylake)如 ..
发布时间:2022-05-08 19:13:37 其他开发

流水线会影响时钟时间还是每条指令的周期(CPI)?

我的书提到“根据您认为的基线,这种减少可以被视为减少每条指令的时钟周期数(CPI)、减少时钟周期时间或组合。如果起点是每条指令占用多个时钟周期的处理器,则流水线通常被视为降低CPI。” 我不能理解的是流水线会影响CPI或时钟周期,因为在流水线的情况下,时钟周期被视为最大阶段延迟+锁存延迟,所以流水线确实会影响时钟时间。此外,它还会影响CPI,因为在流水线的情况下,它会变为1。我是不是错过了什么概 ..
发布时间:2022-04-09 18:32:10 其他开发

计算机CPU中的寄存器

我只是想验证CPU本身是否支持“寄存器”名称。我是说阿格0阿格特2..。ETC在“名字”的末尾。CPU也支持名字吗?!我不是问寄存器本身,我是问CPU是否支持它可以操作的寄存器的名称? 推荐答案 名字是一种神奇的东西,而不是物理上的 这就是重点。名字纯粹是我们人类阅读的。CPU完全没有名称的概念。它们唯一处理的是数字。字符是数字,地址是数字,指令是数字……寄存器也是如此,它们也只 ..
发布时间:2022-04-08 14:39:17 其他开发

指令流水线和每条指令的周期之间的链接

我了解instruction pipelining的基本原理。 我还了解到某些指令可能需要更长时间才能执行(cycles per instruction)。 但我不明白两者之间的联系。 我看到的所有流水线图似乎都有“完美”的指令,它们都有相同的长度(周期数)。 但是,如果第一条指令需要5个周期,而第二条指令需要3个周期,该怎么办?CPU是否停顿了2个周期? 这个摊位叫 ..
发布时间:2022-04-08 14:31:31 其他开发

分支预测器如何知道它是否正确?

这是我第二次问这个问题;第一次有人回复了,但我花了很长时间才回复,因此没有得到充分的理解。 我试图做的是更多地了解现代体系结构的取指令部分;我假设所有指令都是由分支预测器预测的,以供取指令单元根据预测进行取。 另一位绅士试图帮助提到有关“分支指令”的内容,该指令也与预测指令一起发送。此“分支指令”测试分支预测器的预测是否正确的条件。我还假设这些分支指令进入分支执行单元,并且不需要从内存 ..
发布时间:2022-04-08 14:25:52 其他开发

CPU速度是否受从内存获取指令的速度的限制?

在学习汇编时,我意识到我应该将频繁访问的数据放在寄存器中,而不是内存中,因为内存要慢得多。 问题是,既然指令首先是从内存中获取的,那么CPU如何能比内存运行得更快呢?CPU通常会花费大量时间等待来自内存的指令吗? 编辑: 要运行程序,我们需要将其编译为包含机器代码的文件。然后,我们将该文件加载到内存中,并运行一条又一条指令。CPU需要知道要运行什么指令,然后从内存中获取该信息。我问的不是操 ..
发布时间:2022-04-08 14:23:53 其他开发

在一个CPU中拥有多个内核是为了同时运行多个线程/进程,还是为了实现指令级并行?

我只是想更清楚地了解多核到底是做什么用的,以及多核和多CPU之间有什么区别。 我想了解的是,拥有多个核心是为了在给定的CPU内实现指令级并行,还是一个CPU内的多个核心都有自己的结构RQ,允许它们独立调用__Schedule()并随意调度进程/线程,然后由每个核心内的其他模块处理指令级并行。 如有任何意见,欢迎光临。 推荐答案 ILP单独位于每个物理核心中。 跨站复制:H ..
发布时间:2022-04-08 14:19:54 其他开发

我如何辨别我的计算机是哈佛体系结构还是冯·诺伊曼体系结构?

我使用的笔记本电脑配置如下。 处理器:英特尔(R)酷睿(TM)i5-4300U CPU@1.90 GHz 2.49 GHz RAM:8 GB 系统类型:64位操作系统、基于x64的处理器 Windows版:Windows 8.2企业版 当我阅读有关CPU体系结构的文章时,我想知道我的计算机遵循什么CPU体系结构? 推荐答案 您的处理器是modified Harvard Ar ..

电路进行译码所需的最小输入位数

我正在学习计算机体系结构,我正在阅读有关编码器和解码器的知识。在MIPS处理器中,操作码有6位。我想知道需要多少个输入位才能构建一个解码器来解码操作码?我知道解码器是一个组合电路,它将来自n个输入线的二进制信息转换为最多2^n个唯一的输出线。 知道操作码是6位,这是否意味着我只需要3位,因为2^3是8,理论上最大输出数将是8? 推荐答案 机器指令字中的操作码是解码过程的输入,可能涉及同 ..
发布时间:2022-03-27 21:42:28 其他开发

为什么在MIPS中是bgezal&;bltzal基本指令而不是伪指令?

根据this MIPS instruction reference,如果采用分支,则有两条指令(bgezal和bltzal)执行相对跳转和链接,而不仅仅是相对跳转。 这些指令可以分别用bgez或bltz模拟,后跟jal,这意味着bgezal和bltzal都应该被归类为伪指令。但是,两者都有分配给它们的操作码,因此它们被归类为基本指令。 将它们添加到基本指令集中而不使其成为伪指令的理由是什么?还 ..
发布时间:2022-03-27 21:35:14 其他开发

为什么非寄存器跳转指令需要分支目标缓冲区?

对于MIPS 5级流水线,解码级知道分支目标,因为如果分支偏移量在指令中,并且您还读取解码级中的寄存器,则可以很容易地提取分支目标。 那么对于乱序流水线,很明显在使用‘jr’这样的指令时会遇到问题,这些指令可能会使用尚未计算的寄存器。对于这样的用途,分支目标缓冲区有明显的用法。 但是对于像‘beq’这样的指令,我认为有必要使用分支预测器,但不需要分支目标,因为您已经知道分支偏移量,当然也知 ..
发布时间:2022-03-27 20:45:55 其他开发

x86上存储到加载转发失败的成本是多少?

在最近的x86体系结构上失败的存储到加载转发的成本是多少? 具体而言,由于加载部分与较早的存储重叠,或者较早的加载或存储跨越导致转发失败的某些对齐边界而失败的存储到加载转发。 当然会有延迟成本:它有多大?是否还有吞吐量成本,例如,失败的存储到加载转发是否使用其他加载和存储甚至其他非内存操作无法使用的额外资源? 当存储的所有部分都来自存储缓冲区时,与存储缓冲区和L1混合的情况有什么不同 ..

“首选 32 位"的目的是什么?在 Visual Studio 中设置,它实际上是如何工作的?

我不清楚编译器如何在需要时自动知道编译为 64 位.它如何知道何时可以自信地瞄准 32 位? 我主要好奇编译器在编译时如何知道要针对哪个架构.它会分析代码并根据发现的内容做出决定吗? 解决方案 微软有一个博客条目 .NET 4.5 和 Visual Studio 11 中 AnyCPU 的真正含义: 在 .NET 4.5 和 Visual Studio 11 中,奶酪已被移动. ..
发布时间:2022-01-31 16:14:17 C#/.NET