一种向量处理器及相关数据访存方法技术

技术编号:30513048 阅读:23 留言:0更新日期:2021-10-27 22:55
本发明专利技术实施例公开了一种向量处理器及相关数据访存方法,其特征在于,包括:向量访存单元,所述向量访存单元与存储器耦合,所述存储器包括多个存储块Block;所述向量访存单元,用于:接收访存指令;所述访存指令包括N个访存请求;N为大于0的整数;根据所述N个访存请求分别得到N个访存请求地址;确定所述N个访存请求地址所属的地址范围在所述多个Block中所对应的M个Block;M为大于0且小于或等于N的整数;生成与所述M个Block对应的M个总线请求,并向所述存储器发送所述M个总线请求。采用本发明专利技术实施例能够提升向量处理器访存数据的性能。例能够提升向量处理器访存数据的性能。例能够提升向量处理器访存数据的性能。

【技术实现步骤摘要】
一种向量处理器及相关数据访存方法


[0001]本专利技术涉及计算机
,尤其涉及一种向量处理器及相关数据访存方法。

技术介绍

[0002]随着各个领域的数据规模以及复杂度的不断增加,对处理器计算能力、处理性能的要求也越来越高。向量处理器系统(Vector Processor System,VPS),是面向向量型并行计算,以流水线结构为主的并行处理系统。采用先行控制和重叠操作技术、运算流水线、交叉访问的并行存储器等并行处理结构,对提高运算速度有重要作用。
[0003]其中,向量处理器是一种能够实现直接操作一维数组(向量)指令集的中央处理器,例如向量处理器可同时执行一条向量指令中所包含的多个操作请求。在向量处理器中多个处理单元可共享同一套取址、译码、地址计算和访存等控制部件,进而能够以较低的硬件开销充分开发应用程序的并行性。目前,如何为向量处理器提供高效灵活的数据供给支持是其充分发挥运算能力的表征。向量访存单元是向量处理器中用于从存储器中读数据或向存储器写入数据的单元。向量访存单元可通过地址计算单元计算得到访问存储器的地址,然后高带宽将数据在存储器和向量寄存器中搬移。但是在实际应用中发现,向量处理器访问存储器操作一般会消耗较长时间,从而降低向量处理器性能。因此,如何提升向量处理器访存数据性能是亟待解决的问题。

技术实现思路

[0004]本专利技术实施例提供一种向量处理器及相关数据访存方法,以提升向量处理器访存数据的性能。
[0005]第一方面,本专利技术实施例提供了一种向量处理器,其特征在于,包括:向量访存单元,所述向量访存单元与存储器耦合,所述存储器包括多个存储块Block;所述向量访存单元,用于:接收访存指令;所述访存指令包括N个访存请求;N为大于0的整数;根据所述N个访存请求分别得到N个访存请求地址;确定所述N个访存请求地址所属的地址范围在所述多个Block中所对应的M个Block;M为大于0且小于或等于N的整数;生成与所述M个Block对应的M个总线请求,并向所述存储器发送所述M个总线请求。
[0006]在现有技术中,当向量处理器中的向量访存单元接收到访存指令,由于每条访存指令中可包括多个访存请求,因此向量访存单元可基于该访存指令中的访存请求得到多个访存请求地址,其中每个访存请求地址对应存储器中的一个存储块Block,进一步针对每个访存请求地址向存储器发送相应的总线请求,进而可实现向量处理器从存储器读数据或向存储器写数据。例如,假设访存指令中包括2个访存请求,在向量访存单元接收到该访存指令后,基于该访存指令中的2个访存请求得到2个访存请求地址,如地址0、地址5,又假设存储器中的Block0对应的地址范围为地址0

