多模式地址产生装置的制作方法

文档序号:6402282阅读:119来源:国知局
专利名称:多模式地址产生装置的制作方法
技术领域
本发明涉及异构多核向量型处理器设计领域,尤其涉及于向量型处理系统的多模式地址产生装置。
背景技术
数字信号算法中的矩阵、向量、变换类运算已占据非常核心的地位,异构多核向量型处理器是从DSP指令系统和体系结构上进行优化设计而来,针对阵列信号处理的处理器,其具有很多与DSP类似的特点。因其经常针对高密集型数据进行处理,且处理速度快,数据访问地址频繁地改变,地址计算需要和数据运算处理相互独立,以减轻运算单元的压力。为此需要设计高性能的地址产生部件来实现信号处理和地址计算并行,以提高功能部件的并行性和流水线的效率,从而提高处理器的性能。

传统的地址产生部件计算地址的方式单一,只适用于数据以顺序次序访问下地址计算,不能支持循环次序访问的地址计算,尤其不能支持向量的地址访问,因此很难支持能处理众多数字信号处理算法的向量型处理器。

发明内容
为了能使处理器支持向量元素访问,本发明提供一种通过地址级联计算的多维向量元素的多模式地址产生方法及相应装置。本发明公开的上述多模式地址产生装置,其包括:一种多模式地址产生装置,其包括:多维度向量索引部件:其用于输出各个维度的当前索引值给当前维度决策部件;其还根据接收到的当前维度选定信号和当前维度的下一索引值更新当前维度的索引值;多维度向量元素地址部件:其用于输出各个维度的步长和当前索引值对应的当前元素地址给当前维度决策部件,其还根据接收到的当前维度选定信号和下一元素地址更新相应维度的当前索引对应的当前元素地址;当前维度决策部件:其用于根据所接收到的各个维度的索引值选定当前维度,并将当前维度的索引值、当前维度的索引值对应的当前元素地址和步长输出给计算部件;其还发送当前维度选定信号给多维度向量索引部件和多维度向量元素地址部件;计算部件:其根据当前维度决策部件输出的当前维度的索引值计算下一索引值并输出给多维度向量索引部件,其还根据当前维度决策部件输出的当前维度的当前索引值对应的当前匀速地址和步长计算出下一元素地址,并将计算出的下一元素地址输出给多维度向量元素地址部件。可见,本发明公开的上述多维向量元素的多模式地址产生装置,通过地址的级联计算,能够为处理向量的循环类寻址方式生成地址,从而使该向量型处理器支持向量的地址访问。


