计算机组成原理笔记
计算机系统概论
硬件和软件
计算机系统的层次结构
翻译程序的分类:
冯·诺依曼体系
冯诺依曼结构特点:
- 计算机由运算器、存储器、控制器、输入设备、输出设备五大部件组成
- 指令和数据以同等地位存储,并可按地址寻访
- 指令和数据都以二进制数表示
- 指令由操作码和地址码组成,操作码表述操作的性质,地址码表述操作数的存储地址
- 指令在存储器中按顺序存放(早期为了解决人工一条一条的指令操作跟不上计算机的节凑的问题,提出了“存储程序”的概念,将大量指令存储起来,计算机再一条一条的取出执行,这样子提高了计算机工作效率)
- 计算机运算器为中心,输入输出通过运算器与存储器沟通
注:冯诺依曼结构以运算器为中心,以至于输出输出与存储器的交互必须通过运算器,所以现代计算机体系结构一般以存储器为中心,提高运算器的工作效率
细化的计算机组成框图
- CUP: 中央处理单元
- ALU:算数逻辑单元,通过复杂电路实现算术逻辑运算
- ACC: 累加器,存放操作数、结果
- MQ:乘商寄存器,存放结果
- X: 通用寄存器
- CU :控制单元
- IR:指令寄存器,存放当前指令
- PC: 程序寄存器,存放下条指令的地址,有自动加一的功能
- MDR:数据寄存器
- MAR:地址寄存器
- 存储体:由大量存储单元组成,每个存储单元有编号称为存储地址,一个存储单元又包含大量存储基元,一个存储基元可以表示一位二进制代码“0”或“1”,可见一个存储单元可以表示一串二进制代码,这串二进制代码成为存储字长
计算机硬件主要指标
- 机器字长:CUP一次能够处理数据的位数
- 存储容量:存储容量 = 存储单元数量×存储字长 ,即算出来的是机器能够表示的二进制的位数,现代计算机常用字节数来表示容量的大小,一字节=8 bit, 如:1M 位= 2^20 位 ,所以 1M 位 = 2^17 B(字节),即128KB
- CPI:执行一条指令的时钟周期
- IPS: 一秒钟内执行指令条数
- 主频:一秒钟内的脉冲信号次数
数据与文字的表示方法
进位与数制
- 二进制:表示方法:100110101B ,B结尾
- 八进制:表示方法:012557 ;0开头
- 十六进制:表示方法:0x12ABF ; 0x开头,A~F表示 10 ~15 ;
在计算机中用二进制表示数据,原因有下:
- 可以使用两个稳定状态的物理器来表示
- 0,1可以分别对应真假,方便逻辑运算
- 可以使用逻辑门电路来进行算术运算
进制转化
- 任意进制->十进制
方法:直接记住对应位的权值,按权值相加即可
- 二进制->八进制->十六进制
方法:3位二进制为 = 1 位八进制位; 4位二进制位 = 1 位十六进制位 ;八进制转十六进制同理,
- 十进制->二进制
方法1:整数部分 除基取余 ,小数部分 乘基取整 ;
方法2:拼凑法,直接记住对应二进制位的权值,凑出十进制。
十进制转八进制和十六进制一般先化为二进制,再转化
BCD码
BCD码的作用:在计算机中,常常要二进制和十进制的转化,一般的转化计算复杂耗费时间,所以采用另一种十进制的表示方法:用4bit位来表示1位十进制数。
BCD码有3种:
8421码的映射关系:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|
0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 |
因为4bit 位有16 位数字,所以有6位是冗余的,所以当数值超出范围的时候要加6,
例:5 + 8 = 13
0101 + 1000 = 1101 发现1101 不在映射关系内,所以需要修正,在1101 的基础上 + 0110 (十进制数6) ,调整为 1 0011 ,这时与映射关系对应 。
简单来说:4位二进制 = 1 位十进制位。
余三码是8421码的扩展,在8421码的基础上+ 0011 (十进制数3),为无权码
2421码 与8421 码类似,各位上权值 分别为 2 4 2 1
注 :在 2421码中 数值可能有多中表示方法,如:5 可以表示为 1011 也可以表示为 0101 所以规定:0~4 用开头为0 的二进制位表示,0~5 用 1 开头的二进制数位表示,防止产生歧义
字符与字符串表示
-
ACSII码:一个字符占一个字节,因为只有2^7(128)个字符,而计算机中常以一个字节为基本单位,所以规定一个字符占一个字节,那么剩下的位置干什么呢?用来存放控制、通信等不可打印的字符。其中32~126为可打印字符
-
汉字的编码与表示:汉字相较于英文单词字数庞大,所以一个字符肯定不够对应存放,一个汉字占用2个字节。常见汉字编码有 区位码 ,UTF-8 .
除了上述编码之外还有 输入编码 和 输出编码。常见输入编码有:拼音输入,五笔输入,双拼输入;
常见输出编码: 字形码
字符串的存储
在一段连续的存储空间,从低地址到高地址存储编码:‘\0’ 做结尾标志。一个英文字符占一个字节,一个汉字字符占两个字节 ,汉字在计算机中有两种存储方式:大端模式 小端模式
- 大端模式:将数据最高有效字节存放在低地址中
- 小端模式:将数据最高有效字节存放在高地址中
奇偶校验码
-
码字:由若干代码组成的一个字称为码字
-
码距: 两个码字比较,具有不同位的个数,称为码距
由于环境干扰,计算机数据传输过程中可能发生错误,所以需要一种检测方法来判断数据是否正确。
- 奇校验码 :整个校验码(有效信息位和校验位)的‘1’的个数始终为奇数
- 偶校验:整个校验码(有效信息位和校验位)的‘1’的个数始终为偶数
如:对于 编码0010101和1001011 ,写出它的奇偶校验码
奇校验码:0 0010101 1 1001011
偶校验码:1 0010101 0 1001011
接受方对整个校验码进行异或运算,奇校验码得出的结果始终为1,偶校验码得出的结果始终为0 ,如不符合则判定传输出错了。另外,奇偶校验只能检测出现奇数次错误,偶数次会失灵,因为两次出错使得码字中‘1’的奇偶数没有变化。
换种说法就是,奇偶校验码的码距为 2 ,使得它的检错能力为奇数次,并且无纠错能力。
存储系统
多级存储系统的分层结构
存储器的分类
下面主要介绍主存储器的结构:
- 存储矩阵:由大量相同的位存储单元阵列构成
- 译码驱动:译码器将输入的地址信号翻译成对应存储单元的选通信号,该信号在读写电路的配合下完成对被选中单元的读写操作
- 读写电路:包括读出放大器和写入电路,用来完成 读/写操作
- 读写控制线:决定芯片进行读还是写的操作
- 片选线: 确定那个存储器芯片被选中。平时没什么用,容量扩充就需要它了,可以实现器件并联。
- 地址线: 是单向输入的,其位数与存储字的个数有关。
- 数据线:是双向的,其位数与读入/写入的位数有关。
- 数据线数和地址线数共同反映存储芯片容量大小,如地址线10根,数据线8根 ,则芯片容量为: 2^10 × 8 = 8K 位
RAM
RAM(随机存取存储器) 访问每一个单元的时间都是一样的,RAM分为SRAM(静态随机存取存储器)与DRAM(动态随机存取存储器)两种。
SRAM | DRAM | |
---|---|---|
存储元件 | 触发器 (结构较复杂) | 电容 (结构较简单) |
破坏性读出 | 否 | 是 |
需要刷新 | 否 | 是(因为电容中的电荷会流失) |
送行列地址 | 同时送 | 分两次送 |
运行速度 | 快(因为无需刷新) | 慢(需要刷新) |
集成度 | 低(因为触发器结构更复杂,逻辑元件更多) | 高(电容结构简单) |
发热量 | 高 | 低 |
存储成本 | 高 | 低 |
DRAM的刷新机制详解https://www.cnblogs.com/zhemeshenqi/p/12522942.html