intel相关内容

英特尔手册中的x86_64 Opcode编码格式

英特尔x86_64参考手册?例如,在添加操作码中,我可以猜测诸如"I" =立即数之类的内容,但是在那里这些的完整列表吗? 解决方案 “操作数编码"列在中缩写为Op/En指令摘要表标题.指令操作数编码使用以下命令为每个汇编指令语法提供信息:交叉引用操作数编码中的行条目的字母指令摘要表之后的定义表.... 注意 指令的Op/En列中的字母仅适用于编码定义表紧跟在指令摘要表之后. ..
发布时间:2021-05-16 19:18:45 其他开发

英特尔X86汇编:如何分辨多少位是一个论点?

在以下程序集中: mov dx,单词ptr [ebp + arg_0]mov [ebp + var_8],dx 将其视为一个组合的C函数,arg_0(C函数的参数)宽多少位?(本地C变量)var_8的宽度为多少位?也就是说,它是short还是int等. 由此看来,由于dx是16位寄存器,因此var_8是16位.但是我不确定arg_0. 如果程序集也包含以下行: ecx,[e ..
发布时间:2021-05-16 19:11:43 其他开发

启用/禁用硬件锁定清除

我正在使用glibc 2.24版本.它具有通过事务同步扩展(例如_xbegin()和_xend())用于pthread_mutex_lock实现的锁定省略路径.我认为硬件应该支持锁定清除,因为 hle CPU标志用于硬件锁定清除.我使用的处理器是采用Skylake架构的Intel®Xeon®Gold 6130. 首先,我想禁用Lock Elision,但是当我运行使用 pthread_mut ..
发布时间:2021-05-11 18:56:57 其他开发

NASM ASM无法正确编译?

我正在遵循一个教程并正在学习 x64英特尔语法组件,并且我有这个代码示例,该示例应该可以毫无问题地进行编译,但是我遇到了错误,因此无法上手. 代码示例: .codeASM_Debug过程mov rax,55岁退回ASM_Debug endp结尾 如果我使用 x64 Intel Syntax MASM 使用内联汇编进行编译,则我正在使用 MinGW(G ++)代码编译器使用 NASM ..
发布时间:2021-05-09 20:29:33 其他开发

并行程序给出错误“对_Kmpc_ok_to_fork的未定义引用";

我正在尝试在Linux上编译OPENMP fortran代码.我大约有230个子例程.我用来编译代码的代码如下:1)首先,我使用以下命令编译每个子例程 ifort -c -override-limits -openmp * .for 然后,所有子例程现在都有一个单独的目标文件. 2)然后,我尝试通过以下命令将目标文件编译为可执行文件 ifort * .o -o myprogram ..
发布时间:2021-05-09 19:20:18 服务器开发

无法启动仿真器:“仿真器:警告:请求的RAM 1024M对于您的系统来说太高了.减小到最大支持大小0M";

我相信这是因为我已经更新了我的SDK和工具,而没有更新HAXM.不幸的是,我在这台机器上没有管理员权限,需要帮助来弄清楚如何在不更新HAXM的情况下使仿真器工作.有任何想法吗?降级SDK?也许获得新的HAXM是前进的唯一选择吗? 9:55 AM Emulator:警告:请求的RAM 1024M对于您的系统来说太高了.减小到最大支持大小0M9:55 AM仿真器:进程完成,退出代码为0 解决方 ..
发布时间:2021-05-04 19:13:25 移动开发

Ethtool Structs元素以及它们是什么.在它们上定义了哪些设置和信息

我正在从Intel E1000E 和Realtek r1869 驱动程序中读取驱动程序代码.我都喜欢这两种设备, 目前,我正在学习 ethtool_ops .我知道Ethtool可以成为 的工具 长话短说,ethtool是显示和调整通用NIC/驱动程序参数的一种方式 (标识,接收和传输队列的数量,接收和传输卸载,您将其命名) 但是,如果您查看struct ethtool_op ..
发布时间:2021-05-03 18:38:54 服务器开发

什么时候应该使用RSP寄存器为堆栈增加空间?

我有一些组装项目要实现,而对于何时在堆栈上增加空间以及应该增加多少空间,我感到困惑. 我正在unix系统(macos)intel x86_64上使用NASM版本2.13.03. 我一直在阅读大量文档,并进行了大量研究,但都没有以足够详细的方式解释我的问题的答案.我了解红色区域,并且叶子功能不需要使用增加的堆栈. 我知道应该在函数调用之前使用sub rsp增加堆栈,而应该在函数调用 ..
发布时间:2021-04-24 21:10:10 其他开发

段寄存器如何参与存储器地址转换?

