IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 8.1-CPU结构(学习笔记) -> 正文阅读

[嵌入式]8.1-CPU结构(学习笔记)

【README】

本文总结自bilibili《计算机组成原理(哈工大刘宏伟)》的视频讲解,非常棒,墙裂推荐;


【1】CPU结构

Cpu的首要功能就是解释指令;功能列表如下:

  • 1)?? ?取指令:从内存中读取指令;
  • 2)?? ?分析指令:对指令的操作码部分进行解码;分析这条指令要完成什么功能,是指令集中的哪一条指令;
  • 3)?? ?执行指令: cpu控制器发出各种操作命令,由这些操作命令去控制相关部件去完成指令要求的操作;(这些操作命令有一定的先后顺序);
  • 4)?? ?控制器控制参数输入及结果输出;
  • 5)?? ?总线管理: 对总线的控制权,使用权进行管理;
  • 6)?? ?处理异常情况和特殊请求: 在程序执行过程中,控制器能够对异常情况,或特殊请求进行及时处理;

【2】cpu结构框图

【2.1】总线功能列表

1)?? ?控制总线:双向,由cpu向各个部件发出的控制命令,或外部设备向cpu提出的请求以及外部设备的状态,可以通过控制总线来传输;
2)?? ?数据总线:双向,由cpu向存储器或外设写出或读入数据;
3)?? ?地址总线:单向, 由cpu发出,送给内存或外设接口;

【2.2】cpu内部结构

【2.2.1】寄存器

PC,程序计数器寄存器,存储要取出的指令的地址;
IR,指令寄存器,从内存中取出指令,被放入到IR寄存器中;

。。。其他寄存器;

【2.2.2】控制单元CU

操作控制和实际控制:这两部分需要控制单元CU,由控制单元对指令进行译码,译码之后,在给定时刻给出给定的操作命令;

【2.2.3】ALU(算术逻辑运算单元):

算术运算,逻辑运算都是在ALU中进行计算中;
另外在运算过程中,还需要寄存器,如2个操作数可能都保存在寄存器中,或运算结果也需要输出到寄存器中;

【2.2.4】中断系统

还需要中断处理,所以需要中断系统;

refer2 计算机中断系统小结(cpu响应中断)_PacosonSWJTU的博客-CSDN博客_各中断源如何向cpu提出中断请求


?【3】cpu的寄存器

?【3.1】用户可见寄存器

1)?? ?通用寄存器:用于存放操作数,如8086cpu的AX,BX等;
2)?? ?数据寄存器:存放操作数,如有保存整数的寄存器,也有保存浮点数的寄存器;如把ACC寄存器和MQ寄存器拼接在一起用于保存两个数相乘的积;
3)?? ?地址寄存器:保存地址,如8086cpu中的段寄存器,如段基址,堆栈指针寄存器SP;
4)?? ?条件码寄存器:存放条件码,根据条件码来判断是否要跳转执行指令;

补充:用户可见的寄存器指的是 用户在编写程序的过程中,可以使用这些寄存器的值;

【3.2】控制和状态寄存器

PC -> MAR -> M -> MDR ->IR? 讲的是取指令的过程,其中

  1. PC-程序计数器寄存器:保存了将要执行的下一条指令的地址;
  2. MAR-主存(内存)地址寄存器:保存了访问内存(访存)的地址,从内存读出或写入内存某地址;
  3. M:主存(内存);
  4. MDR-主存(内存)数据寄存器:保存了访问内存(访存)的数据,从内存的MAR指定的地址单元读取的数据,或写入到MAR指定的地址单元的数据;
  5. IR:指令寄存器:存储要执行的指令;(而PC存储的下一条执行的地址)

步骤如下:

  1. PC -> MAR :PC(程序计数器寄存器)保存了下一条执行指令的地址,把下一条指令地址送入到MAR;
  2. MAR -> M :MAR中的指令地址送入到地址总线,地址总线再送入到主存;
  3. M -> MDR:从主存的MAR指定的内存单元读取数据(指令)到MDR
  4. MDR ->IR? :把读取的数据(指令)从MDR 送入 IR;

写到这里,本文扩展性的给出取指令的步骤(干货):

步骤

描述

1

PC把下一条指令的内存地址送入MAR;

2

MAR把地址送到地址总线,再由地址总线送到存储器;

3

CU把读控制信号送到控制总线上;再由控制总线送到存储器;

4

存储器执行读操作,把相应的数据送到数据总线;通过数据总线送到MDR;

(这个时候,指令已经被取出到cpu了,并保持到MDR寄存器中)

5

MDR把指令送到IR中;

6

CU把PC加1(得到下一条指令的地址);为下一条指令的取指操作做准备;

【补充】

状态寄存器 :反映了指令执行结果的情况或计算机的软硬件状态;
PSW: 程序状态字寄存器(procedure state word);

程序状态字是什么?
在中断或者是子程序调用过程中,为了能够让程序能够正确返回断点,返回断点后,还能够接着执行给定程序;在中断前或转子程序前,就需要保存程序的运行现场和断点,包括了程序运行的软硬件信息;这些软硬件信息就可以保存在程序状态字寄存器(它是一个大的寄存器);


【4】控制单元CU和中断系统??

【4.1】控制单元CU

1)控制单元作用:产生全部指令在执行时所需要的微操作命令序列;

任何一条指令的执行,它会在cpu中译码;
根据它是一条什么样的指令,或完成什么功能;要产生完成这些功能所需的微操作命令及序列(保证微操作命令的顺序);

2)控制器的设计方式

  • 组合逻辑设计: 通过硬连线逻辑,如精简指令集计算机 CISC;
  • 微程序设计:存储逻辑;适用于复杂指令的设计;

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-03-24 00:45:14  更:2022-03-24 00:47:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 2:01:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码