MCU

ADSP Blackfin处理器的内存组织之内部存储器

0
阅读(3087)

ADSP-BF531 Blackfin处理器内部可看作一个标准化的4G字节的地址空间,系统使用32位地址来访问这4G的地址空间。所有资源,包括内部存储器、外部存储器和I/O控制寄存器,在这个共同的地址空间中都占据着独自的部分空间。地址空间中的内存部分被安排在一个层次结构中,以便能够和高速缓存、SRAM或存储量更大、功耗更低、性能更好的片外存储系统一样,在速度和功耗上都达到一个很好的平衡。

如上图就是该处理器的内部存储器结构,内部存储器(L1)其地址空间为0xEF00 0000~0xFFFF FFFF,离内核最近,访问速度快,以内核时钟(CCLK)运行,但是容量有限;外部存储器(L2),其地址空间为0x0000 0000~0xEF00 0000,离内核较远,访问时会有延迟,但容量大,处理器通过外部总线接口单元(EBIU)对其进行访问,提供了与SDRAM、FLASH和SRAM的外扩,能够选择性地访问高达132M字节的物理内存。

L1存储器系统是Blackfin处理器内最高性能的内存。而L1存储器又分为三个片上存储器模块,提供了高速访问处理器的途径。

第一个块是80K字节的SRAM 指令存储器,只能存放指令,分为64k的SRAM,和16K的既可以配置为SRAM,也可以配置为4路联合设置的Cache; 16-Kbyte的指令Cache分为4个4-Kbyte的子块。每一个子块由32个sets(每个sets有4个Cache行)组成,每个Cache行的大小为32个字节。每个Cache行都有一个标签(tag),标签由4部分组成:地址标记,LRU状态,LRU优先级和行有效位。地址标记由20位地址组成,由它决定Cache是否命中,当32位地址中的高18位,第11位,第10位与地址标记一致时,Cache命中,否则Cache未命中。如下图为指令Cache结构,通过一个选择器来决定要使用哪一块Cache块。

以下是 32位地址空间与指令Cache空间之间的映射图,当32位地址中的高18位,第11位,第10位与地址标记一致时,Cache命中,否则Cache未命中。 例如要访问地址0x10374956,由上图可知,处理器会将20位地址与子块0的4个line-10的地址标记进行比较,如果有一致的,说明Cache命中,此时数据直接从Cache传送到内核;如果不一致,Cache未命中,指令存储单元从外部存储器取数据填充Cache行,取数据期间内核一直处于等待状态。

第二块片上存储块是数据存储器,分为32k的SRAM,和两个16k的既可以配置为SRAM,也可以配置为双路联合设置的Cache,该部分存储块只能存放数据。对于以上两种存储块,指令缓存和数据缓存都可以通过DMA方式灌入数据,访问这两种内存块都可以达到完整的处理器速度。

而第三个内存块是一个4K字节的SRAM暂存器,它只能作为中间结果缓存,只能作为数据SRAM来访问,通常被系统使用为堆栈,并不能作为高速缓冲存储器来配置。