CN102279818B - 支持有限共享的向量数据访存控制方法及向量存储器 - Google Patents
支持有限共享的向量数据访存控制方法及向量存储器 Download PDFInfo
- Publication number
- CN102279818B CN102279818B CN 201110213246 CN201110213246A CN102279818B CN 102279818 B CN102279818 B CN 102279818B CN 201110213246 CN201110213246 CN 201110213246 CN 201110213246 A CN201110213246 A CN 201110213246A CN 102279818 B CN102279818 B CN 102279818B
- Authority
- CN
- China
- Prior art keywords
- vector
- address
- data
- access
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
本发明公开了一种支持有限共享的向量数据访存控制方法及向量存储器,方法步骤如下:1)将向量存储器统一编址;2)获取访存信息,将访存信息中的向量地址分解、扩展以及移位循环整理生成N套访存信息;3)将N套访存信息分别发送给向量存储体的访存流水线;如果当前向量访存指令为读指令,将N路写回数据根据共享移位地址进行反向移位循环整理得到N套写回数据并发送给向量处理器中对应的向量处理单元;向量存储器包括向量地址产生器、向量存储体单元和访存管理控制单元,访存管理控制单元包括向量地址整理单元和向量数据整理单元。本发明具有硬件实现代价低、支持向量数据有限共享和非对齐访问的优点。
Description
技术领域
本发明涉及计算机体系结构的向量处理器技术领域,具体涉及一种面向无线通信应用的向量处理器中支持有限共享的向量数据访存控制方法及向量存储器。
背景技术
随着面向数据和计算密集型应用的4G无线通信技术和集成电路工艺的发展,基于软件定义无线电(Software Defined Radio,SDR)的向量处理器通常采用超长指令字(Very Long Instruction Word,VLIW)体系结构,片内集成多个向量处理单元构成的向量处理部件(Vector Processing Unit,VPU),以SIMD方式进行运算操作,以开发向量处理器的指令级和数据级并行性、满足数据实时处理需求为应用目标。因此,如何为向量处理单元提供充足的数据带宽、减少向量处理单元内部数据的混洗等额外操作、提高算法的访存效率和降低功耗,成为向量存储系统设计中面临的重要问题。由于面向SDR的应用需要处理大量的视频、音频等流媒体信号,此类数据往往缺乏空间局部性和可重用性,同时又具有较高的实时处理需求,目前由于多路向量存储体(Vector BANK,VB)低位交叉编址组织结构的向量存储器(VM)以访存延时的确定性优势取代了通用的高速缓存(Cache)存储结构,成为向量处理器主要的片内存储结构。
向量存储器(VM)主要用来实现向量处理单元的向量数据访存需求,并通过直接存储器访问控制器 (Direct Memory Access,DMA)完成片内外的数据交互。目前一般的访存控制器为了实现访存的方便快捷,只支持向量处理单元与向量存储器中的向量存储体一一对应的访存方式,即某一个向量处理单元只能访问某个固定VB内的数据,不能共享其他VB中的数据,多个向量处理单元之间的数据交互只能通过混洗等额外操作完成,如Stanford 的Imagine流处理器。因为DMA是按字节、半字或字等可编程字节粒度和程序员可见的存储器映射空间访问片内存储器的,而VPE访问VM时只需看到自己所能访问的VB的地址空间。这一访存方式存在以下问题:
1. DMA和VPE访问的向量存储器的编址空间不一致。
2.一般N路SIMD结构的微处理器要求向量访存地址按N字边界对齐才能最大限度的存取数据,即各向量处理单元必须与对应的向量存储体一一对应才能高效完成SIMD操作。
因此对于访存情况复杂的算法,向量处理单元之间的数据交互将完全由混洗单元完成,造成输入数据的组织过程较繁琐,除了所需访存指令,还需要大量额外的混洗指令,这大幅降低了实际访存效率。
此外,在音频、视频数字信号处理中存在大量的滤波、自相关、图像匹配等算法,此类算法都有一个共同的特点,每一运算结果都需要跨步为1的连续的样本数据。下面以基本的有限冲击滤波算法(FIR)为例进行说明。FIR算法如下:
发明内容
本发明要解决的技术问题是:提供一种硬件实现代价低、支持向量数据有限共享和非对齐访问的支持有限共享的向量数据访存控制方法及向量存储器。
为了解决上述技术问题,本发明采用的技术方案为:
一种支持有限共享的向量数据访存控制方法,其实施步骤如下:
1)将向量存储器的N路向量存储体进行统一编址;
2)获取向量访存指令的访存信息,将访存信息中的向量地址分解为行地址和共享移位地址,将所述行地址对应N路向量存储体编址复制扩展成N个行地址,将N个行地址根据所述共享移位地址进行移位循环整理、并结合所述访存信息生成N套访存信息;
3)将所述共享移位地址和N套访存信息分别发送给各向量存储体的访存流水线;如果当前向量访存指令为读指令,则获取N路向量存储体访存流水线读取的写回数据,将所述N路写回数据根据所述共享移位地址进行反向移位循环整理得到N套写回数据,将所述N套写回数据发送给向量处理器中对应的向量处理单元。
作为本发明支持有限共享的向量数据访存控制方法技术方案的进一步改进:
所述步骤2)中将N个行地址进行移位循环整理时,首先获取存储在共享移位地址中的移位数,然后将N个行地址与N路向量存储体建立跨移位数行的映射,将剩余不能建立跨移位数行映射的行地址相对N路向量存储体进行循环移位并建立跨移位数行的映射;所述步骤3)中将N路写回数据进行反向移位循环整理时,首先将N路写回数据与N路向量处理单元的寄存器建立反向跨移位数行的映射,然后将剩余不能建立反向跨移位数行映射的写回数据相对N路向量处理单元的寄存器进行循环移位并建立反向跨移位数行的映射。
所述步骤2)获取访存信息的详细步骤包括:将向量访存指令进行译码获取访存操作信息,根据所述访存操作信息获取向量地址,如果当前向量访存指令为写指令则根据所述访存操作信息读取对应向量处理单元寄存器内的写数据。
所述步骤2)将向量地址分解时,向量地址被分解为高位部分的行字地址、中间的共享移位地址和低位部分的单字内字节地址,然后将高位部分的行字地址和低位部分的单字内字节地址相加后作为行地址。
所述步骤3)中将共享移位地址和N套访存信息分别发送给各向量存储体的访存流水线时,首先检查所有向量存储体的访存流水线的状态,如果所有向量存储体的访存流水线空闲则将N套访存信息和共享移位地址分别发送给各向量存储体的访存流水线;如果并非所有向量存储体的访存流水线空闲,则先将共享移位地址和N套访存信息缓存,并在所有向量存储体的访存流水线空闲时将共享移位地址和N套访存信息分别发送给各向量存储体的访存流水线。
所述步骤3)中将N套写回数据分别写回对应的N路向量处理单元的寄存器时,首先依次检查向量处理器的寄存器状态,如果向量处理器的寄存器空闲,则直接将写回数据发送给向量处理器中对应的向量处理单元;如果当前向量处理单元的寄存器繁忙则先将写回数据缓存,并在该向量处理单元的寄存器恢复空闲时将写回数据发送给向量处理器中对应的向量处理单元。
本发明还提供一种支持有限共享的向量存储器,它包括向量地址产生器、向量存储体单元和访存管理控制单元,所述向量存储体单元包括相互连接的多路向量存储体和用于控制向量存储体访存流水线的体访存流水线控制器,所述访存管理控制单元包括用于实施移位循环整理的向量地址整理单元和用于实施反向移位循环整理的向量数据整理单元,所述向量地址产生器通过向量地址整理单元与体访存流水线控制器相连,所述向量数据整理单元分别与体访存流水线控制器、向量处理器相连。
作为本发明支持有限共享的向量存储器技术方案的进一步改进:
所述向量地址产生器包括译码模块、向量地址计算模块和写数据读取模块,所述译码模块通过向量地址计算模块与向量地址整理单元相连,所述写数据读取模块与向量地址整理单元相连。
所述向量地址整理单元包括用于建立跨移位数行映射的地址移位模块和用于循环移位建立跨移位数行映射的地址循环模块,所述地址移位模块与地址循环模块相连,所述地址循环模块与所述体访存流水线控制器相连。
所述向量数据整理单元包括用于建立跨移位数行映射的数据移位模块和用于循环移位建立跨移位数行映射的数据循环模块,所述数据移位模块与数据循环模块相连,所述数据移位模块与体访存流水线控制器相连,所述数据循环模块与向量处理器相连。
本发明具有下述优点:
1、本发明通过对向量存储器存储空间统一编址,然后对行地址进行移位循环整理和反向移位循环整理,在不降低向量存储器访存性能的情况下通过移位使得向量处理单元可以连续访问任意的向量存储体,从而能够实现支持对向量存储器中各向量存储体的非对齐访问,具有硬件代价较低的优点。
2、本发明每个向量处理单元可以访问任意一个向量存储体的数据,这样就可实现向量数据的非对齐的连续访问,为向量处理单元提供了更灵活的向量数据读写方式,实现了所有向量处理单元对向量存储器存储空间的有限共享。
3、本发明通过对向量存储器的存储空间统一编址,每个向量处理单元可以访问任意一个向量存储体,因此向量处理单元访问向量存储体时可以使用向量存储体的统一编址空间地址,因此DMA和所有向量处理单元看到的向量存储体的编址空间一致,方便程序员进行程序设计。
4、本发明通过支持对向量存储器中各向量存储体的非对齐访问、实现了所有向量处理单元对向量存储器存储空间的有限共享,能大幅减少或消除SDR应用中滤波类、图像匹配等相关算法的混洗指令操作,降低了功耗,减少指令密度,提高访存效率,加速了相关算法的执行效率,适用于面向SDR中音频、视频信号处理等典型应用的向量微处理器。
附图说明
图1为本发明实施例的实施流程示意图。
图2为本发明实施例的向量地址被分解后的分布结构示意图。
图3为本实施例的框架结构示意图。
图4为本实施例的结构示意图。
图5为本实施例的地址移位模块的结构示意图。
图6为本实施例移中移位数为0时的数据流向示意图。
图7为本实施例移中移位数为1时的数据流向示意图。
图8为本实施例移中移位数为2时的数据流向示意图。
图9为本实施例移中移位数为N-1时的数据流向示意图。
图例说明:1、向量地址产生器;11、译码模块;12、向量地址计算模块;13、写数据读取模块;2、向量存储体单元;21、向量存储体;22、体访存流水线控制器;3、向量地址整理单元;31、地址移位模块;32、地址循环模块;4、向量数据整理单元;41、数据移位模块;42、数据循环模块。
具体实施方式
如图1所示,本发明实施例支持有限共享的向量数据访存控制方法的实施步骤如下:
1)将向量存储器的N路向量存储体进行统一编址;
2)获取向量访存指令的访存信息,将访存信息中的向量地址分解为行地址和共享移位地址,将行地址对应N路向量存储体编址复制扩展成N个行地址,将N个行地址根据共享移位地址进行移位循环整理、并结合访存信息生成N套访存信息;
3)将共享移位地址和N套访存信息分别发送给各向量存储体的访存流水线;如果当前向量访存指令为读指令,则获取N路向量存储体访存流水线读取的写回数据,将N路写回数据根据共享移位地址进行反向移位循环整理得到N套写回数据,将N套写回数据发送给向量处理器中对应的向量处理单元。
步骤2)获取访存信息的详细步骤包括:将向量访存指令进行译码获取访存操作信息,根据访存操作信息获取向量地址,如果当前向量访存指令为写指令则根据访存操作信息读取对应向量处理单元寄存器内的写数据。其中,访存操作信息包括VM读写访问请求、数据访问粒度及其符号位、基地址、偏移地址、源寄存器编号、写回寄存器编号等访存操作信息,其中,数据访问粒度是指访存数据宽度,一般是以字节、半字或字计算,符号位指访存数据是否按符号进行扩展,一般分为无符号访问和带符号访问两种。读取对应向量处理单元寄存器内的写数据时,通过向VPU中的向量寄存器发出寄存器读使能,从而寄存器写回数据。
步骤2)将向量地址分解时,向量地址被分解为三部分:高位部分的行字地址、中间的共享移位地址和低位部分的单字内字节地址,然后将高位部分的行字地址和低位部分的单字内字节地址相加后作为行地址。向量存储器共M位地址、总容量为2M 字节,向量存储器由N个容量为2M/N字节的向量存储体(VB0~VBN-1)构成,其中M为2的整数幂次方,M大于N。如图2所示,本实施例中向量地址被分解后,低位部分的单字内字节地址的位数为log2(W/8) 位;共享移位地址的位数为log2N位,N路向量存储体使用的log2N位地址位编址;高位部分的行字地址的位数为M-log2(W/8)-log2N位。其中,W为该向量处理器能处理的最大位宽,W为2的正整数幂次方,且大于等于8(8位=1字节),即一个字宽可以为8位、16位、32位、64位等。
步骤2)中将N个行地址进行移位循环整理时,首先获取存储在共享移位地址中的移位数(ShiftAddr),然后将N个行地址与N路向量存储体建立跨移位数行的映射,将剩余不能建立跨移位数行映射的行地址相对N路向量存储体进行循环移位并建立跨移位数行的映射;步骤3)中将N路写回数据进行反向移位循环整理时,首先将N路写回数据与N路向量处理单元的寄存器建立反向跨移位数行的映射,然后将剩余不能建立反向跨移位数行映射的写回数据相对N路向量处理单元的寄存器进行循环移位并建立反向跨移位数行的映射。
步骤3)中将共享移位地址和N套访存信息分别发送给各向量存储体的访存流水线时,首先检查所有向量存储体的访存流水线的状态,如果所有向量存储体的访存流水线空闲则将N套访存信息和共享移位地址分别发送给各向量存储体的访存流水线;如果并非所有向量存储体的访存流水线空闲,则先将共享移位地址和N套访存信息缓存,并在所有向量存储体的访存流水线空闲时将共享移位地址和N套访存信息分别发送给各向量存储体的访存流水线。
步骤3)中将N套写回数据分别写回对应的N路向量处理单元的寄存器时,首先依次检查向量处理器的寄存器状态,如果向量处理器的寄存器空闲,则直接将写回数据发送给向量处理器中对应的向量处理单元;如果当前向量处理单元的寄存器繁忙则先将写回数据缓存,并在该向量处理单元的寄存器恢复空闲时将写回数据发送给向量处理器中对应的向量处理单元。
如图3和图4所示,本发明实施例支持有限共享的向量存储器包括向量地址产生器1(VAGU)、向量存储体单元2和访存管理控制单元,向量存储体单元2包括相互连接的多路向量存储体21(VB0~VBN-1)和用于控制向量存储体21访存流水线的体访存流水线控制器22,访存管理控制单元包括用于实施移位循环整理的向量地址整理单元3(VARU)和用于实施反向移位循环整理的向量数据整理单元4(VDRU),向量地址产生器1通过向量地址整理单元3与体访存流水线控制器22相连,向量数据整理单元4分别与体访存流水线控制器22、向量处理器(VPU)相连。应用本实施例的向量处理器(VPU)由N个向量处理单元(VPE0~VPEN-1)构成,每一个向量存储体21都拥有自己的体访存流水线控制器22。
向量地址产生器1包括译码模块11、向量地址计算模块12和写数据读取模块13,译码模块11通过向量地址计算模块12与向量地址整理单元3相连,写数据读取模块13与向量地址整理单元3相连。译码模块11接收指令派发部件发送的向量访存指令,完成对向量访存指令的译码,向量地址计算模块12将译码后的访存信息进行向量访存地址计算,写数据读取模块13则在向量访存指令为写指令时向VPU的向量处理单元的寄存器中读取写数据。
向量地址整理单元3和向量数据整理单元4一起构成向量访存控制器,用于支持 VPU和向量存储器之间的有限共享和非对齐访问。向量访存指令经过VAGU译码和向量访存地址计算后,通过向量访存控制器的VARU实现向量写指令的访存地址整理进行向量写指令操作,或通过VARU和VDRU实现向量读指令的访存地址整理和向量数据写回的向量读指令操作的流程图。
向量地址整理单元3包括用于建立跨移位数行映射的地址移位模块31和用于循环移位建立跨移位数行映射的地址循环模块32,地址移位模块31与地址循环模块32相连,地址循环模块32与体访存流水线控制器22相连。向量数据整理单元4包括用于建立跨移位数行映射的数据移位模块41和用于循环移位建立跨移位数行映射的数据循环模块42,数据移位模块41与数据循环模块42相连,数据移位模块41与体访存流水线控制器22相连,数据循环模块42与向量处理器相连。
本实施例向量存储器的具体工作过程如下:
3.1 VAGU接收指令派发部件发出的向量访存指令并进行译码,译出指令中的向量存储器读写访问请求、数据访问粒度及其符号位、基地址、偏移地址、源寄存器编号、写回寄存器编号等访存操作信息,其中,数据访问粒度是指访存数据宽度,一般是以字节、半字或字计算,符号位指访存数据是否按符号进行扩展,一般分为无符号访问和带符号访问两种;若为写指令还需要继续向VPU中的向量寄存器发出寄存器读使能,寄存器写回数据;VAGU将访问VM的向量访存指令译码成N个VB的访问有效信号、写入的数据(对于向量写指令)、写回寄存器编号(对于向量读指令)及寄存器写使能,一起形成访问N个VB的N套访存信息。
3.2 VAGU根据3.1译码出来的访存操作信息中的基地址和偏移地址计算出访问VM的向量地址。
3.3 VARU将向量地址分解为共享移位地址和行地址,然后将行地址复制扩展为N个行地址,作为用于访问的N个VB地址,分别加入到3.1中得到的N套VB的访存信息中。
3.4 VARU根据共享移位地址,对3.3得到的N套VB的访存信息中的每个VB地址与N路向量存储体建立跨移位数行的映射,然后VARU根据共享移位地址将将剩余不能建立跨移位数行映射的行地址相对N路向量存储体进行循环移位并建立跨移位数行的映射,从而完成访问VM前的整理、对齐操作。
3.5 若此时所有VB访存流水线都发出不忙信号,即VM_Bsy=0,则将3.4中由VARU完成整理操作的N套VB的访存信息和共享移位地址发送到对应的N个VB的体访存流水线控制器22,从而体访存流水线控制器22控制N个VB的访存流水线以完成访存操作;此时若为向量写指令,则本次写指令处理完毕;若为向量读指令则转至3.6。若此时VB访存流水线发出的忙信号有效,即VM_Bsy=1,则将这N套访存信息缓存,直到VM_Bsy=0时再发给VM控制器完成访存操作。
3.6体访存流水线控制器22将各VB访存流水线读出的N个VB的数据、写回使能、写回寄存器编号等写回信息打入向量数据整理单元VDRU,并根据VB访存流水线传递过来的共享移位地址进行反向移位循环整理,整理完毕后形成N套写回数据信息。若此时VPU的向量寄存器不忙,即VRF_Bsy=0,则将N套写回数据信息和寄存器写使能信号发送给对应的VPE,完成本次向量读指令操作;若此时VPU的向量寄存器忙,即VRF_Bsy=1,则将N套写回数据及寄存器写使能信息寄存,直到VRF_Bsy=0再发给VPU中对应VPE,完成向量数据写回,从而完成向量读指令操作。
地址移位模块31主要用于完成向量地址的分解、复制和重整理。如图5所示,地址移位模块31主要由N-1个加法器和选择器组成, VARU中的地址整理模块将VAGU计算出的地址分解为共享移位地址ShiftAddr和行地址,然后将行地址复制扩展为N份分别为Addr0~AddrN-1,然后使用N-1个二选一开关(MUX 0~MUXN-2),根据图中所示共享移位地址ShiftAddr的判断条件选择原值或是跨行后的新地址,即原值+W/8。其中判断条件ShiftAddr>0、ShiftAddr>1、…、ShiftAddr>N-2的二选一开关分别与VB0~VBN-2一一对应, AddrN-1不需进行地址变换操作,它的值就是VBN-1的实际地址。二选一开关的输出与Addr N-1一起成为 N个VB的实际访问地址。
图6~图9为VPU按字粒度访问VM时,移位数(ShiftAddr)分别等于0、1、2以及N-1时,N个VPE访问N个VB的N套访存信息经过VARU循环移位(按VPE0~VPEN-1的顺序)重整理及经过VB访存流水线后输出的N套写回数据和寄存器写使能信号再经过VDRU反向循环移位重整理生成N套实际写入对应VPE的写回信息(Wrt0~WrtN-1)的过程如下:
如图6所示,当ShiftAddr=0时不使用VARU和VDRU进行循环移位整理操作,VPE0正好访问VB0,VPE1访问VB1,……,VPE N-1访问VB N-1。
如图7所示,当ShiftAddr=1时,将N个行地址与N路向量存储体建立跨1行的映射,VPE0访问VB1,VPE1访问VB2,……VPE N-2访问VB N-1,剩余的VPE N-1不能建立跨1行映射的行地址,从而将VPE N-1相对N路向量存储体进行循环移位并建立跨1行的映射,使得VPE N-1访问下一行的VB 0,从而完成N个行地址与N路向量存储体之间的移位循环整理。因此,VPE0~VPE N-1访问VM的向量访存地址对应着从VB1开始的N个连续的VB上,而VPE N-1访问下一行的VB 0,需要使用VARU对N套访存地址进行扩展和整理,即将VAGU计算出来的向量行地址复制N份,第一份行地址进行+W/8变换,然后将整理后的N个地址和访存数据都进行位移为1个VB单位的循环移位操作,如果是向量读指令,还需使用VDRU对N套从VM读出的写回数据和寄存器写使能(Wrt0~WrtN-1)进行位移为1的反向循环移位操作,使写回信息与各VPE对齐。
如图8所示,当ShiftAddr=2时,将N个行地址与N路向量存储体建立跨2行的映射,VPE0访问VB2,VPE1访问VB3,……VPEN-3访问VBN-1,剩余的VPE N-2和VPE N-1不能建立跨2行映射的行地址,从而将VPE N-2和VPE N-1相对N路向量存储体进行循环移位并建立跨1行的映射使得VPE N-2访问下一行的VB0,VPE N-1访问下一行的VB1,从而完成N个行地址与N路向量存储体之间的移位循环整理。因此,VPE0~VPE N-1访问VM的向量访存地址对应着从VB2开始的N个连续的VB上,需要VARU 对N套向量访存地址进行行地址变换以及对变换后的地址和访存数据进行2个VB单位的循环移位操作;若是向量读访问,还要使用VDRU对从VM中读出的N套写回数据及其寄存器写回使能信号进行位移为2的反向循环移位操作,使写回信息与各VPE对齐。
如图9所示,当ShiftAddr=N-1时,将N个行地址与N路向量存储体建立跨N-1行的映射,VPE0访问VBN-1,剩余的VPE1~VPE N-1不能建立跨N-1行映射的行地址,从而将VPE1~VPE N-1相对N路向量存储体进行循环移位并建立跨N-1行的映射使得:VPE1访问下一行的VB0,VPE2访问下一行的VB1,……,VPE N-1访问下一行的VB N-2,从而完成N个行地址与N路向量存储体之间的移位循环整理。因此,VPE0~VPE N-1访问VM的向量访存地址对应着从VBN-1开始的N个连续的VB上,,VPE0需要访问行地址对应的VBN-1,VPE1访问下一行的VB0,VPE2访问下一行的VB1,……VPE N-1访问下一行的VB N-2,需要VARU 对N套向量访存地址进行行地址变换以及对变换后的地址和访存数据进行N-1个VB单位的循环移位操作;若是向量读访问,还要使用VDRU对从VM中读出的N套写回数据及其寄存器写回使能信号进行位移为N-1的反向循环移位操作,使写回信息与各VPE对齐。按以上方式,一个VPE可以有条件地访问到VM中的所有VB,即N个VPE可以按VPE0~VPE N-1的顺序访问到VM中任意一个VB地址开始的连续的向量数据,这就使得DMA和VPE可以看到一致的VM编址空间一致。而且由于N个VPE对VM的访问的必须是访问N个地址连续的VB,所以说本发明实现了VPU中的任一VPE对VM存储空间的有限共享。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (7)
1.一种支持有限共享的向量数据访存控制方法,其特征在于其实施步骤如下:
1)将向量存储器的N路向量存储体进行统一编址;
2)获取向量访存指令的访存信息,将访存信息中的向量地址分解为行地址和共享移位地址,将所述行地址对应N路向量存储体编址复制扩展成N个行地址,将N个行地址根据所述共享移位地址进行移位循环整理、并结合所述访存信息生成N套访存信息;
3)将所述共享移位地址和N套访存信息分别发送给各向量存储体的访存流水线;如果当前向量访存指令为读指令,则获取N路向量存储体访存流水线读取的写回数据,将所述N路写回数据根据所述共享移位地址进行反向移位循环整理得到N套写回数据,将所述N套写回数据发送给向量处理器中对应的向量处理单元的寄存器。
2.根据权利要求1所述的支持有限共享的向量数据访存控制方法,其特征在于:所述步骤2)中将N个行地址进行移位循环整理时,首先获取存储在共享移位地址中的移位数,然后将N个行地址与N路向量存储体建立跨移位数行的映射,将剩余不能建立跨移位数行映射的行地址相对N路向量存储体进行循环移位并建立跨移位数行的映射;所述步骤3)中将N路写回数据进行反向移位循环整理时,首先将N路写回数据与N路向量处理单元的寄存器建立反向跨移位数行的映射,然后将剩余不能建立反向跨移位数行映射的写回数据相对N路向量处理单元的寄存器进行循环移位并建立反向跨移位数行的映射。
3.根据权利要求2所述的支持有限共享的向量数据访存控制方法,其特征在于所述步骤2)获取访存信息的详细步骤包括:将向量访存指令进行译码获取访存操作信息,根据所述访存操作信息获取向量地址,如果当前向量访存指令为写指令则根据所述访存操作信息读取对应向量处理单元寄存器内的写数据。
4.根据权利要求3所述的支持有限共享的向量数据访存控制方法,其特征在于:所述步骤2)将向量地址分解时,向量地址被分解为高位部分的行字地址、中间的共享移位地址和低位部分的单字内字节地址,然后将高位部分的行字地址和低位部分的单字内字节地址相加后作为行地址。
5.根据权利要求1或2或3或4所述的支持有限共享的向量数据访存控制方法,其特征在于:所述步骤3)中将共享移位地址和N套访存信息分别发送给各向量存储体的访存流水线时,首先检查所有向量存储体的访存流水线的状态,如果所有向量存储体的访存流水线空闲则将N套访存信息和共享移位地址分别发送给各向量存储体的访存流水线;如果并非所有向量存储体的访存流水线空闲,则先将共享移位地址和N套访存信息缓存,并在所有向量存储体的访存流水线空闲时将共享移位地址和N套访存信息分别发送给各向量存储体的访存流水线。
6.根据权利要求1或2或3或4所述的支持有限共享的向量数据访存控制方法,其特征在于:所述步骤3)中将N套写回数据分别写回对应的N路向量处理单元的寄存器时,首先依次检查向量处理单元的寄存器状态,如果向量处理单元的寄存器空闲,则直接将写回数据发送给对应的向量处理单元的寄存器;如果当前向量处理单元的寄存器繁忙则先将写回数据缓存,并在该向量处理单元的寄存器恢复空闲时将写回数据发送给对应的向量处理单元的寄存器。
7.一种支持有限共享的向量存储器,其特征在于:它包括向量地址产生器(1)、向量存储体单元(2)和访存管理控制单元,所述向量存储体单元(2)包括相互连接的多路向量存储体(21)和用于控制向量存储体(21)访存流水线的体访存流水线控制器(22),所述访存管理控制单元包括用于实施移位循环整理的向量地址整理单元(3)和用于实施反向移位循环整理的向量数据整理单元(4),所述向量地址产生器(1)通过向量地址整理单元(3)与体访存流水线控制器(22)相连,所述向量数据整理单元(4)分别与体访存流水线控制器(22)、向量处理器相连;所述向量地址产生器(1)包括译码模块(11)、向量地址计算模块(12)和写数据读取模块(13),所述译码模块(11)通过向量地址计算模块(12)与向量地址整理单元(3)相连,所述写数据读取模块(13)与向量地址整理单元(3)相连;所述向量地址整理单元(3)包括用于建立跨移位数行映射的地址移位模块(31)和用于循环移位建立跨移位数行映射的地址循环模块(32),所述地址移位模块(31)与地址循环模块(32)相连,所述地址循环模块(32)与所述体访存流水线控制器(22)相连;所述向量数据整理单元(4)包括用于建立跨移位数行映射的数据移位模块(41)和用于循环移位建立跨移位数行映射的数据循环模块(42),所述数据移位模块(41)与数据循环模块(42)相连,所述数据移位模块(41)与体访存流水线控制器(22)相连,所述数据循环模块(42)与向量处理器相连。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110213246 CN102279818B (zh) | 2011-07-28 | 2011-07-28 | 支持有限共享的向量数据访存控制方法及向量存储器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110213246 CN102279818B (zh) | 2011-07-28 | 2011-07-28 | 支持有限共享的向量数据访存控制方法及向量存储器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102279818A CN102279818A (zh) | 2011-12-14 |
CN102279818B true CN102279818B (zh) | 2013-09-25 |
Family
ID=45105276
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110213246 Active CN102279818B (zh) | 2011-07-28 | 2011-07-28 | 支持有限共享的向量数据访存控制方法及向量存储器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102279818B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622318B (zh) * | 2012-02-27 | 2014-09-10 | 中国科学院声学研究所 | 一种存储器控制电路及其控制的向量数据寻址方法 |
CN102629238B (zh) * | 2012-03-01 | 2014-10-29 | 中国人民解放军国防科学技术大学 | 支持向量条件访存的方法和装置 |
CN104407880A (zh) * | 2014-10-27 | 2015-03-11 | 杭州中天微系统有限公司 | 支持硬件非对齐存储访问的risc处理器加载/存储单元 |
CN104731525B (zh) * | 2015-02-06 | 2017-11-28 | 北京航天自动控制研究所 | 一种兼容不同位宽支持非对齐访问的fpga片内存储控制器 |
CN104699465B (zh) * | 2015-03-26 | 2017-05-24 | 中国人民解放军国防科学技术大学 | 向量处理器中支持simt的向量访存装置和控制方法 |
CN105373367B (zh) * | 2015-10-29 | 2018-03-02 | 中国人民解放军国防科学技术大学 | 支持标向量协同工作的向量simd运算结构 |
US10108538B1 (en) * | 2017-07-31 | 2018-10-23 | Google Llc | Accessing prologue and epilogue data |
CN110837650B (zh) * | 2019-10-25 | 2021-08-31 | 华中科技大学 | 一种不可信网络环境下的云存储oram访问系统和方法 |
CN115794671B (zh) * | 2023-02-07 | 2023-04-14 | 成都申威科技有限责任公司 | 一种兼容向量数据的访存系统及方法 |
CN116467235B (zh) * | 2023-05-22 | 2023-09-05 | 太初(无锡)电子科技有限公司 | 一种基于dma的数据处理方法、装置、电子设备及介质 |
CN118396073B (zh) * | 2024-06-28 | 2024-09-10 | 山东海量信息技术研究院 | 异构计算系统及其模型训练方法、设备、介质、程序产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5553291A (en) * | 1992-09-16 | 1996-09-03 | Hitachi, Ltd. | Virtual machine control method and virtual machine system |
CN101833441A (zh) * | 2010-04-28 | 2010-09-15 | 中国科学院自动化研究所 | 并行向量处理引擎结构 |
CN101847093A (zh) * | 2010-04-28 | 2010-09-29 | 中国科学院自动化研究所 | 具有可重构低功耗数据交织网络的数字信号处理器 |
-
2011
- 2011-07-28 CN CN 201110213246 patent/CN102279818B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5553291A (en) * | 1992-09-16 | 1996-09-03 | Hitachi, Ltd. | Virtual machine control method and virtual machine system |
CN101833441A (zh) * | 2010-04-28 | 2010-09-15 | 中国科学院自动化研究所 | 并行向量处理引擎结构 |
CN101847093A (zh) * | 2010-04-28 | 2010-09-29 | 中国科学院自动化研究所 | 具有可重构低功耗数据交织网络的数字信号处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN102279818A (zh) | 2011-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102279818B (zh) | 支持有限共享的向量数据访存控制方法及向量存储器 | |
US9734056B2 (en) | Cache structure and management method for use in implementing reconfigurable system configuration information storage | |
CN102141905B (zh) | 一种处理器体系结构 | |
US7568086B2 (en) | Cache for instruction set architecture using indexes to achieve compression | |
Balfour et al. | An energy-efficient processor architecture for embedded systems | |
CN105453030B (zh) | 向较宽的寄存器进行依赖于模式的部分宽度加载的处理器、方法和系统 | |
CN112513885A (zh) | 神经处理器 | |
EP2423821A2 (en) | Processor, apparatus, and method for fetching instructions and configurations from a shared cache | |
CN103221939A (zh) | 移动数据的方法和装置 | |
CN103744644A (zh) | 采用四核结构搭建的四核处理器系统及数据交换方法 | |
CN104699465A (zh) | 向量处理器中支持simt的向量访存装置和控制方法 | |
CN103927270A (zh) | 一种面向多个粗粒度动态可重构阵列的共享数据缓存装置及控制方法 | |
CN111880925A (zh) | 用于提供带外处理器遥测的技术 | |
CN114942831A (zh) | 处理器、芯片、电子设备及数据处理方法 | |
CN102629238B (zh) | 支持向量条件访存的方法和装置 | |
CN101211256A (zh) | 一种专用双流水线risc指令系统及其操作方法 | |
JP2011141823A (ja) | データ処理装置および並列演算装置 | |
US6463518B1 (en) | Generation of memory addresses for accessing a memory utilizing scheme registers | |
CN115421899A (zh) | 可重构处理器多端口可配缓存访问方法及装置 | |
CN103761072A (zh) | 一种粗粒度可重构层次化的阵列寄存器文件结构 | |
KR100863080B1 (ko) | 저전력형 컨피규레이션 캐시와 이를 포함하는 재구성형프로세싱 시스템 | |
KR100834412B1 (ko) | 모바일 멀티미디어 연산의 효율적인 처리를 위한 병렬 프로세서 | |
WO2012131426A1 (en) | Processor system with predicate register, computer system, method for managing predicates and computer program product | |
KR100267092B1 (ko) | 멀티미디어신호프로세서의단일명령다중데이터처리 | |
CN112486904B (zh) | 可重构处理单元阵列的寄存器堆设计方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |