问题标签 [cpu-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.

0 投票
2 回答
2165 浏览

multithreading - CPU 寄存器和缓存一致性

当涉及到 MESI 等缓存一致性协议时,CPU 寄存器和 CPU 缓存之间有什么关系?如果某个值存储在 CPU 的缓存中,并且还存储在寄存器中,那么如果缓存行被标记为“脏”会发生什么?据我了解,即使缓存已更新(由于 MESI),也无法保证寄存器会更新其值。

验证此代码:

(假设编译器没有优化循环外“完成”的负载)据
我所知,第二个线程看不到“完成”的更新,因为它的值保存在寄存器中(CPU 2 的缓存是但是更新)。

放置内存屏障会强制“刷新”所有寄存器吗?寄存器与缓存的关系是什么?那么寄存器和内存屏障呢?

0 投票
7 回答
8718 浏览

objective-c - 在 Objective C (Mac OS X) 中检测 CPU 架构(32 位/64 位)运行时

我目前正在编写一个Cocoa应用程序,它需要执行一些针对 32 位和 64 位优化的(控制台)应用程序。因此,我想检测应用程序正在运行的 CPU 架构,以便我可以启动正确的控制台应用程序。

简而言之:我如何检测应用程序是否在 64 位操作系统上运行?

编辑:我知道Mach-O fat 二进制文件,这不是我的问题。我需要知道这一点,这样我才能启动另一个非捆绑(控制台)应用程序。一种针对x86进行了优化,另一种针对x64进行了优化。

0 投票
3 回答
3703 浏览

c# - 检测cpu架构的正确方法?

我正在尝试检测用于安装 x86 msi 或 x64 msi 文件的正确 cpu 架构。

如果我是对的,对于 msi,我需要 os cpu 架构

我不完全确定我的方式是否正确,因为我无法测试它。你怎么看?

0 投票
6 回答
20942 浏览

cpu - 如何区分指令与数据?

在阅读ARM核心文档时,我有这个疑问。CPU如何区分读取数据和数据总线,是将其作为指令执行还是作为可以操作的数据执行?

请参阅该文件的摘录 -

“数据通过数据总线进入处理器内核。数据可能是要执行的指令,也可能是数据项。”

提前感谢您启发我!/多发性硬化症

0 投票
5 回答
624 浏览

c++ - 为什么我的 C++ 应用程序比 Core i7 上的 C 应用程序(使用相同的库)更快

我有一个用 C 编写的库,我有 2 个用 C++ 和 C 编写的应用程序。这个库是一个通信库,所以其中一个 API 调用如下所示:

在 C 应用程序中,代码执行如下操作:

C++ 应用程序在哪里执行此操作:

在英特尔酷睿 i7 上,C++ 代码每秒产生的消息几乎正好多出 50%。而在英特尔酷睿 2 Duo 上,它每秒产生的消息数量几乎完全相同。(核心 i7 有 4 个核心,每个核心有 2 个处理线程)

我很好奇硬件执行了什么样的魔法来实现这一目标。我有一些理论,但我想我会得到一个真正的答案:)

编辑:来自评论的附加信息

编译器是visual C++,所以这是一个windows box(两者都是)

通信库的实现创建了一个新线程来发送消息。source_create 是创建此线程的原因。

0 投票
6 回答
752 浏览

multithreading - 您是否期望未来的 CPU 代不会缓存一致?

我正在设计一个程序,我发现假设隐式缓存一致性会使设计变得容易得多。例如,我的单个编写器(始终是同一个线程)多个读取器(始终是其他线程)场景没有使用任何互斥锁。

对于当前的 Intel CPU 来说,这不是问题。但我希望这个程序至少在未来十年(软件时间很短)产生收入,所以我想知道你是否认为这可能是未来 cpu 架构的问题。

0 投票
1 回答
3688 浏览

embedded - ARM vs X86:如何选择?

我最近看到了 32 位 ARM 处理器。我想知道为什么我们不能使用它来构建台式计算机。在那种情况下,它与 X86 有何不同?ARM 架构消耗更少的功率吗?这是在嵌入式系统中使用它们的原因吗?

  • 为什么我们有两种(ARM 和 X86)处理器架构?
  • 为什么我们通常将 ARM 架构用于嵌入式和 x86 用于工作站?
  • 选择一个而不是另一个的一般标准是什么。
0 投票
1 回答
3343 浏览

java - java.lang.UnsatisfiedLinkError, mach-o 但 Mac10.6.2 上的架构错误

我试图在我的本地机器上运行一个项目。

我试图在我的 Mac 10.6.2 上加载从该项目的运行实例中获得的这个 jnilib 文件,

然后我抛出了这个异常:

我已经用 file 命令检查了 jnilib:

我猜这是因为 jnilib 文件是用 32 位编译的,而 Mac10.6 附带的 Java 是 64 位的。所以我去Java Preference并设置Java首先使用32位。但它没有用。

如上所述,这个 jnilib 文件是从我的 Mac 上正在运行的项目实例中复制的,所以它应该可以工作。我不明白为什么它在已安装的应用程序中工作,但在我的 Eclipse 中却没有。

0 投票
0 回答
1311 浏览

cpu-architecture - 注册机与堆栈机有何不同?

注册机与堆栈机有何不同?

0 投票
2 回答
9515 浏览

performance - 现代 CPU 的每刻缓存带宽

现代 CPU 的缓存访问速度是多少?Intel P4,Core2,Corei7,AMD每个处理器时钟周期可以从内存读取或写入多少字节?

请用理论(ld/sd 单元的宽度及其以 uOPs/tick 为单位的吞吐量)和实际数字(甚至 memcpy 速度测试或 STREAM 基准测试)(如果有)来回答。

PS这是一个问题,与汇编程序中加载/存储指令的最大速率有关。可以有理论上的加载速率(所有指令每个 Tick 都是最宽的加载),但处理器只能给出其中的一部分,即实际的加载限制。