一、概述
计算机系统的组成
硬件系统和软件系统共同构成了一个完整的计算机系统。
冯诺依曼机的特点
1)计算机由运算器、存储器、控制器、输入设备和输出设备五大部分组成;
2)指令和数据存储在存储器中,并可以按地址访问;
3)指令和数据均以二进制表示;
4)指令由操作码和地址码构成,操作码指明操作的性质,地址码表示操作数在存储器中的位置;
5)指令在存储器内按顺序存放,通常按自动的顺序取出执行;
6)机器以运算器为中心,I/O设备与存储器交换数据也要通过运算器。(因此,后来有了以存储器为中心的计算机结构)
现代计算机的组成框图
由于运算器和控制器在逻辑关系和电路结构上联系十分紧密,通常将它们合起来统称为中央处理器,简称CPU,把输入输出设备简称为I/O设备,这样现代计算机可以认为由三大部分组成:CPU与主存储器可以称为主机,I/O设备称为外部设备,结构图如下
关于存储器相关概念
存储器的功能:
存储器是计算机系统中的记忆设备,用来存放程序(指令)和数据(二进制代码形式存放)。
存储器中最小单位就是存储元,可以存储一个二进制代码(0或1),即1个 bit
什么是存储单元、存储字、存储字长、存储体?
存储单元:存储一个存储字并具有特定存储地址的存储单位;
存储字:一个存储单元中存放的所有的二进制数据,按照某个地址访问某个存储单元获取的二进制数据。
存储字长:存储字中二进制数据的位数,即按照某个地址访问某个存储单元获取的二进制数据的位数;
存储体:由多个存储单元构成的存储器件。
什么是机器字长,指令字长和存储字长?
机器字长:CPU一次能够处理的二进制数据的位数。
存储字长:一个存储单元存储二进制代码的长度。
指令字长:一个指令字中包含二进制代码的位数。
主存储器中,什么是MAR,什么是MDR,存储器的最大容量由什么决定?
1)MAR:存储地址寄存器,保存需要访问的存储单元地址。反映存储单元的个数。
2)MDR:存储数据寄存器,缓存读出/写入存储单元的数据。反映存储字长。
3)存储器的最大容量由MAR寄存器的位数和MDR寄存器的位数决定。
CPU如何区分当前读取的是指令还是数据?
根据时间判断,当前工作时间是在取指阶段,从内存中读取出来的一定是指令,当前工作时间是在执行阶段,从内存中读取出来的一定是数据。
一条指令在CPU的执行过程
几乎所有的冯·诺伊曼型计算机的CPU,其工作都可以分为5个阶段:
取指令 --> 指令译码 --> 执行指令 --> 访存取数 --> 结果写回
1.取指令阶段
取指令(Instruction Fetch,IF)阶段是将一条指令从主存中取到指令寄存器的过程。
程序计数器PC中的数值,用来指示当前指令在主存中的位置。当一条指令被取出后,PC中的数值将根据指令字长度而自动递增。
//PC -> AR -> Memory
//Memory -> IR
2.指令译码阶段
取出指令后,计算机立即进入指令译码(Instruction Decode,ID)阶段。
在指令译码阶段,指令译码器按照预定的指令格式,对取回的指令进行拆分和解释,识别区分出不同的指令类别以及各种获取操作数的方法。
// { 1.Ad
//Memory -> IR -> ID -> { 2.PC变化
// { 3.CU(Control Unit)
3.访存取数阶段
根据指令需要,有可能要访问主存,读取操作数,这样就进入了访存取数(Memory,MEM)阶段。
此阶段的任务是:根据指令地址码,得到操作数在主存中的地址,并从主存中读取该操作数用于运算。
//Ad -> AR -> AD -> Memory
4.执行指令阶段
执行指令(Execute,EX)阶段,此阶段的任务是完成指令所规定的各种操作,具体实现指令的功能。为此,CPU的不同部分被连接起来,以执行所需的操作。
//Memory -> DR -> ALU
5.结果写回阶段
结果写回(Writeback,WB)阶段把执行指令阶段的运行结果数据“写回”到内存中。
//DR -> Memory
6.循环阶段
在指令执行完毕、结果数据写回之后,若无意外事件(如结果溢出等)发生,计算机就接着从程序计数器PC中取得下一条指令地址,开始新一轮的循环,下一个指令周期将顺序取出下一条指令。
//重复 1~5
//遇hlt(holt on)停止
性能指标
主频 CPU工作主时钟的频率,机器主频Rc
CPI 执行一条指令所需时钟周期数
MIPS 每秒执行多少百万条指令
FLOPS 每秒执行多少次浮点运算
时钟周期 节拍脉冲,CPU中最小的时间单位
二、数据的表示和运算
数制与编码
数值
BCD码
8421码:本质就是十六进制
加法修正:
大于(1010)_2的时候需要加6修正
(1010)_2到(1111)_2为无效码
字符和字符串
-
ASCII码:
有7位,用一个字节可以表示(最高位不用,为0)
-
字符串的存放(大端,小端)
大端模式:是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;(符合人的正常思维)
一个字节一个字节的倒着放。(注:一个字节=2位16进制=8位2进制)
小端模式:是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。
常用校验码
-
奇偶校验码
奇校验码:整个校验码(有效位和信息位)中“1”的个数为奇数 偶校验码:整个校验码(有效位和信息位)中“1”的个数为偶数 优缺点:只能检错,不能纠错
-
海明(汉明)校验码
分组多个校验位 优缺点:能发现2位错误,纠正一位错误 <