CPU的基本结构:

CPU的主要部件:

​ 运算部件、缓存部件、寄存器、控制器、时序部件

CPU的工作原理:

​ 主要功能:处理指令、执行操作、控制时间、数据运算

​ 执行指令的流程:读取指令、指令译码、指令执行、后续工作

部件的控制方式:

​ 同步控制方式:每步操作都向统一的外部时序信号对齐,每步操作之间无交互;

​ 异步控制方式:每步操作都不需向统一的外部时序信号对齐,每步操作之间通过交互应答来实现协同;

外部连接与I/O控制任务

指令系统:

设计CPU的一般过程:

​ 指令系统 --- 数据通路 --- 控制器 --- CPU定型

指令可能会涉及到的操作数类型:

​ 地址码数据:寄存器编号或者存储器地址,无符号整数.

​ 数值型数据:定点数、浮点数等,一般用补码表示;

​ 字符型数据:通常表示为ASCII码/汉字内码格式;

​ 逻辑型数据:常规二进制代码,不具有数值含义。

指令中的寻址方式:

​ 立即寻址:

​ 直接寻址:

​ 寄存器直接寻址:

​ 间接寻址(寄存器间接寻址、堆栈间接寻址):

​ 变址、基址寻址及其变化:

​ 基址寻址:

​ 基址 + 变址:

​ PC相对寻址:

​ 页面寻址(伪直接寻址):

设计传送指令时需要考虑:

​ 规定传送范围、指明传送单位、设置寻址方式

算数、逻辑运算指令:

​ 算数运算指令:设计时需要考虑操作数类型、符号、进制等,运算结束后设置CPU相应状态标志寄存器;

​ 逻辑运算指令:常用来对码位的设置和条件判断等操作.

程序控制类指令:

​ 转移指令、转子指令与返回指令、软中断指令、

控制处理机的专用指令
面向操作系统的指令

算数部件与运算器:

​ 需要解决的关键问题:如何以加法器为基础,实现各种类型的算数逻辑运算处理。

​ 解决思路:复杂运算 --- 四则运算 --- 加法运算

​ 解决方法:在加法的基础上,增加移位传送功能,并且输入运算控制条件。

加法单元:

串行加法器:

​ 特点:低位向高位依次传递进位信息。

​ 影响运算速度的主要因素:进位信号的传递。

​ 进位逻辑 特点:进位信号逐位形成。

并行加法器:

​ 特点:各位进位信号同时形成;

分组:组内并行、组间并行

运算器组织:

​ 带多路选择器的运算器、带输入锁存器的运算器、位片式运算器;

带多路选择器的运算器:

带输入锁存器的运算器:

位片式运算器:

MIPS(Micro-processor without interlocked piped stages),一种无内部互锁流水级微处理器。

指令格式与指令集:

​ 指令字长固定为32位,寄存器型寻址,指令中给出寄存器号.

R型指令:

I型指令:

J型指令:

寻址方式:

​ R型指令:由op和func字段共同隐含说明当前的寻址方式。

​ I型和J型指令:由op字段隐含说明当前指令使用的寻址方式。

立即数寻址:操作数在指令中的立即数字段。

寄存器直接寻址:操作数直接在寄存器中。

基址寻址:操作数由寄存器和立即数字段联合产生。

PC相对寻址:操作数由寄存器和立即数字段联合产生。

伪直接寻址:也叫页面寻址,由PC高4位与指令中的地址段组合产生的有效地址

CPU设计的主要任务:

​ 拟定指令集;

​ 数据通路设计;

​ 控制器设计。

CPU执行1条指令的步骤:

​ 取指令、取操作数、分析指令、执行指令;

流水技术:

​ 把指令过程分解为若干子过程,每个子过程都可有效地在其专用功能段上与其它子过程重叠执行,这种技术称为流水技术。

流水线的特点:

​ 流水线的子过程称为流水线的“级”或“段”,子过程的数目称为流水线的“流水深度”(m);

​ 每个子过程由专用的功能段实现,各功能段的时间应基本相等,通常为1个时钟周期(1拍);

​ 流水线需要经过一定的通过时间才能稳定(即无空闲功能段):t稳 = T * m;

​ 流水技术适合于大量相同指令的执行。

流水线的基本类型:

​ 按流水线的处理层级:操作部件级流水线、指令级流水,处理级流水;

​ 按流水线能完成的功能数量:单功能流水线、多功能流水线;多功能流水线按同一时间内可连接完成的功能数量不同,又分为:静态多功能流水线、动态多功能流水线(控制太复杂,很少使用)。

​ 按处理的数据形态:标量流水线、向量流水线;

​ 按流水线内各段的连接模式: 线性流水线(前馈性)、非线性流水线(存在反馈连接);

​ 按流水线输入输出对应关系:顺序流水线(先进先出)、乱序流水线(无序、错序或异步);

流水线的性能指标:

​ 吞吐率:单位时间内处理的任务数或数据量;

​ 加速比:同一程序,不采用流水的执行时间与采用流水的执行时间的比值;

​ 利用率:流水线中各部件的平均利用率,即一定时间内,部件实际工作时间与部件总时间的比值。

超标量流水线和超流水线:

​ 标量流水线:在每个时钟周期只发射1条指令,并要求每个时钟周期只从流水线流出一条指令的结果。

​ 超标量流水线:是指在每个时钟周期向流水线发射多条指令,并能从流水线流出多个结果。

