DSP高效片内二级Cache控制器的设计与实现
发布时间:2020-03-26 11:15
【摘要】: 数字信号处理器(DSP)在近年来得到广泛的发展及应用。“Cache+RAM”的存储结构已经成为高性能DSP设计中不可或缺的技术之一。二级Cache控制器的设计是“两级Cache+RAM”存储结构中的关键环节。如何设计和实现一个正确、高效同时又满足高频要求的二级Cache控制器是一个值得研究的问题。 FT-CXX是我们自主研发中的一款高性能定点DSP,采用超长指令字(VLIW)技术,一拍内最多可以发射8条指令。预期CPU频率600MHz,外设频率300MHz,二级Cache(L2)的总容量1MB。本文对其中的L2控制器的设计和实现技术进行了研究,主要工作和贡献集中体现在以下几个方面: 首先,分析了一般的Cache的设计方法,全面考察了主流DSP芯片中Cache的性能要求和实现技术,设计实现了FT-CXX L2的Cache/SRAM结构,确定了L2数据体、Tag体的结构及地址访问规则,设计实现了L2Cache的映象规则、替换算法、写策略等。 其次,针对L2存储容量大、存储体只能支持CPU频率一半的事实,采取措施优化对一级Cache(L1D和L1P)缺失的处理。1)设计了缺失流水线,理想情况下平均每个L1的缺失代价只有两拍;2)在L1D和L2之间设计了一个宽度为64bit,深度为4且支持写合并的L1D写缺失缓冲队列,有效地减少了L1D写缺失的等待时间;3)提出了跨边界访问问题的解决方案,该方案具有效率高、硬件开销小且不会增加编译器的额外负担等特点。 再次,设计并实现了一种高效的L2 SRAM的EDMA访问的处理机制。该机制充分挖掘了EDMA访问潜在的并行性,综合采用了EDMA请求猝发(可以连续发8个读请求,4个写请求)、侦听和数据发送处理流水化、基于侦听历史的侦听次数减少、基于旁路和归并机制的L2数据体访问的削减等技术,使EDMA的传输效率大大提高,平均访问一个数据只需要2-3拍,和一般的串行通路相比,加速比在2.0以上。 最后,设计并实现了高效的数据一致性维护机制。一方面提供了丰富的Cache控制寄存器操作,另一方面对侦听和数据写回进行了分类处理。实验结果表明,该机制使系统典型请求的开销降低了10%以上。 此外,本文对以上设计进行了较为系统地验证,并进行了逻辑综合和优化,使其在SMIC 0.13 um工艺下满足与一级Cache的接口部分工作频率为600MHz,内部的工作频率为300MHz的要求。
【图文】:
图1.2AoSP一Zll6lN功能结构图在这种平板方式的存储结构中,数据传输必须由程序员来支持,通常的方式是在程序中利用DMA机制在CPU核处理当前数据块时提前将下一个数据块搬到片内RAM中。这种策略在早期的DSP设计和开发中是能够满足需求的。但是进入上世纪90年代以来,随着信号处理应用领域的不断扩大,需求的不断增加,DSP应用程序也变得愈加复杂和多样。程序代码越来越庞大,根本无法全部放到片内。以实现MPEG一4编解码为例1201,代码量将近30OKB,其运算过程中所需哈夫曼表、数据堆栈等要占将近500一600KB左右的空间。如果全部依靠程序员显式处理这些数据的搬入搬出,工作将会非常繁杂和低效。程序员驾驭DSP底层的负担日益繁重,迫切需要新的存储结构的出现。使用Cache技术能够自动进行片内外数据交换,降低程序员配置搬移数据的负担。但Cache技术也有其自身缺点:一旦Cache不命中,从片外到片内的失效延迟根本无法满足应用程序的“实时性”要求,其失效的不确定因素也不利于程序员对程序运行的全盘掌握。所以仅用Cache来自动实现片内与片外的数据交换是不可取的,DSP程序员在某些情况下必须要进行干预。此外使用Cache还涉及到数据一致性的维护等问题。
图2.1FT一cXX体系结构总体框图FT一CXX基于超长指令字,继承和改进FT一C67系列的八流出超长指令字结构,形成更先进的VeloeiTI.ZVLIW体系结构,主频可达600MHZ,FT一CXX的体系结构如图2.1所示。其片内存储器容量高达lo56KB(其中包括16KB的LID,16KB的Llp和IO24KB的LZ),增加了片一内外设控制器的类型和数量,提供了更高的存储带宽和更多的外设接口类型,这些资源的增加使得该款芯片能更好的适应媒体处理、多通道无线通信和有线通信的应用的需求。FT一CXX采用八流出超长指令字结构,单指令字长为犯位,八个指令组成一个取指包,总字长为256位。指令派发单元可以将256位的指令包同时分配到两组对称的八个处理单元—ALUI/2、ALU3/4、Ml/2、LSI/2,并由八个单元同时执行。FT一CXX具有高效的流水线结构。指令获取、指令派发、指令执行最长需要11级流水,其中指令获取占4级,指令派发占2级,指令执行依据指令的执行分为1一5级不等。FT一CXX采用Loa出Store体系结构,拥有两个通用寄存器组A和B,每组分别为犯个32位通用寄存器,两条数据存储通路,两条寄存器组交叉通路,两条数据寻址通路。
【学位授予单位】:国防科学技术大学
【学位级别】:硕士
【学位授予年份】:2008
【分类号】:TP368.1
本文编号:2601365
【图文】:
图1.2AoSP一Zll6lN功能结构图在这种平板方式的存储结构中,数据传输必须由程序员来支持,通常的方式是在程序中利用DMA机制在CPU核处理当前数据块时提前将下一个数据块搬到片内RAM中。这种策略在早期的DSP设计和开发中是能够满足需求的。但是进入上世纪90年代以来,随着信号处理应用领域的不断扩大,需求的不断增加,DSP应用程序也变得愈加复杂和多样。程序代码越来越庞大,根本无法全部放到片内。以实现MPEG一4编解码为例1201,代码量将近30OKB,其运算过程中所需哈夫曼表、数据堆栈等要占将近500一600KB左右的空间。如果全部依靠程序员显式处理这些数据的搬入搬出,工作将会非常繁杂和低效。程序员驾驭DSP底层的负担日益繁重,迫切需要新的存储结构的出现。使用Cache技术能够自动进行片内外数据交换,降低程序员配置搬移数据的负担。但Cache技术也有其自身缺点:一旦Cache不命中,从片外到片内的失效延迟根本无法满足应用程序的“实时性”要求,其失效的不确定因素也不利于程序员对程序运行的全盘掌握。所以仅用Cache来自动实现片内与片外的数据交换是不可取的,DSP程序员在某些情况下必须要进行干预。此外使用Cache还涉及到数据一致性的维护等问题。
图2.1FT一cXX体系结构总体框图FT一CXX基于超长指令字,继承和改进FT一C67系列的八流出超长指令字结构,形成更先进的VeloeiTI.ZVLIW体系结构,主频可达600MHZ,FT一CXX的体系结构如图2.1所示。其片内存储器容量高达lo56KB(其中包括16KB的LID,16KB的Llp和IO24KB的LZ),增加了片一内外设控制器的类型和数量,提供了更高的存储带宽和更多的外设接口类型,这些资源的增加使得该款芯片能更好的适应媒体处理、多通道无线通信和有线通信的应用的需求。FT一CXX采用八流出超长指令字结构,单指令字长为犯位,八个指令组成一个取指包,总字长为256位。指令派发单元可以将256位的指令包同时分配到两组对称的八个处理单元—ALUI/2、ALU3/4、Ml/2、LSI/2,并由八个单元同时执行。FT一CXX具有高效的流水线结构。指令获取、指令派发、指令执行最长需要11级流水,其中指令获取占4级,指令派发占2级,指令执行依据指令的执行分为1一5级不等。FT一CXX采用Loa出Store体系结构,拥有两个通用寄存器组A和B,每组分别为犯个32位通用寄存器,两条数据存储通路,两条寄存器组交叉通路,两条数据寻址通路。
【学位授予单位】:国防科学技术大学
【学位级别】:硕士
【学位授予年份】:2008
【分类号】:TP368.1
【引证文献】
相关硕士学位论文 前3条
1 李闻博;FT-Matrix处理器指令集与指令派发设计[D];国防科学技术大学;2010年
2 靳强;“银河飞腾-DX”DSP高效二级cache的设计与实现[D];国防科学技术大学;2011年
3 付波;基于dsp的两级cache低功耗研究与实现[D];南昌大学;2012年
,本文编号:2601365
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2601365.html