数据读写方法、处理器芯片及计算机设备

文档序号:1141156 发布日期:2020-09-11 浏览:13次 >En<

阅读说明:本技术 数据读写方法、处理器芯片及计算机设备 (Data reading and writing method, processor chip and computer equipment ) 是由 刘君 于 2020-07-06 设计创作,主要内容包括:本申请实施例公开了一种数据读写方法、处理器芯片及计算机设备,属于芯片技术领域。处理器芯片包括:至少两个处理器核心、各个处理器核心对应的处理器缓存、牺牲缓存、互联总线以及片外接口;片外接口与互联总线电性相连;互联总线分别与各个处理器缓存电性相连,且互联总线与牺牲缓存电性相连;各个处理器缓存与各自对应的处理器核心电性相连,且各个处理器缓存与牺牲缓存电性相连;各个处理器核心与牺牲缓存电性相连;其中,牺牲缓存用于存储处于共享状态的缓存块。本申请实施例提供的处理器芯片能够避免不同处理器核心对同一共享缓存块中不同地址进行写操作时造成的缓存伪共享问题,提高了处理器芯片的处理器性能。(The embodiment of the application discloses a data reading and writing method, a processor chip and computer equipment, and belongs to the technical field of chips. The processor chip includes: the system comprises at least two processor cores, a processor cache corresponding to each processor core, a sacrifice cache, an interconnection bus and an off-chip interface; the chip external interface is electrically connected with the interconnection bus; the interconnection bus is electrically connected with each processor cache respectively, and the interconnection bus is electrically connected with the sacrifice cache; each processor cache is electrically connected with the corresponding processor core, and each processor cache is electrically connected with the sacrifice cache; each processor core is electrically connected with the sacrifice cache; the victim cache is used for storing the cache blocks in the shared state. The processor chip provided by the embodiment of the application can avoid the problem of cache false sharing caused by the fact that different processor cores write different addresses in the same shared cache block, and improves the processor performance of the processor chip.)

数据读写方法、处理器芯片及计算机设备

技术领域

本申请实施例涉及芯片技术领域,特别涉及一种数据读写方法、处理器芯片及计算机设备。

背景技术

MESI(Modified Exclusive Shared Or Invalid)协议作为一种支持写回策略协议,被广泛应用于处理器中,用于保证处理器核心之间缓存的一致性。

MESI协议中规定,缓存中的缓存块(cache line)包括4种状态,分别为被修改(Modified,M)状态、独享(Exclusive,E)状态、共享(Shared,S)状态和无效(Invalid,I)状态。当缓存块被多个处理器核心缓存时,该缓存块即处于共享状态,而当其中一个处理器核心对缓存块中的数据进行修改时,修改操作将会触发一次监听操作流程,将其他处理器核心中该缓存块作废,即其他处理器核心中该缓存块变为无效状态。

发明内容

本申请实施例提供了一种数据读写方法、处理器芯片及计算机设备。所述技术方案如下:

一方面,本申请实施例提供了一种处理器芯片,所述处理器芯片包括:至少两个处理器核心、各个处理器核心对应的处理器缓存、牺牲缓存、互联总线以及片外接口;

所述片外接口与所述互联总线电性相连;

所述互联总线分别与各个所述处理器缓存电性相连,且所述互联总线与所述牺牲缓存电性相连;

各个所述处理器缓存与各自对应的处理器核心电性相连,且各个所述处理器缓存与所述牺牲缓存电性相连;

各个所述处理器核心与所述牺牲缓存电性相连;

其中,所述牺牲缓存用于存储处于共享状态的缓存块。

另一方面,本申请实施例提供了一种数据读写方法,所述方法应用于如上述方面所述的处理器芯片,所述方法包括:

所述处理器核心在对目标缓存块发起写操作时,在所述牺牲缓存以及所述处理器核心对应的处理器缓存中查询所述目标缓存块;

若在所述牺牲缓存中查询到所述目标缓存块,所述处理器核心则对所述牺牲缓存中的所述目标缓存块进行写操作。

