CN103229152B - 高速缓存一致性控制方法、系统和程序 - Google Patents

高速缓存一致性控制方法、系统和程序 Download PDF

Info

Publication number
CN103229152B
CN103229152B CN201180056650.2A CN201180056650A CN103229152B CN 103229152 B CN103229152 B CN 103229152B CN 201180056650 A CN201180056650 A CN 201180056650A CN 103229152 B CN103229152 B CN 103229152B
Authority
CN
China
Prior art keywords
tlb
processor
write
physical page
access
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.)
Expired - Fee Related
Application number
CN201180056650.2A
Other languages
English (en)
Other versions
CN103229152A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN103229152A publication Critical patent/CN103229152A/zh
Application granted granted Critical
Publication of CN103229152B publication Critical patent/CN103229152B/zh
Expired - Fee Related 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared 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
    • 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]
    • 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/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation

Landscapes

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

Abstract

本发明实现了高速缓存一致性控制,其中共享存储器类型多处理器系统的可缩放性得到提高,并且成本性能通过抑制硬件和软件的成本而得到改善。在一种用于控制多处理器系统的高速缓存一致性的系统中,在该多处理器系统中,包括高速缓存和TLB的多个处理器共享系统存储器,多个处理器中的每个处理器包括TLB控制单元,该TLB控制单元进一步包括:执行TLB搜索的TLB搜索单元;以及在无命中获得于TLB搜索中并且产生TLB中断时执行TLB注册信息处理的一致性处置器。一致性处置器包括:用于执行对系统存储器的页面表的搜索并且对TLB注册信息执行替换的TLB替换处置器;用于处置TLB未命中中断的TLB未命中异常处置单元,该TLB中断是在TLB中断不是由页面错误引起、但是匹配地址的注册信息未存在于TLB中时发生;以及用于处置存储中断的存储异常处置单元,该存储中断是在匹配地址的注册信息存在于TLB中、但是访问授权被违反时发生。

Description

