CN112463657B - 一种地址转换缓存清除指令的处理方法和处理装置 - Google Patents

一种地址转换缓存清除指令的处理方法和处理装置 Download PDF

Info

Publication number
CN112463657B
CN112463657B CN201910848332.8A CN201910848332A CN112463657B CN 112463657 B CN112463657 B CN 112463657B CN 201910848332 A CN201910848332 A CN 201910848332A CN 112463657 B CN112463657 B CN 112463657B
Authority
CN
China
Prior art keywords
address
register
identification
instruction
physical
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.)
Active
Application number
CN201910848332.8A
Other languages
English (en)
Other versions
CN112463657A (zh
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910848332.8A priority Critical patent/CN112463657B/zh
Priority to PCT/US2020/049675 priority patent/WO2021050414A2/en
Priority to US17/014,752 priority patent/US11550731B2/en
Publication of CN112463657A publication Critical patent/CN112463657A/zh
Application granted granted Critical
Publication of CN112463657B publication Critical patent/CN112463657B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0853Cache with multiport tag or data arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]

Landscapes

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

Abstract

本发明公开了一种指令处理装置,包括第一寄存器,适于存储地址信息;第二寄存器,适于存储地址空间标识信息;解码器,适于接收地址转换缓存清除指令并进行解码,该地址转换缓存清除指令指示第一寄存器作为第一操作数以及第二寄存器作为第二操作数;以及执行单元,耦接到第一寄存器、第二寄存器和解码器,并执行解码后的地址转换缓存清除指令,以便从第一寄存器中获取地址信息,从第二寄存器中获取地址空间标识信息,将所获取的地址信息和地址空间标识信息在耦接到指令处理装置的总线上进行广播,以便耦接到总线的其它处理单元对由地址空间标识信息所指示的地址空间中、与地址信息相对应的地址转换缓存进行清除。本发明还公开了一种相应的指令处理方法、计算***和片上***。

Description

