CPU结构与指令执行过程简介
CPU(Central Processing Unit)是计算机中进行算术和逻辑计算处理指令的主要部件.
CPU结构
CPU由通用寄存器组,运算器,控制器和数据通路等部件组成.

寄存器包括
数据寄存器: AX,BX,CX,DX;
指针与变址寄存器:SP, BP, SI,DI
栈寄存器: CS,DS,SS,ES
详情参见寄存器与寻址方式的介绍
运算器主要是指算术逻辑单元(arithmetic and logic unit, ALU).
上图所示的CPU采用单总线结构, ALU通过两个暂存器T,S与总线相连.
控制器的主要组成部分是微命令形成电路, 以及3个控制寄存器和时序逻辑部件.
程序状态字(Program Status Word,PSW): 存放结果状态和标志
程序计数器(Program Counter,PC): 记录下一条指令的内存地址
指令寄存器(Instruction Register,IR): 寄存正在执行的指令
为了与系统总线交互设置单向地址寄存器AR和双向数据寄存器DR.
CPU为了IO等功能还设置了外部中断INT,直接内存访问(Direct Memory Access,DMA)等部件.
现代CPU通常还集成了高速缓存(Cache)和流水线等组件.
CPU时钟
时钟周期由时钟部件提供,是CPU中原子计时单位.
一般把CPU对内存的一次访问当作一个机器周期.
CPU执行一条指令的时间为一个指令周期,不同指令的指令周期不一样.
指令执行过程
机器指令: 是CPU能直接识别并执行的指令,为二进制编码的形式, 汇编指令是二进制机器指令的助记符.
微指令: 在微程序控制的计算机中,微指令是同时发出的控制信号的组合.
一次能定义并执行多个并行操作微命令的微指令,叫做水平型微指令.水平型微指令的一般格式为:
控制字段 判别测试字段 下地址字段
垂直型微指令的结构类似于机器指令的结构.它有操作码,在一条微指令中只有l-2个微操作命令,每条微指令的功能简单.
微操作是CPU的原子操作,以一个寄存器的数据读写操作为标志.
每一个微操作是控制器向相应部件发送控制信号(微命令)而触发的.
一般在微操作的层面上研究指令的执行过程.
一般机器指令执行过程分为取指令(Fetch Instruction), 取数据(Fetch Data), 执行(Execute)等操作
FIC微操作
PC->AR
AR->MainMemory
Read ;将Memory中的数据传到系统总线上
PC+1
M->DataBus
DastaBus->DR
DR->IR
FDC微操作
在进行取操作数之前先进行译码操作,首先根据16位指令编码的形式分析指令类型:
双操作数指令: 0000 xxxx
单操作数指令: 0000 1110 xxxx
转移指令: 0000 1111 xxxx
无操作数指令: 0000 1111 1111 xxxx





EXEC微操作
转移指令执行过程
PC->ALU
ADD PC Disp->T
T->PC
INC指令:
ALU: S+1->T
BX->MainMemory
T->DB
Write ;结果写入内存
微程序控制器与硬布线控制器
微程序控制器

微程序控制器设计简单,规范化;功能可编程,成本低,错误少但是速度较慢.
硬布线控制器