高速缓存一致性控制方法、系统和程序
技术领域
本发明涉及高速缓存一致性控制,并且具体地涉及一种用于控制共享存储器多处理器的高速缓存一致性的方法、系统和程序。
背景技术
多处理器系统同时执行多个任务或者过程(下文称为“过程”)。该多个过程中的每个过程通常具有用于在执行该过程时使用的虚拟地址空间。在这样的虚拟地址空间中的位置包含映射到系统存储器中的物理地址的地址。对于系统存储器中的单个空间来说,被映射到多处理器中的多个虚拟地址并不罕见。在多个过程中的每个过程使用虚拟地址时,这些地址被转译成系统存储器中的物理地址,并且如果无恰当指令或者数据存在于处理器中的高速缓存中以用于执行每个过程,则它们被从系统存储器提取并且存储在高速缓存中。
为了将多处理器系统中的虚拟地址快速转译成系统存储器中的物理地址并且获得恰当指令或者数据,使用与高速缓存有关的所谓转译旁视缓冲器(translation look-aside buffer,下文称为“TLB”)。TLB是如下缓冲器,该缓冲器包含使用转译算法生成的物理地址与虚拟地址之间的转译关系。TLB的使用能够实现很高效的地址转译;然而,如果在对称多处理(下文称为“SMP”)系统中使用这样的缓冲器,则会产生不一致问题。对于其中多个处理器可以从共享系统存储器读取信息和向共享系统存储器写入信息的数据处理系统,必须谨慎保证存储器系统以一致的方式操作。也就是说,不允许由于多个处理器执行的过程而造成存储器系统的不一致。在这样的多处理器系统中的每个处理器通常包含用于在与高速缓存有关的地址转译中使用的TLB。为了维持一致性,在这样的系统中的共享存储器模式必须谨慎地并且无任何不一致地将多处理器中的单个处理器的TLB上的改变映射到其它处理器的TLB。
对于多处理器,可以例如通过在对所有TLB的修改中使用处理器间中断和软件同步来维持TLB的一致性。这一技术可以保证在整个多处理器系统内的存储器一致性。在典型的页面存储器系统中,多处理器系统中的每个TLB的内容反映与在系统存储器中保持的页面表的内容的高速缓存有关的分节。页面表一般是如下存储器映射表,该存储器映射表包含虚拟地址或者其分段和与它们关联的物理地址。这样的页面表通常还包含其它各种类型的管理数据,包括页面保护比特、有效条目比特和各种访问比特。例如,可以将显式地指示一致性的必要性(存储器一致性必需属性)的比特定义为管理数据以静态地配置页面是否真正地需要一致性。然而,仅在被允许可重写以软件控制高速缓存的一些特殊程序中高效使用这一静态配置方法,因为除了静态配置上述比特的必要性之外,还必须在整个系统存储器中静态配置这样的比特。
近年来,具有多个中央处理单元(CPU)和SMP-Linux(Linux是Linus Torvalds在美国和其它国家的商标)的台式个人计算机(PC)已经变得流行,并且许多应用程序已经支持共享存储器多处理器、也就是SMP系统。因此,在系统中的处理器数目增加提高应用程序的吞吐量而无需重写软件。促进支持SMP的通用操作系统(OS)、例如SMP-Linux已经被升级成可以控制不少于1024个处理器的OS。可以通过增加处理器数目来提高吞吐量而不需要重写软件的特征是在不共享存储器的多处理器系统、诸如使用消息传递编程的群集中不存在的优点。因而,SMP是适合于保护软件资产的多处理器系统。
然而,SMP系统的可缩放性低于基于消息传递的群集的可缩放性。这是因为支持高速缓存一致性的硬件的成本随着SMP系统的处理器数目增加而明显增加以提高可缩放性。用于SMP系统的高速缓存一致性的硬件支持的示例可以包括在台式PC的共享总线中使用并且由便宜硬件实现的修改的、排他的、共享的、无效的(MESI)窥探(snoop)协议和在大规模分布式共享存储器(DSM)中的高速缓存一致、非均匀存储器访问(下文称为“CC-NUMA”)中使用并且由将特殊节点间连接与例如协议处理器和目录存储器集成的昂贵硬件实现的基于目录的协议。使用CC-NUMA的处理器的数目增加造成硬件成本增加,因此多处理器的成本性能随着处理器数目增加而减少。也就是说,CC-NUMA的经济可缩放性低。与这一点相反,由于群集可以由标准部件制成,所以用于群集的每处理器的硬件成本比用于需要专用部件的CC-NUMA的每处理器的硬件成本更便宜。具体而言,如果具有每处理器的恒定硬件成本的群集使用消息传递接口来重写具有高并行性的复杂并行应用程序,则该群集可以执行大规模并行处理。
非专利文献1描述一种基于虚拟存储器(VM)的共享存储器技术,该技术利用包括在处理器中的存储器管理单元(下文称为“MMU”)中的硬件来提高SMP系统的可缩放性和成本性能。这一技术应用于在非专利文献2中描述的可以使用与群集的硬件一样便宜的硬件的非高速缓存一致NUMA(下文称为“NCC-NUMA”)。基于VM的共享存储器技术处理在相同过程中的高速缓存一致性,但是它不能处理不同过程之间的高速缓存一致性。具体而言,由于对于支持虚拟地址并且使用在写入时复制的技术来管理存储器的通用OS而言将相同物理页面映射到多个过程是常见的,所以基于VM的共享存储器技术所适用的数据限于保证应用程序不被不同过程共享的数据,并且不能实施对应用程序透明的高速缓存一致性。换而言之,显式地指示多个处理器共享的相同虚拟地址空间的数据的必要性发生,并且为了将该技术应用于现有软件,有必要重写应用程序,因此造成与它有关的附加软件成本。因而,基于VM的共享存储器技术不能应用于通用计算机,并且该技术的适用性限于允许重新设计程序的具体使用和科学计算。
专利文献1描述一种主存储器共享型多处理器,其中通过提供物理页面映射表来添加少量硬件可以消除或者显著减少对广播TLB清除事务以在重写页面表时控制TLB一致性的需要,并且可以消除或者显著减少网络和节点中的总线以及与TLB清除关联的处理器的流水线栈中的业务。
专利文献2描述例如实现响应于数据传送指令、诸如MOV指令而访问内容可寻址存储器、诸如高速缓存存储器(CACHE-M)或者地址转译缓冲器(TLB)并且使条目无效的操作。
专利文献3描述引入一对软件指令以通过软件、即页面错误处置器来实现直接插入转译信息、诸如地址转译对,该页面错误处置器能够向页面目录中插入转译信息并且向TLB中插入该信息,而且保证在完成页面错误处置器例程的执行之后,在下次提供相同虚拟地址时发生TLB命中(hit)而不是TLB未命中(miss)。
[引用列表]
[专利文献]
[PTL 1]日本待审专利申请公开号2000-67009
[PTL 2]日本待审专利申请公开号8-320829
[PTL 3]日本待审专利申请公开号62-3357
[非专利文献]
[NPL 1]Karin Petersen and Kai Li,"Cache Coherence for SharedMemory Multiprocessors Based on Virtual Memory Support,"InProceedings of the Seventh International Parallel Processing Symposium,Newport Beach,CA,1993年4月,pp.1-18
[NPL 2]Leonidas Kontothanassis,et al.,"Shared MemoryComputing on Clusters with Symmetric Multiprocessors and SystemArea Networks,"ACM Transactions on Computer Systems(TOCS)Vol.23,No.3,2005年8月,pp.301-335
发明内容
[技术问题]
因而,本发明的目的是实现使得能够增加共享存储器多处理器系统的可缩放性和提高成本性能的高速缓存一致性控制,同时保持低的硬件和软件成本。本发明的目的包括提供一种用于实现这样的高速缓存一致性控制的方法、系统和程序产品。本发明的目的还包括通过使用便宜硬件配置的软件实现这样的高速缓存一致性控制。本发明的目的还包括通过对应用程序透明(也就是不需要重写应用程序)的软件实现这样的高速缓存一致性控制。
[对问题的解决方案]
根据本发明的一个实施例的一种用于控制高速缓存一致性的方法控制多处理器系统的高速缓存一致性,在该多处理器系统中,多个处理器共享系统存储器,多个处理器中的每个处理器包括高速缓存和TLB。在多个处理器中的处理器确定非页面错误的TLB中断发生于TLB搜索中时,该方法包括由处理器执行:处置下述TLB中断的TLB未命中异常处置步骤,该TLB中断是在无具有匹配地址的注册信息存在于TLB中时发生的TLB未命中中断;或者处置下述TLB中断的存储异常处置步骤,该TLB中断是在具有匹配地址的注册信息存在于TLB中、但是访问权限无效时发生的存储中断。TLB未命中异常处置步骤可以包括冲刷高速缓存的数据高速缓存线的步骤,该数据高速缓存线属于在执行TLB替换时被驱逐和丢弃的牺牲者TLB条目所覆盖的物理页面。TLB未命中异常处置步骤或者存储异常处置步骤可以包括以下步骤:确定引起TLB未命中中断或者存储中断的存储器访问是数据访问还是指令访问;并且在确定存储器访问是数据访问时,提供与该访问相关联地被替换或者更新的TLB条目所覆盖的物理页面的、具有排他约束的写入、读取和执行权限,在该排他约束中排除在另一处理器的TLB中的对物理页面的访问权限。
优选地,提供具有排他约束的写入、读取和执行权限的步骤可以包括提供具有在写入时无效化约束的写入、读取和执行权限的处理步骤。提供具有在写入时无效化约束的写入、读取和执行权限的步骤可以包括提供具有MESI协议约束的写入、读取和执行权限的MESI仿真处理步骤。
优选地,MESI仿真处理步骤可以包括以下步骤:确定存储器访问是数据写入还是读取;在确定存储器访问为数据读取时,将处理器的TLB中和保持用于多个处理器的TLB的注册信息的TLB目录存储器中的对该访问的物理页面的读取属性设置为开;在TLB目录存储器中搜寻该访问的物理页面并且确定另一处理器的TLB是否具有对该访问的物理页面的写入权限;在确定另一处理器具有写入权限时,通过处理器间中断向该另一处理器通知清理命令,并且使另一处理器清除对该访问的物理页面的写入权限;并且针对TLB目录存储器中的另一处理器的TLB清除对该访问的物理页面的写入属性。使另一处理器清除对该访问的物理页面的写入权限的步骤可以包括以下步骤:使另一处理器复制回(copy back)数据高速缓存,并且禁用另一处理器的TLB中的对该访问的物理页面的写入属性。
优选地,MESI仿真处理可以包括以下步骤:在确定存储器访问为数据写入时,将处理器的TLB中和TLB目录存储器中的对该访问的物理页面的写入属性设置为开;在TLB目录存储器中搜索访问的物理页面,并且确定另一处理器的TLB是否具有对访问的物理页面的读取、写入或者执行权限;在确定另一处理器具有对该物理页面的写入、读取或者执行权限时,通过处理器间中断向另一处理器通知冲刷命令,并且使另一处理器清除对该访问的物理页面的读取、写入和执行权限;并且针对TLB目录存储器中的另一处理器的TLB清除对该访问的物理页面的读取、写入和执行属性。使另一处理器清除对访问的物理页面的读取、写入和执行权限的步骤可以包括以下步骤:使另一处理器复制回并且无效化数据高速缓存并且禁用另一处理器的TLB中的对该访问的物理页面的读取、写入和执行属性。
优选地,TLB未命中异常处置步骤或者存储异常处置步骤可以包括以下步骤:确定引起TLB未命中中断或者存储中断的存储器访问是数据访问还是指令访问;在确定存储器访问为指令访问时,确定系统存储器中的页面表中的条目是否对其中TLB未命中中断由指令取读而导致的物理页面具有用户写入许可权限;在确定页面表中的条目具有用户写入许可权限时,确定另一处理器的TLB是否具有对物理页面的用户写入许可权限;并且在确定另一处理器的TLB具有用户写入许可权限时,通过处理器间中断向该另一处理器通知清理命令,并且使另一处理器清除用户写入许可权限。在确定另一处理器的TLB不具有用户写入许可权限时或者在使另一处理器清除用户写入许可权限的步骤之后,TLB未命中异常处置步骤或者存储异常处置步骤可以包括使进行访问的处理器的指令高速缓存无效的步骤。在确定页面表中的条目不具有用户写入许可权限时或者在使进行访问的处理器的指令高速缓存无效的步骤之后,TLB未命中异常处置步骤或者存储异常处置步骤可以包括以下步骤:将进行访问的处理器的TLB中和保持用于多个处理器的TLB的注册信息的TLB目录存储器中的对其中TLB未命中中断由指令取读所导致的物理页面的执行属性设置为开。
优选地,MESI仿真处理步骤还可以包括以下步骤:在TLB目录存储器中搜寻访问的物理页面时使用旗语(semaphore)来进行依次访问。
利用本发明的一个实施例,提供了一种用于高速缓存一致性控制的计算机程序产品,该计算机程序产品使处理器执行上述步骤中的每个步骤。
根据本发明的另一实施例的一种用于控制高速缓存一致性的系统控制多处理器系统的高速缓存一致性,在该多处理器系统中,各自包括高速缓存和TLB的多个处理器共享系统存储器。处理器中的每个处理器还包括TLB控制器,TLB控制器包括执行TLB搜索的TLB搜索单元和在没有命中发生于TLB搜索中并且TLB中断发生时执行TLB注册信息处理的一致性处置器。一致性处置器包括TLB替换处置器、TLB未命中异常处置单元和存储异常处置单元。TLB替换处置器搜索系统存储器中的页面表并且对TLB注册信息执行替换。在TLB中断不是页面错误时,TLB未命中异常处置单元处置下述TLB中断,该TLB中断是在无具有匹配地址的注册信息存在于TLB中时发生的TLB未命中中断,并且存储异常处置单元处置下述TLB中断,该TLB中断是在具有匹配地址的注册信息存在于TLB中、但是访问权限无效时发生的存储中断。TLB未命中异常处置单元可以冲刷高速缓存的数据高速缓存线,数据高速缓存线属于在执行TLB替换时被驱逐和丢弃的牺牲者TLB条目所覆盖的物理页面。TLB未命中异常处置单元和存储异常处置单元中的每个单元可以确定引起TLB未命中中断或者存储中断的存储器访问是数据访问还是指令访问,并且在确定存储器访问是数据访问时可以提供对与该访问相关联地被替换或者更新的TLB条目所覆盖的物理页面的、具有排他约束的写入、读取和执行权限,在该排他约束中排除在另一处理器的TLB中的对物理页面的访问权限。
TLB未命中异常处置单元和存储异常处置单元中的每个单元可以确定引起TLB未命中中断或者存储中断的存储器访问是数据访问还是指令访问,在确定存储器访问为指令访问时可以确定系统存储器中的页面表中的条目是否对其中TLB未命中中断由指令取读所导致的物理页面具有用户写入许可权限,在确定页面表中的条目具有用户写入许可权限时可以确定另一处理器的TLB是否具有对该物理页面的用户写入许可权限,并且在确定另一处理器的TLB具有用户写入许可权限时可以通过处理器间中断向另一处理器通知清理命令并且使另一处理器清除用户写入许可权限。
用于控制高速缓存一致性的系统还可以包括:TLB目录存储器,其保持用于多个处理器的TLB的注册信息并且被多个处理器搜索以搜寻物理页面。
优选地,多处理器系统可以包括多个节点,多个节点中的每个节点可以包括多个处理器、通过一致共享总线连接到多个处理器的系统存储器以及TLB目录存储器和在多个处理器使用旗语对TLB目录存储器的依次访问中使用的旗语处置器,TLB目录存储器和旗语处置器由桥接机制连接到一致共享总线。多个节点可以通过NCC-NUMA机制相互连接。
[本发明的有利效果]
利用本发明,可以实现能够增加共享存储器多处理器系统的可缩放性并且提高成本性能的高速缓存一致性控制,同时保持低的硬件和软件成本。具体而言,提供了一种用于实现这样的高速缓存一致性控制的方法、系统和程序产品,可以通过使用便宜硬件配置的软件实现该高速缓存一致性控制,并且还可以在不需要重写应用程序的情况下实现它。
附图说明
[图1]图1是示意地图示可以在根据本发明实现高速缓存一致性控制时使用的多处理器系统的框图。
[图2]图2是示意地图示根据本发明的一个实施例的高速缓存一致性控制系统的框图。
[图3]图3图示TLB目录存储器的示意配置。
[图4]图4是示意地图示根据本发明的一个实施例的用于控制高速缓存一致性的方法的流程图。
[图5]图5是图示在一致性处置器的TLB未命中异常处置和存储异常处置中的每个处置的子例程中对牺牲者TLB条目的驱逐处理的流程图。
[图6]图6是图示在一致性处置器的TLB未命中异常处置和存储异常处置中的每个处置的子例程中的MESI仿真处理的流程图。
[图7]图7是图示在一致性处置器的TLB未命中异常处置和存储异常处置中的每个处置的子例程中的指令高速缓存一致性处理的流程图。
[图8]图8描绘如下流程,这些流程图示旗语如何用于进入和退出一致性处置器。
[图9]图9图示被扩展成SMP和NCC-NUMA混合系统的一致的共享存储器多处理器系统的示意配置。
[图10]图10图示用于LSM的本地TLB目录存储器的示意配置。
具体实施方式
下文将参照附图具体描述用于实现本发明的最佳实现方式。以下实施例并非旨在于限制本发明的权利要求的范围,并且并非在实施例中描述的特征的所有组合都是对问题的解决方案所必需的。可以用许多不同形式来实现本发明,并且本发明不应被解释为限于这里阐述的实施例的内容。在贯穿实施例的描述中,相同部分和单元具有相同的附图标记。
图1是示意地图示可以在根据本发明实现高速缓存一致性控制时使用的多处理器系统100的框图。多处理器系统100包括多个处理器101、存储器总线102和系统存储器103。处理器101由存储器总线102连接到系统存储器103。处理器101中的每个处理器包括CPU 104、MMU 105和高速缓存106。MMU 105包括TLB 107。在处理器中的高速缓存106保持系统存储器103的内容的一部分。对于SMP系统、诸如多处理器系统100,处理器101可以从系统存储器103读取信息和向系统存储器103写入信息,并且有必要使系统存储器103中和高速缓存106中的数据和指令一致。优选地,可以在系统存储器103中提供页面表108。使用页面表108中的多个条目、也就是多条注册信息使虚拟地址能够被高效映射到系统存储器103中的物理地址。系统存储器103包括存储器控制器109并且与连接到它的外部存储设备120交换与存储信息有关的信息、也就是从外部存储设备120读取信息和向外部存储设备120写入信息。处理器101中的每个处理器可以通过使用TLB 107在MMU 105中重复每个条目中包含的信息以将指令或者数据中的虚拟地址转译成系统存储器103中的物理地址。由于TLB 107提供存储器空间中的地址信息,所以为了保证TLB 107的正确操作,维持在多处理器系统100中的TLB 107之间的一致性是重要的。
图2是示意地图示具有根据本发明的一个实施例的高速缓存一致性控制系统的处理器101的框图。处理器101的高速缓存106包括指令高速缓存106’和数据高速缓存106”。除了存储器总线102之外,处理器101还连接到所有处理器101可以访问的TLB目录存储器121。TLB目录存储器121是如下TLB目录存储器,在该TLB目录存储器中重复所有处理器101的TLB 107中保持的信息、诸如物理页面编号、读取/写入/执行访问权限和有效状态并且将重复的信息映射到全局地址,所有处理器101的CPU 104可以参考这些全局地址以便本地处理器101可以检查远程处理器101的TLB 107的内容而不需要使用处理器间中断来中断远程处理器101。CPU 104中的每个CPU具有其中执行应用程序(AP)处理122的操作模式(用户模式)、其中执行OS内核处理124的操作模式(监督者模式)和其中执行中断处置器的操作模式。一致性处置器126在第三模式中执行。TLB控制器123包括用于在AP处理122访问高速缓存106时或者在OS内核处理124访问高速缓存106时执行TLB搜索的TLB搜索单元125以及用于在无命中发生于TLB搜索中并且TLB中断发生时执行TLB 107的注册信息处理的一致性处置器126。如图2中所示,一致性处置器126定位于OS内核处理124以外以用于处置页面错误。
TLB搜索单元125包括用于在命中发生于TLB搜索中时搜索高速缓存标签的高速缓存标签搜索单元127。在命中发生于高速缓存标签搜索中时,高速缓存标签搜索单元127指令AP处理122访问高速缓存106。在无命中发生、但是高速缓存标签未命中发生于高速缓存标签搜索中时,高速缓存标签搜索单元127指令AP处理单元122不访问高速缓存106、而是访问系统存储器103。
一致性处置器126包括TLB替换处置器128、TLB未命中异常处置单元129和存储异常处置单元130。TLB替换处置器128包括页面表搜索单元131和页面错误确定单元132。页面表搜索单元131在TLB搜索单元125发现TLB中断的情况下对系统存储器103中的页面表108执行搜索。页面错误确定单元132根据页面表搜索单元131执行的搜索确定页面错误是否发生。在页面错误确定单元132根据页面表搜索单元131执行的搜索确定无页面错误发生、也就是TLB条目页面存在于页面表108中时,TLB未命中异常处置单元129或者存储异常处置单元130执行一致性控制。在其中虽然TLB条目页面存在于页面表108中并且无页面错误发生、但是在TLB搜索中没发现命中并且TLB中断发生的情况中,其中与地址匹配的条目(即注册信息)不存在于TLB中的情况被称为“TLB未命中中断”,并且其中与地址匹配的条目(即注册信息)存在于TLB中、但是访问权限无效的情况被称为“存储中断”。TLB未命中异常处置单元129处置TLB未命中中断,而存储异常处置单元130处置存储异常。由于一致性处置器126在无页面错误发生时执行一致性控制,所以这一技术不同于在页面错误发生时执行一致性控制的基于VM的共享存储器技术。
OS内核处理124包括存储器管理单元133。在页面错误确定单元132根据页面表搜索单元131执行的搜索确定页面错误发生时,TLB替换处置器128生成页面错误中断,并且OS内核处理124的存储器管理单元133处置页面错误。
一致性处置器126的TLB未命中异常处置单元129和存储异常处置单元130执行一致性控制,从而在高速缓存106中仅保持在本地处理器101中的TLB 107中注册的物理地址。因此,在一致性处置器126执行TLB替换时,从高速缓存中冲刷(即无效化或复制回)由TLB条目(即将作为牺牲者被驱逐的注册信息)所覆盖的物理页面。此外,对添加的TLB条目(即注册信息)所覆盖的物理页面的读取/写入/执行权限受到排除远程处理器101的TLB 107中的对该物理页面的访问权限的排他约束的限制。排他约束的示例包括在写入时无效化(invalidate-on-write),具体为MESI协议约束。MESI协议是分类为写入无效化类型的一致性协议。还存在写入更新类型。可以使用两个类型。下文描述MESI协议约束。如果添加这样的约束,则除非TLB未命中发生,否则不必处理一致性。由于基于VM的共享存储器技术排他地高速缓存页面表中所保持的逻辑页面,所以在将相同物理页面映射到不同逻辑页面的情况下,该技术不能解决一致性。
在针对TLB未命中中断和存储中断替换(即置换或者更新)TLB条目(即注册信息)时,提供遵从MESI协议约束的读取/写入/执行权限。对于其中硬件辅助页面表搜索的处理器,TLB仅为其中页面表的一部分被高速缓存的TLB,而对于图2中所示高速缓存一致性控制,使用由软件控制的TLB,在TLB 107中仅设置在页面表中记录的访问权限中的与MESI协议的排他约束对应的访问权限。因而,在TLB 107中记录的访问权限与在系统存储器103的页面表108中记录的访问权限或者向其添加了约束的访问权限相同。
对于TLB未命中中断或者存储中断,本地处理器101通过参考TLB目录存储器121来搜寻需要更新以便遵从MESI协议的排他约束的TLB条目,即远程处理器101的注册信息。为了防止多个处理器101同时更新,可以优选地在访问TLB目录存储器121时采用使用旗语的依次访问。TLB目录存储器121可以优选地由内容可寻址存储器(CAM)实施。对于CAM,搜索字包含物理页面编号和读取/写入/执行许可比特,并且其中连结处理器ID和TLB条目编号的搜索字是CAM的地址输入。在CAM访问中使用的总线可以优选地独立于存储器总线并且专用于CPU的总线。这样的总线的示例包括设备控制寄存器(DCR)总线。
图3示意地图示TLB目录存储器121的配置。TLB目录存储器121保持处理器101的TLB 107中的条目(即注册信息)以允许处理器101中的每个处理器跟踪用于其它处理器101的TLB 107的条目(即注册信息)而无处理器间中断。执行高速缓存控制使得仅允许高速缓存在处理器101中的每个处理器的TLB 107中注册的条目(即注册信息)的页面,因此使每个高速缓存中的页面的使用状态能够通过搜索TLB 107来确定。将TLB目录存储器121映射到全局地址空间以便允许所有处理器101对其进行访问。在TLB目录存储器121中的每个条目包括VS(有效状态)所指示的有效状态信息300、PPN(物理页面编号)所指示的物理页面编号信息301和R/W/EP(读取/写入/执行保护)所指示的读取/写入/执行访问权限保护信息302。这些是从在所有处理器101的TLB 107中保持的对应信息复制的信息。在左端,指示了TLB目录存储器121中的由处理器ID与TLB条目编号的组合形成的地址;在右端,指示了与处理器0至处理器N对应的条目组。使用TLB目录存储器121来搜索处理器101的TLB 107中的物理页面编号,因此使得不同过程之间的一致性能够被处理。优选地,可以通过由CMA实施以实现以下两个搜索操作使得TLB目录存储器121更快:一个是搜寻与物理页面编号匹配并且具有写入许可的页面,而另一个是搜寻与物理页面编号匹配并且具有读取、写入或者执行许可的页面。在搜索中,CAM的搜索字输入包含物理页面编号和用于访问页面的许可,并且在CMA的地址输入中输入其中连结处理器ID和TLB条目编号的搜索字输入。处理器占用的总线、诸如DCR总线适合用于在访问CAM中使用的总线。
图4是示意地图示根据本发明的一个实施例的用于控制高速缓存一致性的方法的流程图(400)。这一方法可以如图2中所示由其TLB由软件控制的处理器101来实现。该过程在应用程序访问高速缓存(步骤401)时开始,并且处理器101执行TLB搜索(步骤402)。在命中发生于TLB搜索中时,处理器101搜寻命中TLB条目的高速缓存标签(步骤403)。在命中发生于高速缓存标签搜索中时,处理器101指令对高速缓存进行访问并且对高速缓存进行访问(步骤404)。在未命中发生于高速缓存标签搜索中时,处理器101指令对系统存储器进行访问并且对系统存储器进行访问(步骤405)。在无命中发生、但是TLB中断发生于TLB搜索中(步骤402)时,处理器101确定TLB中断是否为页面错误(步骤406)。在确定TLB中断不是页面错误,也就是TLB条目(即注册信息)的页面存在于页面表中(在步骤406中为否)时,处理器101使用一致性处置器来执行TLB未命中异常处置或者存储异常处置的子例程(步骤407)。在确定TLB中断是页面错误(在步骤406中为是)时,处理器101生成页面错误中断并且使用OS内核处理的存储器管理单元来执行页面错误处置的子例程(步骤408)。
图5是图示在一致性处置器的TLB未命中异常处置和存储异常处置的子例程(见图4中的步骤407)中对牺牲者TLB条目(即注册信息)的驱逐处理的流程图(500)。一致性处置器的TLB未命中异常处置的子例程始于进入TLB未命中异常处置(步骤501),并且一致性处置器的存储异常处置的子例程始于进入存储异常处置(步骤502)。对于TLB未命中异常处置,由于没有与地址匹配的条目(即注册信息)存在于TLB 107中,所以处理器101执行从页面表108向TLB 107导入匹配条目(即注册信息)的TLB替换(步骤503)。这时,TLB目录存储器121更新条目(即注册信息)。在执行TLB替换时,处理器101冲刷(复制回并且无效化)如下本地数据高速缓存线,该本地数据高速缓存线属于由待驱逐和丢弃的牺牲者TLB条目(即注册信息)所覆盖的物理页面(步骤504)。这使仅在TLB中注册的条目(即注册信息)能够可靠地高速缓存于本地处理器中,因此可以在TLB未命中中断或者存储中断的情况下简单地通过检查远程处理器的TLB来确定一致性控制的必要性。在步骤504之后,处理器101确定引起TLB未命中中断或者存储中断的存储器访问是数据访问还是指令访问(步骤505)。处理器101在确定是数据访问(在步骤505中为“数据”)时前进到MESI仿真处理的子例程506,而在确定是指令访问(在步骤505中为“指令”)时前进到指令高速缓存一致性处理的子例程507。
如上文简要提到的那样,对于TLB未命中中断和存储中断二者,在替换或者更新TLB条目(即注册信息)时,在本地TLB与远程TLB之间设置遵从下文针对排他约束(例如在写入时无效化)所描述的MESI协议的读取/写入/执行权限。
·共享只读数据
多个处理器可以共享对相同物理页面的读取和执行权限。如果TLB中断发生于数据读取或者指令取读中并且远程处理器具有对该物理页面的写入权限,则IPI向该远程处理器通知清理命令,并且使该远程处理器清除对该物理页面的写入权限。
·写入数据的排他控制
在一个处理器具有对物理页面的写入权限时,其它处理器不具有对该页面的任何种类的访问权限。换而言之,远程TLB对本地TLB对其具有写入权限的物理页面不具有任何种类的访问权限。因而,在用于写入的访问引起TLB未命中中断或者存储中断时,检查远程TLB以确定远程处理器是否具有对物理页面的访问权限;如果具有这样的访问权限,则使远程处理器从远程高速缓存冲刷该物理页面的数据。
图6是用于作为一个示例的MESI仿真处理的流程图(600),在该示例中,MESI协议约束由软件控制来施加。当在图5中(步骤505中)确定存储器访问是数据访问时,处理器101前进到MESI仿真处理的子例程506并且开始该处理(步骤601)。首先,处理器101确定引起TLB中断的出错访问是数据写入还是读取(步骤602)。在确定为数据读取时,处理器101通过页面表108中的页面表条目(PTE)的用户只读(UR)比特和监督者只读(SR)比特来掩蔽(mask)本地TLB 107和TLB目录存储器121中的与出错访问的物理页面对应的条目(即注册信息)的读取(R)属性并且将其设置为开(步骤603)。然后,处理器101在TLB目录存储器121中搜索出错访问的物理页面并且确定远程TLB是否具有对该物理页面的写入(W)权限(步骤604)。在确定不具有W权限(在步骤604中为否)时,处理结束(步骤605)。在确定具有W权限(在步骤604中为是)时,处理器101通过IPI向远程处理器通知清理命令并且使远程处理器清除对该物理页面的写入权限。也就是说,远程处理器复制回数据高速缓存并且禁用远程TLB中的与该物理页面对应的条目(即注册信息)的写入(W)属性(步骤606)。从逻辑到物理地址的转译保留在远程TLB中的该条目中。随后,处理器101清除TLB目录存储器121中的用于远程TLB的与该物理页面对应的条目(即注册信息)的W属性(步骤607),并且处理结束(步骤608)。
在确定(在步骤602中)出错访问为写入时,处理器101通过页面表108中的页面表条目(PTE)的用户写入(UW)比特和监督者写入(SW)比特来掩蔽本地TLB 107和TLB目录存储器121中的与出错访问的物理页面对应的条目(即注册信息)的W属性并且将其设置为开(步骤609)。然后,处理器101在TLB目录存储器121中搜寻出错访问的物理页面并且确定远程TLB是否具有对该物理页面的读取(R)、写入(W)或者执行(X)权限(步骤610)。在确定没有R、W或者X权限(在步骤610中为否)时,处理结束(步骤605)。在确定具有R、W或者X权限(在步骤610中为是)时,处理器101通过IPI向远程处理器通知冲刷命令并且使远程处理器从远程高速缓存冲刷该物理页面的数据而不需要向远程处理器提供对该物理页面的访问权限。也就是说,远程处理器复制回并且无效化数据高速缓存而且禁用远程TLB中的与该物理页面对应的条目(即注册信息)的R、W和X属性(步骤611)。从逻辑到物理地址的转译保留在远程TLB中的该条目中。随后,处理器101清除TLB目录存储器121中的用于远程TLB的与该物理页面对应的条目(即注册信息)的R、W和X属性(步骤608)。
以这样的方式,通过根据MESI协议约束设置读取、写入、执行权限,使用TLB来执行窥探过滤,即窥探删除。添加如下确定步骤,该确定步骤限制窥探请求广播的发生,该步骤对于其中在远程TLB中也注册覆盖该数据的物理页面的情况而言在通过硬件实施MESI协议时是一个问题。因而,其中MESI协议约束由软件控制施加的MESI仿真处理与通过硬件实施MESI协议相比可以具有更高可缩放性。
利用根据本发明的一个实施例的用于高速缓存一致性控制的一致性处置器,可以控制在数据高速缓存之间的一致性和在指令高速缓存与数据高速缓存之间的一致性二者。这通过在TLB未命中中断由对具有写入许可权限的可写入页面的指令取读产生时使指令高速缓存线无效来实现。例如,如同Linux,为了支持动态链接库,指令高速缓存与数据高速缓存一致是必要的。对于Linux,有必要仅在取读用户空间中的可写入页面时使指令高速缓存无效。
图7是图示通过软件控制的指令高速缓存一致性处理的流程图(700)。当在图5中(步骤505中)确定存储器访问为指令访问时,处理器101前进到指令高速缓存一致性处理的子例程507并且开始该处理(步骤701)。首先,处理器101确定页面表108的PTE是否对其中TLB未命中中断由指令取读所导致的物理页面具有用户写入许可权限(步骤702)。在确定PTE具有用户写入许可权限(在步骤702中为是)时,处理器101确定远程TLB是否具有对该物理页面的用户写入许可权限(步骤703)。在确定远程TLB具有用户写入许可权限(在步骤703中为是)时,处理器101通过IPI向远程处理器通知清理命令并且使远程处理器清除用户写入许可权限。也就是说,远程处理器提供用于数据高速缓存的数据高速缓存块存储(dcbst)指令、存储数据高速缓存线并且禁用远程TLB中的W属性(步骤704)。从逻辑到物理地址的转译保留在远程TLB中的该条目中。然后,如在其中在步骤703中确定TLB无用户写入许可权限(在步骤703中为否)的情况下那样,处理器101通过指令高速缓存同余类无效化(iccci)使本地指令高速缓存无效(步骤705)。随后,如在其中在步骤702中确定PET无用户写入许可权限(在步骤702中为否)的情况下那样,处理器101通过页面表条目(PTE)的用户执行(UX)比特和监督者执行(SX)比特来掩蔽本地TLB 107和TLB目录存储器121中的与其中TLB未命中中断由指令取读所导致的物理页面对应的条目(即注册信息)的执行(X)属性并且将其设置为开(步骤706)。然后,处理结束(步骤707)。
随后,使用旗语来访问TLB目录存储器121。这保护TLB目录存储器121不由多个处理器101同时更新。图8描绘如下流程(800),这些流程图示旗语如何用于一致性处置器的进入和退出。对于一致性处置器的进入,处理开始(步骤801),获取旗语(步骤802),并且处理结束(步骤803)。对于一致性处置器的退出,处理开始(步骤804),提供旗语的通知(步骤805),并且处理结束(步骤806)。虽然整个TLB目录存储器121可以由单个旗语排他地访问,但是为了增强多个处理器中的每个处理器的可缩放性并且允许它们同时访问TLB目录存储器121,优选的是将旗语划分以形成多个旗语并且向物理页面被划分成的相应组分配旗语。例如,在物理页面编号除以S时的剩余数系统是旗语ID,形成S个旗语,并且为每个组独立地保护划分的物理页面。这里,满足以下关系:
旗语ID=mod(物理页面编号,S),其中mod(a,b)代表在a除以b时的余数。
如果这一思想应用于作为分布式共享存储器系统的NUMA,则可以分配不同旗语用于相应的NUMA节点。仅在进行远程访问时,可以参考远程TLB目录存储器并且可以获取旗语;否则,可以参考本地TLB目录存储器并且可以获取旗语。
对于NUMA系统,优化向处理器和物理存储器的作业分配,从而对本地系统存储器的访问频率高于对远程系统存储器的访问频率。为了应用于这样的NUMA系统,优选地向NUMA节点分发TLB目录存储器和旗语二者。分发的TLB目录存储器记录本地系统存储器的物理页面编号和对其进行高速缓存的处理器的ID,并且分发的旗语保护对应的分发的TLB目录存储器。因此,仅在远程访问发生时参考远程TLB目录存储器和远程旗语。可以仅使用本地TLB目录存储器和本地旗语来处理其它本地访问。
硬件支持的一致性的成本对于访问本地系统存储器而言较低,但是该成本对于访问远程系统存储器而言较高。为了解决这一点,SMP和NCC-NUMA的扩展混合系统是适用的,在该扩展混合系统中,廉价窥探总线用于访问本地系统存储器,并且根据本发明的高速缓存一致性控制用于访问远程系统存储器。换而言之,可以配置作为整体一致的共享存储器多处理器系统,在该系统中,硬件支持的一致性用于访问本地系统存储器,并且根据本发明的高速缓存线一致性控制用于访问远程系统存储器。图9图示一致共享存储器多处理器系统900,作为扩展到SMP和NCC-NUMA的混合系统的示例。每个节点包括多个处理器901、由一致共享总线(即共享总线一致SMP 902)连接到处理器901的系统存储器903以及均由桥接机制904连接到共享总线一致SMP 902的TLB目录存储器905和旗语处置器906。提供旗语处置器906以允许多个处理器901通过旗语依次访问TLB目录存储器905。节点由NCC-NUMA机制907相互连接。由于节点由便宜的NCC-NUMA机制907相互连接,所以共享存储器多处理器系统900可以增加节点的数目,也就是说,可以在保持硬件成本低之时提高可缩放性。
如果未限制TLB目录存储器中的条目数目并且可以自由关联本地系统存储器和远程系统存储器,则TLB目录存储器的大小与处理器的数目成比例增加。例如,如果1024个处理器中的每个处理器具有1024个条目的TLB并且1个条目为4字节,则TLB目录存储器的大小通过以下计算为4MB:
(1204个处理器)*(1024个条目)*(4字节)=4MB
为了减少TLB目录存储器的大小,如果该系统应用于例如如图10中所示NUMA系统,则限制每个处理器1001向远程系统存储器(RSM)分配的用于RSM的TLB条目1002的数目,并且使用其余条目作为向本地系统存储器(LSM)分配的用于LSM的TLB条目1003。用于LSM的本地TLB目录存储器1000包括从用于远程处理器(RP)的TLB目录复制的条目——限制TLB条目数目——和从用于其余TLB条目被分配到的本地处理器(LP)的TLB条目复制的条目,并且可以减少其大小。具体而言,在NUMA节点数目为N、每CPU的TLB条目数目为E并且在TLB条目中向远程系统存储器分配的条目数目为R时,向本地系统存储器分配的TLB条目数目为E-R,因此TLB目录存储器的每节点的条目数目从E*N减少至(N-1)*R+1*(E-R)。对于上例,在向256个NUMA节点分发1024个处理器并且在每个节点中使用4路SMP结构时,如果向远程TLB分配的TLB条目数目限于16,则TLB条目存储器的大小通过以下计算为81.4KB:
(1020个处理器)*(16个条目)*(4字节)+(4个处理器)*(1008个条目)*(4字节)=81.4KB
当在CAM上实施时,在45nm半导体技术的情况下,TLB目录存储器所需要的区域的面积仅为1mm2
如上文描述的那样,在执行根据本发明的通过软件的高速缓存一致性控制时,由于共享存储器多处理器系统可以由便宜的部件、诸如通用部件形成,所以可以将硬件成本抑制成与群集等效的程度,并且可以提高可缩放性。在仅管理用于每个处理器的TLB信息的小规模TLB目录存储器中搜寻物理页面既实现处理多个过程又消除对改变应用程序的需要,因此提高可缩放性而不需要引起附加软件成本。
上文使用实施例来描述本发明。然而,本发明的技术范围不限于针对实施例描述的范围。可以对实施例添加各种改变或者修改,并且在本发明的技术范围内也包含这样的改变或者修改被添加到的实现方式。

