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. 【深入学习linux】系统分区与格式化

    分区:把大硬盘分为小的逻辑分区 格式化:写入文件系统 分区设备文件名:给每个分区定义设备文件名 挂载:给每个分区分配挂载点 分区->格式化->取名->分配挂载点(WINDOW下的盘弧 ...

  2. Selenium自动化对非输入框的日历或日期控件的处理

    4.这个时候我们可以移除readonly的属性,问题就轻轻松松解决了,代码如下: String js = "document.getElementById('createTime').rem ...

  3. 如何通过配置tomcat或是web.xml让ie直接下载文件

    web.xml(tomcat\conf\web.xml)中配置了 <mime-mapping>   <extension>txt</extension>   < ...

  4. tomcat请求响应代码分享

    NioEndpoint的Poller轮询器持续进行扫描是否有新的event()方法调用后产生新的event配置. 发现后执行AbstractProtocol.class中的process()方法进行处 ...

  5. 位运算在 PHP 实际项目当中的高级运用

    我们首先来看一个系统中常见的需求: 有一个广告表,我们要对广告做显示控制: 手动上下线. 只允许 VIP 查看. 可能的表结构如下: CREATE TABLE `finger_ad` ( `ad_id ...

  6. plsql 的三种循环

    set serveroutput on declare pnum ; begin loop dbms_output.put_line(pnum); pnum :; end loop; end; / s ...

  7. FromXml 支付回调 xml 转数组

    public function xx(){ $xml = '<xml><appid><![CDATA[xxxxxxxxxxxxx]]></appid> ...

  8. Jenkins配置发送邮件步骤

    Jenkins配置邮件步骤,以下我是以腾讯企业邮箱账号作为演示 1.配置Jenkins系统管理员邮件地址: 下拉找到以下位置 2.配置邮件通知 继续下拉,找到邮件配置.输入SMTp服务器以及邮箱后缀, ...

  9. WIN7 浏览器 收藏夹栏字体太小

    在“窗口颜色和外观”-项目-“消息框”,把字体大小调大. "标题按钮" 大小 21.

  10. 面试之leetcode20堆栈-字符串括号匹配,队列实现栈

    1 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合.左括号必须以正确的顺序闭合.注意空字符串可被认 ...