CN115357525A - Snooping filter, processing unit, computing device and related methods - Google Patents
Snooping filter, processing unit, computing device and related methods Download PDFInfo
- Publication number
- CN115357525A CN115357525A CN202210948674.9A CN202210948674A CN115357525A CN 115357525 A CN115357525 A CN 115357525A CN 202210948674 A CN202210948674 A CN 202210948674A CN 115357525 A CN115357525 A CN 115357525A
- Authority
- CN
- China
- Prior art keywords
- cache line
- cache
- filling position
- snoop
- entry
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
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
本申请实施例提供了一种探听过滤器、处理单元、计算设备和相关方法,本方案适用于包括CISC指令集、RISC精简指令集(特别是RISC‑V指令集)或VLIM指令集架构的各种芯片,如物联网芯片、音/视频芯片等。该探听过滤器包括:接收单元,用于接收第一缓存行被填充到私有缓存中后私有缓存发送的坐标信息;探听单元,用于在根据坐标信息确定目标填充位置对应的映射表项中存储有第二缓存行的标识信息时,将第二缓存行的标识信息从目标填充位置对应的映射表项转移到牺牲表项,并在目标填充位置对应的映射表项中存储第一缓存行的标识信息。本方案能够减少探听过滤对于处理器核内与处理器核外的通信带宽的占用。
The embodiment of the present application provides a snooping filter, a processing unit, a computing device, and a related method. A variety of chips, such as IoT chips, audio/video chips, etc. The snooping filter includes: a receiving unit, configured to receive the coordinate information sent by the private cache after the first cache line is filled into the private cache; a snooping unit, configured to store in the mapping entry corresponding to the target filling position determined according to the coordinate information When the identification information of the second cache line is available, the identification information of the second cache line is transferred from the mapping entry corresponding to the target filling position to the victim entry, and the first cache line is stored in the mapping entry corresponding to the target filling position. Identification information. This solution can reduce the occupancy of snooping and filtering on the communication bandwidth inside and outside the processor core.
Description
技术领域technical field
本申请实施例涉及芯片技术领域,尤其涉及一种探听过滤器、处理单元、计算设备和相关方法。The embodiments of the present application relate to the field of chip technology, and in particular, to a snoop filter, a processing unit, a computing device, and a related method.
背景技术Background technique
在包括多个处理器核的处理单元中,缓存包括私有缓存和共享缓存,私有缓存属于特定的处理器核,共享缓存属于多个处理器核。处理器核从缓存中查询数据时,首先从其私有缓存中查询所需数据,如果查询不到则依次向下一级缓存查询。如果所需数据存储在其他处理器核的私有缓存中,则需要在其他处理器核的私有缓存中查询所需数据,这种处理方式称为探听(snoop)。探听其他处理器核的私有缓存,会降低其他处理器核的运行效率。In a processing unit including multiple processor cores, the cache includes a private cache and a shared cache, the private cache belongs to a specific processor core, and the shared cache belongs to multiple processor cores. When the processor core queries data from the cache, it first queries the required data from its private cache, and if it cannot find it, it then queries the lower-level cache in turn. If the required data is stored in the private caches of other processor cores, the required data needs to be queried in the private caches of other processor cores. This processing method is called snooping. Snooping on the private caches of other processor cores will reduce the operating efficiency of other processor cores.
目前,设置用于存储私有缓存中所存放数据的相关信息的探听过滤器,通过查询探听过滤器可以确定未存放所需数据的私有缓存,从而避免探听未存放所需数据的私有缓存。At present, a snoop filter for storing relevant information of data stored in the private cache is set. By querying the snoop filter, the private cache that does not store the required data can be determined, so as to avoid snooping the private cache that does not store the required data.
然而,为了保证探听过滤器能够准确反映私有缓存所存放的数据,每当私有缓存主动删除一条缓存行时,都需要向探听过滤器发送删除请求,将探听过滤器中被删除缓存行的相关信息删除,即使被删除的缓存行与内存中的数据相同,也需要向探听过滤器发送删除请求,这将占据处理器核内与处理器核外的通信带宽,影响处理单元的性能。However, in order to ensure that the snooping filter can accurately reflect the data stored in the private cache, whenever the private cache actively deletes a cache line, it needs to send a deletion request to the snooping filter, and the relevant information of the deleted cache line in the snooping filter For deletion, even if the deleted cache line is the same as the data in the memory, a deletion request needs to be sent to the snoop filter, which will occupy the communication bandwidth between the processor core and the processor core, and affect the performance of the processing unit.
发明内容Contents of the invention
有鉴于此,本申请实施例提供一种探听过滤器、处理单元、计算设备和相关方法,以至少解决或缓解上述问题。In view of this, embodiments of the present application provide a snoop filter, a processing unit, a computing device, and a related method, so as to at least solve or alleviate the above-mentioned problems.
根据本申请实施例的第一方面,提供了一种探听过滤器,包括:接收单元,用于接收第一缓存行被填充到私有缓存中后所述私有缓存发送的坐标信息,其中,所述坐标信息用于指示所述第一缓存行在所述私有缓存中的目标填充位置;探听单元,用于在根据所述坐标信息确定所述目标填充位置对应的映射表项中存储有第二缓存行的标识信息时,将所述第二缓存行的标识信息从所述目标填充位置对应的映射表项转移到牺牲表项,并在所述目标填充位置对应的映射表项中存储所述第一缓存行的标识信息,其中,不同的缓存行对应不同的标识信息。According to the first aspect of the embodiments of the present application, there is provided a snooping filter, including: a receiving unit, configured to receive coordinate information sent by the private cache after the first cache line is filled in the private cache, wherein the The coordinate information is used to indicate the target filling position of the first cache line in the private cache; the snooping unit is configured to store the second cache in the mapping entry corresponding to the target filling position determined according to the coordinate information When the identification information of the line is selected, the identification information of the second cache line is transferred from the mapping entry corresponding to the target filling position to the victim entry, and the second cache line is stored in the mapping entry corresponding to the target filling position. Identification information of a cache line, where different cache lines correspond to different identification information.
根据本申请实施例的第二方面,提供了一种处理单元,包括:根据上述第一方面所述的探听过滤器;至少两个处理器核,用于查询所述探听过滤器,确定所需数据所在的私有缓存。According to the second aspect of the embodiment of the present application, there is provided a processing unit, including: the snooping filter according to the first aspect above; at least two processor cores, used to query the snooping filter and determine the required The private cache where the data resides.
根据本申请实施例的第三方面,提供了一种计算设备,包括:上述第二方面所述的处理单元;存储器,与所述处理单元耦接,存储所述处理单元所需的数据。According to a third aspect of the embodiments of the present application, there is provided a computing device, including: the processing unit described in the second aspect above; and a memory, coupled to the processing unit, and storing data required by the processing unit.
根据本申请实施例的第四方面,提供了一种探听过滤方法,包括:接收第一缓存行被填充到私有缓存中后所述私有缓存发送的坐标信息,其中,所述坐标信息用于指示所述第一缓存行在所述私有缓存中的目标填充位置;在根据所述坐标信息确定所述目标填充位置对应的映射表项中存储有第二缓存行的标识信息时,将所述第二缓存行的标识信息从所述目标填充位置对应的映射表项转移到牺牲表项,并在所述目标填充位置对应的映射表项中存储所述第一缓存行的标识信息,其中,不同的缓存行对应不同的标识信息。According to a fourth aspect of the embodiments of the present application, there is provided a method for snooping and filtering, including: receiving coordinate information sent by the private cache after the first cache line is filled in the private cache, wherein the coordinate information is used to indicate The target filling position of the first cache line in the private cache; when it is determined according to the coordinate information that the mapping entry corresponding to the target filling position stores the identification information of the second cache line, the first The identification information of the second cache line is transferred from the mapping entry corresponding to the target filling position to the victim entry, and the identification information of the first cache line is stored in the mapping entry corresponding to the target filling position, where different The cache lines correspond to different identification information.
根据本申请实施例提供的探听过滤方案,私有缓存中的填充位置与探听过滤器中的映射表项一一对应,在第一缓存行被填充到目标填充位置后,如果目标填充位置对应的映射表项中存储有第二缓存行的标识信息,探听单元将第二缓存行的标识信息转移到牺牲表项,并将第一缓存行的标识信息存储到目标填充位置对应的映射表项。由于填充位置与映射表项一一对应,在第二缓存行不需要进行数据回写时,私有缓存仅需将目标填充位置的坐标信息发送给探听过滤器,探听过滤器将第一缓存行的标识信息存储到目标填充位置对应的映射表项,而将第二缓存行的标识信息转移到牺牲表项中,因此对于无需数据回写的缓存行,私有缓存无需向探听过滤器发送删除请求,即可保证根据探听过滤器确定哪些私有缓存不可能存放所需的数据,从而减少对其他处理器核的私有缓存进行探听的次数,进而可以减小发送删除请求对处理器核内与处理器核外的通信带宽的占据,从而保证处理单元的性能。According to the snooping and filtering scheme provided by the embodiment of the present application, the filling position in the private cache corresponds to the mapping entry in the snooping filter. After the first cache line is filled to the target filling position, if the mapping corresponding to the target filling position The entry stores the identification information of the second cache line, and the snooping unit transfers the identification information of the second cache line to the victim entry, and stores the identification information of the first cache line in the mapping entry corresponding to the target filling position. Since the filling position corresponds to the mapping table item one by one, when the second cache line does not need to write back data, the private cache only needs to send the coordinate information of the target filling position to the snoop filter, and the snoop filter will send the coordinate information of the first cache line The identification information is stored in the mapping entry corresponding to the target filling position, and the identification information of the second cache line is transferred to the victim entry. Therefore, for the cache line that does not need data write-back, the private cache does not need to send a delete request to the snoop filter. It can be guaranteed to determine which private caches cannot store the required data according to the snooping filter, thereby reducing the number of snoops on the private caches of other processor cores, thereby reducing the impact of sending delete requests on the processor core and the processor core. Occupation of external communication bandwidth, thereby ensuring the performance of the processing unit.
附图说明Description of drawings
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。In order to more clearly illustrate the technical solutions in the embodiments of the present application or the prior art, the following will briefly introduce the drawings that need to be used in the description of the embodiments or the prior art. Obviously, the accompanying drawings in the following description are only These are some embodiments described in the embodiments of the present application, and those skilled in the art can also obtain other drawings based on these drawings.
图1是本申请一个实施例所应用的计算设备的示意图;FIG. 1 is a schematic diagram of a computing device used in an embodiment of the present application;
图2是本申请一个实施例的处理单元的示意图;Fig. 2 is a schematic diagram of a processing unit of an embodiment of the present application;
图3是本申请一个实施例的探听过滤器的示意图;FIG. 3 is a schematic diagram of a snoop filter according to an embodiment of the present application;
图4是本申请一个实施例的私有缓存和探听过滤器的示意图;FIG. 4 is a schematic diagram of a private cache and a snooping filter according to an embodiment of the present application;
图5是本申请一个实施例的探听过滤方法的流程图。Fig. 5 is a flowchart of a snooping filtering method according to an embodiment of the present application.
具体实施方式Detailed ways
以下基于实施例对本申请进行描述,但是本申请并不仅仅限于这些实施例。在下文对本申请的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本申请。为了避免混淆本申请的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。The present application is described below based on examples, but the present application is not limited only to these examples. In the following detailed description of the application, some specific details are set forth in detail. The present application can be fully understood by those skilled in the art without the description of these detailed parts. In order to avoid obscuring the essence of the present application, well-known methods, procedures, and procedures are not described in detail. Additionally, the drawings are not necessarily drawn to scale.
首先,对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释。First of all, some nouns or terms appearing in the process of describing the embodiments of the present application are applicable to the following explanations.
探听:在包括多个处理器核的处理单元中,如果一个处理器核所需的数据存放在其他处理器核的私有缓存中,则该处理器核需要去其他处理器核的私有缓存中查询所需数据,该过程称为探听(snoop)。Snooping: In a processing unit including multiple processor cores, if the data required by one processor core is stored in the private cache of other processor cores, the processor core needs to query in the private cache of other processor cores The required data, the process is called snooping (snoop).
探听过滤器:由于探听其他处理器核的私有缓存会降低其他处理器核的运行效率,为了减少探听的次数,在下一级缓存的附近存放上一级缓存的查找表,该查找表中存储有相应私有缓存中所存放数据的相关信息,通过查找表可以确定相应私有缓存中是否存储有所需数据,该查找表称为探听过滤器(snoopfilter)。Snooping filter: Since snooping on the private caches of other processor cores will reduce the operating efficiency of other processor cores, in order to reduce the number of snooping times, a lookup table of the upper-level cache is stored near the next-level cache, and the lookup table is stored. Regarding information about the data stored in the corresponding private cache, it can be determined whether the required data is stored in the corresponding private cache through a lookup table, and the lookup table is called a snoop filter.
缓存行:处理器核将数据从主存读入缓冲存储器时,需要将所需数据及其附近的一部分数据都读取进来,每次读取的一组数据叫做缓存行(CacheLine),每一级缓存中可以存放很多缓存行,每一级缓存均以缓存行为单位进行数据存储。Cache line: When the processor core reads data from the main memory into the buffer memory, it needs to read in the required data and a part of the nearby data. The set of data read each time is called a cache line (CacheLine). Many cache lines can be stored in the level cache, and each level cache stores data in units of cache lines.
计算设备computing device
图1示出一个计算设备10的示意性框图。计算设备10可以基于各种型号的处理单元构建,并由WINDOWS操作系统、UNIX操作系统、Linux操作系统等任一操作系统驱动。此外,计算设备10可以在PC机、台式机、笔记本、服务器和移动通信装置等硬件和/或软件中实施。FIG. 1 shows a schematic block diagram of a
如图1所示,计算设备10可以包括一个或多个处理单元12,以及存储器14。计算设备10中的存储器14可以作为主存储器(简称为主存或内存),用于存储由数据信号表示的指令信息和/或数据信息,例如,存储器14可以存放处理单元12提供的数据(例如为预算结果),也可以用于实现处理单元12与外部存储设备16(或成为辅助存储器或外部存储器)之间的数据交换。As shown in FIG. 1 ,
在一些情形下,处理单元12需要通过总线11访问存储器14,以获取存储器14中的数据或对存储器14中的数据进行修改。由于存储器14的访问速度较慢,为了缓解处理单元12与存储器14之间的速度差距,计算设备10还包括与总线11通信连接的高速缓冲存储器18,高速缓冲存储器18用于对存储器14中的一些可能会被反复调用的程序数据或者报文数据进行缓存。高速缓冲存储器18可以由诸如静态随机存储器(Static Random AccessMemory,SRAM)等类型的存储装置实现。高速缓冲存储器18可以为多级结构,例如具有一级缓存(L1Cache)、二级缓存(L2Cache)和三级缓存(L3Cache)的三级缓存结构,高速缓冲存储器18也可以是三级以上的缓存结构或其他类型缓存结构。在一些实施例中,高速缓冲存储器18的一部分(例如一级缓存,或一级缓存和二级缓存两者)可以集成在处理单元12内部或与处理单元12集成在同一片上系统中。In some cases, the
基于此,处理单元12可以包括指令执行单元121、以及内存管理单元122等部分。指令执行单元121在执行一些需要修改内存的指令时发起写访问请求,该写访问请求指定了需要写入内存中的写入数据和相应的物理地址。内存管理单元122用于将这些指令指定的虚拟地址转译为该虚拟地址映射的物理地址,写访问请求指定的物理地址与相应指令指定的物理地址可以一致。Based on this, the
存储器14和高速缓冲存储器18之间的信息交互可以按照数据块来组织。在一些实施例中,高速缓冲存储器18和存储器14可以按照相同的空间尺寸被划分成数据块,数据块可以作为高速缓冲存储器18和存储器14之间的数据交换的最小单位(包括预设长度的一个或多个数据)。为了表述简洁清晰,下面将高速缓冲存储器18中的各数据块简称为缓存块(或者可以称为cacheline或高速缓存线),且不同的缓存块具有不同的缓存块地址。将存储器14中的各个数据块简称为内存块,且不同的内存块具有不同的内存块地址。缓存块地址和/或内存块地址可以包括用于定位数据块的物理地址标签。The exchange of information between
由于受到空间和资源的限制,高速缓冲存储器18无法对存储器14中的全部内容进行缓存,即高速缓冲存储器18的存储容量通常小于存储器14,高速缓冲存储器18提供的各个缓存块地址无法对应存储器14提供的全部内存块地址。处理单元12在需要访问内存时,首先经总线11访问高速缓冲存储器18,以判断所要访问的内容是否已被存储于高速缓冲存储器18中。如果所要访问的内容已被存储于高速缓冲存储器18中,则高速缓冲存储器18命中,此时处理单元12直接从高速缓冲存储器18中调用所要访问的内容。如果所要访问的内容未被存储于高速缓冲存储器18中,则高速缓冲存储器18和处理单元12需要经总线11访问存储器14,以在存储器14中查找相应的信息。由于高速缓冲存储器18的存取速率非常快,因此在高速缓冲存储器18命中时,处理单元12的效率可以显著提高,进而也使得整个计算设备10的性能和效率得以提升。Due to the limitation of space and resources, the
此外,计算设备10还可以包括存储设备16、显示设备、音频设备、鼠标/键盘等输入/输出设备。存储设备16可以是通过相应接口与总线11耦合的硬盘、光盘以及闪存等用于信息存取的设备。显示设备可以经相应的显卡与总线11耦合,用于根据总线11提供的显示信号进行显示。In addition, the
计算设备10还可以包括通信设备17,进而计算设备10可以通过各种方式与网络或其他设备进行通信。通信设备17可以包括一种或多种通信模块,通信设备17可以包括适用于特定的无线通信协议的无线通信模块。例如,通信设备17可以包括WLAN模块,用于实现符合电气和电子工程协会(IEEE)制定的802.11标准的WiFi通信。通信设备17可以包括WWAN模块,用于实现符合蜂窝或其他无线广域协议的无线广域通信。通信设备17还可以包括蓝牙模块等采用其他协议的通信模块,或其他自定义类型的通信模块。通信设备17还可以是用于串行传输数据的端口。The
需要说明的是,不同的计算设备10根据主板、操作系统和指令集架构的不同,计算设备10的结构可能有所变化。例如,目前很多计算设备设置有连接在总线11和各个输入/输出设备之间的输入/输出控制中心,且该输入/输出控制中心可以集成于处理单元12之内或独立于处理单元12。It should be noted that,
处理单元processing unit
图2是本申请一个实施例的处理单元12的示意性框图。如图2所示,每个处理单元12可以包括用于处理指令的多个处理器核120,指令的处理和执行是可以被用户(例如通过应用程序)和/或系统平台控制的。每个处理器核120可以用于处理特定的指令集,指令集可以支持复杂指令集计算(Complex Instruction Set Computing,CISC)、精简指令集计算(Reduced Instruction Set Computing,RISC)或基于超长指令字(Very LongInstruction Word,VLIW)的计算,特别需要说明的是,处理器核120适用于处理RISC-V指令集。不同的处理器核120可以各自处理不同或相同的指令集。处理器核120还可以包括其他处理模块,比如数字信号处理器(Digital Signal Processor,DSP)等。作为一种示例,图2中示出了处理器核1至处理器核m,m是正整数。FIG. 2 is a schematic block diagram of the
图1示出的高速缓冲存储器18可以被全部或部分集成于处理单元12中。根据架构的不同,高速缓冲存储器18可以是位于各个处理器核120之内和/或之外的单个或多级的内部高速缓冲存储器(如图2示出的3级高速缓冲存储器L1至L3,图2中统一标识为18),也可以包括面向指令和指令高速缓存和面向数据的数据高速缓存。处理单元12中的各处理器核120可以共享至少一部分的高速缓存存储器,例如,处理器核1至m可以共用第三级高速缓冲存储器L3。处理单元12中每个处理器核120具有各自的私有缓存,例如,每个处理器核120均具有第一级高速缓冲存储器L1和第二级高速缓冲存储器L2。处理单元12还可以包括外部高速缓存(未示出),其他高速缓存结构也可以作为处理单元12的外部高速缓存。The
如图2所示,处理单元12可以包括寄存器堆(Register File)126,寄存器堆126可以包括用于存储不同类型的数据和/或指令的多个寄存器,这些寄存器可以是不同类型,比如寄存器堆126可以包括整数寄存器、浮点寄存器、状态寄存器、指令寄存器和指针寄存器等。寄存器堆126中的寄存器可以选用通用寄存器来实现,也可以根据处理单元12的实际需求采用特定的设计。As shown in FIG. 2, the
处理单元12可以包括内存管理单元(Memory Management Unit,MMU)122,用于实现虚拟地址到物理地址的转译。内存管理单元122中缓存有页表中的一部分表项,内存管理单元122也可以从内存中获取未被缓存的表项。每个处理器核120中可以设置一个或多个内存管理单元122,不同处理器核120中的内存管理单元122可以与位于其他处理单元或处理器核中的内存管理单元122实现同步,使得每个处理单元或处理器核可以共享统一的虚拟存储系统。The
处理单元12用于执行指令序列(即程序)。处理单元12执行每个指令的过程包括:从存放指令的存储器中取出指令,对取出的指令进行译码,执行译码后的指令,及保持指令执行结果等步骤,如此循环,直到执行完指令序列中的全部指令或遇到停机指令。The
为了实现上述过程,处理单元12可以包括取指令单元124、指令译码单元125、指令发射单元(未示出)、指令执行单元121和退休单元123等。In order to realize the above process, the
取指令单元124作为处理单元12的启动引擎,用于将指令从存储器14中搬运到指令寄存器(可以是图2示出的寄存器堆126中的一个用于存放指令的寄存器)中,并接收下一个取指地址或根据取指算法计算获得下一个取指地址,取指算法可以是根据指令长度递增地址或递减地址。The
取出指令后,处理单元12进入指令译码阶段,指令译码单元125按照预定的指令格式,对取回的指令进行解码,以获得取回的指令所需的操作数获取信息,从而为指令执行单元121的操作做准备。操作数获取信息可以包括指向立即数、寄存器或其他能够提供源操作数的软件/硬件。After the instruction is fetched, the
指令发射单元通常存在于高性能的处理单元12中,位于指令译码单元125与指令执行单元121之间,用于指令的调度和控制,以将各个指令高效地分配至不同的指令执行单元121,使得多个指令的并行操作成为可能。指令经取指、译码并被调度到相应的指令执行单元121之后,相应的指令执行单元121开始执行该指令,即执行该指令所指示的操作,现相应的功能。The instruction issuing unit usually exists in the high-
退休单元123(或称为指令引退单元或指令写回单元)主要用于将指令执行单元121产生的执行结果写回到相应的存储位置(例如为处理单元12内部的寄存器),以使后续指令能够从该存储位置快速获取相应的执行结果。Retirement unit 123 (or called instruction retirement unit or instruction write-back unit) is mainly used to write back the execution result generated by the
对于不同类别的指令,可以在处理单元12中相应地设置不同的指令执行单元121。指令执行单元121可以是运算单元(例如包含算术逻辑单元、整形处理单元、矢量运算单元等,用于根据操作数进行运算并输出运算结果)、内存执行单元(例如用于根据指令访问内存以读取内存中的数据或向内存写入指定的数据等)以及协处理器等。在处理单元12中,各个指令执行单元121可以并行运行并输出相应的执行结果。For different types of instructions, different
指令执行单元121在执行某类指令(例如访存指令)时,需要访问存储器14,以获取存储器14中存储的信息或提供需要写入存储器14中的数据。需要说明的是,用于执行访存指令的指令执行单元121也可以简称为内存执行单元,该内存执行单元可以为加载存储单元(Load Store Unit,LSU)和/或其他用于内存访问的单元。When the
访存指令被取指令单元124获取之后,指令译码单元125可以对访存指令进行译码处理,使得访存指令的源操作数可被获取。译码处理后的访存指令被提供至相应的指令执行单元121,该指令执行单元121可以对访存指令的源操作数进行相应的运算(例如由算术逻辑单元对存储于寄存器中的源操作数进行运算)以获得访存指令对应的地址信息,并根据该地址信息发起相应的请求,例如地址转译请求、写访问请求等。After the memory access instruction is acquired by the
访存指令的源操作数通常包括地址操作数,指令执行单元121对该地址操作数进行运算以获得访存指令对应的虚拟地址或物理地址。当内存管理单元122被禁用时,指令执行单元121可以直接通过逻辑运算获得访存指令的物理地址。当内存管理单元121被启用时,相应的指令执行单元121根据访存指令对应的虚拟地址发起地址转译请求,该地址转译请求包括与访存指令的地址操作数对应的虚拟地址;内存管理单元122响应地址转译请求,并根据与该虚拟地址匹配的表项将地址转译请求中的虚拟地址转换为物理地址,使得指令执行单元121可以根据转译后的物理地址访问高速缓冲存储器18和/或存储器14。The source operand of the memory access instruction generally includes an address operand, and the
根据功能的不同,访存指令可包括加载指令和存储指令。加载指令的执行过程通常不需要对存储器14或高速缓冲存储器18中的信息进行修改,指令执行单元121只需要根据加载指令的地址操作数读取存储于存储器14、高速缓冲存储器18或外部的存储设备中的数据。不同于加载指令,存储指令的源操作数不仅包括地址操作数,还包括数据信息,存储指令的执行过程通常需要对存储器14和/或高速缓冲存储器18中的信息进行修改。存储指令的数据信息可以指向写入数据,该写入数据的来源可以是运算指令、加载指令等指令的执行结果,也可以是处理单元12中的寄存器或其他存储单元提供的数据,还可以是立即数。Depending on the function, memory access instructions may include load instructions and store instructions. The execution process of the load instruction generally does not need to modify the information in the
如图2所示,处理单元12包括探听过滤器15,探听过滤器15设置于共享缓存L3附近,探听过滤器15的数量可以是一个或多个,比如,不同的处理器核120可以对应不同的探听过滤器15,也可以多个处理器核120对应同一个探听过滤器15。探听过滤器15中存储有相对应的处理器核120的私有缓存(L1和L2)中所存放数据的相关信息,其他处理器核120通过查询探听过滤器15,可以确定探听过滤器15所对应处理器核120的私有缓存中是否存放有所需数据,比如,处理器核2通过查询处理器核1对应的探听过滤器15,可以确定处理器核1对应的私有缓存中是否存放有处理器核2所需的数据。As shown in Figure 2, the
探听过滤器15存储相对应处理器核120的私有缓存所存放数据的相关信息,当私有缓存所存放数据发生改变时,探听过滤器15需要更新所存储的相关信息,使得所存储的相关信息与相对应私有缓存所存放数据相对应,以使其他处理器核120通过查询探听过滤器15可以确定相应私有缓存中是否存储有所需数据。The snooping
本申请实施例主要着眼于探听过滤器15更新所存储相关信息的过程,在后文中会对探听过滤器15更新所存储相关信息的过程进行详细描述。The embodiment of the present application mainly focuses on the process of updating the stored relevant information by the snooping
探听过滤器snoop filter
多核处理单元通常包括多级缓存,顶层缓存容量较小但访问速度较快,底层缓存容量较大但访问速度较慢。顶层缓存属于某个处理器核私有,底层缓存由多个处理器核共同占用,比如,一级缓存(L1cache)属于某一个处理器核私有,仅用于缓存该处理器核的数据,二级缓存(L2 cache)由多个处理器核共同占用,用于缓存共用该二级缓存的多个处理器核的数据。当处理器核需要查询特定数据时,首先从其私有缓存中查询所需数据,如果查询不到所需数据,则依次向下一级缓存查询。如果所需数据存储在其他处理器核的私有缓存中,则需要对其他处理器核的私有缓存中查询所需数据。A multi-core processing unit usually includes a multi-level cache, the top cache has a small capacity but a fast access speed, and the bottom cache has a large capacity but a slow access speed. The top-level cache is private to a certain processor core, and the bottom-level cache is shared by multiple processor cores. For example, the first-level cache (L1cache) is private to a certain processor core and is only used to cache the data of the processor core. The cache (L2 cache) is jointly occupied by multiple processor cores, and is used to cache data of multiple processor cores that share the L2 cache. When the processor core needs to query specific data, it first queries the required data from its private cache, and if the required data cannot be queried, it then queries the next-level cache in turn. If the required data is stored in the private caches of other processor cores, it is necessary to query the required data in the private caches of other processor cores.
目前,探听过滤器存储私有缓存所存放数据的相关信息,为了保证探听过滤器所存储的相关信息能够准确反映私有缓存所存放的数据,每当私有缓存主动删除一条缓存行时,都需要向探听过滤器发送删除请求,将监被删除缓存行的相关信息从探听过滤器中删除。当被删除的缓存行与内存中的数据相同,此时无需进行数据回写,但仍需要向探听过滤器发送删除请求,以将被删除缓存行的相关信息从探听过滤器中删除,保证探听过滤器中所存储相关信息与私有缓存中的缓存行一一对应。由于处理器核需要频繁向探听过滤器发送删除请求,这将占据处理器核内与处理器核外的通信带宽,影响处理单元的性能。Currently, the snoop filter stores information about the data stored in the private cache. In order to ensure that the relevant information stored in the snoop filter can accurately reflect the data stored in the private cache, whenever a private cache proactively deletes a cache line, it needs to send the snoop The filter sends a delete request to delete the relevant information about the deleted cache line from the snoop filter. When the deleted cache line is the same as the data in the memory, there is no need to write back the data at this time, but it is still necessary to send a delete request to the snoop filter to delete the relevant information of the deleted cache line from the snoop filter to ensure snoop The relevant information stored in the filter is in one-to-one correspondence with the cache lines in the private cache. Since the processor core needs to frequently send delete requests to the snoop filter, this will occupy the communication bandwidth between the processor core and outside the processor core, and affect the performance of the processing unit.
本申请实施例就是为了应对探听过滤器删除表项对核内与核外之间通信带宽占用较大的问题,它主要是通过探听过滤器15实现的。下面详细讨论探听过滤器15的内部结构和本申请实施例的实现过程。The embodiment of the present application is to deal with the problem that deletion of entries by the snoop filter occupies a large communication bandwidth between the core and the outside of the core, and it is mainly realized through the snoop
图3是本申请一个实施例的探听过滤器的内部结构示意图。如图3所示,探听过滤器15包括接收单元151和探听单元152。在第一缓存行被填充到私有缓存中之后,私有缓存会向接收单元151发送坐标信息,该坐标信息可以指示第一缓存行在私有缓存中的目标填充位置。接收单元151接收到坐标信息后,探听单元152可以根据坐标信息判断目标填充位置对应的映射表项中是否存储有第二缓存行的标识信息,如果目标填充位置对应的映射表项中存储有第二缓存行的标识信息,则将第二缓存行的标识信息从目标填充位置对应的映射表项转移到牺牲表项,并在目标填充位置对应的映射表项中存储第一缓存行的标识信息,其中,不同的缓存行对应不同的标识信息。Fig. 3 is a schematic diagram of an internal structure of a snoop filter according to an embodiment of the present application. As shown in FIG. 3 , the snoop
探听过滤器15用于存储私有缓存中所填充缓冲行的标识信息,私有缓存可以是一个也可以是多个。不同的缓存行对应不同的标识信息,根据标识信息可以区别不同的缓存行,比如标识信息可以是缓存行在内存中的地址。The snooping
私有缓存包括多个用于填充缓存行的填充位置,探听过滤器15包括多个映射表项,探听过滤器15中的映射表项与私有缓存中的填充位置一一对应,映射表项用于存储相对应的填充位置中所填充缓存行的标识信息。比如,私有缓存包括N个填充位置,N为大于或等于2的正整数,则探听过滤器15包括N个映射表项,不同的填充位置与不同的映射表项相对应。探听过滤器15除了包括有多个映射表项外,还包括牺牲表项,牺牲表项也用于存储缓存行的标识信息,但牺牲表项不属于某一个填充位置,而是由多个填充位置共享。The private cache includes a plurality of filling positions for filling cache lines, and the snooping
私有缓存中的目标填充位置之前填充有第二缓存行,当第一缓存行被填充到目标填充位置时,私有缓存将目标填充位置的坐标信息发送给接收单元151,探听单元152根据接收单元151接收到的坐标信息,将目标填充位置对应的映射表项中存储的第二缓存行的标识信息转移到牺牲表项,并将第一缓存行的标识信息存储到目标填充位置对应的映射表项。如果第二缓存行不需要进行数据回写,第一缓存行被填充到目标填充位置后,第二缓存行被从私有缓存中挤出,第二缓存行的标识信息被存储在牺牲表项,同样保证了私有缓存中所存放的缓存行的标识信息均存储在探听过滤器15中。The target filling position in the private cache is filled with a second cache line before. When the first cache line is filled to the target filling position, the private cache sends the coordinate information of the target filling position to the receiving
在本申请实施例中,私有缓存中的填充位置与探听过滤器15中的映射表项一一对应,在第一缓存行被填充到目标填充位置后,如果目标填充位置对应的映射表项中存储有第二缓存行的标识信息,探听单元152将第二缓存行的标识信息转移到牺牲表项,并将第一缓存行的标识信息存储到目标填充位置对应的映射表项。由于填充位置与映射表项一一对应,在第二缓存行不需要进行数据回写时,私有缓存仅需将目标填充位置的坐标信息发送给探听过滤器15,探听过滤器15将第一缓存行的标识信息存储到目标填充位置对应的映射表项,而将第二缓存行的标识信息转移到牺牲表项中,因此对于无需数据回写的缓存行,私有缓存无需向探听过滤器15发送删除请求,即可保证根据探听过滤器确定哪些私有缓存不可能存放所需的数据,从而减少对其他处理器核的私有缓存进行探听的次数,进而可以减小发送删除请求对处理器核内与处理器核外的通信带宽的占据,从而保证处理单元的性能。In the embodiment of the present application, the filling position in the private cache corresponds to the mapping entry in the snoop
在一种可能的实现方式中,探听单元152根据坐标信息确定目标填充位置对应的映射表项为空时,将第一缓存行的标识信息存储到目标填充位置对应的映射表项中。In a possible implementation manner, when the snooping unit 152 determines that the mapping entry corresponding to the target filling position is empty according to the coordinate information, it stores the identification information of the first cache line in the mapping entry corresponding to the target filling position.
由于私有缓存中的填充位置与探听过滤器15中的映射表项是一一对应的,如果目标填充位置对应的映射表项为空,说明在填充第一缓存行之前目标填充位置未被填充其他缓存行,或者在填充第一缓存行之前目标填充位置中填充的缓存行已被排除私有缓存。根据坐标信息确定目标填充位置对应的映射表为空时,探听单元152将第一缓存行的标识信息存储到目标填充位置对应的映射表项中,通过第一缓存行的标识信息指示私有缓存中存放中第一缓存行。Since the filling position in the private cache is in one-to-one correspondence with the mapping entry in the snoop
在本申请实施例中,在目标填充位置对应的映射表项为空时,探听单元152无需执行将标识信息转移到牺牲表项的步骤,直接将被填充到目标填充位置的第一缓存行的标识信息存储到目标填充位置对应的映射表项,进而其他处理器核查询探听过滤器15时,根据目标填充位置对应的映射表项中所存储的标识信息,可以确定探听过滤器15对应的私有缓存中存储有第一缓存行,保证处理器核能够快速的查询到所需数据。In this embodiment of the present application, when the mapping entry corresponding to the target filling position is empty, snooping unit 152 does not need to perform the step of transferring the identification information to the victim entry, and directly transfers the first cache line filled to the target filling position The identification information is stored in the mapping entry corresponding to the target filling position, and then when other processor cores query the snooping
在一种可能的实现方式中,探听过滤器15包括至少一个探听表项集合,每个探听表项集合包括一个牺牲表项和至少一个映射表项,每个探听表项集合与私有缓存中的一个填充位置集合相对应,每个填充位置集合包括至少一个填充位置,每个探听表项集合中映射表项的数量与相对应的填充位置集合中填充位置的数量相等,且在相对应的探听表项集合和填充位置集合中,不同的映射表项对应不同的填充位置。在根据坐标信息确定目标填充位置对应的映射表项中存储有第二缓存行的标识信息后,探听单元152确定目标填充位置对应的映射表项所属的探听表项集合,然后将第二缓存行的标识信息从目标填充位置对应的映射表项转移到该探听表项集合包括的牺牲表项中。In a possible implementation manner, the snooping
例如,私有缓存包括y个填充位置集合,每个填充位置集合包括x个填充位置,其中x和y均为大于或等于1的正整数。探听过滤器15包括y个探听表项集合,每个探听表项集合包括x个映射表项和1个牺牲表项。填充位置集合与探听表项集合一一对应,比如,填充位置集合0与探听表项集合0相对应,填充位置集合1与探听表项集合1相对应,填充位置集合y-1与探听表项集合y-1相对应。在相对应的填充位置集合和探听表项集合中,填充位置与映射表项一一对应,比如,填充位置0与映射表项0相对应,填充位置1与映射表项1相对应,填充位置x-1与映射表项x-1相对应。For example, the private cache includes y filling position sets, and each filling position set includes x filling positions, where both x and y are positive integers greater than or equal to 1. The snoop
将第一缓存行填充到填充位置集合0中的填充位置x-1后,探听单元152会将探听表项集合0中映射表项x-1中存储的第二缓存行的标识信息,转移到探听表项集合0中的牺牲表项,并将第一缓存行的标识信息存储到探听表项集合0中映射表项x-1。After filling the first cache line into the filling position x-1 in the filling position set 0, the snooping unit 152 will transfer the identification information of the second cache line stored in the mapping entry x-1 in the snooping entry set 0 to snoop the victim entry in entry set 0, and store the identification information of the first cache line in the mapping entry x-1 in snoop entry set 0.
针对同一个缓存行,每次将该缓存行存放到私有缓存中时,需要将该缓存行填充到相同的填充位置集合中,但可以将该缓存行填充到该填充位置集合中不同的填充位置。比如,每次将缓存行L存放到私有缓存时,都将该缓存行L填充到填充位置集合1,上一次将该缓存行L填充到填充位置集合1包括的填充位置1,下一次可以将该缓存行L填充到填充位置集合1包括的填充位置0。For the same cache line, each time the cache line is stored in the private cache, the cache line needs to be filled into the same fill position set, but the cache line can be filled into different fill positions in the fill position set . For example, each time the cache line L is stored in the private cache, the cache line L is filled into the filling position set 1. The last time the cache line L was filled into the filling
在本申请实施例中,将私有缓存包括的填充位置划分为多个填充位置集合,并将探听过滤器15包括的表项分别为多个探听表项集合,使得填充位置集合与探听表项集合一一对应,而且相对应填充位置集合与探听表项集合中的填充位置与映射表项一一对应,便于根据坐标信息确定与填充位置相对应的映射表项,提高探听过滤器15更新标识信息的效率。另外,每个探听表项集合还包括一个牺牲表项,同一个探听表项集合包括的各映射表项共享一个牺牲表项,用于存储转移的标识信息,而且同一个缓存行每次都被填充到同一个填充位置集合中,从而在其他处理器核在查询探听过滤器15时,仅需查询用于存储所需数据的填充位置集合对应的探听表项集合,便可以确定私有缓存中是否存放有其他处理器核所需的数据,无需遍历探听过滤器15所存储的全部标识信息,从而可以提高处理器核从其他处理器核的私有缓存中获取所需数据的效率。In the embodiment of the present application, the filling positions included in the private cache are divided into a plurality of filling position sets, and the entries included in the snooping
在一种可能的实现方式中,每个填充位置集合对应的待完成的缓存行填充请求的数量小于或等于1,其中,缓冲行填充请求用于请求向相对应的填充位置集合包括的填充位置填充缓存行。In a possible implementation manner, the number of cache line filling requests to be completed corresponding to each filling position set is less than or equal to 1, wherein the buffer line filling request is used to request to fill positions included in the corresponding filling position set Fill the cache line.
每个填充位置集合可以包括多个填充位置。针对每个填充位置集合,该填充位置集合对应的缓存行填充请求用于请求向该填充位置集合包括的填充位置中填充缓存行,该填充位置集合接收到缓存行填充请求后,响应于缓存行填充请求向相对应的填充位置填充缓存行。在一个缓存行被填充到一个填充位置之后,该填充位置之前存放的缓存行将被挤出私有缓存,如果该被挤出私有缓存的缓存行需要进行数据回写,在该缓存行被回写的过程中,该缓存行的标识信息将被存储在相应探听表项集合中的牺牲表项。Each set of fill locations may include multiple fill locations. For each filling location set, the cache line filling request corresponding to the filling location set is used to request to fill the cache lines in the filling locations included in the filling location set, and the filling location set responds to the cache line filling request after receiving the cache line filling request. A fill request fills a cache line to the corresponding fill location. After a cache line is filled into a filling position, the cache line stored before the filling position will be squeezed out of the private cache. If the cache line that is squeezed out of the private cache needs to be written back, after the cache line is written back During the process, the identification information of the cache line will be stored in the victim entry in the corresponding snoop entry set.
比如,在前述实施例中填充位置集合与探听表项集合对应关系及填充位置与映射表项对应关系的基础上,第二缓存行存放于填充位置集合1中的填充位置1,当私有缓存接收到缓存行填充请求,将第一缓存行填充到填充位置集合1中的填充位置1时,第二缓存行将被挤出私有缓存,第二缓存行的标识信息被从探听表项集合1中的映射表项1转移到探听表项集合1中的牺牲表项。如果第二缓存行与内存中的数据不同,则第二缓存行需要进行数据回写,在第二缓存行被回写的过程中,第二缓存行的标识信息被存储在探听表项集合1中的牺牲表项,保证探听过滤器15中所存储标识信息与私有缓存中缓存行的对应性。For example, on the basis of the corresponding relationship between the filling location set and the snooping entry set and the corresponding relationship between the filling location and the mapping entry in the foregoing embodiments, the second cache line is stored in the filling
在本申请实施例中,由于填充位置集合与探听表项集合一一对应,而每个探听表项集合包括一个牺牲表项,如果一个缓存行需要进行数据回写,该缓存行被回写的过程中,该缓存行的标识信息需要被存储在相应的牺牲表项,保证私有缓存中存放的缓存行在探听过滤器15中有相对应的标识信息,为了避免一个缓存行回写完成之前,其他缓存行的标识信息被转移到牺牲表项将该缓存行的标识信息覆盖,进而导致私有缓存中存放的缓存行在探听过滤器15中没有相对应标识信息的情况发生,针对每个填充位置集合,仅允许存在小于或等于一个待完成的缓存行填充请求,从而保证私有缓存中存放的每个缓存行在探听过滤器15中均存储有相对应的标识信息,进而保证处理器核通过查询探听过滤器15查找所需数据的正确性。In the embodiment of the present application, since the set of filling positions corresponds to the set of snooping entries one-to-one, and each set of snooping entries includes a victim entry, if a cache line needs to be written back, the cache line is written back During the process, the identification information of the cache line needs to be stored in the corresponding victim table entry to ensure that the cache line stored in the private cache has corresponding identification information in the snooping
在一种可能的实现方式中,探听单元152在将第二缓存行的标识信息转移到牺牲表项时,如果牺牲表项中存储有第三缓存行的标识信息,则通过第二缓存行的标识信息覆盖牺牲表项中第三缓存行的标识信息。In a possible implementation manner, when the snooping unit 152 transfers the identification information of the second cache line to the victim entry, if the identification information of the third cache line is stored in the victim entry, the The identification information overwrites the identification information of the third cache line in the victim entry.
例如,在将第二缓存行的标识信息从探听表项集合1中的映射表项1转移到探听表项集合1中的牺牲表项时,如果探听表项集合1中的牺牲表项为空,则直接将第二缓存行的标识信息存储到探听表项集合1中的牺牲表项,如果探听表项集合1中的牺牲表项存储有第三缓存行的标识信息,则通过第二缓存行的标识信息覆盖探听表项集合1中牺牲表项中第三缓存行的标识信息,以将第二缓存行的标识信息存储到探听表项集合1中的牺牲表项。For example, when transferring the identification information of the second cache line from the
在本申请实施例中,由于每个探听表项集合包括一个牺牲表项,当被替换的缓存行与内存中的数据不相同时,允许首先发起数据填充请求,再发起数据回写请求,无需先向探听过滤器15发起表项删除操作,再向探听过滤器15发起表项添加操作,从而提高了数据填充到缓存的速度。由于每个探听表项集合包括一个牺牲表项,在将一个缓存行的标识信息从映射表项转移到同一探听表项集合中的牺牲表项时,即使牺牲表项之前存储有其他缓存行的标识信息,该标识信息所对应的缓存行在私有缓存中已不存在,所以可以被覆盖。In the embodiment of this application, since each set of snooping entries includes a victim entry, when the replaced cache line is different from the data in the memory, it is allowed to initiate a data filling request first, and then initiate a data write-back request without An entry deletion operation is first initiated to the snoop
在一种可能的实现方式中,每个处理器核对应一个探听过滤器15,一个处理器核内可以包括多个私有缓存,每个私有缓存包括至少一个填充位置集合。探听过滤器15包括多个探听表项集合,与各探听表项集合相对应的至少两个填充位置集合位于至少两个私有缓存中,不同的探听表项集合与不同的填充位置集合相对应,各私有缓存位于同一处理器核内。In a possible implementation manner, each processor core corresponds to one snoop
每个私有缓存包括至少一个填充位置集合,不同的私有缓存所包括的填充位置集合的数量可以相同或不同。各私有缓存中填充位置集合的总数等于探听过滤器15中探听表项集合的数量,每个探听表项集合对应一个填充位置集合,且不同的探听表项集合对应不同的填充位置集合。Each private cache includes at least one filling location set, and the number of filling location sets included in different private caches may be the same or different. The total number of filling position sets in each private cache is equal to the number of snooping entry sets in the snooping
例如,处理器核内包括一级缓存和第二缓存,一级缓存和二级缓存均包括y个填充位置集合。探听过滤器包括2y个探听表项集合,其中y个探听表项集合与一级缓存中的y个填充位置集合相对应,另外y个探听表项集合与二级缓存中的y个填充位置集合相对应,而且不同的探听表项集合对应不同的填充位置集合。For example, the processor core includes a first-level cache and a second-level cache, and both the first-level cache and the second-level cache include y filling position sets. The snooping filter includes 2y sets of snooping entries, wherein y sets of snooping entries correspond to y sets of filling positions in the first-level cache, and another set of y snooping entries corresponds to y sets of filling positions in the second-level cache Correspondingly, and different sets of snooping entries correspond to different sets of filling positions.
在本申请实施例中,探听过滤器15所包括的各探听表项集合可以对应相同私有缓存中的多个填充位置集合,也可以对应不同私有缓存中的多个填充位置集合,从而探听过滤器15适用于包括一个私有缓冲的处理器核,也适用于包括多个私有缓冲的处理器核,保证了探听过滤器15具有较强的适用性。In the embodiment of the present application, each set of snooping entries included in the snooping
在一种可能的实现方式中,同一个填充位置集合包括的各填充位置对应相同的索引信息,索引信息可以标识私有缓存中填充位置所能够填充的缓存行的地址区段。In a possible implementation manner, each filling position included in the same filling position set corresponds to the same index information, and the index information may identify the address segment of the cache line that can be filled by the filling position in the private cache.
在私有缓存内,按照从0依次加1分别赋予不同填充位置集合以索引(index)信息,即各填充位置集合的索引信息分别为0,1,2……,并将可以缓存的地址区间分割成至少一个地址区段,使得地址区段的数量与填充位置集合的数量相等。同样,按照从0依次加1分别赋予不同地址区段以索引信息,使得每个地址区段与具有相同索引信息的填充位置集合相对应。任意缓存行所处的地址区段,只能缓存在对应索引信息的填充位置。In the private cache, index information is assigned to different filling position sets according to the order of adding 1 from 0, that is, the index information of each filling position set is 0, 1, 2..., and the address intervals that can be cached are divided into at least one address segment such that the number of address segments is equal to the number of fill location sets. Similarly, index information is assigned to different address segments according to sequentially increasing from 0 to 1, so that each address segment corresponds to a set of filling positions having the same index information. The address segment where any cache line is located can only be cached in the filling position of the corresponding index information.
与私有缓存中的填充位置相对应,可以为探听过滤器15中的映射表项分配索引信息和路信息,使得相对应的填充位置和映射表项具有相同的索引信息和路信息,从而可以将具有相同索引信息的多个映射表项划分到同一个探听表项集合中。另外,为牺牲表项分配索引信息,使得不同的牺牲表项对应不同的索引信息,使得每个探听表项集合包括一个牺牲表项,而且同一探听表项集合中的映射表项和牺牲表项具有相同的索引信息。Corresponding to the filling position in the private cache, index information and way information can be assigned to the mapping entry in the snoop
图4是本申请一个实施例提供的私有缓存和探听过滤器的示意图。如图4所示,私有缓存包括y个填充位置集合,每个填充位置集合包括x个填充位置。不同的填充位置集合对应不同的索引信息,各填充位置集合对应的索引信息分别为index0、index1…index(y-1)。同一填充位置集合包括的各填充位置具有相同的索引信息,而且同一填充位置集合包括的各填充位置对应不同的路信息,各填充位置对应的路信息分别为way0、way1…way(x-1)。Fig. 4 is a schematic diagram of a private cache and a snooping filter provided by an embodiment of the present application. As shown in FIG. 4 , the private cache includes y filling location sets, and each filling location set includes x filling locations. Different filling position sets correspond to different index information, and the index information corresponding to each filling position set is respectively index0, index1...index(y-1). Each filling position included in the same filling position set has the same index information, and each filling position included in the same filling position set corresponds to different way information, and the way information corresponding to each filling position is way0, way1...way(x-1) .
与私有缓存包括的各填充位置相对应,探听过滤器15包括y个探听表项集合,每个探听表项集合包括x个映射表项和1个牺牲表项。不同的探听表项集合对应不同的索引信息,各探听表项集合对应的索引信息分别为index0、index1…index(y-1)。同一探听表项集合包括的各映射表项对应相同的索引信息,而同一探听表项集合包括的各映射表项对应不同的路信息,各映射表项对应的路信息分别为way0、way1…way(x-1)。Corresponding to each filling position included in the private cache, the snoop
私有缓存中的填充位置与探听过滤器15中的映射表项一一对应。私有缓存中的填充位置填充有缓存行和缓存行的标识信息,探听过滤器15中的映射表项存储有相对应填充位置所填充缓存行的标识信息。The filling position in the private cache is in one-to-one correspondence with the mapping entry in the snooping
在本申请实施例中,以私有缓存中填充位置的地址区段作为索引信息,根据索引信息将私有缓存中的填充位置划分为多个填充位置集合,使同一填充位置集合包括的各填充位置具有相同的索引信息,而且同一填充位置集合包括的各填充位置对应不同的路信息,为探听过滤器15包括的各映射表项分别不同的索引信息和路信息,使具有相同索引信息和路信息的填充位置与映射表项相对应,从而实现填充位置与映射表项的一一对应。In the embodiment of the present application, the address segment of the filling position in the private cache is used as the index information, and the filling position in the private cache is divided into multiple filling position sets according to the index information, so that each filling position included in the same filling position set has The same index information, and each filling position included in the same filling position set corresponds to different road information, each mapping entry included in snooping
在一种可能的实现方式中,标识信息可以是缓存行在内存中的地址信息。In a possible implementation manner, the identification information may be address information of the cache line in the memory.
在本申请实施例中,由于不同的缓存行在内存中具有不同的地址,因此可以将缓存行在内存中的地址信息作为缓存行的标识信息,使得可以根据标识信息区别不同的缓存行,方便处理器核根据缓存行的标识信息从其他处理器核的私有缓存中查找所需数据,保证处理器核查找所需数据的效率,进而保证处理单元的性能。In the embodiment of the present application, since different cache lines have different addresses in the memory, the address information of the cache line in the memory can be used as the identification information of the cache line, so that different cache lines can be distinguished according to the identification information, which is convenient The processor core searches the required data from the private caches of other processor cores according to the identification information of the cache line to ensure the efficiency of the processor core to search for the required data, thereby ensuring the performance of the processing unit.
探听过滤方法snoop filter method
图5是本申请一个实施例的探听过滤方法的流程图,该探听过滤方法可由上述实施例中的探听过滤器15执行。如图5所示,该探听过滤方法包括如下步骤:Fig. 5 is a flow chart of a snoop filtering method according to an embodiment of the present application, and the snoop filtering method may be executed by the snoop
步骤501、接收第一缓存行被填充到私有缓存中后私有缓存发送的坐标信息,其中,坐标信息用于指示第一缓存行在私有缓存中的目标填充位置;Step 501: Receive the coordinate information sent by the private cache after the first cache line is filled into the private cache, where the coordinate information is used to indicate the target filling position of the first cache line in the private cache;
步骤502、在根据坐标信息确定目标填充位置对应的映射表项中存储有第二缓存行的标识信息时,将第二缓存行的标识信息从目标填充位置对应的映射表项转移到牺牲表项,并在目标填充位置对应的映射表项中存储第一缓存行的标识信息,其中,不同的缓存行对应不同的标识信息。Step 502: When it is determined according to the coordinate information that the identification information of the second cache line is stored in the mapping entry corresponding to the target filling position, transfer the identification information of the second cache line from the mapping entry corresponding to the target filling position to the victim entry , and store the identification information of the first cache line in the mapping entry corresponding to the target fill position, where different cache lines correspond to different identification information.
在本申请实施例中,私有缓存中的填充位置与映射表项一一对应,在第一缓存行被填充到目标填充位置后,如果目标填充位置对应的映射表项中存储有第二缓存行的标识信息,则将第二缓存行的标识信息转移到牺牲表项,并将第一缓存行的标识信息存储到目标填充位置对应的映射表项。由于填充位置与映射表项一一对应,在第二缓存行不需要进行数据回写时,将第一缓存行的标识信息存储到目标填充位置对应的映射表项,而将第二缓存行的标识信息转移到牺牲表项中,因此对于无需数据回写的缓存行,私有缓存无需向探听过滤器发送删除请求,即可保证根据探听过滤器确定哪些私有缓存不可能存放所需的数据,从而减少对其他处理器核的私有缓存进行探听的次数,进而可以减小发送删除请求对处理器核内与处理器核外的通信带宽的占据,从而保证处理单元的性能。In the embodiment of the present application, the filling position in the private cache corresponds to the mapping table item one by one. After the first cache line is filled to the target filling position, if the mapping table item corresponding to the target filling position stores the second cache line The identification information of the second cache line is transferred to the victim entry, and the identification information of the first cache line is stored in the mapping entry corresponding to the target filling position. Since the filling position corresponds to the mapping table item one by one, when the second cache line does not need to perform data write-back, the identification information of the first cache line is stored in the mapping table item corresponding to the target filling position, and the second cache line’s The identification information is transferred to the victim table entry. Therefore, for the cache line that does not need data write-back, the private cache does not need to send a delete request to the snoop filter, and it can ensure that the private cache cannot store the required data according to the snoop filter. The number of times of snooping on the private caches of other processor cores is reduced, thereby reducing the occupancy of the communication bandwidth between the processor core and outside the processor core by sending delete requests, thereby ensuring the performance of the processing unit.
在一种可能的实现方式中,在根据坐标信息确定目标填充位置对应的映射表项为空时,将第一缓存行的标识信息存储到目标填充位置对应的映射表项中。In a possible implementation manner, when it is determined according to the coordinate information that the mapping entry corresponding to the target filling position is empty, the identification information of the first cache line is stored in the mapping entry corresponding to the target filling position.
在一种可能的实现方式中,将第二缓存行的标识信息从目标填充位置对应的映射表项转移到牺牲表项,包括:确定目标填充位置对应的映射表项所属的探听表项集合,并将第二缓存行的标识信息从目标填充位置对应的映射表项转移到该探听表项集合包括的牺牲表项,其中,探听过滤器包括至少一个探听表项集合,每个探听表项集合包括牺牲表项和至少一个映射表项,每个探听表项集合与私有缓存中的一个填充位置集合相对应,每个填充位置集合包括至少一个填充位置,每个探听表项集合中映射表项的数量与相对应的填充位置集合中填充位置的数量相等,相对应的探听表项集合和填充位置集合中不同的映射表项对应不同的填充位置。In a possible implementation manner, transferring the identification information of the second cache line from the mapping entry corresponding to the target filling position to the victim entry includes: determining the set of snooping entries to which the mapping entry corresponding to the target filling position belongs, And transfer the identification information of the second cache line from the mapping entry corresponding to the target filling position to the victim entry included in the snooping entry set, wherein the snooping filter includes at least one snooping entry set, and each snooping entry set Including the victim table entry and at least one mapping table entry, each snooping table entry set corresponds to a filling position set in the private cache, each filling position set includes at least one filling position, and each snooping table entry set has a mapping table entry The number of is equal to the number of filling positions in the corresponding filling position set, and different mapping entries in the corresponding snooping entry set and filling position set correspond to different filling positions.
在一种可能的实现方式中,将第二缓存行的标识信息从目标填充位置对应的映射表项转移到牺牲表项,包括:若牺牲表项中存储有第三缓存行的标识信息,通过第二缓存行的标识信息覆盖牺牲表项中第三缓存行的标识信息,其中,每个填充位置集合对应的待完成的缓存行填充请求的数量小于或等于1,缓存行填充请求用于请求向相对应的填充位置集合包括的填充位置填充缓存行。In a possible implementation manner, transferring the identification information of the second cache line from the mapping entry corresponding to the target filling position to the victim entry includes: if the victim entry stores the identification information of the third cache line, by The identification information of the second cache line overwrites the identification information of the third cache line in the victim entry, where the number of cache line filling requests to be completed corresponding to each filling position set is less than or equal to 1, and the cache line filling request is used for the request The cache line is filled to the fill locations included in the corresponding fill location set.
需要说明的是,由于探听过滤方法的细节在上述实施例的探听过滤器部分,已经结合结构示意图进行了详细说明,具体过程可参见前述探听过滤器实施例中的描述,在此不再进行赘述。It should be noted that, since the details of the snoop filter method have been described in detail in the snoop filter part of the above embodiment in conjunction with the structural schematic diagram, the specific process can refer to the description in the aforementioned snoop filter embodiment, and will not be repeated here. .
计算机存储介质computer storage media
本申请还提供了一种计算机可读存储介质,存储用于使一机器执行如本文所述的探听过滤方法的指令。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。The present application also provides a computer-readable storage medium storing instructions for causing a machine to execute the snooping filtering method as described herein. Specifically, a system or device equipped with a storage medium may be provided, on which a software program code for realizing the functions of any of the above embodiments is stored, and the computer (or CPU or MPU of the system or device) ) to read and execute the program code stored in the storage medium.
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本申请的一部分。In this case, the program code itself read from the storage medium can realize the function of any one of the above-mentioned embodiments, so the program code and the storage medium storing the program code constitute a part of the present application.
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。Examples of storage media for providing program code include floppy disks, hard disks, magneto-optical disks, optical disks (such as CD-ROM, CD-R, CD-RW, DVD-ROM, DVD-RAM, DVD-RW, DVD+RW), Tape, non-volatile memory card, and ROM. Alternatively, the program code can be downloaded from a server computer via a communication network.
计算机程序产品computer program product
本申请实施例还提供了一种计算机程序产品,包括计算机指令,该计算机指令指示计算设备执行上述多个方法实施例中的任一对应的操作。An embodiment of the present application further provides a computer program product, including computer instructions, where the computer instruction instructs a computing device to perform any corresponding operation in the foregoing multiple method embodiments.
本申请实施例的商业价值The commercial value of the embodiment of this application
本申请实施例在解决探听过滤占据处理器核内与处理器核外的通信带宽较大的问题时,通过设置牺牲表项,私有缓存填充缓存行时通知探听过滤器相对应的坐标信息,探听过滤器将所填充缓存行的标识信息存储到相对应的映射表项,如果映射表项中有其他标识信息,但该标识信息对应的缓存行不需要回写时,仅需要告知探听过滤器坐标信息,探听过滤器会将原缓存行的标识信息存放到牺牲表项,从而私有缓存不需要向探听过滤器发送删除请求,减少了对于处理器核内与处理器核外的通信带宽的占用,进而保证处理单元的性能。由于增加了牺牲表项,并且限制了同一填充位置集合仅允许一个正在执行的填充请求,当被替换的缓存行与内存中的数据不相同时,允许首先发起数据填充请求,然后发起数据回写请求,保证数据填充缓存的速度。In the embodiment of the present application, when solving the problem that the snoop filter occupies a large communication bandwidth between the processor core and the outside of the processor core, by setting a sacrificial entry, the private cache notifies the coordinate information corresponding to the snoop filter when the cache line is filled, and snoop The filter stores the identification information of the filled cache line in the corresponding mapping table item. If there is other identification information in the mapping table item, but the cache line corresponding to the identification information does not need to be written back, it only needs to inform the listener of the filter coordinates information, the snooping filter will store the identification information of the original cache line in the victim entry, so that the private cache does not need to send a delete request to the snooping filter, reducing the communication bandwidth usage between the processor core and outside the processor core. Thus, the performance of the processing unit is guaranteed. Due to the addition of sacrifice entries and the restriction that only one filling request is allowed in the same filling location set, when the replaced cache line is different from the data in memory, it is allowed to initiate a data filling request first, and then initiate a data write-back request, which guarantees the speed at which data fills the cache.
应该理解,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于装置和系统实施例中描述的方法,所以描述的比较简单,相关之处参见其他实施例的部分说明即可。It should be understood that each embodiment in this specification is described in a progressive manner, the same or similar parts of each embodiment can be referred to each other, and each embodiment focuses on the difference from other embodiments . In particular, for the method embodiments, since they are basically similar to the methods described in the device and system embodiments, the description is relatively simple, and for relevant parts, please refer to some descriptions of other embodiments.
应该理解,上述对本说明书特定实施例进行了描述。其它实施例在权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。It should be understood that the foregoing describes specific embodiments of the present specification. Other embodiments are within the scope of the following claims. In some cases, the actions or steps recited in the claims can be performed in an order different from that in the embodiments and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. Multitasking and parallel processing are also possible or may be advantageous in certain embodiments.
应该理解,本文用单数形式描述或者在附图中仅显示一个的元件并不代表将该元件的数量限于一个。此外,本文中被描述或示出为分开的模块或元件可被组合为单个模块或元件,且本文中被描述或示出为单个的模块或元件可被拆分为多个模块或元件。It should be understood that describing an element herein in the singular or showing only one in a drawing does not mean limiting the number of that element to one. Furthermore, modules or elements described or illustrated herein as separate may be combined into a single module or element, and modules or elements described or illustrated herein as a single may be split into a plurality of modules or elements.
还应理解,本文采用的术语和表述方式只是用于描述,本说明书的一个或多个实施例并不应局限于这些术语和表述。使用这些术语和表述并不意味着排除任何示意和描述(或其中部分)的等效特征,应认识到可能存在的各种修改也应包含在权利要求范围内。其他修改、变化和替换也可能存在。相应的,权利要求应视为覆盖所有这些等效物。It should also be understood that the terms and expressions used herein are for description only, and one or more embodiments of this specification should not be limited to these terms and expressions. The use of these terms and expressions does not mean to exclude any equivalent features shown and described (or parts thereof), and it should be recognized that various modifications may also be included within the scope of the claims. Other modifications, changes and substitutions may also exist. Accordingly, the claims should be read to cover all such equivalents.
Claims (14)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210948674.9A CN115357525A (en) | 2022-08-09 | 2022-08-09 | Snooping filter, processing unit, computing device and related methods |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210948674.9A CN115357525A (en) | 2022-08-09 | 2022-08-09 | Snooping filter, processing unit, computing device and related methods |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN115357525A true CN115357525A (en) | 2022-11-18 |
Family
ID=84033685
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202210948674.9A Pending CN115357525A (en) | 2022-08-09 | 2022-08-09 | Snooping filter, processing unit, computing device and related methods |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN115357525A (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119127731A (en) * | 2024-11-15 | 2024-12-13 | 中科亿海微电子科技(苏州)有限公司 | A monitoring filter |
| CN119621652A (en) * | 2025-02-11 | 2025-03-14 | 北京开源芯片研究院 | Processor core selection method, device, electronic device and storage medium |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7325102B1 (en) * | 2003-11-17 | 2008-01-29 | Sun Microsystems, Inc. | Mechanism and method for cache snoop filtering |
| US20170255557A1 (en) * | 2016-03-07 | 2017-09-07 | Qualcomm Incorporated | Self-healing coarse-grained snoop filter |
| US20170286299A1 (en) * | 2016-04-01 | 2017-10-05 | Intel Corporation | Sharing aware snoop filter apparatus and method |
| US20210149819A1 (en) * | 2019-01-24 | 2021-05-20 | Advanced Micro Devices, Inc. | Data compression and encryption based on translation lookaside buffer evictions |
| US20210294743A1 (en) * | 2020-03-17 | 2021-09-23 | Arm Limited | Apparatus and method for maintaining cache coherence data for memory blocks of different size granularities using a snoop filter storage comprising an n-way set associative storage structure |
-
2022
- 2022-08-09 CN CN202210948674.9A patent/CN115357525A/en active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7325102B1 (en) * | 2003-11-17 | 2008-01-29 | Sun Microsystems, Inc. | Mechanism and method for cache snoop filtering |
| US20170255557A1 (en) * | 2016-03-07 | 2017-09-07 | Qualcomm Incorporated | Self-healing coarse-grained snoop filter |
| US20170286299A1 (en) * | 2016-04-01 | 2017-10-05 | Intel Corporation | Sharing aware snoop filter apparatus and method |
| US20210149819A1 (en) * | 2019-01-24 | 2021-05-20 | Advanced Micro Devices, Inc. | Data compression and encryption based on translation lookaside buffer evictions |
| US20210294743A1 (en) * | 2020-03-17 | 2021-09-23 | Arm Limited | Apparatus and method for maintaining cache coherence data for memory blocks of different size granularities using a snoop filter storage comprising an n-way set associative storage structure |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119127731A (en) * | 2024-11-15 | 2024-12-13 | 中科亿海微电子科技(苏州)有限公司 | A monitoring filter |
| CN119127731B (en) * | 2024-11-15 | 2025-03-04 | 中科亿海微电子科技(苏州)有限公司 | A monitoring filter |
| CN119621652A (en) * | 2025-02-11 | 2025-03-14 | 北京开源芯片研究院 | Processor core selection method, device, electronic device and storage medium |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9921972B2 (en) | Method and apparatus for implementing a heterogeneous memory subsystem | |
| US8250254B2 (en) | Offloading input/output (I/O) virtualization operations to a processor | |
| CN112416817B (en) | Prefetching method, information processing device, device and storage medium | |
| US8423715B2 (en) | Memory management among levels of cache in a memory hierarchy | |
| US20080235477A1 (en) | Coherent data mover | |
| CN108139981B (en) | Access method for page table cache TLB table entry and processing chip | |
| CN112631961B (en) | A memory management unit, an address translation method and a processor | |
| CN112631962B (en) | Storage management device, storage management method, processor and computer system | |
| US8185692B2 (en) | Unified cache structure that facilitates accessing translation table entries | |
| CN114328295A (en) | Storage management apparatus, processor, related apparatus and related method | |
| JP2012532381A (en) | Extended page size with agglomerated small pages | |
| JP6859361B2 (en) | Performing memory bandwidth compression using multiple Last Level Cache (LLC) lines in a central processing unit (CPU) -based system | |
| CN112540939A (en) | Storage management device, storage management method, processor and computer system | |
| CN112559389B (en) | Storage control device, processing device, computer system and storage control method | |
| US12175250B2 (en) | Computing device and method for fusing and executing vector instructions | |
| US11061820B2 (en) | Optimizing access to page table entries in processor-based devices | |
| CN114816666B (en) | Configuration method of virtual machine manager, TLB (translation lookaside buffer) management method and embedded real-time operating system | |
| CN116795736A (en) | Data pre-reading method, device, electronic equipment and storage medium | |
| CN113722247A (en) | Physical memory protection unit, physical memory authority control method and processor | |
| CN116383101A (en) | Memory access method, memory management unit, chip, device and storage medium | |
| US20240345774A1 (en) | Information processing system | |
| CN115357525A (en) | Snooping filter, processing unit, computing device and related methods | |
| CN120104043A (en) | Data processing method, device and computing equipment | |
| CN117873921A (en) | A queue page table management method and device based on remote direct memory access | |
| JP3973129B2 (en) | Cache memory device and central processing unit using the same |
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 | ||
| TA01 | Transfer of patent application right | ||
| TA01 | Transfer of patent application right |
Effective date of registration: 20240301 Address after: 310052 Room 201, floor 2, building 5, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Applicant after: C-SKY MICROSYSTEMS Co.,Ltd. Country or region after: China Address before: 201208 floor 5, No. 2, Lane 55, Chuanhe Road, No. 366, Shangke Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai Applicant before: Pingtouge (Shanghai) semiconductor technology Co.,Ltd. Country or region before: China |
