[发明专利]具有开关矩阵存储器的数据混洗单元及其混洗方法有效
申请号: | 201010559288.8 | 申请日: | 2010-11-25 |
公开(公告)号: | CN102053816A | 公开(公告)日: | 2011-05-11 |
发明(设计)人: | 陈书明;刘胜;万江华;陈海燕;陈跃跃;孙永节;彭元喜;杨惠;刘祥远;李振涛 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F9/30 | 分类号: | G06F9/30 |
代理公司: | 湖南兆弘专利事务所 43008 | 代理人: | 周长清 |
地址: | 410073 湖南省长沙市开福区砚瓦池正街47号*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 具有 开关 矩阵 存储器 数据 单元 及其 方法 | ||
技术领域
本发明涉及SIMD技术的数字信号处理器领域,尤其涉及一种数据混洗单元及其混洗方法。
背景技术
SIMD(单指令流多数据流,Single Instruction stream Multiple Data streams)技术一般包括子字并行技术和向量技术,两者分别从微观和宏观两个方向开发应用程序的数据级并行性。SIMD技术能够在执行一条指令的情况下处理多个并行的数据,其高功效性在解决运算密集型的应用中具有很大的优势,因而得到了广泛的应用和发展,受到了处理器尤其是DSP(数字信号处理器,Digital Signal Processor)的青睐。图1为典型的采用SIMD技术的DSP结构示意图,由图1可见,取指及译码单元从程序存储器中读取指令并进行译码,派发到地址产生单元、向量运算单元和数据混洗单元当中。其中地址产生单元根据指令在向量数据存储器和向量寄存器之间传递数据。向量运算单元根据指令从向量寄存器中读取源操作数,进行相应的运算再写入到向量寄存器中。将每一簇的向量运算单元和向量寄存器合并称之为PE(处理单元,Process Element),图1中PE_0, PE_1,…, PE_N-1表示共有N个PE。数据混洗单元是独立于向量运算单元的,主要负责PE间寄存器的数据交互,在基于SIMD技术的DSP当中作用非常关键。
在执行数据混洗指令时,由每个向量寄存器提供一个数据组成源操作数向量,经过数据混洗单元重新排布后,再写入到各个向量寄存器中。这样各个向量单元之间就通过数据混洗单元完成了数据交互。这在一些嵌入式应用的核心算法(如快速傅里叶变换、Viterbi解码等)中的作用非常关键。嵌入式实时应用程序既需要DSP提供丰富的混洗模式支持,又具有较强的数据实时性要求,因而必须设计一种高效灵活的数据混洗方案。
如图2所示,传统的混洗单元通常包含混洗网络(以交叉开关(Crossbar)为主)、译码逻辑、混洗模式寄存器及其它辅助的控制逻辑,如摩托罗拉公司的采用AltiVec指令集的处理器的混洗单元或飞利浦公司的EVP处理器中的混洗单元。这种结构需要用户提前对混洗模式寄存器进行配置,在执行混洗指令时,硬件首先对混洗模式寄存器中混洗模式进行译码,译码之后的逻辑再驱动交叉开关对输入的向量进行选择和重组,从而完成混洗。如图3所示,传统的混洗单元中的典型的混洗操作指令为Shuffle VR2,VR3,该指令中的VR2表示待混洗的源操作数来自于每个向量寄存器的2号寄存器,即如图1中PE_0, PE_1, …PE_N-1的2号寄存器组成了待混洗的数据,如图3所示,设该数据为abcdefgh;该指令中的VR3表示从交叉开关输出的已经重排布的数据需要写入到每个向量寄存器的3号寄存器中。混洗指令希望将abcdefgh混洗为efghcdab,则用户需要在执行混洗操作之前将混洗模式寄存器填充为0_10_0_11_0_01_0_00(本示例向量宽度较窄,导致混洗模式寄存器的宽度也比较窄,实际的向量处理器混洗模式寄存器一般在几十位到几百位之间)。在传统的数据混洗指令执行时,默认使用混洗模式寄存器,并且需要将混洗模式中的寄存器进行译码,如图3所示需要将混洗模式寄存器中的数值0_10_0_11_0_01_0_00译码为0010_0001_0100_1000才能驱动交叉开关的每一个开关进行数据重排布。
由以上分析可见,传统的混洗方案需要用户在程序中提前配置混洗模式寄存器,同时在执行混洗指令时需要对混洗模式寄存器中的数值进行译码。这种方案存在两个问题:1.用户配置混洗模式寄存器的过程较为不便。如果通过控制寄存器配置总线配置混洗模式寄存器则需要花费比较多的节拍数(混洗模式寄存器通常有几十到几百位,而配置总线的宽度通常只有32位);如果通过访存指令将混洗模式从片内存储器加载到混洗模式寄存器中,也需要花费一定的节拍数,并且由于该配置过程和普通的访存请求竞争存储带宽资源,将会影响应用程序的访存效率;2. 混洗模式需经译码后再进入交叉开关。传统的混洗单元需要首先对混洗模式寄存器中的混洗模式进行译码,形成了控制交叉开关每一个节点开关导通或断开的01值,然后这些译码之后的01值再驱动交叉开关进行数据选择,这一过程的关键路径延时较大,不利于混洗单元的高频或可扩展性设计。
从目前公开的文献来看,关于混洗网络本身的改进、简化研究较多,还没有专门的文献设计到改进混洗模式的配置过程这一问题。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010559288.8/2.html,转载请声明来源钻瓜专利网。