首页> 中国专利> 指令缓存、指令缓存组及其请求合并方法

指令缓存、指令缓存组及其请求合并方法

摘要

本发明提供一种指令缓存、指令缓存组及其请求合并方法。经由仲裁器在多个访问请求中选择其中一个作为执行请求,其中所述多个访问请求分别由多个线程发送且在同一时间向所述仲裁器请求仲裁;将所述多个访问请求中未被所述仲裁器选择的且与所述执行请求具有相同访问地址的访问请求标记与所述执行请求进行合并,以得到合并请求;基于所述访问地址来读取数据;以及将所读取的所述数据广播至所述合并请求所对应的所有线程。

著录项

  • 公开/公告号CN113867801A

    专利类型发明专利

  • 公开/公告日2021-12-31

    原文格式PDF

  • 申请/专利权人 上海壁仞智能科技有限公司;

    申请/专利号CN202111162371.6

  • 发明设计人 不公告发明人;

    申请日2021-09-30

  • 分类号G06F9/38(20060101);

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人彭久云

  • 地址 201100 上海市闵行区陈行公路2388号16幢13层1302室

  • 入库时间 2023-06-19 13:29:16

说明书

技术领域

本发明涉及一种指令缓存、指令缓存组及其请求合并方法。

背景技术

一般而言,在通用计算图形处理单元(General-purpose computing on graphicsprocessing units,GPGPU)中,指令缓存是多个线程所共享。在正常工作中,多个线程会同时向指令缓存发送指令读取的请求。经过仲裁之后,指令缓存会选择一个线程的请求送到指令存储器中将对应的指令数据读取出来。据此,当多个线程同时读取相同的指令时,由于指令缓存每次只能处理一个线程的请求,导致这些请求只能串行处理,使得相同的指令被读取了多次。这种方式使得指令的读取延迟增长,浪费了指令存储器的数据带宽。

发明内容

本发明是针对一种指令缓存、指令缓存组及其请求合并方法,可合并处理同一时间的多个请求,降低处理延迟并减少指令存储器的访问带宽。

本发明用于指令缓存的请求合并方法,包括:经由仲裁器在多个访问请求中选择其中一个作为执行请求,其中所述多个访问请求分别由多个线程发送且在同一时间向所述仲裁器请求仲裁;将所述多个访问请求中未被所述仲裁器选择的且与所述执行请求具有相同访问地址的访问请求与所述执行请求进行合并,以得到合并请求;基于所述访问地址来读取数据;以及将所读取的所述数据广播至所述合并请求所对应的所有线程。

根据本发明的实施例,将所述多个访问请求中未被所述仲裁器选择的且与所述执行请求具有相同访问地址的访问请求与所述执行请求进行合并,以得到所述合并请求的步骤包括:记录所述合并请求对应的标识符,所述标识符至少包含所述多个访问请求中具有相同访问地址的访问请求所对应的线程的标识信息。

根据本发明的实施例,将所读取的所述数据广播至所述合并请求所对应的所有线程的步骤包括:基于所述标识符,将所读取的所述数据广播至所述合并请求所对应的所有线程。

根据本发明的实施例,在经由仲裁器在多个访问请求中选择其中一个作为执行请求之后,还包括:将所述多个访问请求中未被所述仲裁器选择的访问请求与所述执行请求进行比对,以找出与所述执行请求具有相同访问地址的访问请求。

本发明的指令缓存,包括:仲裁器;用以在多个访问请求中选择其中一个作为执行请求,其中所述多个访问请求分别由多个线程发送且在同一时间向所述仲裁器请求仲裁;第一操作逻辑,用以将所述多个访问请求中未被所述仲裁器选择的且与所述执行请求具有相同访问地址的访问请求与所述执行请求进行合并,以得到合并请求;指令存储器,基于所述访问地址来读取数据;以及第二操作逻辑,用以将所读取的所述数据广播至所述合并请求所对应的所有线程。

在根据本发明的实施例的指令缓存中,所述第一操作逻辑记录所述合并请求对应的标识符,所述标识符至少包含所述多个访问请求中具有相同访问地址的访问请求所对应的线程的标识信息。

