CN114327632A - 指令处理设备以及指令处理方法 - Google Patents

指令处理设备以及指令处理方法 Download PDF

Info

Publication number
CN114327632A
CN114327632A CN202011064561.XA CN202011064561A CN114327632A CN 114327632 A CN114327632 A CN 114327632A CN 202011064561 A CN202011064561 A CN 202011064561A CN 114327632 A CN114327632 A CN 114327632A
Authority
CN
China
Prior art keywords
instruction
address
unit
physical address
virtual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011064561.XA
Other languages
English (en)
Inventor
王伟
周建
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Sensetime Intelligent Technology Co Ltd
Original Assignee
Shanghai Sensetime Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Sensetime Intelligent Technology Co Ltd filed Critical Shanghai Sensetime Intelligent Technology Co Ltd
Priority to CN202011064561.XA priority Critical patent/CN114327632A/zh
Priority to PCT/CN2021/119965 priority patent/WO2022068673A1/zh
Publication of CN114327632A publication Critical patent/CN114327632A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本公开提供了一种指令处理设备以及指令处理方法,其中,该指令处理设备包括:指令处理器、地址翻译单元、以及目标执行单元;指令处理器,用于获取第一指令,并向地址翻译单元传输第一指令;地址翻译单元,用于接收指令处理器传输的所述第一指令,将所述第一指令中携带的虚拟地址转换为物理地址,得到第二指令;所述目标执行单元,用于执行所述第二指令,得到指令执行结果。

Description

指令处理设备以及指令处理方法
技术领域
本公开涉及虚实地址转换技术领域,具体而言,涉及一种指令处理设备以及指令处理方法。
背景技术
图形处理器(Graphics Processing Unit,GPU)是执行云侧人工智能(ArtificialIntelligence,AI)推理和训练任务的常用设备;由于资源虚拟化等需要,当前GPU在执行数据处理任务时,需要使用虚实地址转换的功能,将指令中的虚拟地址转换为物理地址。
发明内容
本公开实施例至少提供一种指令处理设备以及指令处理方法。
第一方面,本公开实施例提供了一种指令处理设备,包括:指令处理器、地址翻译单元、以及目标执行单元;
所述指令处理器,用于获取第一指令,并向所述地址翻译单元传输所述第一指令;
地址翻译单元,用于接收所述指令处理器传输的所述第一指令,将所述第一指令中携带的虚拟地址转换为物理地址,得到第二指令;
所述目标执行单元,用于执行所述第二指令,得到指令执行结果。
这样,在指令被分发至具体的执行单元之前,利用地址翻译单元将指令中携带的虚拟地址转换为物理地址;当指令被分发至达执行单元后,指令中携带的虚拟地址已经被地址翻译单元翻译为物理地址,从而不需要执行单元进行地址的翻译过程,因而无需在执行单元中设置TLB和PTW,减小执行单元的体积;同时,也不会存在由多个执行单元多路并发页表查询导致的全局内存带宽问题,减小全局内存的带宽压力。
同时,本公开实施例由通过地址翻译单元实现对分发至执行单元的指令的翻译,从而能够不受限于执行单元的体积,可以为地址翻译单元设置更大的缓存单元,提升地址翻译的效率。
另外,本公开实施例中,由于多条指令通过同一PTW读取物理地址,因此可以合并同层次的翻译申请,乱序执行对不同指令的翻译,从而可以减少对内存的访问,降低带宽压力,提升翻译的效率。
另外,由于只需要为地址翻译单元设置一个缓存单元,因此在多进程的上下文切换时,只需要处理该缓存单元中的缓存,而不必清理所有执行单元的缓存,因此更有利于多用户多进程间的上下文切换。
另外,由于指令处理器中,存在多个指令队列,受限于执行单元的执行效率,指令队列中会存在多条指令,因此在通过地址翻译单元进行地址翻译,物理内存查询的延时会被指令下发的延时“隐藏”,减少TLB miss(在缓存单元中不存在虚拟地址和物理地址映射关系)导致的高时延问题。
一种可能的实施方式中,还包括:指令分发单元;
所述地址翻译单元,还用于向所述指令分发单元传输所述第二指令;
所述指令分发单元,用于在接收到所述地址翻译单元传输的第二指令后,为所述第二指令确定所述多个执行单元中的所述目标执行单元,并将所述第二指令向所述目标执行单元传输。
这样,通过地址单元将第一指令转换为携带物理地址的第二指令,并通过指令分发单元将第二指令分发至具体的目标执行单元。
一种可能的实施方式中,所述目标执行单元在执行所述第二指令时,用于:
解析所述第二指令中携带的物理地址,并访问所述物理地址。
一种可能的实施方式中,所述地址翻译单元包括:指令解析子单元、地址转换子单元、以及指令转换子单元;
其中,所述指令解析子单元与所述指令处理器连接,用于从所述第一指令中解析所述虚拟地址;
所述地址转换子单元,用于确定所述指令解析子单元解析得到的所述虚拟地址对应的物理地址;
所述指令转换子单元,用于基于所述地址转换子单元确定的所述物理地址以及所述第一指令,生成第二指令。
一种可能的实施方式中,所述地址翻译单元包括:缓存单元;
所述地址翻译单元,用于查询所述缓存单元中存储的虚拟地址与物理地址之间的映射关系,以及在所述缓存单元中不存在所述虚拟地址对应的映射关系的情况下,通过页表查询从内存中获取所述虚拟地址对应的物理地址。
一种可能的实施方式中,所述地址翻译单元,还用于将从内存中获取的所述物理地址和所述虚拟地址之间的映射关系存储到所述缓存单元中。
一种可能的实施方式中,所述地址翻译单元,在将所述第一指令中携带的虚拟地址转换为物理地址,得到第二指令时,用于:
将所述第一指令中的目标标志位由第一数值更改为第二数值,并将所述虚拟地址替换为所述物理地址,得到所述第二指令;
其中,所述第一数值指示指令中携带的地址为虚拟地址;所述第二数值指示指令中携带的地址为物理地址。
第二方面,本公开实施例还提供一种指令处理方法,包括;
指令处理器获取第一指令,并向地址翻译单元传输所述第一指令;
地址翻译单元接收所述指令处理器传输的所述第一指令,将所述第一指令中携带的虚拟地址转换为物理地址,得到第二指令;
目标执行单元执行所述第二指令,得到指令执行结果。
一种可能的实施方式中,还包括:
所述地址翻译单元向指令分发单元传输所述第二指令;
所述指令分发单元在接收到所述地址翻译单元传输的第二指令后,为所述第二指令确定所述多个执行单元中的所述目标执行单元,并将所述第二指令向所述目标执行单元传输。
一种可能的实施方式中,所述目标执行单元执行所述第二指令,包括:所述目标执行单元解析所述第二指令中携带的物理地址,并访问所述物理地址。
一种可能的实施方式中,地址翻译单元接收所述指令处理器传输的所述第一指令,将所述第一指令中携带的虚拟地址转换为物理地址,得到第二指令,包括:
所述地址翻译单元从所述第一指令中解析所述虚拟地址,确定与所述虚拟地址对应的物理地址,并基于所述物理地址以及所述第一指令,生成第二指令。
一种可能的实施方式中,还包括:地址翻译查询缓存单元中存储的虚拟地址与物理地址之间的映射关系,以及在所述缓存单元中不存在所述虚拟地址对应的映射关系的情况下,通过页表查询从内存中获取所述虚拟地址对应的物理地址。
一种可能的实施方式中,还包括:
地址翻译单元将从内存中获取的所述物理地址和所述虚拟地址之间的映射关系存储到所述缓存单元中。
一种可能的实施方式中,地址翻译单元将所述第一指令中携带的虚拟地址转换为物理地址,得到第二指令,包括:
将所述第一指令中的目标标志位由第一数值更改为第二数值,并将所述虚拟地址替换为所述物理地址,得到所述第二指令;
其中,所述第一数值指示指令中携带的地址为虚拟地址;所述第二数值指示指令中携带的地址为物理地址。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种指令处理设备的示意图;
图2示出了本公开实施例所提供的指令结构的示意图;
图3示出了本公开实施例所提供的另一种指令处理设备的示意图;
图4示出了本公开实施例所提供的一种指令处理设备架构示例的示意图;
图5示出了本公开实施例所提供的一种指令处理方法的流程图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
GPU中通常包括:指令处理器(Command Processor,CP)、以及与指令处理器连接的多个执行单元(Compute Unit,CU);在相关技术中,指令处理器用于从主机中央处理器(Host Central Processing Unit,host CPU)(以下简称主机)获取指令流,并为指令流中的各个指令确定目标执行单元,然后将指令执行至对应的目标执行单元;CU在接收到CP执行的指令后,将指令中携带的虚拟地址转换为物理地址。具体地,CU在将指令中携带的虚拟地址转换为物理地址的时候,需要通过查询翻译后备缓存器(Translation LookasideBuffer,TLB)和/或页表查询逻辑(Page Table Walk,PTW)确定对应的物理地址。在该过程中,由于GPU中的执行单元数量较多;每个执行单元中都会需要设置对应的TLB和PTW,造成每个执行单元体积过大的问题。同时,由于GPU在执行数据处理任务时,会将数据处理任务划分为多个子任务分配至不同的执行单元执行,多个执行单元在执行对应子任务时,会存在多路并发页表查询,导致全局内存的带宽问题。
基于上述研究,本公开提供了一种指令处理设备,在指令被分发至具体的执行单元之前,利用地址翻译单元将指令中携带的虚拟地址转换为物理地址;当指令被分发至达执行单元后,指令中携带的虚拟地址已经被地址翻译单元翻译为物理地址,从而不需要执行单元进行地址的翻译过程,因而无需在执行单元中设置TLB和PTW,减小执行单元的体积;同时,也不会存在由多个执行单元多路并发页表查询导致的全局内存带宽问题,减小全局内存的带宽压力。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种指令处理设备进行详细介绍。
本公开实施例提供的指令处理设备,可以用于中央处理器(Central ProcessingUnit,CPU)、GPU,或者其他包括指令处理器、执行单元的指令处理设备。
下面以将本公开实施例提供的指令处理设备应用于GPU为例对本公开实施例提供的指令处理设备加以说明,但也可以应用于其他类型的指令处理设备。
参见图1所示,为本公开实施例提供的指令处理设备的结构示意图,包括:指令处理器10、地址翻译单元20、以及目标执行单元30。
其中,所述指令处理器10,用于获取第一指令,并向所述地址翻译单元20传输所述第一指令;
地址翻译单元20,用于接收所述指令处理器10传输的所述第一指令,将所述第一指令中携带的虚拟地址转换为物理地址,得到第二指令;
所述目标执行单元30,用于执行所述第二指令,得到指令执行结果。
下面对分别指令处理器10、地址翻译单元20、以及目标执行单元30加以详细描述。
指令处理器10在获取第一指令时,针对本公开实施例提供的指令处理设备应用在GPU中的情况,主机将软件的源程序转换为机器指令,并将机器指令存储至GPU的指令存储器中,指令处理器10从该指令存储器中读取指令。此处,指令处理器10在从指令存储器中读取指令之后,会对具有依赖关系的指令进行解耦,之后向地址翻译单元20传输第一指令。
针对本公开实施例提供的指令处理设备应用在CPU中的情况,计算机内部署的编译器负责将软件的软件程序转换为机器指令,并将机器指令存储至CPU的指令存储器中;指令处理单元10从该指令存储器中读取指令。
地址翻译单元20,在接收到指令处理器10传输的第一指令后,负责将第一指令中的虚拟地址转换为物理地址,生成第二指令。
在具体实施中,图2中a所示,本公开实施提供一种指令的结构示意图,包括指令头、第一标志位、第一地址位、第二标志位、第二地址位以及指令尾。其中,第一标志位用于指示在第一地址位存储的地址是虚拟地址还是物理地址;第二标志位用于指示在第二地址位存储的地址是虚拟地址还是物理地址。示例性的,当标志位为第一数值的时候,指示对应地址位存储的地址为虚拟地址;在标志位为第二数值的时候,指示对应地址位存储的地址为虚拟地址。
如图2中b所示,提供一种第一指令的结构示意图,在该示例中,第一数值为0,第二数值为1;该第一指令中包括了两个虚拟地址,对应的第一标志位和第二标志位均为0,表征第一指令中所包括的地址均为虚拟地址;第一地址位和第二地址位存储的地址分别为虚拟地址0和虚拟地址1。
如图2中c所示,提供一种第二指令的结构示意图,其中第一标志位和第二标识为均为1,第一地址位存储的地址为与虚拟地址0对应的物理地址0;第二地址存储为存储的地址为与虚拟地址1对应的物理地址1。
为了实现将第一指令转化为第二指令,参见图3所示,本公开实施例提供一种地址翻译单元20的具体结构,包括:指令解析子单元21、地址转换子单元22、以及指令转换子单元23。
其中,所述指令解析子单元21与所述指令处理器10连接,用于从所述第一指令中解析所述虚拟地址;
所述地址转换子单元22,用于确定所述指令解析子单元解21析得到的所述虚拟地址对应的物理地址;
所述指令转换子单元23,用于基于所述地址转换子单元22确定的所述物理地址以及所述第一指令,生成第二指令。
在具体实施中,指令解析子单元21在从第一指令中解析虚拟地址的时候,指令中包括了指令头、标志位、地址位、指令尾,且上述几种数据存储在指令的不同数据位;可以通过内部查表的方式确定指令的长度以及虚拟地址和标志位在指令中的位置;指令解析单元21首先根据标志位在第一指令中的具体位置,确定于标志位对应的地址位存储的地址是否为虚拟地址;在为虚拟地址的情况下,从对应的地址位读取虚拟地址。
这里,指令解析子单元21例如包括第一电路;该第一电路所包括的信号输入端,可以与第一指令中包括的数据位的数量相等;其中,标志位进入到电路结构内部后,通过对标志位进行逻辑运算输出一控制信号,该控制信号的作用位在标志位为0的情况下,将与标志位对应的地址位的数据,传输给地址转换子单元22,完成虚拟地址解析、以及将虚拟地址向地址转换子单元22传输的过程。
地址转换子单元22,在确定虚拟地址对应的物理地址时,例如可以访问与地址转换子单元连接的缓存单元24,查询缓存单元24中存储的虚拟地址与物理地址之间的映射关系,以及在所述缓存单元中不存在所述虚拟地址对应的映射关系的情况下,通过页表查询从内存中获取所述虚拟地址对应的物理地址,并将物理地地址向指令转换子单元23传输。
此处,本公开实施例由于通过地址翻译单元实现对分发至执行单元的指令的翻译,从而能够不受限于执行单元的体积,可以为地址翻译单元设置更大的缓存单元,提升地址翻译的效率。
另外,由于只需要为地址翻译单元设置一个缓存单元,因此在多进程的上下文切换时,是需要处理该缓存单元中的缓存,而不必清理所有执行单元的缓存,因此更有利于多用户多进程间的上下文切换。
此处,地址转换子单元22可以首先从缓存单元24中查询是否存在与从指令解析子单元21解析得到的虚拟地址相同的目标虚拟地址,若存在,则基于查询到的目标虚拟地址与物理地址的逻辑关系,读取与该目标虚拟地址对应的物理地址,作为第一指令中虚拟地址对应的物理地址。若未存在,则通过页表查询PTW从内存中获取与虚拟地址对应的物理地址。
这里,由于指令处理器10可以同时读取多条指令,并将多条指令并发传输给地址翻译单元。因而地址翻译单元在对多条指令进行翻译时,由于可能存在通过同一PTW读取多条指令中虚拟地址对应的物理地址的情况,因此可以合并同层次的翻译申请,乱序执行对不同指令的翻译,从而可以减少对内存的访问,降低带宽压力,提升翻译的效率。
本公开另一实施例中,所述地址翻译单元20,还用于将从内存中获取的所述物理地址和所述虚拟地址之间的映射关系存储到所述缓存单元中。
此处,地址转换子单元22例如包括第二电路,该第二电路的信号输入端的数量,例如与第一指令中包括的数据位的数量相等。在从上述指令解析子单元21包括的第一电路中,得到虚拟地址后,第二电路从缓存单元24中,按照缓存单元24中各虚拟地址的存储顺序,通过逻辑运算,确定缓存单元24中是否存在与第一指令中虚拟地址相同的目标虚拟地址。在缓存单元24中不存在与第一指令中虚拟地址相同的目标虚拟地址的情况下,地址转换子单元22利用总线,通过PTW从内存50中获取与虚拟地址对应的物理地址。
指令转换子单元23,在将第一指令转换为第二指令时,例如可以将所述第一指令中的目标标志位由第一数值更改为第二数值,并将所述虚拟地址替换为所述物理地址,得到所述第二指令;
其中,所述第一数值指示指令中携带的地址为虚拟地址;所述第二数值指示指令中携带的地址为物理地址。
此处,指令转换子单元23中例如包括第三电路;该第三电路能够接收到地址转换子单元22中的第二电路传输的物理地址。另外,第二电路还会将第一指令中的指令头、指令尾、以及标志位传输给指令转换子单元23。第三电路通过逻辑运算,将标志位由第一数值更改为第二数值,基于指令头、数值更改的标志位、以及物理地址、以及指令尾,生成并输出第二指令。
目标执行单元30,在执行第二指令时,例如可以解析所述第二指令中携带的物理地址,并访问所述物理地址。
例如,在于物理地址对应的存储位置,存储有与第二指令对应的操作数;目标执行单元30在访问物理地址时,能够读取到物理地址对应的存储位置所存储的操作数;然后利用操作数,执行第二指令所指示的具体操作,得到指令执行结果。
如图3所示,本公开实施例还提供另外一种指令处理设备,还包括:指令分发单元40。所述地址翻译单元20,还用于向所述指令分发单元40传输所述第二指令;
所述指令分发单元40,用于在接收到所述地址翻译单元20传输的第二指令后,为所述第二指令确定所述多个执行单元中的所述目标执行单元30,并将所述第二指令向所述目标执行单元传输。
参见图4所示,本公开实施例还提供一种指令处理器的架构的具体示例,包括:指令处理器(Command Processor,CP)、地址翻译单元、外围组件互联(Peripheral ComponentInterconnect Express,PCIE)接口、执行单元0、执行单元1、指令分发单元、内存、以及总线。
指令处理器10通过总线以及PCIE从主机获得一条指令并解除依赖后,需要送给指令下发单元之前,将指令传输给地址翻译单元中的指令解析子单元,指令解析子单元解析该指令,获得该指令内含有的虚拟地址,并将虚拟地址传给地址翻译单元中的地址转换子单元。
指令形式类如图2所示,可以含有多个地址,由标志位来指示是否虚拟地址或者物理实地址,其中,标志位为0指示虚拟地址,标志位为1指示物理实地址。
地址转换子单元查询TLB;若在TLB中存在对应的物理地址,将查询到的物理地址送至地址翻译单元中的指令转换子单元,指令转换子单元将指令中的虚拟地址替换为物理实地址,完成对指令的翻译过程。
在TLB中如果不存在对应的物理地址,地址转换子单元需要通过总线从内存中的页表查询获得虚拟地址和物理地址之间的映射关系,此时访问内存中页表得到物理地址的过程中,指令处理器依然可以将新的指令下发到解析并进行进一步的缓冲查询。
此处,由于指令处理器中,存在多个指令队列,受限于执行单元的执行效率,指令队列中会存在多条指令,因此在通过地址翻译单元进行地址翻译,物理内存查询的延时会被指令下发的延时“隐藏”,减少TLB miss(在缓存单元中不存在虚拟地址和物理地址映射关系)导致的高时延问题。
地址转换子单元在页表查询得到物理地址后,在TLB中增加指令中虚拟地址和查询到的物理地址之间的映射关系或者替换旧的映射关系,并将查询到的物理实际地址送入指令转换子单元。
指令转换子单元执行如下操作,将标志位为0的地址(此为虚拟地址)标志位置1,并将虚拟地址替换为物理地址,完成对指令的翻译过程。
指令转换子单元完成指令翻译后,将翻译后的指令传递给指令分发单元,指令分发单元将指令分发给执行单元。
本公开实施例在指令被分发至具体的执行单元之前,利用地址翻译单元将指令中携带的虚拟地址转换为物理地址;当指令被分发至达执行单元后,指令中携带的虚拟地址已经被地址翻译单元翻译为物理地址,从而不需要执行单元进行地址的翻译过程,因而无需在执行单元中设置TLB和PTW,减小执行单元的体积;同时,也不会存在由多个执行单元多路并发页表查询导致的全局内存带宽问题,减小全局内存的带宽压力。
基于同一发明构思,本公开实施例中还提供了与指令处理设备对应的指令处理方法,由于本公开实施例中的装置解决问题的原理与本公开实施例上述指令处理设备相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图5所示,为本公开实施例提供的一种指令处理方法的流程图,所述指令处理方法包括:
S501:指令处理器获取第一指令,并向所述地址翻译单元传输所述第一指令;
S502:地址翻译单元接收所述指令处理器传输的所述第一指令,将所述第一指令中携带的虚拟地址转换为物理地址,得到第二指令;
S503:目标执行单元执行所述第二指令,得到指令执行结果。
本公开实施例通过指令处理设备获取第一指令,并向地址翻译单元传输该第一指令;地址翻译单元在接收到第一指令后,将第一指令中的虚拟地址转换为物理地址,得到第二指令;目标执行单元执行该第二指令,得到指令执行结果,从而在指令被分发至具体的执行单元之前,利用地址翻译单元将指令中携带的虚拟地址转换为物理地址;当指令被分发至达执行单元后,指令中携带的虚拟地址已经被地址翻译单元翻译为物理地址,从而不需要执行单元进行地址的翻译过程,因而无需在执行单元中设置TLB和PTW,减小执行单元的体积;同时,也不会存在由多个执行单元多路并发页表查询导致的全局内存带宽问题,减小全局内存的带宽压力。
一种可能的实施方式中,还包括:
所述地址翻译单元向指令分发单元传输所述第二指令;
所述指令分发单元在接收到所述地址翻译单元传输的第二指令后,为所述第二指令确定多个执行单元中的所述目标执行单元,并将所述第二指令向所述目标执行单元传输。
一种可能的实施方式中,所述目标执行单元执行所述第二指令,包括:
所述目标执行单元解析所述第二指令中携带的物理地址,并访问所述物理地址。
一种可能的实施方式中,地址翻译单元接收所述指令处理器传输的所述第一指令,将所述第一指令中携带的虚拟地址转换为物理地址,得到第二指令,包括:
所述地址翻译单元从所述第一指令中解析所述虚拟地址,确定与所述虚拟地址对应的物理地址,并基于所述物理地址以及所述第一指令,生成第二指令。
一种可能的实施方式中,还包括:地址翻译查询缓存单元中存储的虚拟地址与物理地址之间的映射关系,以及在所述缓存单元中不存在所述虚拟地址对应的映射关系的情况下,通过页表查询从内存中获取所述虚拟地址对应的物理地址。
一种可能的实施方式中,还包括:
地址翻译单元将从内存中获取的所述物理地址和所述虚拟地址之间的映射关系存储到所述缓存单元中。
一种可能的实施方式中,地址翻译单元将所述第一指令中携带的虚拟地址转换为物理地址,得到第二指令,包括:
将所述第一指令中的目标标志位由第一数值更改为第二数值,并将所述虚拟地址替换为所述物理地址,得到所述第二指令;
其中,所述第一数值指示指令中携带的地址为虚拟地址;所述第二数值指示指令中携带的地址为物理地址。
关于方法中的各步骤的处理流程、以及各步骤之间的交互流程的描述可以参照上述指令处理设备实施例中的相关说明,这里不再详述。
本公开实施例还提供一种计算机程序,该计算机程序被处理器执行时实现前述实施例的任意一种方法。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software DevelopmentKit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

