本文介绍了编写一个C程序来衡量缓存性能和内存层次结构。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们希望得到以下CPU的参数

实验:

•缓存数量

•所有缓存的大小

•所有缓存和主存储器的访问延迟

•缓存行大小



我尝试过:



sizes = [1k,4k,256K,...]

foreach尺寸大小

创建'size`数组



启动计时器

for i = 0到n //只是继续访问数组

arr [(i * 16)%arr.length] ++ // i * 16应该修改每个缓存行...请参阅链接

记录/打印时间

We want to derive the following parameters of our CPU
experimentally:
• The number of caches
• The sizes of all caches
• The access latencies of all caches and main memory
• The cache line size

What I have tried:

sizes = [1k, 4k, 256K, ...]
foreach size in sizes
create array of `size`

start timer
for i = 0 to n // just keep accessing array
arr[(i * 16) % arr.length]++ // i * 16 supposed to modify every cache line ... see link
record/print time

推荐答案


这篇关于编写一个C程序来衡量缓存性能和内存层次结构。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-29 21:19