intel相关内容
我正在浏览此链接 delay在组装中添加组装延迟.我想通过添加不同的延迟值来执行一些实验. 产生延迟的有用代码 ;启动延迟移动 bp, 43690mov si, 43690延迟2:十二月没有jnz延迟2十二月cmp si,0jnz延迟2;结束延迟 我从代码中了解到,延迟与执行 nop 指令 (43690x43690 ) 所花费的时间成正比.所以在不同的系统和不同版本的操作系统中,延迟会有
..
在 /O2(发布)模式下查看 Visual Studio (2015U2) 生成的程序集时,我看到这段“手动优化"的 C 代码被转换回乘法: int64_t calc(int64_t a) {返回 (a
..
在 x86 或 amd64 上使用汇编指令时,程序员可以使用“Intel"(即 nasm 编译器)或“AT&T"(即 gas 编译器)汇编语法.“Intel"语法在 Windows 上更流行,但“AT&T"在 UNIX(类)系统上更流行. 但是 Intel 和 AMD 手册,即芯片创建者创建的手册,都使用“Intel"语法. 我想知道,“AT&T"语法设计背后的最初想法是什么?远离处理
..
gcc -S 选项将生成 AT&T 语法的汇编代码,有没有办法生成 Intel 语法的文件?或者有没有办法在两者之间转换? 解决方案 你试过了吗? gcc -S -masm=intel test.c 未经测试,但我在此论坛中找到了它,有人声称它对他们有用. 我刚刚在 mac 上试过了,但失败了,所以我查看了我的手册页: -masm=方言使用选定的方言输出汇编指令.支持的选择是
..
随着我的问题在 x86-64 中使用 32 位寄存器/指令的优势,我开始衡量成本的指令.我知道这已经多次完成(例如 Agner Fog),但我正在做用于娱乐和自我教育. 我的测试代码非常简单(为了简单起见,这里是伪代码,实际上是汇编程序): for(outer_loop=0;outer_loop 但还是要考虑一些事情. 如果循环的内部部分很大(大NI>10^7),则循环的整个内容无
..
我正在阅读有关汇编指令的英特尔操作码的一些材料,但我不明白操作码字节后面是什么意思.例如:cw、cd、/2、cp、/3. 请给我一个提示,它是什么意思或者我在哪里可以找到完整的参考资料? E8 cw CALL rel16 调用接近、相对、相对于下一条指令的位移E8 cd CALL rel32 调用接近、相对、相对于下一条指令的位移FF /2 CALL r/m16 调用接近,绝对间接,地址以
..
我刚刚回顾了Peter Cordes 的这个答案,他说, 部分标志停顿在读取标志时发生,如果它们发生的话.P4 永远不会有部分标志停顿,因为它们永远不需要合并.相反,它具有错误的依赖关系.几个答案/评论混淆了术语.他们描述了一个错误的依赖关系,但随后将其称为部分标志停顿.这是由于仅写入一些标志而发生的减速,但术语“部分标志停顿"是在必须合并部分标志写入时在 SnB 之前的 Intel 硬件上
..
我正在阅读http://www.realworldtech.com/sandy-bridge/我在理解某些问题时遇到了一些问题: 专用堆栈指针跟踪器也存在于 Sandy Bridge 中并重命名堆栈指针,消除串行依赖和删除一些 uop. 专用堆栈指针跟踪器究竟是什么? 对于 Sandy Bridge(和 P4),英特尔仍然使用术语 ROB.但它理解这一点至关重要,在这种情况下,它
..
所以我试图通过 WinAPI 函数获取有关显卡的信息,但有一个关于如何获取我的确切显卡信息的问题.我编写了调用 EnumDisplayDevices 的代码,通过我的调用,我收到了 DeviceString“Intel(R) HD Graphics Family".然而,这并没有告诉我确切的卡,例如 Intel HD Graphics Family 有 4200、4400 等等(根据我的理解).
..
KbL i7-8550U 我正在研究 uops-cache 的行为,但遇到了一个误解. 如英特尔优化手册 2.5.2.2(我的)中所述: 解码的 ICache 包含 32 个集合.每组包含八种方式.每条路最多可容纳六个微操作. - 所有微操作都代表静态的指令在代码中是连续的,并且它们的 EIP 在同一个对齐中32 字节区域. - 最多三种方式可以专用于同一
..
Haswell 及更早版本上的 ADC 通常为 2 uop,具有 2 个周期延迟,因为 Intel uop 传统上只能有 2 个输入(https://agner.org/optimize/).在 Haswell 为 FMA 和 索引寻址模式的微融合在某些情况下. (但 BDW/SKL 仍然使用 2 uops 用于 adc al, imm8 短格式编码,或其他 al/ax/eax/rax, i
..
Intel 优化手册 谈到了处理器的许多部分中存在的存储缓冲区的数量,但似乎没有谈到存储缓冲区的大小.这是公开信息还是存储缓冲区的大小作为微架构细节保留? 我正在研究的处理器主要是 Broadwell 和 Skylake,但有关其他处理器的信息也会很好. 此外,存储缓冲区究竟有什么作用? 解决方案 相关:什么是存储缓冲区? 以及 推测执行的 cpu 分支是否可以包含访问 RAM
..
现代 x86 CPU 将传入的指令流分解为微操作 (uops1),然后调度这些 uops 乱序,因为他们的输入准备就绪.虽然基本思想很清楚,但我想知道如何调度就绪指令的具体细节,因为它会影响微优化决策. 以下面的玩具循环2为例: 顶部:lea eax, [ecx + 5]popcnt eax, eax添加edi,eax十二月顶 这基本上实现了循环(具有以下对应关系:eax -> tota
..
我在 Toshiba 笔记本(OS Win7 x32,lang C++)上使用 Intel graphics HD 3000 有问题. 经典的单上下文 OpenGL 应用程序工作正常,但在单个应用程序中的多个 OpenGL 上下文上会产生奇怪的行为: 在我的旧版本应用中,英特尔驱动程序根本无法创建第二个渲染上下文. 在我的基于 OpenGL 的软件架构行为发生重大变化后 现
..
我有带 AMD 处理器的 Windows 8.1 专业版.我安装了 Android SDK 和 Eclipse.它有效,但问题是当我创建 AVD 并启动它时显示此错误: 模拟器:错误:x86 模拟当前需要硬件加速! 请确保英特尔 HAXM 已正确安装和可用. CPU加速状态:未安装HAX内核模块! 我已经安装了 Intel Hardware_Accelerated_Executio
..
LOOP(英特尔参考手册输入)递减 ecx/rcx,然后如果非零则跳转.它很慢,但英特尔不能便宜地让它快起来吗?dec/jnz 已经宏保险丝进入 Sandybridge 家族的一个 uop;唯一的区别是设置标志. loop 在各种微架构上,来自 Agner Fog 的指令表:> K8/K10:7 次操作 Bulldozer-family/Ryzen:1 m-op(与宏融合测试分支
..
最近谷歌和英特尔发布了一种运行模拟器的新方法,它应该比以前的版本(模拟 ARM CPU)工作得更好.这里有一些关于它的链接:this 和
..
我的 HAXM 安装有问题.这是事情.每次尝试为我的计算机安装 HAXM 时,我都会收到此错误: 问题是,我的电脑支持虚拟化技术(见下图).知道如何解决这个问题吗? 解决方案 只需按照以下步骤操作: 转到控制面板 → 程序和功能. 点击打开和关闭窗口功能.一个窗口打开. 取消选中 Hyper-V 和 Windows Hypervisor Platform 选项并重新启动系统
..
我尝试在 Android Studio 中运行我的 Hello World 应用程序.我收到以下错误: 仿真器:错误:x86 仿真当前需要硬件加速! 请确保英特尔 HAXM 已正确安装并可使用. CPU加速状态:未安装HAX内核模块! 你能告诉我如何处理这个错误吗? 解决方案 根据这个回复,完整的步骤是: 1) 打开 SDK Manager(在 Android
..
英特尔的 32 位处理器(如奔腾)具有 64 位宽的数据总线,因此每次访问可获取 8 个字节.基于此,我假设这些处理器在地址总线上发出的物理地址始终是 8 的倍数. 首先,这个结论是否正确? 其次,如果它是正确的,那么应该在 8 字节边界上对齐数据结构成员.但是我看到人们在这些处理器上使用 4 字节对齐. 他们怎么能有理由这样做? 解决方案 通常的经验法则(直接来自 In
..