Claims (14)

1.一种指令处理设备,其特征在于,包括:指令处理器、地址翻译单元、以及目标执行单元;
所述指令处理器,用于获取第一指令,并向所述地址翻译单元传输所述第一指令;
地址翻译单元,用于接收所述指令处理器传输的所述第一指令,将所述第一指令中携带的虚拟地址转换为物理地址,得到第二指令;
所述目标执行单元,用于执行所述第二指令,得到指令执行结果。
2.根据权利要求1所述的指令处理设备,其特征在于,还包括:指令分发单元;
所述地址翻译单元,还用于向所述指令分发单元传输所述第二指令;
所述指令分发单元,用于在接收到所述地址翻译单元传输的第二指令后,为所述第二指令确定多个执行单元中的所述目标执行单元,并将所述第二指令向所述目标执行单元传输。
3.根据权利要求1或2所述的指令处理设备,其特征在于,所述目标执行单元在执行所述第二指令时,用于:
解析所述第二指令中携带的物理地址,并访问所述物理地址。
4.根据权利要求1-3任一项所述的指令处理设备,其特征在于,所述地址翻译单元包括:指令解析子单元、地址转换子单元、以及指令转换子单元;
其中,所述指令解析子单元与所述指令处理器连接,用于从所述第一指令中解析所述虚拟地址;
所述地址转换子单元,用于确定所述指令解析子单元解析得到的所述虚拟地址对应的物理地址;
所述指令转换子单元,用于基于所述地址转换子单元确定的所述物理地址以及所述第一指令,生成第二指令。
5.根据权利要求1-4任一项所述的指令处理设备,其特征在于,所述地址翻译单元包括:缓存单元;
所述地址翻译单元,用于查询所述缓存单元中存储的虚拟地址与物理地址之间的映射关系,以及在所述缓存单元中不存在所述虚拟地址对应的映射关系的情况下,通过页表查询从内存中获取所述虚拟地址对应的物理地址。
6.根据权利要求5所述的指令处理设备,其特征在于,所述地址翻译单元,还用于将从内存中获取的所述物理地址和所述虚拟地址之间的映射关系存储到所述缓存单元中。
7.根据权利要求1-6中任一项所述的指令处理设备,其特征在于,所述地址翻译单元,在将所述第一指令中携带的虚拟地址转换为物理地址,得到第二指令时,用于:
将所述第一指令中的目标标志位由第一数值更改为第二数值,并将所述虚拟地址替换为所述物理地址,得到所述第二指令;
其中,所述第一数值指示指令中携带的地址为虚拟地址;所述第二数值指示指令中携带的地址为物理地址。
8.一种指令处理方法,其特征在于,包括;
指令处理器获取第一指令,并向地址翻译单元传输所述第一指令;
地址翻译单元接收所述指令处理器传输的所述第一指令,将所述第一指令中携带的虚拟地址转换为物理地址,得到第二指令;
目标执行单元执行所述第二指令,得到指令执行结果。
9.根据权利要求8所述的指令处理方法,其特征在于,还包括:
所述地址翻译单元向指令分发单元传输所述第二指令;
所述指令分发单元在接收到所述地址翻译单元传输的第二指令后,为所述第二指令确定多个执行单元中的所述目标执行单元,并将所述第二指令向所述目标执行单元传输。
10.根据权利要求8或9所述的指令处理方法,其特征在于,所述目标执行单元执行所述第二指令,包括:
所述目标执行单元解析所述第二指令中携带的物理地址,并访问所述物理地址。
11.根据权利要求8-10中任一项所述的指令处理方法,其特征在于,地址翻译单元接收所述指令处理器传输的所述第一指令,将所述第一指令中携带的虚拟地址转换为物理地址,得到第二指令,包括:
所述地址翻译单元从所述第一指令中解析所述虚拟地址,确定与所述虚拟地址对应的物理地址,并基于所述物理地址以及所述第一指令,生成第二指令。
12.根据权利要求8-11中任一项所述的指令处理方法,其特征在于,还包括:地址翻译查询缓存单元中存储的虚拟地址与物理地址之间的映射关系,以及在所述缓存单元中不存在所述虚拟地址对应的映射关系的情况下,通过页表查询从内存中获取所述虚拟地址对应的物理地址。
13.根据权利要求12所述的指令处理方法,其特征在于,还包括:
地址翻译单元将从内存中获取的所述物理地址和所述虚拟地址之间的映射关系存储到所述缓存单元中。
14.根据权利要求8-13中任一项所述的指令处理方法,其特征在于,地址翻译单元将所述第一指令中携带的虚拟地址转换为物理地址,得到第二指令,包括:
将所述第一指令中的目标标志位由第一数值更改为第二数值,并将所述虚拟地址替换为所述物理地址,得到所述第二指令;
其中,所述第一数值指示指令中携带的地址为虚拟地址;所述第二数值指示指令中携带的地址为物理地址。
CN202011064561.XA 2020-09-30 2020-09-30 指令处理设备以及指令处理方法 Pending CN114327632A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202011064561.XA CN114327632A (zh) 2020-09-30 2020-09-30 指令处理设备以及指令处理方法
PCT/CN2021/119965 WO2022068673A1 (zh) 2020-09-30 2021-09-23 指令处理设备以及指令处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011064561.XA CN114327632A (zh) 2020-09-30 2020-09-30 指令处理设备以及指令处理方法

