我们的教授要求我们考虑嵌入式系统设计,其中缓存不能充分利用它们.我一直试图找到这样的设计,但还没找到.如果您知道这样的设计,可以提供一些提示吗?
缓存利用事实数据(和代码)展示地点.
因此,不会显示位置的嵌入式系统不会从缓存中受益.
嵌入式系统具有1MB内存和1kB缓存.如果这个嵌入式系统通过短跳转访问内存,它将在相同的1kB内存区域内保持很长时间,这可以成功缓存.如果这个嵌入式系统在这个1MB内的不同地方跳跃并经常这样做,那么就没有地方性,并且会严重地使用缓存.
另请注意,根据体系结构,您可以使用不同的数据和代码缓存,也可以使用单个缓存.
如果您的嵌入式系统花费大部分时间访问相同的数据并且(例如)以适合缓存的紧密循环运行,那么您将充分利用缓存.如果您的系统类似于将从任何内存范围中获取随机数据的数据库,则无法使用缓存来充分利用它.(因为应用程序没有展示数据/代码的位置.)
有时,如果您正在构建安全关键或任务关键型系统,您将希望您的系统具有高度可预测性.缓存会使您的代码执行变得非常不可预测,因为您无法预测某个内存是否被缓存,因此您不知道访问此内存需要多长时间.因此,如果禁用缓存,它可以让您更精确地判断程序的性能并计算最坏情况的执行时间.这就是在这种系统中禁用缓存的常见原因.