intel历代架构演进1——p6微架构
来源:互联网 发布:手机网络信号不稳定 编辑:程序博客网 时间:2024/05/16 06:18
linux的学习主要还是基于x86系统,而intel是典型的代表,之前由于部分博客保存在个人空间被搞丢了。所以这部分历史文章重新基于《intel开发手册卷一》来进行回忆。
太早的历史我们就不多复述了,有兴趣大家自己去看intel开发手册吧。这里先从p6微架构开始讲
从95年开始intel公司引入了p6微架构。使用该架构的芯片主要为奔腾2,3和奔腾2,3至强系列cpu.
p6微架构后来被增强了基于芯片的二级缓存,被成为高级转换缓存。
该架构是一种基于流水线的三层架构(Three-way superscalar )。这样cpu可以利用并行处理技术。处理器可以平均的解码,分发和完成执行(回退)三个指令在一个时钟周期。
为了提升吞吐量p6家族使用了一个解耦的12-阶段的超流水线来支持乱序执行指令。
下图展示了p6微架构流水线以及增强的高级转换缓存
为了确保向指令执行流水线稳定提供指令和数据,p6微架构包含了2级缓存.L1 cache提供了一个8-KByte指令缓存和一个8-KByte数据缓存,两者和流水线紧密耦合。L2cache提供256-KByte,512-KByte或1-MByte的静态RAM通过全时钟同步64位的缓存总线和核心处理器紧密耦合。
p6微架构的核心在于乱序执行环境,又称为动态执行环境。
包含了3个概念:
深层分支预测(Deep branch prediction)允许处理器在解码指令的时候排除分支让指令流水线满负荷。P6处理器实现了一个高度优化的分支预测算法来预测指令的方向。
动态数据流分析(Dynamic data flow analysis)为乱序执行环境提供实时数据分析来确定依赖和检测机会。乱序执行环境内核可以监控很多指令并且执行这些指令的顺序可以优化,尽量利用多个处理单元,并且保持数据的完整性。
投机执行(Speculative execution)是指处理器在执行一个超出尚未解决的分支条件时的能力,并且保证最终提交的顺序和原始指令流一致。未来确保投机执行的可能,p6微架构在提交结果的时候将指令的分发和执行进行解耦。乱序执行器内核使用数据流分析将指令池中所有可以执行的执行分析了一把并且保存结果到临时寄存器中。回退单元接下来线性搜索指令池中已经完成的指令(不再有数据或者指令依赖,或者是尚未解决的分支预测)。当完成的指令被发现,回退单元按照顺序提交这些指令的结果到内存或者寄存器(8个通用寄存器和8各x87浮点数据寄存器),他们最初是从指令池中被发布和回退的。
- intel历代架构演进1——p6微架构
- intel历代架构演进2——NetBurst微架构
- intel历代架构演进3——酷睿微架构
- intel历代架构演进9—— 英特尔64架构
- intel历代架构演进4—— Nehalem
- intel历代架构演进5—— Sandy Bridge
- intel历代架构演进6—— SIMD指令集
- intel历代架构演进8—— 多核技术
- intel历代架构演进10—— 虚拟化技术
- intel历代架构演进7—— 英特尔超线程技术
- Intel CPU 历代微架构名称
- Intel P6以来核心架构及对应型号、芯片组一览表
- NVIDIA显卡历代架构
- 架构演进
- 今日头条架构演进之路——高压下的架构演进专题
- yale_OS(3)——Intel IA32架构
- 今日头条架构演进之路——高压下的架构演进专题(含PPT)
- 架构演进-实例篇
- IOS开发实例-获取用户当前地理坐标
- 我自己都不知道症结所在.时刻总觉
- VS编译duilib项目时候的错误解决方法整理
- arc automatic referencing counting
- Unity3d Shader
- intel历代架构演进1——p6微架构
- linux 系统,查看某目录下有多少个文件
- java 反射
- SATA硬盘15pin电源接口定义
- android ListView详解
- android service 相关问题汇总
- 【PyQt4 实例18】获取网卡信息
- 【OpenCV】数字图像灰度直方图
- C# 扩展方法应用二:文件操作