-
1 votesanswersviews
为什么proc / cpuinfo只在我的galaxy S4上显示4个处理器
我有个问题! 我已经检查了Galaxy S4上的CPU信息 . 根据规格,S4有octa芯片组: 芯片组:Exynos 5 Octa 5410 CPU:四核1.6 GHz Cortex-A15和四核1.2 GHz Cortex-A7 但是,当我检查时 $ adb shell cat proc / cpuinfo 它显示4个处理器只有8个 . 我想知道为什么?如果您有任何经验,请给我一些想法... -
4 votesanswersviews
x86 CPU是否重新排序指令?
我已经读过一些CPU重新排序指令,但这对于单线程程序来说不是问题(指令仍会在单线程程序中重新排序,但看起来好像指令是按顺序执行的),这只是一个问题用于多线程程序 . 为了解决指令重新排序的问题,我们可以在代码中的适当位置插入内存屏障 . 但x86 CPU是否重新排序指令?如果没有,那么就没有必要使用内存屏障了吧? -
12 votesanswersviews
为什么英特尔公布的一些Haswell AVX延迟比Sandy Bridge慢3倍?
在英特尔intrinsics webapp中,有几项行动似乎从桑迪桥变为哈斯威尔 . 例如,许多插入操作(如_mm256_insertf128_si256)显示如下的成本表: Performance Architecture Latency Throughput Haswell 3 - Ivy Bridge 1 - Sandy... -
0 votesanswersviews
Haswell双路径执行CPU?
Haswell现在有 2 Branch Units - 如下所示:http://arstechnica.com/gadgets/2013/05/a-look-at-haswell/2/ 这是否意味着Haswell是双路径执行CPU? 关于:http://ditec.um.es/~jlaragon/papers/aragon_ICS02.pdf 这是否意味着Haswell只能在整数ALU和Sh... -
5 votesanswersviews
L2指令获取错过远高于L1指令获取未命中
我正在生成一个合成C基准测试,旨在通过以下Python脚本导致大量的指令获取错过: #!/usr/bin/env python import tempfile import random import sys if __name__ == '__main__': functions = list() for i in range(10000): func_nam... -
127 votesanswersviews
陷阱和中断有什么区别?
陷阱和中断有什么区别? 如果不同系统的术语不同,那么它们在x86上意味着什么? -
44 votesanswersviews
为什么循环指令慢?英特尔无法有效实施吗?
LOOP(Intel ref manual entry)递减ecx / rcx,and then jumps if non-zero . 它是否已经让它快速成功? dec/jnz 已经macro-fuses into a single uop在Sandybridge家庭;唯一的区别是设置标志 . 关于各种微体系结构的 loop ,来自Agner Fog's instruction tables:... -
2 votesanswersviews
如何复制写作工作
假设我们有一个父进程,内存中存储了一些任意数量的数据,我们使用fork来生成子进程 . 我理解为了让操作系统在写入时执行复制,包含我们正在修改的数据的内存中的某个页面将设置其只读位,并且操作系统将使用在子项尝试时将导致的异常修改数据以将整个页面复制到内存中的另一个区域,以便孩子获得它自己的副本 . 我不明白的是,如果内存中的特定部分被标记为只读,那么数据最初所属的父级也不能修改数据 . 那么整个方... -
38 votesanswersviews
如何在SSE / AVX中使用融合乘法 - 加法(FMA)指令
我了解到一些Intel / AMD CPU可以同时进行多次加法并添加SSE / AVX:FLOPS per cycle for sandy-bridge and haswell SSE2/AVX/AVX2 . 我想知道如何在代码中做到最好,我也想知道它是如何在CPU内部完成的 . 我的意思是超标量架构 . 假设我想做一个很长的总和,如下面的SSE: //sum = a1*b1 + a2*b2 + ... -
0 votesanswersviews
为什么内存指令在ARM汇编中需要4个周期?
诸如ldr,str或b之类的存储器指令在ARM组件中各占4个周期 . 是因为每个内存位置长4个字节? -
7 votesanswersviews
预取是由精确地址流还是由缓存行流触发的?
在现代x86 CPU上,硬件prefetching是一种重要的技术,可以在用户代码明确请求之前将缓存行放入缓存层次结构的各个级别 . 基本思想是,当处理器检测到对顺序或跨步顺序1位置的一系列访问时,即使在执行(可能)实际访问这些位置的指令之前,它也将继续并获取序列中的其他存储器位置 . 我的问题是,预取序列的检测是基于完整地址(用户代码请求的实际地址)还是高速缓存行地址,这几乎是除了底部6位2剥离... -
0 votesanswersviews
指令寄存器Motorola 68k
你好我想知道摩托罗拉68k的程序计数器是如何增加的,因为Mc68k指令是长度可变的 . 那么指令寄存器的长度是多少?指令寄存器如何保存长度可变指令? -
0 votesanswersviews
x86寄存器:MBR / MDR和指令寄存器
根据我的阅读,IA-32架构有10个32位和6个16位寄存器 . 32位寄存器如下: 数据寄存器 - EAX,EBX,ECX,EDX 指针寄存器 - EIP,ESP,EBP 索引寄存器 - ESI,EDI 控制寄存器 - EFLAG(EIP也被归类为控制寄存器) 16位寄存器如下: 代码段:它包含要执行的所有指令 . 数据段:它包含数据,常量和工作区域 . ... -
1 votesanswersviews
ARM CPU上的逐出缓冲区和合并存储缓冲区有什么区别?
我使用带有两个L1缓存的Cortex A9 CPU:一个用于数据,另一个用于指令 . 缓存策略可以是"write-back"或"write-through" . Cortex-A9 Technical Reference Manual part "7.1. About the L1 memory system"表示数据L1缓存有: ... -
6 votesanswersviews
x86 / x64芯片还在使用微程序吗?
如果我理解这两篇文章,那么最低级别的英特尔架构已经过渡到使用RISC指令,而不是英特尔着名的传统CISC指令集: http://www.hardwaresecrets.com/article/235/4 http://www.tomshardware.com/reviews/intel,264-6.html 如果是这种情况,那么x86 / x64芯片是否仍然采用微程序设计,还是像传统的RISC芯片... -
0 votesanswersviews
为什么x86不能被设备驱动程序抽象? [关闭]
如果小型公司 生产环境 处理器更可行,我觉得计算机市场会好一些 . 我看到的主要限制是,他们必须获得使用x86的许可才能使任何应用程序在其上运行 . 我不确定为什么一个操作系统不能有一个cpu设备驱动程序,它实现了x86指令集,只是将它转换为它正在使用的处理器的相应操作码 . 我知道这实际上是英特尔在硬件方面的作用 . 内部处理器采用RISC设计,x86接口位于顶部 . 为什么不能在软件级别完成?... -
8 votesanswersviews
Sandybridge微体系结构中的堆栈引擎是什么?
我正在阅读http://www.realworldtech.com/sandy-bridge/,我在理解一些问题时面临一些问题: 专用堆栈指针跟踪器也存在于Sandy Bridge中,并重命名堆栈指针,消除了串行依赖性并删除了多个uop . 究竟是什么 dedicated stack pointer tracker ? 对于Sandy Bridge(以及P4),英特尔仍然使用术语ROB . ... -
7 votesanswersviews
lock xchg与mfence具有相同的行为吗?
我想知道的是,如果 lock xchg 与一个线程访问一个正在被其他线程进行变异的内存位置(我们只是随机说)的角度,它将具有与 mfence 类似的行为 . 它能保证我获得最新的 Value 吗?之后的内存读/写指令? 我混淆的原因是: 8.2.2“读取或写入不能使用I / O指令,锁定指令或序列化指令进行重新排序 . ” - 英特尔64开发人员手册卷 . 3 这是否适用于线程? mfenc... -
2 votesanswersviews
为最近的CPU架构生成每个周期加载/存储
受到this answer的启发 FLOPS per cycle for sandy-bridge and haswell SSE2/AVX/AVX2 对于Sandy / Ivy Bridge,Broad / Haswell,Sky / Kaby Lake,可以在核心上发布的正常装载/装载和存储的数量是多少?同样有趣的是AMD Bulldozer,Jaguar和Zen的数量 . PS - 我知道... -
3 votesanswersviews
在x86上失败的存储到转发转发的成本是多少?
在最近的x86架构上,存储到负载转发失败的成本是多少? 特别是,由于负载部分地与早期存储重叠,或者因为较早的加载或存储跨越某些导致转发失败的对齐边界,因此存储到加载转发失败 . 当然有延迟成本:它有多大?是否还存在吞吐量成本,例如,故障的存储到转发转发是否使用其他资源然后对其他负载和存储不可用,或者甚至是其他非存储器操作? 当商店的所有部分都来自商店缓冲区时,与存储缓冲区和L1混合的情况有区别吗?... -
3 votesanswersviews
x86_64 CPU可以在同一个管道阶段执行两个相同的操作吗?
众所周知,英特尔x86_64处理器不仅是流水线架构,也是超标量 . 这意味着CPU可以: Pipeline - 在一个时钟,执行一个操作的某些阶段 . 例如,两个ADD与阶段的移动并行: ADD(stage1) - > ADD(stage2) - >什么都没有 什么 - > ADD(stage1) - > ADD(stage2) Superscalar ... -
25 votesanswersviews
如何安排x86 uops?
现代x86 CPU将传入的指令流分解为微操作(uops1),然后在输入准备就绪时调度这些uops out-of-order . 虽然基本思路很清楚,但我想了解准备好指令的具体细节,因为它会影响微优化决策 . 例如,采取以下玩具循环2: top: lea eax, [ecx + 5] popcnt eax, eax add edi, eax dec ecx jnz top 这基本上实现了循环(具有... -
49 votesanswersviews
每个循环的FLOPS用于沙桥和haswell SSE2 / AVX / AVX2
我对使用Sandy-Bridge和Haswell可以完成每个核心每个循环的触发器感到困惑 . 据我所知,对于SSE,每个核心每个周期应该为4个触发器,对于AVX / AVX2,每个核心每个周期应该有8个触发器 . 这似乎在这里得到验证,How do I achieve the theoretical maximum of 4 FLOPs per cycle?,在这里,Sandy-Bridge CP... -
299 votesanswersviews
取消优化Intel Sandybridge系列CPU中管道的程序
我一直在绞尽脑汁想要完成这项任务一周,我希望有人能带领我走向正确的道路 . 让我从教师的指示开始: 您的任务与我们的第一个实验任务相反,即优化素数计划 . 你在这个任务中的目的是使程序失望,即让它运行得更慢 . 这两个都是CPU密集型程序 . 他们需要几秒钟才能在我们的实验室电脑上运行 . 您可能无法更改算法 . 要取消优化程序,请使用您对英特尔i7管道运行方式的了解 . 想象一下重新排序指令路... -
21 votesanswersviews
为什么按位运算比旧微处理器上的加/减操作稍快?
我今天看到了这段摘录: 在大多数较旧的微处理器上,按位运算比加法和减法运算稍快,并且通常比乘法和除法运算快得多 . 在现代体系结构中,情况并非如此:按位运算通常与添加速度相同(尽管仍然比乘法更快) . 我很好奇为什么按位操作比旧微处理器上的加/减操作稍快一些 . 我能想到的只会导致延迟的是,实现加/减的电路取决于几级逻辑门(并行加法器和诸如此类的东西),而按位运算则具有更简单的电路实现 . 这... -
12 votesanswersviews
Intel CPUs指令队列提供静态分支预测?
在“英特尔手册”第3卷中,它包含硬件事件计数器的说明: BACLEAR_FORCE_IQ计算指令队列强制BACLEAR的次数 . IQ还负责基于由L2分支预测单元提供的静态方案和动态数据来提供条件分支预测方向 . 如果在目标阵列中找不到条件分支目标并且IQ预测分支被采用,则IQ将强制分支地址计算器发出BACLEAR . BAC声明的每个BACLEAR在指令获取管道中产生大约8个周期的气泡 .... -
3 votesanswersviews
英特尔x86-64 CPU可以访问多少页表来转换虚拟内存?
在将虚拟地址转换为物理地址时,我试图了解查找表的数量 . 英特尔手册似乎列出了许多方案: http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-system-programming-manual-325384.pdf (第4条) 而U... -
1 votesanswersviews
从我的英特尔系统检测CPU和核心信息
我目前正在使用Windows 8 Pro OS,以及处理器:Intel(R)Core(TM)i7-4790 CPU @ 3.60GHz,RAM 8 GB . 我想知道我的系统有多少物理处理器和多少实际核心 . 根据我对硬件和本次讨论的基本了解here,当我在英特尔网站here上搜索此处理器的英特尔信息时,它说: # of Cores 4 # of Threads 8 在我的CPU系统的任务管理... -
0 votesanswersviews
x86-64 CPU寄存器是在多个内核之间共享的吗? [重复]
这个问题在这里已有答案: Does each core has its own private set of registers? 2个答案 What does multicore assembly language look like? 10个答案 Why each logical CPU has it's own CR3 register in case of multithrea... -
2 votesanswersviews
英特尔:序列化指令和分支预测
The Intel Architecture's Developer's Manual(Vol3A,第8-26节),说: 奔腾处理器和更新的处理器系列使用分支预测技术,通过在执行分支指令之前预取分支指令的目标来提高性能 . 因此,当执行分支指令时,指令执行不是确定性地序列化的 . 这是什么意思? 听起来真的非常糟糕 . 这听起来像CPUID打破分支预测(或反之亦然)的序列化指令,但这似乎不太可...