地址5,则上述地址0对应Block0,地址5对应Block0,进一步地,向量访存单元基于地址0向存储器发送一个访存Block0的总线请求,然后再基于地址5向存储器发送一个访存Block0的总线请求。即现有技术中存在针对不同访
存请求需要重复访问同一个Block而导致向量处理器读/写数据效率低的问题。
[0007]而在本专利技术实施例中,向量处理器中的向量访存单元在接收到访存指令后,首先根据访存指令中的访存请求得到多个访存请求地址,然后确定这些访存请求地址所对应的Block,进而可以将访存请求地址属于同一个Block的不同的访存请求进行融合(即对于一条访存指令来说,一个Block最终对应一个总线请求),生成针对每个Block的总线请求并向存储器发送这些总线请求,从而降低针对单个Block的重复访存次数。例如,假设访存指令中包括2个访存请求,在向量访存单元接收到该访存指令后,基于该访存指令中的2个访存请求得到2个访存请求地址,如地址0、地址5,又假设存储器中的Block0对应着地址范围为地址0

地址5,则上述地址0、地址5都对应着Block0,然后将地址0和地址5所对应的访存请求进行融合并生成一个访存Block0的总线请求,进而仅向存储器发送一个访存Block0的总线请求。因此本专利技术实施例通过对向量处理器中的向量访存单元进行改进,能够在向量访存单元从存储器读数据或向存储器写数据时,避免发送过多的总线请求去重复访问同一个存储块,进而从一定程度上减少了数据的访存次数,从而提高了向量处理器的访存性能和用户体验。
[0008]在一种可能的实现方式中,所述向量访存单元包括地址运算单元和请求融合单元;所述向量访存单元,具体用于:通过所述地址运算单元接收所述访存指令;所述访存指令包括所述N个访存请求;根据所述N个访存请求分别得到N个访存请求地址,并向所述请求融合单元发送所述N个访存请求地址;通过所述请求融合单元接收所述地址运算单元发送的所述N个访存请求地址,并确定所述N个访存请求地址所属的地址范围在所述多个Block中所对应的所述M个Block;生成与所述M个Block对应的所述M个总线请求,并向所述存储器发送所述M个总线请求。
[0009]在本专利技术实施例中,向量处理器中的向量访存单元包括地址运算单元和请求融合单元,其中,在地址运算单元接收到访存指令后,首先根据访存指令中的访存请求得到多个访存请求地址,并向请求融合单元发送得到的访存请求地址。进一步地,请求融合单元接收地址运算单元发送的多个访存请求地址并确定这些访存请求地址所对应的Block,进而请求融合单元可以将访存请求地址属于同一个Block的不同的访存请求进行融合(即对于一条访存指令来说,一个Block最终对应一个总线请求),生成针对每个Block的总线请求并向存储器发送这些总线请求,从而降低针对单个Block的重复访存次数。因此,在向量访存单元从存储器读数据或向存储器写数据时,可避免发送过多的总线请求去重复访问同一个存储块,进而从一定程度上减少了数据的访存次数,从而提高了向量处理器的访存性能和用户体验。
[0010]在一种可能的实现方式中,所述地址运算单元包括L个地址运算器;每个所述地址运算器每个时钟周期基于一个所述访存请求得到一个所述访存请求地址;L为大于1的整数。
[0011]在本专利技术实施例中,由于向量访存单元中的地址运算单元可以包括多个地址运算器,因此这些地址运算器可以在同一个时钟周期并行计算不同访存请求的访存请求地址,从而提升计算访存请求地址的效率,进而提升向量处理器的访存性能和用户体验。
[0012]在一种可能的实现方式中,所述向量访存单元,具体用于:通过所述地址运算单元,将所述N个访存请求划分为S个请求集合;S为大于1的整数;每个所述请求集合包括的所
述访存请求小于或等于L个;分别根据所述S个请求集合得到S个访存请求地址集合;每个所述访存请求地址集合包括对应的请求集合中包括的访存请求的请求地址。
[0013]在本专利技术实施例中,过多的地址运算器会增加硬件的面积开销,因此在设计地址运算单元时可以合理配置L个地址运算器。当访存请求的数量大于地址运算器的个数时,可将访存请求进行分组得到多个请求集合,其中每个请求集合中的访存请求个数小于或等于地址运算器的个数本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种向量处理器,其特征在于,包括:向量访存单元,所述向量访存单元与存储器耦合,所述存储器包括多个存储块Block;所述向量访存单元,用于:接收访存指令;所述访存指令包括N个访存请求;N为大于0的整数;根据所述N个访存请求分别得到N个访存请求地址;确定所述N个访存请求地址所属的地址范围在所述多个Block中所对应的M个Block;M为大于0且小于或等于N的整数;生成与所述M个Block对应的M个总线请求,并向所述存储器发送所述M个总线请求。2.如权利要求1所述的向量处理器,其特征在于,所述向量访存单元包括地址运算单元和请求融合单元;所述向量访存单元,具体用于:通过所述地址运算单元接收所述访存指令;所述访存指令包括所述N个访存请求;根据所述N个访存请求分别得到N个访存请求地址,并向所述请求融合单元发送所述N个访存请求地址;通过所述请求融合单元接收所述地址运算单元发送的所述N个访存请求地址,并确定所述N个访存请求地址所属的地址范围在所述多个Block中所对应的所述M个Block;生成与所述M个Block对应的所述M个总线请求,并向所述存储器发送所述M个总线请求。3.如权利要求2所述的向量处理器,其特征在于,所述地址运算单元包括L个地址运算器;每个所述地址运算器每个时钟周期基于一个所述访存请求得到一个所述访存请求地址;L为大于1的整数。4.如权利要求3所述的向量处理器,其特征在于,所述向量访存单元,具体用于:通过所述地址运算单元,将所述N个访存请求划分为S个请求集合;S为大于1的整数;每个所述请求集合包括的所述访存请求小于或等于L个;分别根据所述S个请求集合得到S个访存请求地址集合;每个所述访存请求地址集合包括对应的请求集合中包括的访存请求的请求地址。5.如权利要求4所述的向量处理器,其特征在于,S为N/L向上取整的数。6.如权利要求4或5所述的向量处理器,其特征在于,所述向量访存单元还包括数据寄存器;所述向量访存单元,具体用于:通过所述地址运算单元计算所述S个请求集合中的第i个请求集合所对应的第i个访存请求地址集合,并向所述数据寄存器发送所述第i个访存请求地址集合;i=0,1,2
……
S;通过所述数据寄存器接收所述地址运算单元发送的所述第i个访存请求地址集合,并存储所述第i个访存请求地址集合。7.如权利要求6所述的向量处理器,其特征在于,所述向量访存单元,具体用于:当所述数据寄存器中存储了S个所述访存请求地址集合,通过所述数据寄存器向所述请求融合单元发送所述S个访存请求地址集合;通过所述请求融合单元接收所述数据寄存器发送的所述S个访存请求地址集合;所述S个访存请求地址集合中包括所述N个访存请求地址。8.如权利要求1

7任意一项所述的向量处理器,其特征在于,所述向量处理器还包括向量寄存器堆;所述N个访存请求为N个读数据请求;所述向量访存单元,还用于:分别接收所述存储器基于所述M个总线请求反馈的所述M个Block中存储的数据;基于所述M个Block中存储的数据,分别将所述N个读数据请求所对应的数据写入至所
述向量寄存器。9.一种数据访存方法,其特征在于,应用于向量处理器;所述向量处理器包括向量访存单元,所述向量访存单元与存储器耦合,所述存储器包括多个存储块Block;所述方法包括:通过所述向量访存单元接收访存指令;所述访存指令包括N个访存请求;N为大于0的整数;根据所述N个访存请求分别得到N个访存请求地址;确定所述N个访存请求地址所属的地址范围在所述多个Block中所对应的M个Block;M为大于0且小于或等于N的整数;生成与所述M个Block...

【专利技术属性】
技术研发人员:崔鲁平
申请(专利权)人:睿思芯科深圳技术有限公司
类型:发明
国别省市:

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

1