Claims (19)

1.一种用于控制多处理器系统的高速缓存一致性的方法,在所述多处理器系统中,多个处理器共享系统存储器,所述多个处理器中的每个处理器包括高速缓存和TLB,所述方法包括:
在所述多个处理器中的处理器确定非页面错误的TLB中断发生在TLB搜索中时,
由所述处理器执行:处置下述TLB中断的TLB未命中异常处置步骤,所述TLB中断是在无具有匹配地址的注册信息存在于所述TLB中时发生的TLB未命中中断;或者处置下述TLB中断的存储异常处置步骤,所述TLB中断是在具有匹配地址的注册信息存在于所述TLB中、但是访问权限无效时发生的存储中断。
2.根据权利要求1所述的方法,其中所述TLB未命中异常处置步骤包括冲刷高速缓存的数据高速缓存线的步骤,所述数据高速缓存线属于在执行TLB替换时被驱逐和丢弃的牺牲者TLB条目所覆盖的物理页面。
3.根据权利要求2所述的方法,其中所述TLB未命中异常处置步骤或者所述存储异常处置步骤包括以下步骤:
确定引起所述TLB未命中中断或者所述存储中断的存储器访问是数据访问还是指令访问;并且
在确定所述存储器访问是所述数据访问时,提供对与所述存储器访问相关联地被替换或者更新的TLB条目所覆盖的物理页面的、具有排他约束的写入、读取和执行权限,在所述排他约束中排除在另一处理器的TLB中的对所述物理页面的访问权限。
4.根据权利要求3所述的方法,其中提供具有所述排他约束的所述写入、读取和执行权限的步骤包括提供具有在写入时无效化约束的所述写入、读取和执行权限的处理步骤。
5.根据权利要求4所述的方法,其中提供具有所述在写入时无效化约束的所述写入、读取和执行权限的步骤包括提供具有MESI协议约束的所述写入、读取和执行权限的MESI仿真处理步骤。
6.根据权利要求5所述的方法,其中所述MESI仿真处理步骤包括以下步骤:
确定所述存储器访问是数据写入还是读取;
在确定所述存储器访问为所述数据读取时,将所述处理器的所述TLB中和保持用于所述多个处理器的所述TLB的注册信息的所述TLB目录存储器中的对所述存储器访问的所述物理页面的读取属性设置为开;
在所述TLB目录存储器中搜索所述存储器访问的所述物理页面并且确定所述另一处理器的所述TLB是否具有对所述存储器访问的所述物理页面的写入权限;
在确定所述另一处理器具有所述写入权限时,通过处理器间中断向所述另一处理器通知清理命令,并且使所述另一处理器清除对所述存储器访问的所述物理页面的所述写入权限;以及
针对所述TLB目录存储器中的所述另一处理器的所述TLB清除对所述存储器访问的所述物理页面的写入属性。
7.根据权利要求6所述的方法,其中使所述另一处理器清除对所述存储器访问的所述物理页面的所述写入权限的步骤包括以下步骤:使所述另一处理器复制回所述数据高速缓存,并且禁用所述另一处理器的所述TLB中的对所述存储器访问的所述物理页面的所述写入属性。
8.根据权利要求6或者7所述的方法,其中所述MESI仿真处理包括以下步骤:
在确定所述存储器访问为所述数据写入时,将所述处理器的所述TLB中和所述TLB目录存储器中的对所述存储器访问的所述物理页面的所述写入属性设置为开;
在所述TLB目录存储器中搜索所述存储器访问的所述物理页面,并且确定所述另一处理器的所述TLB是否具有对所述存储器访问的所述物理页面的所述读取、写入或者执行权限;
在确定所述另一处理器具有对所述物理页面的所述写入、读取或者执行权限时,通过处理器间中断向所述另一处理器通知冲刷命令,并且使所述另一处理器清除对所述存储器访问的所述物理页面的所述读取、写入和执行权限;以及
针对所述TLB目录存储器中的所述另一处理器的所述TLB清除对所述存储器访问的所述物理页面的所述读取、写入和执行属性。
9.根据权利要求8所述的方法,其中使所述另一处理器清除对所述存储器访问的所述物理页面的所述读取、写入和执行权限的步骤包括以下步骤:使所述另一处理器复制回并且无效化所述数据高速缓存并且禁用所述另一处理器的所述TLB中的对所述存储器访问的所述物理页面的所述读取、写入和执行属性。
10.根据权利要求2所述的方法,其中所述TLB未命中异常处置步骤或者所述存储异常处置步骤包括以下步骤:
确定引起所述TLB未命中中断或者所述存储中断的存储器访问是数据访问还是指令访问;
在确定所述存储器访问为所述指令访问时,确定所述系统存储器中的页面表中的条目是否具有对下述物理页面的用户写入许可权限,在所述物理页面中所述TLB未命中中断由指令取读所导致;
在确定所述页面表中的所述条目具有所述用户写入许可权限时,确定另一处理器的所述TLB是否具有对所述物理页面的用户写入许可权限;以及
在确定所述另一处理器的所述TLB具有所述用户写入许可权限时,通过处理器间中断向所述另一处理器通知清理命令,并且使所述另一处理器清除所述用户写入许可权限。
11.根据权利要求10所述的方法,其中在确定所述另一处理器的所述TLB不具有所述用户写入许可权限时或者在使所述另一处理器清除所述用户写入许可权限的步骤之后,所述TLB未命中异常处置步骤或者所述存储异常处置步骤包括使进行所述存储器访问的所述处理器的指令高速缓存无效的步骤。
12.根据权利要求10或者11所述的方法,其中在确定所述页面表中的所述条目不具有所述用户写入许可权限时或者在使进行所述存储器访问的所述处理器的所述指令高速缓存无效的步骤之后,所述TLB未命中异常处置步骤或者所述存储异常处置步骤包括以下步骤:将进行所述存储器访问的所述处理器的所述TLB中和保持用于所述多个处理器的所述TLB的注册信息的所述TLB目录存储器中的对下述物理页面的所述执行属性设置为开,在所述物理页面中所述TLB未命中中断由所述指令取读所导致。
13.根据权利要求6所述的方法,其中所述MESI仿真处理步骤还包括以下步骤:在所述TLB目录存储器中搜索所述存储器访问的所述物理页面时使用旗语来进行依次访问。
14.一种用于控制多处理器系统的高速缓存一致性的系统,在所述多处理器系统中,各自包括高速缓存和TLB的多个处理器共享系统存储器,
其中所述多个处理器中的每个处理器还包括TLB控制器,所述TLB控制器包括执行TLB搜索的TLB搜索单元和在无命中发生在所述TLB搜索中并且TLB中断发生时执行TLB注册信息处理的一致性处置器,
所述一致性处置器包括TLB替换处置器、TLB未命中异常处置单元和存储异常处置单元,
所述TLB替换处置器在所述系统存储器中搜索页面表并且对TLB注册信息执行替换,
在所述TLB中断不是页面错误时,所述TLB未命中异常处置单元处置下述TLB中断,所述TLB中断是在无具有匹配地址的注册信息存在于所述TLB中时发生的TLB未命中中断,并且所述存储异常处置单元处置下述TLB中断,所述TLB中断是在具有匹配地址的注册信息存在于所述TLB中、但是访问权限无效时发生的存储中断。
15.根据权利要求14所述的系统,其中所述TLB未命中异常处置单元冲刷高速缓存的数据高速缓存线,所述数据高速缓存线属于在执行TLB替换时被驱逐和丢弃的牺牲者TLB条目所覆盖的物理页面。
16.根据权利要求15所述的系统,其中所述TLB未命中异常处置单元和所述存储异常处置单元中的每个处置单元确定引起所述TLB未命中中断或者所述存储中断的存储器访问是数据访问还是指令访问,并且
在确定所述存储器访问是所述数据访问时,提供对与所述存储器访问相关联地被替换或者更新的TLB条目所覆盖的物理页面的、具有排他约束的写入、读取和执行权限,在所述排他约束中排除在另一处理器的所述TLB中的对所述物理页面的访问权限。
17.根据权利要求15所述的系统,其中所述TLB未命中异常处置单元和所述存储异常处置单元中的每个处置单元确定引起所述TLB未命中中断或者所述存储中断的存储器访问是数据访问还是指令访问,
在确定所述存储器访问为所述指令访问时,确定所述系统存储器中的页面表中的条目是否具有对下述物理页面的用户写入许可权限,在所述物理页面中所述TLB未命中中断由指令取读所导致,
在确定所述页面表中的所述条目具有所述用户写入许可权限时,确定另一处理器的所述TLB是否具有对所述物理页面的用户写入许可权限,并且
在确定所述另一处理器的所述TLB具有所述用户写入许可权限时,通过处理器间中断向所述另一处理器通知清理命令,并且使所述另一处理器清除所述用户写入许可权限。
18.根据权利要求14至17中的任一项权利要求所述的系统,还包括:TLB目录存储器,所述TLB目录存储器保持用于所述多个处理器的所述TLB的注册信息并且被所述多个处理器搜索以搜寻物理页面。
19.根据权利要求18所述的系统,其中所述多处理器系统包括多个节点,
所述多个节点中的每个节点包括所述多个处理器、通过一致共享总线连接到所述多个处理器的所述系统存储器以及所述TLB目录存储器和在所述多个处理器使用旗语对所述TLB目录存储器的依次访问中使用的旗语处置器,所述TLB目录存储器和所述旗语处置器通过桥接机制连接到所述一致共享总线,并且
所述多个节点通过NCC-NUMA机制相互连接。
CN201180056650.2A 2010-11-26 2011-09-05 高速缓存一致性控制方法、系统和程序 Expired - Fee Related CN103229152B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2010263714 2010-11-26
JP2010-263714 2010-11-26
PCT/JP2011/070116 WO2012070291A1 (ja) 2010-11-26 2011-09-05 キャッシュコヒーレンシ制御の方法、システムおよびプログラム

