intel相关内容

如何计算 x86 linux 上的 asm 延迟循环的时间?

我正在浏览此链接 delay在组装中添加组装延迟.我想通过添加不同的延迟值来执行一些实验. 产生延迟的有用代码 ;启动延迟移动 bp, 43690mov si, 43690延迟2:十二月没有jnz延迟2十二月cmp si,0jnz延迟2;结束延迟 我从代码中了解到,延迟与执行 nop 指令 (43690x43690 ) 所花费的时间成正比.所以在不同的系统和不同版本的操作系统中,延迟会有 ..
发布时间:2021-12-18 09:11:30 服务器开发

设计 AT&T 汇编语法的最初原因是什么?

在 x86 或 amd64 上使用汇编指令时,程序员可以使用“Intel"(即 nasm 编译器)或“AT&T"(即 gas 编译器)汇编语法.“Intel"语法在 Windows 上更流行,但“AT&T"在 UNIX(类)系统上更流行. 但是 Intel 和 AMD 手册,即芯片创建者创建的手册,都使用“Intel"语法. 我想知道,“AT&T"语法设计背后的最初想法是什么?远离处理 ..
发布时间:2021-12-18 09:07:32 其他开发

如何使用 gcc 生成 Intel 语法中的汇编代码?

gcc -S 选项将生成 AT&T 语法的汇编代码,有没有办法生成 Intel 语法的文件?或者有没有办法在两者之间转换? 解决方案 你试过了吗? gcc -S -masm=intel test.c 未经测试,但我在此论坛中找到了它,有人声称它对他们有用. 我刚刚在 mac 上试过了,但失败了,所以我查看了我的手册页: -masm=方言使用选定的方言输出汇编指令.支持的选择是 ..
发布时间:2021-12-18 08:44:55 其他开发

慢jmp-指令