另一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述处理器包括如权利要求1至8任一所述的处理器芯片。

本申请实施例提供的技术方案至少包括如下有益效果:

本申请实施例中,通过在处理器芯片中增加牺牲缓存,将牺牲缓存分别与各个处理器核心电性相连,将牺牲缓存分别与各个处理器缓存电性相连,并将处于共享状态的缓存块存储至牺牲缓存,当处理器核心需要对共享缓存块进行写操作时,即直接对牺牲缓存中的缓存块进行写操作,无需独占互联总线,避免不同处理器核心对同一共享缓存块中不同地址进行写操作时造成的缓存伪共享问题,提高了处理器芯片的处理器性能。

附图说明

图1示出了一种具有多核心的处理器芯片的结构图;

图2是图1所示处理器芯片对处于共享状态的缓存块进行写操作时的实施示意图;

图3示出了本申请一个示例性实施例提供的处理器芯片的结构图;

图4是图3所示处理器芯片对处于共享状态的缓存块进行写操作时的实施示意图;

图5示出了本申请一个示例性实施例提供的数据读写方法的流程图;

图6示出了本申请另一个示例性实施例提供的数据读写方法的流程图;

图7示出了本申请一个示例性实施例提供的计算机设备的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

为了方便理解,下面对本申请实施例中涉及的名词进行说明。

缓存(cache):指访问速度快于随机存取存储器(Random Access Memory,RAM)的一种高速存储器,与主存(即RAM)采用动态随机存取存储器(Dynamic Random AccessMemory,DRAM)技术不同,缓存通常采用静态随机存取存储器(Static Random AccessMemory,SRAM)技术。

本申请实施例中的缓存指处理器缓存,用于加快处理器核心的数据访问速度。通常情况下处理器的处理器核心对应有多级缓存,且不同级缓存的存储空间与访问速度不同。其中,越接近处理器核心的缓存的存储空间越小,且访问速度越快。

缓存块(cache line):又称为缓存行,是处理器内存层级结构中的基础数据传输单元,缓存与内存之间即以缓存块为单位进行数据传输,缓存中的数据即以缓存块的形式进行存储。

通常情况下,缓存块的大小在32至256字节之间(比如64字节),且同一缓存块中可以包括不同地址,处理器核心可以对缓存块中不同地址的数据进行写操作。

缓存块状态:MESI协议中规定缓存块包括4种状态,分别为被修改状态、独享状态、共享状态和无效状态。其中,独享状态下,缓存块仅被缓存在当前处理器核心对应的缓存中,且该缓存块的数据未被修改,与主存中的数据保持一致;共享状态下,缓存块被缓存在至少两个处理器核心对应的缓存中,且该缓存块未被修改,与主存中的数据保持一致;被修改状态下,缓存块仅被缓存在当前处理器核心对应的缓存中,且该缓存块的数据被修改,与主存中的数据不一致;若共享状态下某一处理器核心对缓存块的数据进行了修改,其他处理器核心对应缓存中的缓存块即变为无效状态。

缓存伪共享:在具有多处理器核心的处理器芯片中,当多个处理器核心或硬件线程分别访问同一个缓存块中的不同地址时,即出现缓存伪共享现象。由于出现缓存伪共享现象时会产生大量对互联总线的独占请求,因此增加了处理器运行时间,进而影响了处理器芯片的处理性能。

牺牲缓存(victim cache):本申请实施例中的牺牲缓存独立于处理器缓存,用于存储处于共享状态的缓存块。处理器芯片中,不同处理器核心对共享缓存块的读写操作均在牺牲缓存中进行。在一些实施例中,牺牲缓存的存储空间小于处理器缓存的存储空间。

请参考图1,其示出了一种具有多核心的处理器芯片的结构图。该处理器芯片100包括:至少两个处理器核心、各个处理器核心对应的处理器缓存、互联总线以及片外接口。