一种地址转换缓存清除指令的处理方法和处理装置
技术领域
本发明涉及处理器领域,尤其涉及具有地址转换缓存清除指令的处理器核心和处理器。
背景技术
现在处理器的存储器存取操作由于分页***的存在而会导致单次的存储器访问操作会导致多次页表访问。因此,分页会大大地降低处理性能,现代处理器一般采用地址转换缓存(通常称为TLB,全称为Translation Lookaside Buffer)技术来减少分页导致的处理开销。利用TLB,已经访问的地址信息会被缓存,从而减少了下次访问同一个地址时所需要的地址转换操作。另外,为了降低这个缓存本身的开销,处理器不会让该缓存时刻与分页***中的页表保持一致。这意味着如果操作***修改了页表,那么这个缓存会变得陈旧而不可用。在现有的处理***中,特别是基于RSIC-V的处理***中,采用了专门的TLB清除指令来通知处理器,TLB所缓存的页表发生改变,于是处理器可以相应地清除相关的TLB项,从而保证TLB缓存项是最新的。
现在的处理器一般包括多个处理器核心,每个处理器核心具有相应的硬件线程(hart)。现有的TLB清除指令仅仅对执行当前指令的硬件线程起作用。例如,如果一个硬件线程在执行指令期间改变了另一个硬件线程所使用的页表项时,不能直接执行TLB清除指令来更新相应页表项,而是需要通过核间中断通信机制,向其它硬件线程发送软中断,以便这些硬件线程分别执行TLB清除指令来更新TLB。
现有的方式在处理器具有多个处理器核心时处理效率较低,因此,需要一种新的TLB清除指令,可以让多个处理器核心高效地进行TLB清除操作。
发明内容
为此,本发明提供了一种新的指令处理装置和指令处理方法,以力图解决或者至少缓解上面存在的至少一个问题。
根据本发明的一个方面,提供了一种指令处理装置,包括第一寄存器、第二寄存器、解码器和耦接到第一寄存器、第二寄存器和解码器的执行单元。第一寄存器适于存储地址信息,且第二寄存器适于存储地址空间标识信息。解码器,适于接收地址转换缓存清除指令并进行解码。地址转换缓存清除指令指示第一寄存器作为第一操作数,以及第二寄存器作为第二操作数。执行单元执行解码后的地址转换缓存清除指令,以便从第一寄存器中获取地址信息,从第二寄存器中获取地址空间标识信息,将所获取的地址信息和地址空间标识信息在耦接到指令处理装置的总线上进行广播,以便耦接到总线的其它处理单元对由地址空间标识信息所指示的地址空间中、与地址信息相对应的地址转换缓存进行清除。
可选地,在根据本发明的指令处理装置中,第二寄存器中还存储有根页表的物理页标识,执行单元还适于在执行清除指令时从第二寄存器获取该根页表的物理页标识,并与地址信息和地址空间标识信息一起发送到总线上。
可选地,根据本发明的指令处理装置还包括耦接到执行单元的硬件寄存器。硬件寄存器适于存储指示是否启用虚拟化(hypervisor)模式的虚拟化标识;以及指示运行权限模式的权限标识。
可选地,在根据本发明的指令令处理装置中,当虚拟化标识指示未启用虚拟化模式时,第一寄存器中存储的地址信息为虚拟地址信息,第二寄存器存储的的物理页标识为用于将虚拟地址翻译为物理地址的一级地址翻译的根页表中的物理页标识。执行单元适于将虚拟地址信息、一级地址翻译的根页表中的物理页标识与地址空间标识一起发送到总线上。
可选地,在根据本发明的指令处理装置中,当虚拟化标识指示启用虚拟化模式,且权限标识指示当前清除指令在客户机中执行时,第一寄存器中存储的地址信息为客户机虚拟地址信息,第二寄存器存储的的物理页标识为用于将客户机虚拟地址翻译为客户机物理地址的一级地址翻译的根页表中的物理页标识。执行单元适于从硬件寄存器获取虚拟机标识以及用于将客户机物理地址翻译为物理地址的二级地址翻译的根页表中的物理页标识,以及将客户机虚拟地址、一级地址翻译的根页表中的物理页标识、地址空间标识、虚拟机标识和二级地址翻译的根页表中的物理页标识一起发送到总线上。
可选地,在根据本发明的指令处理装置中,第二寄存器中还存储有模式标识,以及当虚拟化标识指示启用虚拟化模式、权限标识指示当前清除指令在宿主机中执行、且模式标识指示第一模式时,第一寄存器中存储的地址信息为虚拟地址信息,第二寄存器存储的的物理页标识为用于将虚拟地址翻译为物理地址的一级地址翻译的根页表中的物理页标识。执行单元适于将虚拟地址信息、一级地址翻译的根页表中的物理页标识与地址空间标识一起发送到总线上。
可选地,在根据本发明的指令处理装置中,当虚拟化标识指示启用虚拟化模式、权限标识指示当前清除指令在宿主机中执行、且模式标识指示第二模式时,第一寄存器中存储的地址信息为客户机物理地址信息,第二寄存器存储的物理页标识为用于将客户机物理地址翻译为物理地址的二级地址翻译的根页表中的物理页标识,以及第二寄存器中存储的地址空间标识为虚拟机标识。执行单元适于将客户机物理地址、二级地址翻译的根页表中的物理页标识与虚拟机标识一起发送到总线上。
可选地,在根据本发明的指令处理装置中,硬件寄存器中还存储有指示是否允许执行地址转换缓存清除指令的使能标识,以及执行单元适于在使能标识指示不允许执行地址转换缓存清除指令时,不执行解码后的地址转换缓存清除指令。
可选地,在根据本发明的指令处理装置中,第二寄存器的第一部分中存储物理页标识,不同于第一部分的第二部分中存储地址空间标识,不同于第一和第二部分的第三部分中存储模式标识。
根据本发明的另一个方面,提供了一种IO存储管理单元,包括组映射表,其中存储了域标识和根页表中的物理页标识之间的关联关系。该管理单元适于经由总线接收到由根据本发明的指令处理装置发送的广播时,提取物理页标识,在组映射表中查找具有对应物理页标识的域标识,并使用域标识和所接收的地址信息来对相应的地址转换缓存中的条目进行清除。
根据本发明的还有一个方面,提供了一种指令处理方法,包括接收地址转换缓存清除指令并进行解码。该地址转换缓存清除指令指示第一寄存器为第一操作数以及第二寄存器为第二操作数。该方法随后执行解码后的地址转换清除指令,以便从第一寄存器中获取地址信息,从第二寄存器中获取地址空间标识信息,将所获取的地址信息和地址空间标识信息在总线上进行广播,以便耦接到总线的其它处理单元对由地址空间标识信息所对应的地址空间中、与地址信息相对应的地址转换缓存进行清除。
根据本发明的还有一个方面,提供了一种IO存储管理方法,包括经由总线接收到根据本发明的指令处理方法发送的广播;从广播消息中提取根页表中的物理页标识,在组映射表中查找与物理页标识相对应的域标识,该组映射表中存储了域标识和根页表中的物理页标识之间的关联关系;以及使用查找到的域标识和从广播消息中提取的地址信息来对相应的地址转换缓存中的条目进行清除。
根据本发明的还有一个方面,提供了一种计算***,包括:存储器,以及耦接到存储的处理器。处理器包括寄存器组、解码器和执行单元。其中寄存器组包括适于存储地址信息的第一寄存器、适于存储地址空间标识信息和根页表中的物理页标识的第二寄存器。解码器适于接收地址转换缓存清除指令并进行解码。地址转换清除指令指示第一寄存器为第一操作数、第二寄存器为第二操作数。执行单元耦接到第一寄存器、第二寄存器和解码器,并执行解码后的地址转换缓存清除指令,以便从第一寄存器中获取所述地址信息,从第二寄存器中获取物理页标识和地址空间标识信息,将所获取的地址信息、物理页标识和地址空间标识信息在耦接到处理器的总线上进行广播,以便耦接到总线的其它处理单元对由地址空间标识信息和/或物理页标识所指示的地址空间中、与地址信息相对应的地址转换缓存进行清除。
根据本发明的还有一个方面,提供了一种机器可读存储介质,该机器可读存储介质包括代码,而该代码在被执行时使机器执行根据本发明的指令执行方法。
根据本发明的另一个方面,提供了一种片上***,包括根据本发明的指令处理装置。
根据本发明的还有一个方面,提供了一种智能设备,包括根据本发明的片上***。
根据本发明的方案,在一个硬件线程中执行TLB清除指令时,会把相关信息在总线上广播,这样,耦接到总线的其它硬件线程就可以收到TLB清除的消息,并对其相应的TLB进行清除。通过硬件广播的方式,可以显著提高在多个硬件线程中进行TLB清除的效率。
另外,根据本发明的方案,在总线上进行广播时,除了提供地址空间标识和虚拟地址之外,还提供了根页表中的物理页标识,这样,接收到该广播的其它硬件线程中的处理单元,可以选择采用地址空间标识或者物理页标识中的适当一个来确定要进行TLB清除的地址空间,从而让根据本发明的方案可以应用于处于不同模式下的不同的***和不同的处理单元。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的指令处理装置的示意图;
图2示出了根据本发明一个实施例的指令处理装置的示意图;
图3示出了根据本发明一个实施例的IO存储管理单元的示意图;
图4示出了根据本发明一个实施例的指令处理方法的示意图;
图5示出了根据本发明一个实施例的IO存储管理方法的示意图;
图6A示出了根据本发明实施例的指令处理流水线的示意图;
图6B示出了根据本发明实施例的处理器核架构的示意图;
图7示出了根据本发明一个实施例的处理器1100的示意图;
图8示出了根据本发明一个实施例的计算机***1200的示意图;以及
图9示出了根据本发明的一个实施例的片上***(SoC)1500的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1是根据本发明一个实施例的指令处理装置100的示意图。指令处理装置100具有执行单元140,该执行单元包括可操作用于执行指令(包括根据本发明所述的地址转换缓存清除指令)的电路。在一些实施例中,指令处理装置100可以是处理器、多核处理器的处理器核、或者电子***中的处理元件。
解码器130接收高级机器指令或宏指令形式的传入指令,并且解码这些指令以生成低级微操作、微代码进入点、微指令或其他低级指令或控制信号。低级指令或控制信号可通过低级(例如,电路级或硬件级)操作来实现高级指令的操作。可使用各种不同的机制来实现解码器130。合适机制的示例包括但不限于,微代码、查找表、硬件实现、可编程逻辑阵列(PLA)。本发明不受限于实现解码器130的各种机制,任何可以实现解码器130的机制都在本发明的保护范围之内。
解码器130可接收来自高速缓存110、存储器120或其他源的传入指令。经解码的指令包括一个或多个微操作、微代码进入点、微指令、其它指令或其它控制信号,它们反映了所接收的指令或者从所接收的指令导出。这些经解码的指令被发送到执行单元140,并由执行单元140执行。执行单元140在执行这些指令时,从寄存器组170、高速缓存110和/或存储器120接收数据输入并向它们生成数据输出。
在一个实施例中,寄存器组170包括架构寄存器,架构寄存器也被称为寄存器。除非另外予以规定或清楚明显可知,在本文中,短语架构寄存器、寄存器组、以及寄存器用于表示对软件和/或编程器可见(例如,软件可见的)和/或由宏指令指定来标识操作数的寄存器。这些寄存器不同于给定微架构中的其他非架构式寄存器(例如,临时寄存器、重排序缓冲器、引退寄存器等)。
为了避免混淆描述,已示出和描述了相对简单的指令处理装置100。应当理解,其他实施例可具有超过一个执行单元。例如,装置100可包括多个不同类型的执行单元,诸如例如算术单元、算术逻辑单元(ALU)、整数单元、浮点单元等。指令处理装置或处理器的其他实施例可具有多个核、逻辑处理器或执行引擎。稍后将参考图6A-9提供指令处理装置100的多个实施例。
根据一个实施例,寄存器组170包括矢量寄存器组175。矢量寄存器组175包括多个矢量寄存器175A。每个矢量寄存器175A可以是512位、256位、或128位宽,或者可以使用不同的矢量宽度。寄存器组170还可以包括通用寄存器组176。通用寄存器组176包括多个通用寄存器176A。这些通用寄存器176A可以存储地址转换缓存清除指令的操作数。寄存器组170还包括硬件寄存器组177。硬件寄存器组177包括多个硬件寄存器177A。硬件寄存器177A可以存储指示硬件操作状态的信息。根据一种实施方式,当指令处理装置100为多核处理器中的一个处理器核心时,可以在硬件寄存器177A中存储指示该处理器核心的操作状态的信息,例如,在一个硬件寄存器中存储处理器核心当前的地址转换数据结构信息(例如,RSIC-V架构中的satp寄存器)。在处理器支持虚拟化时,可以在多个硬件寄存器中存储指示当前硬件线程在虚拟化中的状态(例如,在RSIC-V架构中的hgatp寄存器、hstatus寄存器、hedeleg和hideleg寄存器、hcounteren寄存器等),这些硬件寄存器中的值可以在处理器核心进入某个工作状态下时进行设置,或者通过设置这些硬件寄存器的值来改变处理器核心的工作状态。本发明不受限于硬件寄存器177A的具体定义,所有可以从这些硬件寄存器177A中获取当前处理器核心或者指令处理装置100的硬件相关的状态值的寄存器定义都在本发明的保护范围之内。应理解,也可使用支持不同寄存器长度、不同寄存器类型和/或不同数量的寄存器的不同寄存器架构,而没有超出本发明的保护范围。
图2示出了根据本发明一个实施例的指令处理装置200的示意图。图2所示的指令处理装置200为图1所示的指令处理装置100的进一步扩展,并且为了便于描述而略去一些部件。因此,使用和图1中相同的标记来指示相同和/或相似的部件。
指令处理装置200适于执行地址转换缓存清除指令。根据本发明的一个实施方式,地址转换缓存(TLB)清除指令具有如下的形式:
sfence.vma.b rs1 rs2
TLB清除指令sfence.vma.b与现有的TLB清除指令sfence.vma类似,但是具有扩展b以指示该指令在执行时要在总线上进行硬件广播。
TLB清除指令包括指定了第一寄存器rs1的第一操作数和指定了第二寄存器rs2的第二操作数。第一寄存器rs1中存储了地址信息,第二寄存器rs2中存储了地址空间标识信息。
根据本发明的一种实施例,第一寄存器rs1和第二寄存器rs2可以是32位的寄存器,但是本发明不受限于寄存器的长度和类型,所有能在其中存储地址信息和地址空间标识信息的寄存器都在本发明的保护范围之内。下面主要以32位长度的寄存器为例来对TLB清除指令进行描述,但是后续描述的各个方面同样可以应用于其它类型的数据。
根据还有一种实施例,第二寄存器rs2可以在不同的部分存储不同的内容。例如rs2可以至少包括3个部分,其中在第一个部分中存储指示TLB清除指令操作模式的描述标识符mode,在第二部分中存储地址空间标识符id,以及在第三部分中存储根页表中的物理页面标识(ppn)。例如,在第二寄存器rs2为32位寄存器的情况下,可以在第31位存储mode,在第22-30位存储id,以及在第0到21位存储ppn。地址空间标识符id和物理页面标识ppn用于跨越硬件线程hart来确定要进行TLB清除的地址空间,而rs1中存储的地址用于确定利用rs2所确定的地址空间中、与要进行清除的TLB相对应的地址。这样利用rs1和rs2的值,可以让各个硬件线程hart确定本身就要进行清除的TLB项。
如图2所示,解码器130包括解码逻辑132。解码逻辑132对TLB清除指令进行解码,以确定寄存器组176中与rs1对应的第一寄存器以及与rs2对应的第二寄存器。
执行单元140包括模式判断逻辑142、数据组合逻辑144和发布逻辑146。应当注意的是,在执行单元140中各个部件是根据其要实现的逻辑功能而进行划分的,本发明不受限于此,这些逻辑划分可以根据实际需要而在实践中改变,甚至可以进一步拆分和重新组合而没有脱离本发明的保护范围。
模式判断逻辑142读取第二寄存器rs2的值。模式判断逻辑142还从硬件寄存器组177获取与当前执行指令的硬件线程相关的硬件状态,确定要发送给数据组合逻辑144的各个数据。数据组合逻辑144读取第一寄存器rs1中存储的地址信息,并将所读取的地址信息与从模式判断逻辑142获取的数据进行组合。随后,由发布逻辑146将所组合的数据发布到总线上,以便在总线上进行广播。这样耦接到相同总线的其它处理单元就可以接收到该广播,从所接收的广播消息中提取内容,并根据该内容在本地进行TLB清除操作。
根据一个实施例,发布逻辑146可以采用例如ARM公司提出的DVM来在总线上进行TLB清除消息广播,并根据DVM规范来组织广播消息的内容。但是应当注意的,本发明不受限于此,所有可以在总线上进行消息广播,以便让耦接到该总线的所有处理单元都收到该广播消息的方式都在本发明的保护范围之内。
根据一个实施例,模式判断逻辑142将地址空间标识发送给数据组合逻辑144,以便数据组合逻辑144将地址空间标识和地址信息一起发送到总线上,从而让耦接到总线的其它处理单元对由该地址空间标识信息所指示的地址空间中、与该地址信息相对应的地址转换缓存进行清除。
利用这种方式,通过在总线上进行广播的方式,以硬件方式来通知各个具有受影响的TLB表项的硬件线程进行TLB刷新,可以显著提高进行TLB刷新的效率。
根据另一个实施例,模式判断逻辑142还从第二操作数中获取根页表中的物理页面标识ppn,并且也将ppn信息发送给数据组合逻辑144,以便数据组合逻辑144将地址空间标识、ppn信息和地址信息一起发送到总线上。从总线上接收TLB清除消息的各个执行单元有些可以根据地址空间标识来确定地址空间,还有一些可以根据ppn来确定地址空间。通过在总线上提供这两种信息,可以让更多类型的执行单元能够根据总线消息来进行TLB清除操作,因此适用于更多的处理***。
下面,将详细描述模式判断逻辑142根据硬件状态,来确定要发送给数据组合逻辑144的各个数据的具体实施例。
实施例1:
根据一个实施例,硬件状态包括指示是否启用虚拟化(hypervisor)模式的虚拟化标识。当虚拟化标识指示未启用虚拟化模式时,此时,从第二操作数获取的操作模式mode应该限定为第一操作模式(例如,mode=0)。根据一种实施方式,在此情况下,可以不考虑操作模式mode的值;或者当mode值指示不是第一操作模式时,在指令处理装置100中产生异常并进行后续异常处理。本发明不受限于此。
相应地,在这种情况下,在第二寄存器rs2中存储的的物理页标识为用于将虚拟地址翻译为物理地址的一级地址翻译的根页表中的物理页标识(FT.PGD.PPN),在第二寄存器rs2中存储的的地址空间标识就是地址空间标识asid,在寄存器rs1中存储的地址信息为虚拟地址信息vaddr。数据组合逻辑144将vaddr、FT.PGD.PPN和asid发送到总线上,以便广播给耦接到该总线的其它执行单元。
实施例2:
根据另一个实施例,当虚拟化标识指示启用了虚拟化模式时,硬件状态还包括指示当前指令处理装置100的运行权限模式的权限标识。例如,权限标识包括指示指令处理装置100在客户机中执行的状态以及指示指令处理装置100在宿主机中执行的状态。
当判断逻辑142根据权限标识确定指令处理装置100当前在客户机中执行时,则此时,从第二操作数获取的操作模式mode应该限定为第一操作模式(例如,mode=0)。
在这种情况下,在第二寄存器rs2中存储的的物理页标识为用于将客户机虚拟地址翻译为客户机物理地址的一级地址翻译的根页表中的物理页标识(FT.PGD.PPN),在第二寄存器rs2中存储的的地址空间标识就是地址空间标识asid,在寄存器rs1中存储的地址信息为虚拟地址信息vaddr。
另外,模式判断逻辑142还从硬件寄存器177中获取当前的虚拟机标识(VMID)和用于将客户机物理地址翻译为物理地址的二级地址翻译的根页表中的物理页标识(ST.PGD.PPN)。数据组合逻辑144将vaddr、FT.PGD.PPN、asid、VMID和PGD.PPN发送到总线上,以便广播给耦接到该总线的其它执行单元。
在启用了虚拟化模式之后,对于以客户机方式执行的指令处理装置来说,地址空间可以通过asid和vmid的组合来确定,或者可以通过两级地址翻译来确定(即,利用FT.PGD.PPN和ST.PGD.PPN来确定),这样接收到该广播消息的其它执行单元可以根据上述信息来确定要进行清除的TLB表项。
实施例3:
根据另一个实施例,当虚拟化标识指示启用了虚拟化模式,而且权限标识指示指令处理装置100在客户机中执行时,判断逻辑142根据从第二操作数获取的操作模式mode的值来进行不同的操作处理。
当mode的值指示第一操作模式(例如,mode=0)时,即宿主机正常地广播TLB清除消息时,在第二寄存器rs2中存储的的物理页标识为用于将虚拟地址翻译为物理地址的一级地址翻译的根页表中的物理页标识(FT.PGD.PPN),在第二寄存器rs2中存储的的地址空间标识就是地址空间标识asid,在寄存器rs1中存储的地址信息为虚拟地址信息vaddr。数据组合逻辑144将vaddr、FT.PGD.PPN、asid发送到总线上,以便广播给耦接到该总线的其它执行单元。
而当mode的值指示第二操作模式(例如,mode=1)时,即宿主机希望将TLB清除消息广播给驻留在宿主机上的其它客户机时,在第二寄存器rs2中存储的的物理页标识为用于将客户机物理地址翻译为物理地址的二级地址翻译的根页表中的物理页标识(ST.PGD.PPN),在第二寄存器rs2中存储的的地址空间标识为虚拟机标识VMID,在寄存器rs1中存储的地址信息为客户机物理地址GPA。数据组合逻辑144将VMID、ST.PGD.PPN、GPA发送到总线上,以便广播给耦接到该总线的其它执行单元,特别是驻留该宿主机上的其它客户机,由于其它客户机包括相应的asid和FT.PGD.PPN,因此可以在总线上接收到上述TLB清除消息时,将从消息中提取的VMID、ST.PGD.PPN、GPA和本地保留的asid和FT.PGD.PPN相结合,就可以确定要清除的TLB表项。
上面结合实施例1-3描述了执行单元140在各种不同操作状态下为地址转换缓存清除指令的各个寄存器提供操作数的方式,从而使得地址转换缓存清除指令(sfence.vma.b)能够在各种状态都可以发布合适的TLB清除消息,并且让接收到该清除消息的处理单元能够根据该TLB清除消息来对相应的TLB表项进行清除。
另外,考虑到TLB清除指令在执行时会在总线上广播TLB清除消息,会导致在总线上的消息传输和处理开销,因此,根据本发明的一种实施方式,可以在硬件寄存器177中设置指令使能标识,用于控制是否允许执行上述TLB清除指令(sfence.vma.b)。执行单元140根据该使能标识的值来确定是否执行TLB清除指令。当指示使能标识指示不允许执行TLB清除指令(例如将使能标识设置为0),则执行单元140不执行该指令,并且可选地产生异常信息。
图3示出了根据本发明一个实施例的IO存储管理单元300的示意图。IO存储管理单元,即IOMMU 300适于在未启动虚拟化模式的情况下,对从总线接收到的TLB清除广播消息进行处理。
如图3所示,IOMMU 300包括组映射表310。组映射表310中存储了域标识(DID)和根页表中的物理页标识(PGD.PPN)之间的关联关系。
IOMMU 300还包括处理单元320。处理单元320从总线接收到包括TLB清除消息的广播(例如,根据DVM规范)。并从该消息中提取物理页标识(PGD.PPN),在组映射表310中查找具有对应物理页标识PGD.PPN的域标识DID,并使用该域标识DID和从广播中提取的地址信息vaddr来对相应的地址转换缓存TLB中的表项进行清除。
对于图3所示的IOMMU 300而言,由于IOMMU只能识别PGD.PPN,如果TLB清除消息中不包括物理页标识,将无法对IOMMU管理的TLB表项进行刷新,因此,在消息中加入物理页标识可以让不同的处理单元都可以对其本地TLB表项进行恰当处理,从而使得跨越硬件线程来进行TLB高效清除成为可能。
图4示出了根据本发明还有一个实施例的指令处理方法400的示意图。图4所述的指令处理方法适于在参考图1、图2和图6A-图9描述的指令处理装置、处理器核心、处理器计算机***和片上***等中执行,并适于执行上面描述的地址转换缓存清除指令。
如图4所示,方法400始于步骤S410。在步骤S410中,接收地址转换缓存清除指令并进行解码。
根据本发明的一个实施方式,地址转换缓存(TLB)清除指令具有如下的形式:
sfence.vma.b rs1 rs2
TLB清除指令sfence.vma.b与现有的TLB清除指令sfence.vma类似,但是具有扩展b以指示该指令在执行时要在总线上进行硬件广播。
TLB清除指令包括指定了第一寄存器rs1的第一操作数和指定了第二寄存器rs2的第二操作数。第一寄存器rs1中存储了地址信息,第二寄存器rs2中存储了地址空间标识信息。
根据还有一种实施例,第二寄存器rs2可以在不同的部分存储不同的内容。例如rs2可以至少包括3个部分,其中在第一个部分中存储指示TLB清除指令操作模式的描述标识符mode,在第二部分中存储地址空间标识符id,以及在第三部分中存储根页表中的物理页面标识(ppn)。地址空间标识符id和物理页面标识ppn用于跨越硬件线程hart来确定要进行TLB清除的地址空间,而rs1中存储的地址用于确定利用rs2所确定的地址空间中、与要进行清除的TLB相对应的地址。这样利用rs1和rs2的值,可以让各个硬件线程hart确定本身就要进行清除的TLB项。
随后,在步骤S420中,执行在步骤S410中解码的地址转换清除指令,以便从第一寄存器rs1中获取地址信息,从第二寄存器rs2中获取地址空间标识信息,将所获取的地址信息和地址空间标识信息在总线上进行广播,以便耦接到总线的其它处理单元对由地址空间标识信息所对应的地址空间中、与地址信息相对应的地址转换缓存进行清除。
利用这种方式,通过在总线上进行广播,以硬件方式来通知各个具有受影响的TLB表项的硬件线程进行TLB刷新,可以显著提高进行TLB刷新的效率。
根据一种实施例,在步骤S420中,可以采用例如ARM公司提出的DVM来在总线上进行TLB清除消息广播,并根据DVM规范来组织广播消息的内容。但是应当注意的,本发明不受限于此,所有可以在总线上进行消息广播,以便让耦接到该总线的所有处理单元都收到该广播消息的方式都在本发明的保护范围之内。
根据另一个实施例,在步骤S420中,还从第二操作数中获取根页表中的物理页面标识ppn,并且将地址空间标识、ppn信息和地址信息一起发送到总线上。从总线上接收TLB清除消息的各个执行单元有些可以根据地址空间标识来确定地址空间,还有一些可以根据ppn来确定地址空间。通过在总线上提供这两种信息,可以让更多类型的执行单元能够根据总线消息来进行TLB清除操作,因此适用于更多的处理***。
另外,可选地,在步骤S420中,还根据硬件状态来确定在总线上进行广播的TLB清除消息的具体内容。上面参考实施例1-3描述了在各种硬件状态下,可以在步骤S420中进行广播的消息的具体内容,这里就不再进行赘述。
根据本发明的一个实施例,考虑到TLB清除指令在执行时会在总线上广播TLB清除消息,会导致在总线上的消息传输和处理开销,因此,根据本发明的一种实施方式,可以在硬件寄存器177中设置指令使能标识,用于控制是否允许执行上述TLB清除指令(sfence.vma.b)。在步骤S420中,根据该使能标识的值来确定是否执行TLB清除指令。当指示使能标识指示不允许执行TLB清除指令(例如将使能标识设置为0),则不执行该指令,并且可选地产生异常信息。
上面描述了在各种不同操作状态下为地址转换缓存清除指令的各个寄存器提供操作数的方式,从而使得利用方法400执行地址转换缓存清除指令(sfence.vma.b)时,能够在各种状态都可以发布合适的TLB清除消息。
图5示出了根据本发明一个实施例的IO存储管理方法500的示意图。IO存储管理方法在IO存储管理单元,即IOMMU 300中执行,并适于在未启动虚拟化模式的情况下,对从总线接收到的TLB清除广播消息进行处理。
如图5所示,方法500始于步骤S510。在步骤S510中,从总线接收包括TLB清除消息的广播(例如,根据DVM规范)。随后在步骤S520中,从该消息中提取物理页标识(PGD.PPN),在上面参考图3描述的组映射表310中查找具有对应物理页标识PGD.PPN的域标识DID,并在步骤S530中使用该域标识DID和从广播中提取的地址信息vaddr来对相应的地址转换缓存TLB中的表项进行清除。
如上所述,根据本发明的指令处理装置可以实现为处理器核,且指令处理方法可以在处理器核中执行。处理器核可以不同的方式在不同的处理器中实现。例如,处理器核可以实现为用于通用计算的通用有序核、用于通用计算的高性能通用无序核、以及用于图形和/或科学(吞吐量)计算的专用核。而处理器可以实现为CPU(中央处理器)和/或协处理器,其中CPU可以包括一个或多个通用有序核和/或一个或多个通用无序核,而协处理器可以包括一个或多个专用核。这样的不同处理器的组合可以导致不同的计算机***架构。在一种计算机***架构中,协处理器在与CPU分开的芯片上。在另一种计算机***架构中,协处理器在与CPU相同的封装中但处于分开的管芯上。在还有一种计算机***架构中,协处理器与CPU在相同管芯上(在该情况下,这样的协处理器有时被称为诸如集成图形和/或科学(吞吐量)逻辑等专用逻辑,或被称为专用核)。在还有一种称为片上***的计算机***架构中,可以将所描述的CPU(有时被称为应用核或应用处理器)、以上描述的协处理器和附加功能包括在同一管芯上。后续将参考图6A-9来描述示例性的核架构、处理器和计算机架构。
图6A为示出根据本发明实施例的指令处理流水线的示意图,其中流水线包括有序流水线以及无序发布/执行流水线。图6B为示出根据本发明实施例的处理器核架构的示意图,其中包括有序架构核以及与寄存器重命名相关的无序发布/执行架构核。在图6A和6B中,用实线框示出了有序流水线和有序核,而在虚线框中的可选附加项示出了无序发布/执行流水线和核。
如图6A所示,处理器流水线900包括取出级902、长度解码级904、解码级906、分配级908、重命名级910、调度(也称为分派或发布)级912、寄存器读取/存储器读取级914、执行级916、写回/存储器写入级918、异常处理级922和提交级924。
如图6B所示,处理器核900包括执行引擎单元950和耦合到执行引擎单元950的前端单元930。执行引擎单元950和前端单元930两者都耦合到存储器单元970。核990可以是精简指令集计算(RISC)核、复杂指令集计算(CISC)核、超长指令字(VLIW)核或混合或替代核类型。作为又一选项,核990可以是专用核,诸如例如网络或通信核、压缩引擎、协处理器核、通用计算图形处理器单元(GPGPU)核、或图形核(GPU)等等。
前端单元930包括分支预测单元934、耦接到分预测单元934的指令高速缓存单元932、耦接到指令高速缓存单元936的指令转换后备缓冲器(TLB)938、耦接到指令转换后备缓冲器940的指令取出单元938、和耦接到指令取出单元938的解码单元940。解码单元(或解码器)940可解码指令,并生成从原始指令解码出的、或以其他方式反映原始指令的、或从原始指令导出的一个或多个微操作、微代码进入点、微指令、其他指令、或其他控制信号作为输出。解码单元940可使用各种不同的机制来实现,包括但不限于查找表、硬件实现、可编程逻辑阵列(PLA)、微代码只读存储器(ROM)等。在一个实施例中,核990包括存储(例如,在解码单元940中或否则在前端单元930内的)某些宏指令的微代码的微代码ROM或其他介质。解码单元940耦接到至执行引擎单元950中的重命名/分配器单元952。
执行引擎单元950包括重命名/分配器单元952。重命名/分配器单元952耦接到引退单元954和一个或多个调度器单元956。调度器单元956表示任何数目的不同调度器,包括预留站、中央指令窗等。调度器单元956耦接到各个物理寄存器组单元958。每个物理寄存器组单元958表示一个或多个物理寄存器组。不同的物理寄存器组存储一种或多种不同的数据类型,诸如标量整数、标量浮点、打包整数、打包浮点、向量整数、向量浮点、状态(例如,作为要执行的下一指令的地址的指令指针)等。在一个实施例中,物理寄存器组单元958包括向量寄存器单元、写掩码寄存器单元和标量寄存器单元。这些寄存器单元可以提供架构向量寄存器、向量掩码寄存器、和通用寄存器。物理寄存器组单元958被引退单元954覆盖以示出可以用来实现寄存器重命名和无序执行的各种方式(例如,使用重新排序缓冲器和引退寄存器组;使用将来的文件、历史缓冲器和引退寄存器组;使用寄存器图和寄存器池等等)。引退单元954和物理寄存器组单元958耦接到执行群集960。执行群集960包括一个或多个执行单元962和一个或多个存储器访问单元964。执行单元962可以执行各种操作(例如,移位、加法、减法、乘法),以及对各种类型的数据(例如,标量浮点、打包整数、打包浮点、向量整型、向量浮点)执行操作。尽管某些实施例可以包括专用于特定功能或功能集合的多个执行单元,但其他实施例可包括全部执行所有功能的仅一个执行单元或多个执行单元。在一些实施例中,由于会为某些类型的数据/操作创建单独的流水线(例如,标量整型流水线、标量浮点/打包整型/打包浮点/向量整型/向量浮点流水线,和/或各自具有其自己的调度器单元、物理寄存器组单元和/或执行群集的存储器访问流水线),所以调度器单元956、物理寄存器组单元958和执行群集960可能有多个。还应当理解,在使用单独的流水线的情况下,这些流水线中的一个或多个可以是无序发布/执行,并且其余流水线可以是有序发布/执行。
存储器访问单元964耦接到存储器单元970,该存储器单元970包括数据TLB单元972、耦接到数据TLB单元972的数据高速缓存单元974、以及耦接到数据高速缓存单元974的二级(L2)高速缓存单元976。在一个示例性实施例中,存储器访问单元964可包括加载单元、存储地址单元和存储数据单元,其中的每一个均耦接到存储器单元970中的数据TLB单元972。指令高速缓存单元934还可以耦接到存储器单元970中的二级(L2)高速缓存单元976。L2高速缓存单元976耦接到一个或多个其他级的高速缓存,并最终耦接到主存储器。
作为示例,上面参考图6B描述的核架构可以如下方式来实现上面参考图6A描述的流水线900:1)指令取出单元938执行取出和长度解码级902和904;2)解码单元940执行解码级906;3)重命名/分配器单元952执行分配级908和重命名级910;4)调度器单元956执行调度级912;5)物理寄存器组单元958和存储器单元970执行寄存器读取/存储器读取级914;执行群集960执行执行级916;6)存储器单元970和物理寄存器组单元958执行写回/存储器写入级918;7)各单元可牵涉到异常处理级922;以及8)引退单元954和物理寄存器组单元958执行提交级924。
核990可支持一个或多个指令集(例如,x86指令集(具有与较新版本一起添加的某些扩展);MIPS技术公司的MIPS指令集;ARM控股的ARM指令集(具有诸如NEON等可选附加扩展)),其中包括本文中描述的各指令。应当理解,核可支持多线程化(执行两个或更多个并行的操作或线程的集合),并且可以按各种方式来完成该多线程化,此各种方式包括时分多线程化、同步多线程化(其中单个物理核为物理核正同步多线程化的各线程中的每一个线程提供逻辑核)、或其组合(例如,时分取出和解码以及此后诸如用超线程化技术来同步多线程化)。
图7示出了根据本发明一个实施例的处理器1100的示意图。如图7中的实线框所示,根据一种实施方式,处理器1110包括单个核1102A、***代理单元1110、总线控制器单元1116。如图7中的虚线框所示,根据本发明的另一个实施方式,处理器1100还可以包括多个核1102A-N、处于***代理单元1110中的集成存储器控制器单元1114以及专用逻辑1108。
根据一种实施方式,处理器1100可以实现为中央处理器(CPU),其中专用逻辑1108是集成图形和/或科学(吞吐量)逻辑(其可包括一个或多个核),且核1102A-N是一个或多个通用核(例如,通用有序核、通用无序核、这两者的组合)。根据另一种实施方式,处理器1100可以实现为协处理器,其中核1102A-N是用于图形和/或科学(吞吐量)的多个专用核。根据还有一种实施方式,处理器1100可以实现为协处理器,其中核1102A-N是多个通用有序核。因此,处理器1100可以是通用处理器、协处理器或专用处理器,诸如例如网络或通信处理器、压缩引擎、图形处理器、GPGPU(通用图形处理单元)、高吞吐量的集成众核(MIC)协处理器(包括30个或更多核)、或嵌入式处理器等。该处理器可以被实现在一个或多个芯片上。处理器1100可以是一个或多个衬底的一部分,和/或可以使用诸如例如BiCMOS、CMOS或NMOS等的多个加工技术中的任何一个技术将其实现在一个或多个衬底上。
存储器层次结构包括在各核内的一个或多个级别的高速缓存、一个或多个共享高速缓存单元1106、以及耦接到集成存储器控制器单元1114的外部存储器(未示出)。该共享高速缓存单元1106可以包括一个或多个中间级高速缓存,诸如二级(L2)、三级(L3)、四级(L4)或其他级别的高速缓存、末级高速缓存(LLC)、和/或其组合。尽管在一个实施例中,基于环的互连单元1112将集成图形逻辑1108、共享高速缓存单元1106以及***代理单元1110/集成存储器控制器单元1114互连,本发明不受限于此,并且可使用任何数量的公知技术来将这些单元互连。
***代理1110包括协调和操作核1102A-N的那些组件。***代理单元1110可包括例如功率控制单元(PCU)和显示单元。PCU可以包括调整核1102A-N和集成图形逻辑1108的功率状态所需的逻辑和组件。显示单元用于驱动一个或多个外部连接的显示器。
核1102A-N可以具有上面参考图6A和6B描述的核架构,并且在架构指令集方面可以是同构的或异构的。即,这些核1102A-N中的两个或更多个核可能能够执行相同的指令集,而其他核可能能够执行该指令集的仅仅子集或不同的指令集。
图8示出了根据本发明一个实施例的计算机***1200的示意图。图8所示的计算机***1200可以应用于膝上型设备、台式机、手持PC、个人数字助理、工程工作站、服务器、网络设备、网络集线器、交换机、嵌入式处理器、数字信号处理器(DSP)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持设备以及各种其他电子设备。本发明不受限于此,所有可以纳入本说明书中所公开的处理器和/或其它执行逻辑的***都在本发明的保护范围之内。
如图8所示,***1200可以包括一个或多个处理器1210、1215。这些处理器耦接到控制器中枢1220。在一个实施例中,控制器中枢1220包括图形存储器控制器中枢(GMCH)1290和输入/输出中枢(IOH)1250(其可以在分开的芯片上)。GMCH 1290包括与存储器1240和协处理器1245相耦接的存储器控制器和图形控制器。IOH 1250将输入/输出(I/O)设备1260耦接到GMCH 1290。做为选择,存储器控制器和图形控制器集成在处理器中,这样存储器1240和协处理器1245就直接耦接到处理器1210,此时控制器中枢1220仅仅包括IOH1250。
附加处理器1215的任选性质用虚线表示在图8中。每一处理器1210、1215可包括本文中描述的处理核中的一个或多个,并且可以是处理器1100的某一版本。
存储器1240可以是例如动态随机访问存储器(DRAM)、相变存储器(PCM)或这两者的组合。对于至少一个实施例,控制器中枢1220经由诸如前侧总线(FSB)之类的多分支总线(multi-drop bus)、诸如快速通道互连(QPI)之类的点对点接口、或者类似的连接1295与处理器1210、1215进行通信。
在一个实施例中,协处理器1245是专用处理器,诸如例如高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、或嵌入式处理器等等。在一个实施例中,控制器中枢1220可以包括集成图形加速器。
在一个实施例中,处理器1210执行控制一般类型的数据处理操作的指令。嵌入在这些指令中的可以是协处理器指令。处理器1210识别如具有应当由附连的协处理器1245执行的类型的这些协处理器指令。因此,处理器1210在协处理器总线或者其他互连上将这些协处理器指令(或者表示协处理器指令的控制信号)发布到协处理器1245。协处理器1245接受并执行所接收的协处理器指令。
图9示出了根据本发明的一个实施例的片上***(SoC)1500的示意图。图9所示的片上***包含了图7所示的处理器1100,因此与图7中相似的部件具有同样的附图标记。如图9所示,互连单元1502耦接到应用处理器1510、***代理单元1110、总线控制器单元1116、集成存储器控制器单元1114、一个或多个协处理器1520、静态随机存取存储器(SRAM)单元1530、直接存储器存取(DMA)单元1532以及用于耦合至一个或多个外部显示器的显示单元1540。应用处理器1510包括一个或多个核1102A-N的集合以及共享高速缓存单元110。协处理器1520包括集成图形逻辑、图像处理器、音频处理器和视频处理器。在一个实施例中,协处理器1520包括专用处理器,诸如例如网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、或嵌入式处理器等等。
本文公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本发明的实施例可实现为在可编程***上执行的计算机程序或程序代码,该可编程***包括至少一个处理器、存储***(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
另外,上面描述的片上***可以包含在智能设备中,以便在智能设备中实现相应的功能,包括但不限于执行相关控制程序、进行数据分析、运算和处理、网络通信、控制智能设备中的外设等。
这样的智能设备包括专门的智能设备,如移动终端和个人数字终端等,这些设备中包括根据本发明的一个或者多个片上***来进行数据处理,或者对设备中的外设进行控制。
这样的智能设备还包括为了实现特定功能而构造的专门设备,例如智能音箱、和智能显示设备等。这些设备中包括根据本发明的片上***来对音箱和显示设备进行控制,从而赋予音箱和显示设备额外的通信、感知和数据处理等功能。
这样的智能设备还包括各种IoT和AIoT设备。这些设备中包括根据本发明的片上***进行数据处理,例如进行AI运算、数据通信和传输等,从而实现了更加密集且更加智能的设备分布。
这样的智能设备还可以在车辆中使用,例如可以实现为车载设备、或者可以嵌入到车辆中,从而为车辆的智能驾驶提供数据处理能力。
这样的智能设备还可以用于家庭和娱乐领域,例如可以实现为智能音箱、智能空调、智能冰箱、智能显示设备等。这些设备包括根据本发明的片上***来进行数据处理和外设控制,从而实现了家庭和娱乐设备的智能化。
另外,这样的智能设备还可以用于工业领域,例如可以实现为工控设备、感测设备、IoT设备,AIoT设备和制动设备等。这些设备中包括根据本发明的片上***来进行数据处理和外设控制,从而实现了工业设备的智能化。
以上对智能设备的描述仅仅是示意性的,根据本发明的智能设备不受限于此,所有可以利用根据本发明的片上***进行数据处理的智能设备都在本发明的保护范围之内。
应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机***的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

Claims (18)

1.一种指令处理装置,包括:
第一寄存器,适于存储地址信息;
第二寄存器,适于存储地址空间标识信息,还存储有根页表的物理页标识;
解码器,适于接收地址转换缓存清除指令并进行解码,所述地址转换缓存清除指令指示:
所述第一寄存器,作为第一操作数、
所述第二寄存器,作为第二操作数;
以及
执行单元,耦接到所述第一寄存器、第二寄存器和解码器,并执行所述解码后的地址转换缓存清除指令,以便从所述第一寄存器中获取所述地址信息,从所述第二寄存器中获取所述地址空间标识信息和所述根页表的物理页标识,将所获取的地址信息和地址空间标识信息以及根页表的物理页标识在耦接到所述指令处理装置的总线上进行广播,以便耦接到所述总线的其它处理单元对由所述地址空间标识信息和/或所述根页表的物理页标识所指示的地址空间中、与所述地址信息相对应的地址转换缓存进行清除;
硬件寄存器,耦接到所述执行单元,适于存储:
指示是否启用虚拟化(hypervisor)模式的虚拟化标识;以及
指示运行权限模式的权限标识;
其中,当所述虚拟化标识指示未启用虚拟化模式时:
所述第一寄存器中存储的地址信息为虚拟地址信息;
所述第二寄存器存储的的物理页标识为用于将虚拟地址翻译为物理地址的一级地址翻译的根页表中的物理页标识;以及
所述执行单元适于将所述虚拟地址信息、所述一级地址翻译的根页表中的物理页标识与所述地址空间标识信息一起发送到所述总线上。
2.如权利要求1所述的指令处理装置,其中当所述虚拟化标识指示启用虚拟化模式,且所述权限标识指示当前清除指令在客户机中执行时:
所述第一寄存器中存储的地址信息为客户机虚拟地址信息;
所述第二寄存器存储的的物理页标识为用于将客户机虚拟地址翻译为客户机物理地址的一级地址翻译的根页表中的物理页标识;以及
所述执行单元适于:
从所述硬件寄存器获取虚拟机标识,以及用于将所述客户机物理地址翻译为物理地址的二级地址翻译的根页表中的物理页标识;以及
将所述客户机虚拟地址、所述一级地址翻译的根页表中的物理页标识、所述地址空间标识、所述虚拟机标识和所述二级地址翻译的根页表中的物理页标识一起发送到所述总线上。
3.如权利要求1-2中任一个所述的指令处理装置,其中所述第二寄存器中还存储有模式标识,以及当所述虚拟化标识指示启用虚拟化模式、所述权限标识指示当前清除指令在宿主机中执行、且所述模式标识指示第一模式时:
所述第一寄存器中存储的地址信息为虚拟地址信息;
所述第二寄存器存储的的物理页标识为用于将虚拟地址翻译为物理地址的一级地址翻译的根页表中的物理页标识;以及
所述执行单元适于将所述虚拟地址信息、所述一级地址翻译的根页表中的物理页标识与所述地址空间标识一起发送到所述总线上。
4.如权利要求3所述的指令处理装置,其中当所述虚拟化标识指示启用虚拟化模式、所述权限标识指示当前清除指令在宿主机中执行、且所述模式标识指示第二模式时:
所述第一寄存器中存储的地址信息为客户机物理地址信息;
所述第二寄存器存储的物理页标识为用于将所述客户机物理地址翻译为物理地址的二级地址翻译的根页表中的物理页标识;
所述第二寄存器中存储的地址空间标识为虚拟机标识;以及
所述执行单元适于将所述客户机物理地址、所述二级地址翻译的根页表中的物理页标识与所述虚拟机标识一起发送到所述总线上。
5.如权利要求1-2、4中任一个所述的指令处理装置,其中所述硬件寄存器中存储有指示是否允许执行所述地址转换缓存清除指令的使能标识,以及
所述执行单元适于在所述使能标识指示不允许执行所述地址转换缓存清除指令时,不执行所述解码后的地址转换缓存清除指令。
6.如权利要求3中任一个所述的指令处理装置,其中所述第二寄存器的第一部分中存储所述物理页标识,不同于所述第一部分的第二部分中存储地址空间标识,不同于所述第一和第二部分的第三部分中存储所述模式标识。
7.一种IO存储管理单元,耦接到总线,包括:
组映射表,其中存储了域标识和根页表中的物理页标识之间的关联关系;以及
所述管理单元适于经由所述总线接收到由权利要求1-6中任一个所述的指令处理装置发送的广播时,提取所述物理页标识,在所述组映射表中查找具有对应物理页标识的域标识,并使用所述域标识和所接收的地址信息来对相应的地址转换缓存中的条目进行清除。
8.一种指令处理方法,包括:
接收地址转换缓存清除指令并进行解码,所述地址转换缓存清除指令指示第一寄存器为第一操作数以及第二寄存器为第二操作数;以及
执行所述解码后的地址转换清除指令,以便从所述第一寄存器中获取地址信息,从所述第二寄存器中获取地址空间标识信息和所述根页表的物理页标识,将所获取的地址信息和地址空间标识信息以及根页表的物理页标识在总线上进行广播,以便耦接到所述总线的其它处理单元对由所述地址空间标识信息和/或所述根页表的物理页标识所对应的地址空间中、与所述地址信息相对应的地址转换缓存进行清除;
从硬件寄存器获取指示是否启用虚拟化(hypervisor)模式的虚拟化标识;以及指示运行权限模式的权限标识;
其中,当所述虚拟化标识指示未启用虚拟化模式时:
所述第一寄存器中存储的地址信息为虚拟地址信息;
所述第二寄存器存储的的物理页标识为用于将虚拟地址翻译为物理地址的一级地址翻译的根页表中的物理页标识;以及
所述执行所述解码后的地址转换清除指令包括将所述虚拟地址信息、所述一级地址翻译的根页表中的物理页标识与所述地址空间标识信息一起发送到所述总线上。
9.如权利要求8所述的指令处理方法,其中当所述虚拟化标识指示启用虚拟化模式,且所述权限标识指示当前清除指令在客户机中执行时:
所述第一寄存器中存储的地址信息为客户机虚拟地址信息;
所述第二寄存器存储的的物理页标识为用于将客户机虚拟地址翻译为客户机物理地址的一级地址翻译的根页表中的物理页标识;以及
所述执行所述清除指令包括:
从所述硬件寄存器获取虚拟机标识,以及用于将所述客户机物理地址翻译为物理地址的二级地址翻译的根页表中的物理页标识;以及
将所述客户机虚拟地址、所述一级地址翻译的根页表中的物理页标识、所述地址空间标识、所述虚拟机标识和所述二级地址翻译的根页表中的物理页标识一起发送到所述总线上。
10.如权利要求8-9中任一个所述的指令处理方法,其中所述第二寄存器中还存储有模式标识,以及当所述虚拟化标识指示启用虚拟化模式、所述权限标识指示当前清除指令在宿主机中执行、且所述模式标识指示第一模式时:
所述第一寄存器中存储的地址信息为虚拟地址信息;
所述第二寄存器存储的的物理页标识为用于将虚拟地址翻译为物理地址的一级地址翻译的根页表中的物理页标识;以及
所述执行清除指令包括将所述虚拟地址信息、所述一级地址翻译的根页表中的物理页标识与所述地址空间标识一起发送到所述总线上。
11.如权利要求10所述的指令处理方法,其中当所述虚拟化标识指示启用虚拟化模式、所述权限标识指示当前清除指令在宿主机中执行、且所述模式标识指示第二模式时:
所述第一寄存器中存储的地址信息为客户机物理地址信息;
所述第二寄存器存储的物理页标识为用于将所述客户机物理地址翻译为物理地址的二级地址翻译的根页表中的物理页标识;
所述第二寄存器中存储的地址空间标识为虚拟机标识;以及
所述执行清除指令包括将所述客户机物理地址、所述二级地址翻译的根页表中的物理页标识与所述虚拟机标识一起发送到所述总线上。
12.如权利要求8-9、11中任一个所述的指令处理方法,还包括:
从所述硬件寄存器中获取指示是否允许执行所述地址转换缓存清除指令的使能标识,以及
在所述使能标识指示不允许执行所述地址转换缓存清除指令时,不执行所述解码后的地址转换缓存清除指令。
13.如权利要求10中任一个所述的指令处理方法,其中所述第二寄存器的第一部分中存储所述物理页标识,不同于所述第一部分的第二部分中存储地址空间标识,不同于所述第一和第二部分的第三部分中存储所述模式标识。
14.一种IO存储管理方法,包括:
经由总线接收到根据权利要求8-13任一个所述的指令处理方法发送的广播;
从所述广播消息中提取根页表中的物理页标识,在组映射表中查找与所述物理页标识相对应的域标识,所述组映射表中存储了域标识和根页表中的物理页标识之间的关联关系;以及
使用查找到的域标识和从所述广播消息中提取的地址信息来对相应的地址转换缓存中的条目进行清除。
15.一种计算***,包括:
存储器;以及
处理器,耦接到所述存储器,并包括:
寄存器组,包括适于存储地址信息的第一寄存器、适于存储地址空间标识信息和
根页表中的物理页标识的第二寄存器;
解码器,适于接收地址转换缓存清除指令并进行解码,所述地址转换清除指令指
示所述第一寄存器为第一操作数、所述第二寄存器为第二操作数;以及
执行单元,耦接到所述第一寄存器、第二寄存器和解码器,并执行所述解码后的
地址转换缓存清除指令,以便从所述第一寄存器中获取所述地址信息,从所述第二寄
存器中获取所述物理页标识和地址空间标识信息,将所获取的地址信息、物理页标识
和地址空间标识信息在耦接到所述处理器的总线上进行广播,以便耦接到所述总线的
其它处理单元对由所述地址空间标识信息和/或物理页标识所指示的地址空间中、与所述地址信息相对应的地址转换缓存进行清除;
硬件寄存器,耦接到所述执行单元,适于存储:
指示是否启用虚拟化(hypervisor)模式的虚拟化标识;以及
指示运行权限模式的权限标识;
其中,当所述虚拟化标识指示未启用虚拟化模式时:
所述第一寄存器中存储的地址信息为虚拟地址信息;
所述第二寄存器存储的的物理页标识为用于将虚拟地址翻译为物理地址的一级地址翻译的根页表中的物理页标识;以及
所述执行单元适于将所述虚拟地址信息、所述一级地址翻译的根页表中的物理页标识与所述地址空间标识信息一起发送到所述总线上。
16.一种机器可读存储介质,所述机器可读存储介质包括代码,所述代码在被执行时使机器执行如权利要求8-13中的任一项所述的方法。
17.一种片上***,包括如权利要求1-7中任一个所述的指令处理装置。
18.一种智能设备,包括如权利要求17所述的片上***。
CN201910848332.8A 2019-09-09 2019-09-09 一种地址转换缓存清除指令的处理方法和处理装置 Active CN112463657B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201910848332.8A CN112463657B (zh) 2019-09-09 2019-09-09 一种地址转换缓存清除指令的处理方法和处理装置
PCT/US2020/049675 WO2021050414A2 (en) 2019-09-09 2020-09-08 Processing method and apparatus for translation lookaside buffer flush instruction
US17/014,752 US11550731B2 (en) 2019-09-09 2020-09-08 Processing method and apparatus for translation lookaside buffer flush instruction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910848332.8A CN112463657B (zh) 2019-09-09 2019-09-09 一种地址转换缓存清除指令的处理方法和处理装置

Publications (2)

Publication Number Publication Date
CN112463657A CN112463657A (zh) 2021-03-09
CN112463657B true CN112463657B (zh) 2024-06-18

Family

ID=74807369

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910848332.8A Active CN112463657B (zh) 2019-09-09 2019-09-09 一种地址转换缓存清除指令的处理方法和处理装置

Country Status (3)

Country Link
US (1) US11550731B2 (zh)
CN (1) CN112463657B (zh)
WO (1) WO2021050414A2 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112463657B (zh) * 2019-09-09 2024-06-18 阿里巴巴集团控股有限公司 一种地址转换缓存清除指令的处理方法和处理装置
WO2023019537A1 (en) * 2021-08-20 2023-02-23 Intel Corporation Apparatuses, methods, and systems for device translation lookaside buffer pre-translation instruction and extensions to input/output memory management unit protocols
CN114265812B (zh) * 2021-11-29 2024-02-02 山东云海国创云计算装备产业创新中心有限公司 降低risc-v向量处理器访存延迟的方法、装置、设备及介质
CN116185502B (zh) * 2023-02-16 2023-11-07 南京金阵微电子技术有限公司 流水线处理器及电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019001896A1 (en) * 2017-06-28 2019-01-03 Arm Limited INVALIDATION OF ADDRESS TRANSLATION DATA

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7555628B2 (en) 2006-08-15 2009-06-30 Intel Corporation Synchronizing a translation lookaside buffer to an extended paging table
US8060722B2 (en) * 2009-03-27 2011-11-15 Vmware, Inc. Hardware assistance for shadow page table coherence with guest page mappings
JP5459006B2 (ja) * 2010-03-24 2014-04-02 富士通株式会社 メモリ管理装置、メモリ管理方法及びメモリ管理プログラム
KR102002900B1 (ko) 2013-01-07 2019-07-23 삼성전자 주식회사 메모리 관리 유닛을 포함하는 시스템 온 칩 및 그 메모리 주소 변환 방법
US9619387B2 (en) * 2014-02-21 2017-04-11 Arm Limited Invalidating stored address translations
US10019275B2 (en) * 2014-06-23 2018-07-10 Vmware, Inc. Hypervisor context switching using a trampoline scheme in processors having more than two hierarchical privilege levels
US20160092371A1 (en) * 2014-09-26 2016-03-31 Intel Corporation Method and Apparatus For Deterministic Translation Lookaside Buffer (TLB) Miss Handling
US9501425B2 (en) * 2014-11-14 2016-11-22 Cavium, Inc. Translation lookaside buffer management
US10922114B2 (en) 2016-12-12 2021-02-16 Intel Corporation System and method to improve nested virtual machine monitor performance
US10409603B2 (en) * 2016-12-30 2019-09-10 Intel Corporation Processors, methods, systems, and instructions to check and store indications of whether memory addresses are in persistent memory
CN112463657B (zh) * 2019-09-09 2024-06-18 阿里巴巴集团控股有限公司 一种地址转换缓存清除指令的处理方法和处理装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019001896A1 (en) * 2017-06-28 2019-01-03 Arm Limited INVALIDATION OF ADDRESS TRANSLATION DATA

Also Published As

Publication number Publication date
US11550731B2 (en) 2023-01-10
WO2021050414A2 (en) 2021-03-18
US20210073144A1 (en) 2021-03-11
WO2021050414A3 (en) 2021-07-22
CN112463657A (zh) 2021-03-09

Similar Documents

Publication Publication Date Title
US10467012B2 (en) Apparatus and method for accelerating operations in a processor which uses shared virtual memory
CN112463657B (zh) 一种地址转换缓存清除指令的处理方法和处理装置
US20140189192A1 (en) Apparatus and method for a multiple page size translation lookaside buffer (tlb)
US9183161B2 (en) Apparatus and method for page walk extension for enhanced security checks
US10067762B2 (en) Apparatuses, methods, and systems for memory disambiguation
JP2021086612A (ja) フレキシブルなキャッシュ割り当て技術の優先度ベースのキャッシュラインエビクションアルゴリズム
US9886318B2 (en) Apparatuses and methods to translate a logical thread identification to a physical thread identification
US10437590B2 (en) Inter-cluster communication of live-in register values
US9229874B2 (en) Apparatus and method for compressing a memory address
EP3716079A1 (en) Memory management apparatus and method for managing different page tables for different privilege levels
US20210089305A1 (en) Instruction executing method and apparatus
JP2023070069A (ja) 仮想マシンにおけるユーザレベル割り込み
CN112540789B (zh) 一种指令处理装置、处理器及其处理方法
US20220334991A1 (en) Software-driven remapping hardware cache quality-of-service policy based on virtual machine priority
CN118034784B (zh) Risc-v向量处理器和用于risc-v向量处理器的方法
CN117157619A (zh) 无退出的宾客机至主机通知
US20160378497A1 (en) Systems, Methods, and Apparatuses for Thread Selection and Reservation Station Binding

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
GR01 Patent grant
GR01 Patent grant