Intel Core i7的整体操作
Intel Core i7的整体操作(我们也称呼为Nehalem,他的项目代码名)
主要分成2个部分
-指令控制单元Instruction Control Unit(ICU),负责从存储器读出指令序列,并生成基本操作
-执行单元Execution Unit(EU),执行ICU生成出来的操作
ICU从指令高速缓存(Instruction Cache)中读取指令
通常会很早之前就取值,这样才有时间对指令译码,然后把操作发送给EU
不过如果遇到分支,会有2种情况
-选择分支,控制被传递的分支目标
-不选择分支,控制被传递到指令序列的下一条指令
现代处理器有了一种新技术叫分支预测
-处理器会预测是否会选择分支,并预测好分支的目标地址
-然后用投机执行Speculative Execution来取出位于它所预测会跳到的指令,然后译码(在还没确定预测是否正确前就执行了)
-如果预测失败,就会回到分支点(重新预测)
指令译码逻辑接受实际的程序指令,并转换成基本操作(也叫微操作)
-这些基本操作就是一些简单的计算任务
EU接受来自ICU的操作
-每个周期都会接受多个操作,这些操作会被分派到一组功能单元中,然后执行
-功能单元是用来处理特定类型的操作
读写存储器是由加载和存储单元实现
-加载单元处理从存储器读数据到处理器的操作
-当使用投机执行技术时,分支操作会送到EU,如果分支预测错误,EU会丢弃分支点之后的结果,并告诉分支单元"错了",还指出正确的分支
在ICU中,退役单元Retirement Unit记录正在执行的处理,并确保它遵守机器级程序的顺序语义
-寄存器文件包含整数,浮点数,和SSE寄存器,是退役单元的一部分,退役单元控制这些寄存器的更新
-在译码时,指令的信息被放置在一个先进先出的队列中,这个信息会保持在队列中until其中一个执行了
-一旦指令执行完了,而且预测正确,那么这个指令就退役了Retired,所有对程序寄存器的更新都执行了
-如果预测错误,这条指令会被清空,丢弃计算出来的结果
Intel Core i7的整体操作的更多相关文章
- Intel Core Microarchitecture Pipeline
Intel微处理器近20年从Pentium发展到Skylake,得益于制作工艺上的巨大发展,处理器的性能得到了非常大的增强,功能模块增多,不过其指令处理pipeline的主干部分算不上有特别大的变化, ...
- asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案
之前碰到asp.net core异步进行新增操作并且需要判断某些字段是否重复的问题,进行插入操作的话会导致数据库中插入重复的字段!下面把我的解决方法记录一下,如果对您有所帮助,欢迎拍砖! 场景:EFC ...
- .NET Core中使用Dapper操作Oracle存储过程最佳实践
为什么说是最佳实践呢?因为在实际开发中踩坑了,而且发现网上大多数文章给出的解决方法都不能很好地解决问题.尤其是在获取类型为OracleDbType.RefCursor,输出为:ParameterDir ...
- Intel® Core™ i5-5300U Processor
3M Cache, up to 2.90 GHz Specifications Ordering and Compliance Essentials Product Collection 5t ...
- ASP.NET Core 2.0 MVC 发布部署--------- ASP.NET Core 发布的具体操作
ASP.NET Core 发布的具体操作 下面使用C# 编写的ASP.NET Core Web项目示例说明发布的全过程. 1.创建项目 选择“文件” > “新建” > “项目”. 在“添加 ...
- PHP------文件------文件整体操作
文件整体操作 [1]创建文件 touch("路径"); touch("./test.docx");//当前路径创建文件,创建的文档 显示的结果: touch ...
- 使用 Visual Studio 部署 .NET Core 应用 ——ASP.NET Core 发布的具体操作
ASP.NET Core 发布的具体操作 下面使用C# 编写的ASP.NET Core Web项目示例说明发布的全过程. 1.创建项目 选择“文件” > “新建” > “项目”. 在“添加 ...
- 文件操作 - 整体操作&文件搜索
文件操作 - 整体操作 1.touch 作用:创建普通文件 格式:touch file1 [file2] 2.cp 作用:拷贝文件 格式:cp 源文件 目标文件 3.rm 作用:删除文件 格式:rm ...
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩, ...
随机推荐
- Mysql学习(慕课学习笔记5)约束
约束类型: 1.NOT NULL (非空约束) 2.PRIMARY KEY(主键约束) 每张数据表只能存在一个主键 主键保证记录的唯一性 主键自动为NOT NULL (Auto_increment ...
- 字符串:各种奇葩的内置方法 - 零基础入门学习Python014
字符串:各种奇葩的内置方法 让编程改变世界 Change the world by program 字符串:各种奇葩的内置方法 或许现在又回过头来谈字符串,有些朋友可能会觉得没必要,也有些朋友会觉得不 ...
- 分数(有理数)的四则运算PAT1088
2015-02-05 PAT- B1088. Rational Arithmetic (20) http://www.patest.cn/contests/pat-a-practise/1088 #i ...
- [LA] 2031 Dance Dance Revolution
Dance Dance Revolution Time limit: 3.000 seconds Mr. White, a fat man, now is crazy about a game nam ...
- Oracle instr用法
1:实现indexOf功能,.从第1个字符开始,搜索第1次出现子串的位置 ,) as i from dual; select instr('oracle','or') as i from dual; ...
- Android CursorAdapter
CursorAdapter 继承于BaseAdapter是个虚类,它为cursor和ListView提供了连接的桥梁. public abstract class Cur ...
- Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom(转)
文中的 Random即:java.util.Random,ThreadLocalRandom 即:java.util.concurrent.ThreadLocalRandomSecureRandom即 ...
- kibana 访问IP分布图
- hadoop的thriftserver配置
说明:hadoop版本:hadoop-1.2.1.tar.gz.linux系统12.04,不过这里跟系统无关,可能安装软件的命令有差别. 一.概述 默认的hbase安装包已经有了thrift服务,使用 ...
- shell数组(产生不同的随机数)
#!/bin/bash # declare -a ARRAY read -p "Please input num[1-39]:" EMENUM #对比新生成的随机数是否重复 fun ...