This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

FRAM 的 cache 问题

Other Parts Discussed in Thread: MSP430FR5969

测试 cache hit ratio 的时候可以用while(1);函数来代替 100% hit ratio 吗?

  • CPU 硬件不能識別 c 代碼, 真正重要的是機器內碼.
    但是 "while (1) ;" 這句 c 代碼,我們可以合理的預期機器代碼將是 0x3FFF; 從而達到100%的命中率。

  • 楼主用的哪个msp430?

    msp430也用作cache hit ratio 测试吗?

  • MSP430FR5969 这个芯片的FRAM里面带着cache,可以做cache hit ratio 测试的

  • 那么0% cache hit ratio 应该如何测量呢? 这个芯片的cache 是无关闭的

  • 我覺得以下順序機器代碼將有0%的命中率。

    3C04       m0:     jmp     m1

    4303               nop

    4303               nop

    4303               nop

    4303               nop

    3C04       m1:     jmp     m2

    4303               nop

    4303               nop

    4303               nop

    4303               nop

    3C04       m2:     jmp     m3

    4303               nop

    4303               nop

    4303               nop

    4303               nop

    3C04       m3:     jmp     m4

    4303               nop

    4303               nop

    4303               nop

    4303               nop

    3C04       m4:     jmp     m5

    4303               nop

    4303               nop

    4303               nop

    4303               nop

    3FE6       m5:     jmp     m0

    4303               nop

    4303               nop

    4303               nop

    4303               nop

  • 那就是这段代码全部都是跳转指令的话就完全不会进入cache里面进行运行了?

  • MCU这个预读取机制非常简单直接,是否能够hit和编译器生成的代码和cache的大小有关,所以如果你的跳转超出了范围,那就是完全无法hit。如果你的下一条指令总是在接下来的cache大小范围内,那就总是能hit.

  • 学习了,发现msp430fr5969很强大

  • 楼上给出的程序是否能够进行 0% cache hit ratio 的测量呢?

  • 楼上的代码,你看到的是汇编的结果。你自己的话可以用汇编语言做这样的函数比较方便,因为用label直接指定地址比较方便,用c语言和link script也可以指定函数的地址。只要保证这些跳转(函数的调用)之间的地址(距离),超出了cache的大小,就能做到0%的hit ratio.