![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Intel微架构
一凡stkeke
程序猿要非常勤奋地把自己变成一个懒货
展开
-
Intel Core & Enhanced Core架构/微架构/流水线 (1) - 特性概述
Intel Core微架构引入了下列特性,可以为单线程和多线程程序提供两种性能选择:高性能模式或者能效性能模式。Intel® 宽动态执行(指带宽)使得每个处理器核可以以高带宽读取,分发,执行指令,最多在每个时钟周期退役4条微指令。这个特性包括: 14级高效指令流水线 3个算逻单元 4个指令译码器,每个周期译码最多译码5条x86指令(通过宏熔合) 宏熔合与微熔合机制提升前端吞吐量...原创 2019-01-03 17:04:33 · 704 阅读 · 0 评论 -
Intel Core & Enhanced Core架构/微架构/流水线 (2) - 代表处理器
下表是基于Intel Core微架构的一些代表处理器。 dual-core processors Quad-core processors Intel® Core™ 2 Extreme X6800 processor Intel® Core 2 Duo processors Intel Xeon 3000, 5100 series...原创 2019-01-03 17:06:19 · 355 阅读 · 0 评论 -
Intel Core & Enhanced Core架构/微架构/流水线 (3) - 流水线概述
Intel® Core Microarchitecture Pipeline OverviewIntel Core微架构的流水线包括:有序发射前端,从内存中获取指令,利用4个指令译码器将x86指令译码为微指令,然后供应给乱序执行核处理 乱序的超标量执行核,根据微指令的操作数和执行资源的可用情况,将微指令重排序以便尽快投入执行,每个时钟周期最多可以发射6条微指令进入执行状态。 有序退役单...原创 2019-01-03 17:07:51 · 685 阅读 · 0 评论 -
Intel Core & Enhanced Core架构/微架构/流水线 (4) - 流水线前端概述
Front End前端的主要功能是为6发射宽度的乱序引擎提供并保持微指令流。下表列出了微架构中前端的构成部件,以及他们的功能和在性能方面面临的挑战。 部件 功能 性能挑战 分支预测单元(BPU) 预测各种类型的分支指令:条件分支,无条件分支,间接分支,直接分支,调用,回返指令。预测信息辅助取指单元获...原创 2019-01-03 17:09:08 · 492 阅读 · 0 评论 -
Intel Core & Enhanced Core架构/微架构/流水线 (5) - 分支预测/指令预取
Branch Prediction Unit在分支条件决断结果实际计算出来之前,分支预测机制就可以让处理器开始“投机式地”执行预测的分支指令。所有的分支指令都依赖于分支预测单元进行分支预测。分支预测单元实现了下列特性:16个条目的返回栈缓存区,可以让BPU准确的预测RET指令的返回地址 BPU查找(即分支预测)流水线前端排队机制(todo:说的啥?),BPU每次对32字节的指令进行分支预...原创 2019-01-03 17:11:04 · 750 阅读 · 0 评论 -
Intel Core & Enhanced Core架构/微架构/流水线 (6) - 指令预译码/指令队列/指令译码
Instruction PreDecode指令预译码器从指令Cache或者指令预取缓存区中接收16字节的指令流,执行如下的预译码操作:确定每条指令的长度(注:x86指令是变长指令) 译码每条指令的指令前缀 为译码器标记每条指令的不同属性(例如,“是分支指令”)指令预译码器可以每个周期想指令队列写入6条x86指令。如果读取的指令行含有超过6条指令,预译码器每个周期译码6条指令,直到指令...原创 2019-01-03 17:12:06 · 936 阅读 · 0 评论 -
Intel Core & Enhanced Core架构/微架构/流水线 (7) - 栈指针跟踪器/微熔合
Stack Pointer TrackerIntel 64和IA32架构上有几个用于参数传递以及过程进入与退出的常用指令:PUSH,POP,CALL,LEAVE和RET。这些指令隐式得更新栈指针寄存器(ESP或RSP),无需软件介入,即可在程序栈中维护传递的参数和过程执行控制流(进入与退出)。在前几代微架构中,这些指令通常都译码为多条微指令。栈指针跟踪器将这些指令中对栈指针的更新操作移到了...原创 2019-01-03 17:13:14 · 281 阅读 · 0 评论 -
Intel Core & Enhanced Core架构/微架构/流水线 (8) - 执行核
Execution CoreIntel Core微架构的执行核是超标量的,且可以乱序处理指令。注意:这里没有使用乱序执行指令,用的是乱序处理指令。“处理”在这里包括对指令的寄存器重命名,重排序以及派发,到最后执行。当某个依赖链导致机器不得不等待某个资源时(例如等待某个二级缓存中的数据),执行核可以执行其他指令。这种乱序机制可以增加处理器的整体每周期执行指令数(IPC)。执行核包含以下三个主...原创 2019-01-03 17:14:25 · 433 阅读 · 0 评论 -
Intel Core & Enhanced Core架构/微架构/流水线 (9) - 执行单元&发射口&旁路时延
Issue Ports and Execution Units通过发射口,调度器可以每周期分发6条微指令。Intel Core微架构和Enhanced Intel Core微架构的发射口以及支持的操作在下表中列出。其中,Intel Core微架构的标识是06_0FH,Enhanced Intel Core微架构的标识是06_17H,这种标识法是根据执行CPUID指令获得的处理器标识中的的Fam...原创 2019-01-03 17:17:19 · 383 阅读 · 0 评论 -
Intel Core & Enhanced Core架构/微架构/流水线 (10) - 先进存储器访问
Intel® Advanced Memory AccessIntel Core微架构中的每个处理器核都包含一个指令缓存和一个一级数据缓存。两个处理器核共享一个2M或4M字节大小的二级混合式缓存(既存放数据也存储指令)。两级缓存都是回写式更新策略且是非包含式缓存(即一级缓存中的缓存行未必一定包含在二级缓存中)。每个处理器核包括:一级数据缓存,也叫数据缓存单元DCU – DCU可以同时处理多个...原创 2019-01-03 17:18:19 · 363 阅读 · 0 评论 -
Intel Core & Enhanced Core架构/微架构/流水线 (11) - 高速缓存读/写操作 Cache Load/Store
Loads and StoresIntel Core微架构在每个周期可以同时执行最多1条128位读存操作和1条128位写存操作,这两条操作需要访问不同的存储器地址。Core微架构的乱序访存操作允许与其他微指令以及其他的访存操作一起执行。读存操作可以:如果已知读存地址与写存地址不冲突(即不相同),则读存操作可以在写存操作之前发射 推测写存操作与读操作不冲突,投机式地发射读操作(注:如果...原创 2019-01-04 08:00:51 · 415 阅读 · 0 评论 -
Intel Core & Enhanced Core架构/微架构/流水线 (12) - 数据预取
Data Prefetch to L1 CachesIntel Core微架构提供了2个硬件预取器,可以将数据预取到一级缓存中,由此加速程序访问数据的速度:数据缓存单元预取器(DCU prefetcher) – 这个预取器,也被称为流式预取器,按最近地址升序的读存操作触发。处理器认为这种类型的访存属于流式访存算法,会自动的预取下一行数据。 基于指令指针的步长预取器 – 这个预取器持续的跟...原创 2019-01-04 08:01:06 · 1009 阅读 · 2 评论 -
Intel Core & Enhanced Core架构/微架构/流水线 (13) - 存储转发/访存消歧
Store forwarding如果一个读存操作紧跟着写存操作且这两条指令操作同一个内存地址,Intel Core微架构可以直接将写存操作的数据转发给读存操作指令。这个过程被称为存储到读取转发机制,简称为存储转发,可以节省读存操作的周期数(即延迟),因为读操作直接从写操作获得数据而不用等待写操作完成再从存储器中获取数据。要想利用存储转发机制,必须要满足以下条件:写存操作必须是最后一条到...原创 2019-01-04 08:01:22 · 383 阅读 · 0 评论 -
Intel Core & Enhanced Core架构/微架构/流水线 (15) - 先进智能缓存
Intel® Advanced Smart Cache为了支持单基模上的双处理器核,Intel Core微架构提供了许多优化特性。两个核共享一个二级缓存和总线接口单元,下图中绿色部分标出。本节讲述Intel高级智能缓存的组件。 下表详细的列出了Intel Core微架构上高速缓存的参数。利用 CPUID指令可以枚举出处理器的高速缓存的详细层级结构标识。表:Intel Core微架构...原创 2019-01-04 08:02:18 · 253 阅读 · 0 评论 -
Intel Core & Enhanced Core架构/微架构/流水线 (14) - 存储器/内存读写 Memory Load/Store
Loads当指令从回写类型的存储器中读取某个地址时,处理器会按照如下的规则从高速缓存或存储器中查找数据(确切的说是匹配地址):发起核(即执行读存指令的处理器核)的一级数据缓存 其他核的一级数据缓存和二级缓存 系统存储器在第二步中,如果命中其他核的一级数据缓存且数据是修改状态,则从其他核中获取数据,此时会忽略二级缓存行返回的数据及数据状态。下表是从存储器簇中不同的层级部件中的某存储...原创 2019-01-04 08:01:46 · 529 阅读 · 0 评论 -
计算机术语中英文对照表(流水线/微架构/体系结构/指令集)
术语 翻译 描述 Intel Architecture (IA) IA架构 执行x86指令集的CPU架构 Pipeline 流水线 根据上下文,翻译做“流水线”或者“管道” Pipelined ...原创 2018-12-24 08:22:37 · 6373 阅读 · 0 评论 -
Intel Core Solo/Duo处理器架构/微架构/流水线 - 前端/数据预取/SSE3
Intel Core Solo/Duo处理器采用的微架构类似于Pentium M处理器的微架构,但是在性能和功能方面做了进一步的增强,主要包括:Intel智能缓存 – Intel Core Duo的 二级缓存在两个处理器核之间共享,这样不需要额外的总线传输就可以让两个核访问二级缓存中数据。对于Intel Core Solo(或者当Intel Core Duo处理器中的某个核空闲时),单个处理器...原创 2019-01-01 10:38:15 · 517 阅读 · 0 评论 -
Pentium M处理器架构/微架构/流水线 (2) - 数据预取/乱序核/退役单元
Data PrefetchingIntel Pentium M处理器支持3种预取机制:第一种是硬件指令预取,已在上面章节中讲述 第二种是自动的将数据预取到二级缓存。这个机制基本上与Intel NetBurst微架构中描述的硬件预取机制类似。各代处理器上触发自动预取的阈值距离可以参看下表: Trigger Threshold Distance (Bytes) ...原创 2019-01-01 10:36:16 · 552 阅读 · 0 评论 -
Pentium M处理器架构/微架构/流水线(1) - 流水线概述
Intel® Pentium® M Processor与Intel NetBurst微架构类似,Intel Pentium M处理器微架构 的流水线也包括3个主要部分:有序发射前端 乱序超标量执行核 有序退役单元Intel Pentium M处理器微架构支持高速系统总线(最高可达533MHz),64字节(512比特)总线宽度。绝大部分适用于Intel NetBurst微架构的编码方案...原创 2019-01-01 10:35:00 · 931 阅读 · 1 评论 -
Intel超线程技术 Hyper-Threading Technology (1) - 引言与历史
Introduction and History超线程技术是Intel实现同步多线程技术(SMT)的专利技术,用于提升x86处理器上的计算并行性,可以同时执行多个任务。在Intel的术语中,超线程的正式名称是Hyper-Threading Technology或者HT Technology,简称为HTT或HT。2002年2月,超线程技术第一次在Xeon服务器处理中亮相,同年11月发布的桌面...原创 2019-01-05 14:21:40 · 2281 阅读 · 0 评论 -
Intel超线程技术 Hyper-Threading Technology (2) - 早期实现 - 概述
Intel® Hypter-Thread (initial)通过在单个物理处理器封装中实现多个逻辑处理器(即最早期的超线程技术),或者在物理处理器的核中实现多个逻辑处理器(即多核时代的超线程技术),Intel®超线程技术使得软件可以利用任务级别,或线程级别的并行性。在最初的超线程实现中,单个物理处理器封装在软件角度上看起来是两个(或多个)逻辑处理器。在基于Knights Landing微架...原创 2019-01-05 14:23:07 · 2180 阅读 · 0 评论 -
Intel超线程技术 Hyper-Threading Technology (3) - 处理器资源与超线程(复制的资源)
Processor Resources and HT Technology物理处理器中微架构的大部分资源都是由逻辑处理器共享使用的。只有一少部分数据结构是双份的,每个逻辑处理器独占使用一份。本节讲述这些资源的使用方式:共享的,分区的,或者复制的。Replicated Resources每个逻辑处理器都复制了一份架构状态。这里架构状态指的是那些程序员可见的寄存器,这些寄存器被操作系统和应...原创 2019-01-05 14:24:10 · 748 阅读 · 0 评论 -
Intel超线程技术 Hyper-Threading Technology (4) - 处理器资源与超线程(分区的资源/竞争共享的资源)
Partitioned Resources某些缓冲区是共享使用的,但是每个逻辑处理器只能使用一半的条目。这些资源被称为分区的资源。分区的目的是:操作上的公平性 当一个逻辑处理器上的执行停顿时,另一个逻辑处理器有能力可以继续执行。例如:高速缓存未命中,分支预测失败,指令依赖都可能会将逻辑处理器执行指令阻塞数个周期。资源分区可以避免停顿的逻辑器阻塞另一个逻辑处理器的继续执行。通常,位于...原创 2019-01-05 14:25:03 · 784 阅读 · 0 评论 -
Intel超线程技术 Hyper-Threading Technology (5) - 微架构/流水线与超线程技术(前端/执行核)
Microarchitecture Pipeline and HT Technology本节讲述超线程技术与微架构的关系,以及来自于两个逻辑处理器的位置是如何在流水线前端与后端被处理的。尽管来自于两个程序或者两个线程的指令在执行核中是同时执行,也不必按照程序设计顺序(即乱序执行),流水线的前端和后端还是包括了若干个选择点,用于从两个逻辑处理器中选择指令。所有的选择点按照周期交替原则操作,除...原创 2019-01-05 14:26:31 · 870 阅读 · 0 评论 -
Intel超线程技术 Hyper-Threading Technology (6) - 后期增强(Nehalem/Haswell/Skylake)
Intel® Hypter-Thread (Enhencement)超线程技术在后续各代微架构中的实现比较稳定,有时会做一些增强或改进。对于没有提及到的改变,则认为是与前代微架构一致,没有变化。对于分区使用的资源,例如读存缓冲区,写存缓冲区,重排序缓冲区等,如果容量在后代微架构中有所增大,则每个逻辑处理器可以使用的条目数也相应的增大。Nehalem Microarchitecture En...原创 2019-01-05 15:11:58 · 1462 阅读 · 0 评论 -
Intel超线程技术 Hyper-Threading Technology (7) - 最早的一篇超线程论文介绍
https://download.csdn.net/download/qq_43401808/10897558这片白皮书论文是Intel最早的讲述超线程技术的专题论述,非常具有学术价值与史料参考价值。ABSTRACT Intel’s Hyper-Threading Technology brings the concept of simultaneous multi-thr...原创 2019-01-05 15:29:31 · 736 阅读 · 0 评论 -
Intel(R) 处理器产品架构/微架构对照表
Intel(R) 处理器与微架构对照表2019/07/09:更新至 2nd Generation Intel® Xeon® Scalable Processors (Cascade Lake微架构)2019/01/01:更新至第9代处理器(Coffee Lake Refresh微架构)Microprocessor name Microarchitecture code name...原创 2019-01-01 19:10:44 · 9538 阅读 · 6 评论 -
Intel® Nehalem/Westmere架构/微架构/流水线 (1) - 特性概述
Intel® Nehalem/Westmere MicroarchitectureIntel Nehalem微架构的全称是Intel Microarchitecture code name Nehalem,这代微架构是基于45nm的Enhanced Intel Core微架构改进而来的,提供了许多增强特性:增强的处理器核 提升分支预测成功率以及分支预测失败时的快速恢复 增强的循环流侦...原创 2019-01-06 18:34:44 · 978 阅读 · 0 评论 -
Intel® Nehalem/Westmere架构/微架构/流水线 (2) - 流水线概述
Microarchitecture PipelineIntel Nehalem微架构延续了65nm制程的Intel Core微架构上的4宽度流水线。下图是在Intel Core i7处理器上采用的Nehalem微架构的功能框图,注意图中只显示了4个处理器核中的两个(黄色部分)。被所有处理器核共享的三级缓存用绿色框标出。如果用分支预测失败后的延迟来度量,Intel Nehalem微架构的...原创 2019-01-06 18:37:59 · 651 阅读 · 0 评论 -
Intel® Nehalem/Westmere架构/微架构/流水线 (3) - 流水线前端
Front End Overview下图展示了Nehalem微架构流水线前端的主要构成组件。取指单元IFU每个周期可以从一级指令缓存中读取16字节的对齐指令流,然后将其送到指令长度译码器ILD中。指令队列IQ保存有长度译码器处理过的x86指令,每个周期可以将4条指令发送给指令译码器。指令译码器有三个简单译码单元,每个单元每周期可以译码一条简单x86指令(即x86指令译码后只生成1条微指...原创 2019-01-06 18:41:14 · 578 阅读 · 1 评论 -
Intel® Nehalem/Westmere架构/微架构/流水线 (4) - 执行引擎
Execution Engine译码后微指令队列IDQ(参看上图最右侧)将微指令流发送给流水线的分配/重命名(allocation/renaming)部件。乱序引擎共支持最多可达128条进行中微指令(micro-ops in flight)。每条微指令必须被分配以下资源:重排序缓冲区ROB中的一个条目,预约站RS中的一个条目,如果是访存操作,还必须要分配一个读取/存储缓冲区。分配器(all...原创 2019-01-06 18:43:05 · 387 阅读 · 1 评论 -
Intel® Nehalem/Westmere架构/微架构/流水线 (5) - 高速缓存 & 存储器子系统
Cache and Memory SubsystemIntel Nehalem微架构的每个处理器核包括一个一级指令高速缓存,一个一级数据高速缓存,以及一个二级混和式(指令与数据)高速缓存。单个物理处理器封装可以包含多个处理器核,以及处理器核之外的一些共享的子系统集合(统称为核外uncore),例如共享的三级缓存,集成的内存控制器等。以Intel Core i7处理器为例,核外部分包括一个被所有...原创 2019-01-06 18:45:23 · 469 阅读 · 0 评论 -
Intel® Nehalem/Westmere架构/微架构/流水线 (6) - 读写操作Load/Store增强
Load and Store Operation Enhancements Intel Nehalem微架构的存储器簇提供了如下的增强来加速存储器访问:每周期访存指令的峰值发射速度可达1条128位的读存操作和1条128位的写存操作 更深(即更多)的缓冲区:48个load缓冲区,32个store缓冲区,以及10个行填充缓冲区 快速的非对齐内存访问,以及健壮地处理访存对齐冲突 增强的存储...原创 2019-01-06 18:46:23 · 379 阅读 · 0 评论 -
Intel® Nehalem/Westmere架构/微架构/流水线 (7) - 存储转发增强
Store Forwarding Enhancement当一个读存操作紧跟在一个写存操作后,如果这两个操作访问同一个存储器地址,在符合转发条件的情况下,处理器可以直接将写存操作的数据发送给读存操作;这样就不必等待数据写入到存储器(包括高速缓存)之后再从存储器(包括高速缓存)中读取数据。这种行为被称为存储读取转发操作,简称为存储转发,可以大大节省读存操作获取数据的延迟周期数。要想实施无延迟的...原创 2019-01-06 18:52:35 · 411 阅读 · 1 评论 -
Intel® Nehalem/Westmere架构/微架构/流水线 (8) - 重复字符串指令增强
REP String EnhancementREP指令前缀与MOVS/STOS指令连用以及寄存器ECX的值做计数器,这种组合常常用于实现类似于memcpy()/memset()这样的库函数,被称为“REP字符串指令”。指令的每次迭代可以按固定的粒度拷贝/写入数据,常用的粒度是字节/单字/双字/四字长度。有两个主要因素决定REP字符串指令的性能特征:启动成本和数据传输吞吐量。Todo:什么是...原创 2019-01-06 18:53:47 · 276 阅读 · 1 评论 -
Intel® Nehalem/Westmere架构/微架构/流水线 (9) - 系统软件增强/能耗增强
Enhancements for System SoftwareIntel Nehalem微架构对硬件的增强,大部分同时让应用程序和系统软件收益,除此以外,还有一些增强主要服务于系统软件。锁原语(lock primitives):相比前几代微架构,使用Lock前缀的同步原语(例如XCHG,CMPXCHG8B)在Nehalem微架构上极大的降低了执行延迟。降低VMM成本:在前几代架构上,...原创 2019-01-06 18:55:35 · 697 阅读 · 0 评论 -
Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (1) - 特性概述
Intel Sandy Bridge/Ivy Bridge MicroarchitectureIntel Sandy Bridge微架构继承了Intel Core微架构与Nehalem微架构的成功之处,同时还提供了如下的创新特性:Intel 高级向量扩展(Intel AVX) 将128位的Intel SSE指令集扩展为256位的浮点指令集,相对于128位的代码,AVX具有两倍的性能优势...原创 2019-01-07 13:24:15 · 2734 阅读 · 0 评论 -
Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (2) - 流水线概述框图
Intel Sandy Bridge Microarchitecture Pipeline Overview下面这张图来自于Intel的优化手册,是Sandy Bridge微架构的流水线功能框图。下面这张图来自于https://www.realworldtech.com/sandy-bridge/10/,更详细的描述了流水线中的主要单元以及之间的相互关系。在介绍流水线的细节时,我们会经...原创 2019-01-07 13:24:32 · 606 阅读 · 0 评论 -
Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (3) - 流水线概述
Intel Sandy Bridge微架构的指令流水线主要由下列3部分构成:有序发射前端,负责取指(x86指令)并将其译码为微指令(也叫微操作)。前端给流水线中的后续阶段提供稳定的微指令流,这些微指令流来自于最可能执行到的程序路径。 乱序的超标量执行引擎,负责将微指令分发执行,每周期最多可分发6条微指令。Allocate/Rename单元将微指令重排列成“数据流”顺序;这样,一旦数据流需要的...原创 2019-01-07 13:25:11 · 544 阅读 · 0 评论 -
Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (4) - 流水线前端概述
The Front End本节讲述流水线前端的关键特征。下表列出了前端的主要部件,以及对应的功能和所面临的性能挑战。表:Intel Sandy Bridge微架构的前端部件 部件 功能 性能挑战 指令缓存 32K字节,存储指令字节流 对于“热代码”指令字节提供快速访问 ...原创 2019-01-07 13:25:23 · 373 阅读 · 0 评论