当前位置:网站首页>CPU的功能和基本结构
CPU的功能和基本结构
2022-06-23 04:39:00 【不断前进的皮卡丘】
文章是观看王道计算机组成原理所写
中央处理器CPU
1.CPU基本功能
- CPU:中央处理器
- CPU由运算器和控制器组成
- 用计算机解决某个问题时要为它编写程序
- 程序是一个指令序列,它告诉计算机要执行什么操作,在什么地方来找到用来操作的数据
- 一旦把程序加载到内存储器,就可以由计算机来自动完成取出指令和执行指令的任务

CPU其他功能:
处理中断:
①控制程序的输入和结果的输出,就是说控制主机和IO设备的交换信息,比如说我们程序在运行中,要给一个输入从可以让程序继续运行,不然的话,程序就会卡住不动,这里就运用到了处理中断
②总线管理,运行过程中的异常情况和特殊情况的请求处理
2.工作流程
先来回顾一下控制器的组成,后面的知识需要用到
第一步取指
根据程序计数器PC指定的主存地址,从主存(或缓存)读取指令,放入指令寄存器IR
思考:程序开始执行以后,就会根据指令的关系来执行程序,那么第一条指令是谁给的呢?
就比如说电脑上我们安装了QQ,当我们想要运行的时候,双击就可以了, 由于我们安装QQ的时候,是安装在硬盘上的,双击的时候,操作系统会把程序从硬盘调到内存中,调到内存的地方不是固定的,因为内存是动态管理的,也就是说一个程序开始的第一条指令存放的位置是由操作系统掌控的
我们知道取出指令以后,肯定是想要进行相应的操作,但是我们肯定要先知道要做什么,也就是指令代码的含义,才能进行操作,所以下一步是译码。
第二步译码
根据IR中的指令,结合指令系统规范,分解指令的操作码、地址码等部分
操作码——指明做哪种操作
地址码——指明如何得到操作数、如何保存结果以及如何形成后续指令地址等
第三步执行
第四步写回
将计算结果保存到主存(或缓存)
第五步中断
响应外部请求
接下来就是这几个步骤的循环
下面这张图就是CPU的工作流程
3.CPU的基本组成

1.运算部件

2.寄存器组

3.控制部件
顾名思义,运算部件是用来做运算的,那么控制部件肯定是用来控制的
控制部件主要是用来负责指令译码,并且发出完成指令功能所需要的各种操作的控制信号,比如说告诉各个部件,哪一些部件需要进行操作,具体要进行什么操作
我们知道每一个人看待问题的角度是不一样的,因此不同的人看待同一种事物的感受也是不一样的,同样的,计算机的工作过程从不同的角度来看也是不一样的。
- 从用户的角度:计算机的工作过程就是指令序列的连续执行
- 从内部的实现机制:计算机的工作过程是控制命令下的信息传输,是控制流和信息流综合的过程
对于控制部件来说,最重要的是控制命令(微命令)产生部件
很明显谁先执行,肯定是有先后顺序的,分阶段的,应该要有一个时间信号,这里就由时序系统来控制的
4.时序系统
同步:做一件事有明确的时间规定,从什么时候开始,到什么时候结束
5.CPU内部数据通路结构

- CPU内部单总线方式:把所有寄存器的输入端和输出端都连接到一条公共的通路上,同一个时刻只能有一个部件传输数据
- 如果直接用导线连接,相当于多个寄存器同时并且一直向ALU传输数据---->每个输入端获得的是累加的信号,它无法分辨现在是谁给它传输数据

- 通用寄存器有四个,R0到R3,用来存放操作数(源操作数,目的操作数,中间结果)和各种地址信息。
- 如果执行一次加法运算时,选择两个操作数相加(放在两个寄存器),所得的结构送回其中一个寄存器(R2),那么R2原有的内容就会被替换





4.指令周期及其数据流


我们知道指令存在不同周期,我们可以使用触发器来判断指令处于哪一个周期
指令的地址放在PC中,CPU和存储器之际的交流是依靠MAR和MDR



5.数据通路
5.1CPU内部单总线方式
- 数据通路:数据在功能部件之间的传送路径
- 数据通路的基本结构:
- ①CPU内部单总线方式
- ②CPU内部多总线方式
- ③专用数据通路方式
单总线方式:每一个部件都和总线相连,但是部件之间不相连
每一个部件和总线之间的连接方式由一个可以控制信号的通断的控制信号控制
练习
5.2专用数据通路








6. 控制器的功能和工作原理

6.1控制器的结构和功能

控制器是计算机系统的指挥中心,控制器的主要功能有下面三个:
- 从主存中取出一条指令,并指出下一条指令在主存中的位置
- 对指令进行译码或测试,产生相应的操作控制信号,以便启动规定的操作
- 指挥并控制CPU,主存,输入和输出设备之间的数据流动方向

CU的设计: - 硬布线(组合逻辑电路+触发器)
- 微程序
6.2硬布线控制器


设计步骤
- ①分析每个阶段的微操作序列
- ②选择CPU的控制方式
- ③安排微操作时序
- ④电路设计
6.2.1 CPU控制方式


6.2.2 安排微操作时序的原则

没有相关性的操作可以安排在同一个节拍完成


6.2.3 组合逻辑设计
设计步骤
- 列出操作时间表
- 写出微操作命令的最简表达式
- 画出逻辑图
边栏推荐
- How to specify the output path of pig register Project Log
- About the error of installing PIP3 install chatterbot
- Fraction to recursing decimal
- Long substring without repeating characters for leetcode topic resolution
- Redis 哨兵
- Pat class B 1011 C language
- Possible pits in mongodb project
- Network packet capturing tcpdump User Guide
- [database backup] complete the backup of MySQL database through scheduled tasks
- ant使用总结(一):使用ant自动打包apk
猜你喜欢

Ant Usage Summary (III): batch packaging apk

Learning Tai Chi Maker - esp8226 (11) distribution network with WiFi manager Library

Wireshark TS | 视频 APP 无法播放问题

gplearn出现 assignment destination is read-only

Radar canvas

如何指定pig-register项目日志的输出路径

最优传输理论下对抗攻击可解释性

【Cocos2d-x】可擦除的Layer:ErasableLayer

Introduction to JVM principle

Redis sentry
随机推荐
Pyinstaller packaging pyttsx3 error
Sorting out common problems after crawler deployment
Kotlin Android simple activity jump, simple combination of handler and thread
Network packet capturing tcpdump User Guide
Leetcode topic resolution remove nth node from end of list
Summary of ant usage (I): using ant to automatically package apk
Long substring without repeating characters for leetcode topic resolution
mongodb 4.x绑定多个ip启动报错
In the half year summary, it people just want to lie flat
基于T5L1的小型PLC设计方案
Day_03 传智健康项目-预约管理-检查组管理
Eight data analysis models: ogsm model
【Vivado那些事儿】XilinxCEDStore介绍
Given a node of a binary tree, return the successor node of the node
Repeated DNA sequences for leetcode topic resolution
Add and multiply two polynomials using linked list
Tcp/ip explanation (version 2) notes / 3 link layer / 3.4 bridge and switch
Paper notes: multi label learning lsml
Operating mongodb in node
Dora's Google SEO tutorial (1) SEO novice guide: establishment of preliminary optimization thinking