Publications (2)

Publication Number Publication Date
CN103229152A CN103229152A (zh) 2013-07-31
CN103229152B true CN103229152B (zh) 2016-10-19

Family

ID=46145651

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180056650.2A Expired - Fee Related CN103229152B (zh) 2010-11-26 2011-09-05 高速缓存一致性控制方法、系统和程序

Country Status (6)

Country Link
JP (1) JP5414912B2 (zh)
CN (1) CN103229152B (zh)
DE (1) DE112011103433B4 (zh)
GB (1) GB2499168B (zh)
TW (1) TW201234180A (zh)
WO (1) WO2012070291A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6303632B2 (ja) * 2014-03-10 2018-04-04 富士通株式会社 演算処理装置および演算処理装置の制御方法
US9785554B2 (en) * 2014-05-30 2017-10-10 International Business Machines Corporation Synchronizing updates of page table status indicators in a multiprocessing environment
US9514058B2 (en) * 2014-12-22 2016-12-06 Texas Instruments Incorporated Local page translation and permissions storage for the page window in program memory controller
CN104750561B (zh) * 2015-04-15 2019-09-10 苏州中晟宏芯信息科技有限公司 寄存器堆缓存资源的动态释放方法、系统及一种处理器
GB2539383B (en) * 2015-06-01 2017-08-16 Advanced Risc Mach Ltd Cache coherency
CN106326146B (zh) * 2015-06-29 2019-05-14 上海华虹集成电路有限责任公司 检查高速缓存是否命中的方法
US10262721B2 (en) * 2016-03-10 2019-04-16 Micron Technology, Inc. Apparatuses and methods for cache invalidate
US10503641B2 (en) * 2016-05-31 2019-12-10 Advanced Micro Devices, Inc. Cache coherence for processing in memory
JP6235088B2 (ja) * 2016-08-24 2017-11-22 ルネサスエレクトロニクス株式会社 情報処理装置
CN108536473B (zh) * 2017-03-03 2021-02-23 华为技术有限公司 读取数据的方法和装置
TWI622881B (zh) * 2017-04-25 2018-05-01 Chunghwa Telecom Co Ltd Cache replacement system and method thereof for memory computing cluster
KR20190009580A (ko) * 2017-07-19 2019-01-29 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
GB2570474B (en) * 2018-01-26 2020-04-15 Advanced Risc Mach Ltd Region fusing
CN112612726B (zh) * 2020-12-08 2022-09-27 海光信息技术股份有限公司 基于缓存一致性的数据存储方法、装置、处理芯片及服务器
CN113779649B (zh) * 2021-09-08 2023-07-14 中国科学院上海高等研究院 一种针对投机执行攻击的防御方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6633967B1 (en) * 2000-08-31 2003-10-14 Hewlett-Packard Development Company, L.P. Coherent translation look-aside buffer
US6829683B1 (en) * 2000-07-20 2004-12-07 Silicon Graphics, Inc. System and method for transferring ownership of data in a distributed shared memory system
US6854046B1 (en) * 2001-08-03 2005-02-08 Tensilica, Inc. Configurable memory management unit

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH083805B2 (ja) 1985-06-28 1996-01-17 ヒューレット・パッカード・カンパニー Tlb制御方法
JPH0736170B2 (ja) * 1991-04-03 1995-04-19 工業技術院長 マルチプロセッサシステム
US5437017A (en) * 1992-10-09 1995-07-25 International Business Machines Corporation Method and system for maintaining translation lookaside buffer coherency in a multiprocessor data processing system
CA2107056C (en) * 1993-01-08 1998-06-23 James Allan Kahle Method and system for increased system memory concurrency in a multiprocessor computer system
JP3713312B2 (ja) 1994-09-09 2005-11-09 株式会社ルネサステクノロジ データ処理装置
JP2000067009A (ja) 1998-08-20 2000-03-03 Hitachi Ltd 主記憶共有型マルチプロセッサ
US6553460B1 (en) * 1999-10-01 2003-04-22 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US7082500B2 (en) * 2003-02-18 2006-07-25 Cray, Inc. Optimized high bandwidth cache coherence mechanism
US7073043B2 (en) * 2003-04-28 2006-07-04 International Business Machines Corporation Multiprocessor system supporting multiple outstanding TLBI operations per partition
US20080191920A1 (en) * 2007-02-12 2008-08-14 Sangbeom Park Low-voltage drop reference generation circuit for A/D converter
US7809922B2 (en) * 2007-10-21 2010-10-05 International Business Machines Corporation Translation lookaside buffer snooping within memory coherent system
US20100325374A1 (en) * 2009-06-17 2010-12-23 Sun Microsystems, Inc. Dynamically configuring memory interleaving for locality and performance isolation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6829683B1 (en) * 2000-07-20 2004-12-07 Silicon Graphics, Inc. System and method for transferring ownership of data in a distributed shared memory system
US6633967B1 (en) * 2000-08-31 2003-10-14 Hewlett-Packard Development Company, L.P. Coherent translation look-aside buffer
US6854046B1 (en) * 2001-08-03 2005-02-08 Tensilica, Inc. Configurable memory management unit

