CN116719760A - 一种低延迟处理缓存读取请求的方法、设备及存储介质 - Google Patents

一种低延迟处理缓存读取请求的方法、设备及存储介质 Download PDF

Info

Publication number
CN116719760A
CN116719760A CN202310545923.4A CN202310545923A CN116719760A CN 116719760 A CN116719760 A CN 116719760A CN 202310545923 A CN202310545923 A CN 202310545923A CN 116719760 A CN116719760 A CN 116719760A
Authority
CN
China
Prior art keywords
read
data
cache
read request
bypass
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
Application number
CN202310545923.4A
Other languages
English (en)
Inventor
施葹
刘扬帆
陆泳
苟鹏飞
徐越
王贺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Hexin Digital Technology Co ltd
Hexin Technology Co ltd
Original Assignee
Shanghai Hexin Digital Technology Co ltd
Hexin Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Hexin Digital Technology Co ltd, Hexin Technology Co ltd filed Critical Shanghai Hexin Digital Technology Co ltd
Priority to CN202310545923.4A priority Critical patent/CN116719760A/zh
Publication of CN116719760A publication Critical patent/CN116719760A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1615Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using a concurrent pipeline structrure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

本申请属于计算机技术领域,公开了一种低延迟处理缓存读取请求的方法、设备及存储介质,该方法包括:在检测到读取队列旁路空闲时,向处理器核发送旁路空闲信号;接收处理器核发送的读取请求;判断处理器核是否申请占用读取队列旁路;若是,则将读取请求通过读取队列旁路发送到缓存流水线,否则将读取请求发送至读取队列中。本申请能够当正在处理的读取请求数量较少时,省去读取队列仲裁请求的时间,实现了在不增加逻辑级数的情况下降低缓存处理读取请求的延迟。

Description

一种低延迟处理缓存读取请求的方法、设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种低延迟处理缓存读取请求的方法、设备及存储介质。
背景技术
请参见图1,现有的缓存微结构会接收CPU Core下发的多个读取请求,并利用LoadQueue(读取队列)暂存这些读取请求,等待缓存流水线轮询到当前请求,且判断其满足分发条件时,该读取请求会被分配到并行出来状态机进行处理;并行处理状态机会先进行directory(Tag Ram)的读取,在该读取请求命中后再进行cache(Data Ram)的读取,在读取请求未命中时会从总线获取数据;由于可能有多个未完成的并行请求正在占用数据发送到Core的接口,因此将总线获取的数据写入的Data Buffer(数据缓冲)中,等数据发送到Core的接口空闲时,再将总线获取的数据通过该接口发送到Core。但在上述流程中存在多处令请求或数据排队等待的步骤,从而导致整个处理流程延迟较高,若通过增加额外的逻辑级数来降低排队等待造成的延迟,会影响缓存的最高工作频率。因此,现有技术存在如何在不增加额外的逻辑级数、即不降低缓存最高工作频率的情况下,降低缓存处理读取请求的延迟的问题。
发明内容
本申请提供了一种低延迟处理缓存读取请求的方法、设备及存储介质,能够当正在处理的读取请求数量较少时,省去读取队列仲裁请求的时间,降低缓存处理读取请求的延迟。
第一方面,本申请实施例提供了一种低延迟处理缓存读取请求的方法,该方法应用于缓存微结构中;该方法包括:
在检测到读取队列旁路空闲时,向处理器核发送旁路空闲信号;
接收处理器核发送的读取请求;判断处理器核是否申请占用读取队列旁路;若是,则将读取请求通过读取队列旁路发送到缓存流水线,否则将读取请求发送至读取队列中。
进一步的,该方法还包括:
在缓存流水线处理读取请求时,同时获取地址存储模块中若干路组的地址信息和缓存数据模块中与各地址信息对应的缓存数据;
根据各地址信息判断读取请求是否命中;若命中,则将读取请求命中的地址信息对应的缓存数据发送至处理器核;否则根据读取请求从总线获取读取数据。
上述实施例将获取地址信息和缓存数据两者同步,使得延迟时间小于两个步骤之和,从而降低了处理缓存读取请求的延迟。
进一步的,该方法还包括:
在从总线获取读取数据后,检测数据缓冲旁路是否空闲;
若是,则将读取数据通过数据缓冲旁路发送至处理器核;否则将读取数据发送至数据缓冲模块,在数据发送接口空闲时通过数据缓冲模块发送至处理器核。
上述实施例在处理器核的数据接口空闲时,令总线获取的读取数据可直接通过数据缓冲旁路发送到处理器核,而无需进入数据缓冲模块进行等待,从而降低了读取请求的处理延迟。
进一步的,地址存储模块至少有3条读写地址线。
上述实施例中采用了多端口,即多地址线的地址存储模块,避免了总线读取请求和处理器核的读取请求在访问地址存储模块时的冲突和等待,从而降低了处理读取请求的延迟。
进一步的,数据缓冲模块至少有3条读写地址线。
上述实施例采用了多端口,即多地址线的数据缓冲模块,避免了处理器核读取数据和缓存数据模块读取数据时的冲突和等待,从而降低了处理读取请求的延迟。
进一步的,该方法还包括:在检测到读取队列旁路不空闲时,向处理器核发送旁路占用信号,并将接收到的读取请求发送至读取队列中。
上述实施例通过及时告知处理器核读取队列旁路已被占用,避免了处理器核在正处理的读取请求较多的时候要求将新的读取请求直接发送到缓存流水线,导致的流水线繁忙出错。
进一步的,该方法还包括:在读取请求命中后,检测读取请求命中的地址信息对应的缓存数据是否有效;若有效,则将其发送至处理器核;若无效,则通过总线获取读取数据。
上述实施例通过判断命中的缓存数据是否无效,是考虑到了多核处理器中其他缓存的窥探请求对当前缓存数据的影响,保证了发送给处理器核的数据正确有效。
进一步的,上述根据各地址信息判断读取请求是否命中,包括:
将读取请求的地址分别与各地址信息进行或运算,得到多个运算结果;
若多个运算结果中至少有一个运算结果为第一数值,则读取请求命中。
上述实施例利用或运算能够快速实现读取请求和各地址信息的比较确认,从而快速得到读取请求的命中检测结果,间接降低了读取请求处理的延迟。
第二方面,本申请实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时执行如上述任一实施例的一种低延迟处理缓存读取请求的方法的步骤。
第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述任一实施例的一种低延迟处理缓存读取请求的方法的步骤。
综上,与现有技术相比,本申请实施例提供的技术方案带来的有益效果至少包括:
本申请实施例提供的一种低延迟处理缓存读取请求的方法,通过检测读取队列旁路是否空闲来判断缓存流水线中当前处理的读取请求数量是否比较少,并在其空闲时将处理器核下发的读取请求直接通过读取队列旁路发送至缓存流水线,而不用放入读取队列中进行轮询仲裁后再发送,从而当正在处理的读取请求数量较少时,省去读取队列仲裁请求的时间,实现了在不增加逻辑级数的情况下降低缓存处理读取请求的延迟。
附图说明
图1为本申请一个实施例提供的现有技术中缓存微结构处理请求的示意图。
图2为本申请一个实施例提供的一种低延迟处理缓存读取请求的方法的流程图。
图3为本申请一个实施例提供的一种低延迟处理缓存读取请求的方法的运行示意图。
图4为本申请一个实施例提供的缓存数据获取步骤的流程图。
图5为本申请一个实施例提供的缓存数据获取步骤在缓存微结构中的运行示意图。
图6为本申请一个实施例提供的总线读取数据处理步骤的流程图。
图7为本申请一个实施例提供的总线读取数据处理步骤在缓存微结构中的示意图。
图8为本申请一个实施例提供的地址存储模块的结构示意图。
图9为本申请一个实施例提供的数据缓冲模块的结构示意图。
图10为本申请又一个实施例提供的一种低延迟处理缓存读取请求的方法的流程图。
图11为本申请又一个实施例提供的缓存数据获取步骤的流程图。
图12为本申请一个实施例提供的命中检测步骤的运行示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图2和图3,本申请实施例提供了一种低延迟处理缓存读取请求的方法,该方法应用于激光扫描设备,以执行主体是激光扫描设备为例进行说明,该方法具体包括以下步骤:
该方法包括:
步骤S11,在检测到读取队列旁路空闲时,向处理器核发送旁路空闲信号。
步骤S12,接收处理器核发送的读取请求。
步骤S13,判断处理器核是否申请占用读取队列旁路;若是,则将读取请求通过读取队列旁路发送到缓存流水线,否则将读取请求发送至读取队列中。
读取队列与处理器核之间可以通过接口协议来确认是否要使能读取队列,读取单元中可以支持读取队列旁路,即正在处理的读取请求不是很多时,通过向处理器核发送旁路空闲信号,可以允许处理器核下发的读取请求走读取队列旁路进入缓存流水线。其中,旁路空闲信号和处理器核下发的读取请求之间是握手的概念,处理器核在收到空闲信号后,会自行决定是否要使用读取队列旁路,会通过读取请求中的某些信号告诉缓存微结构的读取队列控制器。
具体地,发送至缓存流水线的读取请求可直接如图1所示被分发到并行处理状态机中;而发送至读取队列中的读取请求须由读取队列进行轮询仲裁后才可发送到缓存流水线中,缓存流水线之后的处理流程同样如图1所示。
图3中的解复用器、多路复用器等为现有缓存微结构中的固有结构,在此不过多赘述。
上述实施例提供的一种低延迟处理缓存读取请求的方法,通过检测读取队列旁路是否空闲来判断缓存流水线中当前处理的读取请求数量是否比较少,并在其空闲时将处理器核下发的读取请求直接通过读取队列旁路发送至缓存流水线,而不用放入读取队列中进行轮询仲裁后再发送,从而当正在处理的读取请求数量较少时,省去读取队列仲裁请求的时间,实现了在不增加逻辑级数的情况下降低缓存处理读取请求的延迟。
请参见图4和图5,在一些实施例中,该方法还包括:
步骤S21,在缓存流水线处理读取请求时,同时获取地址存储模块中若干路组的地址信息和缓存数据模块中与各地址信息对应的缓存数据。
步骤S22,根据各地址信息判断读取请求是否命中;若命中,则将读取请求命中的地址信息对应的缓存数据发送至处理器核;否则根据读取请求从总线获取读取数据。
在现有技术中,是先进行directory(地址存储模块)的读取,然后进行cache(缓存数据模块)的读取;在进行cache访问时二者的访问时间之和会决定当前读取缓存的延时。本申请的缓存流水线在收到Load请求时,会同时进行n路组的Cache和Directory的读取,在Cache的读取出来的同拍,用对directory的读取结果去使能cache读取结果。
其中,n路组即上述提到的若干路组,是可替换的组相联的概念,地址信息为tag地址。
上述实施例将获取地址信息和缓存数据两者同步,使得延迟时间小于两个步骤之和,从而降低了处理缓存读取请求的延迟。
请参见图6和图7,在一些实施例中,该方法还包括:
在从总线获取读取数据后,检测数据缓冲旁路是否空闲。
若是,则将读取数据通过数据缓冲旁路发送至处理器核;否则将读取数据发送至数据缓冲模块,在数据发送接口空闲时通过数据缓冲模块发送至处理器核。
具体地,在读取请求未命中时,缓存从总线读取到数据以后,由于可能有多个outstanding(未完成的)的并行读取请求且可能有请求正在占用数据发送到CPU core的接口,因此会将总线数据写入缓存的Data Buffer(数据缓冲模块),等数据发送接口空闲时,再进行发送,这样就会在数据通路中额外引入Data Buffer写入和读出的延迟(最小会增加3cycle的延迟)。
因此,本申请在数据发送接口仲裁空闲时,其实可以通过额外的反馈信号(反馈信号由Core接口前的数据仲裁模块产生,Core接口被占用后,该反馈信号自行表明当前Core接口的数据发送不能走数据缓冲旁路,需要写入Data Buffer)告知缓存控制器可以直接将CPU core需要的数据直接从总线接口传递到数据发送接口,绕过Data Buffer(但是需要更新到缓存数据模块的数据仍然会存入Data Buffer),这样可以降低读取请求未命中时的缓存读取延迟。
上述实施例在处理器核的数据接口空闲时,令总线获取的读取数据可直接通过数据缓冲旁路发送到处理器核,而无需进入数据缓冲模块进行等待,从而降低了读取请求的处理延迟。
请参见图8,在一些实施例中,地址存储模块至少有3条读写地址线。
具体地,Directory(地址存储模块)的访存效率是决定缓存读取延迟的关键,利用多端口的地址存储模块(例如2读1写,三个地址线)可以有效提升Directory的访存效率。在Core发起读取请求时,会对directory进行读,在总线发起读取请求时,也会对directory进行读。此时如果仅使用常见的如1读1写,两个地址线,需要对这一个读口的使用权进行仲裁,如果Core的读请求一直占用唯一的读口,那么总线的读请求就无法获得响应,需要一直等待,反之亦然。而使用多端口的地址存储模块时,由于两个读口可以同时对任意地址进行读取(包括同地址),因此Core的读请求与总线的读请求不会相互影响,两者都能用满地址存储模块读口的全部带宽,无需等待仲裁,进而降低延迟。
上述实施例中采用了多端口,即多地址线的地址存储模块,避免了总线读取请求和处理器核的读取请求在访问地址存储模块时的冲突和等待,从而降低了处理读取请求的延迟。
请参见图9,在一些实施例中,数据缓冲模块至少有3条读写地址线。
在进行Data Buffer(数据缓冲模块)中总线数据的读取时,如果是Data Buffer只有一个读口,那么读出的数据需要同时提供给Cache更新通路,和CPU core的数据接口,如果此时CPU core的数据接口正在处理一次读取数据的发送,那么Cache的更新就需要进行等待,反之亦然;甚至缓存控制器需要先后读取两次同地址的Data Buffer内容才能完成操作。使用多端口的Data Buffer,例如两读一写,可以在两个读口上同时进行任意地址的读取,可以将Cache的更新与数据的发送解耦,缓存控制器可以从Data Buffer中读出地址A的待更新数据,在同cycle也可以从Data Buffer中读出地址B的待deliver数据发送到core;也可以从Data Buffer中读出地址A的待更新数据,在同cycle也可以从Data Buffer中读出同地址A的待deliver数据发送到Core。Cache的更新和Core数据的发送可以互不干扰,进而降低缓存的读取延时。
上述实施例采用了多端口,即多地址线的数据缓冲模块,避免了处理器核读取数据和缓存数据模块读取数据时的冲突和等待,从而降低了处理读取请求的延迟。
请参见图10,在一些实施例中,该方法还包括:在检测到读取队列旁路不空闲时,向处理器核发送旁路占用信号,并将接收到的读取请求发送至读取队列中。
上述实施例通过及时告知处理器核读取队列旁路已被占用,避免了处理器核在正处理的读取请求较多的时候要求将新的读取请求直接发送到缓存流水线,导致的流水线繁忙出错。
请参见图11,在一些实施例中,该方法还包括:
在读取请求命中后,检测读取请求命中的地址信息对应的缓存数据是否有效;若有效,则将其发送至处理器核;若无效,则通过总线获取读取数据。
其中,可采用命中的地址信息判断该缓存数据是否有效。
具体地,在多核处理器中,当前缓存可能会因为接收到其他缓存的snoop请求而使缓存数据模块中的一部分数据无效,以保证cache一致性;但若无效的数据和读取请求要求读取的数据一致,则容易导致Core读取到的数据和其他缓存的不一致。
上述实施例通过判断命中的缓存数据是否无效,是考虑到了多核处理器中其他缓存的窥探请求对当前缓存数据的影响,保证了发送给处理器核的数据正确有效。
请参见图12,在一些实施例中,上述根据各地址信息判断读取请求是否命中,包括:
将读取请求的地址分别与各地址信息进行或运算,得到多个运算结果。
若多个运算结果中至少有一个运算结果为第一数值,则读取请求命中。
其中,第一数值可以为1,运算结果为1的tag地址对应的缓存数据即为命中的缓存数据。
上述实施例利用或运算能够快速实现读取请求和各地址信息的比较确认,从而快速得到读取请求的命中检测结果,间接降低了读取请求处理的延迟。
以一个具体的例子说明本申请的一种低延迟处理缓存读取请求的方法的实施过程:
1.Load Bypass Queue(读取队列旁路)。CPU Core(处理器核)会下发多个缓存读取请求,因此在缓存的Load Unit(读取单元)中会用Load Queue(读取队列)暂存接收到的读取请求,等待缓存流水线轮询到当前请求,且满足分发条件时,该请求会被分配到并行状态机进行处理。Load Queue与CPU Core之间可以通过接口协议来确认是否要使能LoadQueue,Load Unit中可以支持Load Queue Bypass,即Load Unit中的处理的请求不是很多时,通过向Core发送空闲信号,可以允许Core下发的读取请求bypass load queue(旁路读取队列),这样这笔load操作可以直接访问directory(缓存目录),而无需等待Load Queue仲裁后再去访问directory,降低读取延迟。其中,空闲信号和Core下发的Load Request之间是握手的概念,Core在收到空闲信号后,会自行决定是否要使用读取队列旁路,会通过Load Request中的某些信号告诉缓存的Load Queue Controller;如果Core发现当前LoadQueue的Bypass Path已经被占用,那么后续不会下发Bypass使能信号到Load QueueController。
2.Late Way Select(延迟路选择)。CPU在读取缓存时会先进行directory(TagRam)的读取,然后进行cache(Data Ram)的读取,在进行cache访问时二者的访问时间之和会决定当前读取缓存的延时。本申请的缓存读取流水线在收到Load请求时,会同时进行n路组的Cache和Directory的读取,在Cache的读取出来的同拍,用对directory的读取结果去使能cache读取结果。如果directory命中,则cache读取结果有效,可以直接发送给core;如果directory未命中,则cache读取结果无效,读出数据会被忽略,等待状态机从下级cache或总线获得数据,再发送给core。n路directory中记录地址为index的tag会被同时读出,同时各自与当前请求的地址进行或运算,最后如果n路组对应的n个结果中有1则表明当前请求命中,且命中的那一路会使能way select到cache的某一路。n路组是可替换的组相联的概念。
3.Multi-port Memory(多端口存储器件)。Directory(Tag RAM)的访存效率是决定缓存读取延迟的关键,利用多端口Memory(2读1写,三个地址线)可以有效提升Directory的访存效率。在Core发起读取请求时,会对directory进行读,在总线发起读取请求时,也会对directory进行读。此时如果仅使用常见的Memory,如1读1写,两个地址线,需要对这一个读口的使用权进行仲裁,如果Core的读请求一直占用Memory读口,那么总线的读请求就无法获得响应,需要一直等待,反之亦然。使用多端口Memory时,由于两个读口可以同时对任意地址进行读取(包括同地址),因此Core的读请求与总线的读请求不会相互影响,两者都能用满Memory读口的全部带宽,无需等待仲裁,进而降低延迟。其中多端口memory都是地址线大于2的,在这里是有两个读口和一个写口的memory。
4.Data Delivery Bypass Data Buffer(数据发送旁路数据缓冲)。在缓存Miss(失效)时,缓存从总线读取到数据以后,由于可能有多个outstanding(未完成的)的并行读取请求且可能有请求正在占用数据发送到CPU core的接口,因此会将总线数据写入缓存的Data Buffer(数据缓冲)(数据通路的一个部件,不是cache memory),等数据发送接口空闲时,再进行发送,这样就会在数据通路中额外引入Data Buffer写入和读出的延迟(最小会加3cycle(三个时钟周期))。在数据发送接口仲裁空闲时,其实可以通过额外的反馈信号告知缓存控制器可以直接将CPU core需要的数据直接从总线接口传递到数据发送接口,绕过Data Buffer(但是需要更新到缓存存储单元的数据仍然会存入Data Buffer),这样可以降低Load Miss时的缓存读取延时。其中,反馈信号由Core接口前的数据仲裁模块产生,Core接口被占用后,该反馈信号自行表明当前Core接口的数据发送不能走Bypass,需要写入Data Buffer。
5.Parallel Cache Update and Data Delivery with multi-port data buffer(多端口数据缓冲实现并行缓存更新和数据发送)。除了第4点外,数据通路上还有可以优化的地方,Cache更新与数据发送可以并行,在进行Data Buffer读取时,如果是Data Buffer只有一个读口,那么读出的数据需要同时提供给Cache更新通路,和CPU core的数据接口,如果此时CPU core的数据接口正在处理一次数据发送,那么Cache的更新就需要进行等待,反之亦然;甚至缓存控制器需要先后读取两次同地址的Data Buffer内容才能完成操作。使用多端口的data buffer,可以在两个读口上同时进行任意地址的读取,可以将Cache的更新与数据的发送解耦,缓存控制器可以从Data Buffer中读出地址A的待更新数据,在同cycle也可以从Data Buffer中读出地址B的待deliver数据发送到core;也可以从DataBuffer中读出地址A的待更新数据,在同cycle也可以从Data Buffer中读出同地址A的待deliver数据发送到core。Cache的更新和Core数据的发送可以互不干扰,进而降低缓存的读取延时。
本申请实施例提供了一种计算机设备,该计算机设备可以包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。处计算机程序被处理器执行时,使得处理器执行如上述任一实施例的一种低延迟处理缓存读取请求的方法的步骤。
本实施例提供的计算机设备的工作过程、工作细节和技术效果,可以参见上文中关于一种低延迟处理缓存读取请求的方法的实施例,于此不再赘述。
本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述任一实施例的一种低延迟处理缓存读取请求的方法的步骤。其中,所述计算机可读存储介质是指存储数据的载体,可以但不限于包括软盘、光盘、硬盘、闪存、优盘和/或记忆棒(Memory Stick)等,所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。本实施例提供的计算机可读存储介质的工作过程、工作细节和技术效果,可以参见上文中关于一种低延迟处理缓存读取请求的方法的实施例,于此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种低延迟处理缓存读取请求的方法,其特征在于,所述方法应用于缓存微结构中;
所述方法包括:
在检测到读取队列旁路空闲时,向处理器核发送旁路空闲信号;
接收所述处理器核发送的读取请求;
判断所述处理器核是否申请占用所述读取队列旁路;若是,则将所述读取请求通过所述读取队列旁路发送到缓存流水线,否则将所述读取请求发送至读取队列中。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述缓存流水线处理所述读取请求时,同时获取地址存储模块中若干路组的地址信息和缓存数据模块中与各所述地址信息对应的缓存数据;
根据各所述地址信息判断所述读取请求是否命中;
若命中,则将所述读取请求命中的所述地址信息对应的所述缓存数据发送至处理器核;否则根据所述读取请求从总线获取读取数据。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在从总线获取所述读取数据后,检测数据缓冲旁路是否空闲;
若是,则将所述读取数据通过所述数据缓冲旁路发送至所述处理器核;否则将所述读取数据发送至数据缓冲模块,在数据发送接口空闲时通过所述数据缓冲模块发送至所述处理器核。
4.根据权利要求2所述的方法,其特征在于,所述地址存储模块至少有3条读写地址线。
5.根据权利要求3所述的方法,其特征在于,所述数据缓冲模块至少有3条读写地址线。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在检测到所述读取队列旁路不空闲时,向所述处理器核发送旁路占用信号,并将接收到的所述读取请求发送至所述读取队列中。
7.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述读取请求命中后,检测所述读取请求命中的所述地址信息对应的所述缓存数据是否有效;若有效,则将其发送至所述处理器核;若无效,则通过所述总线获取所述读取数据。
8.根据权利要求2所述的方法,其特征在于,所述根据各所述地址信息判断所述读取请求是否命中,包括:
将所述读取请求的地址分别与各所述地址信息进行或运算,得到多个运算结果;
若多个所述运算结果中至少有一个所述运算结果为第一数值,则所述读取请求命中。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至8中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8中任一项所述方法的步骤。
CN202310545923.4A 2023-05-15 2023-05-15 一种低延迟处理缓存读取请求的方法、设备及存储介质 Pending CN116719760A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310545923.4A CN116719760A (zh) 2023-05-15 2023-05-15 一种低延迟处理缓存读取请求的方法、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310545923.4A CN116719760A (zh) 2023-05-15 2023-05-15 一种低延迟处理缓存读取请求的方法、设备及存储介质

