CN105765547A - 用于执行总线锁定和转译后备缓冲器失效的方法和装置 - Google Patents
用于执行总线锁定和转译后备缓冲器失效的方法和装置 Download PDFInfo
- Publication number
- CN105765547A CN105765547A CN201480063058.9A CN201480063058A CN105765547A CN 105765547 A CN105765547 A CN 105765547A CN 201480063058 A CN201480063058 A CN 201480063058A CN 105765547 A CN105765547 A CN 105765547A
- Authority
- CN
- China
- Prior art keywords
- processor
- message
- lock
- main frame
- locking
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
- G06F9/467—Transactional memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0808—Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1054—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/52—Indexing scheme relating to G06F9/52
- G06F2209/522—Manager
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/682—Multiprocessor TLB consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/683—Invalidation
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)
- Multi Processors (AREA)
Abstract
一种用于执行总线锁定和转译后备缓冲器失效事务的方法和装置包括:锁定主机从系统中的第一处理器接收锁定请求。所述锁定主机将静默请求发送到所述系统中的所有处理器,并且在从所述锁定主机接收所述静默请求之后,所有处理器停止发布任何新事务并发布静默授权事务。在从所有处理器接收所述静默授权事务之后,所述锁定主机发布包括所述第一处理器的标识符的锁定授权消息。所述第一处理器执行原子事务序列,并且在完成所述原子事务序列之后,将第一锁定释放消息发送到所述锁定主机。在从所述第一处理器接收所述第一锁定释放消息之后,所述锁定主机将第二锁定释放消息发送到所有处理器。
Description
相关申请的交叉引用
本申请要求于2013年10月25日提交的美国临时专利申请号61/895,569的权益,所述专利申请号的内容据此通过引用的方式并入本文。
发明领域
本发明通常涉及总线锁定操作和转译后备缓冲器失效操作。
背景
多处理器系统使用原子性读-改-写操作来处理多个处理器或线程中的共享数据结构。这些可在可高速缓存存储器上且在不可高速缓存存储器上进行操作。当操作针对可高速缓存存储器并且不跨边界(例如,高速缓存行)时,处理器可利用内部器件(诸如高速缓存行锁定装置)使操作保持为原子性。当总线锁定针对不可高速缓存存储器或跨处理器无法使用内部器件的边界时,需要一种方式来执行原子性读-改-写。
为不可高速缓存的原子事务提供所必需的原子性常见解决方案是“锁定”互连架构(即,处理器、高速缓存和存储器通过其而彼此通信的布线和信令协议),将其单独使用保留给所述一个处理器,并且暂停所有其它处理器。常规地,这已通过仲裁并强制执行架构的拓扑结构中的每个切换点处的锁定条件而在架构中完成。
此外,处理器使用虚拟到物理地址转译方案并且通常将这些操作高速缓存在转译后备缓冲器(TLB)中。当软件变更这些转译中的一个(诸如以使虚拟地址失效、变更页面上的保护、移动页面等)时,转译的所有高速缓存(TLB)副本在软件可使所变更的转译生效之前必须被移除。
用于使变更与转译同步的一种常规解决方案是使得软件通过以下操作而显式地使多个处理器上的TLB失效:中断所有处理器并在每个处理器上运行任务以使所变更的TLB条目失效。启动转译变更的处理器中断每个其它处理器。接收处理器运行中断处理程序,中断处理程序从其TLB清除所变更的转译。用于使变更与转译同步的另一种常规方法是处理器之间的直接硬件通信(例如,软件使用显式TLB失效指令以将描述发生变更的转译的软件消息发送到每个其它处理器)。一个或多个启动处理器向每个其它处理器发送“同步”消息,并且当所有之前的TLB失效消息在所述处理器已充分生效时接收交握响应。专用软件确保同步操作将不会完成,直到每个处理器已停止使用在同步操作开始之前失效的每个转译。
在常规的总线锁定解决方案中,互连架构中的每个中间切换点必须了解锁定并针对其实施硬件。每个切换点在竞争的锁定请求程序之间进行仲裁,并且每个切换点通过阻断来自非锁定处理器的流量而强制执行授权锁定。相应地,较大系统需要更复杂的互连拓扑结构。
用于TLB失效的常规同步解决方案需要点对点通信。该解决方案可能无法很好地扩展,因为其需要与所涉及的处理器的数量的平方成比例的布线或事务。此外,其可能通过多个处理器同时发布的失效/同步序列的串行化而导致低性能。
因此,提供一种用于执行总线锁定和/或不受常规解决方案限制的TLB失效的方法和装置将是有益的。
发明概要
公开了涉及一种用于执行总线锁定的方法的实施方案。所述方法包括:锁定主机从系统中的第一处理器接收锁定请求。锁定主机将静默请求发送到系统中的所有处理器,并且在从锁定主机接收静默请求之后,所有处理器停止发布任何新事务并发布静默授权事务。在从所有处理器接收静默授权事务之后,锁定主机发布包括第一处理器的标识符的锁定授权消息。第一处理器执行原子事务序列,并且在完成原子事务序列之后,将第一锁定释放消息发送到锁定主机。在从第一处理器接收第一锁定释放消息之后,锁定主机将第二锁定释放消息发送到所有处理器。
公开了涉及一种用于执行总线锁定的系统的实施方案。所述系统包括多个处理器和锁定主机。锁定主机被配置来从系统中的多个处理器的第一处理器接收锁定请求,并且将静默请求发送到系统中的所有处理器。在从所有处理器接收静默授权事务之后,锁定主机发布包括第一处理器的标识符的锁定授权消息。在从第一处理器接收第一锁定释放消息之后,锁定主机将第二锁定释放消息发送到所有处理器。
公开了涉及一种用于执行总线锁定的装置的实施方案。所述装置包括被配置来从系统中的多个处理器的第一处理器接收锁定请求并且将静默请求发送到系统中的所有处理器的电路。在从所有处理器接收静默授权事务之后,所述装置发布包括第一处理器的标识符的锁定授权消息。在从第一处理器接收第一锁定释放消息之后,所述装置将第二锁定释放消息发送到所有处理器。
附图简述
可从结合附图通过实例的方式给出的以下描述获得更详细理解,其中:
图1是在其中可实现一个或多个所公开的实施方案的实例设备的框图;
图2是根据实施方案的实例系统的示意表示;
图3是根据实施方案的用于执行总线锁定的实例方法的流程图;以及
图4是根据实施方案的用于执行转译后备缓冲器(TLB)失效的实例方法的流程图。
具体实施方式
虽然在下文提供了实施方案的更详细描述,但是简而言之,中央锁定主机充当接收请求的仲裁程序,以在处理器必须开始原子性读-改-写程序时锁定来自处理器的总线。锁定主机控制总线以确保其它处理器不将总线用于任何其它操作。在其它实施方案中,中央同步主机从处理器接收转译后备缓冲器(TLB)失效请求,并且将同步消息播放到系统中的所有处理器。
图1是在其中可实现一个或多个所公开的实施方案的实例设备100的框图。设备100可包括计算机,例如台式计算机、平板计算机、游戏设备、手持设备、机顶盒、电视机或移动电话。设备100包括处理器102、存储器104、存储装置106、一个或多个输入设备108和一个或多个输出设备110。设备100还可可选地包括输入驱动器112和输出驱动器114。应理解,设备100可包括未在图1中示出的额外组件。
处理器102可包括中央处理单元(CPU)、图形处理单元(GPU)、位于相同芯片上的CPU和GPU、或一个或多个处理器核心,其中每个处理器核心可为CPU或GPU。存储器104可位于与处理器102相同的芯片上,或可独立于处理器102放置。存储器104可包括易失性或非易失性存储器,例如随机存取存储器(RAM)、动态RAM、或高速缓存。
存储装置106可包括固定或可移动存储装置,例如硬盘驱动器、固态驱动器、光盘、或闪盘驱动器。输入设备108可包括键盘、按键、触摸屏、触摸板、检测器、麦克风、加速计、陀螺仪、生物识别扫描仪或网络连接(例如,用于传输和/或接收无线IEEE802信号的无线局域网卡)。输出设备110可包括显示器、扬声器、打印机、触觉反馈设备、一个或多个灯、天线或网络连接(用于传输和/或接收无线IEEE802信号的无线局域网卡)。
输入驱动器112与处理器102和输入设备108通信,并且允许处理器102从输入设备108接收输入。输出驱动器114与处理器102和输出设备110通信,并且允许处理器102将输出发送到输出设备110。应注意,输入驱动器112和输出驱动器114是可选组件,并且如果输入驱动器112和输出驱动器114不存在,那么设备100将以相同方式进行操作。虽然所描述的实施方式包括主显示器,但是本发明可在没有主显示器且仅包括视频的源设备的情况下被实践。以此方式,控制范围可为具有多个便携式设备且不具有主显示器的办公室环境。
图2是根据实施方案的实例系统200的示意表示。实例系统200包括多个处理器1021-102N(指定为P0-P(N))、多个存储器设备1040-104M(指定为Mem0-Mem(M))、和锁定/同步主机210。如在图2中示出,处理器102经由节点或开关(“X”)与相应的存储器104相关联,其中锁定/同步主机210连接到直接连接到存储器1040的节点,然而锁定/同步主机210可连接到任何节点X。在实例系统200中,处理器P0-P5与Mem0相关联,处理器P6-P8与Mem1相关联,以及处理器P(N-1)-P(N)与Mem(M)相关联。应注意,虽然示出了多个存储器104,但是任何数量并且甚至仅一个存储器可存在于实例系统200中。此外,虽然各种处理器102被示出为与特定存储器104相关联,但是应注意,任何处理器102可访问被示出在实例系统200中的存储器102中的任一个。
在执行总线锁定操作或TLB失效之前,处理器将有关加入/离开活动的处理器池的消息发送到锁定/同步主机。这样做允许锁定/同步主机在任何给定时间得知哪个处理器被唤醒以及哪个处理器睡眠。例如,处理器可在处理器唤醒时将消息发送到锁定/同步主机以使得锁定主机得知其已加入活动的处理器池,并且在处理器旨在进入睡眠状态时将消息发送到锁定主机,使得锁定主机得知处理器已经离开活动池,并且不会期待来自所述处理器的信令。
图3是根据实施方案的用于执行总线锁定的实例方法300的流程图。为了方便起见,针对实例方法300将锁定/同步主机描述为“锁定主机”。
在步骤301中,当处理器需要开始原子性读-改-写事务时,处理器将锁定请求发送到锁定主机。锁定请求行进通过类似非高速缓存写入的互连架构,并且包括识别请求处理器(例如,核心)的值。标识符(ID)可为核心ID的形式。应注意,一个或多个处理器可基本上同时或彼此接连地将锁定请求发送到锁定主机。
在从处理器接收锁定请求之后,锁定主机使它们排队,并且做出有关首先处理哪个请求的确定(步骤302)。一旦锁定主机已做出其确定,那么其将静默请求发送到所有处理器(步骤303)。该广播静默请求消息行进通过类似相关探头的互连架构,并且指示所有处理器停止利用互连架构。
在步骤304中,处理器在互连架构上停止发布新事务,并且等待未决事务完成。一旦未决事务完成,那么处理器在互连架构上向锁定主机发布静默授权事务并等待。
锁定主机计算从处理器接收到的静默授权事务,并且当计数与活动处理器的数量匹配时(即,在步骤305中,所有静默授权事务已被接收),通过广播发布锁定授权消息(步骤306)。锁定授权消息包括其锁定已被授权的处理器的ID。
在步骤307中,每个处理器从锁定主机接收锁定授权消息,并且将授权ID与其ID进行比较。如果授权ID是处理器ID(步骤308),那么处理器继续其原子事务序列(例如,读-改-写),并且当完成时向锁定主机发布锁定释放消息(步骤309)。如果在步骤308中,授权ID与处理器ID不匹配,那么处理器抑制使用互连架构(步骤312)。
如果锁定主机已接收多个锁定请求(步骤310),那么所述方法返回到步骤306,其中锁定主机向处理器发布包括下一个处理器ID授权的新锁定授权消息。否则,锁定主机经由广播消息将锁定释放发送到所有处理器(步骤311),并且每个处理器在从锁定主机接收锁定释放之后继续使用互连架构。
图4是根据实施方案的用于执行转译后备缓冲器(TLB)的实例方法400的流程图。为了方便起见,在实例方法400中,将锁定/同步主机称为同步主机。
当处理器需要变更转译时,处理器将一系列TLB失效请求发送到包括被删除的转译的同步主机(步骤401)。然后,处理器将包括其唯一处理器ID的单个同步请求发送到锁定主机。为了尽可能快递执行失效序列,失效请求可为流水式的,因此同步请求强制执行串行化。也就是说,因为串行化要求变更转译的处理器无法启动新事务,直到其对失效请求进行流水操作(例如,在单个同步操作之后发布“一批”任何数量的TLB失效操作)而得知没有其它处理器仍使用旧事务为止,所以失效序列可被加速。
同步主机将失效请求广播到所有处理器(步骤402),并且将同步消息广播到每个处理器(步骤403)。在接收失效请求和同步消息之后,每个处理器确保其已使用任何先前的失效事务来完成,并且向同步主机发布同步完成消息(步骤404)。
同步主机计算从处理器接收到的同步完成消息,并且当计数与活动的处理器的数量匹配时,通过广播向处理器发布同步完成消息(步骤405)。同步完成消息包括其同步请求被完成的处理器ID。如果同步主机使多个同步请求排队(例如,其从一个以上的处理器接收一个以上的同步请求)而尚未接收任何干预的失效请求,那么在步骤405中,同步主机可发布多个同步完成消息而非单个同步完成消息。这可加速多个处理器对重叠的失效/同步序列的处理。当每个处理器从同步主机接收同步完成消息时,如果所述处理器尚未请求同步,那么其忽略同步完成消息,并且继续其正常执行。如果所述处理器已请求同步,那么其将消息中的ID与其自身ID进行比较(步骤406)。如果在步骤406中,ID匹配,那么处理器得知其自身同步已完成(步骤407)。如果ID不匹配,那么处理器继续等待同步主机执行所述处理器请求的同步。替代地,由同步主机发送的同步完成消息可仅被发送到其ID被包括在消息中的处理器,或被发送到全部处理器的子集。
应理解,基于本文公开内容的许多变更是可能的。虽然上文以特定组合描述了特征和元素,但是每个特征或元素可在不具有其它特征和元素的情况下被单独使用,或在具有或不具有其它特征和元素的情况下以各种组合使用。
例如,互连架构可包括多种技术中的任何一种。其可包括集成电路芯片上的组件之间的导线、在共享封装的集成电路芯片之间的插入器或封装基板上的布线、或封装之间的印刷电路板上的布线。
此外,虽然在上文将锁定主机和同步主机描述为驻留在单个实体(即210)中,但是应注意,它们可各自驻留在独立实体中。
另外,上文的方法300和400可在实例系统200的组件中实施,其中锁定主机或同步主机包括锁定/同步主机210,并且处理器包括处理器P0-P(N)。上文描述的读-改-写操作进可包括图2中的处理器对其相应的存储器(即,Mem0-Mem(M))执行读-改-写操作。
所提供的方法可在通用计算机、处理器或处理器核心中实施。合适的处理器包括(通过实例的方式),通用处理器、专用处理器、常规处理器、数字信号处理器(DSP)、多个微处理器、与DSP核心相关联的一个或多个微处理器、控制器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)电路、任何其它类型的集成电路(IC)、和/或状态机。这种处理器可通过使用经处理的硬件描述语言(HDL)指令的结果和包括网表的其它中间数据(此类指令能够存储在计算机可读介质上)来配置制造过程而被制造。这种处理的结果可为掩模工件,其随后用于制造实施本发明的方面的处理器的半导体制造过程。
本文提供的方法或流程图可在计算机程序、软件或并入由通用计算机或处理器执行的计算机可读存储介质中的固件中实施。计算机可读存储介质的实例包括只读存储器(ROM)、随机存取存储器(RAM)、寄存器、高速缓存存储器、半导体存储器设备、磁介质(诸如内置硬盘和可移动磁盘)、磁光介质、和光介质(诸如CD-ROM磁盘和数字通用磁盘(DVD))。
实施方案:
1.一种用于执行功能的方法。
2.根据实施方案1所述的方法,其中高速缓存是L2或L3高速缓存。
3.如在任何先前实施方案中的方法,其进一步包括同步障碍(DSB)指令。
4.如在先前任何实施方案中的方法,其中同步障碍指令使用相关域中的每个核心执行特定同步。
5.如在任何先前实施方案中的方法,其进一步包括在每个其它核心停止使用受现在使用DSB的相同线程之前发布的任何TLBI影响的任何转译之后完成同步。
6.如在任何先前实施方案中的方法,其中线程发布DSB或总线锁定。
7.如在任何先前实施方案中的方法,其中LS限制自身决不从两个线程发布总线锁定。
8.如在任何先前实施方案中的方法,其中LS限制自身决不从两个线程发布DSB。
9.如在任何先前实施方案中的方法,其中从一个线程发布DSB,且从第二线程发布总线锁定。
10.如在任何先前实施方案中的方法,其中DVMOp是后置写入。
11.如在任何先前实施方案中的方法,其进一步包括在从所述线程发布DVMSync请求之前等待所有未决写入从所述线程完成。
12.如在任何先前实施方案中的方法,其中等待所有未决写入从线程完成包括任何DVMOp请求。
13.如在任何先前实施方案中的方法,其中一旦LS已经发布DVMSync请求,那么其不会代表所述线程发布TLBI,直到DVMSync已接收其DVMComplete为止。
14.如在任何先前实施方案中的方法,其进一步包括一次仅发布一个DVMSync。
15.如在任何先前实施方案中的方法,其中从发送DVMSync消息时间到发送DVMComplete消息的时间,不发布第二DVMSync。
16.如在任何先前实施方案中的方法,其中使用单个DVMSync/DVMComplete序列来折叠并处理来自不同线程的多个DVMSync请求。
17.如在任何先前实施方案中的方法,其中在同步期间,存储器控制器继续处理包括总线锁定的常规请求。
18.如在任何先前实施方案中的方法,其中DVMSync请求是按线程的。
19.如在任何先前实施方案中的方法,其中DVMComplete请求是按核心的。
20.如在任何先前实施方案中的方法,其中核心使用存储器控制器经由寄存器写入执行交握。
21.如在任何先前实施方案中的方法,其中在CC6进入期间,核心告知存储器控制器其使用完其TLB并关闭,所以存储器控制器不再期待来自核心的任何DVMComplete请求。
22.如在任何先前实施方案中的方法,其中在CC6退出期间并且在重置期间,核心告知存储器控制器其将开始使用其TLB,所以存储器控制器可响应于DVMSync消息而开始期待来自核心的DVMComplete请求。
23.如在任何先前实施方案中的方法,其中ITLB将内部2周期探测发送到LS(地址+额外域)。
24.如在任何先前实施方案中的方法,其中ZVA为4个WC+存储,其保证不被关闭,直到高速缓存层级接收所有4个存储为止。
25.如在任何先前实施方案中的方法,其中CLFLUSH是独立的事务命令类型。
26.如在任何先前实施方案中的方法,其中具有~LS_L2StWcbReqPosted的强序OP的性能受WCBL2缓冲器的数量限制。
27.如在任何先前实施方案中的方法,其中针对弱序事务设置LS_L2StWcbReqPosted。
28.如在任何先前实施方案中的方法,其中仅在相关memtype上探测L1,并且L2标记示出其是否位于L1中。
29.如在任何先前实施方案中的方法,其进一步包括被称为使TLB条目局部或全局地失效的TLBI的指令。
30.如在任何先前实施方案中的方法,其中线程发送出流水式的一系列TLBI。
31.如在任何先前实施方案中的方法,其中TLBI系列的带宽为每5-10周期的一个带宽。
32.如在任何先前实施方案中的方法,其中探测通道中的链接消息不交错。
33.如在任何先前实施方案中的方法,其中在SDP端口处的链接消息之间进行常规探测,而XSI隐藏该类型的交错。
34.如在任何先前实施方案中的方法,其中仅空闲周期位于两个DVMOp消息之间。
35.如在任何先前实施方案中的方法,其中在CC6进入期间,清除L1I、L1D和L2。
36.如在任何先前实施方案中的方法,其中在PC6进入期间,清除L3。
37.如在任何先前实施方案中的方法,其中软件执行新FlushL2WayCMO中的八个。
38.如在任何先前实施方案中的方法,其中L3Ctl中的清除迭代器清除L2和L2阴影标记,但不清除L3。
39.如在任何先前实施方案中的方法,其中SMU向至L3CTL1的八个SMN写入发布FlushL3Way命令。
40.如在任何先前实施方案中的方法,其中L3Ctl中的迭代器清除两种方式的L3高速缓存。
41.如在任何先前实施方案中的方法,其中当L2高速缓存位置的清除发现所述线也存在于DC中时,L2Ctl探测DC外的线。
42.如在任何先前实施方案中的方法,其中使IC失效是核心的责任。
43.如在任何先前实施方案中的方法,其进一步包括局部和全局监测器以支持多核系统中的同步和信号量。
44.如在任何先前实施方案中的方法,其中每个核心具有位于LS内的局部监控器和位于CPU外的全局监控器。
45.如在任何先前实施方案中的方法,其中全局监控器在存储器控制器的相关从机中或附近。
46.如在任何先前实施方案中的方法,其中LS将独有的事务属性应用到非高速缓存加载或存储事务。
47.如在任何先前实施方案中的方法,其进一步包括将来自LS的属性传输到SDF作为事务编码的一部分,但不区别地处理事务。
48.如在任何先前实施方案中的方法,其中来自SDF的非高速缓存存储响应可具有被称为指示独有的读-改-写的成功或失败的“ExOkay”的属性。
49.如在任何先前实施方案中的方法,其中将属性与响应一直传输到LS。
50.如在任何先前实施方案中的方法,其中CLREX完全由局部监控器处理。
51.如在任何先前实施方案中的方法,其中NS可作为所有存储器请求的属性进行传递。
52.如在任何先前实施方案中的方法,其中NS存储在标记中。
53.如在任何先前实施方案中的方法,其中NS被设置为由再填充响应上的MCT指示,并且当其试图完成加载或存储时最终由LS做出反应。
54.如在任何先前实施方案中的方法,其中如果按照核心(SCR_EL3.NS)中的适当控制寄存器位,执行线程不处于安全状态,并且NS标记位清楚,那么其拒绝访问并引发异常。
55.如在任何先前实施方案中的方法,其中核心本身包括核心访问的必要语义。
56.如在任何先前实施方案中的方法,其进一步包括预取指令包括并组合以下属性:访问模式{加载、存储、指令(仅在ARM的情况下)}、高速缓存级别:{L1、L2、L3}和/或使用:{正常、非临时性}。
57.如在任何先前实施方案中的方法,其中L2包括L1。
58.如在任何先前实施方案中的方法,其中针对L1的预取指令也将针对L2。
59.如在任何先前实施方案中的方法,其中预取支撑来自LS或IT。
60.如在任何先前实施方案中的方法,其中如果预取支撑来自LS,那么加载L2。
61.如在任何先前实施方案中的方法,其中核心可进入使中断或事件未决的空闲低功耗状态。
62.如在任何先前实施方案中的方法,其中事件是任何线程可广播到其它线程的通用唤醒。
63.如在任何先前实施方案中的方法,其中中断和事件二者到达中断通道上的核心。
64.如在任何先前实施方案中的方法,其中当线程执行SEV时,其作为到特定地址的非高速缓存写入从LS去往L2。
65.如在任何先前实施方案中的方法,其中CPU外的逻辑负责识别中断通道上的所述写入并负责广播事件。
66.如在任何先前实施方案中的方法,其中如果核心中的两个线程在执行WFE或WFI,那么核心进入CC1(时钟停止)。
67.如在任何先前实施方案中的方法,其中当事件或中断到达时,L3I中的SCFCTP块小心地唤醒核心。
68.如在任何先前实施方案中的方法,其中具有按线程的资源的中断控制器驻留在SOC中的CPU复合体外部。
69.如在任何先前实施方案中的方法,其中线程可使用越过数据架构的非高速缓存的读取和写入来启动与其APIC/GIC的出站通信。
70.如在任何先前实施方案中的方法,其中APIC/GIC可使用中断通道启动与其线程的入站通信。
71.如在任何先前实施方案中的方法,其中在CPU复合体外部存在一组GIC或APIC块。
72.如在任何先前实施方案中的方法,其中每个CPU复合体具有与其附接的这些中断控制器组,对于所述CPU复合体中的线程数量具有足够容量。
73.如在任何先前实施方案中的方法,其中一组中断控制器具有用于来自处理器线程的寄存器读取和写入以及用于来自IO设备的传入中断的数据架构连接(使用AXI),并且所述组还具有用于对处理器线程的中断和中断交握的控制架构连接(使用AXI_SP)。
74.如在任何先前实施方案中的方法,其中AXI_SP像在每个方向中仅具有一个写入通道的AXI的子集。
75.如在任何先前实施方案中的方法,其中所有写入是邮递型的。
76.如在任何先前实施方案中的方法,其中去往且来自AXI_SP的流量通过改性SMN路由器或通过专用垫块合并到SMN。
77.如在任何先前实施方案中的方法,其中SMN用于将中断流量连接到CPU复合体,并且向前推向每个核心的SCFCTP块。
78.如在任何先前实施方案中的方法,其中SCFCTP将物理中断线驱动到核心中。
79.如在任何先前实施方案中的方法,其中中断始于IO设备处,并且一直蔓延到IO集线器。
80.如在任何先前实施方案中的方法,其中中断作为消息信令中断穿过可扩展的数据架构到达APIC/GIC组的AXI端口。
81.如在任何先前实施方案中的方法,其中CM使用真实AXI接口将消息递送到目标APIC或GIC。
82.如在任何先前实施方案中的方法,其中中断消息穿过AXI_SP总线到达SMN网络。
83.如在任何先前实施方案中的方法,其中SMN网络将中断消息路由到CPU复合体。
84.如在任何先前实施方案中的方法,其中在CPU复合体内部,常规的SMN路由硬件将中断消息导向目标核心的SCFCTP块。
85.如在任何先前实施方案中的方法,其中SCFCTP块使用专用物理中断线跨L3I/核心边界将中断消息递送到核心的中断逻辑。
86.如在任何先前实施方案中的方法,其中对中断递送所必需的任何硬件交握由将SMN写入事务发送回到GIC/APIC组的SCFCTP块管理。
87.如在任何先前实施方案中的方法,其进一步包括原子性原语以保护读/改/写序列。
88.如在任何先前实施方案中的方法,其中原子性原语完全在L1数据高速缓存中处理。
89.如在任何先前实施方案中的方法,其中原子性原语被称为可高速缓存的锁定。
90.如在任何先前实施方案中的方法,其中总线锁定涉及不可高速缓存地址或跨越高速缓存行边界。
91.如在任何先前实施方案中的方法,其中在SDF中,总线锁定由位于相关从机中的一个中或附近的集中总线锁定仲裁器控制。
92.如在任何先前实施方案中的方法,其中线程请求总线锁定,并且仲裁器将告知每个其它线程停止发布事务。
93.如在任何先前实施方案中的方法,其中仲裁器授权向请求线程授权总线锁定。
94.如在任何先前实施方案中的方法,其中锁定线程执行其原子操作。
95.如在任何先前实施方案中的方法,其中锁定被释放。
96.如在任何先前实施方案中的方法,其中总线锁定仲裁器告知其它线程它们可重新开始发布事务。
97.如在任何先前实施方案中的方法,其中在锁定期间,暂停来自相关域中的所有其它核心的所有流量。
98.如在任何先前实施方案中的方法,其中相关域中的其它核心可在其L1和L2高速缓存外继续执行,但是任何L2丢失将暂停,直到总线未被锁定为止。
99.如在任何先前实施方案中的方法,其进一步包括在完成传入DVMSync之前获取并完成未决总线锁定序列。
100.如在任何先前实施方案中的方法,其中D位写入为原子性,并且一旦开始,那么DVMSync无法在其之前排序。
101.如在任何先前实施方案中的方法,其中总线锁定在DVMSync序列期间的流动。
102.如在任何先前实施方案中的方法,其中存储器控制器得知哪个核心位于CC6中。
103.如在任何先前实施方案中的方法,其中在CC6内部和外部的事务附近存在极端情况。
104.如在任何先前实施方案中的方法,其中核心(例如,x86微码、ARM软件)经由寄存器写入使用存储执行与存储器控制器的交握。
105.如在任何先前实施方案中的方法,其中在CC6进入期间,核心告知存储器控制器其完成处理总线事务并关闭,所以存储器控制器不再期待来自核心的任何BusLockGrant请求。
106.如在任何先前实施方案中的方法,其中在CC6退出期间且在重置期间,核心告知存储器控制器其将开始再次处理总线事务,所以存储器控制器应响应于BusLockReq消息而期待来自核心的BusLockGrant请求。
107.如在任何先前实施方案中的方法,其中包括锁定主机从系统中的第一处理器接收锁定请求。
108.如在任何先前实施方案中的方法,其进一步包括锁定主机将静默请求发送到系统中的所有处理器。
109.如在任何先前实施方案中的方法,其中在从锁定主机接收静默请求之后,所有处理器停止发布新事务并发布静默授权事务。
110.如在任何先前实施方案中的方法,其中在从所有处理器接收静默授权事务之后,锁定主机发布锁定授权消息,其中由锁定主机发布的锁定授权消息包括第一处理器的标识符。
111.如在任何先前实施方案中的方法,其进一步包括第一处理器执行原子事务序列,并且在完成原子事务序列之后,将第一锁定释放消息发送到锁定主机。
112.如在任何先前实施方案中的方法,其进一步包括在从第一处理器接收第一锁定释放消息之后,锁定主机将第二锁定释放消息发送到所有处理器。
113.如在任何先前实施方案中的方法,其包括第一处理器将锁定授权消息中包括的标识符与第一处理器的标识符进行比较。
114.如在任何先前实施方案中的方法,其进一步包括锁定主机使从不同于第一处理器的处理器接收到的多个锁定请求排队。
115.如在任何先前实施方案中的方法,其进一步包括至少一个处理器将消息发送到锁定主机,以加入或离开活动的处理器组。
116.如在任何先前实施方案中的方法,其中所述至少一个处理器在达到唤醒状态时发送消息以加入活动的处理器组。
117.如在任何先前实施方案中的方法,其中所述至少一个处理器在进入睡眠状态时发送消息以离开活动的处理器组。
118.如在任何先前实施方案中的方法,其进一步包括锁定主机计算从处理器接收到的静默授权消息的数量,并且在确定静默授权消息从所有活动的处理器接收之后发送锁定授权消息。
119.如在任何先前实施方案中的被配置来执行方法的装置。
120.如在实施方案1-118中任一项中的被配置来执行方法的系统。
Claims (18)
1.一种方法,其包括:
锁定主机从系统中的第一处理器接收锁定请求;
所述锁定主机将静默请求发送到所述系统中的所有处理器;
在从所述锁定主机接收所述静默请求之后,所有处理器停止发布新事务并且发布静默授权事务;
在从所有处理器接收所述静默授权事务之后,所述锁定主机发布锁定授权消息,其中由所述锁定主机发布的所述锁定授权消息包括所述第一处理器的标识符;
所述第一处理器执行原子事务序列,并且在完成所述原子事务序列之后,将第一锁定释放消息发送到所述锁定主机;以及
在从所述第一处理器接收所述第一锁定释放消息之后,所述锁定主机将第二锁定释放消息发送到所有处理器。
2.根据权利要求1所述的方法,其进一步包括所述第一处理器将所述锁定授权消息中包括的所述标识符与所述第一处理器的所述标识符进行比较。
3.根据权利要求1所述的方法,其进一步包括所述锁定主机使从不同于所述第一处理器的处理器接收到的多个锁定请求排队。
4.根据权利要求1所述的方法,其进一步包括至少一个处理器将消息发送到所述锁定主机,以加入或离开活动的处理器组。
5.根据权利要求4所述的方法,其中所述至少一个处理器在达到唤醒状态时发送消息以加入所述活动的处理器组。
6.根据权利要求4所述的方法,其中所述至少一个处理器在进入睡眠状态时发送消息以离开所述活动的处理器组。
7.根据权利要求4所述的方法,其进一步包括所述锁定主机计算从所述处理器接收的静默授权消息的数量,并且在确定静默授权消息从所有活动的处理器接收之后,发送所述锁定授权消息。
8.一种系统,其包括:
多个处理器;和
锁定主机;并且
其中所述锁定主机被配置来从所述系统中的所述多个处理器的第一处理器接收锁定请求,在从所有处理器接收静默授权事务之后将静默请求发送到所述系统中的所有处理器,发布锁定授权消息,其中由所述锁定主机发布的所述锁定授权消息包括所述第一处理器的标识符,以及在从所述第一处理器接收第一锁定释放消息之后,将第二锁定释放消息发送到所有处理器。
9.根据权利要求8所述的系统,其中在从所述锁定主机接收所述静默请求之后,所有处理器停止新事务并且发布所述静默授权事务。
10.根据权利要求8所述的系统,其中在接收所述锁定授权消息之后,所述第一处理器被配置来执行原子事务序列,并且在完成所述原子事务序列之后,将所述第一锁定释放消息发送到所述锁定主机。
11.根据权利要求8所述的系统,其中所述第一处理器被配置来将所述锁定授权消息中包括的所述标识符与所述第一处理器的所述标识符进行比较。
12.根据权利要求8所述的系统,其中所述锁定主机被配置来使从不同于所述第一处理器的处理器接收到的多个锁定请求排队。
13.根据权利要求8所述的系统,其中所述至少一个处理器被配置来将消息发送到所述锁定主机,以加入或离开活动的处理器组。
14.根据权利要求13所述的系统,其中所述至少一个处理器在达到唤醒状态时发送消息以加入所述活动的处理器组。
15.根据权利要求13所述的系统,其中所述至少一个处理器在进入睡眠状态时发送消息以离开所述活动的处理器组。
16.根据权利要求13所述的系统,其中所述锁定主机被配置来计算从所述处理器接收到的静默授权消息的数量,并且在确定静默授权消息从所有活动的处理器接收之后,发送所述锁定授权消息。
17.一种装置,其包括:
被配置来从系统中的多个处理器的第一处理器接收锁定请求、在从所有处理器接收静默授权事务之后将静默请求发送到所述系统中的所有处理器、发布锁定授权消息的电路,其中所述锁定授权消息包括所述第一处理器的标识符,并且在从所述第一处理器接收第一锁定释放消息之后,将第二锁定释放消息发送到所有处理器。
18.根据权利要求17所述的装置,其进一步包括被配置来计算从所述处理器接收到的静默授权消息的数量,并且在确定静默授权消息从所有活动的处理器接收之后,发送所述锁定授权消息的电路。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361895569P | 2013-10-25 | 2013-10-25 | |
US61/895,569 | 2013-10-25 | ||
PCT/US2014/061944 WO2015061554A1 (en) | 2013-10-25 | 2014-10-23 | Method and apparatus for performing a bus lock and translation lookaside buffer invalidation |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105765547A true CN105765547A (zh) | 2016-07-13 |
Family
ID=52993553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480063058.9A Pending CN105765547A (zh) | 2013-10-25 | 2014-10-23 | 用于执行总线锁定和转译后备缓冲器失效的方法和装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9916243B2 (zh) |
EP (1) | EP3060996A4 (zh) |
JP (1) | JP6609552B2 (zh) |
KR (1) | KR102165775B1 (zh) |
CN (1) | CN105765547A (zh) |
WO (1) | WO2015061554A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113590314A (zh) * | 2021-07-13 | 2021-11-02 | 上海一谈网络科技有限公司 | 网络请求数据处理方法和系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10817434B2 (en) * | 2018-12-19 | 2020-10-27 | International Business Machines Corporation | Interruptible translation entry invalidation in a multithreaded data processing system |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020186711A1 (en) * | 2001-05-17 | 2002-12-12 | Kazunori Masuyama | Fault containment and error handling in a partitioned system with shared resources |
CN1504902A (zh) * | 2002-12-05 | 2004-06-16 | 国际商业机器公司 | 在存储器部件之间保持数据一致性的方法和系统 |
CN1732447A (zh) * | 2002-12-26 | 2006-02-08 | 英特尔公司 | 最低优先级中断的处理器功率状态知晓分配的机制 |
CN101082882A (zh) * | 2006-05-30 | 2007-12-05 | 株式会社东芝 | 高速缓冲存储器装置和高速缓冲存储方法 |
US7761696B1 (en) * | 2007-03-30 | 2010-07-20 | Intel Corporation | Quiescing and de-quiescing point-to-point links |
CN102317918A (zh) * | 2009-02-17 | 2012-01-11 | 松下电器产业株式会社 | 资源排他控制方法以及资源排他控制装置 |
CN102880518A (zh) * | 2005-08-30 | 2013-01-16 | 英特尔公司 | 实现公平可缩放的读者写者互斥的方法和装置 |
US20130054915A1 (en) * | 2011-08-22 | 2013-02-28 | Pik Shen Chee | Performing An Atomic Operation Without Quiescing An Interconnect Structure |
CN103140847A (zh) * | 2010-09-22 | 2013-06-05 | 英特尔公司 | 调节原子存储器操作以防止拒绝服务的攻击 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6381663B1 (en) * | 1999-03-26 | 2002-04-30 | Hewlett-Packard Company | Mechanism for implementing bus locking with a mixed architecture |
US6484185B1 (en) | 1999-04-05 | 2002-11-19 | Microsoft Corporation | Atomic operations on data structures |
US7640315B1 (en) * | 2000-08-04 | 2009-12-29 | Advanced Micro Devices, Inc. | Implementing locks in a distributed processing system |
CN1320483C (zh) * | 2001-09-21 | 2007-06-06 | 泛伺服公司 | 用于在多节点环境中实施日志处理的系统和方法 |
US7822978B2 (en) * | 2005-07-22 | 2010-10-26 | Intel Corporation | Quiescing a manageability engine |
US8443148B2 (en) * | 2009-12-26 | 2013-05-14 | Intel Corporation | System-wide quiescence and per-thread transaction fence in a distributed caching agent |
US8352656B2 (en) * | 2010-04-08 | 2013-01-08 | Intel Corporation | Handling atomic operations for a non-coherent device |
JP5838652B2 (ja) | 2011-08-23 | 2016-01-06 | 富士通株式会社 | データコピー処理システム |
-
2014
- 2014-10-23 EP EP14856428.9A patent/EP3060996A4/en not_active Ceased
- 2014-10-23 WO PCT/US2014/061944 patent/WO2015061554A1/en active Application Filing
- 2014-10-23 US US14/522,137 patent/US9916243B2/en active Active
- 2014-10-23 KR KR1020167013468A patent/KR102165775B1/ko active IP Right Grant
- 2014-10-23 CN CN201480063058.9A patent/CN105765547A/zh active Pending
- 2014-10-23 JP JP2016526040A patent/JP6609552B2/ja active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020186711A1 (en) * | 2001-05-17 | 2002-12-12 | Kazunori Masuyama | Fault containment and error handling in a partitioned system with shared resources |
CN1504902A (zh) * | 2002-12-05 | 2004-06-16 | 国际商业机器公司 | 在存储器部件之间保持数据一致性的方法和系统 |
CN1732447A (zh) * | 2002-12-26 | 2006-02-08 | 英特尔公司 | 最低优先级中断的处理器功率状态知晓分配的机制 |
CN102880518A (zh) * | 2005-08-30 | 2013-01-16 | 英特尔公司 | 实现公平可缩放的读者写者互斥的方法和装置 |
CN101082882A (zh) * | 2006-05-30 | 2007-12-05 | 株式会社东芝 | 高速缓冲存储器装置和高速缓冲存储方法 |
US7761696B1 (en) * | 2007-03-30 | 2010-07-20 | Intel Corporation | Quiescing and de-quiescing point-to-point links |
CN102317918A (zh) * | 2009-02-17 | 2012-01-11 | 松下电器产业株式会社 | 资源排他控制方法以及资源排他控制装置 |
CN103140847A (zh) * | 2010-09-22 | 2013-06-05 | 英特尔公司 | 调节原子存储器操作以防止拒绝服务的攻击 |
US20130054915A1 (en) * | 2011-08-22 | 2013-02-28 | Pik Shen Chee | Performing An Atomic Operation Without Quiescing An Interconnect Structure |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113590314A (zh) * | 2021-07-13 | 2021-11-02 | 上海一谈网络科技有限公司 | 网络请求数据处理方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
EP3060996A1 (en) | 2016-08-31 |
KR20160075638A (ko) | 2016-06-29 |
US20150120976A1 (en) | 2015-04-30 |
WO2015061554A1 (en) | 2015-04-30 |
KR102165775B1 (ko) | 2020-10-14 |
EP3060996A4 (en) | 2017-05-10 |
US9916243B2 (en) | 2018-03-13 |
JP6609552B2 (ja) | 2019-11-20 |
JP2016534432A (ja) | 2016-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10223280B2 (en) | Input/output memory map unit and northbridge | |
KR101700545B1 (ko) | 고성능 인터커넥트 코히어런스 프로토콜 | |
US9372808B2 (en) | Deadlock-avoiding coherent system on chip interconnect | |
DE112016004300T5 (de) | Verfahren, gerät und system zum zuweisen von cache unter verwendung einer verkehrsklasse | |
CN104508645B (zh) | 用于使用多个子锁来控制对具有读取器‑写入器锁的共享数据结构的访问的系统和方法 | |
US7747809B2 (en) | Managing PCI express devices during recovery operations | |
CN107278299A (zh) | 经由可重配置的虚拟交换机实现次级总线功能性的方法、装置和系统 | |
US9251077B2 (en) | Accelerated recovery for snooped addresses in a coherent attached processor proxy | |
US10152436B2 (en) | Mutual exclusion in a non-coherent memory hierarchy | |
US9881680B2 (en) | Multi-host power controller (MHPC) of a flash-memory-based storage device | |
US9229868B2 (en) | Data recovery for coherent attached processor proxy | |
US9251076B2 (en) | Epoch-based recovery for coherent attached processor proxy | |
KR101498452B1 (ko) | 복합 멀티-코어 및 멀티-소켓 시스템의 디버깅 | |
EP3436895B1 (en) | Hardware managed power collapse and clock wake-up for memory management units and distributed virtual memory networks | |
CN105765547A (zh) | 用于执行总线锁定和转译后备缓冲器失效的方法和装置 | |
JP2022540750A (ja) | コンピューティングデバイスのメモリ管理 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160713 |
|
RJ01 | Rejection of invention patent application after publication |