Publications (1)

Publication Number Publication Date
CN114327632A true CN114327632A (zh) 2022-04-12

Family

ID=80949594

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011064561.XA Pending CN114327632A (zh) 2020-09-30 2020-09-30 指令处理设备以及指令处理方法

Country Status (2)

Country Link
CN (1) CN114327632A (zh)
WO (1) WO2022068673A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114827076A (zh) * 2022-06-30 2022-07-29 沐曦集成电路(上海)有限公司 一种基于地址翻译单元的地址返回方法及系统
CN117971722A (zh) * 2024-03-28 2024-05-03 北京微核芯科技有限公司 一种取数指令的执行方法及其装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115456862B (zh) * 2022-11-09 2023-03-24 深流微智能科技(深圳)有限公司 一种用于图像处理器的访存处理方法及设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739358B (zh) * 2009-12-21 2012-07-04 东南大学 利用虚存机制对片上异构存储资源动态分配的方法
CN104572313B (zh) * 2013-10-22 2018-03-13 华为技术有限公司 一种进程间的通信方法及装置
US9542332B2 (en) * 2014-11-13 2017-01-10 Via Alliance Semiconductor Co., Ltd. System and method for performing hardware prefetch tablewalks having lowest tablewalk priority
CN105989758B (zh) * 2015-02-05 2019-03-19 龙芯中科技术有限公司 地址翻译方法和装置
CN110688330B (zh) * 2019-09-23 2021-08-31 北京航空航天大学 一种基于内存映射相邻性的虚拟内存地址翻译方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114827076A (zh) * 2022-06-30 2022-07-29 沐曦集成电路(上海)有限公司 一种基于地址翻译单元的地址返回方法及系统
CN114827076B (zh) * 2022-06-30 2022-09-13 沐曦集成电路(上海)有限公司 一种基于地址翻译单元的地址返回方法及系统
CN117971722A (zh) * 2024-03-28 2024-05-03 北京微核芯科技有限公司 一种取数指令的执行方法及其装置

