一种用于执行向量最大值最小值运算的装置和方法制造方法及图纸

技术编号:16499501 阅读:37 留言:0更新日期:2017-11-04 11:07
本发明专利技术提供了一种执行向量最大值最小值运算的装置及方法,用于配合相应的指令集,求取向量中的最大值元素和最小值元素,装置包括存储单元、寄存器单元和向量最大值最小值运算单元,存储单元中存储有向量,寄存器单元中存储有向量存储的地址,向量最大值最小值运算单元根据指令在寄存器单元中获取向量地址,然后,根据该向量地址在存储单元中获取相应的向量,接着,根据获取的向量进行向量最大值最小值运算,得到运算结果。本发明专利技术将参与计算的向量数据暂存在高速暂存存储器上,使得执行向量最大值最小值运算过程中可以更加灵活有效地支持不同宽度的数据,提升包含向量最大值最小值运算应用的执行性能。

A method for executing vector maximumminimum device and method of operation

The present invention provides an implementation of the vector maximumminimum device and method for the operation, with the corresponding instruction set, calculate the maximum and minimum values of elements of elements in the vector. The device comprises a storage unit, register unit vector and the maximum and minimum value calculation unit, storage unit in vector storage register a unit vector storage address vector, the maximum and minimum value calculation unit according to the instruction fetch address in the register unit vector, then, according to the vector address to get the corresponding vector in the storage unit, then, according to the obtained vector vector maximum and minimum value calculation, computing results. The invention will participate in the calculation of vector data is temporarily stored in the scratchpad memory, making the implementation of vector maximumminimum can support different width more flexibly and effectively in the process of operation data, enhance the vector containing the maximum and minimum value performance computing applications.

