计算机组成原理(1)-哈工大刘宏伟-第三四章
前言·
没啥写的,这一篇打算放置第三四章(总线+存储器)的内容
3.1 总线的基本概念_哔哩哔哩_bilibili(p15-p21)
4.1 存储器概述_哔哩哔哩_bilibili(p22-p51)
总线内容较少,而存储器内容多且为重点
第三章 总线·
(2条消息) 计算机组成原理(唐朔飞) 知识点总结 第三章_不互锁,半互锁,全互锁_qq_39471489的博客-CSDN博客
搜了一下看到恰好比较全
总线:连接各个部件的信息传输线,是各个部件共享的传输介质
总线上信息的传送方式:串行和并行
总线争用问题
CPU和主存总线;CPU和I/O设备总线(面向CPU的双总线设备)
主存和I/O设备间没有直接连接
以存储器为中心的双总线结构框图:CPU和主存 存储总线;主存、CPU、I/O设备 系统总线
总线分类:片内总线、系统总线(数据总线、地址总线、控制总线)、通信总线
总线特性:
- 机械特性
- 电气特性
- 功能特性
- 时间特性
了解即可
总线结构这一小节,感觉不够具体,二三四总线、PCI总线;听完还是一头雾水
总线控制·
总线判优控制:
主设备(模块):对总线有控制权
从设备(模块):响应从主设备发来的总线命令
总线判优控制:集中式(链式查询、计数器定时查询、独立请求方式)、分布式
-
链式查询:判优是通过I/O设备接口顺序决定;结构简单
-
计数器定时查询:可以设置为循环查询,设置起始位置
-
独立请求方式:I/O接口直接BR、BG接到总线控制部件(内置排队器) 使用的线多
总线通信控制:
目的:解决通信双方协调配合的问题
总线传输周期:
- 申请分配阶段:主模块申请,总线仲裁决定
- 寻址阶段:主模块向从模块给出地址和命令
- 传数阶段:主模块和从模块交换数据
- 结束阶段:主模块撤销有关信息
总线通信的四种方式:
- 同步通信:由统一时标控制数据传送
- 异步通信:采用应答方式,没有公共时钟标准
- 半同步通信:同步、异步结合(协调不同速度的模块)
- 分离式通信:充分挖掘系统总线每一瞬间的潜力
*这一段(时序图)没有数电模电(前置:数字逻辑基础)的知识确实看不懂欸,到时候看是不是重点/会不会考吧,再决定学不学
异步通信的请求问答:不互锁(不等应答)和半互锁(等待应答)和全互锁(“三次握手”)
可能理解是错的
1)不互锁:主从设备在发送信号无需等待对方确认,当自己认为对方收到信号后便开始发送下一次信号 2)半互锁:主设备发送请求信号后必须收到从设备的应答才可以撤销请求信号,存在互锁关系。而从设备发出应答信号后无需等待主设备确认便可撤销其回答信号,不存在互锁关系。 3)全互锁:当主模块发送请求信号后必须等待从模块发送应答信号后才能撤销信号,又互锁关系。当从模块发送应答信号后必须等待主模块确认,当收到确认信号后才能撤销信号,也存在互锁关系。双发都存在互锁关系,故称为全互锁关系。
半同步通信:
行吧,还是不懂
第四章 存储器·
一、概述·
传统的冯诺依曼结构是以运算器为中心,改进后以存储器为中心
按存取方式分类:
- 存取时间与物理地址无关(随机访问):
- 随机存储器 在程序执行过程中可读可写
- 只读存储器 在程序的执行过程中只读
- 存取时间与物理地址有关(串行访问):
- 顺序存取存储器 磁带
- 直接存取存储器 磁盘
按在计算机中的作用分类:
- 主存储器
- RAM可读可写
- 静态RAM
- 动态RAM
- ROM只读
- MROM
- PROM
- EPROM
- EEPRMO
- RAM可读可写
- Flash Memory
- 高速缓冲存储器(Cache)
- 辅助存储器
*以后讲到存储器层次的时候会着重讲
主存升级速度<CPU,所以在CPU和主存之间加上了缓存
时间局部性就是cpu访问了一个数据,在不久的将来可能还会访问这个数据;空间局部性就是cpu访问了一个数据,在不久的将来可能会访问和它相邻的数据
透明的即为对于程序员来说不需要了解
缓存-主存(解决速度问题)【实地址】 主存-辅存(容量)【虚拟存储器 虚地址 逻辑地址】
二、主存储器·
MDR定义:全称 memory data register,主存数据寄存器,MDR用来保存要被写入地址单元或者从地址单元读入的数据。
MAR定义:全称memory address register,主存地址寄存器,MAR用来保存数据被传输到的位置的地址或者数据来源位置的地址。大端序和小端序
半导体存储芯片的基本结构:地址线 数据线 芯片容量
10 4 1K * 4位(210==1K)
m n 2m * n位
片选线 读写控制线
线选法的实现对于稍大的内存容量不现实,无法实现那么多的布线
重合法,将上面线性的改为二维的形式,行列分别译码
三、随机存取存储器(RAM)·
触发器,行开关,
静态RAM基本电路的读/写操作 没懂
p27这一段(直接跳到了p30的表格比较)实在是不行,根本就看不懂电路图,跳过了
类型 | 动态DRAM | 静态SRAM |
---|---|---|
存储原理 | 电容 | 触发器 |
集成度 | 高 | 低 |
芯片引脚 | 少 | 多 |
功耗 | 小 | 大 |
价格 | 低 | 高 |
速度 | 慢 | 快 |
刷新 | 有 | 无 |
用途 | 主存 | 缓存 |
四、只读存储器(ROM)·
从不可擦写到一次性到多次、电可擦写的讲述
五、存储器与CPU的连接·
存储器的容量扩展:位扩展、字扩展、同时扩展
不太懂为什么字扩展不允许同时工作(地址线抉择那个可用)
刚才还想着4K(12根地址线)*8位(8根数据线)的存储器
还在想是多出4根地址线呢,没必要那么多,结果想错了
六、存储器的校验·
编码的检测能力和纠错能力与合法代码的规定位数有关
纠错编码就是在信息序列中加入一些冗余码元,组成一个相关的码元序列——码字,译码时利用码元之间的相关性质类检测错误和纠正错误。提高传输的可靠性是以降低传输效率为代价的。
【纠错编码原理】1-纠错编码的基本概念:简单入门 - RivenSartre萨特沙盐 - 博客园 (cnblogs.com)
好学术!
- 检错码(Error Detection Code):只能发现错误不能纠正错误
- 纠错码(Error Correcting Code):能发现错误也能纠正错误
视频中,例如从000到111一共八位,若表示8位数,则自然检0位错,纠0位错
如果表示4位数{000,011,101,110}(采用只有当偶数位1才视为合法,否则为出错),则可以检1位错(如果是有1位出错,则可以被检验出,但无法纠错;为什么只能检1位:因为若有两位变动,则会变成合法序列的其他选项)
三倍冗余:000为0,111为1,其余不合法 – 检1纠1(100可以大胆猜测原来为000,因为两位同时出错概率更低)
三倍冗余:0000为0,1111为1 – 检2纠1(1000可猜测是0000,而1100只能检测2位出错,无法纠错)
以上所有的,均建立在最简单出错可能(1位出错概率小于2位同时出错)的思考
编码的最小距离:任意两组合法代码之间二进制位数的最少差异
L-1 = D+C(D>=C)
L为编码的最小距离,D为检测错误的位数,C为纠正错误的位数
汉明码·
奇偶校验、分组校验(前面加上校验为,例如加上1使总共的1的个数为偶数个,若变为奇数个说明出错)
1,2,3,4,5,6,7(分为3组,每组有1为校验位,共4位数据位)
校验位:1,2,4(画个圈,相交取和或最大值)若000则没错,001第一位错,110第6位错
检测位的位置:2i;|| 汉明码的组成需增添?位检测位:2k>=n+k+1
各检测位Ci所承担的检测小组为:C2检测的g2小组包含第2,3,6,7,10,11,即位置的二进制编码为X…XX1X(倒数第二位为1,其余任意)(各个检测小组之间当然可能重复)
这个汉明码讲了3,4节了,咋还没结束啊
例题:求0101根据“偶校验”配置的汉明码
由于0101共4位,n=4及2k>=n+k+1可知k=3
十进制下标 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|
对应二进制 | 1 | 10 | 11 | 100 | 101 | 110 | 111 |
名称(0101填入) | C1 | C2 | 0 | C4 | 1 | 0 | 1 |
偶校验-计算 | 0 | 1 | 0 |
汉明码排序如上,合并:可知,0101的汉明码为0100101
同理计算得,0011的汉明码为1000011
汉明码的纠错过程
已知收到汉明码为0100111(偶配置),求要信息为?(假设只出错一位)
注意:重求1,2,4位的校验位,反推出错位修正
P1 = 1异或3异或5异或7 = 0 无错
P2 = 2异或3异或6异或7 = 1 有错
P4 = 4异或5异或6异或7 = 1 有错
寻找有错之间的公共位,即为出错位(如果是7位出错,那么P1也应当出错,与实际不符合)
刚才还在想如果是校验位错了呢,那么:
0101101的纠错过程:P4=1,P2=0,P1=0 即第四位出错,可不纠
0011按配奇原则配置的汉明码为:0101011(显然使对应四位的异或/半加值为1即可)
七、提高访存速度的措施·
CPU和存储器之间增速不一致导致的剪刀差
- 采用高速器件
- 采用层次结构 Cache-主存(下一章可能讲)
- 调整主存结构
单体多字系统 增加存储器的带宽 缺点:要求连续,不能只用1/4
高位交叉 顺序编址 实现多个存储体并行工作(由于指令顺序存储,导致指令集中在某一个存储体内繁忙,而其他空闲) 适合存储器容量扩展,不适合提高存储器的带宽/缓存速度
低位交叉 各个体轮流编址 流水 没听懂
高位怎么实现流水啊,他一连串都是在同一个存储体好吧
存取周期T= 4*总线传输周期tao
高性能存储芯片
- SDRAM(同步DRAM)在系统时钟的控制下进行读出和写入,CPU无须等待
- RDRAM
- 带Cache的DRAM 有利于猝发式读取
习题·
太累了,就看了两个习题,剩下三个暂时跳了
4.3高速缓冲存储器 p46·
- 避免CPU空等等情况
- CPU和主存(DRAM)的速度差异
利用程序访问的局部性原理
一看到一堆原理图就不想记、不想听了
命中与未命中
Cache的命中率
CPU欲访问的信息在Cache中的比率
命中率与Cache的容量与块长有关(详情见:计算机体系结构)
命中率计算公式还能听;Cache的基本结构听着就太折磨了,之前就该好好听课的,突然发现自己应该把课本也掏出来的,太抽象了
Cache的读写操作
写直达法/全写法(write through):既写入cache又写入主存
写回法(write back):只把数据写入cache
cache的改进:
- 增加cache的级数(片载/片内cache+片外cache)
- 统一缓存和分立缓存(指令cache和数据cache)
cache-主存的地址映射:
直接映射:某一内存块只能固定映射某一cache(不灵活)
全相联映射:任一内存块能映射任一cache(成本高)
组相联映射:某一内存块只能固定映射某一组cache(折中)
替换算法:
先进先出不合适,近期最少使用(LRU)算法
辅助存储器:
不直接和CPU交换信息
讲述了相应特性信息后,开始讲磁记录原理和记录方式
硬磁盘存储器的类型:固定磁头和移动磁头、可换盘和固定盘
硬磁盘存储器结构
剩下的不记了,本来就是为了考试
开始下一阶段的征程!
IO设备和数字