Also Published As

Publication number Publication date
WO2022068673A1 (zh) 2022-04-07

Similar Documents

Publication Publication Date Title
CN114327632A (zh) 指令处理设备以及指令处理方法
JP5142299B2 (ja) 圧縮状態ビットキャッシュ及びバッキング記憶装置
CN108027642B (zh) 用于隔离输入/输出计算资源的系统和方法
CN102625934B (zh) 共享虚拟存储器
CN103207774B (zh) 用于解决线程发散的方法和系统
CN103777926A (zh) 多线程处理单元中的高效存储器虚拟化
US20140122829A1 (en) Efficient memory virtualization in multi-threaded processing units
CN103777925A (zh) 多线程处理单元中的高效存储器虚拟化
GB2395307A (en) Virtual to physical memory mapping in network interfaces
CN103885893A (zh) 用于访问内容寻址存储器的技术
KR101944757B1 (ko) 파일 액세스 방법, 시스템, 및 호스트
CN102326153A (zh) 以复制写入请求用于一致性存储器拷贝的方法及设备
JP2021502637A (ja) コンピューティング環境内の処理を促進するためのコンピュータ・プログラム、コンピュータ・システムおよび方法
US11429462B2 (en) Method and apparatus for peer-to-peer messaging in heterogeneous machine clusters
JP6974510B2 (ja) データを処理するための方法、装置、デバイス及び媒体
US7009618B1 (en) Integrated I/O Remapping mechanism
KR20130052010A (ko) 인터럽트 신호 접수 장치 및 컴퓨터 장치
CN114238167A (zh) 信息预取方法、处理器、电子设备
CN103218259A (zh) 计算任务的调度和执行
WO2021111217A1 (en) Methods and systems for translating virtual addresses in a virtual memory based system
US11966335B2 (en) Hardware interconnect with memory coherence
US9842049B2 (en) Data deployment determination apparatus, data deployment determination program, and data deployment determination method
Hamidouche et al. CUDA M3: Designing efficient CUDA managed memory-aware MPI by exploiting GDR and IPC
WO2004099992A2 (en) System and method for performing address translation in a computer system
JP2012113604A (ja) 計算機システム、方法、及びi/oスイッチ

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40062806

Country of ref document: HK