图1中,以处理器芯片100包括四个处理器核心,分别为处理器核心101、处理器核心102、处理器核心103和处理器核心104为例进行示意性说明。

各个处理器核心与对应的处理器缓存电性相连。如图1所示,处理器核心101与处理器缓存105电性相连,处理器核心102与处理器缓存106电性相连,处理器核心103与处理器缓存107电性相连,处理器核心104与处理器缓存108电性相连。其中,处理器缓存可以是L1缓存、L2缓存、L3缓存或L4缓存中的至少一种,本实施例对此不做限定。

各个处理器缓存与互联(Interconnect)总线109电性相连,从而通过互联总线109实现与主存之间的数据传输,或者,实现各个处理器缓存之间的数据传输。如图1所示,处理器缓存105、处理器缓存106、处理器缓存107和处理器缓存108分别与互联总线109电性相连。

在一些实施例中,当处理器核心进行写操作时,即可获取互联总线109的总线控制权限。

互联总线109与片外接口110电性相连。片外接口110用于连接外部设备,其可以包括:高速串口、光模块接口、摄像头采集接口、高速数据接口、高速串行计算机扩展总线标准(Peripheral Component Interconnect express,PCIe)接口、以太网接口、蓝牙接口的至少一种。

如图1所示,处理器芯片100可以通过片外接口110与内存120电性相连,从而对内存120进行读写操作。

在一些实施例中,各个处理器缓存与互联总线之间均存在读写通道和监听通道,在数据读写过程中,处理器缓存即通过读写通路和监听通路实现缓存一致性。

在图1的基础上,如图2所示,其示出了处理器芯片100对处于共享状态的缓存块进行写操作时的实施示意图。

处理器核心101的处理器缓存105中包含缓存块0,处理器核心102的处理器缓存106中包含缓存块1,处理器核心103的处理器缓存107中包含缓存块2,处理器核心104的处理器缓存108中包含缓存块0。当处理器核心101对处理器缓存0中的缓存块0发起写操作时,由于缓存块0处于共享状态,因此需要通过如下步骤保证写操作时的缓存一致性。

1、处理器核心101发起对缓存块0的写操作。其中,缓存块0处于共享状态。

2、处理器核心101获取互联总线109的操作权,并通过处理器缓存105与互联总线109之间的读写通路21,向互联总线109发送读写操作信号。

3、互联总线109接收到读写操作信号后,通过与处理器缓存108之间的监听通路221,向处理器核心104发送读写操作信号。

4、处理器核心104根据接收到读写操作信号,无效化处理器缓存108中的缓存块0。

5、处理器核心104通过监听通路221,向互联总线109发送无效化信号。该无效化信号用于指示已将本地缓存中的缓存块无效化。

6、互联总线109通过读写通路211,向处理器核心101发送无效化信号。

7、处理器核心101根据该无效化信号逐出缓存块。

8、处理器核心101将数据写入处理器缓存105。

可见,当对处于共享状态的缓存块进行写操作时,处理器核心需要获取互联总线的操作权,进而通过互联总线实现一系列监听操作流程。

然而,由于缓存块中包含不同地址,因此当不同处理器核心对同一缓存块中不同地址的数据进行写操作时,都会发起监听操作流程,但是此时不同处理器核心之间实际上并不存在数据共享需求,从而导致缓存伪共享问题。

举个简单的例子,当处理器核心0在地址0中写入数据,处理器核心1在地址1中写入数据时,由于地址0和地址1均位于缓存块0,因此需要执行一次监听操作流程;当处理器核心2在地址2中写入数据时,由于地址2和地址1均位于缓存块0,因此需要执行一次监听操作流程;当处理器核心3在地址3中写入数据时,由于地址3和地址2均位于缓存块0,因此需要执行一次监听操作流程;当处理器核心0在地址4中写入数据时,由于地址4和地址3均位于缓存块0,因此需要执行一次监听操作流程。

显然,当出现缓存伪共享时,处理器核心每次执行写操作时,都需要执行一次监听操作流程,导致互联总线被长时间占用,增加了处理器芯片的运行时长,进而影响处理器芯片的处理性能。

