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. 美团-2019Q2述职总结

    述职要求: 产品对平台化的规划并不清晰:内部因素:对SaaS平台的理解不够深刻: 对公司相关脚手架,服务搭建相关需要注意的点,有更深入的认识.对做系统服务的关注点有了更深入的理解. 功能权限的话: Q ...

  2. 作业——12 hadoop大作业

    作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3339 Hadoop综合大作业 1.以下是爬虫大作业产生的csv文件 ...

  3. 数据库sql优化总结之5--数据库SQL优化大总结

    数据库SQL优化大总结 小编最近几天一直未出新技术点,是因为小编在忙着总结整理数据库的一些优化方案,特此奉上,优化总结较多,建议分段去消化,一口吃不成pang(胖)纸 一.百万级数据库优化方案 1.对 ...

  4. Python Selenium Webdriver常用方法总结

    Python Selenium Webdriver常用方法总结 常用方法函数 加载浏览器驱动: webdriver.Firefox() 打开页面:get() 关闭浏览器:quit() 最大化窗口: m ...

  5. MySql通过数据库文件恢复数据库

    以表”Table”为例: 如类型是MyISAM, 数据文件则以”Table.frm””Table.MYD””Table.MYI””三个文件存储于”/data/$databasename/”目录中. 如 ...

  6. (转)nginx 安全配置文档

    原文:https://www.cnblogs.com/heaven-xi/p/9961357.html#top 1.配置文档中有多处明确写出了nginx的配置文件路径,该路径是测试环境中的路径,线上系 ...

  7. Spring IOC 三种注入方式(构造器,setter,接口)

    Spring的依赖注入有三种方式: 1,构造器注入 2,setter注入 3,接口注入 下面我给大家介绍一下这三种注入 1.构造器注入 构造器注入主要是依赖于构造方法去实现,构造方法可以是有参也可以是 ...

  8. CentOS7 安装特定版本的Docker

    先卸载旧版本   sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-late ...

  9. Python - Django - 序列化

    app01/__int__.py: import pymysql pymysql.install_as_MySQLdb() app01/models.py: from django.db import ...

  10. 基于EasyNVR摄像机网页无插件直播服务二次开发实现H5播放页面的简单集成方案

    我们通常在构架一套视频SaaS应用的过程中,将平台设计为3层:视频硬件层(视频源).视频能力平台(vPaaS).视频应用平台(vSaaS),视频硬件包括各种IPC.NVR.编码器等视频生成设备,vPa ...