图1是本发明中多模式地址产生装置结构示意图;图2是本发明中四维向量的多模式地址产生装置结构示意图;图3是本发明中向量索引值计算部分结构示意图;图4是本发明中元素地址产生计算部分结构示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。本发明公开了一种多模式地址产生装置。图1示出了本发明提出的多模式地址产生装置结构示意图。如图1所示,该多模式地址产生装置包括:一个多维度向量索引部件100、一个多维度向量元素地址部件101、一个当前维度决策部件102和一个计算部件103。其中,所述多维度向量索引部件100用于索引当前向量的维度,包括:由若干个维度长度配置寄存器104构成的多维度长度配置寄存器组105,用于寄存向量各个维度的长度;索引更新仲裁模块106 ;由若干个维度索引寄存器107构成的多维度索引寄存器组108,用于寄存当前元素的各个维度索引值。所述多维度向量元素地址部件101用于选取当前多维向量的地址,其包括:由若干个维度步长配置寄存器109构成的多维度步长配置寄存器组110,用于寄存当前维度下地址累加所需的步 长;由若干个维度地址寄存器111构成的多维度地址寄存器组112,用于记录当前维度下的地址;向量基址配置寄存器113,用于寄存初始地址;地址更新仲裁模块114,用于确定使用计算得到的地址116更新哪些维度的地址。当前维度决策部件102用于将多维度向量索引部件100和多维度向量元素地址部件101索引的当前维度和地址通过选择传递给计算部件以备地址级联计算。计算部件103通过当前元素的各个维度索引值决策出当前维度,由当前维度选择出当前维度的地址和步长,然后用当前元素的各个维度索引值计算出下一个索引值,用当前维度的地址和步长计算出多维度向量的下一元素访问地址,其由一个索引值计算模块115和一个地址计算模块116组成。地址产生过程中,首先根据被访问的多维度向量各个维度上的长度配置多维度长度配置寄存器组105,此外根据向量的存放基地址和向量各个维度占用空间的大小分别配置向量基址配置寄存器113和多维度步长配置寄存器组110。之后,利用长度配置寄存器组105、向量基址配置寄存器113中的值分别初始化多维度索引寄存器108和多维度地址寄存器组112。然后,当前维度决策部件102从一个多维度向量索引部件100和一个多维度向量元素地址部件101分别选取出当前维度的索引值和元素地址交给计算部件103。最后由索引值计算模块115计算出下一索引值,交给索引更新仲裁模块106更新多维度索引寄存器108,同时地址计算模块116计算出下一元素的地址,并交给地址更新仲裁模块114更新多维度地址寄存器组112。本发明公开的上述用于访问多维向量元素的多模式地址产生装置中,当前维度决策部件从多维度向量索引部件和多维度向量元素地址部件分别选取出向量当前维度的索引值和元素地址交给计算部件,然后由计算部件计算出下一索引值,交给多维度向量索引部件,同时计算出下一元素的地址交给多维度向量元素地址部件,从而实现产生多维向量元素的访问地址。下面以四维向量数据的地址产生装置作为另一优选实例并结合图2至图4阐述本发明装置的结构和并深入阐述向量索引值计算和地址产生计算过程。如图2所示,该多模式地址产生装置包括:多维度向量索引部件200、多维度向量元素地址部件201、当前维度决策部件202和计算部件203。如图2所示,所述多维度向量索引部件200包括:多维度长度配置寄存器组208、索引更新仲裁模块209和多维度索引寄存器组214。其中,所述多维度长度配置寄存器组208包含四个长度配置寄存器204 207,分别用于配置四个维度的长度;所述索引更新仲裁模块209用于从多维度长度配置寄存器组208中选取被配置的长度配置寄存器;所述多维度索引寄存器组214包含四个索引寄存器210 213,分别用于寄存所述四个维度的当前索引值。如图2所示,所述多维度向量元素地址部件201包括:地址更新仲裁模块215、向量基址配置寄存器216、多维度地址寄存器组220和多维度步长配置寄存器组225。其中多维度地址寄存器组220包含三个地址寄存器217 219,这三个地址寄存器217 219和一个向量基址寄存器216分别用于存储四个维度的地址。多维度步长配置寄存器组225包含四个步长寄存器221 224,分别用于存储四个维度的步长。计算部件203包括:索引值计算模块226和地址计算模块227。地址产生过程中,该多模式地址产生装置实现两部分计算,即:向量索引值计算和元素地址产生计算。