硬布线控制器用与或逻辑阵列将微指令转换为控制信号,设计复杂,无法编程修改功能但是速度较快.
CPU结构与指令执行过程简介的更多相关文章
- [No0000167]CPU内部组成结构及指令执行过程
计算机的基本硬件系统由运算器.控制器.存储器和输入.输出设备五大部件组成.运算器和控制器等部件被集成在一起统称为中央处理单元(Central Processing Unit,CPU). CPU的功能 ...
- servlet的执行过程简介(从tomcat服务器和web应用的角度)
该链接详解htttp请求和响应 http://www.cnblogs.com/goxcheer/p/8424175.html 1.web应用工程发布到tomcat服务器 2.客户端访问某个web资源, ...
- Linux下shell命令执行过程简介
Linux是如何寻找命令路径的:http://c.biancheng.net/view/5969.html Linux上命令运行的基本过程:https://blog.csdn.net/hjx5200/ ...
- CPU乱序执行基础 —— Tomasulo算法及执行过程
朋友们可以关注下我的公众号,获得最及时的更新: IBM 360/91浮点单元最先实现Tomasulo算法从而允许乱序执行.360体系只有4个双精度浮点寄存器,限制了编译器调度的有效性.而且,IBM 3 ...
- angular核心原理解析3:指令的执行过程
指令的执行过程分析. 我们知道指令的执行分两个阶段,一个是compile,一个是link. 我们可以在指令中自定义compile和link. 首先,我们来讲解如何自定义link函数 举个例子: < ...
- 【基础知识】CPU 指令执行的五个阶段,cpu就是用来执行指令的
IF(Instruction fetch) 取指:从 Instruction-Memory 中读取指令,并在下一个时钟上升沿到来时把指令送到 ID 级的指令缓冲器 id_ir 中.该级控制信号决定下一 ...
- struts2学习(5)拦截器简介以及例子执行过程
一.拦截器简介: 二.Struts2预定义拦截器&拦截器栈 在执行action之前和之后,拦截器进行了操作: 比如struts-default.xml中就有很多预定义的拦截器: 拦截器栈: ...
- 操作系统复习——如何查看一个进程的详细信息,如何追踪一个进程的执行过程 ,如何在 Linux 系统下查看 CPU、内存、磁盘、IO、网卡情况?epoll和select区别?
1. 如何查看一个进程的详细信息,如何追踪一个进程的执行过程 通过pstree命令(根据pid)进行查询进程内部当前运行了多少线程:# pstree -p 19135(进程号) 使用top命令查看(可 ...
- tomcat——大致简介和执行过程
jsp简介 JSP: JAVA Server Page 使用JAVA语言编写的一种在服务器运行的动态页面 JSP = JAVA + HTML JSP 的执行过程 1: 翻译阶段 把JSP源文件翻译成 ...
随机推荐
- QTP之回放模式(ReplayType)
QTP的回放模式有两种,如下所示: 1. Event模式 -- 事件跟踪 2. Mouse模式 -- 鼠标跟踪 Event模式就是我们平时默认用的模式,也就是事件,其实QTP的click方 ...
- C# 获取相对路径(绝对路径转相对路径)
这个的方法有很多吧. 1. 用PInvok调用Windows API的PathRelativePathTo 2. 自行处理字符串 3. 利用Uri 前两种就不说了,觉得有点麻烦,想了解的同学,自已,百 ...
- [ACM_模拟] UVA 12504 Updating a Dictionary [字符串处理 字典增加、减少、改变问题]
Updating a Dictionary In this problem, a dictionary is collection of key-value pairs, where keys ...
- web窗体ListView配置分页
一.配置objectDataSource 1.选择业务逻辑层的类,再选择对应的分页方法 2.配置Select对应的方法,必须是一个带两个整型参数的方法,第一个参数表示要查看的第一条记录的前一条,第二个 ...
- sql server 修改表字段信息
alter table oa_archives_folder alter column folder_category varchar(200)
- .Net 百度经纬度转高德
1.需求 由于我们项目里面的经纬坐标是百度的,而对接的第三方需要的是高德的经纬坐标,两者之间是有位差区别的,不能直接使用,我们需要通过一个算法将百度经纬度转化为高德经纬度,在百度官网上,有java算法 ...
- hdoj1072 Nightmare(bfs)
题目大意: 在迷宫中有一个炸弹,过六个单位时间就会爆炸,要你求一个起点到迷宫的终点的最短距离,迷宫中有时间重置器,当你走到这个格子,炸弹的爆炸时间重新置为0,迷宫中标识为墙壁的格子不能走,到达任意一个 ...
- robot framework 测试/预发/线上环境快捷切换
通常情况下布署的三套环境:测试.预发及线上环境.调试或者辅助验证测试时,切环境改变量甚是麻烦.这些变量包括但不限于:一些url信息,数据库信息,预置用户信息等. 切换环境方法一:使用变量文件,通过判断 ...
- Nexus3.6 window版私服搭建 安装、配置教程
1.本地环境配置(Nexus3.6支持jdk版本1.6.1.7.1.8) 1.1.官网下载地址:https://www.sonatype.com/download-oss-sonatype ...
- MySQL远程登陆解决
第一句:以权限用户root登录 第二句:选择mysql库 第三句:查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称) 第四句:修改host值(以通配符%的内容增加主机/IP ...