用于执行数据处理的装置、方法、和计算设备制造方法及图纸

技术编号:31306470 阅读:14 留言:0更新日期:2021-12-12 21:23
本申请涉及用于执行数据处理的装置、方法、和计算设备。本申请提供的数据处理装置包括:控制单元和耦合至控制单元的缓存单元。缓存单元利用第一队列和第二队列存储由控制单元接收的多个指令,多个指令包括内存拷贝指令和读写指令。在此,第一队列用于存储内存拷贝指令,以及第二队列用于存储读写指令。控制单元接收多个指令,并且根据预定规则和多个指令的类型,将多个指令分别存储至第一队列和第二队列。控制单元并行地执行第一队列和第二队列中存储的指令。由此实现并行地执行两个队列中的指令,进而避免出现读写指令被阻塞的情况。进而避免出现读写指令被阻塞的情况。进而避免出现读写指令被阻塞的情况。

【技术实现步骤摘要】
用于执行数据处理的装置、方法、和计算设备


[0001]本申请涉及数据处理领域,具体地,涉及用于执行数据处理的装置、方法、控制器和服务器。

技术介绍

[0002]在计算设备中,可以利用内存拷贝操作实现将内存中一块连续的数据从一个地址拷贝到另一个地址。可以使用一个读指令和一个写指令来实现内存拷贝操作。但是,计算设备中除了内存拷贝操作相关的指令外,还存在其他类型的指令(例如,普通读指令和写指令)。当计算机设备中存在多个内存拷贝操作时,内存拷贝操作相关的指令和其他类型的指令只能按照顺序逐个、串行处理,使得整个计算设备中指令执行过程出现拥塞,导致各指令在处理过程中存在耗时长、效率低的问题。因此,如何提供一种并行处理指令的方法成为亟待解决的技术问题。

技术实现思路

