目录

计算机系统层次结构

系统结构

https://gitee.com/lienhui68/picStore/raw/master/null/20200711150127.png

控制器:解决计算机系统内部各个部件协调沟通的问题

控制线是双向的, 因为一方面控制器要向部件发出控制信号,另一方面控制信号的发出是基于每个部件当前的工作状态以及需求,这是一个双向的信号反馈过程。

将存储器放到中间,运算器处理的数据可以以块为单位。

软件和硬件在逻辑上是等效的,比如两个8位可以等效于16位。

组成原理里的主机和现实中购买的主机不一样,现实里的主机除了那三样还集成了很多其他部件。

cpu

http://img.cana.space/picStore/20210304172832.png

ALU Arithmetic and Logic Unit 算术逻辑单元,进行算术和逻辑运算

MQ Multiple-Quotient Register 乘商寄存器

ACC Accumlator 累加器

X 通用寄存器

MQ、ACC、X存放运算的中间结果

https://gitee.com/lienhui68/picStore/raw/master/null/20200711151613.png

PSW Program Status Word 程序状态字寄存器 存储一些状态比如运算的初步结论(有无益处、进位是否错误等)供控制器用作下一步参考。

CU Control Unit 控制单元

ALU和CU分别代表了两类主要的硬件设计方式,ALU采用了组合逻辑的设计方式,CU采用了时序逻辑的设计方式。

组合逻辑:1+1=2,根据规则看到输入就能得到输出

时序逻辑:管理整个操作步骤的安排,简单记录当前步骤的结果,然后根据这个结果判断下一步要做什么。如果不需要判断能够直接执行下一步。

IR 指令寄存器, 指令会从IR输入到CU

PC 程序计数器寄存器,IR永远从PC找下一条指令。

工作过程——取数指令

https://gitee.com/lienhui68/picStore/raw/master/null/20200711155705.png

  1. MDR和MAR

主存储器是由地址寄存器(MAR),数据寄存器(MDR),存储体,时序控制逻辑,地址寄存器存放访存地址,经过地址译码后找到所选的存储单元。数据寄存器,是存储器与其他部件的中介,用于暂存要从存储器读或写的信息。时序控制逻辑用于产生存储器操作所需的各种时序信号。在现代CPU,MAR和MDR是在CPU中的。

  1. 如何区分指令和数据

MDR->IR、ACC: CPU区分指令和数据的依据是指令周期的不同阶段,在取指令阶段取出来的肯定是指令,在执行指令阶段取出来的肯定是数据放到相应的寄存器。

如何区分阶段:cpu设置了相应的触发器(寄存器),通过查询触发器(寄存器)的状态就可以知道处于哪个阶段。

I/O设备

https://gitee.com/lienhui68/picStore/raw/master/null/20200711160609.png

辅助存储器也可以看作一个I/O设备,既能读也能写

https://gitee.com/lienhui68/picStore/raw/master/null/20200711160543.png

至于每一类怎么和主机之间进行交流,重点在于I/O接口的基本结构和逻辑设计。

软件系统

https://gitee.com/lienhui68/picStore/raw/master/null/20200711161552.png

软件分类

系统软件包括 操作系统,数据库管理系统,语言处理系统(比如编译器),分布式软件系统,网络软件系统,标准库系统,服务性系统(比如连接程序)。

应用软件包括各种科学计算类程序,工程设计类程序,数据统计与处理程序。

注意 数据库管理系统和数据库系统是有区别的。数据库管理系统是系统软件,为数据库系统编写提供一些接口。而数据库系统一般是由数据库,数据库管理系统,数据库管理员和应用系统构成。所以只能说它里面有系统软件,但并不能说它为系统软件。

https://gitee.com/lienhui68/picStore/raw/master/null/20200711161902.png

编程语言

高级语言也可以直接翻译为机器语言。

编译程序:高级语言一口气翻译成机器语言,优点是可以结合上下分优化执行

解释程序:高级语言逐条编译和执行,缺点是不能结合上下文执行

五层结构

https://gitee.com/lienhui68/picStore/raw/master/null/20200711180044.png

https://gitee.com/lienhui68/picStore/raw/master/null/20200711180401.png

https://gitee.com/lienhui68/picStore/raw/master/null/20200711180433.png

存储器

https://gitee.com/lienhui68/picStore/raw/master/null/20200711181803.png

外存可以看成是一种I/O,既能输入又能输出。

https://gitee.com/lienhui68/picStore/raw/master/null/20200711182227.png

存储体 存储数据

MAR(地址寄存器)和MDR(数据寄存器) 读取数据

https://gitee.com/lienhui68/picStore/raw/master/null/image-20200711182326327.png

MAR:承接外部送过来的一个地址,这个地址用来定位到存储体中的某一个存储单元,这个存储单元被定位后会自动地把一部分数据输出到MDR中暂存,然后外部单元再从MDR中取出,整个过程由时序控制逻辑进行控制。

存储器的存储原理:存储体是如何实现存储的呢?

实现存储的结构有很多种,以下是一种方式

https://gitee.com/lienhui68/picStore/raw/master/null/20200711183648.png

https://gitee.com/lienhui68/picStore/raw/master/null/20200711183624.png

存储元、存储单元、存储体是硬件单元,存储字是从这些硬件单元读出来的信号。

寻址

https://gitee.com/lienhui68/picStore/raw/master/null/20200711185335.png

https://gitee.com/lienhui68/picStore/raw/master/null/20200711184657.png

译码器:如图中绿色线所示,同一时刻只能对一行存储单元供电(否则错乱),假设右边共有8行(8个存储单元),可以使用3位二进制表示这8行,比如000表示第一行,其实000表示的就是第一个存储单元的地址。译码器就是根据地址来找到对应的存储单元。

驱动器是用来增强供电的能力,如图中的1信号要供8个存储元。

数据寄存器,当取出一个存储字之后,直接送往数据寄存器,所以存储单元的位数也就决定了数据寄存器的位数。

https://gitee.com/lienhui68/picStore/raw/master/null/20200711185630.png

存储器数据寄存器(MDR)和存储器地址寄存器(MAR)在设计上是属于内存的,最终实现是放在cpu里面。

https://gitee.com/lienhui68/picStore/raw/master/null/20200711185753.png