必须掌握的东西
Byte字节,bit位
1Byte(B)=8bit,1KB=1024B(字节),1MB=1024KB,1GB=1024MB,1TB=1024GB
210即为1K
211为2K
212为4K
213为8K
214为16K
220为1MB
221为2MB
222为4MB
230为1GB等依此规律
十六进制的数0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F分别对应二进制的0000、0001、0010、0011、0100、0101、0110、0111、1000、1001、1010、1011、1100、1101、1110、1111,十六进制数转二进制数时,按照这种对应关系,一位一位转过来就行,例如:十六进制F7转二进制数为11110111。
八进制转二进制也是同样的,0、1、2、3、4、5、6、7对应000、001、010、011、100、101、110、111,例如:八进制的56转二进制为101110。
1.按存储介质分类
(1)半导体存储器:TTL、MOS(主要)——易丢失。如固态硬盘(不易失),u盘(非易失),存储卡(不易失),catch(易失),内存条(易失)
( 2 ) 磁 表 面 存 储 器 : 磁 头 、 载 磁 体 。 如 磁 盘 ( 硬 盘 和 软 盘 ) ( 3 ) 磁 芯 存 储 器 : 硬 磁 材 料 、 环 状 元 件 。 如 : 磁 带 ( 4 ) 光 盘 存 储 器 : 激 光 、 磁 光 材 料 } = 不 易 丢 失 \left.\begin{matrix}(2)磁表面存储器:磁头、载磁体。如磁盘(硬盘和软盘)\\(3)磁芯存储器:硬磁材料、环状元件。如:磁带\\(4)光盘存储器:激光、磁光材料\end{matrix}\right\}=不易丢失 (2)磁表面存储器:磁头、载磁体。如磁盘(硬盘和软盘)(3)磁芯存储器:硬磁材料、环状元件。如:磁带(4)光盘存储器:激光、磁光材料⎭⎬⎫=不易丢失
2.按存储方式分类
(1)存取时间与物理地址无关(随机访问)
(2)存取时间与物理地址有关(串行访问)
1.存储器三个主要特性的关系
2.缓存——主存层次和主存——辅存层次
缓存——主存用硬件的方法连接,按内容查找。指令在缓存中,指令中的地址也主存的地址,转换为缓存的地址
主存——辅存层次软硬件相结合
缓存里存的信息都是主存的副本
将辅存的一部分虚拟成主存
1.主存的基本组成
2.主存和CPU的联系
3.主存中存储单元的地址分配
假设:存储字长32位,对此存储器的某个单元进行读/写,一次最多可读出/写入32位个01
编址单位是字节,每一个字节都有个地址。 存储字是32位,字节是八位,都有地址
12345678H八个16进制,用二进制表示每个占四位,共32位,存在一个存储单元中
8*8的芯片指8个存储单元,每个单元存储8位即存储字长为8位即字为8位(存储字长:每个单元存储的二进制位数)地址线与数据线
字:存储字长
字节:1B=8b,字节永远都是8位
一个存储字包括四个字节,0、4、8为存储字的地址,一个存储器包括的四个字节都有地址
高位字节的地址作为存储器的地址(高位字节所在的地址定义为字的地址)
大端大尾方式:高位字节存在低地址,低位字节存放在高地址,高位字节的地址作为存储字的地址
低位字节地址为字地址
小端小尾方式:低位在低地址,高位在高地址,且低位字节所在的地址称为存储字的地址
设地址线24根 按字节,一个字节一个地址,寻址 224=16M*B=16MB
若字长为16位,按字(一个字一个地址)寻址 8MW(w指word)
若字长为32位 按字寻址 4MW
按字节寻址最好
,可以访问的类型多,但需要的地址线多
一个16k×32位的存储器,其地址线和数据线的总和是:
16k=214即14根地址线,,32是数据线的根数,则总和是14+32=46
4.主存的技术指标
(1)存储容量 主存 存放二进制代码的总位数
(2)存取速度
片选线:芯片选择线
半导体片选线有两种: C S ‾ \overline{CS} CS芯片选择, C E ‾ \overline{CE} CE芯片使能信号,加横线表低电平有效
读/写控制线: W E ‾ \overline{WE} WE低电平写操作高电平读, O E ‾ \overline{OE} OE读操作
16K×1表示芯片容量为16K,每个存储单元保存一位信息。如果用八个这样的芯片构成16K×8.这样的八个共四组成为64K×8位。每一组同时工作
选中一组,每组中会同时工作
半导体存储芯片的译码驱动方式:给出存储单元的地址后,怎么找到指定的存储单元
(1)线选法
看数据线的接发判断高低位
所有存储单元布局为线性数组
对容量稍大一点的芯片不合适,无法做到那么密集,集成度那么高,芯片中线太多了。假设是1M×8的,要20根地址线,芯片内的线有2^20×8
(2)重合法
所有存储单元布局为二维阵列,行列地址分别进行译码。在下图中,数据线仅一位,每个存储单元的位数也仅一位
仍是上题的举例,行地址线和列地址线各10根,行译码和列译码器会各产生1K条,共2k条比线选法要少很多线
保存0、1的原理
基本单元电路构成,
单元电路读出写入如何构成
典型芯片的结构
静态RAM芯片如何读出和写入
(1)静态RAM基本电路(采用双稳态触发器
,两端来存储)
T1~ T4触发器,解决保存0、1的原理
T5、T6行开关,解决对存储元件的读写,由行地址选择进行控制
T7、T8列开关,一列共用,控制所有存储元件共有的控制开关
写入时一个写原来的,一个写非
采用电容,电容中有充电是1,没有电是0
(1)动态RAM基本单元电路
刷新仅与行地址有关
,对某一行进行刷新将刷新安排在指令译码阶段,不会出现"死区"
(1)位扩展(增加存储字长)
数据线不同
片选相同,保证两个芯片同时工作
(2)字扩展(增加存储字的数量)
地址线不同,有片选信号
A10为片选信号,为0选第一个芯片,为1选第二个芯片
片选不同,两个芯片不能同时工作,根据片选信号的不同,不同芯片工作
(3)字、位扩展
先位再字扩展
4K×8位的存储器是32K位,1K×4位是4K位个,因此需要8片1K×4K的芯片
芯片两两一组构成1K×8的,共要4组
2根地址线做片选信号,使用2—4译码器,00第一组芯片,01第二组芯片…
不可放置不管
(1)地址线的连接
一般,地址的低位作为地址送入存储器的地址线中,高位作为芯片选择信号
(2)数据线的连接
决定字的接法
CPU数据线的条数可能比存储器数据线的条数要多,就要做位扩展
(3)读/写命令控制线的连接
连接到每一个芯片的读写控制端上,ROM除外
(4)片选线的连接
用低位作为片选信号好
。
存储器的访问信号要在片选线中体现
每个内存芯片都有它的地址范围,这个地址范围要满足cpu的要求,有的地址要用作片选信号
(5)合理选择存储芯片(ROM,RAM)
系统程序、配置信息用ROM。用户即运行区用RAM
(6)其他 时序、负载
== 对任何一个芯片来说,CPU的地址线要么输入到地址中,要么出现在片选输入端,不要忘了MREQ。==
注意ROM数据是单向的线,RAM数据是双向的线,ROM端只读不写,编程端接地
首先6000H~67FFH为16进制,需要写为二进制为0110 0000 0000 0000——0110 0111 1111 1111。后面的0到10位从全0变为全1,共是11根地址线,211即2K,而又有8位数据线,则这个存储空间为2K×8位,其放的是系统程序
同上得用户程序区是1K×8位
利用138译码器,MREQ连到片选信号上,A10为0才能选后面两个1K×4位
注意ROM数据是单向的线,RAM数据是双向的线,ROM端只读不写,编程端接地
,其实不拘于138译码器
用1K×4位的存储芯片组成容量为16K×8位的存储芯片要(32)片
例4.3设CPU有20根地址线和16根数据线,并用IO/ M ‾ \overline{M} M作为访存控制信号, R D ‾ \overline{RD} RD为读命令, W R ‾ \overline{WR} WR为写命令。CPU可通过BHE和A0来控制按字节或字两种形式访存(如表4.1所示)。要求采用图4.39所示的芯片,门电路自定。试回答:
(1)CPU按字节访问和按字访问的地址范围各是多少?
(2) CPU按字节访问时需分奇偶体,且最大64 KB为系统程序区,与其相邻的64 KB为用户程序区。写出每片存储芯片所对应的二进制地址码。
任意两组合法代码之间二进制位数
的最少差异
编码的纠错、检错能力与编码的最小距离有关
。
汉明码是具有一位纠错能力的编码
。
如下
分三组,每组都用偶校验(加上校验位共偶数个1),偶校验用异或门实现 若一组出差错,则是该组独有的部分;若两组错,则是两组公共的位置
校验位都是不共有的地方
组成汉明码的三要素
添加检测位的位数即分组数,n位信息位,k位校验位
后面一般情况下用偶校验
异或:奇数个1则为1,偶数个1为0
.
C1检测对应二进制码20位为1的
C2检测对应二进制码21位为1的
C4检测对应二进制码22位为1的
(1)高位交叉(主要应用于存储器容量的扩展)
(2)低位交叉(应用于存储器带宽和访问速度的提高)
横向进行顺序编码,且低位为体号
相当于以流水的方式访问不同的存储体
避免CPU"空等"现象
CPU和主存(DRAM)的速度差异
时间局部:当前用的指令或数据在不久的将来还会再用到
空间局部:当前用的指令或数据在不久后相邻的指令或数据可能会被用到
(1)主存和缓存的编址
数据在内存与Catch之间传送的时候,是以整块传送的,所以内存块内地址部分与Catch中块内地址部分的值相同
Catch上的标记标记了主存块与Catch块之间的对应关系,若一个主存块调用到Catch块中,就可将主存块号写到标记中
。
当CPU给出一个内存地址,需要在Catch中访问到这个数据,则要确定这个块是否已经送到Catch中,用它给出地址的主存块号与Catch中的标记进行比较
Catch与主存之间按块存储,按块传送,块的大小相同,块内地址完全相同,不用转化
。
(2)命中与未命中
(3)Catch的命中率
命中次数÷(命中次数+未命中访问主存次数)
(4)Catch——主存系统的效率
访问效率最小:tc/tm;最大为每次都访问catch为1
上公式是Catch与内存同时访问的公式,若先访问catch再访问内存,则公式会发生变化
替换机构:当新的主存块需要调入缓存中,而它的可用位置又被占用时,需根据替换算法解决调入问题。
地址映射:一个块要放到catch中,它可以放入catch的哪些块中
变换机构:主存块号转为catch块号;主存的地址转为catch相应的地址
写直达法:可能增加访存次数(如累加求和运算)
写回法:若有多个catch,可能造成多个catch数据的不一致
多核:每个核都有自己的catch,多个核有共用的catch
流水线的机器:将指令和数据分开放在不同的Catch中,避免流水过程中造成资源冲突
1.直接映射
主存当中任意一个给定的块,它只能映射到或只能装载到某个指定的catch块中
将主存储体划分成若干与catch存储体相等的区,每个区的大小和catch存储体大小相同,每个区当中包含的字块数和catch存储体当中包含的字块数相等。
每个区的第0块只能放在catch的第0块中
cpu给出地址,这个地址分为三部分:区号(主存字块标记)、块号(Catch字块标记)、块内偏移地址(字块地址)
主存字块标记与Catch字块标记比较判断是否命中
结构简单,速度快;catch的利用率可能低,调用时冲突也大
2.全相联映射
主存中任何一个块可以被放到catch任何一个块中
catch利用率高,速度慢,电路复杂,比较器长度也长
3.组相联映射(常用)
主存中的一个块可以放到catch当中指定的几个块中
先把catch分成块,然后这些块又被分成若干个组,每组当中可以包含4块、8块、16块。一般多少组,每组就多少块
主存储器字块也进行分区,每个区的大小它的组数与catch是相同的
每个区的第0块可以放到catch当中第0组任何一个位置
Catche的标记就是主存的组号m-q
Q指组的大小,模Q求到的余数就是内存块在这个区当中的内部编号,据内部编号映射到第i组的任何一块
靠近CPU的采用直接相连或路数比较少的组相联
中间层次用组相联(两路组相联,每组包含两个字块 ),距离CPU远的用全相联
1.先进先出(FIFO)算法
最先被放入到catch中的块,不在用被放出去
2.近期最少使用(LRU)算法
CRC校验的基本原理
有效信息位(k位) | 校验信息位(r位) |
---|
N=k+r<=2r-1
收发双方约定一个(r+1)位二进制数,发送方利用G(x)对信息多项式做模二除运算,生成校验码。接收方利用G(X)对收到的编码多项式做模二除运算检测差错及错误定位。
1.根据待校验信息的长度k,按照k+r<=2r-1确定校验位r的位数,如对四位信息1100进行RCR编码,根据4+r<=2r-1得rmin=3.
2.根据r和生成多项式的选择原则,选择位数为r+1的生成多项式G(X)=1011(查表)
3.进行下列变换
有效信息位(k位) | 校验信息位(r位) |
---|---|
1100 | 000 |
即:将待校验的二进制信息Q(X)逻辑左移r位,得到Q(X)‘
4.对Q(X)‘按模2运算法则除G(X),求CRC编码中的r位校验信息。
用得到的余数替换Q(X)‘的最后r位即可得到最后的CRC编码
1100|000——>1100|010 即为1100的CRC编码
接收方利用G(X)对收到的编码多项式做模2除运算
余数为0,说明传输没有错误。错误在不同位数对应的余数不同。
若采用不同的生成多项式,对应的相同位出错的时候得到的不为0的余数是不相同的。