为了在不修改内存地址的前提下,解决缓存伪共享的问题,本申请实施例在处理器芯片中额外增加了牺牲缓存,从而借助牺牲缓存解决缓存伪共享问题。

请参考图3,其示出了本申请一个示例性实施例提供的处理器芯片的结构图。该处理器芯片包括至少两个处理器核心、各个处理器核心对应的处理器缓存、牺牲缓存、互联总线以及片外接口。

其中,该处理器芯片300可以是中央处理器(Central Processing Unit,CPU)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、图形处理器(Graphics Processing Unit,GPU)或人工智能(Artificial Intelligence,AI)芯片中的任意一种,本申请实施例对此不作限定。

图3中,以处理器芯片300包括2个处理器核心,分别为处理器核心301和处理器核心302为例进行示意性说明。在其他可能的实现方式中,处理器芯片中处理器核心的数量可以为2个以上,本实施例并不对此构成限定。

各个处理器核心与对应的处理器缓存电性相连。如图3所示,处理器核心301与处理器缓存303电性相连,处理器核心302与处理器缓存304电性相连。其中,处理器缓存可以是L1缓存、L2缓存、L3缓存或L4缓存中的至少一种,本实施例对此不做限定。

本申请实施例中,处理器芯片300中除了包含处理器缓存303外,还额外设置有牺牲缓存305。其中,牺牲缓存305分别与各个处理器核心电性相连,且牺牲缓存305分别与各个处理器缓存303电性相连。

如图3所示,牺牲缓存305分别与处理器核心301和处理器核心302电性相连,牺牲缓存305分别处理器缓存303和处理器缓存304电性相连。

本申请实施例中的牺牲缓存用于存储处于共享状态的缓存块,相应的,当处理器核心需要对共享缓存块进行写操作时,即直接在牺牲缓存中执行数据写操作,而无需获取互联总线的操作权,并执行监听操作流程,以此避免了缓存伪共享对互联总线的占用,降低了处理器芯片的运行时长,提高了处理器芯片的性能。

在一些实施例中,牺牲缓存与处理器缓存采用同样的随机存储技术,以此保证对牺牲缓存中数据的访问速度。并且,由于牺牲缓存用于存储共享缓存块,而处于非共享状态的缓存块仍旧存储在处理器缓存中,因此牺牲缓存的缓存空间小于处理器缓存的缓存空间。

与处理器缓存类似的,牺牲缓存还与互联总线电性相连,以便通过互联总线进行数据写回操作。如图3所示,处理器缓存303、处理器缓存304以及牺牲缓存305均与互联总线306电性相连。

互联总线306与片外接口307电性相连。片外接口307用于连接外部设备,其可以包括:高速串口、光模块接口、摄像头采集接口、高速数据接口、PCIe接口、以太网接口、蓝牙接口的至少一种。

综上所述,本申请实施例中,通过在处理器芯片中增加牺牲缓存,将牺牲缓存分别与各个处理器核心电性相连,将牺牲缓存分别与各个处理器缓存电性相连,并将处于共享状态的缓存块存储至牺牲缓存,当处理器核心需要对共享缓存块进行写操作时,即直接对牺牲缓存中的缓存块进行写操作,无需独占互联总线,避免不同处理器核心对同一共享缓存块中不同地址进行写操作时造成的缓存伪共享问题,提高了处理器芯片的处理器性能。

下面通过示例性的实施例对图3所示处理器芯片300的数据写操作过程进行说明。

请参考图4,其示出了本申请一个示例性实施例提供的处理器芯片进行数据写操作过程的实施示意图。本实施例中,以处理器核心301首先发起对缓存块0的写操作为例进行说明。

处理器核心,用于在对目标缓存块发起写操作时,在牺牲缓存以及处理器核心对应的处理器缓存中查询目标缓存块。

