1,系统架构
1.1,组成结构
【硬件】是指计算机的实体部分,它由看得见摸得着的各种电子元件,各类光、电、机设备的实物组成。所有硬件通过总线和接口连接在一起,构成一台完整的计算机。
(1)运算器:相当于算盘,具有计算功能的部件。
- 执行数值数据的加、减、乘、除等算术运算,执行逻辑数据的与、或、非等逻辑运算,所有的运算功能由一个被称为ALU(算术逻辑单元)的电路完成。功能强的ALU还能执行:定点运算、浮点运算,向量运算。
- 暂时存放参加运算的数据和中间结果。(由多个通用寄存器来完成)
(2)控制器:相当于大脑,能够自动控制整个计算过程,按规定的指令,控制计算机中其他各部件,对运算器、存储器、输入/输出设备等部件发出有关操作命令。
- 正确执行每条指令(单个指令)先取一条指令、分析这条指令、再按指令格式和功能执行这条指令。
- 保证指令按规定序列自动连续执行。(多个指令)
- 对异常情况和请求及时响应和处理。
(3)存储器:相当于纸,具有记忆功能的部件。
- 三级存储系统:高速缓冲存储器、主存储器、辅助存储器。
- 这三级存储器所用的存储介质(半导体材料,磁性材料),工作原理和特性各不相同。
(4)输入输出设备:相当于笔,把原始解题数据送到计算机或者把运算结果显示出来的设备。
(5)接口:通过接口,主机和外设可以并行协调地工作。输入/输出设备通常称为外围设备。其种类繁多,数据传送方式和速度差异也很大,因此它不能直接与主机相连接,而要通过接口与主机相连接。例如:网卡、声卡、显卡等。
(6)系统总线:是构成计算机系统的骨架,是多个系统部件之间进行数据传送的公共通道。借助系统总线的连接,计算机在各系统部件之间实现地址信号、数据信号、控制信号的传送。例如:主板上的传输线路。
【软件】:由人们实现编制的具有各类特殊功能的程序组成。计算机软件有两大类:系统软件(直接管理硬件资源)和 应用软件。
- 系统软件包括:操作系统、语言处理程序、标准库程序、服务性程序、数据库管理系统、计算机网络软件。
【硬件评价指标】
机器字长:CPU 一次能处理数据的位数与 CPU 中的寄存器位数有关。字长越长,数的表示范围越大,精度也越高。机器的字长也会影响运算速度,机器字长对硬件的造价也有较大的影响。机器字长一般体现在寄存器的位数,不同字长的计算机安装不同的操作系统,64位电脑可以安装32位操作系统,32位电脑绝对不能安装64位操作系统。
存储容量:
运算速度:
- 主频:机器内部主时钟的频率,衡量机器速度的重要参数。(即计算机的心跳次数)它的倒数是CPU时钟周期。
- MIPS:每秒执行百万条指令。
- MFLOPS:每秒执行百万次浮点运算。
- CPI:执行一条指令所需时钟周期数。
数据通路宽度:数据总线一次并行传送的位数,它关系到数据的传送能力。
吞吐量:指数据流入、处理和流出系统的速率。主要取决于主存的存取周期。
响应时间:计算机系统对特定事件的响应时间。
1.2,体系结构
计算机系统结构(组委会:筹建奥运会):系统结构给出一台计算机系统所能实现的所有功能特性。主要研究软件与硬件的功能分配,以及确定软硬件的分界面。
计算机组成:计算机系统结构的逻辑实现。(建筑设计师:设计奥运村图)当一个计算机系统把软件和硬件功能划分完以后,组成主要研究计算机各硬部件的组成和它们之间的关系。
计算机实现:计算机组成的物理实现。(建筑工程队:按设计图施工)研究各硬部件的物理实现技术。
【计算机组成:冯诺依曼机】
- 计算机由运算器、存储器、控制器、输入设备和输出设备五大部件组成。
- 指令和数据以同等地位存于存储器,可按地址寻访。
- 指令和数据均用二进制表示。
- 指令由操作码和地址码组成。
- 指令在存储器内按顺序存放。通常,指令时顺序执行的。在特定条件下,可根据运算结果或根据设定条件改变执行顺序。
- 机器以运算器为中心,输入输出设备与存储器间的数据传送通过运算器完成。
现在的计算机结构(冯.诺依曼结构);不改变的:存储程序(冯.诺依曼思想精华);改变的是:以存储器为中心,总线结构,分散控制。
编程案例:
ax2 + bx + c = (ax + b)x + c 取x至运算器中 取x至运算器中 乘以x在运算器中 乘以a在运算器中 乘以a在运算器中 加b在运算器中 存ax2 送至存储器中 乘以x 在运算器中 取b至运算器中 加c在运算器中 乘以x在运算器中 加ax2在运算器中 加c在运算器中 指令格式:设某机的指令字长为16位,其中操作码占6位,地址码占10位。
操作码:6位 地址码:10位
- 操作码表示机器所执行的各种操作,如取数、存数、加减乘除、停机、打印等。
- 地址码表示参加运算的数在存储器内的位置。机器指令的操作码都采用0,1代码的组合来表示。
1.3,工作过程
(1)主存储器:
(2)运算器:
(3)控制器:控制器是计算机的中枢神经, 由它指挥各部件自动、协调地工作。
计算机工作过程(以取数指令为例:将操作数 x 送至ACC)
- 首先,从程序计数器(PC)里面取出欲执行的指令的地址传入地址寄存器(MAR);
- 然后根据地址寄存器(MAR)中存放的地址,去存储体中找到这条指令对应的存储单元;
- 把从存储体中取到的数据存放到数据寄存器(MDR)中,这个数据就是指令;
- 然后地址寄存器(MDR)把得到的指令传到指令寄存器(IR)。
- 指令寄存器(IR)得到指令,取指令结束。
- 指令寄存器(IR)分析指令,将操作码传到控制单元(CU)。
- 控制单元(CU)执行指令,然后发出各种微操作的命令序列,分析指令结束。此案例需要发出取 x 操作。
- 指令寄存器(IR)分析指令(CU发出的取x指令),将地址码传到地址寄存器(MAR)。
- 根据地址寄存器(MAR)中的数据,去存储体中找到对应的操作数。
- 然后存储体将操作数传入数据寄存器(MDR)。
- 然后地址寄存器(MAR)将得到的数据传送给累加器(ACC),执行取数指令结束。
计算机工作过程(以存数指令为例 : 将ACC中的结果存至内存)
2,CPU
2.1,CPU的结构
程序是一个指令序列,通过每条指令告诉计算机,执行什么操作,到哪里找操作数,操作结果送到哪里。通常,程序首先被存放在辅助存储器中,运行时,由操作系统把程序装入主存,并将程序第一条指令在内存中的地址,送PC;CPU按照PC中的指令地址,自动完成取出指令和执行指令的任务。
中央处理器/CPU是机器指令的解释和执行机构,是计算机的核心部件。CPU对整个计算机系统的运行极其重要,包括四项基本功能:指令控制,操作控制,时间控制,数据加工。
指令控制取指令(控制器):解决程序执行的顺序控制问题。程序是一个指令序列,这些指令的相互顺序不能任意改变,必须严格按程序规定的顺序去执行。
操作控制(控制器): 一条指令的功能往往通过若干个操作信号的组合去实现的,因此,CPU产生并管理每条指令发出的操作信号,把各种操作信号送往相应的逻辑部件,从而指挥这些逻辑部件按指令的功能要求进行工作。
时间控制(控制器):解决各种操作,在执行时间上的定时问题。在计算机中,各种指令发出的操作信号,以及一条指令的整个执行过程,都受到时间的严格定时。
数据加工(运算器):数据加工就是完成对操作数进行算术运算和逻辑运算。
CPU的三大基本部分:控制器、运算器、Cache。
定点运算器是执行部件,完成算术与逻辑运算,是CPU的重要组成部分。相对于控制器,运算器是受控部件,运算器所完成的全部工作,都由控制器发出的操作信号来指挥。
为了弥补主存与CPU速度的不匹配,在CPU与主存之间设置一个高速的、小容量的缓冲存储器,称高速缓存(Cache),由SRAM组成。主存与Cache的地址变换、替换与调入都是由Cache硬件完成的。
控制器是计算机发布命令的“决策机构”,协调指挥整个计算机系统。
2.2,CPU:控制器
控制器的基本结构:
- 按给定的指令去执行;(给定的指令在程序中)
- 自动地去执行指令;(程序执行过程中不需人工干预)
- 有秩序地发出控制信号。(指令发出的操作控制信号有序)
① CPU按PC的内容访存,从内存中取出一条指令;
② 同时,PC改为下一条指令的地址(PC=PC+1);
③ CPU的指令寄存器接收从内存读出的指令,并对指令中的操作码进行译码测试,识别指令后,产生相应的操作控制信号,然后有序的发送控制信号;
④ 指挥并控制CPU与存储器、输入/输出设备之间数据流动的方向。
2.3,CPU:寄存器
CPU中的寄存器是暂时存放数据的逻辑部件。不同计算机的CPU可能有多种不同的寄存器,但CPU中至少要有六类主要的寄存器:累加寄存器(ACC)、状态寄存器(PSW)、指令寄存器(IR)、程序计数器(PC)、地址寄存器(MAR)、数据缓冲寄存器(MDR)。
通用寄存器(编程可访问寄存器)是一组通过编程可访问的、具有多种功能的寄存器。如:用于暂时存放操作运算结果,例如累加寄存器ACC,CPU中的通用寄存器不止一个,多达几十个甚至更多。或用作基址寄存器,用作变址寄存器,用作计数器等,因此称为通用寄存器。
【暂存器】是一些用户不能直接访问的寄存器,用来暂存数据。暂存器在指令中不可访问的,对用户来说,是透明的。
【指令寄存器(IR)】指令寄存器用来保存当前正在执行的一条指令。在指令执行过程中,指令寄存器的内容不能变,以确保执行正确。
当要执行一条指令时,CPU先从内存取出该指令,再从数据缓冲寄存器(MDR)传到指令寄存器(IR)。
为了提高指令间的衔接速度,大多数计算机将指令寄存器扩充为指令队列(指令栈),允许预取若干条指令。
【指令】由操作码和地址码组成。执行一条指令,需通过指令译码器,对其中的操作码进行译码,以便识别其完成的操作。因此,指令寄存器中操作码字段输出,输入到指令译码器译码识别后,即可由操作控制器发出具体操作信号。
【程序计数器(PC)( = 指令计数器 = 指令指针IP )】为保证程序自动地按顺序执行,CPU必须得到下一条指令的地址。程序计数器专用来存放下一条指令的地址,又称为指令计数器。
- 在程序开始执行前,操作系统将它在内存中的起始地址(即第一条指令所在内存单元地址)送入PC。
- CPU取出PC中的地址访存,同时,PC自动修改为下一条指令的地址。由于大多数指令都按顺序执行,所以通常进行PC+1。
- 当遇到转移指令(如 JMP 指令)时,转移指令中给出的一条指令的地址送PC,从而修改PC当前的内容。因此程序计数器的结构应当具有寄存和计数两种功能。
【状态条件寄存器PSW】CPU执行指令,一方面取决于编程时的程序流向与有关意图,另一方面取决于程序实际执行过程中的当前状态。计算机设置一条件码寄存器,专门存放上次指令执行的状态。
主存接口寄存器(编程不可访问寄存器,对程序员透明)当CPU访存时,先送地址码,然后送数据(写)或接收数据(读),内存中设置了数据缓冲寄存器和地址寄存器,暂时存放地址与数据。这两个寄存器从结构上属于主存,但是被封装到CPU里了。
【地址寄存器(MAR)】地址寄存器保存CPU当前访问的内存单元地址。由于在内存和CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信号,直到内存读/写操作完成为止 。
【数据缓冲寄存器(MDR)】数据缓冲寄存器用来暂时存放,内存读出或写入的一条指令或一个数据字;
2.4,中断系统
在计算机组成原理中,中断系统是一项核心机制,它允许计算机在处理程序时能够及时响应各种硬件和软件事件。中断不仅提高了处理器的效率,也增强了系统的可管理性和响应性。通过引入中断,CPU不再需要不停地轮询外部设备的状态,而是能够在必要时得到通知,从而更有效地分配处理资源。
- 中断检测:处理器周期性检查中断引脚,以确定是否有中断请求发生。
- 保存现场:CPU将当前执行的指令位置(通常是程序计数器PC)和相关寄存器状态保存到栈中,以便中断处理结束后可以恢复。
- 中断服务程序(ISR)执行:一旦中断被确认,处理器会跳转到与该中断相关的ISR,执行相应的处理逻辑。
- 恢复执行:ISR完成后,CPU从栈中恢复被保存的状态,继续执行中断前的任务。
2.5,指令周期
指令周期:取出并执行一条指令所需的全部时间。
CPU 访存有四种性质(将某主存单元的内容取至ACC中为例):
- 取 指令:取指周期
- PC 送 MAR 送 地址总线
- PC = PC + 1
- CU 发 读内存命令
- 数据 送 数据总线 送 MDR 送 IR // 指令送入IR
- 指令操作码部分 OP(IR) 送 CU // OP() 解码
取 地址:间址周期
指令地址码部分 送 MAR 送 地址总线
CU 发 读内存命令
数据 送 数据总线 送 MDR // 操作数地址送入MDR
取 操作数:执行周期
MDR 送 MAR 送 地址总线
CU 发 读内存命令
数据 送 数据总线 送 MDR 送 AC // 操作数送入AC
存 程序断点:中断周期
在中断周期内需将程序断点(在PC中)保存起来,通常把断点存入堆栈。(假设进栈操作是先修改堆栈指针,后存入数据)
CU 发 修改堆栈指针命令
(SP) – 1 送 SP, 送 MAR 送 地址总线
PC 送 MDR
CU 发 写内存命令, MDR 送 数据总线 写入 存储单元
CU 送 新程序地址 给 PC
3,存储器
存储器是计算机系统中的记忆设备,用来存放程序和数据。
3.1,存储器的分类
按存储介质分类:
- 半导体存储器:TTL 、MOS。易失
- 磁表面存储器:磁头、载磁体。非易失
- 磁芯存储器:硬磁材料、环状元件。非易失
- 光盘存储器:激光、磁光材料。非易失
按存取方式分类:
- 存取时间与物理地址无关(随机访问):随机存储器(在程序的执行过程中 可 读(取) 可 写(存))、只读存储器(在程序的执行过程中只读)。
- 存取时间与物理地址有关(串行访问):顺序存取存储器(磁带)、直接存取存储器(磁盘)。
按在计算机中的作用分类:
- RAM(随机存取存储器):
- SRAM : 静态随机(存取)存储器:存取速度快、集成度低、位平均功耗高,小容量主存。
- DRAM : 动态随机(存取)存储器:存取速度慢、集成度高、位平均功耗低,大容量主存。
- ROM(只读存储器):
- MROM:掩模只读存储器
- PROM:可编程只读存储器
- EPROM(紫外线):可擦除可编程只读存储器
- EEPROM:电可擦除可编程只读存储器。
3.2,存储器的层次结构
对存储器的要求: 尽可能 快 的 读写速度、尽可能 大 的 存储容量、尽可能 低 的 成本费用。为了同时满足上述要求,在现代计算机系统中,用多级存储器把要用的程序和数据,按其使用的紧迫程度分段调入存储容量不同、运行速度不同的存储器中。
由高速缓冲存储器、主存储器、辅助存储器组成三级结构的存储器,由系统统一调度、统一管理。
CPU不能直接访问辅助存储器,程序与数据从辅助存储器(外存)调入内存后,再从内存调入CACHE, CPU访问CACHE,读写程序和数据。
名称
简称
用途
特点
高速缓冲存储器
Cache
高速存取正在执行的指令和数据(半导体存储器)
存取速度快,
但存储容量小。
主存储器
主存
/内存
存取正在执行的指令和数据(半导体存储器)
存取速度较快,
存储容量较大。
辅助存储器
辅存
持久存取所有程序和大型数据(磁性光敏)
存取速度慢,
存储容量大。
高速缓冲存储器也有两种:
- 一是在CPU内 (一级CACHE、二级CACHE),CPU通过内部总线对其进行读/写操作。
- 一是在CPU外 ( 主板上 ),CPU通过存储器总线对其进行读/写操作。
3.3,主存储器
现代计算机的主存都由半导体集成电路构成,图中的驱动器、译码器和读写电路均制作在存储芯片中,而MAR和MDR制作在CPU芯片内。
当要从存储器读取某一信息字时,首先由CPU将该字的地址送到MAR,经过地址总线送至主存,然后发出读命令。主存接到读命令后,得知需将该地址单元的内容读出,便完成读操作,将该单元的内容读至数据总线上,至于该信息由MDR送至什么地方,这已不是主存的任务,而是CPU决定的。若要向主存存入一个信息字时,首先CPU将该字所在的主存单元的地址经MAR送到地址总线,并将信息字送入MDR,然后向主存发出写命令,主存接到写命令后,便将数据线上的信息写入到对应地址线指出的主存单元中。
主存中存储单元地址的分配:
- 按字节寻址:不论字长,每根地址线均有0或1,因此是16M
- 按字长寻址:一个字是2个字节(8位),按照字寻址是8M。
- 按字长寻址:一个字是4个字节(8位),按照字寻址是4M。
3.4,高速缓冲存储器(Cache)
为了弥补主存速度的不足,在CPU与主存之间设置一个 高速 小容量 的缓冲存储器,称高速缓存(Cache),主要由高速的SRAM组成。
- CPU输出存储单元地址(字)给内存,Cache拦截地址并分析;
- Cache 先判断该存储单元的内容是否已在Cache中;如果在,Cache直接送给CPU;如果不在,CPU再去主存中读取。
- CPU去主存中读取存储单元时,不仅把该存储单元取出,同时还把该存储单元附近的一块数据,都取出送给Cache,以便CPU顺序读取下一存储单元时,直接在Cache中读取。
CPU与Cache或主存之间的数据交换以“字”(即:存储单元)为单位,而主存与Cache之间的数据交换以“块”(即:数据块)为单位。一块数据块由若干个字组成,且块是定长的。