计算机组成原理

您所在的位置:网站首页 硬件系统5大部件 计算机组成原理

计算机组成原理

2024-07-14 06:44| 来源: 网络整理| 查看: 265

前言

学习视频:2019 王道考研 计算机组成原理

推荐2019版本~

CPU

CPU

运算器

运算器是计算机的执行部件,进行算术运算(加减乘除)和逻辑运算(与或非异)。

包含以下的主要部件:

MQ:Multiple-Quotient Register,乘商寄存器,主要负责数据的算数运算,并保存结果ACC:Accumulator,累加器,专门用来存储操作数或运算结果ALU:Arithmetic and Logic Unit,算术逻辑单元,用以计算机指令集中的执行算术与逻辑操作X:通用寄存器PSW:Program Status Word,程序状态字寄存器,主要存储一些状态(有无移除、进位、错误等信息),可供控制器参考

运算器的核心是ALU,MQ、ACC、X这三个寄存器是最基本的寄存器。

image-20201201102238333

控制器

控制器是计算机的指挥中心,进行协调各部件之间的自动化协调工作。控制器由CU、IR、PC组成:

CU:Control Unit,控制单元,分析指令,给出控制信号。IR:Instruction Register,指令寄存器,用于存放当前的指令,内容来自主存中的MDR。会将该指令发送给CU解析PC:Program Counter,程序计数器,存档指令的地址,有自动加1的功能。保证了主机可以自动化循环的工作。

ALU和CU分别代表了硬件的两种设计方式

ALU:采用组合逻辑的设计方式:例如实现1+1这种亘古不变的逻辑操作,直接得出结果,看到输入就得到输出

CU:采用时序逻辑的设计方式:管理整个操作步骤的安排,简单记录本步的计算结果,然后进行判断,如果没有判断,就会不断的进行下一步下一步控制

主存储器

主存

存储器是计算机的存储部件,用来存放程序和数据。其中CPU可以直接访问的就是主存(内存条),而辅助存储器,例如平常使用的硬盘、固态、光盘等只是帮助主存存储更多的信息。辅存的信息只有加载在主存中,CPU才可以进行访问。

主存可以分为以下三个部分:

存储体:存储二进制信息MAR:Memory Address Register,存储访存地址,通过译码后找到存储体中的具体存储单元MDR:Memory Data Register,暂存需要从存储器中都或者写的信息

主存工作流程 (1)

基本工作流程:地址寄存器承接从外部传过来的一个地址,然后通过这个地址定位到存储体当中的某个存储单元,然后将内部的数据自动输出到数据寄存器中暂存,外部的单元再从数据从数据寄存器中取走。整个过程是通过时序逻辑进行控制的。

在现代计算机中MDR和MAR是存在于CPU中的,但是逻辑上仍然是主存的一部分,所以也会有以下的图:

image-20201202205326209

存储体 存储元

存储器的最小存储单元,存放0或者1。

假如输入端有个0的数据,那开关如果是闭合的,例如在为1的状态下,则0的数据就会通过电路达到输出端。反之亦然。

存储元

存储单元

而存储单元,就是存储元的阵列。

和存储元类似,有一个开关可以同时控制一整行的存储单元,但是此时同时控制的是8个存储元。

比如此时的开关是1,连通电路,则输出端将得到01100110的数据。这么一长串的数据叫做一个存储字,此时的存储字长为8bit,即一个字节:Byte。1Byte == 8bit

而存储单元的阵列,就是存储体。

地址和地址译码器

可以参考:地址和地址译码器

因为CPU是直接与主存打交道的,那CPU输出一个存储器地址到地址总线上面,那这个地址怎么才可以选中一个存储单元呢?这个就是译码器要解决的问题。译码的过程是编码的逆过程,将一长串二进制代码翻译成特定的对象(例如高低电平)。打个比方:地址译码器就像电话系统,打电话时输入电话号码就好比地址,根据输入的电话号码在若干门电话中只有一门电话被选中。

存储体的上一步工序中,就是地址寄存器传来的地址,通过这个地址找到存储体中的存储单元。地址寄存器传来的地址位数反映了存储

元的个数。比如有32个存储单元,而存储单元的地址是用二进制来表示的,那么5位二进制数就可以32个存储单元。那么,MAR的位数

是5位。在实际运用中,我们知道了MAR的位数,存储单元的个数也可以知道了。

对于一个地址寄存器中地址的位数为3位,则对应到存储单元就是 2 3 2^3 23个,如下图所示:

此时的地址码为010,结合38真值表可以得出,存储体中被激活的存储单元(这个词可能用的不对)为序号6,则输出的数据为序号6存

单元中的存储位:00101100。

地址译码器

3-8译码器真值表

I/O设备

键盘鼠标、相机、显示屏、触摸屏…

计算机的工作过程-取数指令

image-20201202201828386

(PC) --> MAR:将PC中要操作的指令放到主存中的MAR中。

M(MAR) --> MDR:主存根据MAR中的地址码,找到对应的存储单元,将数据暂存至MDR中

(MDR) --> IR:MDR中存储的指令交给控制器中的IR

此时取指令结束

OP(IR) --> CU:从IR中取出指令里面的操作码,交给CU去解析

此时分析指令已经完成,但是仍然没有拿到要处理的数据

Ad(IR) --> MAR:取出IR中指令的地址码,存储到MAR中

M(MAR) --> MDR:主存更绝MAR中的地址码,找到对应的存储单元,将数据暂存到MDR中

(MDR) --> ACC:将数据从MDR中取出交给ACC

执行指令结束

其中,数据和指令是以同等的地位存储到主存中的,从MDR中取出的是指令还是数据,通过指令周期的不同阶段来进行判断!

计算机的层次结构

软件是灵魂、硬件是肉体,两者逻辑上是可以等同的(对于实现一个功能而言)。

机器语言:只有01这种二进制代码,例如0000,0000,000000010000

第一段0000,代表了需要执行的操作,后面两端代表了哪里找数据,对于人来说,显然是看不懂的。。。于是就开始找规律。。。

汇编语言:开始有了助记符,知道编址的规律之后,很容易可以定位到具体的位置,于是人开始让计算机去干查表的活儿,比如LOAD A, 16 ,这条指令的意思:将后面那个16地址所在的数据存到A这个寄存器中。通过汇编程序(汇编器)将汇编语言翻译成机器语言。

完成一个简单的加法操作:

16号单元数据于17号单元数据相加存于17号单元:

LOAD A, 16

LOAD B, 17

ADD C, A, B

STORE C, 17

由于类似这样的操作有很多,于是人又要开始偷懒了。。。。

高级语言:将这种重复的操作通过c=a+b的简单命令让底层去实现,例如C、C++、爪洼等。通过编译程序(编译器)将这种高级语言翻译成汇编语言。总之人越来越懒了。。。

最后发展到以下的五大层次结构

image-20201202203725832



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3