【技术实现步骤摘要】
一种用于执行向量最大值最小值运算的装置和方法
本专利技术涉及一种向量最大值最小值运算装置及方法,用于根据向量最大值最小值运算指令执行向量最大值最小值运算,求取向量中的最大值元素和最小值元素。
技术介绍
在计算机领域应用中,与向量运算相关的应用十分普遍。以目前的热门应用领域人工智能中的主流算法机器学习算法为例,几乎所有已有的经典算法中需要求取向量最大值最小值运算。对于求输入向量的最大值,max_out←max(Vector_in[i][v_size]),其中的Vector_in[i]是输入向量的起始地址,v_size是输入向量的长度,max_out是保存最大值的寄存器。指令每一个域只可以是寄存器。对于求输入向量的最小值,max_out←min(Vector_in[i][v_size])其中的Vector_in[i]是输入向量的起始地址,v_size是输入向量的长度,min_out是保存最大值的寄存器。指令每一个域只可以是寄存器。在现有技术中,一种进行向量最大值最小值运算的已知方案是使用通用处理器,该方法通过通用寄存器堆和通用功能部件来执行通用指令,从而执行向量最大值最小值运算。然而,该方法的缺点之一是单个通用处理器多用于标量计算,在进行向量最大值最小值运算时运算性能较低。而使用多个通用处理器并行执行时,通用处理器之间的相互通讯又有可能成为性能瓶颈。在另一种现有技术中,使用图形处理器(GPU)来进行向量计算,其中,通过使用通用寄存器堆和通用流处理单元执行通用SIMD指令来进行向量最大值最小值运算。然而,上述方案中,GPU片上缓存太小,在进行大规模向量最大值最小值运算时需要不断进行片外数据搬运,片外带宽成为了主要性能瓶颈。在另一种现有技术中,使用专门定制的向量最大值最小值运算装置来进行向量计算,其中,使用定制的寄存器堆和定制的处理单元进行向量最大值最小值运算。然而,目前已有的专用向量最大值最小值运算装置受限于寄存器堆,不能够灵活地支持不同长度的向量最大值最小值运算。
技术实现思路
(一)要解决的技术问题本专利技术的目的在于,提供一种向量最大值最小值运算装置及方法,解决现有技术中存在的受限于片间通讯、片上缓存不够、支持的向量长度不够灵活等问题。(二)技术方案本专利技术提供一种向量最大值最小值运算装置,用于根据向量最大值最小值运算指令求取向量中最大值元素和最小值元素,包括:存储单元,用于存储向量;寄存器单元,用于存储向量地址,其中,向量地址为向量在存储单元中存储的地址;向量最大值最小值运算单元,用于获取向量最大值最小值运算指令,根据向量最大值最小值运算指令在寄存器单元中获取向量地址,然后,根据该向量地址在存储单元中获取相应的向量,接着,根据获取的向量进行求向量最大值最小值运算,得到向量中最大值元素和最小值元素。本专利技术还提供一种向量最大值最小值运算方法,用于根据向量最大值最小值运算指令求取向量中最大值元素和最小值元素,方法包括:S1,存储向量;S2,存储向量地址;S3,获取向量最大值最小值运算指令,根据向量最大值最小值运算指令获取向量地址,然后,根据该向量地址获取存储的向量,接着,根据获取的向量进行向量最大值最小值运算,得到向量最大值最小值运算结果。(三)有益效果本专利技术提供的向量最大值最小值运算装置及方法,将参与计算的向量数据暂存在高速暂存存储器(ScratchpadMemory)上。在仅发送同一条指令的情况下,向量最大值最小值运算单元中可以更加灵活有效地支持不同宽度的数据,并可以解决数据存储中的相关性问题,从而提升了包含大量向量计算任务的执行性能,本专利技术采用的指令具有精简的格式,使得指令集使用方便、支持的向量长度灵活。本专利技术可以应用于以下(包括但不限于)场景中:数据处理、机器人、电脑、打印机、扫描仪、电话、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备等各类电子产品;飞机、轮船、车辆等各类交通工具;电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机等各类家用电器;以及包括核磁共振仪、B超、心电图仪等各类医疗设备。附图说明图1是本专利技术提供的向量最大值最小值运算装置的结构示意图。图2是本专利技术提供的指令集的格式示意图。图3是本专利技术实施例提供的向量最大值最小值运算装置的结构示意图。图4是本专利技术实施例提供的向量最大值最小值运算装置执行向量逻辑指令的流程图。具体实施方式本专利技术提供一种向量最大值最小值运算装置及配套指令集,包括存储单元、寄存器单元和向量最大值最小值运算单元,存储单元中存储有向量,寄存器单元中存储有向量存储的地址向量最大值最小值运算单元根据向量最大值最小值运算指令在寄存器单元中获取向量地址,然后,根据该向量地址在存储单元中获取相应的向量,接着,根据获取的向量进行向量最大值最小值运算,得到向量最大值最小值运算结果。本专利技术将参与计算的向量数据暂存在高速暂存存储器上,使得向量最大值最小值运算过程中可以更加灵活有效地支持不同宽度的数据,提升包含大量向量计算任务的执行性能。图1是本专利技术提供的向量最大值最小值运算装置的结构示意图,如图1所示,向量最大值最小值运算装置包括:存储单元,用于存储向量,在一种实施方式中,该存储单元可以是高速暂存存储器,能够支持不同大小的向量数据;本专利技术将必要的计算数据暂存在高速暂存存储器(ScratchpadMemory)上,使本运算装置在进行向量最大值最小值运算过程中可以更加灵活有效地支持不同宽度的数据。存储单元可以通过各种不同存储器件(SRAM、eDRAM、DRAM、忆阻器、3D-DRAM或非易失存储等)实现。寄存器单元,用于存储向量地址,其中,向量地址为向量在存储单元中存储的地址;在一种实施方式中,寄存器单元可以是标量寄存器堆,提供运算过程中所需的多个标量寄存器,标量寄存器不只存放向量地址,还存放有标量数据。当涉及到向量与标量的运算时,向量最大值最小值运算单元不仅要从寄存器单元中获取向量地址,还要从寄存器单元中获取相应的标量。向量最大值最小值运算单元,用于获取向量最大值最小值运算指令,根据向量最大值最小值运算指令在所述寄存器单元中获取向量地址,然后,根据该向量地址在存储单元中获取相应的向量,接着,根据获取的向量进行向量最大值最小值运算,得到向量中的最大值元素和最小值元素,并将向量最大值最小值运算结果存储于存储单元中。需要说明的是,在向量中求取最大值元素和最小值元素可以通过冒泡排序等算法实现,这些均为现有的公知算法,再此就不再赘述。根据本专利技术的一种实施方式,向量最大值最小值运算装置还包括:指令缓存单元,用于存储待执行的向量最大值最小值运算指令。指令在执行过程中,同时也被缓存在指令缓存单元中,当一条指令执行完之后,如果该指令同时也是指令缓存单元中未被提交指令中最早的一条指令,该指令将被提交,一旦提交,该条指令进行的操作对装置状态的改变将无法撤销。在一种实施方式中,指令缓存单元可以是重排序缓存。根据本专利技术的一种实施方式,向量最大值最小值运算装置还包括:指令处理单元,用于从指令缓存单元获取向量最大值最小值运算指令,并对该向量最大值最小值运算指令进行处理后,提供给所述向量最大值最本文档来自技高网
...
一种用于执行向量最大值最小值运算的装置和方法

