Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 内存到缓存映射_C_Caching_Memory_Mapping - Fatal编程技术网

C 内存到缓存映射

C 内存到缓存映射,c,caching,memory,mapping,C,Caching,Memory,Mapping,我们刚刚开始讨论缓存、内存映射和地址结构,我对如何找到这个问题的缓存大小感到困惑 如果缓存大小以128个块的形式提供给您,并且内存有16kb的块,每个块包含8个字,其中一个字是4个字节,这是否意味着每个缓存块也包含8个字?还是说我们必须将128除以8才能得到缓存块的实际数量?在这种情况下,缓存的大小是多少?它是否等于128*8*4字节?内存有16kb块是什么意思?通常,缓存由3个值定义—总缓存大小、缓存线大小和缓存关联性。主内存对缓存的唯一影响是标记字段所需的最小位数。我的意思是内存总共有16k

我们刚刚开始讨论缓存、内存映射和地址结构,我对如何找到这个问题的缓存大小感到困惑


如果缓存大小以128个块的形式提供给您,并且内存有16kb的块,每个块包含8个字,其中一个字是4个字节,这是否意味着每个缓存块也包含8个字?还是说我们必须将128除以8才能得到缓存块的实际数量?在这种情况下,缓存的大小是多少?它是否等于128*8*4字节?

内存有16kb块是什么意思?通常,缓存由3个值定义—总缓存大小、缓存线大小和缓存关联性。主内存对缓存的唯一影响是标记字段所需的最小位数。我的意思是内存总共有16kb的块。我认为内存的大小将决定有多少块将映射到同一个缓存块?这仍然没有意义-kb和block是两个独立的大小单位,后者是一个变量,但仍然是一个大小单位。这就像说一个水瓶能装1000毫升盎司的水。内存的总大小可能为16 KB,或者总大小为16k 16*1024个特定大小的块,例如8个字。在任何情况下,内存的大小都与有多少可能的地址可以映射到单个缓存线有关——这与标记字段中的位数直接相关。