用于矢量处理器中的收集/分散操作的方法和设备技术

技术编号:39422322 阅读:9 留言:0更新日期:2023-11-19 16:10
在一个实施方式中,一种矢量处理器收集/分散设备包括多个矢量端口和随机访问存储器,其中该多个矢量端口与该随机访问存储器通信,并且其中该多个矢量端口中的一者或多者使用与该随机访问存储器通信的地址寄存器中的一者或多者和该步幅寄存器中的一者或多者以允许随机访问存储器内容的收集/分散。许随机访问存储器内容的收集/分散。许随机访问存储器内容的收集/分散。

【技术实现步骤摘要】
【国外来华专利技术】用于矢量处理器中的收集/分散操作的方法和设备
[0001]相关申请
[0002]本专利申请要求由同一专利技术人于2021年4月27日提交的名称为“用于矢量处理器中的收集/分散操作的方法和设备(Method and Apparatus for Gather/Scatter operations in aVector Processor)”的待审美国专利申请序列号63/180,562和由同一专利技术人于2022年2月11日提交的名称为“用于矢量处理器中的收集/分散操作的方法和设备(Method and Apparatus for Gather/Scatter Operations in a Vector Processor)”的待审美国专利申请序列号17/669,995的优先权,这些申请以引用方式并入本文。


[0003]本专利技术方法和设备涉及矢量处理器。更具体地,本专利技术方法和设备涉及用于矢量处理器中的收集/分散操作的方法和设备。

技术介绍

[0004]用于通用处理器的传统收集/分散操作是复杂、繁琐、缓慢的,并且这对构建用于超高速的处理器,诸如矢量处理器造成严重限制,因为收集/分散操作不能跟上矢量处理器的速度。矢量处理器以高速率访问数据,因此非连续数据变成可导致减慢矢量和矩阵处理的速率的问题。
[0005]这提出了一个技术问题,该技术问题需要使用技术手段的技术解决方案。

技术实现思路

[0006]矢量处理器收集/分散设备具有多个矢量端口和随机访问存储器(RAM),其中多个矢量端口与RAM通信,并且其中多个矢量端口中的一者或多者使用与RAM通信的地址寄存器中的一者或多者和步幅寄存器中的一者或多者。
[0007]一种构建具有多个矢量端口和RAM的矢量处理器收集/分散设备的方法,其中多个矢量端口与RAM通信,并且其中多个矢量端口中的一者或多者使用与RAM通信的地址寄存器中的一者或多者和步幅寄存器中的一者或多者。
附图说明
[0008]本专利技术所公开的技术在附图的各图中以示例而非限制的方式示出。相同编号的项目不必相同。
[0009]附图示出了本专利技术所公开的技术的各种非排他性示例。
[0010]图1在100处整体示出了框图概述。
[0011]图2在200处整体示出了框图概述。
[0012]图3在300处整体示出了4
×
4矩阵。
[0013]图4在400处整体示出了存储器布置。
[0014]图5在500处整体示出了3个端口的框图。
[0015]图6在600处整体示出了读取端口操作的一个实施方式的流程图。
[0016]图7在700处整体示出了端口写入操作的一个实施方式的流程图。
[0017]图8在800处整体示出了支持2个读取端口和1个写入端口的存储器结构。
[0018]图9在900处整体示出了存储器,其中向该存储器添加了特定结构。
[0019]图10在1000处整体示出了将逻辑地址转换为特定RAM存储体和RAM物理地址的实施方式。
[0020]图11在1100处整体示出了示出每个时钟操作支持两个操作数读取和一个结果写入的读取端口操作的实施方式。
[0021]图12在1200处整体示出了示出每个时钟操作支持两个操作数读取和一个结果写入的写入端口操作的实施方式。
[0022]图13在1300处整体示出了示出读取端口操作的加速操作模式的实施方式。
[0023]图14在1400处整体示出了示出写入端口操作的加速操作模式的实施方式。
[0024]图15在1500处整体示出了示出8个矢量算术逻辑单元(矢量ALU)的实施方式。
[0025]图16在1600处整体示出了示出各种地址和步幅值如何导致不同值可从存储器访问的实施方式。
具体实施方式
[0026]本专利技术公开了用于矢量处理器中的收集/分散操作的方法和设备。
[0027]收集和分散(收集/分散)用于指计算系统中的数据处理,其中在处理数据之前需要从各种存储器源收集数据,并且然后在数据已经被处理之后需要将数据分散到存储器中的各种目的地。
[0028]在矢量和阵列形式的数据的数学处理中,操作(诸如阵列乘法)需要以行和列矢量的形式获取数据,并且这些行和列矢量在存储器中不一定是连续的。但是矢量处理器以高速处理连续的矢量。因此,收集操作需要向算术元素呈现连续的数据流,其中所获取的数据的源可以是或可以不是连续的。算术元素的输出各自均为来自算术元素的连续数据流,并且需要分散到存储器中可能是或可能不是连续的位置。
[0029]图1在100处整体示出了框图概述。值得注意的是,所公开的技术支持每个时钟n*(2个读取和1个写入),其中n=>1。而且,该技术通过全矢量支持每个时钟(每一个时钟、没有中断)8个ALU(算术逻辑单元)操作。另外,ALU操作可以是简单的ADD或复杂的SGMD(Sigmoid函数),但不限于此。
[0030]在104处是矢量控制,其示出在经由接口107与随机访问存储器(RAM)102通信的第一端口106处的具有地址寄存器(

addr)152和步幅寄存器(

stride)154的操作数1(Opnd 1)150。矢量控制104另外示出了在经由接口109与RAM 102通信的第二端口108处的具有地址寄存器(

addr)158和步幅寄存器(

stride)160的操作数2(Opnd 2)156。矢量控制104另外示出了在经由接口111与RAM 102通信的第三端口110处的具有地址寄存器(

addr)164和步幅寄存器(

stride)166的结果(Result)162。
[0031]在端口(例如,端口106)内,

