cpu-architecture相关内容

MOESI缓存一致性协议相对于MESI有什么好处?

我想知道MOESI相对于MESI缓存一致性协议有什么好处,以及哪种协议目前最受现代体系结构的青睐.如果成本不允许,收益通常不会转化为实施. MOESI在MESI上的定量性能结果也很值得一看. 解决方案 AMD使用MOESI,英特尔使用MESIF. (我不知道非x86缓存的详细信息.) MOESI 允许直接在缓存之间发送脏缓存行,而不是写回共享的外部缓存,然后从那里读取.链接的Wiki ..

参考的地点是什么?

我在理解参考地区时遇到问题.谁能帮助我了解含义和含义, 参考的空间位置 参考的时间地点 解决方案 如果您的计算机装有超快内存,这将无关紧要. 但是不幸的是,情况并非如此,计算机内存看起来像这样的 1 : +----------+ | CPU | ..
发布时间:2020-05-08 19:03:34 其他开发

字可寻址和字节可寻址之间的区别

有人可以解释Word和Byte可寻址之间的区别吗?它与内存大小等有什么关系? 解决方案 字节是一个 内存单元 存储 的strong> 内存芯片 充满了这些字节. 存储单元 是可寻址的 .这是我们使用内存的唯一方法. 实际上,内存只是 可寻址的字节 .这意味着: 二进制地址始终始终仅指向a single 字节. 字仅为a group of 字节– 2,4,8取决于数据总 ..
发布时间:2020-05-08 18:58:45 其他开发

为什么在大多数处理器中,L1高速缓存的大小小于L2高速缓存的大小?

为什么在大多数处理器中,L1高速缓存的大小小于L2高速缓存的大小? 解决方案 有不同的原因. 系统中存在L2以加快L1高速缓存未命中的情况.如果L1的大小等于或大于L2的大小,则L2无法容纳比L1多的高速缓存行,并且无法处理L1高速缓存未命中.从设计/成本的角度来看,L1缓存绑定到处理器,并且比L2更快.缓存的整体思想是,通过添加性能比最慢的硬件更好(但更昂贵)但比拥有的快硬件更便宜 ..
发布时间:2020-05-08 18:55:44 其他开发

运行我生成的.jar会产生“无法在AMD 64位平台上加载此.dll(机器代码= 0xbd)".

我有一个正在使用某些本机库(.dll)的项目.我正在使用Netbeans,并且在运行配置中指定了java.library.path.从Netbeans运行项目不会产生任何错误. 我正在使用Maven,并且在构建项目时,我的jar是在target文件夹中构建的.我正在使用Maven资源和依赖插件将所有.dll和程序的依赖项复制到target/lib. 当我尝试在Netbeans外部运行应 ..
发布时间:2020-05-07 22:17:07 Java开发

如何使用32位除法指令执行64位除法?

这是(AFAIK)在此常规中的一个特定问题主题. 这里是情况: 我有一个基于32位RISC微控制器(NEC V810的变体)的嵌入式系统(视频游戏机).我想写一个定点数学库.我阅读了这篇文章,但是随附的源代码是用386程序集编写的,因此既不能直接使用,也不能轻易修改. V810具有内置的整数乘法/除法功能,但是我想使用上面文章中提到的18.14格式.这需要将64位int除以32位 ..

越位越大,如何设置进位标志?

我知道SUB期间的进位标志会在被减数小于subtrahend时设置,并且需要借位,但是找不到任何更详细的解释方法. 既然减法实际上只是加上二进制补码,CPU如何知道减法数更大并且发生借位了? 我唯一想到的是,只要将subtrahend转换为其2的补码,就可以在SUB期间自动设置Carry标志.然后,除非再次发生进位(每次被加数大于次要价位时,在进位时都应该这样做),否则它将保持打开状态 ..
发布时间:2020-05-06 09:09:23 其他开发

在MASM/MASM64编译时检测体系结构

如何在编译时从ASM源文件中检测目标体系结构是I386还是AMD64? 我正在使用masm(ml.exe)/masm64(ml64.exe)组装file32.asm和file64.asm.创建单个文件file.asm会很好,根据架构的不同,该文件应包含file32.asm或file64.asm.理想情况下,我希望能够编写如下内容: IFDEF amd64 include file64. ..
发布时间:2020-05-06 09:07:53 其他开发

检测预处理器-xarch选项?

