美文网首页
【DSP应用与技术】学习记录3:DSP存储空间

【DSP应用与技术】学习记录3:DSP存储空间

作者: 2016年的夏天 | 来源:发表于2023-01-10 00:10 被阅读0次

本节介绍C6000的存储结构及缓存。

上一节我们已经知道C6000系列使用的存储器结构是“分层结构”,不管是一级缓存还是二级缓存还是外部扩展存储器,CPU在访问时都需要通过相应的控制器来实现。

如上图,程序存储控制器连接CPU,也连接DMA,若其两者同时对CPU发起读取数据的请求,就需要程序存储控制器做出仲裁。(对应下面的功能1)

EMIF是外部存储扩展接口的控制器

缓存使能、缓存冻结、缓存忽略

二级缓存(存储容量大)映射到一级缓存(存储容量小),因此会存在一个问题,就是多个地址映射到同一个一级缓存地址的现象,任何一个二级缓存的地址在一级缓存中也只占一个地址,这种映射关系称为直接映射型。

在一级缓存中进行地址更新的时候是按照行帧进行更新的(以整个缓存行进行更新),而不只是对于后面的32位指令进行更新。

综上,可得
程序一级缓存的工作机制概述:当CPU根据地址发生器输出的地址,需要读取相关指令时,首先根据高十八位的地址,在程序一级缓存中进行查找(即比较缓存行的tag字段是否匹配,如果匹配了就说明在一级缓存中找到了要执行的指令,就可以立即执行,如果在所有缓存行中查找后都没有找到匹配的指令),就需要去二级缓存中进行查找,如果在二级缓存中找到了要查找的指令,就会把二级缓存中的指令读取到CPU中执行,同时会将该指令读取到一级缓存中进行更新(根据直接映射的一级缓存的对应地址,直接替换掉该一级缓存行)。

数据一级缓存相对程序一级缓存会复杂一些,涉及到集关联型的问题。观察下图可知,每个二级缓存地址行映射到一级缓存时,该映射不是唯一的。即对于二级缓存的每个缓存行,都有两个一级缓存的地址与其相对应。这种结构称为集关联型(两路的)。

而在运行机制机制上,当我们根据数据地址在数据一级缓存中没有查找到我们想要的地址时,就去二级缓存中查找,找到后这时会将地址从二级缓存中读到CPU中执行,同时还要更新数据一级缓存的缓存行。这个时候存在一个判断问题,因为是一对多的映射,到底更新哪一个?选择的依据是这两个一级缓存行在单位时间内执行的频率。执行频率低的会被替换掉。其他的机制如地址的匹配、缓存行的更新都是和程序一级缓存相同的。

相关文章

网友评论

      本文标题:【DSP应用与技术】学习记录3:DSP存储空间

      本文链接:https://www.haomeiwen.com/subject/koevkltx.html