[发明专利]基于数据粒度的混洗开关矩阵压缩方法有效
申请号: | 201010559590.3 | 申请日: | 2010-11-25 |
公开(公告)号: | CN102073479A | 公开(公告)日: | 2011-05-25 |
发明(设计)人: | 陈书明;刘胜;万江华;陈海燕;陈跃跃;孙海燕;张凯;王耀华;刘祥远;李振涛 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 湖南兆弘专利事务所 43008 | 代理人: | 周长清 |
地址: | 410073 湖南省长沙市开福区砚瓦池正街47号*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 数据 粒度 开关 矩阵 压缩 方法 | ||
技术领域
本发明主要涉及采用单指令流多数据流(Single Instruction stream Multiple Data streams,SIMD)技术的通用处理器或数字信号处理器(Digital Signal Processor,DSP)领域,特指一种应用于SIMD或DSP中的混洗开关矩阵压缩方法。
背景技术
以子字并行和向量技术为代表的SIMD技术在解决媒体处理和无线通信等数据运算密集型应用中具有很大的优势,因而得到了广泛的应用和发展,受到了处理器特别是DSP的青睐。混洗单元主要负责SIMD部件各个处理单元寄存器之间数据的交互,是制约并行的处理单元性能发挥的关键部件。
混洗单元的硬件主体结构一般有以下三种方式,分别为交叉开关(Crossbar)、多级网络和完全混洗交换网络。这三种结构当中Crossbar的灵活性最强,多级网络次之,完全混洗交换网络最差;完全混洗交换网络的硬件实现开销最小且扩展性也比较好,多级网络次之,Crossbar最差。由于嵌入式应用需要的混洗模式的多样性,Crossbar的使用最为广泛,本发明所论述的方法也以混洗单元的硬件结构为Crossbar为背景。
在以Crossbar为主要硬件结构的混洗单元中,混洗模式是和控制控制Crossbar中每个开关节点断开或导通的01值组成的矩阵是一一对应的。将控制Crossbar中每个开关节点断开或导通的01值组成的矩阵称之为开关矩阵,用户在执行混洗指令时(或之前)必须直接或间接告诉Crossbar本次混洗所需要的开关矩阵。由于开关矩阵本身的数据量比较大,需要对其进行压缩。一方面,这种压缩是非常必要的,开关矩阵的数据量和SIMD数据通路的宽度的平方成正比,随着SIMD数据通路的宽度的增加,开关矩阵的数据量会急剧膨胀;另一方面,必须要考虑到解压时电路的复杂性,宜采用比较简单的压缩解压技术,以便在关键路径延时和压缩效率方面进行折衷。
传统的混洗单元和混洗指令中,一般采用最小数据粒度索引法来进行压缩。如图1所示,是传统的采用最小数据粒度索引法的压缩流程示意图:一个混洗请求进行开关矩阵压缩时,不考虑其数据粒度,将其数据粒度设置为最小数据粒度,然后按照当前粒度索引法对开关矩阵进行索引压缩,然后判断当前混洗请求是否是程序中的最后一个混洗请求,如果不是则继续对下一个混洗请求进行开关矩阵的压缩处理,否则处理完毕。
以摩托罗拉公司为设计主体的AltiVec指令集为例,在AltiVec指令集中,向量的宽度为128bits(16个字节),且混洗的最小数据粒度为8bits,AltiVec指令集中的混洗指令VPERM使用了一个向量寄存器(128bit)表示混洗模式,该向量寄存器共分为16个域(每一个8bits),分别指示目标向量寄存器的每一个字节分别来自源向量寄存器中的哪一个字节(即每一个域表示了开关矩阵中的一行),类似的还有飞利浦公司的EVP处理器的SHF指令。
这种最小数据粒度索引法的开关矩阵压缩方法在目前的向量处理器中使用比较广泛,但这种方法对于不同数据粒度的混洗请求的压缩效率是一样的,并且整体的压缩效率较低。
不同应用的程序(或同一个应用程序不同的程序段)往往具有不同的数据宽度,如在视频算法中,数据宽度以字节或半字居多,在无线通讯算法中,复数运算(数据宽度为字或双字)所占的比例很大,上述现象也导致了不同程序(或同一个应用程序不同的程序段)的混洗请求的数据粒度也存在较大差异,这为本发明寻求更高效的开关矩阵压缩方法提供了可能。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种原理简单、操作简便、能够有效提高混洗模式存储器的利用率、提高压缩效率的基于数据粒度的混洗开关矩阵压缩方法。
为解决上述技术问题,本发明采用以下技术方案:
一种基于数据粒度的混洗开关矩阵压缩方法,其特征在于步骤为:
步骤1:混洗请求在进行基于数据粒度的混洗开关矩阵压缩时,首先当前混洗请求的数据粒度设置为最小数据粒度;
步骤2:判断当前混洗请求的数据粒度是否可以加倍,如果不可以加倍,则转至步骤3;否则跳转至步骤4;
步骤3:将当前的数据粒度加倍,并基于加倍后的数据粒度对当前的混洗开关矩阵进行压缩,并跳转至步骤2;
步骤4:按照该混洗请求,使用当前粒度索引法对现有的开关矩阵进行进一步的压缩;
步骤5:判断当前的混洗请求是否是程序中的最后一个混洗请求,如果不是,则处理下一个混洗请求,并转至步骤1,否则算法结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010559590.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:多核DSP可重构专用集成电路系统
- 下一篇:一种按需分配增量卷的创建方法
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置