不同于相关技术中,当发起对缓存块的写操作时,仅在自身对应处理器缓存中查询缓存块,本申请实施例中,当需要对目标缓存块进行数据写操作时,处理器核心同时在牺牲缓存以及处理器缓存中查询目标缓存块。

在一些实施例中,处理器核心根据目标缓存块的缓存块地址(address)查询目标缓存块。

示意性的,如图4所示,当处理器301发起对缓存块0(即目标缓存块)的写操作时,查询处理器缓存303和牺牲缓存305中是否包含缓存块0。

进一步的,处理器核心,用于若在处理器缓存中查询到目标缓存块,且目标缓存块处于共享状态,则通过处理器缓存将数据写入牺牲缓存的缓存块中。

在一些实施例中,若在处理器缓存中查询到目标缓存块,且未在牺牲缓存中查询到目标缓存块时,处理器核心进一步获取处理器缓存中目标缓存块的缓存块状态。

不同于相关技术中,当处理器缓存中目标缓存块的状态为共享状态时,即触发监听操作流程,本申请实施例中,若缓存块状态为共享状态,处理器核心将数据写入牺牲缓存的缓存块中,以便后续在牺牲缓存中执行对共享缓存块的写操作。完成写操作后,牺牲缓存中即包含数据修改后的目标缓存块。

若缓存块状态为非共享状态(比如E状态),处理器核心则对处理器缓存中的目标缓存块进行数据写操作,并修改缓存块状态(比如修改为M状态),而不会将数据写入牺牲缓存中。

需要说明的是,虽然处理器核心301与牺牲缓存305之间电性相连,但是处理器301仅通过该通路对牺牲缓存进行缓存块查询,向牺牲缓存305中写入数据时,则需要通过处理器缓存303向牺牲缓存写入数据。

示意性的,如图4所示,处理器核心301查询到处理器缓存303中包含缓存块0,牺牲缓存305中不包含缓存块0,且缓存块0处于共享状态,因此处理器核心301根据写操作,通过处理器缓存303向牺牲缓存305写入数据。

当目标牺牲缓存处于共享状态时,表明其他处理器缓存中包含该目标缓存块,为了避免后续其他处理器核心在牺牲缓存和处理器缓存中同时查询到缓存块(缓存块中的数据不同),处理器核心还需要通知其他处理器核心无效化本地处理器缓存中的目标缓存块。

处理器核心,用于若在处理器缓存中查询到目标缓存块,且目标缓存块处于共享状态,则通过读写通路向所述互联总线发送写操作信号;

互联总线,用于通过其他处理器核心对应的监听通路,向其他处理器核心发送写操作信号;通过其他处理器核心对应的监听通路接收无效化信号,无效化信号是其他处理器核心无效化目标缓存块后发送的;通过处理器核心对应的读写通路向处理器核心发送无效化信号;

处理器缓存,还用于无效化目标缓存块;

处理器缓存,还用于逐出目标缓存块。

示意性的,如图4所示,处理器核心301在处理器缓存303中查询到缓存块0,且缓存块0处于共享状态时,处理器核心301获取互联总线306的操作权,并通过与互联总线306之间的读写通路411向互联总线306发送写操作信号,指示其他处理器核心无效化本地缓存中的缓存块0。

互联总线306接收到写操作信号后,即通过与处理器核心302之间的监听通路421,向处理器核心302发送写操作信号。处理器核心302接收到写操作信号后,即无效化处理器缓存304中的缓存块0,并通过监听通路421,向互联总线306发送无效化信号,该无效化信号用于指示已对目标缓存块进行无效化处理。

互联总线306进一步通过读写通路411向处理器核心301发送无效化信号。处理器核心301接收到无效化信号后,处理器缓存303即无效化缓存块0,并通过读写通道411和互联总线306将缓存块0逐出。其中,逐出的缓存块通过片外接口307回到内存中。

在一些实施例中,处理器核心可以先通过互联总线通知其他处理器核心无效化目标缓存块,并在接收到其他处理器核心反馈的无效化信号后,对本地处理器缓存中的目标缓存块进行无效化,并向牺牲缓存中写入数据,本实施例对此不作限定。