到目前为止,我对细分的了解是 虚拟地址包含一个段选择器和一个偏移量 分段选择器与GDTR结合使用以查找分段描述符的线性地址 段描述符存储有关所选段的信息,包括其线性地址 所以,我的问题是: 根据我所读的内容,将虚拟地址加载到段寄存器中,然后以某种方式从那里继续翻译.在将虚拟地址加载到段寄存器以获得描述符之后,段寄存器会发生什么? 据我了解,段寄存器还保存描述符的缓存值. ..
发布时间:2021-04-24 21:09:08 其他开发

汇编为什么lea快?

我和我的教授谈话,他说: leaq(%rax,%rax,8) 比: imulq $ 9,%rax 我问他为什么(在两种情况下,我们都用几乎相同的数字进行乘法运算),他说我们不会介入. 有人可以通过简单的方式帮助我理解leaq为何速度很快吗? 评论中提出的一个问题是: imulq $ 9,%rax 比执行2条命令快,一个命令向左移动,另一个命令添加一个%rax(我 ..
发布时间:2021-04-24 21:08:13 其他开发

英特尔X86如何实现商店整体订单

由于X86的TSO内存模型,它可以保证所有商店的总订单.我的问题是,是否有人知道如何实现此目标. 我对如何实现所有四个栅栏都有很好的印象,因此我可以解释如何保留本地秩序.但是这四个栅栏只会给出PO.它不会给您TSO(我知道TSO允许较早的商店跳到较新的货物前面,因此仅需要4个栅栏中的3个). 单个地址上所有内存操作的总顺序是一致性的责任.但是我想知道英特尔(尤其是Skylake)如何在 ..

为什么Ice Lake不像Tremont那样有MOVDIRx?他们已经有更好的了吗?

我注意到英特尔 Tremont 具有64个字节的存储指令,其中包含 MOVDIRI 和 MOVDIR64B . 这些保证原子写入内存,而 不 保证负载原子性.此外,写入操作的顺序很弱,可能需要紧随其后的防护措施. 我在IceLake中找不到 MOVDIRx . 为什么 冰湖 不需要诸如 MOVDIRx 之类的说明? (在第15页的底部) 英特尔®体系结构指令集扩展和未来功能编程参 ..
发布时间:2021-04-24 21:07:18 其他开发

了解Intel CPU的4K别名

我一直在阅读有关由于Intel CPU的地址位6至11含糊不清而导致的加载/存储重叠导致的4K别名.因此,我试图编写各种简单的测试(在i7-3770k,Win7、64位,VS2017上)专门引起该问题,以确保我在实践中理解它. 我一直在尝试但未能证明其行为的第一个测试是: void Test4KAliasing1(){typedef float值;//也尝试过使用doubleconst ..
发布时间:2021-04-24 21:07:05 其他开发

关于超线程中L1缓存的自适应模式

我是一名学生,最近正在做一些有关超线程的研究.我对该功能感到有点困惑-L1数据缓存上下文模式. 在《英特尔®64和IA-32架构开发人员手册:第二卷》.3A (第11章/缓存控制),我在下面引用: 共享模式 在共享模式下,逻辑处理器之间竞争性地共享L1数据高速缓存.即使逻辑处理器使用相同的CR3寄存器和分页模式,也是如此.在共享模式下,可以对L1数据高速缓存中的线性地址进行别名处 ..

x86-64管道是否会像JMP RAX一样在间接跳转时停顿?

在x86-64中,如果您使用以下汇编代码: MOV RAX,(内存地址)JMP RAX 管道是否在执行分支之前停滞(等待MOV完成RAX处理),还是像条件分支一样冲洗管道? 解决方案 对于大多数现代80x86 CPU;有静态预测(没有历史可用来做出更好的预测)和动态预测(有以前执行的历史可以使用). 对于静态预测,CPU预测 JMP RAX 之后立即执行该指令.我不能完全确定 ..

如何强制禁用intel_pstate?即使grub中的intel_pstate = disable选项,重启时也会启用intel_pstate

我正在尝试使用cpu-frequency标度设置cpu频率.在我的系统中,仅支持powersave,性能frequency-scaling-governor.在其他文档中对此进行了解释,默认情况下,intel_pstate是启用的,并且仅支持powersave,性能frequency-scaling-governor和解决方案是禁用intel_pstate的.所以我尝试如下禁用 sudo na ..
发布时间:2021-04-24 21:05:26 服务器开发

CPU之间的通信如何发生?

有关L2/L3缓存的另一个问题解释说,L3可用于进程间通信(IPC). 还有其他方法/途径可以进行这种交流吗? 之所以似乎还有其他途径,是因为英特尔在其最新的处理器产品系列中将每个内核的L3缓存数量几乎减少了一半(在Broadwell EP中,每个内核2.5 MiB ). 每核私有L2从256k增加到1M. 解决方案 有 inter-processor_interrupt ..
发布时间:2021-04-24 21:04:56 其他开发