一个设有cache的存储系统中,若主存容量为512KB,cache容量为2KB,每次交换的数据块长度为16B。主存数据调入cache时,为了区分是主存哪个部分哪个字块调入cache中哪个字块位置。因此在cache存储器中还需存放调入主存字块的特征,即cac

admin2009-02-15  20

问题 一个设有cache的存储系统中,若主存容量为512KB,cache容量为2KB,每次交换的数据块长度为16B。主存数据调入cache时,为了区分是主存哪个部分哪个字块调入cache中哪个字块位置。因此在cache存储器中还需存放调入主存字块的特征,即cache字块标志(主存高位地址)。cache地址映像若采用直接映像方式,本题中cache字块标志是(1)位,若采用全相联地址映像方式,则cache字块标志是(2)位。

选项 A、7
B、8
C、12
D、15

答案D

解析 为了提高访存速度,设置高速缓存cache,访问主存时,先查该单元是否已经调入cache。主存与cache都划分成长度相等的数据块,每次主存与cache交换数据时都是以数据块为单位进行的。因为主存数据块调入cache的数据块位置有一定规定,不能随意安放,因此产生了不同的cache地址映像方式。其中直接地址映像方式比较简单直观,容易实现,直接地址像方式规定:按照cache容量的大小将主存分区、主存每区有一个区号,每分区内又分成若干数据块、数据块容量大小与cache字块相同,每个字块有一个块号,因此cache中数据块的数目与主存分区中的数据块数目是相同的。直接地址映像方式规定,主存各分区中,某一个数据块调入cache时,只能放在与主存某一分区中数据块号相同的cache数据块中。这样查找cache中的数据块时,还不能判定数据块号相同的cache字块一定是用户指定的主存数据块,还必须看是主存中哪一个分区中的数据块,即还要看这个数据块属哪个主存分区的,即区号。也就是主存地址除了数据块号和块内地址后剩下的高位地址。为了证明cache中每个数据块中存放的主存是哪个分区的数据,还必须将其分区区号(主存高位地址)作为cache字块标志存入cache中有关的cache字块中。在本题中,主存容量为512KB,cache容量为2KB,因此可将主存分成256个分区,区号即主存高位地址。本题cache和主存的数据块为16B,块内地址为4位,cache容量为2KB,可分为2048÷16B=128个数据块,块号为7位。主存容量为512KB,地址为19位,去掉块号及块内地址还有7位。主存高位地址即区号,也就是cache字块标志。在cache地址直接映像方式时,cache字块标志是7位,所以试题(1)答案选A。cache地址直接映像方式使用不方便不灵活。cache地址采用全相联映像方式,将根本改变上述方式之缺点。全相联地址映像方式规定,主存中任何一个数据块,可以放在cache中任意一个字块位置上,使用非常灵活。在本题中主存容量为512KB,主存地址为19位,cache地址为2KB,cache地址为11位。每个数据块长度为16B,块内地址为4位。当主存中任意一个数据块调往cache放在任意一个数据块位置上时,必须在cache数据块中存入说明这是主存中哪一个数据块的块号,显然主存中共可分为512KB÷16B=32KB个数据块,主存数据块块号为15位,也就是主存高15位地址是全相联地址映像的字块标志。
转载请注明原文地址:https://jikaoti.com/ti/Zda7FFFM
0

相关试题推荐
最新回复(0)