在根据本发明的实施例的指令访问装置中,所述第二操作逻辑基于所述标识符,将所读取的所述数据广播至所述合并请求所对应的所有线程。

在根据本发明的实施例的指令访问装置中,所述第一操作逻辑将所述多个访问请求中未被所述仲裁器选择的访问请求与所述执行请求进行比对,以找出与所述执行请求具有相同访问地址的访问请求。

本发明的指令缓存组包括:多个指令缓存;所述多个指令缓存至少包括一个所述的指令缓存。

在根据本发明的实施例的指令缓存组中,同时访问所述多个指令缓存中至少两个指令缓存的访问请求的访问地址不同。

基于上述,本发明在指令缓存中提出一种请求合并方法,即,在仲裁器与指令存储器之间引入了请求合并的动作,将同一时间具有相同访问地址的访问请求进行合并处理。据此,可缩短指令的读取时间,并节省了指令存储器的访问带宽。

附图说明

图1是依照本发明一实施例的指令访问装置的框图。

图2是依照本发明一实施例的请求合并方法的流程图。

附图标记说明

100:指令访问装置

100A:执行单元

100B:指令缓存

110:仲裁器

120:第一操作逻辑

130:指令存储器

140:第二操作逻辑

T1~Tn:线程

r1~rn:访问请求

r:执行请求

S205~S220:请求合并方法的步骤

具体实施方式

现将详细地参考本发明的示范性实施例,示范性实施例的实例说明于附图中。只要有可能,相同组件符号在图式和描述中用来表示相同或相似部分。

图1是依照本发明一实施例的指令访问装置的框图。请参照图1,指令访问装置100包括执行单元(execution unit,EU)100A以及指令缓存100B。在一些示例中,执行单元100A例如是中央处理器(central processing unit,CPU)的一部分,它按照计算机程序的指示执行操作和计算。在本实施例中,由执行单元100A发出多个线程T1~Tn。另外,在其他实施例中也可由多个不同的执行单元100A同时发出多个线程T1~Tn,而一个执行单元100A可以发出一个线程或同时发出多个线程。

应当理解,多个线程T1~Tn还可以由其他的装置发出,本发明对多个线程T1~Tn的产生方式并不加以限定。

指令缓存100B例如为高速缓存。高速缓存存在于每个处理器内,处理器在执行读、写操作的时候并不需要直接与内存交互,而是通过高速缓存进行。在本实施例中,处理器为通用计算图形处理单元(General-purpose computing on graphics processing units,GPGPU)。指令缓存100B包括仲裁器110、第一操作逻辑120、指令存储器130以及第二操作逻辑140。

以下结合上述指令访问装置100来进一步说明指令共享方法各步骤。

图2是依照本发明一实施例的请求合并方法的流程图。请同时参照图1及图2,在步骤S205中,经由仲裁器110在多个访问请求r1~rn中选择其中一个作为执行请求r。在此,所述多个访问请求r1~rn分别由多个线程T1~Tn发送且在同一时间向仲裁器110请求仲裁。即,当这些线程T1~Tn进入指令缓存100B且在同一时间向仲裁器110请求仲裁时,会先由仲裁器110来选择其中一个作为后续的执行请求r。

在步骤S210中,第一操作逻辑120将所述多个访问请求r1~rn中未被所述仲裁器110选择的且与执行请求r具有相同访问地址的访问请求与所述执行请求进行合并,以得到合并请求。例如,第一操作逻辑120将所述多个访问请求r1~rn中未被选择的多个访问请求与执行请求r进行比对,以找出与执行请求r具有相同访问地址的访问请求。

在此,每一个访问请求中会包括其对应的线程的标识符(或标识信息)。也就是说,所述标示符用以识别此访问请求是由哪一个线程所发送。第一操作逻辑120可通过将与执行请求r具有相同访问地址的每一个访问请求所对应的标识符加入至执行请求r,借此得到合并请求。即,合并请求为执行请求r加上一个或多个与执行请求r具有相同访问地址的访问请求的标识符。合并请求的标识符则包括了执行请求r以及一个或多个与执行请求r具有相同访问地址的访问请求的标识符。