随着我的问题在 x86-64 中使用 32 位寄存器/指令的优势,我开始衡量成本的指令.我知道这已经多次完成(例如 Agner Fog),但我正在做用于娱乐和自我教育. 我的测试代码非常简单(为了简单起见,这里是伪代码,实际上是汇编程序): for(outer_loop=0;outer_loop 但还是要考虑一些事情. 如果循环的内部部分很大(大NI>10^7),则循环的整个内容无 ..
发布时间:2021-12-18 08:42:29 其他开发

如何阅读英特尔操作码符号

我正在阅读有关汇编指令的英特尔操作码的一些材料,但我不明白操作码字节后面是什么意思.例如:cw、cd、/2、cp、/3. 请给我一个提示,它是什么意思或者我在哪里可以找到完整的参考资料? E8 cw CALL rel16 调用接近、相对、相对于下一条指令的位移E8 cd CALL rel32 调用接近、相对、相对于下一条指令的位移FF /2 CALL r/m16 调用接近,绝对间接,地址以 ..
发布时间:2021-12-18 08:42:04 其他开发

什么是部分旗帜摊位?

我刚刚回顾了Peter Cordes 的这个答案,他说, 部分标志停顿在读取标志时发生,如果它们发生的话.P4 永远不会有部分标志停顿,因为它们永远不需要合并.相反,它具有错误的依赖关系.几个答案/评论混淆了术语.他们描述了一个错误的依赖关系,但随后将其称为部分标志停顿.这是由于仅写入一些标志而发生的减速,但术语“部分标志停顿"是在必须合并部分标志写入时在 SnB 之前的 Intel 硬件上 ..
发布时间:2021-12-18 08:41:16 其他开发

Sandybridge 微架构中的堆栈引擎是什么?

我正在阅读http://www.realworldtech.com/sandy-bridge/我在理解某些问题时遇到了一些问题: 专用堆栈指针跟踪器也存在于 Sandy Bridge 中并重命名堆栈指针,消除串行依赖和删除一些 uop. 专用堆栈指针跟踪器究竟是什么? 对于 Sandy Bridge(和 P4),英特尔仍然使用术语 ROB.但它理解这一点至关重要,在这种情况下,它 ..
发布时间:2021-12-18 08:40:57 其他开发

通过 WinAPI 确定 Intel HD 显卡版本

所以我试图通过 WinAPI 函数获取有关显卡的信息,但有一个关于如何获取我的确切显卡信息的问题.我编写了调用 EnumDisplayDevices 的代码,通过我的调用,我收到了 DeviceString“Intel(R) HD Graphics Family".然而,这并没有告诉我确切的卡,例如 Intel HD Graphics Family 有 4200、4400 等等(根据我的理解). ..
发布时间:2021-12-18 00:03:25 其他开发

32 字节对齐例程不适合 uops 缓存

KbL i7-8550U 我正在研究 uops-cache 的行为,但遇到了一个误解. 如英特尔优化手册 2.5.2.2(我的)中所述: 解码的 ICache 包含 32 个集合.每组包含八种方式.每条路最多可容纳六个微操作. - 所有微操作都代表静态的指令在代码中是连续的,并且它们的 EIP 在同一个对齐中32 字节区域. - 最多三种方式可以专用于同一 ..
发布时间:2021-12-08 11:51:24 其他开发

英特尔硬件上的存储缓冲区大小?究竟什么是存储缓冲区?

Intel 优化手册 谈到了处理器的许多部分中存在的存储缓冲区的数量,但似乎没有谈到存储缓冲区的大小.这是公开信息还是存储缓冲区的大小作为微架构细节保留? 我正在研究的处理器主要是 Broadwell 和 Skylake,但有关其他处理器的信息也会很好. 此外,存储缓冲区究竟有什么作用? 解决方案 相关:什么是存储缓冲区? 以及 推测执行的 cpu 分支是否可以包含访问 RAM ..
发布时间:2021-12-08 11:42:44 其他开发

x86 uops 究竟是如何调度的?

现代 x86 CPU 将传入的指令流分解为微操作 (uops1),然后调度这些 uops 乱序,因为他们的输入准备就绪.虽然基本思想很清楚,但我想知道如何调度就绪指令的具体细节,因为它会影响微优化决策. 以下面的玩具循环2为例: 顶部:lea eax, [ecx + 5]popcnt eax, eax添加edi,eax十二月顶 这基本上实现了循环(具有以下对应关系:eax -> tota ..
发布时间:2021-12-08 11:25:18 其他开发

Intel HD 3000 上正确的 OpenGL 初始化是什么?

我在 Toshiba 笔记本(OS Win7 x32,lang C++)上使用 Intel graphics HD 3000 有问题. 经典的单上下文 OpenGL 应用程序工作正常,但在单个应用程序中的多个 OpenGL 上下文上会产生奇怪的行为: 在我的旧版本应用中,英特尔驱动程序根本无法创建第二个渲染上下文. 在我的基于 OpenGL 的软件架构行为发生重大变化后 现 ..
发布时间:2021-12-05 19:44:36 C/C++开发

使用 AMD 处理器启动 AVD 时出错

我有带 AMD 处理器的 Windows 8.1 专业版.我安装了 Android SDK 和 Eclipse.它有效,但问题是当我创建 AVD 并启动它时显示此错误: 模拟器:错误:x86 模拟当前需要硬件加速! 请确保英特尔 HAXM 已正确安装和可用. CPU加速状态:未安装HAX内核模块! 我已经安装了 Intel Hardware_Accelerated_Executio ..
发布时间:2021-12-01 11:39:35 移动开发

为什么循环指令很慢?英特尔不能有效地实施它吗?

LOOP(英特尔参考手册输入)递减 ecx/rcx,然后如果非零则跳转.它很慢,但英特尔不能便宜地让它快起来吗?dec/jnz 已经宏保险丝进入 Sandybridge 家族的一个 uop;唯一的区别是设置标志. loop 在各种微架构上,来自 Agner Fog 的指令表:> K8/K10:7 次操作 Bulldozer-family/Ryzen:1 m-op(与宏融合测试分支 ..
发布时间:2021-11-30 11:03:56 其他开发

英特尔 HAXM 安装错误 - 此计算机不支持英特尔虚拟化技术 (VT-x)

我的 HAXM 安装有问题.这是事情.每次尝试为我的计算机安装 HAXM 时,我都会收到此错误: 问题是,我的电脑支持虚拟化技术(见下图).知道如何解决这个问题吗? 解决方案 只需按照以下步骤操作: 转到控制面板 → 程序和功能. 点击打开和关闭窗口功能.一个窗口打开. 取消选中 Hyper-V 和 Windows Hypervisor Platform 选项并重新启动系统 ..
发布时间:2021-11-27 17:05:14 其他开发

仿真器:错误:x86 仿真当前需要硬件加速

我尝试在 Android Studio 中运行我的 Hello World 应用程序.我收到以下错误: 仿真器:错误:x86 仿真当前需要硬件加速! 请确保英特尔 HAXM 已正确安装并可使用. CPU加速状态:未安装HAX内核模块! 你能告诉我如何处理这个错误吗? 解决方案 根据这个回复,完整的步骤是: 1) 打开 SDK Manager(在 Android ..
发布时间:2021-11-27 17:02:44 移动开发

32 位 Intel 处理器上的内存对齐

英特尔的 32 位处理器(如奔腾)具有 64 位宽的数据总线,因此每次访问可获取 8 个字节.基于此,我假设这些处理器在地址总线上发出的物理地址始终是 8 的倍数. 首先,这个结论是否正确? 其次,如果它是正确的,那么应该在 8 字节边界上对齐数据结构成员.但是我看到人们在这些处理器上使用 4 字节对齐. 他们怎么能有理由这样做? 解决方案 通常的经验法则(直接来自 In ..
发布时间:2021-11-26 14:03:32 其他开发