【技术保护点】
一种向量最大值最小值运算装置,用于根据向量最大值最小值运算指令求取向量中最大值元素和最小值元素,包括:存储单元,用于存储向量;寄存器单元,用于存储向量地址,其中,向量地址为向量在存储单元中存储的地址;向量最大值最小值运算单元,用于获取向量最大值最小值运算指令,根据向量最大值最小值运算指令在寄存器单元中获取向量地址,然后,根据该向量地址在存储单元中获取相应的向量,接着,根据获取的向量进行向量最大值最小值运算,得到向量中最大值元素和最小值元素。

【技术特征摘要】
1.一种向量最大值最小值运算装置,用于根据向量最大值最小值运算指令求取向量中最大值元素和最小值元素,包括:存储单元,用于存储向量;寄存器单元,用于存储向量地址,其中,向量地址为向量在存储单元中存储的地址;向量最大值最小值运算单元,用于获取向量最大值最小值运算指令,根据向量最大值最小值运算指令在寄存器单元中获取向量地址,然后,根据该向量地址在存储单元中获取相应的向量,接着,根据获取的向量进行向量最大值最小值运算,得到向量中最大值元素和最小值元素。2.根据权利要求1所述的向量最大值最小值运算装置,其特征在于,还包括:指令缓存单元,用于存储待执行的向量最大值最小值运算指令。3.根据权利要求2所述的向量最大值最小值运算装置,其特征在于,还包括:指令处理单元,用于从指令缓存单元获取向量最大值最小值运算指令,并对该向量最大值最小值运算指令进行处理后,提供给所述向量最大值最小值运算单元。4.根据权利要求3所述的向量最大值最小值运算装置,其特征在于,所述指令处理单元包括:取指模块,用于从指令缓存单元中获取向量最大值最小值运算指令;译码模块,用于对获取的向量最大值最小值运算指令进行译码;指令队列,用于对译码后的向量最大值最小值运算指令进行顺序存储。5.根据权利要求1所述的向量最大值最小值运算装置,其特征在于,还包括:依赖关系处理单元,用于在所述向量最大值最小值运算单元获取向量最大值最小值运算指令前,用于在向量最大值最小值运算单元获取向量最大值最小值运算指令前,判断该向量最大值最小值运算指令与前一向量最大值最小值运算指令是否访问相同的向量,若是,将该向量最大值最小值运算指令存储在一存储队列中,待前一向量最大值最小值运算指令执行完毕后,将存储队列中的该向量最大值最小值运算指令提供给所述向量最大值最小值运算单元;否则,直接将该向量最大值最小值运算指令提供给所述向量最大值最小值运算单元。6.根据权利要求1所述的向量最大值最小值运算装置,其特征在于,所述存储单元还用于存储求得的最大值元素和最小值元素。7.根据权利要求6所述的向量最大值最小值运算装置,其特征在于,还包括:输入输出单元,用于将向量存储于所述存储单元,...

【专利技术属性】
技术研发人员:支天刘少礼郭崎陈天石陈云霁
申请(专利权)人:北京中科寒武纪科技有限公司
类型:发明
国别省市:北京,11

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

1