存储器刷新
存储器设计
【例】 用若干个2K
×
\times
× 4位的芯片组成一个8K
×
\times
× 8位的存储器,则地址0B1FH所在芯片的最小地址是______
【分析】0B1FH 写成二进制 0000 1011 0111 1111B
需要4组,每组两片
8K
×
\times
× 8位:需要 13 位地址,红色加蓝色部分
2K
×
\times
× 4位:需要 11 位地址,蓝色部分(低位:片内地址),红色两位用于选择芯片(高两位:当前工作是哪一组芯片)
于是,0B1FH 对应的最小地址就是将蓝色写成全0,即0000 1000 0000 0000B,对应十六进制0800H
【例】 地址总线A0(高位)~A15(低位),用4K
×
\times
× 4位的存储芯片组成16KB存储器,则产生片选信号的译码器的输入线地址是______
A. A2A3
B. A0A1
C. A12A13
D. A14A15
【分析】地址总线总共 16 位
4K
×
\times
× 4位的存储芯片,需要地址线 12 根,数据线4根
16KB存储器,(假设数据位是4位,那么地址线需要15根,其中12根用于片内选址,剩下3根用于片选),但是结合题目来理解,观察选项都是2位用于片选,所以数据位应为8位,于是存储器可表示为16K
×
\times
× 8位,于是地址线需用14根;用4K
×
\times
× 4位的存储芯片组成16K
×
\times
× 8位的存储器需要4组,每组2片,于是片选线2根。低的12根用于片内选址,次高两位A2A3用做片选信号,最高两位A0A1没有用到。
高速缓存
【例】某存储系统中,主存容量是Cache容量的4096倍,Cache被分为64个块,当主存地址和Cache地址采用直接映射方式时,地址映射表的大小应为______(不考虑一致性维护和替换算法位)
【分析】
主存与Cache容量之比为4096(212),需要用12位进行区分;Cache被分为64个块(26),需要6位
主存地址结构划分:
主存字块标记 | Cache字块标记/cache行号 | 字块内地址 |
---|---|---|
12 | 6 | 未知 |
cache行标记项结构:
有效位 | 标记位 | 脏位 | 替换控制位 |
---|---|---|---|
1 | 12 | 不考虑 | 不考虑 |
64 × \times × (12+1)即 64 × \times × 13bit,其中 1 表示 1位有效位
【例】有效容量为128KB的Cache,每块16字节,采用8路组相联,字节地址为1234567H的单元调入该Cache,则其Tag应为______
【分析】128KB的Cache,每块16B,那么总共有128KB/16B=213块,采用8路组相联,于是可划分为 213/8=210组,需要10位来寻址;每块16B(24),字块内地址为4位;
再根据字节地址1234567H,对应二进制为 0001 0010 0011 0100 0101 0110 0111
除去低位的Cache字块标记和字块内地址,可知高14位为主存字块标记,00 0100 1000 1101,对应十六进制为 048DH
主存字块标记 | Cache组号 | 字块内地址 |
---|---|---|
14 | 10 | 4 |
主存字块标记: 主存容量跟缓存容量之比,主存总地址比缓存总地址长出来的位数
Cache字块标记: 缓存总容量跟每一块的容量之比,缓存的总的地址长度减去字块内的地址长度
1010–>A 1011–>B 1100–>C 1101–>D
主存cache映射详见:计组——详解cache主存映射cache容量及cache写策略