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 重点: 实现多级子目录的压缩, ...
随机推荐
- I/O复用-epoll模型
epoll函数 epoll函数的使用与select.poll上有很大的差异. epoll使用一组函数来完成任务,而不是单个函数. epoll把用户关心的文件描述符上的事件放在内核里的一个事件表中,从而 ...
- Oracle11g R2学习系列 之四Maven+Struts+Spring实验
今天试一下Java调用Oracle来看一下.会不会也如昨天实验的一样坑呢?由于我对于Java也接触的不多,所以不打算直接使用该收提供的实验文档,而是自己利用Maven+Struts+Spring来自己 ...
- web api简单验证实现办法
需要使用WEBAPI,但是有验证问题没解决.后来参考网上文章做了一下DEMO 思路: 就是根据用户的账号在服务端加密一个字符串,然后返回给用户端. 具体: 一个用户编号用于唯一身份识别,密码,一个密钥 ...
- LoadRunner参数化功能详解
更新方式: . Each Occurrence 每次遇到参数就进行更新. 多次使用同一参数,而且没有什么关联,例如随机数. Each Iteration 每次迭代时发生更新. 如果参数出现几 ...
- Android 之Activity切换动画效果
在Activity中Android提供了overridePendingTransition(int enterAnim,int exitAnim)这个方法用于设置Activity之间切换的动画效果.o ...
- 解决Sqlite UTF-8中文数据格式在DOS窗口下中文乱码
问题如下图所示: 右键查看DOS属性:点击选项->当前代码页为GBK 只要将当前代码页编码值设置为UTF-8就可以了: ‘退出sqlite:.exit 输入:chcp 65001回车 右键属性: ...
- hdu 3461 Code Lock
http://acm.hdu.edu.cn/showproblem.php?pid=3461 并差集和幂取模 这道题主要是求不可操作区间. #include <cstdio> #inclu ...
- A51汇编器的解释
A51汇编器是运行于IBM PC系列及其兼容机上的交叉汇编软件,其主要功能是将MCS-51系列单片机汇编语言源程序翻译成符合Intel目标文件格式的可再定位的目标代码,经过L51连接器的连接和装配,产 ...
- sql server数据建表
use edudbgoif exists(select * from sysobjects where name='department')drop table departmentcreate ta ...
- bzoj1615 [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机
Description Farmer John新买的干草打包机的内部结构大概算世界上最混乱的了,它不象普通的机器一样有明确的内部传动装置,而是,N (2 <= N <= 1050)个齿轮互 ...