-
0 votesanswersviews
什么是英特尔至强Broadwell双处理器?
我正在编译数据以比较CPU和GPU GFLOP性能,我目前正在寻找双插槽CPU(E5-26xx系列),但是在Broadwell推出具有青铜和银色双处理器系列的Skylake架构后,他们只有一半核心和性能比Broadwell的 . 我错过了什么吗? -
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... -
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剥离... -
4 votesanswersviews
x86 CPU是否重新排序指令?
我已经读过一些CPU重新排序指令,但这对于单线程程序来说不是问题(指令仍会在单线程程序中重新排序,但看起来好像指令是按顺序执行的),这只是一个问题用于多线程程序 . 为了解决指令重新排序的问题,我们可以在代码中的适当位置插入内存屏障 . 但x86 CPU是否重新排序指令?如果没有,那么就没有必要使用内存屏障了吧? -
3 votesanswersviews
测量l1 / l2缓存中加载的行数(包括预取)?
我正在尝试确定L1缓存(处理器Intel Broadwell)中加载的缓存行数 . 我的内核代码是 a[i] = 2*b[i] + 2.3 // i from 0 to pow(10,8) 我正在使用perf事件 L1-dcache-load-misses . 测得的数量是预期的两倍 . 我期待6M负载和6M存储 . 但是 L1-dcache-load-misses 大约是12M . 但 LLC... -
26 votesanswersviews
Haswell / Skylake的部分寄存器究竟如何表现?写AL似乎对RAX有假依赖,而AH是不一致的
此循环在Intel Conroe / Merom上每3个周期运行一次,按预期方式在 imul 吞吐量上出现瓶颈 . 但是在Haswell / Skylake上,它每11个循环运行一次,显然是因为 setnz al 依赖于最后的 imul . ; synthetic micro-benchmark to test partial-register renaming mov ecx,... -
7 votesanswersviews
每个周期的浮点运算 - 英特尔
我一直在寻找相当长一段时间,似乎无法找到一个官方/结论性的数字引用英特尔至强四核可以完成的单精度浮点运算/时钟周期的数量 . 我有一个Intel Xeon quadcore E5530 CPU . 我希望用它来计算我的CPU可以达到的最大理论FLOP / s . MAX FLOPS =(#内核数)(时钟频率(周期/秒))(#FLOPS /周期) 任何指向我正确方向的东西都会有用 . 我发现了这个F... -
1 votesanswersviews
在CPU指令管道模拟器中管理Java线程
我使用多线程在Java中实现了一个5阶段CPU指令管道模拟器 . 每个Stage都是一个主要执行3个以下功能的线程,每两个阶段之间也有一个队列(容量为1) . 从上一阶段收到 . 过程即履行其主要职责 . 转发到下一阶段 . @Overridepublic void run(){while(!(latchQueue.isEmpty())){取();处理();向前();}} 模拟... -
0 votesanswersviews
CPU Pipeline:如何查找平均指令执行时间
在具有由提取,解码,执行和回写组成的四(4)级流水线的CPU中,每个级分别需要10,6,8和8 ns . 以下哪项是CPU的近似平均指令执行时间(纳秒)(ns)?这里,要执行的指令的数量足够大 . 此外,流水线处理过程的开销可以忽略不计,并忽略所有危险的延迟影响 . a)6 b)8 c)10 d)32 答案是10ns . 但我认为它可能是8ns,因为执行阶段需要8ns.please解释简单 . 谢... -
0 votesanswersviews
MIPS管道Cpu架构
我真的很清楚,任何形式的帮助都会非常感激 . 考虑到这个CPU: 我必须: 确定完成所有指令所需的总时钟周期数 . 自第一条指令开始后6 cc(时钟周期)后确定 ID/EX 寄存器的内容 . 这些是说明:0x450: addi $1, $4, -1lw $2, 0($1)lw $3, 0($2)sw $3, 80($1) 我完成了:完成了: | 1 | 2 | 3 | 4 | ... -
7 votesanswersviews
指令流水线和每条指令周期之间的链接
我理解instruction pipelining的基本原理 . 我还得到一些指令可能需要更长时间才能执行(cycles per instruction) . 但我没有得到两者之间的联系 . 我看到的所有管道图似乎都有“完美”指令,它们都具有相同的长度(周期数) . 但是,如果第一条指令需要5个周期,第二条指令需要3个周期呢? cpu是否会停顿2个周期? 这个摊位会被称为bubble吗?或者这与... -
0 votesanswersviews
为什么有些指令在经历相同的流水线阶段时需要更少的周期?
在处理器的使用说明书中,提到了一些指令以减少循环次数而其他指令则需要更多次数 . 处理器有一个n级流水线,所有指令都通过相同的流水线,然后它们不应该全部采用n个循环,因为每个阶段需要1个周期才能完成?是因为一些指令在管道中间开始和/或每个周期可以跳过几个阶段? -
1 votesanswersviews
MIPS流水线寄存器长度(IF / ID,ID / EX,EX / MEM,MEM / WB)
我目前正在攻读我的计算机体系结构考试,并且在 sub (在时钟通勤之前)的第3阶段之后发现了一个问题,要求说明(我会假设一点一点)mips管道架构中包含的值给出以下内容说明 . add $t0,$t1,$t2 sub $t3,$t3,$t5 beq $t6,$t0,16 add $t0,$t1,$t3 我不是要求解决这个问题但是经过一些研究后我没有取得太大的成功包围我所以我要求一些帮助/建... -
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... -
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位寄存器如下: 代码段:它包含要执行的所有指令 . 数据段:它包含数据,常量和工作区域 . ... -
0 votesanswersviews
为处理器创建指令格式
我应该为处理器创建一个指令格式,其中包含以下细节: 32条说明 2地址机 字长32位 16个寄存器 64 Mwords中央内存可用 内存是字节可寻址的 常数为1个字宽 地址:直接寄存,间接寄存,直接存储,立即,16位索引表示的寄存器 我其实几乎知道该怎么做但我对此有一些疑问 . 32指令的位大小是多少?我知道,如果我们有16个指令,它将是4.对于32,我们将有8... -
0 votesanswersviews
MIPS - 在静态多重问题中转发
在MIPS的静态双发布管道上,我可以使用在同一时钟周期内运行的两条指令的转发路径吗? 例如: 1. add $t0, $t0, $t1 2. sw $t0, 0($t2) 我可以在同一个时钟周期执行这两条指令吗? sw 可以在执行MEM阶段时使用 add 的结果值 . 那是对的吗? -
1 votesanswersviews
CPU寄存器和高速缓存一致性
当涉及到MESI等缓存一致性协议时,CPU寄存器和CPU缓存之间的关系是什么?如果某个值存储在CPU的缓存中,并且也存储在寄存器中,那么如果缓存行被标记为“脏”会发生什么?根据我的理解,即使缓存更新(由于MESI),寄存器也不会更新它的值 . 亨赫这段代码: static void Main() { bool complete = false; var t = new T... -
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 ...