CN103699360A - 一种向量处理器及其进行向量数据存取、交互的方法 - Google Patents
一种向量处理器及其进行向量数据存取、交互的方法 Download PDFInfo
- Publication number
- CN103699360A CN103699360A CN201210366032.4A CN201210366032A CN103699360A CN 103699360 A CN103699360 A CN 103699360A CN 201210366032 A CN201210366032 A CN 201210366032A CN 103699360 A CN103699360 A CN 103699360A
- Authority
- CN
- China
- Prior art keywords
- address
- data
- vector
- processor
- vectorization
- 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.)
- Granted
Links
Images
Landscapes
- Complex Calculations (AREA)
- Advance Control (AREA)
Abstract
本发明公开了一种向量处理器及其进行向量数据存取、交互的方法,向量处理器包括:地址寄存器组,用于存储操作数以及向量化的地址数据,并将向量化的地址数据通过地址总线接口传送到存储器组,所述向量化的地址数据用于访问存储器组;地址生成逻辑单元,用于通过算术逻辑单元,根据操作数计算出向量化的地址数据并存入地址寄存器组;数据交互逻辑单元,用于通过算术逻辑单元,将通过数据总线接口从存储器组存取的向量数据进行拆拼运算。本发明能够充分利用向量处理器高效的算术逻辑单元,因此数据处理速度快,效率高。
Description
技术领域
本发明涉及数据处理,特别涉及一种向量处理器及其进行向量数据存取、交互的方法。
背景技术
图1为现有的向量处理器数据存取结构示意图,如图所示,在现有的向量处理器数据存储机制中,涉及的元器件主要有:向量处理器101、向量处理器的访问地址线102、数据线103、数据总线104、地址生成控制逻辑单元105、数据拆拼逻辑单元106,以及由n个存储器组成的存储器组107。
当发生向量数据访问时,向量处理器101通过访问地址线102发送一个初始地址,这个初始地址作为地址生成控制逻辑单元105的输入,通过地址生成控制逻辑单元105的计算得到一组地址信号,所述地址作为存储器地址输入存储器组107。存储器组107接收到地址后响应,返回一组数据或进行数据存储等处理。
当向量处理器101与存储器组107进行数据传递时,在数据总线104后端的数据拆拼逻辑单元106负责将向量处理器101输出的数据拆分成每个存储器个体的数据输入存储器组107,或将每个存储器个体的输出拼接成一个向量数据通过数据总线返回给向量处理器101。
在向量处理器进行数据存取的过程中,这种由专门的地址生成控制逻辑单元完成地址生成运算,由专门的数据拆拼逻辑单元进行数据拆拼运算的方式,存在着数据存取效率低的不足。
发明内容
本发明提供了一种向量处理器及其进行向量数据存取、交互的方法,用以提高向量处理器存取向量数据的效率。
本发明实施例中提供了一种包括算术逻辑单元的向量处理器,还包括:地址生成逻辑单元、数据交互逻辑单元、地址寄存器组以及地址总线接口、数据总线接口,其中:
地址寄存器组,用于存储操作数以及向量化的地址数据,并将向量化的地址数据通过地址总线接口传送到存储器组,所述向量化的地址数据用于访问存储器组;
地址生成逻辑单元,用于通过算术逻辑单元,根据操作数计算出向量化的地址数据并存入地址寄存器组;
数据交互逻辑单元,用于通过算术逻辑单元,将通过数据总线接口从存储器组存取的向量数据进行拆拼运算。
较佳地,所述地址总线接口是将若干个向量化地址并联向外输出的向量化地址接口。
本发明实施例中还提供了一种用向量处理器进行向量数据存取的方法,在向量化的地址数据生成时,包括如下步骤:
向量处理器在处理器流水线的译码阶段解析到向量访存相关的指令时,根据指令的内容,从地址寄存器组中选择若干个寄存器作为操作数;
向量处理器将所选择的操作数作为地址生成逻辑单元的输入数据;
与向量处理器共享算术逻辑单元的地址生成逻辑单元将输入数据传送到处理器流水线的执行阶段以使相关的计算单元根据指令格式进行相应的计算。
较佳地,所述向量化的地址数据生成由对存储器组的访问行为触发。
较佳地,对地址寄存器组中的寄存器的操作位于向量处理器的流水线结构中。
本发明实施例中还提供了一种用向量处理器进行向量数据存取的方法,在向量化的地址数据写回时,包括如下步骤:
在处理器流水线的访存阶段,地址生成逻辑单元将执行阶段的计算结果写回地址寄存器组中。
本发明实施例中还提供了一种用向量处理器进行向量数据存取的方法,在向量处理器对存储器组的向量数据进行存取时,包括如下步骤:
地址生成逻辑单元将向量化的地址数据通过并行化的地址总线接口传送到存储器组。
本发明实施例中还提供了一种用向量处理器进行向量数据交互的方法,在对向量数据进行交互时,包括如下步骤:
向量处理器解析所执行的指令内容,从向量数据寄存器组中选取未经排序的向量数据;
向量处理器将未经排序的向量数据送至数据交互逻辑单元;
与向量处理器共享算术逻辑单元的数据交互逻辑单元将未经排序的向量数据传送到处理器流水线的执行阶段以使相关的计算单元根据指令格式将所述向量数据生成经排序后的向量数据。
较佳地,所述对向量数据进行交互由向量数据的交互运算触发。
本发明实施例中还提供了一种向量数据存取装置,包括存储器组以及向量处理器,其中:
存储器组通过地址总线接口、数据总线接口与向量处理器相连,通过地址总线接口传送需存取的向量数据的向量化的地址数据,通过数据总线接口传送需存取的向量数据。
本发明有益效果如下:
在本发明实施中,地址生成逻辑单元、数据交互逻辑单元共享向量处理器的算术逻辑单元,将其用于计算向量化的地址数据以及对从存储器组存取的向量数据进行拆拼运算,并且将向量化的地址数据通过向量化地址总线接口直接传送到存储器组。与现有由专门的地址生成控制逻辑单元完成地址生成运算,由专门的数据拆拼逻辑单元进行数据拆拼运算的方式相比,现有技术中地址生成逻辑运算和数据拆拼逻辑独立于处理器内部结构,实际上是一个协处理器,这样的分离式结构显然降低了处理器的访存效率;而本发明由于无需再由专门的地址生成控制逻辑、数据拆拼逻辑来进行地址生成运算和数据交互运算,还能够充分利用向量处理器高效的算术逻辑单元,因此数据处理速度快,效率高。
附图说明
图1为现有的向量处理器数据存取结构示意图;
图2为本发明实施例中的向量处理器结构示意图;
图3为本发明实施例中的向量数据存储的方法实施流程示意图;
图4为本发明实施例中的向量处理器流水线结构示意图;
图5为本发明实施例中的向量处理器内部各信号的流转示意图。
具体实施方式
下面结合附图对本发明的具体实施方式进行说明。
发明人在发明过程中注意到,在现有的向量处理器进行数据存取的过程中,需要额外的地址生成控制逻辑单元和数据拆拼逻辑单元来计算地址和数据信息,这些操作降低了处理器的总线效率,也降低了存储系统的时序性能。例如,采用查表方法实现的地址生成控制逻辑至少需要一个时钟周期完成查表操作;而数据的拆拼也产生了复杂的数据选择逻辑,增加了访问延迟,降低了时序性能。另一方面,在现有的实现方式下,地址控制逻辑和数据拆拼逻辑的规模制约了向量地址的产生方式不能太灵活,同时也导致了数据交互方法不能太复杂,降低了对处理器对复杂的数据操作的处理能力。另外,专门设立的地址生成控制逻辑以及数据拆拼逻辑成本高、费用高;还由于其功能的局限性只能进行相对较为简单的地址生成逻辑运算和数据拆拼逻辑运算。
为了克服现有向量处理器数据存储技术对总线效率和系统时序性能产生的负面影响,本发明实施例中提供了一种包括算术逻辑单元的向量处理器,在该向量处理器中,将向量地址生成逻辑与数据交互逻辑独立于总线,以向量化的地址和数据总线实现对存储器阵列的直接访问,用以减小数据总线访问延迟,提高存储系统的时序性能。进一步地,将地址生成逻辑和数据交互逻辑集成到向量处理器的微结构中,以利用处理器计算部件完成对复杂地址操作和数据交互操作,提高处理器对复杂数据操作的处理能力。下面进行说明。
图2为向量处理器结构示意图,如图所示,向量处理器201包括算术逻辑单元,还包括:地址生成逻辑单元202、数据交互逻辑单元204、地址寄存器组203以及地址总线接口205、数据总线接口206,为便于说明向量处理器的实施方式,图中还示出了存储器组208,以及连接向量处理器与存储器组的总线207;方案中涉及到的算术逻辑单元的实施方式将会在下面的实施例中给出具体说明。
则在向量处理器中的各单元结构关系可以如下:
地址寄存器组,用于存储操作数以及向量化的地址数据,并将向量化的地址数据通过地址总线接口传送到存储器组,所述向量化的地址数据用于访问存储器组;
地址生成逻辑单元,用于通过算术逻辑单元,根据操作数计算出向量化的地址数据并存入地址寄存器组;
数据交互逻辑单元,用于通过算术逻辑单元,将通过数据总线接口从存储器组存取的向量数据进行拆拼运算。
实施中,地址总线接口可以是将若干个向量化地址并联向外输出的向量化地址接口。
具体实施中,向量处理器可以沿用原始的地址接口可以实现地址的串行输出,即一次只输出一个向量化地址;而本实施例的向量化地址接口一次可以输出一组向量化地址实现向量化地址的并行传输。
假若向量处理器为16位字长的,串行传输向量化地址的地址接口的宽度与向量化地址的字长相等,则向量化地址接口也对应的是16位字长宽。而一次需要传输8个向量化地址,则向量化地址接口的宽度则需要满足16*8=128位字长。
故本实施例拓宽了原有地址接口的宽度,使向量处理器能并行输出若干个向量化地址,实现并行访问。采用本实施例所述的向量化地址接口,实现并行访问,进一步提供了数据存取的速率,提高了处理能力。
具体实施中,向量处理器主要包含:结构化的地址生成逻辑单元、结构化的数据交换逻辑单元、向量化的数据地址寄存器组以及向量化的地址总线接口。实施例中所描述的存储阵列亦即存储器组,存储阵列是本领域技术人员更为惯常的另一种描述方式。则在向量处理器中有:
结构化的地址生成逻辑单元:位于向量处理器的流水线中,与向量处理器共享算术逻辑单元。向量存储器访问行为将触发位于流水线结构中分布的各个处理阶段,以实现所需的地址计算功能。
结构化的数据交互逻辑单元:位于向量处理器的流水线中,与向量处理器共享算术逻辑单元。向量数据的交互运算触发位于流水线结构中分布的各个处理阶段,以实现所需的数据交互操作,如洗牌、倒序操作等。
向量化的地址寄存器组:向量化的地址寄存器组包含若干个向量化的地址寄存器。为了实现对存储器组中各个存储器个体的直接访问,向量化的地址寄存器包含了所有存储器个体的地址。通过这些地址,无需更多的存储器控制逻辑即可直接完成对存储器阵列的访问。这些寄存器位于向量处理器的流水线结构中,作为所述结构化的地址生成逻辑的输入,进行地址间的逻辑运算,生成访存所需的向量地址。
向量化的地址总线接口:向量化的地址总线接口由一组地址信号组成,负责向存储器阵列传送向量化的地址数据。
基于上述向量处理器,本发明实施例中还提供了一种向量数据存取装置,包括存储器组以及上述的向量处理器,其中:
存储器组通过地址总线接口、数据总线接口与向量处理器相连,通过地址总线接口传送需存取的向量数据的向量化的地址数据,通过数据总线接口传送需存取的向量数据。
基于上述向量处理器,本发明实施例中还提供了一种向量数据存取的方法,用于降低访存延迟并提高处理器效率,下面进行说明。
向量数据存取的过程包含了向量化的地址数据生成、向量化的地址数据写回、向量处理器对存储器组的向量数据进行存取、对向量数据进行交互等流程,下面先对各分流程的实施进行说明。
1、在向量化的地址数据生成时,向量处理器进行向量数据存取可以包括如下步骤:
向量处理器在处理器流水线的译码阶段解析到向量访存相关的指令时,根据指令的内容,从地址寄存器组中选择若干个寄存器作为操作数;
向量处理器将所选择的操作数作为地址生成逻辑单元的输入数据;
与向量处理器共享算术逻辑单元的地址生成逻辑单元将输入数据传送到处理器流水线的执行阶段以使相关的计算单元根据指令格式进行相应的计算。
实施中,向量化的地址数据生成可以由对存储器组的访问行为触发。
实施中,对地址寄存器组中的寄存器的操作可以位于向量处理器的流水线结构中。
2、在向量化的地址数据写回时,向量处理器进行向量数据存取可以包括如下步骤:
在处理器流水线的访存阶段,地址生成逻辑单元将执行阶段的计算结果写回地址寄存器组中。
3、在向量处理器对存储器组的向量数据进行存取时,包括如下步骤:
地址生成逻辑单元将向量化的地址数据通过并行化的地址总线接口传送到存储器组。
4、在向量数据交互时,包括如下步骤:
向量处理器解析所执行的指令内容,从向量数据寄存器组中选取未经排序的向量数据;
向量处理器将未经排序的向量数据送至数据交互逻辑单元;
与向量处理器共享算术逻辑单元的数据交互逻辑单元将未经排序的向量数据传送到处理器流水线的执行阶段以使相关的计算单元根据指令格式将所述向量数据生成经排序后的向量数据。
实施中,对向量数据进行交互可以由向量数据的交互运算触发。
下面以一个整体的向量数据存储过程用以说明,但该整体的实施流程并不代表向量数据存取必须同时具备这些流程,从理论上来说,还可以只选用其中的几个阶段,或者采用其他的组合方式,或者按其他顺序实施等,下述的向量数据存储过程仅用于教导本领域技术人员具体如何实施本发明,但不意味仅能使用下述的向量数据存储过程,实施过程中可以结合实践需要来确定相应的实施过程。
图3为向量数据存储的方法实施流程示意图,如图所示,向量数据存储可以包括下列步骤:
步骤301、访存指令译码,地址寄存器操作数选择。
实施中,处理器流水线的译码阶段解析到向量访存相关的指令时,根据指令的内容,从向量化的地址寄存器组中选择若干个寄存器作为操作数。
步骤302、所选操作数输出给结构化地址生成逻辑。
实施中,处理器流水线的译码阶段将步骤301所选择的操作数,作为结构化的地址生成逻辑的输入数据。
步骤303、向量处理器的执行单元根据指令格式对输入操作数进行逻辑计算。
实施中,与处理器共享算术逻辑单元的结构化的地址生成逻辑负责将输入数据传送到处理器流水线的执行阶段,相关的计算单元负责根据指令格式进行相应的计算。
步骤304、目的地址寄存器中包含一组向量化的地址。这一组地址作为存储器阵列的有效地址,进行并行访存操作,返回一组数据。
实施中,在处理器流水线的访存阶段,结构化的地址生成逻辑负责将执行阶段的计算结果写回向量化的地址寄存器组中的目的向量地址寄存器中。
实施中,目的向量地址寄存器所存储的地址用于直接访问存储器阵列。该向量地址通过向量化的地址总线接口传送到存储器阵列,存储器阵列中的每个存储器个体都接收到相对应地址,并得到地址中的数据。
步骤305、返回的一组数据,直接组合成一组未经排序的向量数据,并返回给向量处理器的向量数据寄存器组。
实施中,从若干个存储器个体得到若干个数据,这些数据经过简单组合组成一个未经排序的向量数据,并通过数据总线返回给向量处理器的向量数据寄存器组。
步骤306、向量处理器从向量数据寄存器组选取未经排序的向量数据输出给结构化的数据交互逻辑。
实施中,向量处理器将未经排序的向量数据送于结构化的数据交互逻辑。
步骤307、向量处理器的执行单元根据指令格式对向量数据进行排序操作。
实施中,与处理器共享算术逻辑单元的结构化的数据交互逻辑负责将未经排序的向量数据传送到处理器执行阶段,相关的计算单元负责根据指令格式对所述向量数据进行倒序、洗牌等操作,生成经排序后的向量数据。
步骤308、将经过排序的向量数据写回目的向量寄存器。
实施中,处理器流水线的写回阶段将排序后的向量数据写入目的向量寄存器中,完成此次访存指令的相关操作。
下面再对上面实施例中提到的算术逻辑单元、流水线等概念进行说明,主要是通过本发明实施例中提供的向量处理器对指令的具体实施来进行说明。
图4为向量处理器流水线结构示意图,如图所示,现有的向量处理器大都是流水线结构的,流水线结构可以分为五个单元依次是取指单元、译码单元、执行单元、访存单元以及写回单元。其中:
取指单元从程序寄存器中读取指令;译码单元接收取指单元中接收指令并进行译码,译码后的操作数、操作码传输至后端的执行单元,执行单元根据操作码对操作数据进行相应的操作。
执行单元中包括了ALU(Arithmetic Logic Unit,算术逻辑单元),ALU是一个高速的计算器,能进行高速的向量运算。
访存单元与写回单元根据执行单元传输的地址对内部存储器或外部存储器进行数据访问读取、写数据等。
为便于理解本发明提供的向量处理器在流水线结构中的具体实施方式,下面以具体指令的实施为例进行说明。
图5为向量处理器内部各信号的流转示意图,如图所示,下面介绍三种指令依次在取指单元、译码单元、执行单元、访存单元以及写回单元相应的操作的各信号流转。
指令一:Load AR0,AR1,AR2,VR10。
此指令意思为读取外部存储阵列中的存储器AR0,AR1中的存储的数据,并将读取的数据存储到VR10中,且将通过计算得到的向量化地址存储到向量地址寄存器AR2中。
取指单元:读取指令Load AR0,AR1,AR2,VR10,并将指令传输到译码单元;
译码单元,接收Load AR0,AR1,AR2,VR10指令;第二译码逻辑从所述指令获取存储器AR0的地址源操作数索引0、存储器AR1的地址源操作数索引1、寄存器AR2所对应的目的地址索引2以及结构化向量访存标记;第一数据选择器根据结构化向量访存标记将第二译码逻辑输入的地址源操作数索引0以及地址源操作数索引1传输到向量地址寄存器中;向量地址寄存器根据地址源操作数索引0和地址源操作数索引1返回两组源向量地址;译码单元将目的地址索引以及由向量地址寄存器返回的源向量地址输入到执行单元中。
执行单元:接收源向量地址、目的地址索引以及结构化向量访存标记;由ALU对接收的源向量地址进行地址生成逻辑运算得到向量化地址;执行单元再将目的地址索引、结构化向量访存标记以及向量化地址输入到访存单元。
访存单元:接收执行单元的输出;根据向量化地址直接访问外部存储阵列中的存储器;与现有技术不同在于,不再需要由现有技术中的向量处理器外部的专门的地址生成控制模块进行地址生成逻辑运算了,同时外部存储阵列中的存储器接收到各自相对应的地址,返回一组外部数据;外部数据不再进行数据拆拼逻辑的数据交互运算直接返回到访存单元;访存单元在与外部存储阵列进行通信的同时,将向量化地址根据目的地址索引写入到向量地址寄存器中。访存单元中的第二数据选择器,根据结构化向量访存标记,将外部数据输入到写回单元;访存单元同时将目的索引输入到写回单元。
写回单元:接收到访存单元输入的外部数据以及目的索引,根据目的索引将外部数据存储到寄存器组中的向量数据寄存器。
通过Load AR0,AR1,AR2,VR10的描述可知,本实施例中的向量处理器可以自行的生成向量化地址,直接与外部存储阵列通信,因此,本实施例中的向量处理器读取向量数据的速度更快,对向量数据的处理效率更高。与现有技术中由外部专门的地址生成控制逻辑进行地址生成逻辑运算传统的向量处理器相比,节省了硬件开销,降低了成本,同时打破了地址生成控制逻辑不能处理太复杂的逻辑运算的局限。
指令二:Shuffle VR10,VR11。
此指令意思为将向量寄存器VR10中的数据洗牌后存入到向量寄存器VR11中。
取指单元:读取指令Shuffle VR10,VR11,并将该指令输入到译码单元。
译码单元:第一译码逻辑读取指令,并获取源操作数VR10的索引10,目的操作数VR11的索引11;译码单元中的第一数据选择器根据结构化向量访存标记将索引10输入到寄存器组中的向量数据寄存器中,向量数据寄存器返回一组存储在向量寄存器VR10中的源向量数据。
执行单元:接收译码单元输出的源向量数据、目的索引11;有设置在执行单元中的ALU根据洗牌操作码的不同,对译码单元读取的VR10中寄存的源向量数据进行洗牌操作生成向量化数据,并将向量化数据传输到访存单元中;此外执行单元还将目的索引以及结构化向量访存标志与向量化数据一同输出到访存单元。
访存单元:接收执行单元输出的计算结果、目的索引、结构化向量访存标记等。位于访存单元中的第二数据选择器,根据结构化向量访存标记,将其接收到的计算结构中的向量数据传输到写回单元;访存单元同时将目的索引输入到写回单元。
写回单元:接受访存单元的各种输出,根据目的索引将向量数据写回到向量数据寄存器VR11中。
上述各单元通过相应的操作完成了向量数据交互操作中的洗牌指令Shuffle VR10,VR11。
Shuffle VR10,VR11是数据交互指令中的一种,数据交互的其他类型的指令也同样可以按照指令二的形式由向量处理器流水线结构中的各个单元各司其责依次完成。由此可见本实施例所述的向量处理器可以自行完成数据交互的功能,无需有设置在向量处理器与外部存储阵列之间的专门的数据拆拼逻辑来完成,且解决了数据拆拼模块带来的处理速度慢,处理的复杂度有限的局限。
指令三:Store VR11,AR3,AR4。
此指令的意思为将向量数据寄存器VR11中的数据洗牌后,存入到外部存储阵列中的寄存器AR3中,并将通过计算得到的向量地址存储到寄存器组的向量地址寄存器AR4中。
取指单元:读取并输出指令Store VR11,AR3,AR4;
译码单元:第一译码逻辑接收指令Store VR11,AR3,AR4,获取源操作数VR11的索引11;第二译码逻辑接收指令Store VR11,AR3,AR4,获取地址源操作数AR3的索引3、目的地址索引4以及结构化向量化标记;第一数据选择器根据结构化向量标记依次将源操作数索引、地址源操作数索引传输到寄存器组;向量数据寄存器根据源操作数索引输出源向量数据;向量地址寄存器组根据地址源操作数索引输出源向量地址;译码单元将源向量数据、源向量地址、目的地址索引输入到执行单元。
执行单元:由ALU依次接收源向量地址进行操作得到向量化地址;同时执行单元将读取的源向量地址通过计算得到向量化数据,并将目的地址索引以及结构化向量访存标记输入到后续的访存单元中。
访存单元:接收所述向量化地址、目的地址索引、向量化数据;将向量化地址根据目的地址索引写入到向量地址寄存器AR4中,并将向量化数据根据向量化地址写入外部存储阵列的存储器AR3中,完成访存功能。
写回单元:不进行相关动作。
在执行本指令时,向外部存储阵列中的存储器写入一个数据,在译码单元有第一译码逻辑获取了向量处理器内部的数据存储位置的索引,再由第二译码逻辑或取外部存储阵列相对应需要存储向量处理器输出数据的地址;然后将地址通过运算得到向量化地址。显然,采用本实施例的向量处理器对外部存储阵列中的存储器进行写入数据时具有快捷简便的优点。
由上述实施例可见,在与外部存储器进行通信时,在指令的取指、译码、执行、访存以及写回的阶段的流水线处理中,同步进行了地址生成逻辑的运算和数据交互逻辑运算,不需要额外的专门进行地址生成逻辑运算和数据交互运算,这样可以节省向量数据的处理时间,相应的不再需要额外的逻辑来将上述运算,节省了硬件开销,降低了成本。此外采用此方案进行地址生成逻辑运算和数据交互运算可以实现更为高级且更为复杂的运算,使用性能更高。
实施中,还可以在进行从外部存储阵列中读取数据或将向量化数据写入到外部存储阵列的时候,与外部存储阵列进行通信的向量化地址并联向外部阵列输出,同时访问多个外部存储阵列中的若干个存储器。采用向量化地址并联输出,同时访问多个存储器可以进一步提高了向量数据处理方法与外部存储阵列通信的时序性能,速度更快。
由上述实施例可见,在本发明实施例提供的向量处理器及其对向量数据的存取方法中,将存储器系统中的地址生成部件与处理器流水线统一设计、将数据交互部件与处理器流水线统一设计、以向量化的地址总线直接完成对存储器组访问,以及以结构化的地址生成逻辑和结构化的数据交互逻辑为主要特征的向量数据访存方法。
本发明实施例提供的向量处理器除了完成普通向量处理器的所有功能外,还可以实现以向量化地址直接与外部存储阵列进行通信,无需再由专门的地址生成控制逻辑、数据拆拼逻辑来进行地址生成运算和数据交互运算,具有数据处理快,效率高的特点。本发明实施例提供的向量处理器自身完成地址生成逻辑运算以及数据交互逻辑运算,由于执行单元中的ALU功能处理强大,处理速度快而且较传统的向量处理器可以处理更加复杂的地址生成逻辑运算和数据交互逻辑运算。同时也节省了专门设立的地址生成控制逻辑以及数据拆拼逻辑硬件投入成本。本发明实施例提供的向量处理器还采用向量化地址接口为向量处理器的地址输出接口,可以向外部存储阵列并联输出向量化地址,同时与外部存储阵列中的若干个存储器通信,进一步提高了向量处理器的访存速度。
本发明实施例提供的对向量数据的存取方法,在译码阶段读取地址源操作数并读取源向量地址或读取源操作数并读取源向量数据,执行阶段根据源向量地址生成向量化地址或根据源向量数据生成向量化地址,访存阶段可以以向量化地址直接与外部存储阵列中的存储器进行通信,需要拆拼的数据可以完成读取后再进行数据交互,具有向量数据处理速度快,效率高的特点。相对于传统方法可以进行更加复杂的地址生成逻辑运算以及数据交互逻辑运算。在进行数据存储、读取、交互的时候不需要专门的地址生成控制逻辑进行地址生成逻辑运算以及数据拆拼逻辑进行数据交互运算,具体的应用中节省了开销。还能向量化地址并联输出,同步同时可以与存储阵列中的若干个存储器通信,进一步提高了向量数据的处理速度。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种包括算术逻辑单元的向量处理器,其特征在于,还包括:地址生成逻辑单元、数据交互逻辑单元、地址寄存器组以及地址总线接口、数据总线接口,其中:
地址寄存器组,用于存储操作数以及向量化的地址数据,并将向量化的地址数据通过地址总线接口传送到存储器组,所述向量化的地址数据用于访问存储器组;
地址生成逻辑单元,用于通过算术逻辑单元,根据操作数计算出向量化的地址数据并存入地址寄存器组;
数据交互逻辑单元,用于通过算术逻辑单元,将通过数据总线接口从存储器组存取的向量数据进行拆拼运算。
2.如权利要求1所述的向量处理器,其特征在于,所述地址总线接口是将若干个向量化地址并联向外输出的向量化地址接口。
3.一种用如权利要求1-2任一所述的向量处理器进行向量数据存取的方法,其特征在于,在向量化的地址数据生成时,包括如下步骤:
向量处理器在处理器流水线的译码阶段解析到向量访存相关的指令时,根据指令的内容,从地址寄存器组中选择寄存器作为操作数;
向量处理器将所选择的操作数作为地址生成逻辑单元的输入数据;
与向量处理器共享算术逻辑单元的地址生成逻辑单元将输入数据传送到处理器流水线的执行阶段以使相关的计算单元根据指令格式进行相应的计算。
4.如权利要求3所述的方法,其特征在于,所述向量化的地址数据生成由对存储器组的访问行为触发。
5.如权利要求3或4所述的方法,其特征在于,对地址寄存器组中的寄存器的操作位于向量处理器的流水线结构中。
6.一种用如权利要求1-2任一所述的向量处理器进行向量数据存取的方法,其特征在于,在向量化的地址数据写回时,包括如下步骤:
在处理器流水线的访存阶段,地址生成逻辑单元将执行阶段的计算结果写回地址寄存器组中。
7.一种用如权利要求1-2任一所述的向量处理器进行向量数据存取的方法,其特征在于,在向量处理器对存储器组的向量数据进行存取时,包括如下步骤:
地址生成逻辑单元将向量化的地址数据通过并行化的地址总线接口传送到存储器组。
8.一种用如权利要求1-2任一所述的向量处理器进行向量数据交互的方法,其特征在于,在对向量数据进行交互时,包括如下步骤:
向量处理器解析所执行的指令内容,从向量数据寄存器组中选取未经排序的向量数据;
向量处理器将未经排序的向量数据送至数据交互逻辑单元;
与向量处理器共享算术逻辑单元的数据交互逻辑单元将未经排序的向量数据传送到处理器流水线的执行阶段以使相关的计算单元根据指令格式将所述向量数据生成经排序后的向量数据。
9.如权利要求8所述的方法,其特征在于,所述对向量数据进行交互由向量数据的交互运算触发。
10.一种向量数据存取装置,其特征在于,包括存储器组以及包括如权利要求1至2任一所述的向量处理器,其中:
存储器组通过地址总线接口、数据总线接口与向量处理器相连,通过地址总线接口传送需存取的向量数据的向量化的地址数据,通过数据总线接口传送需存取的向量数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210366032.4A CN103699360B (zh) | 2012-09-27 | 2012-09-27 | 一种向量处理器及其进行向量数据存取、交互的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210366032.4A CN103699360B (zh) | 2012-09-27 | 2012-09-27 | 一种向量处理器及其进行向量数据存取、交互的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103699360A true CN103699360A (zh) | 2014-04-02 |
CN103699360B CN103699360B (zh) | 2016-09-21 |
Family
ID=50360901
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210366032.4A Active CN103699360B (zh) | 2012-09-27 | 2012-09-27 | 一种向量处理器及其进行向量数据存取、交互的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103699360B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017124648A1 (zh) * | 2016-01-20 | 2017-07-27 | 北京中科寒武纪科技有限公司 | 一种向量计算装置 |
WO2017185392A1 (zh) * | 2016-04-26 | 2017-11-02 | 北京中科寒武纪科技有限公司 | 一种用于执行向量四则运算的装置和方法 |
WO2017185395A1 (zh) * | 2016-04-26 | 2017-11-02 | 北京中科寒武纪科技有限公司 | 一种用于执行向量比较运算的装置和方法 |
CN107315574A (zh) * | 2016-04-26 | 2017-11-03 | 北京中科寒武纪科技有限公司 | 一种用于执行矩阵乘运算的装置和方法 |
CN108491359A (zh) * | 2016-04-22 | 2018-09-04 | 北京中科寒武纪科技有限公司 | 子矩阵运算装置及方法 |
CN108733408A (zh) * | 2017-04-21 | 2018-11-02 | 上海寒武纪信息科技有限公司 | 计数装置及计数方法 |
CN109284822A (zh) * | 2017-07-20 | 2019-01-29 | 上海寒武纪信息科技有限公司 | 一种神经网络运算装置及方法 |
CN110689125A (zh) * | 2017-10-30 | 2020-01-14 | 上海寒武纪信息科技有限公司 | 计算装置 |
US10534841B2 (en) | 2016-04-22 | 2020-01-14 | Cambricon Technologies Corporation Limited | Appartus and methods for submatrix operations |
US10762164B2 (en) | 2016-01-20 | 2020-09-01 | Cambricon Technologies Corporation Limited | Vector and matrix computing device |
CN111651202A (zh) * | 2016-04-26 | 2020-09-11 | 中科寒武纪科技股份有限公司 | 一种用于执行向量逻辑运算的装置 |
CN111857822A (zh) * | 2016-08-05 | 2020-10-30 | 中科寒武纪科技股份有限公司 | 一种运算装置及其操作方法 |
US11507350B2 (en) | 2017-04-21 | 2022-11-22 | Cambricon (Xi'an) Semiconductor Co., Ltd. | Processing apparatus and processing method |
US11531541B2 (en) | 2017-04-19 | 2022-12-20 | Shanghai Cambricon Information Technology Co., Ltd | Processing apparatus and processing method |
US11990137B2 (en) | 2018-09-13 | 2024-05-21 | Shanghai Cambricon Information Technology Co., Ltd. | Image retouching method and terminal device |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1656495A (zh) * | 2002-05-24 | 2005-08-17 | 皇家飞利浦电子股份有限公司 | 标量/矢量处理器 |
US20060155953A1 (en) * | 2000-06-19 | 2006-07-13 | Koninklijke Philips Electronics N.V. | Method and apparatus for accessing multiple vector elements in parallel |
CN102156637A (zh) * | 2011-05-04 | 2011-08-17 | 中国人民解放军国防科学技术大学 | 向量交叉多线程处理方法及向量交叉多线程微处理器 |
CN102385502A (zh) * | 2010-08-25 | 2012-03-21 | 三星电子株式会社 | 用于存储器管理的处理器、设备和方法 |
-
2012
- 2012-09-27 CN CN201210366032.4A patent/CN103699360B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060155953A1 (en) * | 2000-06-19 | 2006-07-13 | Koninklijke Philips Electronics N.V. | Method and apparatus for accessing multiple vector elements in parallel |
CN1656495A (zh) * | 2002-05-24 | 2005-08-17 | 皇家飞利浦电子股份有限公司 | 标量/矢量处理器 |
CN102385502A (zh) * | 2010-08-25 | 2012-03-21 | 三星电子株式会社 | 用于存储器管理的处理器、设备和方法 |
CN102156637A (zh) * | 2011-05-04 | 2011-08-17 | 中国人民解放军国防科学技术大学 | 向量交叉多线程处理方法及向量交叉多线程微处理器 |
Cited By (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017124648A1 (zh) * | 2016-01-20 | 2017-07-27 | 北京中科寒武纪科技有限公司 | 一种向量计算装置 |
KR20200058562A (ko) * | 2016-01-20 | 2020-05-27 | 캠브리콘 테크놀로지스 코퍼레이션 리미티드 | 벡터 계산 장치 |
KR20190073593A (ko) * | 2016-01-20 | 2019-06-26 | 캠브리콘 테크놀로지스 코퍼레이션 리미티드 | 벡터 계산 장치 |
KR102185287B1 (ko) | 2016-01-20 | 2020-12-01 | 캠브리콘 테크놀로지스 코퍼레이션 리미티드 | 벡터 연산 장치 |
CN111580863B (zh) * | 2016-01-20 | 2024-05-03 | 中科寒武纪科技股份有限公司 | 一种向量运算装置及运算方法 |
US10762164B2 (en) | 2016-01-20 | 2020-09-01 | Cambricon Technologies Corporation Limited | Vector and matrix computing device |
CN111580865B (zh) * | 2016-01-20 | 2024-02-27 | 中科寒武纪科技股份有限公司 | 一种向量运算装置及运算方法 |
KR102304216B1 (ko) | 2016-01-20 | 2021-09-23 | 캠브리콘 테크놀로지스 코퍼레이션 리미티드 | 벡터 계산 장치 |
CN111580866A (zh) * | 2016-01-20 | 2020-08-25 | 中科寒武纪科技股份有限公司 | 一种向量运算装置及运算方法 |
CN111580864B (zh) * | 2016-01-20 | 2024-05-07 | 中科寒武纪科技股份有限公司 | 一种向量运算装置及运算方法 |
CN111580866B (zh) * | 2016-01-20 | 2024-05-07 | 中科寒武纪科技股份有限公司 | 一种向量运算装置及运算方法 |
CN111580865A (zh) * | 2016-01-20 | 2020-08-25 | 中科寒武纪科技股份有限公司 | 一种向量运算装置及运算方法 |
CN106990940B (zh) * | 2016-01-20 | 2020-05-22 | 中科寒武纪科技股份有限公司 | 一种向量计算装置及运算方法 |
CN106990940A (zh) * | 2016-01-20 | 2017-07-28 | 南京艾溪信息科技有限公司 | 一种向量计算装置 |
CN111580863A (zh) * | 2016-01-20 | 2020-08-25 | 中科寒武纪科技股份有限公司 | 一种向量运算装置及运算方法 |
CN111580864A (zh) * | 2016-01-20 | 2020-08-25 | 中科寒武纪科技股份有限公司 | 一种向量运算装置及运算方法 |
US10534841B2 (en) | 2016-04-22 | 2020-01-14 | Cambricon Technologies Corporation Limited | Appartus and methods for submatrix operations |
CN108491359A (zh) * | 2016-04-22 | 2018-09-04 | 北京中科寒武纪科技有限公司 | 子矩阵运算装置及方法 |
CN107315574B (zh) * | 2016-04-26 | 2021-01-01 | 安徽寒武纪信息科技有限公司 | 一种用于执行矩阵乘运算的装置和方法 |
US11436301B2 (en) | 2016-04-26 | 2022-09-06 | Cambricon Technologies Corporation Limited | Apparatus and methods for vector operations |
CN111651202B (zh) * | 2016-04-26 | 2023-09-22 | 中科寒武纪科技股份有限公司 | 一种用于执行向量逻辑运算的装置 |
WO2017185392A1 (zh) * | 2016-04-26 | 2017-11-02 | 北京中科寒武纪科技有限公司 | 一种用于执行向量四则运算的装置和方法 |
US11507640B2 (en) | 2016-04-26 | 2022-11-22 | Cambricon Technologies Corporation Limited | Apparatus and methods for vector operations |
CN107315574A (zh) * | 2016-04-26 | 2017-11-03 | 北京中科寒武纪科技有限公司 | 一种用于执行矩阵乘运算的装置和方法 |
US10997276B2 (en) | 2016-04-26 | 2021-05-04 | Cambricon Technologies Corporation Limited | Apparatus and methods for vector operations |
US11100192B2 (en) | 2016-04-26 | 2021-08-24 | Cambricon Technologies Corporation Limited | Apparatus and methods for vector operations |
CN111651202A (zh) * | 2016-04-26 | 2020-09-11 | 中科寒武纪科技股份有限公司 | 一种用于执行向量逻辑运算的装置 |
WO2017185395A1 (zh) * | 2016-04-26 | 2017-11-02 | 北京中科寒武纪科技有限公司 | 一种用于执行向量比较运算的装置和方法 |
US11341211B2 (en) | 2016-04-26 | 2022-05-24 | Cambricon Technologies Corporation Limited | Apparatus and methods for vector operations |
CN111857822B (zh) * | 2016-08-05 | 2024-04-05 | 中科寒武纪科技股份有限公司 | 一种运算装置及其操作方法 |
CN111857822A (zh) * | 2016-08-05 | 2020-10-30 | 中科寒武纪科技股份有限公司 | 一种运算装置及其操作方法 |
US11531541B2 (en) | 2017-04-19 | 2022-12-20 | Shanghai Cambricon Information Technology Co., Ltd | Processing apparatus and processing method |
US11531540B2 (en) | 2017-04-19 | 2022-12-20 | Cambricon (Xi'an) Semiconductor Co., Ltd. | Processing apparatus and processing method with dynamically configurable operation bit width |
US11698786B2 (en) | 2017-04-19 | 2023-07-11 | Shanghai Cambricon Information Technology Co., Ltd | Processing apparatus and processing method |
US11720353B2 (en) | 2017-04-19 | 2023-08-08 | Shanghai Cambricon Information Technology Co., Ltd | Processing apparatus and processing method |
US11734002B2 (en) | 2017-04-19 | 2023-08-22 | Shanghai Cambricon Information Technology Co., Ltd | Counting elements in neural network input data |
CN109324826B (zh) * | 2017-04-21 | 2021-03-26 | 上海寒武纪信息科技有限公司 | 计数装置和计数方法 |
US11507350B2 (en) | 2017-04-21 | 2022-11-22 | Cambricon (Xi'an) Semiconductor Co., Ltd. | Processing apparatus and processing method |
CN109324826A (zh) * | 2017-04-21 | 2019-02-12 | 上海寒武纪信息科技有限公司 | 计数装置和计数方法 |
CN108733408A (zh) * | 2017-04-21 | 2018-11-02 | 上海寒武纪信息科技有限公司 | 计数装置及计数方法 |
CN109284822B (zh) * | 2017-07-20 | 2021-09-21 | 上海寒武纪信息科技有限公司 | 一种神经网络运算装置及方法 |
US11481215B2 (en) | 2017-07-20 | 2022-10-25 | Cambricon (Xi'an) Semiconductor Co., Ltd. | Calculation method and related product |
CN109284822A (zh) * | 2017-07-20 | 2019-01-29 | 上海寒武纪信息科技有限公司 | 一种神经网络运算装置及方法 |
US11922132B2 (en) | 2017-10-30 | 2024-03-05 | Shanghai Cambricon Information Technology Co., Ltd. | Information processing method and terminal device |
CN110689125A (zh) * | 2017-10-30 | 2020-01-14 | 上海寒武纪信息科技有限公司 | 计算装置 |
US11990137B2 (en) | 2018-09-13 | 2024-05-21 | Shanghai Cambricon Information Technology Co., Ltd. | Image retouching method and terminal device |
US11996105B2 (en) | 2018-09-13 | 2024-05-28 | Shanghai Cambricon Information Technology Co., Ltd. | Information processing method and terminal device |
Also Published As
Publication number | Publication date |
---|---|
CN103699360B (zh) | 2016-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103699360A (zh) | 一种向量处理器及其进行向量数据存取、交互的方法 | |
CN106940815B (zh) | 一种可编程卷积神经网络协处理器ip核 | |
CN107301455B (zh) | 用于卷积神经网络的混合立方体存储系统及加速计算方法 | |
CN111512292A (zh) | 用于可配置空间加速器中的非结构化数据流的装置、方法和系统 | |
JP4527571B2 (ja) | 再構成可能演算処理装置 | |
US20180143834A1 (en) | Reconfigurable microprocessor hardware architecture | |
JP2000122864A (ja) | デ―タ処理システムおよび集合化を用いた命令システム | |
Tan et al. | Stitch: Fusible heterogeneous accelerators enmeshed with many-core architecture for wearables | |
CN102043761A (zh) | 一种基于可重构技术的傅立叶变换的实现方法 | |
CN112579159A (zh) | 用于矩阵操作加速器的指令的装置、方法和系统 | |
CN102402415B (zh) | 一种动态可重构阵列内数据缓存的装置及方法 | |
CN101739235A (zh) | 将32位dsp与通用risc cpu无缝混链的处理器装置 | |
CN102141974A (zh) | 一种多核处理器核间通信方法及其电路结构 | |
CN102306139A (zh) | 用于ofdm无线通信系统的异构多核数字信号处理器 | |
CN103793208A (zh) | 矢量dsp 处理器和协处理器协同运作的数据处理系统 | |
Abdelhamid et al. | A highly-efficient and tightly-connected many-core overlay architecture | |
CN110503179A (zh) | 计算方法以及相关产品 | |
CN104346132A (zh) | 应用于智能卡虚拟机运行的控制装置及智能卡虚拟机 | |
CN110799955B (zh) | 具有预编程功能的高速计算机加速器 | |
CN110704109A (zh) | 一种椭圆曲线密码协处理器 | |
JP2015520450A (ja) | ミドルストレータム演算の並列計算による計算の処理速度を上げるための方法及び装置(ユニバーサルマルチファンクションアクセラレータ) | |
Stepchenkov et al. | Recurrent data-flow architecture: features and realization problems | |
CN111124360B (zh) | 一种可配置矩阵乘法的加速器 | |
CN104035896A (zh) | 一种适用于2.5d多核系统的融合存储器的片外加速器 | |
US10445099B2 (en) | Reconfigurable microprocessor hardware architecture |
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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 100098 Beijing Haidian District North Fourth Ring West Road No. 9, 18th Floor 1811 Patentee after: Beijing Zhongke Polytron Technologies Inc Address before: 100190, Beijing Haidian District Academy of Sciences South Road No. 6 Xiang Xiang, a number of computing Patentee before: Beijing Zhongke Jingshang Technology Co., Ltd. |