​ 超流水线:把完成一条指令的流水线的各一级子过程进一步细分成若干二级子过程( = 超流水的度、深度)

超标量超流水线处理技术:

​ 同时使用超流水线和超标量技术;

​ 超标量的度 = 3,超流水的度 = 3,超标量超流水的度 = 3 * 3 = 9;

CPU子系统的更多相关文章

  1. cpu子系统(优化)

    如果业务已经在线上,你要优化,第一步如何做 首先进行服务器数据采集,和性能监测分析 一:使用cacti,nagios,zabbix 等监控工具 二:使用linux 自带的一些监控指令:vmstat,i ...

  2. [原] Cgroup CPU, Blkio 测试

    关于Cgroup的简单测试 [toc] 简单介绍Cgroup (如果对cgroup熟悉可以忽略) 一般情况下,cgroup挂载到一个虚拟文件目录,然后可以通过文件系统的API对其操作. ># m ...

  3. Android中关于cpu/cpuset/schedtune的应用

    Android中关于cpu/cpuset/schedtune的应用都是基于进程优先级的,根据不同优先级划分进程类型.AMS(ActivityManagerService)和PMS(PackageMan ...

  4. linux top命令中各cpu占用率含义

    linux top命令中各cpu占用率含义 [尊重原创文章摘自:http://www.iteye.com/topic/1137848]0.3% us 用户空间占用CPU百分比 1.0% sy 内核空间 ...

  5. 【转载】Linux cgroup资源隔离各个击破之 - cpu隔离1

    Linux cgroup 有两个子系统支持CPU隔离.一个是cpu子系统,另一个是cpuset子系统. cpu子系统根据进程设置的调度属性,选择对应的CPU资源调度方法 .1. 完全公平调度 Comp ...

  6. 《Linux 性能及调优指南》3.2 CPU瓶颈

    翻译:飞哥 ( http://hi.baidu.com/imlidapeng ) 版权所有,尊重他人劳动成果,转载时请注明作者和原始出处及本声明. 原文名称:<Linux Performance ...

  7. Linux系统和性能监控之CPU篇

    Linux系统和性能监控之CPU篇 性能优化就是找到系统处理中的瓶颈以及去除这些的过程.本文由sanotes.net站长tonnyom在2009年8月翻译自Linux System and Perfo ...

  8. (转)linux top命令中各cpu占用率含义及案例分析

    原文:https://blog.csdn.net/ydyang1126/article/details/72820349 linux top命令中各cpu占用率含义 0 性能监控介绍 1 确定应用类型 ...

  9. cgroup 分析之CPU和内存部分

    https://ggaaooppeenngg.github.io/zh-CN/2017/05/07/cgroups-%E5%88%86%E6%9E%90%E4%B9%8B%E5%86%85%E5%AD ...

随机推荐

  1. ubuntu之路——day17.2 RGB图像的卷积、多个filter的输出、单个卷积层的标记方法

    和单层图像的卷积类似,只需要对每一个filter构成的三层立方体上的每一个数字与原图像对应位置的数字相乘相加求和即可. 在这个时候可以分别设置filter的R.G.B三层,可以同时检测纵向或横向边缘, ...

  2. Web前端开发规范之文件存储位置规范

    文件存放位置规范 1   文件夹说明 flash存放flash文件 p_w_picpaths存放图片文件 inc存放include文件 library存放DW库文件 media存放多媒体文件 scri ...

  3. em,rem,px的区别,以及实现原理?

    px像素(Pixel).相对长度单位.像素px是相对于显示器屏幕分辨率而言的.em是相对长度单位.相对于当前对象内文本的字体尺寸举个例子:比如说当前容器`font-size:16px;`则`1em`就 ...

  4. mysql索引原理及优化(三)

    B+Tree原理详解 MyISAM中的 B+Tree (非聚簇索引) MYISAM中叶子节点的数据区域存储的是数据记录的地址 主键索引 辅助索引 MyISAM存储引擎在使用索引查询数据时,会先根据索引 ...

  5. Post Setting Proxy 设置 代理

    postman的代理使用篇(四) - codingstudy - SegmentFault 思否https://segmentfault.com/a/1190000012024844 postman ...

  6. 微信小程序开发——微信小程序下拉刷新真机无法弹回

    开发工具中下拉之后页面回弹有一定的延迟,这个时间也有点久.真机测试,下拉后连回弹都没有,这个问题要解决,就得在下拉函数里加上停止下拉刷新的API,如下: /** * 下拉刷新 */ onPullDow ...

  7. 深度强化学习 之 运行环境 mujoco 报错 ERROR: GLEW initalization error: Missing GL version

    使用  mujoco环境  运行代码,报错 ERROR: GLEW initalization error: Missing GL version 一直无法解决,发现网址: https://blog. ...

  8. CefSharp 提示 flash player is out of date 运行此插件 等问题解决办法

    CefSharp 提示 flash player is out of date 或者 需要手动右键点 运行此插件 脚本 等问题解决办法 因为中国版FlashPlayer变得Ad模式之后,只好用旧版本的 ...

  9. python限定方法参数类型、返回值类型、变量类型等

    typing模块的作用 自python3.5开始,PEP484为python引入了类型注解(type hints) 类型检查,防止运行时出现参数和返回值类型.变量类型不符合. 作为开发文档附加说明,方 ...

  10. 如何用java代码写一个堆栈

    public class Stack { int[] data; int maxSize; int top; public Stack(int maxSize) { this.maxSize = ma ...