Operating system 什么是缓存大小和缓存线大小?

Operating system 什么是缓存大小和缓存线大小?,operating-system,embedded-linux,systems-programming,cpu-cache,Operating System,Embedded Linux,Systems Programming,Cpu Cache,我试图从DTS文件中理解以下内容。我对操作系统/内核非常陌生 cpus { #address-cells = <1>; #size-cells = <0>; PowerPC,8313@0 { device_type = "cpu"; reg = <0x0>; d-cache-line-size = <32>; i-cache-line-size = <3

我试图从DTS文件中理解以下内容。我对操作系统/内核非常陌生

cpus {
    #address-cells = <1>;
    #size-cells = <0>;

    PowerPC,8313@0 {
        device_type = "cpu";
        reg = <0x0>;
        d-cache-line-size = <32>;
        i-cache-line-size = <32>;
        d-cache-size = <16384>;
        i-cache-size = <16384>;
        timebase-frequency = <0>;   
        bus-frequency = <0>;        
        clock-frequency = <0>;      
    };
};
cpu{
#地址单元=;
#大小单元格=;
PowerPC,8313@0 {
设备类型=“cpu”;
reg=;
d-cache-line-size=;
i-cache-line-size=;
d-cache-size=;
i-cache-size=;
时基频率=;
总线频率=;
时钟频率=;
};
};
有人能简要解释一下上述情况吗

我理解如下。 缓存块大小或缓存线大小:缓存未命中时传输的数据量。 指令缓存(I-cache):只能保存指令的缓存。 数据缓存(D-cache):只能保存数据的缓存

i-cache-line-size是什么意思

d-cache-line-size = <32>;
i-cache-line-size = <32>;
d-cache-size = <16384>;
i-cache-size = <16384>;
d-cache-line-size=;
i-cache-line-size=;
d-cache-size=;
i-cache-size=;
在某些dts文件中,有如下来自引导加载程序的注释

cpus {
#address-cells = <1>;
#size-cells = <0>;

    PowerPC,8313@0 {
        device_type = "cpu";
        reg = <0x0>;
        d-cache-line-size = <32>;
        i-cache-line-size = <32>;
        d-cache-size = <16384>;
        i-cache-size = <16384>;
        timebase-frequency = <0>;   // from bootloader
        bus-frequency = <0>;        // from bootloader
        clock-frequency = <0>;      // from bootloader
    };
};
cpu{
#地址单元=;
#大小单元格=;
PowerPC,8313@0 {
设备类型=“cpu”;
reg=;
d-cache-line-size=;
i-cache-line-size=;
d-cache-size=;
i-cache-size=;
时基频率=;//来自引导加载程序
总线频率=;//来自引导加载程序
时钟频率=;//来自引导加载程序
};
};
如何从引导加载程序中的哪个文件中找到? 使用的引导加载程序是U-boot


谢谢。

DTS片段介绍了PowerPC 8313 CPU

7.1.5.2缓存单元e300c3提供16 KB的四路集合关联指令和数据缓存。缓存块是32 字节长..

此外,

7.1.6总线接口单元(BIU)由于缓存是片上写回缓存,最常见的事务是突发读取内存 操作,突发写入内存操作,..
内存访问可以在64位数据总线上进行单拍(1–8字节)和四拍突发(32字节)数据传输

基本上,DTS代码段配置:

  • 缓存大小(至16KB)
    要完全利用车载缓存

  • 行大小(到32字节)
    有效使用BIU,在CPU和片上缓存之间实现尽可能快的传输


更新:关于您关于从何处开始的查询

  • 最好的一本书就是相关处理器的技术参考手册。它将充满许多专门针对您的硬件的术语,您需要耐心地阅读和理解这些术语

  • 同时,开始复习您对的理解,如“Linux设备驱动程序3e”、“理解Linux内核”和“专业Linux内核架构”

  • 引导加载程序通常是在考虑硬件的情况下编写的,并使用与Linux内核类似的语义来实现,即大量借用它。在互联网上的任意博客上都可以找到大量的资料。在和邮件列表上保持活跃是定期查找它们的好方法


  • 非常感谢这位代码艺术家。现在我从他们被填满的地方理解了。非常感谢你。但是这些行话是非常新的。我不熟悉嵌入式系统。我的职责是启动,操作系统,驱动程序。很明显,理解上述内容需要硬件知识。你能给我推荐一些关于嵌入式(硬件、操作系统(内核)、引导、驱动程序)的书籍吗?非常感谢代码设计师。我刚刚理解了以下几点:“充分利用板载缓存和线路大小(到32字节)”,“有效地使用BIU在CPU和片载缓存之间进行尽可能快的传输。”精彩的解释。你是我的导师。起初我以为这些数字是从参考手册中取出来的。现在我明白了这些价值观的原因。很高兴能帮上忙。:-)