关注+星标公众号,及时获取更多技术分享~
作者 | 冰茶奥利奥
微信公众号 | 嵌入式电子创客街
最近在使用一款Cortex-A7芯片时,出现了一个让人比较困惑的问题。ARM和FPGA通过DDR3进行数据通信,FPGA会把数据定时存放进DDR3里面,然后ARM通过读取DDR3获取数据。
我们知道,在ARM架构体系下,一切皆地址。一片512MB的DDR3对应的不过也是一串长度为512M字节的地址。比如我的板子上,DDR3分配的地址就是从0x00100000—>0x1FFFFFFF,大小为512M。
我们知道,CPU和外设之间有多级的缓存结构,其模型就如同金字塔一般,如下图所示,最顶层的就是CPU的寄存器了,越往下存储量越大同时读写更慢。我们的DDR在L4那一层,属于DRAM主存。
当然,在ARMv7架构里一般只有两级高速缓存,即L1和L2。
存储器层次结构<