具有开关矩阵存储器的数据混洗单元及其混洗方法技术

技术编号:5309871 阅读:260 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种具有开关矩阵存储器的数据混洗单元,包括交叉开关、输入逻辑单元、输出逻辑单元、主控逻辑单元以及开关矩阵存储器,主控逻辑单元与所述输入逻辑单元相连,开关矩阵存储器的输出端与所述交叉开关的开关选择信号端相连。以及一种上述的数据混洗单元的混洗方法,在预处理时将用户程序中的混洗请求转化为开关矩阵存储器中的开关矩阵,执行混洗指令时,主控逻辑单元控制从开关矩阵存储器读出所需要的混洗模式对应的开关矩阵,进而直接控制交叉开关进行数据选择和重组。本发明专利技术具有结构简单、混洗灵活高效、关键电路延时短且可适用于任意混洗操作的特点。

【技术实现步骤摘要】

本专利技术涉及SIMD技术的数字信号处理器领域,尤其涉及一种数据混洗单元及其 混洗方法。
技术介绍
SIMD(单指令流多数据流,Single Instruction stream Multiple Data streams) 技术一般包括子字并行技术和向量技术,两者分别从微观和宏观两个方向开发应用程序的 数据级并行性。SIMD技术能够在执行一条指令的情况下处理多个并行的数据,其高功效性 在解决运算密集型的应用中具有很大的优势,因而得到了广泛的应用和发展,受到了处理 器尤其是DSP (数字信号处理器,Digital Signal I^rocessor)的青睐。图1为典型的采用 SIMD技术的DSP结构示意图,由图1可见,取指及译码单元从程序存储器中读取指令并进行 译码,派发到地址产生单元、向量运算单元和数据混洗单元当中。其中地址产生单元根据指 令在向量数据存储器和向量寄存器之间传递数据。向量运算单元根据指令从向量寄存器中 读取源操作数,进行相应的运算再写入到向量寄存器中。将每一簇的向量运算单元和向量 寄存器合并称之为PE(处理单元,Process Element),图1中ΡΕ_0, PE_1,…,PE_N_1表示 共有N个ΡΕ。数据混洗单元是独立于向量运算单元的,主要负责PE间寄存器的数据交互, 在基于SIMD技术的DSP当中作用非常关键。在执行数据混洗指令时,由每个向量寄存器提供一个数据组成源操作数向量,经 过数据混洗单元重新排布后,再写入到各个向量寄存器中。这样各个向量单元之间就通 过数据混洗单元完成了数据交互。这在一些嵌入式应用的核心算法(如快速傅里叶变换、 Viterbi解码等)中的作用非常关键。嵌入式实时应用程序既需要DSP提供丰富的混洗模 式支持,又具有较强的数据实时性要求,因而必须设计一种高效灵活的数据混洗方案。如图2所示,传统的混洗单元通常包含混洗网络(以交叉开关(Crossbar)为主)、 译码逻辑、混洗模式寄存器及其它辅助的控制逻辑,如摩托罗拉公司的采用AltiVec指令 集的处理器的混洗单元或飞利浦公司的EVP处理器中的混洗单元。这种结构需要用户提 前对混洗模式寄存器进行配置,在执行混洗指令时,硬件首先对混洗模式寄存器中混洗模 式进行译码,译码之后的逻辑再驱动交叉开关对输入的向量进行选择和重组,从而完成混 洗。如图3所示,传统的混洗单元中的典型的混洗操作指令为Sniffle VR2,VR3,该指令 中的VR2表示待混洗的源操作数来自于每个向量寄存器的2号寄存器,即如图1中ΡΕ_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值再驱动交叉开关进行数据选择,这一 过程的关键路径延时较大,不利于混洗单元的高频或可扩展性设计。从目前公开的文献来看,关于混洗网络本身的改进、简化研究较多,还没有专门的 文献设计到改进混洗模式的配置过程这一问题。
技术实现思路
本专利技术所要解决的技术问题是针对现有技术存在的不足,提供一种结构简单、混 洗灵活高效、关键电路延时短,且可适用于任意混洗操作的具有开关矩阵存储器的数据混 洗单元及其混洗方法。为解决上述技术问题,本专利技术采用以下技术方案一种具有开关矩阵存储器的数据混洗单元,包括交叉开关、控制所述交叉开关从向量 寄存器输入数据的输入逻辑单元、以及控制所述交叉开关输出数据到向量寄存器的输出逻 辑单元,其特征在于所述数据混洗单元还包括与向量寄存器相连的用于控制转化混洗请 求和执行混洗操作的主控逻辑单元,以及与主控逻辑单元相连的用于存储混洗请求转化结 果的开关矩阵存储器,所述主控逻辑单元与所述输入逻辑单元相连并控制待混洗的源操作 数向量从输入逻辑单元输入到所述交叉开关中,所述交叉开关由位于其开关选择信号端的 开关矩阵存储器控制对所述源操作数向量进行混洗,混洗结果由输出逻辑单元输出到向量 寄存器。作为上述数据混洗单元的进一步改进所述主控逻辑单元包括用于将混洗请求转化为开关矩阵并写入开关矩阵存储器的自 举态模块,以及用于根据混洗指令读取开关矩阵存储器以控制交叉开关执行混洗操作的执 行态模块。本专利技术还提供一种具有开关矩阵存储器的数据混洗单元的混洗方法,其特征在于 包括以下步骤1)预处理在交叉开关的开关选择信号端设置开关矩阵存储器,将用户程序中的混洗 请求转化为开关矩阵存储器中的开关矩阵;2)执行混洗从向量寄存器读取待混洗的源操作数向量分配到交叉开关的输入端口 上,从开关矩阵存储器中读取需要的开关矩阵,输出到交叉开关的开关选择信号端以控制 交叉开关对输入的源操作数向量进行选择和重组操作后,将操作结果输出到向量寄存器, 完成混洗。作为上述混洗方法的进一步改进,所述预处理具体包括以下步骤1.1)将用户程序中的当前的混洗操作请求的需要的开关矩阵与开关矩阵表中的开关 矩阵进行匹配,所述开关矩阵表存储在开关矩阵存储器中,如果能够匹配,则转入1. 2),否 则转入1.3);1. 2)根据匹配的开关矩阵在开关矩阵表中的位置更新当前混洗操作的表达方式,转入 1.4);1. 3)在开关矩阵表中增加一个新的开关矩阵,转入1. 2);1.4)判断当前混洗操作是否为最后一个混洗操作,如果不是则转入1.5),否则转入 1.6);1.5)处理下一个混洗操作,转入1.1); 1. 6)完成预处理,结束当前操作。所述混洗指令为Siuffle Addr_i,VR_j, VR_k,其中Addr_i为混洗操作对应的开 关矩阵在开关矩阵存储器中的地址,VR_j为混洗操作的源操作数信息,VR_k为混洗操作的 目的操作数信息。与现有技术相比,本专利技术的优点在于1、本专利技术的具有开关矩阵本文档来自技高网
...

【技术保护点】
一种具有开关矩阵存储器的数据混洗单元,包括交叉开关、控制所述交叉开关从向量寄存器输入数据的输入逻辑单元、以及控制所述交叉开关输出数据到向量寄存器的输出逻辑单元,其特征在于:所述数据混洗单元还包括与向量寄存器相连的用于控制转化混洗请求和执行混洗操作的主控逻辑单元,以及与主控逻辑单元相连的用于存储混洗请求转化结果的开关矩阵存储器,所述主控逻辑单元与所述输入逻辑单元相连并控制待混洗的源操作数向量从输入逻辑单元输入到所述交叉开关中,所述交叉开关由位于其开关选择信号端的开关矩阵存储器控制对所述源操作数向量进行混洗,混洗结果由输出逻辑单元输出到向量寄存器。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈书明刘胜万江华陈海燕陈跃跃孙永节彭元喜杨惠刘祥远李振涛
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:43[中国|湖南]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1