图3示出了本发明上述优选实施例中该多模式地址产生装置实现向量索引值计算的过程示意图。如图3所示,向量索引值计算过程中,由四个长度配置寄存器301 304多维度长度配置寄存器组,其中分别配置向量由低到高四个维度的长度;由四个二选一的选通器305 308组成的索引更新仲裁模块,其分别用于选通相应维度的长度配置寄存器或相应维度当前索引值;四个存放索引值的多维度索引寄存器309 312,分别存放向量由低到高四个维度的当前索引值;四个用于判断多维度索引寄存器309 312中的值是否为0的判断电路313 316 ;三个二选一的选通器317 319构成的当前维度决策部件,其用于决策当前输出哪个维度的地址;一个执行自减I运算的减法器300构成的计算部件,其根据多维度向量索引部件输出的索引值和多维度向量元素地址部件输出的地址计算多维度向量元素的地址。向量索引值计算过程如下:首先,长度配置寄存器301 304被独立配置,选通器305 308在判断电路313 316输出的信号控制下,选通输出减法器300的值或者长度配置寄存器301 304的值,由于多维度索引寄存器309 312的值在初始情况下为0,因此开始时,判断电路313 316判断出多维度索引寄存器309 312的值为0,则输出相应的控制信号给选通器305 308,选通器305 308在判断电路313 316的信号控制下,分别选通加载301 304的值到多维度索引寄存器309 312中;之后,判断电路313判断最低维度索引寄存器309的值是否为O。如果不为0则由选通器317选通最低维度索引寄存器309的值进入自减I减法器300进行自减,自减后的值作为选通器305的输入,依次循环,直至最低维度索引寄存器309的值为0 ;当最低维度索引寄存器309的值为0后,则选通器305选通长度配置寄存器301的值再次加载进309,并且选通器317选通来自选通器318的值进入减法器300,自选通器318的值为第二维度的当前索引值,此时减法器300对第二维度的索引值进行减I操作。以此类推可知,较高维度索引寄存器310 312的索引值加载操作与309的相同。因此可以看出,低一级维度的索引值寄存器每自减其维度长度次数后,较高一级维度索引值寄存器自减I次,如图3中的309经过与最低维度长度相等次数的自减运算后,310自减1,当310经过与其相应维度长度相等数目自减运算后311自减1,以此类推最高维度长度的自减运算,从而得到向量在各个维度上的索引值,直至所有维度的索引值全部为零。图4示出了本优选实施例中该多模式地址产生装置实现向量地址产生过程示意图。如图4所示,本发明中多模式地址产生装置在实现向量地址产生过程中所涉及的部件包括:四个存放相应维度地址的寄存器,分别是向量基址配置寄存器401和多维度地址寄存器402 404,其中401存放最低维度地址;由一个选择器400和四个判断逻辑405 408构成的地址更新仲裁模块,用于判断当前计算出的地址是哪个维度对应的地址,并根据判断结果使用当前计算出的地址更新相应维度地址寄存器中的值;四个步长寄存器409 412,用于存储相应维度的步长值;包含由六个二选一选通器组成的决策部件,用于决策当前使用哪个维度地址寄存器中的地址值和步长进行地址计算;一个用于地址计算的全加器419,用于根据决策部件输出的地址值和步长值进行地址计算,一个结果地址存放部件420,用于存放全加器419输出的当前地址。图4中的421 426是用于向量索引值计算过程的部件,分别对应于图3中的309-311、313-315,其中412 423是低三维度索引寄存器,424 426是用于判断低三维度索引寄存器中的值是否为0的判断电路。向量地址计算过程如下:首先,初始化向量基址配置寄存器401中存储的地址,将其作为第一维向量的初始地址;步长寄存器409 412被配置为对于相应维度每次地址计算时需要累加的步长。之后,如果来自最低维度的索引值寄存器421的索引值不为0,则选通器413和416选通来自最低维度地址寄存器401的地址值与最低维度步长寄存器409的步长值进入全加器419进行 地址相加,相加后的结果进入选择器400 ;如果最低维度的索引值寄存器421的索引值为0,则选通器413选通来自选通器414的值作为全加器419的一个输入,选通器416选通来自选通器417的输出值作为419的另一个输入,相加的结果进入选择器400。以上操作也同时适用于判断电路425和426分别控制的选通器414,417和415,418 ;其中,如果判断电路425判断第二维度索引寄存器422中的值不为0,则选通器414选通第二维度地址寄存器420中的地址值,如果为0,则选通来自选通器415中的值;同样,如果判断电路425判断第二维度索引寄存器422中的值不为0,则选通器417选通第二维度步长寄存器420中的地址值,如果为0,则选通来自选通器418中的值;如果最低维度索引寄存器421和第二维度索引寄存器422中的值均为0时,则选通器415选通第三维度地址寄存器403或第四维度地址寄存器404中的地址值;同样,选通器418选通第三维度步长寄存器411或第四维度步长寄存器412中的值输出。也就是说,在最低维度索引寄存器421中的值不为0时,选通器413选通最低维度地址寄存器401中的地址值给全加器419,选通器416选通最低维度步长寄存器409中的步长值给全加器419,并由全加器419在最低维度地址寄存器401的基础上加上相应的步长值得到当前最低维度的地址,输出至420进行存储。选择器400根据判断电路424 426的判断结果进行选择,当421不为0时,选择器400选通401更新来自419的值;当421为0时,选择器400选通更新401和402 ;当422为0时,选择器400选通更新401 403 ;当423为0时,选择器400选通401 404。当所有维度的索引值都为0时,工作结束。由上述向量索引计算过程和向量地址计算过程可以得出,较低维度的索引值寄存器自减1,其维度对应的地址就加上相应的步长,当索引值寄存器自减到0,高一级维度的索引寄存器自减I,并且高一级维度的地址加上高一级维度的步长。如图4所示,当最低维度的索引寄存器的值每自减1,最低维度地址就需加上最低维度的步长;当最低维度的索引寄存器值减到0,则次低维度的索引寄存器值要自减1,并且次低维度地址就需加上次低维度相对应的步长;以此类推,当最高维度索引寄存器值每自减1,则与其相对应的 地址就加相对应的步长,最终将累加得到所需的多维度地址并存入结果地址存放部件420中。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种多模式地址产生装置,其包括: 多维度向量索引部件:其用于输出各个维度的当前索引值给当前维度决策部件;其还根据接收到的当前维度选定信号和当前维度的下一索引值更新当前维度的索引值;多维度向量元素地址部件:其用于输出各个维度的步长和当前索引值对应的地址给当前维度决策部件,其还根据接收到的当前维度选定信号和下一地址更新相应维度的地址;当前维度决策部件:其用于根据所接收到的各个维度的索引值选定当前维度,并将当前维度的索引值、地址和步长输出给计算部件;其还发送当前维度选定信号给多维度向量索引部件和多维度向量元素地址部件; 计算部件:其根据当前维度决策部件输出的当前维度的索引值计算下一索引值并输出给多维度向量索引部件,其还根据当前维度决策部件输出的当前维度的地址和步长计算出下一地址,并将计算出的下一地址输出给多维度向量元素地址部件。
2.如权利要求1所述的装置,其特征在于,所述多维度向量索引部件包括: 多维度长度配置寄存器组:其包括多个长度配置寄存器,分别用于存储各个维度的长度; 索引更新仲裁模块:其用于根据当前维度决策部件输出的当前维度选定信号使用下一索引值更新当前维度的当前索引值; 多维度索引寄存器组:其包括多个索引寄存器,分别用于存储各个维度的当前索引值。
3.如权利要求2所述的装置,其特征在于,所述索引更新仲裁模块包括多个选通器,每个选通器根据当前维度选 定信号选通输出所接收到的下一索引值或相应地长度配置寄存器中的值至相应地索引寄存器中。
4.如权利要求1所述的装置,其特征在于,所述多维度向量元素地址部件包括: 地址更新仲裁模块:其用于根据当前维度决策部件输出的当前维度选定信号使用下一地址更新相应维度的地址; 向量基址配置寄存器:其用于存储最低维度的当前索引值对应的当前元素地址;多维度地址寄存器组:其包括多个地址寄存器,分别用于存储除最低维度以外的各个维度的地址; 多维度步长配置寄存器组:其包括多个步长配置寄存器,分别用于存储各个维度的步长。
5.如权利要求4所述的装置,其特征在于,所述地址更新仲裁模块包括地址选择器,其用于根据当前维度选定信号,使用下一地址更新当前维度及其以下维度的地址。
6.如权利要求1所述的装置,其特征在于,当前决策部件根据各个维度的当前索引值确定当前维度。
7.如权利要求1所述的装置,其特征在于,当前决策部件由多个选通器和判断电路来实现,其中判断电路用于各个维度的索引值是否为O,而选通器用于选通输出当前维度的索引值、地址和步长。
8.如权利要求1、6-7任一项所述的装置,其特征在于,当最低维度对应的索引值不为O时,当前维度为最低维度;当最低维度对应的索引值为O时,其更低维度的索引值均为O的非最低维度为当前维度。
9.如权利要求1所述的装置,其特征在于,计算部件包括索引值计算模块和地址计算模块。
10.如权利要求9所述的装置,其特征在于,所述索引值计算模块用于将从当前维度决策部件输出的当前维度的索引值减I得到下一索引值;所述地址计算模块用于将从当前维度决策部件 输出的当前维度的地址和步长相加得到下一地址。
全文摘要
本发明公开了一种用于访问多维向量元素的多模式地址产生装置。该装置由一个多维度向量索引部件,一个多维度向量元素地址部件,一个当前维度决策部件和一个计算部件组成。当前维度决策部件从多维度向量索引部件和多维度向量元素地址部件分别选取出向量当前维度的索引值和元素地址交给计算部件,然后由计算部件计算出下一索引值,交给多维度向量索引部件,同时计算出下一元素的地址交给多维度向量元素地址部件,从而实现产生多维向量元素的访问地址。
文档编号G06F9/30GK103218204SQ20131013930
公开日2013年7月24日 申请日期2013年4月19日 优先权日2013年4月19日
发明者王磊, 杨勇勇, 刘子君, 张星, 朱梦晨, 王东琳 申请人:中国科学院自动化研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1