[0003]本申请提供一种用于执行数据处理的装置、方法、和计算设备,以便用于提供一种并行指令处理的技术方案。
[0004]第一方面,提供了一种数据处理装置。该装置包括控制单元和耦合至控制单元的缓存单元。控制单元接收多个指令,并且利用缓存单元中的第一队列和第二队列存储多个指令。在此,多个指令包括内存拷贝指令和读写指令。控制单元根据预定规则和多个指令的类型,将多个指令分别存储至第一队列和第二队列。具体地,第一队列用于存储内存拷贝指令,并且第二队列用于存储读写指令。进一步,控制单元并行地执行第一队列和第二队列中存储的指令。在此,第一队列和第二队列是两种类型的队列,利用上述装置,基于第一队列和第二队列,可以并行地执行两个队列中的指令。以此实现两种类型的队列独立地被调度,并且并行地执行内存拷贝指令和读写指令,进而避免出现读写指令被阻塞的情况。
[0005]在一种可能的实现方式中,预定规则包括多个指令之间的地址依赖关系。上述地址依赖关系是根据多个指令中携带的地址所确定的。可以判断多个指令中的内存拷贝指令和读写指令是否访问相同页面,以便确定是否存在地址依赖关系。利用上述装置可以将多个指令中的不具有地址依赖关系的指令分别存储至第一队列和第二队列,以便并行地执行这些指令。
[0006]在另一种可能的实现方式中,可以判断多个指令中的内存拷贝指令和读写指令是否访问相同页面,以便确定内存拷贝指令和读写指令之间是否存在地址依赖关系。如果内存拷贝指令和读写指令访问相同页面,确定内存拷贝指令和读写指令存在地址依赖关系。如果内存拷贝指令和读写指令没有访问相同页面,确定内存拷贝指令和读写指令不存在地址依赖关系。利用上述装置,不需要判断两个指令的地址是否重叠,而是仅需要判断两个指令是否涉及相同的页面。由此避免直接判断地址是否重叠造成的较高计算量。进一步,通过调节页面的大小,可以在判断的准确性和计算量进行平衡,以便在确保准确性的情况下尽
量降低计算量。
[0007]在另一种可能的实现方式中,为了判断两个指令是否涉及相同的页面,可以为内存中的各个页面分别设置读计数器和写计数器。继而,可以根据读计数器和写计数器,确定内存拷贝指令和读写指令是否访问相同页面。利用本申请所使用读计数器和写计数器,可以有效地监视各个页面是否同时被读写。以此实现以简单并且有效的方式检测数据冲突进而确定地址依赖关系。
[0008]在另一种可能的实现方式中,当某个指令访问页面时,可以更新该页面的两个计数器的数值。具体地,如果确定多个指令中的指令将要读取页面,增加读计数器的数值;如果确定多个指令中的指令已经读取页面,降低读计数器的数值;如果确定多个指令中的指令将要写入页面,增加写计数器的数值;以及如果确定多个指令中的指令已经写入页面,降低写计数器的数值。基于更新读计数器和写计数器的数值,即可记录页面被读取和/或写入的状态,进而确定两个指令的地址依赖关系。
[0009]在另一种可能的实现方式中,如果写计数器的数值不同于写计数器的初始值,确定内存拷贝指令和读写指令访问相同页面。根据本申请的数据处理装置,如果写计数器的数值不同于初始值,这表示页面将要被写入。被写入的数据可能会影响另一指令的读取,也可能会影响另一指令的写入,这将导致内存拷贝指令和读写指令存在地址依赖关系。以此方式,通过比较即可确定内存拷贝指令和读写指令是否具有地址依赖关系。
[0010]在另一种可能的实现方式中,提出了一种内存拷贝指令的格式,该内存拷贝指令包括:源地址、目的地地址以及拷贝长度。在此,内存拷贝指令表示基于内存拷贝长度将源地址处的数据拷贝至目的地地址。利用本申请的示例性实现方式,可以基于单一的内存拷贝指令来执行原本需要由两个指令(一个读指令和一个写指令)执行的拷贝操作。此时,在执行内存拷贝操作时,处理单元仅被调用一次,因而可以降低处理单元的资源开销,并且降低数据往来于处理单元和内存之间的传输带宽。
[0011]在另一种可能的实现方式中,内存拷贝指令还包括高速缓存标记,以便指示将数据加载至与内存相关联的高速缓存。利用本申请中的高速缓存标记,可以将未来可能被访问的数据预先加载至高速缓存中。以此提高计算设备中的数据访问效率,进而提高数据处理的整体性能。
[0012]在另一种可能的实现方式中,当拷贝长度过长时,可能会造成内存拷贝指令与读写指令存在地址依赖关系的可能性提高。因而,如果确定内存拷贝指令的拷贝长度超过预定阈值,可以将内存拷贝指令划分为多个子指令。进一步,可以将多个子指令存储至第一队列。利用本申请的数据处理装置,通过将跨越加大拷贝长度的内存拷贝指令划分为多个子指令,可以降低在内存拷贝指令和读写指令之间频繁地检测到地址依赖关系的可能性。以此提高执行内存拷贝指令和读写指令的并行度,进而提高数据处理的性能。
[0013]在另一种可能的实现方式中,提出了直接读写指令的概念。直接读写指令与多个指令中的其他任一内存拷贝指令不存在地址依赖关系,因而可以优先地被执行。具体地,可以基于地址依赖关系在多个指令中的读写指令中检测直接读写指令。进一步,可以立即执行直接读写指令。利用本申请的数据处理装置,可以优先地执行与其他内存拷贝指令不存在地址依赖关系的直接读写指令。以此缓解传统方案中的普通读写指令被阻塞的情况,并且提高读写指令的响应速度。
[0014]在另一种可能的实现方式中,可以基于直接读写生成访问内存的读写命令,并且从内存接收读写结果。进一步,可以向处理单元读写结果。利用本申请的数据处理装置可以以较快的速度获得执行直接读写指令的结果,进而提高读写指令的处理效率。
[0015]在另一种可能的实现方式中,可以优先地处理与其他读写指令不具有地址依赖关系的内存拷贝指令。具体地,可以确定内存拷贝指令与多个指令中的读写指令是否存在地址依赖关系。如果确定内存拷贝指令与多个指令中的任一读写指令不存在地址依赖关系,将内存拷贝指令存储至第一队列。本申请的数据处理装置仅需通过简单的比较即可确定内存拷贝指令与其他读写指令是否存在地址依赖关系。可以快速并且有效地将与其他读写指令不具有地址依赖关系的内存拷贝指令存储至第一队列。当内存拷贝指令被存储至第一队列之后,可以按顺序执行第一队列中的各个内存拷贝指令。以此方式,内存拷贝指令的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理装置,其特征在于,所述装置包括控制单元和耦合至所述控制单元的缓存单元;所述缓存单元,用于利用第一队列和第二队列存储由所述控制单元接收的多个指令,所述多个指令包括内存拷贝指令和读写指令,所述第一队列用于存储内存拷贝指令,以及所述第二队列用于存储读写指令;所述控制单元,用于接收所述多个指令;根据预定规则和所述多个指令的类型,将所述多个指令分别存储至所述第一队列和所述第二队列;以及并行地执行所述第一队列和所述第二队列中存储的指令。2.根据权利要求1所述的装置,其特征在于,所述预定规则包括所述多个指令的地址依赖关系,所述地址依赖关系是根据所述多个指令中携带的地址所确定的。3.根据权利要求2所述的装置,其特征在于,其中所述地址依赖关系是根据以下情况中的至少任一项所确定的:判断所述多个指令中的内存拷贝指令和读写指令是否访问相同页面;如果所述内存拷贝指令和所述读写指令访问相同页面,确定所述内存拷贝指令和所述读写指令存在所述地址依赖关系;以及如果所述内存拷贝指令和所述读写指令没有访问相同页面,确定所述内存拷贝指令和所述读写指令不存在所述地址依赖关系。4.根据权利要求3所述的装置,其特征在于,所述内存拷贝指令包括:源地址、目的地地址以及拷贝长度,所述内存拷贝指令表示基于所述内存拷贝长度将所述源地址处的数据拷贝至所述目的地地址。5.根据权利要求4所述的装置,其特征在于,所述控制单元还用于:基于所述地址依赖关系,在所述多个指令中的读写指令中检测直接读写指令,所述直接读写指令与所述多个指令中的任一内存拷贝指令不存在地址依赖关系;以及执行所述直接读写指令。6.根据权利要求4所述的装置,其特征在于,将所述多个指令分别存储至所述第一队列和所述第二队列包括:针对所述多个指令中的所述内存拷贝指令,确定所述内存拷贝指令与所述多个指令中的读写指令是否存在地址依赖关系;以及如果确定所述内存拷贝指令与所述多个指令中的任一读写指令不存在地址依赖关系,将所述内存拷贝指令存储至所述第一队列。7.根据权利要求4所述的装置,其特征在于,所述预定规则还包括所述内存拷贝指令与所述读写指令被接收的时序关系,以及将所述多个指令分别存储至所述第一队列和所述第二队列包括:如果确定所述内存拷贝指令与所述读写指令存在地址依赖关系,基于所述时序关系和所述地址依赖关系,分别将所述内存拷贝指令和所述读写指令存储至所述第一队列和所述第二队列。8.根据权利要求3所述的装置,其特征在于,所述控制单元还用于:如果确定所述内存拷贝指令的拷贝长度超过预定阈值,将所述内存拷贝指令划分为多个子指令;以及
将所述多个子指令存储至所述第一队列。9.根据权利要求1所述的装置,其特征在于,所述并行地执行所述第一队列和所述第二队列中存储的所述指令包括:按照所述第一队列中的至少一个内存拷贝指令的顺序,执行所述至少一个内存拷贝指令;以及与执行所述至少一个内存拷贝指令并行地,按照所述第二队列中的至少一个读写指令的顺序,执行所述至少一个读写指令。10.一种数据处理方法,其特征在于,所述方法包括:接收所述多个指令,所述多个指令包括内存拷贝指令和读写指令;根据预定规则和所述多个指令的类型,将所述多个指令分别存储至第一队列和所述第二队列,所述第一队...

【专利技术属性】
技术研发人员:卢廷玉郭海涛李涛俞柏峰
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1