Publications (1)

Publication Number Publication Date
CN116719760A true CN116719760A (zh) 2023-09-08

Family

ID=87863928

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310545923.4A Pending CN116719760A (zh) 2023-05-15 2023-05-15 一种低延迟处理缓存读取请求的方法、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116719760A (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7383403B1 (en) * 2004-06-30 2008-06-03 Sun Microsystems, Inc. Concurrent bypass to instruction buffers in a fine grain multithreaded processor
CN101340569A (zh) * 2007-07-06 2009-01-07 扬智科技股份有限公司 高速缓存及其数据处理方法
CN103543954A (zh) * 2012-07-16 2014-01-29 中兴通讯股份有限公司 一种数据存储管理方法和装置
CN104050110A (zh) * 2013-03-15 2014-09-17 国际商业机器公司 用于存储器内计算的本地旁路的方法和系统
CN105243033A (zh) * 2015-09-28 2016-01-13 联想(北京)有限公司 数据处理方法及电子设备
JP2016206796A (ja) * 2015-04-17 2016-12-08 富士通株式会社 演算処理装置、情報処理装置および演算処理装置の制御方法
US20180232311A1 (en) * 2017-02-13 2018-08-16 Intel Corporation Write congestion aware bypass for non-volatile memory, last level cache
CN108920387A (zh) * 2018-06-06 2018-11-30 深圳忆联信息系统有限公司 降低读延迟的方法、装置、计算机设备及存储介质
CN111124954A (zh) * 2019-11-12 2020-05-08 上海高性能集成电路设计中心 一种两级转换旁路缓冲的管理装置及方法
KR20210090442A (ko) * 2020-01-10 2021-07-20 전남대학교산학협력단 L1 데이터 캐시의 바이패스 방법 및 장치
CN114201120A (zh) * 2022-02-18 2022-03-18 苏州浪潮智能科技有限公司 一种数据读写方法、装置及相关设备
CN115509609A (zh) * 2022-09-20 2022-12-23 北京奕斯伟计算技术股份有限公司 数据处理装置和方法

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7383403B1 (en) * 2004-06-30 2008-06-03 Sun Microsystems, Inc. Concurrent bypass to instruction buffers in a fine grain multithreaded processor
CN101340569A (zh) * 2007-07-06 2009-01-07 扬智科技股份有限公司 高速缓存及其数据处理方法
CN103543954A (zh) * 2012-07-16 2014-01-29 中兴通讯股份有限公司 一种数据存储管理方法和装置
CN104050110A (zh) * 2013-03-15 2014-09-17 国际商业机器公司 用于存储器内计算的本地旁路的方法和系统
JP2016206796A (ja) * 2015-04-17 2016-12-08 富士通株式会社 演算処理装置、情報処理装置および演算処理装置の制御方法
CN105243033A (zh) * 2015-09-28 2016-01-13 联想(北京)有限公司 数据处理方法及电子设备
US20180232311A1 (en) * 2017-02-13 2018-08-16 Intel Corporation Write congestion aware bypass for non-volatile memory, last level cache
CN108920387A (zh) * 2018-06-06 2018-11-30 深圳忆联信息系统有限公司 降低读延迟的方法、装置、计算机设备及存储介质
CN111124954A (zh) * 2019-11-12 2020-05-08 上海高性能集成电路设计中心 一种两级转换旁路缓冲的管理装置及方法
KR20210090442A (ko) * 2020-01-10 2021-07-20 전남대학교산학협력단 L1 데이터 캐시의 바이패스 방법 및 장치
CN114201120A (zh) * 2022-02-18 2022-03-18 苏州浪潮智能科技有限公司 一种数据读写方法、装置及相关设备
CN115509609A (zh) * 2022-09-20 2022-12-23 北京奕斯伟计算技术股份有限公司 数据处理装置和方法

Similar Documents

Publication Publication Date Title
US7669010B2 (en) Prefetch miss indicator for cache coherence directory misses on external caches
KR100318789B1 (ko) 멀티프로세서 데이타 처리 시스템에서의 캐쉬를 관리하는시스템과 방법
US8015365B2 (en) Reducing back invalidation transactions from a snoop filter
JP4474570B2 (ja) キャッシュコヒーレンシ制御方法
CN103076992A (zh) 一种内存数据缓冲方法及装置
CN111143244A (zh) 计算机设备的内存访问方法和计算机设备
EP2568379B1 (en) Method for preventing node controller deadlock and node controller
JPH0950400A (ja) マルチプロセッサシステム
US9372795B2 (en) Apparatus and method for maintaining cache coherency, and multiprocessor apparatus using the method
CN114579480A (zh) 一种缺页处理方法、装置、系统、电子设备及存储介质
US6526480B1 (en) Cache apparatus and control method allowing speculative processing of data
CN116701246B (zh) 一种提升缓存带宽的方法、装置、设备及存储介质
US11188471B2 (en) Cache coherency for host-device systems
JPH10501914A (ja) 共用キャッシュ・メモリ装置
CN116719760A (zh) 一种低延迟处理缓存读取请求的方法、设备及存储介质
CN116361235A (zh) 多核处理器同步方法、装置及多核处理器
CN114063923A (zh) 数据读取方法、装置、处理器及电子设备
CN112214178B (zh) 一种存储系统、数据读取方法及数据写入方法
US20210397560A1 (en) Cache stashing system
US20080320238A1 (en) Snoop control method and information processing apparatus
US6052762A (en) Method and apparatus for reducing system snoop latency
JP4295815B2 (ja) マルチプロセッサシステムおよびマルチプロセッサシステムの動作方法
CN112612726B (zh) 基于缓存一致性的数据存储方法、装置、处理芯片及服务器
US7380107B2 (en) Multi-processor system utilizing concurrent speculative source request and system source request in response to cache miss
CN117539802B (zh) 一种缓存操作方法、系统以及相关装置

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