addr 152和

stride被存储在寄存器中。即,端口106具有地址寄存器(对于

addr 152而言)和步幅寄存器(对于

stride 154而言)。
[0032]矢量端口是控制逻辑,其为单个请求代理(诸如Opnd 1 150)提供对RAM的访问。矢
量端口包括使用初始地址、步幅和长度来执行地址生成的逻辑以及对存储器访问进行排序的逻辑。
[0033]接口107是从矢量端口106通信到RAM 102中的链路,因为其向RAM 102提供存储器地址和读取请求信号(请求信号未示出)。所提供的存储器地址由以下生成(生成的地址):地址(

addr)152和递增所生成地址的步幅值(

stride)154以及指向矢量的存储器位置(即,Opnd 1150)的待执行的存储器访问数的任选长度(未示出)。
[0034]接口109是从矢量端口108通信到RAM 102中的链路,因为其将用于操作数2(Opn本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种矢量处理器收集/分散设备,包括:多个矢量端口;随机访问存储器;所述多个矢量端口与所述随机访问存储器通信;并且其中所述多个矢量端口中的一者或多者使用地址寄存器中的一者或多者和步幅寄存器中的一者或多者以生成所述随机访问存储器的地址。2.根据权利要求1所述的矢量处理器收集/分散设备,其中在执行收集和分散操作时,所述多个矢量端口能够支持所述随机访问存储器的每个时钟周期至多两次读取和一次写入。3.根据权利要求1所述的矢量处理器收集/分散设备,其中所述多个矢量端口能够支持所述随机访问存储器的每个时钟周期十六次读取和八次写入。4.根据权利要求1所述的矢量处理器收集/分散设备,其中所述地址寄存器中的一者或多者和所述步幅寄存器中的一者或多者允许沿序列访问存储在所述随机访问存储器中的矩阵,所述序列由以下各项中的一者或多者组成:沿矩阵的行、沿所述矩阵的列以及沿所述矩阵的对角线。5.一种方法,包括:(a)检查读取端口起始信号,并且当接收到所述读取端口起始信号时将递增计数设置为零;(b)使用端口的地址寄存器启动存储器读取,并且将所述递增计数设置为递增计数+1;(c)通过端口的步幅寄存器使所述端口的地址寄存器递增;(d)检查所述递增计数是否大于或等于端口的长度寄存器,并且当不大于或等于所...

【专利技术属性】
技术研发人员:C
申请(专利权)人:微芯片技术股份有限公司
类型:发明
国别省市:

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

1