Also Published As

Publication number Publication date
CN103229152A (zh) 2013-07-31
GB2499168A (en) 2013-08-07
JP5414912B2 (ja) 2014-02-12
GB201310002D0 (en) 2013-07-17
WO2012070291A1 (ja) 2012-05-31
DE112011103433T5 (de) 2013-07-25
GB2499168B (en) 2014-04-16
DE112011103433B4 (de) 2019-10-31
TW201234180A (en) 2012-08-16
JPWO2012070291A1 (ja) 2014-05-19

Similar Documents

Publication Publication Date Title
CN103229152B (zh) 高速缓存一致性控制方法、系统和程序
AU2018334370B2 (en) Cache-based trace recording using cache coherence protocol data
US20120137079A1 (en) Cache coherency control method, system, and program
RU2443011C2 (ru) Фильтрация отслеживания с использованием кэша запросов отслеживания
CN101446923A (zh) 一种响应于指令而清洗高速缓冲存储器线的装置和方法
US11392508B2 (en) Lightweight address translation for page migration and duplication
US20220269615A1 (en) Cache-based trace logging using tags in system memory
US10860485B2 (en) Leveraging existing logic paths during bit-accurate processor tracing
GB2427715A (en) Managing snoop operations in a multiprocessor system
US6298419B1 (en) Protocol for software distributed shared memory with memory scaling
CN101587457B (zh) 用于单芯片多处理器的自适应高速缓存组织
JP2010244327A (ja) キャッシュシステム
US20220269614A1 (en) Treating main memory as a collection of tagged cache lines for trace logging
US11561896B2 (en) Cache-based trace logging using tags in an upper-level cache
US11687453B2 (en) Cache-based trace logging using tags in an upper-level cache
US11989137B2 (en) Logging cache line lifetime hints when recording bit-accurate trace
RU2775818C2 (ru) Запись трассировки на основе кэша с использованием данных протокола когерентности кэша
An Scalable Pointer-based Memory Protection for Data-intensive Computing
WO2022177698A1 (en) Treating main memory as a collection of tagged cache lines for trace logging
CN104049905A (zh) 在异构处理器之间迁移不同尺寸的页
Sunada et al. Novel Checkpointing Algorithm for Fault Tolerance on a Tightly-Coupled Multiprocessor

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20161019

Termination date: 20200905