我正在Solaris 11上使用Sun Studio 12.4和12.5.我们有一个源文件,该文件提供CRC32的直接C/C ++实现,或者提供使用Intel内部函数的CRC32的优化版本.在运行时,函数指针填充了适当的实施方式. 测试与双Xeon的一个的x86服务器上,因为我们是基于编译器版本使代码可用路径是生产以下. SunCC 12.1添加了对SSE4的支持(如果我正确地解析了矩阵), ..

相关负载在CPU中的重新排序

我一直在阅读内存壁垒:针对软件黑客的硬件视图,这是Paul E的一篇非常受欢迎的文章麦肯尼. 论文强调的一件事是,像Alpha这样的顺序较弱的处理器可以对依赖的负载进行重新排序,这似乎是分区缓存的副作用 论文摘录: 1 struct el *insert(long key, long data) 2 { 3 struct el *p; 4 p = kmalloc( ..

自动展开和输出C/C ++代码

我正在做一个实验,第一步是(从C/C ++)展开一个循环十次(例如:10、50等),然后输出C/C ++展开的代码.有什么我可以用来自动进行此类展开的工具吗? 换句话说,我需要的是: C/C++ source/loop --->> TOOL (Unroll by X) ----> Unrolled C/C++ source/loop 解决方案 我们的源到源转换引擎, DMS软件 ..
发布时间:2020-05-02 11:00:39 其他开发

启用超theading的系统上的CPU编号

我试图找出在启用了超线程的环境中,操作系统(Windows,Linux)如何将数字分配给逻辑cpus. ? 两个OS是否先为物理CPU顺序分配编号,然后开始为逻辑CPU编号,还是遵循其他规则?例如在具有超线程的2个物理cpu系统中,操作系统是否将数字0,2分配给第一个物理cpu,然后将1,3分配给第二个物理cpu ..? 任何参考文献将不胜感激. 谢谢. 关于-杰伊. ..
发布时间:2020-05-02 03:42:55 其他开发

确定Linux中二进制文件(库或可执行文件)的目标ISA扩展

我们遇到一个与Java应用程序相关的问题,该Java应用程序在具有Via C3处理器的Advantech POS板上的(相当旧的)FC3下运行. Java应用程序具有几个可通过JNI访问的已编译共享库. 通过C3处理器应该与i686兼容.前一段时间,在具有相同处理器的MiniItx板上安装Ubuntu 6.10之后,我发现前面的陈述不是100%正确.由于缺少C3处理器中i686设置的某些特定 ..

当我打开在Xcode 4中创建的Google Maps项目时,Xcode 5会警告有关我的体系结构设置的信息

我刚刚更新到新发布的Xcode5.我正在开发一个使用Google Maps iOS SDK的iOS应用.回到使用Xcode 4进行开发时,我按照Google 7.选择您的项目而不是特定的目标,然后打开“构建设置"选项卡. 用armv7替换默认的Architectures值. 在“其他链接器标志"部分中,添加-ObjC.如果看不到这些设置,请将“构建设置"栏中的过滤器从“基本"更改为“全部". ..
发布时间:2020-05-01 03:39:24 移动开发

通过有条件的早期计算来避免停顿管道

在谈论ifs的性能时,我们通常会谈论错误的预测如何使管道停滞.我看到的推荐解决方案是: 信任通常情况下会产生一个结果的分支预测变量;或 在合理可能的情况下,避免一点点魔术的分支;或 视情况而定. 我找不到的是我们是否可以尽早计算条件以在可能的情况下提供帮助.因此,代替: ... work if (a > b) { ... more work } 执行以下操作: ..

什么是缓存命中和缓存未命中?为什么上下文切换会导致高速缓存未命中?

第11章(性能和可伸缩性)和Context Switching 的部分中的内容-us-east-1.amazonaws.com/"rel =" noreferrer“> JCIP图书: 当新线程被接通时,它所需的数据不太可能是 在本地处理器缓存中,因此上下文切换导致 高速缓存未命中,因此线程在运行时会慢一些 首先安排. 有人能以一种易于理解的方式解释缓存未命中的概念及其可能的反义词(缓 ..

为什么Linux(x86)的页面大小为4 KB,如何计算?

x86架构上Linux内核的默认内存页面大小为4 KB,我想知道它是如何计算的,为什么? 解决方案 默认页面大小由CPU的MMU(内存管理单元)支持的大小固定.在32位保护模式下,x86支持两种页面: 正常,4 KiB 巨大的,4 MiB 并非所有x86处理器都支持大页面.一个人需要有一个具有页面大小扩展(PSE)功能的CPU.这不包括奔腾之前的处理器.实际上,当前所有的x8 ..
发布时间:2020-04-25 11:15:09 服务器开发