本申请实施例中,牺牲缓存位于处理器缓存与互联总线之间的写回通路,即牺牲缓存可以通过写回通路将数据写回到与片外接口电性相连的内存中。

由于经过写操作后,牺牲缓存中存储的数据相较于内存中的数据已经发生变化,因此,在一种可能的实施方式中,当处理器芯片支持脏状态(dirty)传递时,牺牲缓存还用于通过写回通路,将设置有脏状态标识的缓存块写回内存,其中,设置有脏状态标识的缓存块通过互联总线和片外接口写入内存中,脏状态标识用于表征缓存块中的数据被修改。

其中,脏状态标识(dirty bit)可以写入缓存块中,牺牲缓存通过脏状态标识是被出处于脏状态的缓存块后,即通过写回通路将该缓存块写回内存中,从而保持内存中数据与牺牲缓存中数据的一致性。

示意性的,如图4所示,处理器核心301通过处理器缓存303将数据写入牺牲缓存305后,牺牲缓存305根据脏状态标识,通过与互联总线306之间的写回通路308将脏状态缓存块中的数据写回内存中。

在其他可能的实施方式中,当处理器芯片不支持脏状态传递时,处理器核心仅将数据写入牺牲缓存,并无效化本地处理器缓存中的缓存块,而牺牲缓存并不会将数据写回内存。

在一些实施例中,牺牲缓存的缓存空间远小于处理器缓存,因此为了提高牺牲缓存的空间利用率,牺牲缓存采用全相联缓存(fully associative cache)。

相应的,牺牲缓存还用于在接收到数据写入操作,且不存在空余缓存块时,根据缓存块替换策略逐出缓存块,以便写入新的缓存块。

在一种可能的实施方式中,牺牲缓存可以根据先进先出原则逐出缓存块,或者,牺牲缓存可以根据缓存块的复用率,优先将复用率低的缓存块逐出,保留复用率高的缓存块。本实施例对此不做限定。

通过上述过程,处理器缓存中的目标缓存块被改写并写入了牺牲缓存中,后续处理器缓存需要对目标缓存块进行读写操作时,即直接对牺牲缓存内的数据进行读写,而无需执行监听操作流程。

处理器核心,还用于若在牺牲缓存中查询到目标缓存块,则对牺牲缓存中的目标缓存块进行写操作。

示意性的,如图4所示,当处理器核心302发起对缓存块0的写操作时,处理器核心302首先在处理器缓存304和牺牲缓存305中查询缓存块0。由于处理器缓存304中的缓存块0已经被无效化,并被写入牺牲缓存305中,因此处理器核心302在牺牲缓存305中查询到缓存块0,从而直接向牺牲缓存305中写入数据。

本实施例中,在发起对目标缓存块的写操作时,通过在本地处理器缓存和牺牲缓存中查询目标缓存块,并在本地处理器缓存中包括目标缓存块,且处于共享状态时,将数据写入牺牲缓存中,使得后续其他处理器核心对目标缓存块进行数据修改时(不论修改的数据是否是同一地址),只需直接对牺牲缓存中的数据进行修改,无需执行监听操作流程,从而降低对共享缓存块进行数据写操作时对互联总线的占用,提高了处理器芯片的处理性能。

需要说明的是,上述实施例仅以处理器核心发起写操作为例进行说明,在其他可能的实施例中,当同一处理器核心包括至少两条硬件线程,且由硬件线程发起对缓存块的写操作时,也可以采用上述方式以避免出现缓存伪共享的问题,本实施例在此不再赘述。

请参考图5,其示出了本申请一个示例性实施例提供的数据读写方法的流程图,本实施例以该方法用于图3或4所示的处理器芯片为例进行说明,该方法包括如下步骤:

步骤501,处理器核心在对目标缓存块发起写操作时,在牺牲缓存以及处理器核心对应的处理器缓存中查询目标缓存块。

