Aus*_*ics 10 linux ubuntu cache arm python
是否可以在 Ubuntu 14.04(最好使用 Python 等高级语言)上禁用 L1 和/或 L2 缓存?如果是这样,如何?
另外,在不同的架构之间禁用缓存会不会有很大的不同?如果是这样,我对 ARM Cortex-A15 更感兴趣。
编辑
在研究如何禁用缓存时,我确实从kernel.org 文档中找到了 /proc/sys/vm/ 中的“drop_caches”文件
“写入此内容将导致内核丢弃干净的缓存,以及可回收的平板对象,如 dentries 和 inode。一旦丢弃,它们的内存就会变得空闲。”
...
“这个文件不是控制各种内核缓存(inode、dentries、pagecache 等)增长的手段。当系统其他地方需要内存时,内核会自动回收这些对象。”
这似乎不是我正在寻找的,因为这不仅看起来不会禁用缓存,而且我认为虚拟内存驻留在操作系统中而不是硬件上。我的目标是禁用缓存,因此必须在其他地方寻找所需的内存,例如在 RAM 中。
编辑
澄清一下,我了解禁用缓存会对系统产生什么影响。但是,它是空间应用中常用的一种技术,可以提高安全关键应用的可靠性。以下是一些记录这种现象的资源:
甚至还有关于这个主题的书:
小智 2
您不能直接在 Python 中执行此操作,因为您需要一个内核模块才能执行此操作(以及加载该模块的 root 权限)。
请参阅http://lxr.free-electrons.com/source/arch/arm/mm/cache-v7.S#L21了解如何使 L1 缓存无效(无效,而不是禁用)。
不同的CPU架构(例如x86与ARM)需要不同的汇编代码(CPU指令)来禁用缓存。我不确定 Linux 内核是否有可能禁用 L1/L2/L3/L4 缓存,如果有的话,我相信它只会在内部使用一小段时间,因为 CPU 很慢没有这些缓存。
请参阅是否可以在 Linux 系统上禁用 CPU 缓存 (L1/L2)?有关如何在 x86/x64 系统上禁用缓存的链接(您需要更改寄存器cr0)。对于 ARM,检查缓存禁用行为。
我不确定你是否完全理解 CPU 缓存的作用。您能否详细说明为什么要削弱系统的性能?
| 归档时间: |
|
| 查看次数: |
7352 次 |
| 最近记录: |