在其他实施例中,第一操作逻辑120也可通过在与执行请求r具有相同访问地址的访问请求中加入一个标记,借此将加入有标记的访问请求以及执行请求r作为合并请求,以待后续供第二操作逻辑140使用。

在其他实施例中,第一操作逻辑120也可与寄存器搭配使用,以将与执行请求r具有相同访问地址的每一个访问请求对应的标识符记录至寄存器中,借此将标识符记录于寄存器的访问请以及执行请求r作为合并请求,待后续供第二操作逻辑140使用。

举例来说,假设仲裁器110选择访问请求r1作为执行请求r,其访问地址为x00A,则第一操作逻辑120会将未被选择的访问请求r2~rn与执行请求r进行比对,以找出访问地址同样为x00A的访问请求。假设第一操作逻辑120找到访问请求r3、r5的访问地址同样为X00A,则将访问请求r3、r5与执行请求r(访问请求r1)进行合并,以得到合并请求。例如,在执行请求r中加入访问请求r3、r5分别与线程T3、T5对应的标识符。或者,在访问请求r3、r5加入供第二操作逻辑140进行识别的标记。或者,将访问请求r3、r5中与线程T3、T5对应的标识符记录至寄存器中。

接着,在步骤S215中,指令存储器130基于所述访问地址来读取数据。具体而言,在第一操作逻辑120完成请求合并之后,将合并请求发送至指令存储器130,使得指令存储器130基于合并请求的访问地址来读取数据。

之后,在步骤S220中,第二操作逻辑140将所读取的所述数据广播至合并请求所对应的所有线程。例如,第二操作逻辑140基于合并请求中所包括的全部标识符,将所读取的数据传送至所述标识符所对应的线程。或者,第二操作逻辑140取得执行请求r以及具有标记的访问请求中所记载的标识符,以将所读取的数据传送至所述标识符所对应的线程。或者,第二操作逻辑140取得执行请求r的标识符以及来自与第一操作逻辑110搭配使用的寄存器中取得所记载的标识符,以将所读取的数据传送至所述标识符所对应的线程。

在步骤S220完成后,其他无法与执行请求r合并的访问请求会等待后续其他线程所发送的其他访问请求来进行下一轮的仲裁。即,待当前的执行请求r访问结束,仲裁器110会在下一次从同时向仲裁器110请求仲裁的尚未进行访问的访问请求中,选择另一个作为下一个执行请求r来执行步骤S210~S220,以此类推,直到全部访问请求皆执行完毕。

所述请求合并方法也可用于指令缓存组中。指令缓存组包括多个指令缓存。而这些指令缓存中的至少一个采用所述请求合并方法。例如,指令缓存组包括多个存储块(bank)。采用所述请求合并方法的每一个存储块的架构如同所述指令缓存100B,包括有仲裁器110、第一操作逻辑120、指令存储器130以及第二操作逻辑140。在一实施例中可设定为在一个时间点仅允许访问一个存储块。而在同时间多个访问请求进入一个存储块的情况下,执行上述请求合并方法的步骤S205~S220。在另一实施例中,只要访问地址没有冲突,也可允许同时访问多个存储块。即,同时访问多个存储块的访问请求的访问地址不同。例如,访问存储块b01的访问请求的访问地址为x001,访问存储块b02的访问请求的访问地址为x0002,访问存储块b03的访问请求的访问地址为x0003,访问存储块b04的访问请求的访问地址为x0004。据此,线程T1~Tn可分为4组来分别访问存储块b01~存储块b04。并且,在同时间多组访问请求分别进入存储块b01~存储块b04的情况下,存储块b01~存储块b04会各自执行上述请求合并方法的步骤S205~S220。

综上所述,本发明在指令缓存中的仲裁器与指令存储器之间引入了请求合并的动作,将仲裁器所选出的线程的访问请求与其他线程的访问请求进行比对,以对访问地址相同的访问指令进行合并,之后再通过广播将访问的数据广播给相关的线程。据此,可以在同一时间合并处理多个请求,进而缩短指令的读取时间,降低处理延迟并节省了指令存储器的访问带宽。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号