不同于相关技术中,当发起对缓存块的写操作时,仅在自身对应处理器缓存中查询缓存块,本申请实施例中,当需要对目标缓存块进行数据写操作时,处理器核心同时在牺牲缓存以及处理器缓存中查询目标缓存块。

在一些实施例中,处理器核心根据目标缓存块的缓存块地址查询目标缓存块。

步骤502,若在牺牲缓存中查询到目标缓存块,处理器核心则对牺牲缓存中的目标缓存块进行写操作。

若在牺牲缓存中查询到目标缓存块,表明该目标缓存块处于共享状态。不同于相关技术中,对共享状态的缓存块进行写操作时,需要进行一系列监听操作流程,本实施例中,处理器核心可以直接对牺牲缓存中的目标化缓存块进行写操作。

通过上述方法,由于处理器核心能够直接对牺牲缓存进行数据写入,因此即便不同处理器核心对同一缓存块中不同的地址的数据进行修改,也不会出现缓存伪共享的问题,从而提高了处理器芯片的处理性能。

当未在牺牲缓存中查找到目标缓存块时,处理器芯片可以通过如下方式将缓存块数据写入牺牲缓存中,以便后续其他处理器核心能够直接对牺牲缓存进行数据写操作。

请参考图6,其示出了本申请另一个示例性实施例提供的数据读写方法的流程图,本实施例以该方法用于图3或4所示的处理器芯片为例进行说明,该方法包括如下步骤:

步骤601,处理器核心在对目标缓存块发起写操作时,在牺牲缓存以及处理器核心对应的处理器缓存中查询目标缓存块。

步骤602,若在处理器缓存中查找到目标缓存块,且目标缓存块处于共享状态,处理器核心通过读写通路向互联总线发送写操作信号。

步骤603,互联总线通过其他处理器核心对应的监听通路,向其他处理器核心发送写操作信号。

步骤604,互联总线通过其他处理器核心对应的监听通路接收无效化信号,无效化信号是其他处理器核心无效化目标缓存块后发送的。

步骤605,互联总线通过处理器核心对应的读写通路,向处理器核心发送无效化信号。

步骤606,处理器缓存无效化目标缓存块。

步骤607,处理器缓存逐出目标缓存块。

步骤608,处理器核心则通过处理器缓存将数据写入牺牲缓存的缓存块中。

步骤609,在接收到数据写入操作,且不存在空余缓存块时,牺牲缓存根据缓存块替换策略逐出缓存块。

步骤610,若支持脏状态传递,牺牲缓存则通过写回通路,将设置有脏状态标识的缓存块写回内存,其中,设置有脏状态标识的缓存块通过互联总线和片外接口写入内存中,脏状态标识用于表征缓存块中的数据被修改。

其中,上述各步骤的实施方式可以参考图4所示实施例,本实施例在此不再赘述。

请参考图7,其示出了本申请一个示例性实施例提供的计算机设备的结构示意图,该计算机设备包括:处理器701、存储器702和总线703。处理器701和存储器702之间通过总线电性相连。

处理器701可以为CPU、GPU、AI芯片中的任意一种,处理器701通过运行软件程序以及模块,从而执行各种功能应用以及信息处理。本实施例中的处理器701即包括如图3或4所示的处理器芯片。

存储器702可用于存储至少一个指令,处理器701用于执行该至少一个指令,以实现各种应用功能以及信息处理。

此外,存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,易失性或非易失性存储设备包括但不限于:磁盘或光盘,电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM),可擦除可编程只读寄存器(Erasable Programmable Read Only Memory,EPROM),静态随时存取存储器(Static Random-Access Memory,SRAM),只读存储器(Read-Only Memory,ROM),磁存储器,快闪存储器,可编程只读存储器(Programmable Read-Only Memory,PROM)。本实施例中,存储器702可以为计算机设备的内存(或称为主存)。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本公开的可选实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

16页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种用于片内报文处理的弹性共享缓存架构

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类