计组——存储器和cache相关的计算问题

存储器刷新

计组——存储器和cache相关的计算问题_第1张图片

存储器设计

【例】 用若干个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写策略

你可能感兴趣的:(计算机学科基础综合,408)