3

我想从DTS文件中了解以下内容。 OS/Kernel很新。什么是缓存大小和缓存行大小?

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

    PowerPC,[email protected] { 
     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>;  
    }; 
}; 

任何人都可以提供上面的简要说明吗?

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

而且什么我缓存行大小是什么意思?

d-cache-line-size = <32>; 
i-cache-line-size = <32>; 
d-cache-size = <16384>; 
i-cache-size = <16384>; 

在某些dts文件中有如下引导加载程序的注释,如下所示。

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

    PowerPC,[email protected] { 
     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 
    }; 
}; 

如何从bootloader的哪个文件中找出? 使用的引导程序是U-boot。

谢谢。

回答

2

的DTS片段描述了PowerPC CPU 8313。

Datasheet of PowerPC 8313

7.1.5.2高速缓存单元的e300c3提供16K字节,四路组关联指令和数据高速缓存。高速缓存块是32个 字节长...

更进一步,

7.1.6总线接口单元(BIU)由于缓存是片上,回写高速缓存,最常见的交易是突发读取内存 操作,突发写入内存操作,...
...存储器访问可以发生在单BEA t(1-8字节)和四拍脉冲(32字节)在64位数据总线上的数据传输。

本质上,DTS片断提供配置:

  • 缓存大小(以16KB)
    做出完整的使用板载缓存

  • 线 - 的大小(32字节)
    有效地使用BIU用于CPU和片上高速缓存之间最快的可能传输。


更新:关于你在哪里开始查询...

  1. 的最好的书下手总是有问题的处理器的技术参考手册。它将充满大量专用于您的硬件的行话,您需要耐心地通读和理解。

  2. 在并行开始刷牙,你的Linux Kernel with books像“Linux设备驱动程序3E”的理解,“深入理解Linux内核”和“专业的Linux内核架构”。

  3. 的引导加载程序通常被写在头脑里的硬件,并使用类似语义的Linux内核,即从它大举借贷来实现。在互联网上的随机博客中提供了大量的东西。在Stackoverflowkernelnewbies这样的邮寄名单上进行活动是定期查找它们的好方法。

+0

谢谢你这么多TheCodeArtist。现在我明白他们在哪里填充。非常感谢。但是,这些行话是非常新的。我是嵌入式系统的新手。我的职责是启动,操作系统,驱动程序。很明显,需要了解上述内容的知识库。你可以推荐一些书籍来开始嵌入式(硬件,操作系统(内核),启动,驱动程序)? –

+0

非常感谢TheCodeArtist。我刚刚了解了以下内容 “为了充分利用板载高速缓存和行大小(至32字节)”,“有效使用BIU以实现CPU与片上高速缓存之间最快的可能传输。” 精美的解释。你是我的上师。起初,我只是认为这些数字取自参考手册。现在我明白为什么这些价值。 –

+0

很高兴得到了帮助。 :-) – TheCodeArtist