CN117806992A - 数据块替换方法、装置、电子设备及存储介质 - Google Patents
数据块替换方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117806992A CN117806992A CN202410225603.5A CN202410225603A CN117806992A CN 117806992 A CN117806992 A CN 117806992A CN 202410225603 A CN202410225603 A CN 202410225603A CN 117806992 A CN117806992 A CN 117806992A
- Authority
- CN
- China
- Prior art keywords
- cache
- determining
- data block
- parallel
- data blocks
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000004891 communication Methods 0.000 claims abstract description 110
- 230000004044 response Effects 0.000 claims abstract description 78
- 238000004590 computer program Methods 0.000 claims description 57
- 238000012545 processing Methods 0.000 claims description 50
- 230000008569 process Effects 0.000 claims description 16
- 230000003068 static effect Effects 0.000 claims description 12
- 230000008439 repair process Effects 0.000 claims description 11
- 230000002159 abnormal effect Effects 0.000 claims description 10
- 230000001427 coherent effect Effects 0.000 claims description 10
- 230000005856 abnormality Effects 0.000 claims description 9
- 238000012163 sequencing technique Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 17
- 230000008859 change Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000009482 thermal adhesion granulation Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了一种数据块替换方法、装置、电子设备及存储介质,应用于数据块替换装置,方法包括:响应于同时接收到多个内核芯片发送的多个写请求,确定任务队列是否已满;若是,则确定一致写请求失败并通过握手通信向多个内核芯片返回锁定状态信号;若否,则根据多个写请求生成多个并行报文包并将多个并行报文包写入任务队列;根据高速缓冲存储器中的多个缓存行和多个并行报文包对应的多个第一数据块确定多个缓存路径;根据多个缓存路径和多个第一数据块替换多个缓存行对应的多个第二数据块。通过tree‑LRFU策略结合握手通信,对cache‑line进行划分管理,从而提高了整个cache‑line的命中率以及Cache的写入效率。
Description
技术领域
本发明涉及存储更新领域,特别是涉及一种数据块替换方法、装置、电子设备及存储介质。
背景技术
Cache是一种用于存储CPU频繁访问数据的高速缓存,它位于CPU和主存之间,能够有效地减少CPU访问主存的延时。在计算机系统中,Cache的性能对整个系统的性能有着至关重要的影响。因为cache的接口为sram存储接口,在对历史数据进行替换时,会出现多个源一致进行替换的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高cache数据块替换效率和命中率的数据块替换方法、装置、电子设备及存储介质。
第一方面,提供一种数据块替换方法,应用于数据块替换装置,所述方法包括:响应于同时接收到多个内核芯片发送的多个写请求,确定任务队列是否已满;若是,则确定一致写请求失败并通过握手通信向所述多个内核芯片返回锁定状态信号;若否,则根据所述多个写请求生成多个并行报文包并将所述多个并行报文包写入任务队列;根据高速缓冲存储器中的多个缓存行和所述多个并行报文包对应的多个第一数据块确定多个缓存路径;根据所述多个缓存路径和所述多个第一数据块替换所述多个缓存行对应的多个第二数据块。
在其中一个实施例中,所述根据所述多个写请求生成多个并行报文包并将所述多个并行报文包写入任务队列包括:确定所述多个写请求对应的请求量是否小于所述任务队列的空闲任务量;若否,则根据所述写请求生成所述空闲任务量对应的并行报文包并将所述并行报文包写入所述任务队列;若是,则根据所述多个第一数据块生成多个并行报文包。
在其中一个实施例中,所述根据所述写请求生成所述空闲任务量对应的并行报文包并将所述并行报文包写入所述任务队列包括:根据所述多个写请求确定所述多个内核芯片的优先级并根据所述优先级和所述多个写请求生成所述空闲任务量对应的并行报文包;将所述空闲任务量对应的并行报文包写入所述任务队列并通过所述握手通信向其余内核芯片发送等待处理信号;响应于所述任务队列的空闲任务量不小于写入量,根据其余写请求生成其余并行报文包并将所述其余并行报文包写入所述任务队列。
在其中一个实施例中,所述根据所述高速缓冲存储器中的多个缓存行和所述多个并行报文包对应的多个第一数据块确定多个缓存路径包括:根据随机权重从所述高速缓冲存储器中随机确定所述多个缓存行;根据所述多个缓存行生成总缓存组并根据所述总缓存组和所述多个第一数据块确定所述多个缓存路径。
在其中一个实施例中,所述根据所述多个缓存行生成总缓存组并根据所述总缓存
组和所述多个第一数据块确定所述多个缓存路径包括:根据下列公式计算出所述多个缓存
行对应的多个引用概率值,其中b为缓存行,为b被访问的时间,为在tbase时刻的CRF
值,w为访问频率;
根据所述总缓存组生成两个第一缓存组并根据所述多个引用概率值计算出所述第一缓存组对应的第一组权重;根据所述第一缓存组生成两个第二缓存组并根据所述第一组权重计算出所述多个第二缓存组对应的第二组权重;根据所述多个第二组权重和所述多个第一数据块确定多个第二缓存组对应的多个缓存路径。
在其中一个实施例中,所述根据所述多个第二组权重和所述多个第一数据块确定多个第二缓存组对应的多个缓存路径包括:获取所述多个内核芯片对应的写请求信息并根据所述写请求信息计算出所述多个第一数据块对应的多个块权重,其中所述写请求信息包括请求频率和请求时间;根据所述多个块权重对所述任务队列中的并行报文包进行重新排序;根据所述多个第二组权重和所述多个块权重确定所述多个缓存路径。
在其中一个实施例中,所述根据所述多个缓存路径和所述多个第一数据块替换所述多个缓存行对应的多个第二数据块包括:响应于排序完成,根据所述缓存路径从所述第二缓存组中确定目标缓存行并根据所述并行报文包对应的第一数据块替换所述目标缓存行对应的第二数据块;响应于替换所述第二数据块完成,修改所述目标缓存行对应的随机权重;重新计算所述目标缓存行对应的引用概率值并修改所述第二缓存组的第二组权重。
在其中一个实施例中,所述确定一致写请求失败并通过握手通信向所述多个内核芯片返回所述锁定状态信号之后包括:根据用户设置的第一时间阈值确定所述任务队列是否依然已满;若是,则确定所述高速缓冲存储器异常并向所述用户告警;若否,则通过所述握手通信向所述多个内核芯片返回解除锁定信号。
在其中一个实施例中,所述确定所述高速缓冲存储器异常并向所述用户告警之后包括:响应于接收到所述用户发送的异常修复信息,通过所述握手通信向所述多个内核芯片发送解除锁定信号并重新接收所述多个内核芯片发送的写请求。
在其中一个实施例中,所述方法还包括:根据用户设置的中断周期对所述高速缓冲存储器进行中断处理并从所述高速缓冲存储器中获取所述缓存行对应的替换信息;将所述替换信息记录到静态随机存取存储器,其中所述替换信息包括缓存行状态和覆盖次数。
在其中一个实施例中,还提供一种数据块替换方法,应用于多个内核芯片,所述方法包括:向数据块替换装置发送写请求;响应于接收到所述数据块替换装置通过握手通信发送的锁定状态信号,停止处理工作指令;响应于接收到所述数据块替换装置通过所述握手通信发送的解除锁定信号,重新向数据块替换装置发送上一次的写请求;响应于所述数据块替换装置处理所述写请求完成,断开所述握手通信。
在其中一个实施例中,所述方法还包括:响应于接收到所述数据块替换装置通过握手通信发送的等待处理信号,确定等待所述数据块替换装置处理所述写请求的等待时间是否大于用户设置的第二时间阈值;若是,则断开所述握手通信。
另一方面,提供一种应用数据块替换方法的数据块替换装置,其特征在于,所述装置包括:第一确定模块,响应于同时接收到多个内核芯片发送的多个写请求,确定任务队列是否已满;返回模块,若是,则用于确定一致写请求失败并通过握手通信向所述多个内核芯片返回锁定状态信号;生成模块,若否,则用于根据所述多个写请求生成多个并行报文包并将所述多个并行报文包写入任务队列;第一确定模块,还用于根据高速缓冲存储器中的多个缓存行和所述多个并行报文包对应的多个第一数据块确定多个缓存路径;替换模块,用于根据所述多个缓存路径和所述多个第一数据块替换所述多个缓存行对应的多个第二数据块。
在其中一个实施例中,所述生成模块根据所述多个写请求生成多个并行报文包并将所述多个并行报文包写入任务队列包括:确定所述多个写请求对应的请求量是否小于所述任务队列的空闲任务量;若否,则根据所述写请求生成所述空闲任务量对应的并行报文包并将所述并行报文包写入所述任务队列;若是,则根据所述多个第一数据块生成多个并行报文包。
在其中一个实施例中,所述生成模块根据所述写请求生成所述空闲任务量对应的并行报文包并将所述并行报文包写入所述任务队列包括:根据所述多个写请求确定所述多个内核芯片的优先级并根据所述优先级和所述多个写请求生成所述空闲任务量对应的并行报文包;将所述空闲任务量对应的并行报文包写入所述任务队列并通过所述握手通信向其余内核芯片发送等待处理信号;响应于所述任务队列的空闲任务量不小于写入量,根据其余写请求生成其余并行报文包并将所述其余并行报文包写入所述任务队列。
在其中一个实施例中,所述第一确定模块根据所述高速缓冲存储器中的多个缓存行和所述多个并行报文包对应的多个第一数据块确定多个缓存路径包括:根据随机权重从所述高速缓冲存储器中随机确定所述多个缓存行;根据所述多个缓存行生成总缓存组并根据所述总缓存组和所述多个第一数据块确定所述多个缓存路径。
在其中一个实施例中,所述第一确定模块根据所述多个缓存行生成总缓存组并根
据所述总缓存组和所述多个第一数据块确定所述多个缓存路径包括:根据下列公式计算出
所述多个缓存行对应的多个引用概率值,其中b为缓存行,为b被访问的时间,为在
tbase时刻的CRF值,w为访问频率;
根据所述总缓存组生成两个第一缓存组并根据所述多个引用概率值计算出所述第一缓存组对应的第一组权重;根据所述第一缓存组生成两个第二缓存组并根据所述第一组权重计算出所述多个第二缓存组对应的第二组权重;根据所述多个第二组权重和所述多个第一数据块确定多个第二缓存组对应的多个缓存路径。
在其中一个实施例中,所述第一确定模块根据所述多个第二组权重和所述多个第一数据块确定多个第二缓存组对应的多个缓存路径包括:获取所述多个内核芯片对应的写请求信息并根据所述写请求信息计算出所述多个第一数据块对应的多个块权重,其中所述写请求信息包括请求频率和请求时间;根据所述多个块权重对所述任务队列中的并行报文包进行重新排序;根据所述多个第二组权重和所述多个块权重确定所述多个缓存路径。
在其中一个实施例中,所述替换模块根据所述多个缓存路径和所述多个第一数据块替换所述多个缓存行对应的多个第二数据块包括:响应于排序完成,根据所述缓存路径从所述第二缓存组中确定目标缓存行并根据所述并行报文包对应的第一数据块替换所述目标缓存行对应的第二数据块;响应于替换所述第二数据块完成,修改所述目标缓存行对应的随机权重;重新计算所述目标缓存行对应的引用概率值并修改所述第二缓存组的第二组权重。
在其中一个实施例中,所述返回模块确定一致写请求失败并通过握手通信向所述多个内核芯片返回所述锁定状态信号之后包括:根据用户设置的第一时间阈值确定所述任务队列是否依然已满;若是,则确定所述高速缓冲存储器异常并向所述用户告警;若否,则通过所述握手通信向所述多个内核芯片返回解除锁定信号。
在其中一个实施例中,所述返回模块确定所述高速缓冲存储器异常并向所述用户告警之后包括:响应于接收到所述用户发送的异常修复信息,通过所述握手通信向所述多个内核芯片发送解除锁定信号并重新接收所述多个内核芯片发送的写请求。
在其中一个实施例中,所述数据块替换装置还包括:中断模块,用于根据用户设置的中断周期对所述高速缓冲存储器进行中断处理并从所述高速缓冲存储器中获取所述缓存行对应的替换信息;记录模块,用于将所述替换信息记录到静态随机存取存储器,其中所述替换信息包括缓存行状态和覆盖次数。
在其中一个实施例中,还提供应用基于高速缓冲存储器的数据块替换方法的多个内核芯片,其中内核芯片包括:发送模块,用于向数据块替换装置发送写请求;处理模块,响应于接收到所述数据块替换装置通过握手通信发送的锁定状态信号,用于停止处理工作指令;发送模块,响应于接收到所述数据块替换装置通过所述握手通信发送的解除锁定信号,还用于重新向数据块替换装置发送上一次的写请求;通信模块,响应于所述数据块替换装置处理所述写请求完成,用于断开所述握手通信;在其中一个实施例中,所述内核芯片还包括:第二确定模块,响应于接收到所述数据块替换装置通过握手通信发送的等待处理信号,用于确定等待所述数据块替换装置处理所述写请求的等待时间是否大于用户设置的第二时间阈值;通信模块,若是,则用于断开所述握手通信。
再一方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:响应于同时接收到多个内核芯片发送的多个写请求,确定任务队列是否已满;若是,则确定一致写请求失败并通过握手通信向所述多个内核芯片返回锁定状态信号;若否,则根据所述多个写请求生成多个并行报文包并将所述多个并行报文包写入任务队列;根据高速缓冲存储器中的多个缓存行和所述多个并行报文包对应的多个第一数据块确定多个缓存路径;根据所述多个缓存路径和所述多个第一数据块替换所述多个缓存行对应的多个第二数据块。
在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:所述根据所述多个写请求生成多个并行报文包并将所述多个并行报文包写入任务队列包括:确定所述多个写请求对应的请求量是否小于所述任务队列的空闲任务量;若否,则根据所述写请求生成所述空闲任务量对应的并行报文包并将所述并行报文包写入所述任务队列;若是,则根据所述多个第一数据块生成多个并行报文包。
在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:所述根据所述写请求生成所述空闲任务量对应的并行报文包并将所述并行报文包写入所述任务队列包括:根据所述多个写请求确定所述多个内核芯片的优先级并根据所述优先级和所述多个写请求生成所述空闲任务量对应的并行报文包;将所述空闲任务量对应的并行报文包写入所述任务队列并通过所述握手通信向其余内核芯片发送等待处理信号;响应于所述任务队列的空闲任务量不小于写入量,根据其余写请求生成其余并行报文包并将所述其余并行报文包写入所述任务队列。
在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:所述根据所述高速缓冲存储器中的多个缓存行和所述多个并行报文包对应的多个第一数据块确定多个缓存路径包括:根据随机权重从所述高速缓冲存储器中随机确定所述多个缓存行;根据所述多个缓存行生成总缓存组并根据所述总缓存组和所述多个第一数据块确定所述多个缓存路径。
在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:所述根
据所述多个缓存行生成总缓存组并根据所述总缓存组和所述多个第一数据块确定所述多
个缓存路径包括:根据下列公式计算出所述多个缓存行对应的多个引用概率值,其中b为缓
存行,为b被访问的时间,为在tbase时刻的CRF值,w为访问频率;
根据所述总缓存组生成两个第一缓存组并根据所述多个引用概率值计算出所述第一缓存组对应的第一组权重;根据所述第一缓存组生成两个第二缓存组并根据所述第一组权重计算出所述多个第二缓存组对应的第二组权重;根据所述多个第二组权重和所述多个第一数据块确定多个第二缓存组对应的多个缓存路径。
在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:所述根据所述多个第二组权重和所述多个第一数据块确定多个第二缓存组对应的多个缓存路径包括:获取所述多个内核芯片对应的写请求信息并根据所述写请求信息计算出所述多个第一数据块对应的多个块权重,其中所述写请求信息包括请求频率和请求时间;根据所述多个块权重对所述任务队列中的并行报文包进行重新排序;根据所述多个第二组权重和所述多个块权重确定所述多个缓存路径。
在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:所述根据所述多个缓存路径和所述多个第一数据块替换所述多个缓存行对应的多个第二数据块包括:响应于排序完成,根据所述缓存路径从所述第二缓存组中确定目标缓存行并根据所述并行报文包对应的第一数据块替换所述目标缓存行对应的第二数据块;响应于替换所述第二数据块完成,修改所述目标缓存行对应的随机权重;重新计算所述目标缓存行对应的引用概率值并修改所述第二缓存组的第二组权重。
在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:所述确定一致写请求失败并通过握手通信向所述多个内核芯片返回所述锁定状态信号之后包括:根据用户设置的第一时间阈值确定所述任务队列是否依然已满;若是,则确定所述高速缓冲存储器异常并向所述用户告警;若否,则通过所述握手通信向所述多个内核芯片返回解除锁定信号。
在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:所述确定所述高速缓冲存储器异常并向所述用户告警之后包括:响应于接收到所述用户发送的异常修复信息,通过所述握手通信向所述多个内核芯片发送解除锁定信号并重新接收所述多个内核芯片发送的写请求。
在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:根据用户设置的中断周期对所述高速缓冲存储器进行中断处理并从所述高速缓冲存储器中获取所述缓存行对应的替换信息;将所述替换信息记录到静态随机存取存储器,其中所述替换信息包括缓存行状态和覆盖次数。
在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:向数据块替换装置发送写请求;响应于接收到所述数据块替换装置通过握手通信发送的锁定状态信号,停止处理工作指令;响应于接收到所述数据块替换装置通过所述握手通信发送的解除锁定信号,重新向数据块替换装置发送上一次的写请求;响应于所述数据块替换装置处理所述写请求完成,断开所述握手通信。
在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:响应于接收到所述数据块替换装置通过握手通信发送的等待处理信号,确定等待所述数据块替换装置处理所述写请求的等待时间是否大于用户设置的第二时间阈值;若是,则断开所述握手通信。
又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:响应于同时接收到多个内核芯片发送的多个写请求,确定任务队列是否已满;若是,则确定一致写请求失败并通过握手通信向所述多个内核芯片返回锁定状态信号;若否,则根据所述多个写请求生成多个并行报文包并将所述多个并行报文包写入任务队列;根据高速缓冲存储器中的多个缓存行和所述多个并行报文包对应的多个第一数据块确定多个缓存路径;根据所述多个缓存路径和所述多个第一数据块替换所述多个缓存行对应的多个第二数据块。
在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:所述根据所述多个写请求生成多个并行报文包并将所述多个并行报文包写入任务队列包括:确定所述多个写请求对应的请求量是否小于所述任务队列的空闲任务量;若否,则根据所述写请求生成所述空闲任务量对应的并行报文包并将所述并行报文包写入所述任务队列;若是,则根据所述多个第一数据块生成多个并行报文包。
在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:所述根据所述写请求生成所述空闲任务量对应的并行报文包并将所述并行报文包写入所述任务队列包括:根据所述多个写请求确定所述多个内核芯片的优先级并根据所述优先级和所述多个写请求生成所述空闲任务量对应的并行报文包;将所述空闲任务量对应的并行报文包写入所述任务队列并通过所述握手通信向其余内核芯片发送等待处理信号;响应于所述任务队列的空闲任务量不小于写入量,根据其余写请求生成其余并行报文包并将所述其余并行报文包写入所述任务队列。
在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:所述根据所述高速缓冲存储器中的多个缓存行和所述多个并行报文包对应的多个第一数据块确定多个缓存路径包括:根据随机权重从所述高速缓冲存储器中随机确定所述多个缓存行;根据所述多个缓存行生成总缓存组并根据所述总缓存组和所述多个第一数据块确定所述多个缓存路径。
在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:所述根据
所述多个缓存行生成总缓存组并根据所述总缓存组和所述多个第一数据块确定所述多个
缓存路径包括:根据下列公式计算出所述多个缓存行对应的多个引用概率值,其中b为缓存
行,为b被访问的时间,为在tbase时刻的CRF值,w为访问频率;
根据所述总缓存组生成两个第一缓存组并根据所述多个引用概率值计算出所述第一缓存组对应的第一组权重;根据所述第一缓存组生成两个第二缓存组并根据所述第一组权重计算出所述多个第二缓存组对应的第二组权重;根据所述多个第二组权重和所述多个第一数据块确定多个第二缓存组对应的多个缓存路径。
在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:所述根据所述多个第二组权重和所述多个第一数据块确定多个第二缓存组对应的多个缓存路径包括:获取所述多个内核芯片对应的写请求信息并根据所述写请求信息计算出所述多个第一数据块对应的多个块权重,其中所述写请求信息包括请求频率和请求时间;根据所述多个块权重对所述任务队列中的并行报文包进行重新排序;根据所述多个第二组权重和所述多个块权重确定所述多个缓存路径。
在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:所述根据所述多个缓存路径和所述多个第一数据块替换所述多个缓存行对应的多个第二数据块包括:响应于排序完成,根据所述缓存路径从所述第二缓存组中确定目标缓存行并根据所述并行报文包对应的第一数据块替换所述目标缓存行对应的第二数据块;响应于替换所述第二数据块完成,修改所述目标缓存行对应的随机权重;重新计算所述目标缓存行对应的引用概率值并修改所述第二缓存组的第二组权重。
在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:所述确定一致写请求失败并通过握手通信向所述多个内核芯片返回所述锁定状态信号之后包括:根据用户设置的第一时间阈值确定所述任务队列是否依然已满;若是,则确定所述高速缓冲存储器异常并向所述用户告警;若否,则通过所述握手通信向所述多个内核芯片返回解除锁定信号。
在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:所述确定所述高速缓冲存储器异常并向所述用户告警之后包括:响应于接收到所述用户发送的异常修复信息,通过所述握手通信向所述多个内核芯片发送解除锁定信号并重新接收所述多个内核芯片发送的写请求。
在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:根据用户设置的中断周期对所述高速缓冲存储器进行中断处理并从所述高速缓冲存储器中获取所述缓存行对应的替换信息;将所述替换信息记录到静态随机存取存储器,其中所述替换信息包括缓存行状态和覆盖次数。
在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:向数据块替换装置发送写请求;响应于接收到所述数据块替换装置通过握手通信发送的锁定状态信号,停止处理工作指令;响应于接收到所述数据块替换装置通过所述握手通信发送的解除锁定信号,重新向数据块替换装置发送上一次的写请求;响应于所述数据块替换装置处理所述写请求完成,断开所述握手通信。
在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:响应于接收到所述数据块替换装置通过握手通信发送的等待处理信号,确定等待所述数据块替换装置处理所述写请求的等待时间是否大于用户设置的第二时间阈值;若是,则断开所述握手通信。
上述基于高速缓冲存储器的数据块替换方法,响应于同时接收到多个内核芯片发送的多个写请求,先确定任务队列是否已满;若是,则确定一致写请求失败并通过握手通信向所述多个内核芯片返回锁定状态信号;若否,则根据所述多个写请求生成多个并行报文包并将所述多个并行报文包写入任务队列;之后根据所述高速缓冲存储器中的多个缓存行和所述多个并行报文包对应的多个第一数据块确定多个缓存路径;最后根据所述多个缓存路径和所述多个第一数据块替换所述多个缓存行对应的多个第二数据块。通过tree- LRFU策略对cache-line进行划分管理,从而提高了整个cache- line的命中率以及Cache的写入效率;通过在生产消费模型中引入握手通信,提高了cache和core之间的沟通效率,降低了系统中多核写入的堵塞情况的发生频率。
附图说明
图1为基于高速缓冲存储器的数据块替换系统的拓扑示意图;
图2为基于高速缓冲存储器的数据块替换系统的结构示例图;
图3为基于高速缓冲存储器的数据块替换方法的步骤示意图;
图4为基于高速缓冲存储器的数据块替换流程的工作流程示意图;
图5为握手通信的信号状态示例图;
图6为握手流程的流程示例图;
图7为并行报文包的数据包示例图;
图8为管理缓存行流程的流程示例图;
图9为基于高速缓冲存储器的数据块替换装置的装置示意图;
图10为本发明实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,为基于高速缓冲存储器的数据块替换系统的拓扑示意图,其中包括多个core(内核芯片)、数据块替换装置和cache(高速缓冲存储器)。如图2所示,为数据块替换系统的结构示例图,其中多个内核芯片(包括core0 w/r等,其中w/r代表write/read 即具有读写功能的内核芯片0)、数据块替换装置和cache之间建立生产者-消费者模型,数据块替换装置执行一致替换逻辑,其中数据替换装置可以包括:1.握手接口模块(handshake interface):包含握手协议和模型跳转状态机,多个core的写接口和response接口;2.包缓存模块(PKG_BUFFER):基于通用缓存模块修改,用于修改位宽及深度和匹配报文;3.请求转换模块(GEN _ PKG):将cache的总线请求结合各自的有效信号,转为并行报文包的格式;4.顺序队列模块(ORDING QUEUE):将上图转换后的并行报文包写入到FIFO(先进先出数据存储)队列即顺序队列模块中的任务队列中,通过替换策略模块调整任务队列; 5.动态记录更新:内置timer(计时器)、sram(静态随机存取存储器)、读写逻辑,设置timer中断,每隔一段时间,触发中断从cache中读取cache-line(缓存行)的状态变化及覆盖次数,存储于内部sram中。6.tree-LRFU(tree-Least Recently/Frequently Used树结构-最近最少使用策略)替换模块:对tree-LRFU替换策略算法增加tree路径设计,在上电后,按照块权重对任务队列进行tree-LRFU调整。
在一个实施例中,如图3所示,本发明提供一种高速缓冲存储器的数据块替换方法,应用于数据块替换装置,所述方法包括:S301、响应于同时接收到多个内核芯片发送的多个写请求,确定任务队列是否已满;S302、若是,则确定一致写请求失败并通过握手通信向所述多个内核芯片返回锁定状态信号;S303、若否,则根据所述多个写请求生成多个并行报文包并将所述多个并行报文包写入任务队列;S304、根据高速缓冲存储器中的多个缓存行和所述多个并行报文包对应的多个第一数据块确定多个缓存路径;S305、根据所述多个缓存路径和所述多个第一数据块替换所述多个缓存行对应的多个第二数据块。
具体的,如图4所示,为数据块替换装置的工作流程示意图;大致流程为触发一致多写入-开始握手协议通信-将数据打包-压入缓存-写入任务队列-替换cache-line中的数据块。如图5所示,为握手通信的信号状态示例图,其中包括:idle(空闲)、wait(等待处理写请求)、lock(锁定)以及write(处理写请求)。如图6所示,为握手流程的流程示例图,其中1.IDLE,说明无多写入触发情况,进入IDLE时,数据块替换装置的接口不工作。2.触发多写入情况,判断情况,状态机跳转,如果写入量大于队列缓存,当队列空间不足,通知各个core进入wait状态,进入写入等待,等待队列余量满足条件;如果写入量小于队列缓存,跳转至write状态,写入并行报文包进入队列缓存,进行一致写入;如果队列满,则进入lock状态,握手信号反馈一致写入失败,请求重写后,状态再跳转至IDLE状态。3.跳转至write状态时,读出任务队列中的并行报文包,将数据包中的第一数据块按顺序写入至cache line内;4.跳转至wait状态时,将握手信号中状态信号拉至wait状态,使的优先级低的core会一直保持总线写有效,先将部分写传输包写入至队列,再队列出现余量后,将剩余的写传输包写入;5.跳转至lock状态时,是因为队列已满,或cache出错,导致写失败,此时将握手信号中状态信号拉至lock状态,core端收到lock状态反馈时,会等待lock解除后,重新发起写请求,重写上笔失败数据;一致写入逻辑会待到队列可写入或cache正常时,解除lock。
在其中一个实施例中,所述根据所述多个写请求生成多个并行报文包并将所述多个并行报文包写入任务队列包括:确定所述多个写请求对应的请求量是否小于所述任务队列的空闲任务量;若否,则根据所述写请求生成所述空闲任务量对应的并行报文包并将所述并行报文包写入所述任务队列;若是,则根据所述多个第一数据块生成多个并行报文包。
具体的,如果写请求对应的写入量大于队列缓存,通知core进入wait状态,等待队列余量满足条件,此时core等待数据块替换装置处理写请求。如果写入量小于队列缓存,跳转至WRITE状态,将接收到的所有写请求结合各自的有效信号,转为并行报文包的格式,如图7所示,为写请求转换成并行报文包的数据包示例图,其中左侧为包含地址、数据、标签(TAG)、函数(Index)和状态(dirty/clean)的写请求,右侧为并行报文包格式的数据包,之后将并行报文包写入任务队列中。
在其中一个实施例中,所述根据所述写请求生成所述空闲任务量对应的并行报文包并将所述并行报文包写入所述任务队列包括:根据所述多个写请求确定所述多个内核芯片的优先级并根据所述优先级和所述多个写请求生成所述空闲任务量对应的并行报文包;将所述空闲任务量对应的并行报文包写入所述任务队列并通过所述握手通信向其余内核芯片发送等待处理信号;响应于所述任务队列的空闲任务量不小于写入量,根据其余写请求生成其余并行报文包并将所述其余并行报文包写入所述任务队列。
具体的,优先级根据具体需求场景直接确定,例如有8个core,8个core的优先级是os(操作系统)层面决定的,并不是底层硬件决定的。Core在做通讯时,其之间的优先级一定是已知的一个顺序。比如一个主core,主core按照需求,临时分配优先权给core1等,在OS启动的时候初始化core决定的。优先将级别低的core发送的写请求写入,是为了防止这个core等待时间过长,这笔数据失效,需要重传;通过部分写入,使得不会影响core的工作效率。从总线传输的角度看,数据传输更加高效。而向级别高的core发送等待处理信号,因为级别高的core受其他进程影响的概率较小,可以让它们一直等待任务队列出现空闲。
在其中一个实施例中,所述根据所述高速缓冲存储器中的多个缓存行和所述多个并行报文包对应的多个第一数据块确定多个缓存路径包括:根据所述缓存行的随机权重从所述高速缓冲存储器中确定所述多个缓存行;根据所述多个缓存行生成总缓存组并根据所述总缓存组和所述多个第一数据块确定所述多个缓存路径。
具体的,可以通过真随机发生器从cache中抓取cache-line,当然抓取时并不是完全随机的,cache-line都有自己的随机权重,可以通过真随机发生器从cache中随机抓取随机权重较高的cache-line,而每次替换cache-line之后,都会降低相关的随机权重,使得下次随机抓取到该cache-line的概率降低。例如随机抓取到32个cache-line,则根据这32个cache-line生成一个组0即总缓存组。
在其中一个实施例中,所述根据所述多个缓存行生成总缓存组并根据所述总缓存
组和所述多个第一数据块确定所述多个缓存路径包括:根据下列公式计算出所述多个缓存
行对应的多个引用概率值,其中b为缓存行,为b被访问的时间,为在tbase时刻(目标时
刻)的CRF值,w为访问频率;
根据所述总缓存组生成两个第一缓存组并根据所述多个引用概率值计算出所述第一缓存组对应的第一组权重;根据所述第一缓存组生成两个第二缓存组并根据所述第一组权重计算出所述多个第二缓存组对应的第二组权重;根据所述多个第二组权重和所述多个第一数据块确定多个第二缓存组对应的多个缓存路径。
具体的,LRFU策略本身会为每个块关联一个值。这个值被称为CRF (CombinedRecency and Frequency 最近关联和访问频率的结合)值,它量化了块在不久的将来被引用的概率。对过去块的每个引用都对该值有贡献,并且引用的贡献由权重函数F(z)确定,其中z是从过去的引用到当前时间的时间跨度。F(z)基本上反映了一个区块历史的近代性和频率因素在预测它被重新引用的可能性方面的影响。根据公式计算出每个缓存行对应的CRF值,其中w为访问频率(1/访问次数),例如tbase为10ns,ti为0ns、1ns,则可知在0-10ns这一时间段内缓存行被访问了两次,w=0.5,F(tbase-ti)= 0.03125和0.04419,最终计算出的CRF值为0.07544417382;如果ti为0ns、1ns、2ns,则可知w=0.33,F(tbase-ti)= 0.0994、0.125和0.1574,最终计算出的CRF值为0.119075。如图8所示,在根据公式计算出每个缓存行对应的CRF值之后,将组0随机分成组0_0及组0_1并计算出组0_0及组0_1的CRF值,之后将组0_0及组0_1分成组0_0_0、组0_0_1、组0_1_0和组0_1_1并计算出这四个第二缓存组的CRF值之和即第二组权重,以16个缓存行即16个待替换数据块为例,先通过真随机发生器中的权重随机选取16个待替换数据块,之后随机分为2组,计算2组的引用概率值各自的组加,然后2分法逐步计算,得到4个第二缓存组,最终每个第二缓存组中存在4条cache-line,之后根据8个并行报文包对应的第一数据块确定与4个第二缓存组之间的缓存路径。与以前使用有限历史记录来做出块替换决策的许多策略不同,本方案使用在硬件缓存工作期间记录的缓存行的完整参考历史记录及状态寄存器的变更值,作为历史参考,是外部获取不到且可以实时更新。
在其中一个实施例中,所述根据所述多个第二组权重和所述多个第一数据块确定多个第二缓存组对应的多个缓存路径包括:获取所述多个内核芯片对应的写请求信息并根据所述写请求信息计算出所述多个第一数据块对应的多个块权重,其中所述写请求信息包括请求频率和请求时间;根据所述多个块权重对所述任务队列中的并行报文包进行重新排序;根据所述多个第二组权重和所述多个块权重确定所述多个缓存路径。
具体的,先获取每个core的写请求信息,之后同样采用和上述相同的公式计算出每个第一数据块对应的块权重,例如core1的tbase同样为10ns,ti为0ns,则可知w=1,F(tbase-ti)= 0.5,最终计算出的块权重为0.0009765625,也就是根据core1在0-10ns这个时间段内仅向数据块替换装置发送了一次写请求,从而计算出这一次第一数据块的块权重。如上所述,根据块权重重新确定任务队列中的顺序,之后根据块权重和四个缓存组对应的第二组权重确定缓存路径,例如在确定某一第一数据块的缓存路径时,组0_1_1的第二组权重最小,则确定与组0_1_1之间的路径为该第一数据块的缓存路径。另外,因为计算一个块的CRF值需要保持过去对该块的所有引用的引用时间。这需要无限的内存,而权重函数F(z)具有F(x + y) = F(x)F(y)属性,从而使得该策略易实现且高效。具体公式如下所示:
其中为缓存行被访问的当前时刻,为缓存行被访问的中间时刻,以为
100ns,为90ns为例,根据之前记录的即该缓存行0-90ns的CRF值以及90ns-
100ns之间的访问信息就可以计算出0-100ns中该缓存行的CRF值,而仅仅需要记录每个缓
存行时刻的,则每个缓存行时刻之前的所有访问记录都可以删除,从而使
得存储和计算开销可以大大减少。即可以根据中间时刻的引用概率值和中间时刻与当前时
刻之间的访问信息计算出当前的引用概率值。
在其中一个实施例中,所述根据所述多个缓存路径和所述多个第一数据块替换所述多个缓存行对应的多个第二数据块包括:根据所述缓存路径从所述第二缓存组中确定目标缓存行并根据所述并行报文包对应的第一数据块替换所述目标缓存行对应的第二数据块;响应于替换所述第二数据块完成,修改所述目标缓存行对应的随机权重;重新计算所述目标缓存行对应的引用概率值并修改所述第二缓存组的第二组权重。
具体的,在确定好缓存路径之后,根据并行报文包中的第一数据块替换比如组0_1_1中cache-line的第二数据块,需要说明的是,第一数据块的内存大小和第二数据块的内存大小不一致,可能第一数据块远大于第二数据块,所以替换时会替换掉多个cache-line(目标缓存行)中的第二数据块,例如3bit的第一数据块需要替换掉3个1bit的第二数据块。另外在替换流程结束后需要降低所有被替换的cache-line的随机权重,避免cache-line中的数据频繁被替换。另外比如因为组0_1_0的第二组权重最小,则确定好第一个第一数据块的缓存路径为与组0_1_0之间的路径,之后需要根据上述公式更新组0_1_0的第二组权重(因为访问次数加1,所以CRF值(引用概率值)发生变化,相应的第二组权重也变化),更新好后,重新比较四个第二缓存组之间的第二组权重,即确定好上一个并行报文包的第一数据块对应的缓存路径后需要重新计算相应的第二缓存组的第二组权重,并根据当前四个第二组权重的大小关系确定当前第一数据块的缓存路径。根据每次的替换路径更新相应的第二组权重,从而精确定位需要进行替换的第二缓存组。
在其中一个实施例中,所述确定一致写请求失败并通过握手通信向所述多个内核芯片返回所述锁定状态信号之后包括:根据用户设置的第一时间阈值确定所述任务队列是否依然已满;若是,则确定所述高速缓冲存储器异常并向所述用户告警;若否,则通过所述握手通信向所述多个内核芯片返回解除锁定信号。
具体的,跳转至lock状态时,是因为队列已满,或替换cache时出错,导致写失败,此时将握手信号中状态信号拉至lock状态,core端收到lock状态反馈时,会等待lock解除后,而在cache出错的持续时间或者任务队列已满的持续时间超过用户设置的时间阈值时,此时会向用户告警。
在其中一个实施例中,所述确定所述高速缓冲存储器异常并向所述用户告警之后包括:响应于接收到所述用户发送的异常修复信息,通过所述握手通信向所述多个内核芯片发送解除锁定信号并重新接收所述多个内核芯片发送的写请求。
具体的,如上所述,在用户修复好故障后,此时会接收到用户发送的异常修复信息,之后解除lock,core端会重新发起写请求,最后数据块替换装置重新将上笔写失败的写请求对应的第一数据块替换cache-line中的第二数据块。
在其中一个实施例中,所述方法还包括:根据用户设置的中断周期对所述高速缓冲存储器进行中断处理并从所述高速缓冲存储器中获取所述缓存行对应的替换信息;将所述替换信息记录到静态随机存取存储器,其中所述替换信息包括缓存行状态和覆盖次数。
具体的,可以内置timer(计时器)、sram(Static Random-Access Memory 静态随机存取存储器)、读写逻辑,设置timer中断,每隔一段时间,触发中断从cache中读取cache-line的状态变化及覆盖次数,之后将相关的替换信息存储于内部sram中。
在其中一个实施例中,还提供一种数据块替换方法,应用于多个内核芯片,所述方法包括:向数据块替换装置发送写请求;响应于接收到所述数据块替换装置通过握手通信发送的锁定状态信号,停止处理工作指令;响应于接收到所述数据块替换装置通过所述握手通信发送的解除锁定信号,重新向数据块替换装置发送上一次的写请求;响应于所述数据块替换装置处理所述写请求完成,断开所述握手通信。
具体的,内核芯片通过握手信号与数据块替换装置进行通信并向该装置发送写请求,之后等待数据块替换装置将写请求处理后写入到任务队列中,如果在此过程中接收到数据块替换装置发送的Lock锁定信号,则会保持与数据块替换装置的握手信号通信且在接收到其他设备发送的工作指令时不处理相关的工作指令;而在接收到数据块替换装置发送的解除锁定信号之后,重新向数据块替换装置发送上一次没有写成功的写请求,每个内核芯片在数据块替换装置将写请求对应的并行报文包写入到任务队列中后,断开与其的握手信号通信。
在其中一个实施例中,所述方法还包括:响应于接收到所述数据块替换装置通过握手通信发送的等待处理信号,等待用户设置的第二时间阈值并确定等待时间是否大于所述第二时间阈值;若是,则断开所述握手通信。
具体的,core在接收到数据块替换装置通过握手通信发送的Wait处理信号之后,会在用户设置的时间阈值内一直等待数据块替换装置处理好写请求,期间会屏蔽其他设备发送的工作指令并确定等待时间即数据块替换装置的处理时间是否超过时间阈值,如果超过,则主动断开握手信号通信。
本申请的方案有如下有益效果:1) 通过tree-LRFU策略对cache-line进行划分管理,从而提高了整个cache- line的命中率以及Cache的写入效率。
2) 通过在生产消费模型中引入握手通信,提高了cache和core之间的沟通效率,降低了系统中多核写入的堵塞情况的发生频率。
应该理解的是,虽然图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次执行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图9所示,提供一种应用数据块替换方法的数据块替换装置,其特征在于,所述装置包括:第一确定模块901,响应于同时接收到多个内核芯片发送的多个写请求,确定任务队列是否已满;返回模块902,若是,则用于确定一致写请求失败并通过握手通信向所述多个内核芯片返回锁定状态信号;生成模块903,若否,则用于根据所述多个写请求生成多个并行报文包并将所述多个并行报文包写入任务队列;第一确定模块901,还用于根据高速缓冲存储器中的多个缓存行和所述多个并行报文包对应的多个第一数据块确定多个缓存路径;替换模块904,用于根据所述多个缓存路径和所述多个第一数据块替换所述多个缓存行对应的多个第二数据块。
在其中一个实施例中,所述生成模块根据所述多个写请求生成多个并行报文包并将所述多个并行报文包写入任务队列包括:确定所述多个写请求对应的请求量是否小于所述任务队列的空闲任务量;若否,则根据所述写请求生成所述空闲任务量对应的并行报文包并将所述并行报文包写入所述任务队列;若是,则根据所述多个第一数据块生成多个并行报文包。
在其中一个实施例中,所述生成模块根据所述写请求生成所述空闲任务量对应的并行报文包并将所述并行报文包写入所述任务队列包括:根据所述多个写请求确定所述多个内核芯片的优先级并根据所述优先级和所述多个写请求生成所述空闲任务量对应的并行报文包;将所述空闲任务量对应的并行报文包写入所述任务队列并通过所述握手通信向其余内核芯片发送等待处理信号;响应于所述任务队列的空闲任务量不小于写入量,根据其余写请求生成其余并行报文包并将所述其余并行报文包写入所述任务队列。
在其中一个实施例中,所述第一确定模块根据所述高速缓冲存储器中的多个缓存行和所述多个并行报文包对应的多个第一数据块确定多个缓存路径包括:根据随机权重从所述高速缓冲存储器中随机确定所述多个缓存行;根据所述多个缓存行生成总缓存组并根据所述总缓存组和所述多个第一数据块确定所述多个缓存路径。
在其中一个实施例中,所述第一确定模块根据所述多个缓存行生成总缓存组并根
据所述总缓存组和所述多个第一数据块确定所述多个缓存路径包括:根据下列公式计算出
所述多个缓存行对应的多个引用概率值,b为缓存行,为b被访问的时间,为在tbase时
刻的CRF值,w为访问频率;
根据所述总缓存组生成两个第一缓存组并根据所述多个引用概率值计算出所述第一缓存组对应的第一组权重;
根据所述第一缓存组生成两个第二缓存组并根据所述第一组权重计算出所述多个第二缓存组对应的第二组权重;根据所述多个第二组权重和所述多个第一数据块确定多个第二缓存组对应的多个缓存路径。
在其中一个实施例中,所述第一确定模块根据所述多个第二组权重和所述多个第一数据块确定多个第二缓存组对应的多个缓存路径包括:获取所述多个内核芯片对应的写请求信息并根据所述写请求信息计算出所述多个第一数据块对应的多个块权重,其中所述写请求信息包括请求频率和请求时间;根据所述多个块权重对所述任务队列中的并行报文包进行重新排序;根据所述多个第二组权重和所述多个块权重确定所述多个缓存路径。
在其中一个实施例中,所述替换模块根据所述多个缓存路径和所述多个第一数据块替换所述多个缓存行对应的多个第二数据块包括:响应于排序完成,根据所述缓存路径从所述第二缓存组中确定目标缓存行并根据所述并行报文包对应的第一数据块替换所述目标缓存行对应的第二数据块;响应于替换所述第二数据块完成,修改所述目标缓存行对应的随机权重;重新计算所述目标缓存行对应的引用概率值并修改所述第二缓存组的第二组权重。
在其中一个实施例中,所述返回模块确定一致写请求失败并通过握手通信向所述多个内核芯片返回所述锁定状态信号之后包括:根据用户设置的第一时间阈值确定所述任务队列是否依然已满;若是,则确定所述高速缓冲存储器异常并向所述用户告警;若否,则通过所述握手通信向所述多个内核芯片返回解除锁定信号。
在其中一个实施例中,所述返回模块确定所述高速缓冲存储器异常并向所述用户告警之后包括:响应于接收到所述用户发送的异常修复信息,通过所述握手通信向所述多个内核芯片发送解除锁定信号并重新接收所述多个内核芯片发送的写请求。
在其中一个实施例中,所述数据块替换装置还包括:中断模块,用于根据用户设置的中断周期对所述高速缓冲存储器进行中断处理并从所述高速缓冲存储器中获取所述缓存行对应的替换信息;记录模块,用于将所述替换信息记录到静态随机存取存储器,其中所述替换信息包括缓存行状态和覆盖次数。
在其中一个实施例中,还提供应用基于高速缓冲存储器的数据块替换方法的多个内核芯片,其中内核芯片包括:发送模块,用于向数据块替换装置发送写请求;处理模块,响应于接收到所述数据块替换装置通过握手通信发送的锁定状态信号,用于停止处理工作指令;发送模块,响应于接收到所述数据块替换装置通过所述握手通信发送的解除锁定信号,还用于重新向数据块替换装置发送上一次的写请求;通信模块,响应于所述数据块替换装置处理所述写请求完成,用于断开所述握手通信;在其中一个实施例中,所述内核芯片还包括:第二确定模块,响应于接收到所述数据块替换装置通过握手通信发送的等待处理信号,用于确定等待所述数据块替换装置处理所述写请求的等待时间是否大于用户设置的第二时间阈值;通信模块,若是,则用于断开所述握手通信。
关于应用高速缓冲存储器的数据块替换方法的数据块替换装置的具体限定可以参见上文中对于高速缓冲存储器的数据块替换方法的限定,在此不再赘述。上述应用高速缓冲存储器的数据块替换方法的数据块替换装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现告警信息处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:响应于同时接收到多个内核芯片发送的多个写请求,确定任务队列是否已满;若是,则确定一致写请求失败并通过握手通信向所述多个内核芯片返回锁定状态信号;若否,则根据所述多个写请求生成多个并行报文包并将所述多个并行报文包写入任务队列;根据高速缓冲存储器中的多个缓存行和所述多个并行报文包对应的多个第一数据块确定多个缓存路径;根据所述多个缓存路径和所述多个第一数据块替换所述多个缓存行对应的多个第二数据块。
在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:所述根据所述多个写请求生成多个并行报文包并将所述多个并行报文包写入任务队列包括:确定所述多个写请求对应的请求量是否小于所述任务队列的空闲任务量;若否,则根据所述写请求生成所述空闲任务量对应的并行报文包并将所述并行报文包写入所述任务队列;若是,则根据所述多个第一数据块生成多个并行报文包。
在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:所述根据所述写请求生成所述空闲任务量对应的并行报文包并将所述并行报文包写入所述任务队列包括:根据所述多个写请求确定所述多个内核芯片的优先级并根据所述优先级和所述多个写请求生成所述空闲任务量对应的并行报文包;将所述空闲任务量对应的并行报文包写入所述任务队列并通过所述握手通信向其余内核芯片发送等待处理信号;响应于所述任务队列的空闲任务量不小于写入量,根据其余写请求生成其余并行报文包并将所述其余并行报文包写入所述任务队列。
在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:所述根据所述高速缓冲存储器中的多个缓存行和所述多个并行报文包对应的多个第一数据块确定多个缓存路径包括:根据随机权重从所述高速缓冲存储器中随机确定所述多个缓存行;根据所述多个缓存行生成总缓存组并根据所述总缓存组和所述多个第一数据块确定所述多个缓存路径。
在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:所述根
据所述多个缓存行生成总缓存组并根据所述总缓存组和所述多个第一数据块确定所述多
个缓存路径包括:根据下列公式计算出所述多个缓存行对应的多个引用概率值,b为缓存
行,为b被访问的时间,为在tbase时刻的CRF值,w为访问频率;
根据所述总缓存组生成两个第一缓存组并根据所述多个引用概率值计算出所述第一缓存组对应的第一组权重;根据所述第一缓存组生成两个第二缓存组并根据所述第一组权重计算出所述多个第二缓存组对应的第二组权重;根据所述多个第二组权重和所述多个第一数据块确定多个第二缓存组对应的多个缓存路径。
在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:所述根据所述多个第二组权重和所述多个第一数据块确定多个第二缓存组对应的多个缓存路径包括:获取所述多个内核芯片对应的写请求信息并根据所述写请求信息计算出所述多个第一数据块对应的多个块权重,其中所述写请求信息包括请求频率和请求时间;根据所述多个块权重对所述任务队列中的并行报文包进行重新排序;根据所述多个第二组权重和所述多个块权重确定所述多个缓存路径。
在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:所述根据所述多个缓存路径和所述多个第一数据块替换所述多个缓存行对应的多个第二数据块包括:响应于排序完成,根据所述缓存路径从所述第二缓存组中确定目标缓存行并根据所述并行报文包对应的第一数据块替换所述目标缓存行对应的第二数据块;响应于替换所述第二数据块完成,修改所述目标缓存行对应的随机权重;重新计算所述目标缓存行对应的引用概率值并修改所述第二缓存组的第二组权重。
在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:所述确定一致写请求失败并通过握手通信向所述多个内核芯片返回所述锁定状态信号之后包括:根据用户设置的第一时间阈值确定所述任务队列是否依然已满;若是,则确定所述高速缓冲存储器异常并向所述用户告警;若否,则通过所述握手通信向所述多个内核芯片返回解除锁定信号。
在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:所述确定所述高速缓冲存储器异常并向所述用户告警之后包括:响应于接收到所述用户发送的异常修复信息,通过所述握手通信向所述多个内核芯片发送解除锁定信号并重新接收所述多个内核芯片发送的写请求。
在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:根据用户设置的中断周期对所述高速缓冲存储器进行中断处理并从所述高速缓冲存储器中获取所述缓存行对应的替换信息;将所述替换信息记录到静态随机存取存储器,其中所述替换信息包括缓存行状态和覆盖次数。
在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:向数据块替换装置发送写请求;响应于接收到所述数据块替换装置通过握手通信发送的锁定状态信号,停止处理工作指令;响应于接收到所述数据块替换装置通过所述握手通信发送的解除锁定信号,重新向数据块替换装置发送上一次的写请求;响应于所述数据块替换装置处理所述写请求完成,断开所述握手通信。
在其中一个实施例中,所述处理器执行所述计算机程序时实现以下步骤:响应于接收到所述数据块替换装置通过握手通信发送的等待处理信号,确定等待所述数据块替换装置处理所述写请求的等待时间是否大于用户设置的第二时间阈值;若是,则断开所述握手通信。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:响应于同时接收到多个内核芯片发送的多个写请求,确定任务队列是否已满;若是,则确定一致写请求失败并通过握手通信向所述多个内核芯片返回锁定状态信号;若否,则根据所述多个写请求生成多个并行报文包并将所述多个并行报文包写入任务队列;根据高速缓冲存储器中的多个缓存行和所述多个并行报文包对应的多个第一数据块确定多个缓存路径;根据所述多个缓存路径和所述多个第一数据块替换所述多个缓存行对应的多个第二数据块。
在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:所述根据所述多个写请求生成多个并行报文包并将所述多个并行报文包写入任务队列包括:确定所述多个写请求对应的请求量是否小于所述任务队列的空闲任务量;若否,则根据所述写请求生成所述空闲任务量对应的并行报文包并将所述并行报文包写入所述任务队列;若是,则根据所述多个第一数据块生成多个并行报文包。
在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:所述根据所述写请求生成所述空闲任务量对应的并行报文包并将所述并行报文包写入所述任务队列包括:根据所述多个写请求确定所述多个内核芯片的优先级并根据所述优先级和所述多个写请求生成所述空闲任务量对应的并行报文包;将所述空闲任务量对应的并行报文包写入所述任务队列并通过所述握手通信向其余内核芯片发送等待处理信号;响应于所述任务队列的空闲任务量不小于写入量,根据其余写请求生成其余并行报文包并将所述其余并行报文包写入所述任务队列。
在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:所述根据所述高速缓冲存储器中的多个缓存行和所述多个并行报文包对应的多个第一数据块确定多个缓存路径包括:根据随机权重从所述高速缓冲存储器中随机确定所述多个缓存行;根据所述多个缓存行生成总缓存组并根据所述总缓存组和所述多个第一数据块确定所述多个缓存路径。
在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:所述根据
所述多个缓存行生成总缓存组并根据所述总缓存组和所述多个第一数据块确定所述多个
缓存路径包括:根据下列公式计算出所述多个缓存行对应的多个引用概率值,b为缓存行,
为b被访问的时间,为在tbase时刻的CRF值,w为访问频率;
根据所述总缓存组生成两个第一缓存组并根据所述多个引用概率值计算出所述第一缓存组对应的第一组权重;根据所述第一缓存组生成两个第二缓存组并根据所述第一组权重计算出所述多个第二缓存组对应的第二组权重;根据所述多个第二组权重和所述多个第一数据块确定多个第二缓存组对应的多个缓存路径。
在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:所述根据所述多个第二组权重和所述多个第一数据块确定多个第二缓存组对应的多个缓存路径包括:获取所述多个内核芯片对应的写请求信息并根据所述写请求信息计算出所述多个第一数据块对应的多个块权重,其中所述写请求信息包括请求频率和请求时间;根据所述多个块权重对所述任务队列中的并行报文包进行重新排序;根据所述多个第二组权重和所述多个块权重确定所述多个缓存路径。
在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:所述根据所述多个缓存路径和所述多个第一数据块替换所述多个缓存行对应的多个第二数据块包括:响应于排序完成,根据所述缓存路径从所述第二缓存组中确定目标缓存行并根据所述并行报文包对应的第一数据块替换所述目标缓存行对应的第二数据块;响应于替换所述第二数据块完成,修改所述目标缓存行对应的随机权重;重新计算所述目标缓存行对应的引用概率值并修改所述第二缓存组的第二组权重。
在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:所述确定一致写请求失败并通过握手通信向所述多个内核芯片返回所述锁定状态信号之后包括:根据用户设置的第一时间阈值确定所述任务队列是否依然已满;若是,则确定所述高速缓冲存储器异常并向所述用户告警;若否,则通过所述握手通信向所述多个内核芯片返回解除锁定信号。
在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:所述确定所述高速缓冲存储器异常并向所述用户告警之后包括:响应于接收到所述用户发送的异常修复信息,通过所述握手通信向所述多个内核芯片发送解除锁定信号并重新接收所述多个内核芯片发送的写请求。
在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:根据用户设置的中断周期对所述高速缓冲存储器进行中断处理并从所述高速缓冲存储器中获取所述缓存行对应的替换信息;将所述替换信息记录到静态随机存取存储器,其中所述替换信息包括缓存行状态和覆盖次数。
在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:向数据块替换装置发送写请求;响应于接收到所述数据块替换装置通过握手通信发送的锁定状态信号,停止处理工作指令;响应于接收到所述数据块替换装置通过所述握手通信发送的解除锁定信号,重新向数据块替换装置发送上一次的写请求;响应于所述数据块替换装置处理所述写请求完成,断开所述握手通信。
在其中一个实施例中,所述计算机程序被处理器执行时实现以下步骤:响应于接收到所述数据块替换装置通过握手通信发送的等待处理信号,确定等待所述数据块替换装置处理所述写请求的等待时间是否大于用户设置的第二时间阈值;若是,则断开所述握手通信。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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 (15)
1.一种数据块替换方法,应用于数据块替换装置,所述方法包括:
响应于同时接收到多个内核芯片发送的多个写请求,确定任务队列是否已满;
若是,则确定一致写请求失败并通过握手通信向所述多个内核芯片返回锁定状态信号;
若否,则根据所述多个写请求生成多个并行报文包并将所述多个并行报文包写入任务队列;
根据高速缓冲存储器中的多个缓存行和所述多个并行报文包对应的多个第一数据块确定多个缓存路径;
根据所述多个缓存路径和所述多个第一数据块替换所述多个缓存行对应的多个第二数据块。
2.根据权利要求1所述的方法,其特征在于,所述根据所述多个写请求生成多个并行报文包并将所述多个并行报文包写入任务队列包括:
确定所述多个写请求对应的请求量是否小于所述任务队列的空闲任务量;
若否,则根据所述写请求生成所述空闲任务量对应的并行报文包并将所述并行报文包写入所述任务队列;
若是,则根据所述多个第一数据块生成多个并行报文包。
3.根据权利要求2所述的方法,其特征在于,所述根据所述写请求生成所述空闲任务量对应的并行报文包并将所述并行报文包写入所述任务队列包括:
根据所述多个写请求确定所述多个内核芯片的优先级并根据所述优先级和所述多个写请求生成所述空闲任务量对应的并行报文包;
将所述空闲任务量对应的并行报文包写入所述任务队列并通过所述握手通信向其余内核芯片发送等待处理信号;
响应于所述任务队列的空闲任务量不小于写入量,根据其余写请求生成其余并行报文包并将所述其余并行报文包写入所述任务队列。
4.根据权利要求1所述的方法,其特征在于,所述根据所述高速缓冲存储器中的多个缓存行和所述多个并行报文包对应的多个第一数据块确定多个缓存路径包括:
根据随机权重从所述高速缓冲存储器中随机确定所述多个缓存行;
根据所述多个缓存行生成总缓存组并根据所述总缓存组和所述多个第一数据块确定所述多个缓存路径。
5.根据权利要求4所述的方法,其特征在于,所述根据所述多个缓存行生成总缓存组并根据所述总缓存组和所述多个第一数据块确定所述多个缓存路径包括:
根据下列公式计算出所述多个缓存行对应的多个引用概率值, 其中b为缓存行,为b被访问的时间,/>为在tbase时刻的CRF值,w为访问频率;
、/>
根据所述总缓存组生成两个第一缓存组并根据所述多个引用概率值计算出所述第一缓存组对应的第一组权重;
根据所述第一缓存组生成两个第二缓存组并根据所述第一组权重计算出所述多个第二缓存组对应的第二组权重;
根据所述多个第二组权重和所述多个第一数据块确定多个第二缓存组对应的多个缓存路径。
6.根据权利要求5所述的方法,其特征在于,所述根据所述多个第二组权重和所述多个第一数据块确定多个第二缓存组对应的多个缓存路径包括:
获取所述多个内核芯片对应的写请求信息并根据所述写请求信息计算出所述多个第一数据块对应的多个块权重,其中所述写请求信息包括请求频率和请求时间;
根据所述多个块权重对所述任务队列中的并行报文包进行重新排序;
根据所述多个第二组权重和所述多个块权重确定所述多个缓存路径。
7.根据权利要求6所述的方法,其特征在于,所述根据所述多个缓存路径和所述多个第一数据块替换所述多个缓存行对应的多个第二数据块包括:
响应于排序完成,根据所述缓存路径从所述第二缓存组中确定目标缓存行并根据所述并行报文包对应的第一数据块替换所述目标缓存行对应的第二数据块;
响应于替换所述第二数据块完成,修改所述目标缓存行对应的随机权重;
重新计算所述目标缓存行对应的引用概率值并修改所述第二缓存组的第二组权重。
8.根据权利要求1所述的方法,其特征在于,所述确定一致写请求失败并通过握手通信向所述多个内核芯片返回所述锁定状态信号之后包括:
根据用户设置的第一时间阈值确定所述任务队列是否依然已满;
若是,则确定所述高速缓冲存储器异常并向所述用户告警;
若否,则通过所述握手通信向所述多个内核芯片返回解除锁定信号。
9.根据权利要求8所述的方法,其特征在于,所述确定所述高速缓冲存储器异常并向所述用户告警之后包括:
响应于接收到所述用户发送的异常修复信息,通过所述握手通信向所述多个内核芯片发送解除锁定信号并重新接收所述多个内核芯片发送的写请求。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据用户设置的中断周期对所述高速缓冲存储器进行中断处理并从所述高速缓冲存储器中获取所述缓存行对应的替换信息;
将所述替换信息记录到静态随机存取存储器,其中所述替换信息包括缓存行状态和覆盖次数。
11.一种数据块替换方法,应用于多个内核芯片,所述方法包括:
向数据块替换装置发送写请求;
响应于接收到所述数据块替换装置通过握手通信发送的锁定状态信号,停止处理工作指令;
响应于接收到所述数据块替换装置通过所述握手通信发送的解除锁定信号,重新向数据块替换装置发送上一次的写请求;
响应于所述数据块替换装置处理所述写请求完成,断开所述握手通信。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
响应于接收到所述数据块替换装置通过握手通信发送的等待处理信号,确定等待所述数据块替换装置处理所述写请求的等待时间是否大于用户设置的第二时间阈值;
若是,则断开所述握手通信。
13.一种应用数据块替换方法的数据块替换装置,其特征在于,所述装置包括:
第一确定模块,响应于同时接收到多个内核芯片发送的多个写请求,确定任务队列是否已满;
返回模块,若是,则用于确定一致写请求失败并通过握手通信向所述多个内核芯片返回锁定状态信号;
生成模块,若否,则用于根据所述多个写请求生成多个并行报文包并将所述多个并行报文包写入任务队列;
第一确定模块,还用于根据高速缓冲存储器中的多个缓存行和所述多个并行报文包对应的多个第一数据块确定多个缓存路径;
替换模块,用于根据所述多个缓存路径和所述多个第一数据块替换所述多个缓存行对应的多个第二数据块。
14.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至12中任一项所述方法的步骤。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至12中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410225603.5A CN117806992B (zh) | 2024-02-29 | 数据块替换方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410225603.5A CN117806992B (zh) | 2024-02-29 | 数据块替换方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117806992A true CN117806992A (zh) | 2024-04-02 |
CN117806992B CN117806992B (zh) | 2024-06-07 |
Family
ID=
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130304990A1 (en) * | 2012-05-08 | 2013-11-14 | International Business Machines Corporation | Dynamic Control of Cache Injection Based on Write Data Type |
CN104834608A (zh) * | 2015-05-12 | 2015-08-12 | 华中科技大学 | 一种异构内存环境下的缓存替换方法 |
CN106250348A (zh) * | 2016-07-19 | 2016-12-21 | 北京工业大学 | 一种基于gpu访存特性的异构多核架构缓存管理方法 |
CN109840216A (zh) * | 2017-11-28 | 2019-06-04 | 华为技术有限公司 | 针对高速缓存的数据处理方法及相关元件、设备、系统 |
WO2019128958A1 (zh) * | 2017-12-29 | 2019-07-04 | 华为技术有限公司 | 缓存替换技术 |
CN111241010A (zh) * | 2020-01-17 | 2020-06-05 | 中国科学院计算技术研究所 | 一种基于缓存划分及回滚的处理器瞬态攻击防御方法 |
CN111651375A (zh) * | 2020-05-22 | 2020-09-11 | 中国人民解放军国防科技大学 | 基于分布式有限目录的多路处理器缓存数据一致性实现方法及系统 |
CN111935727A (zh) * | 2020-07-10 | 2020-11-13 | 展讯半导体(成都)有限公司 | 通信异常处理方法、主节点、室内分布系统及存储介质 |
CN112612727A (zh) * | 2020-12-08 | 2021-04-06 | 海光信息技术股份有限公司 | 一种高速缓存行替换方法、装置及电子设备 |
CN115794682A (zh) * | 2022-11-28 | 2023-03-14 | Oppo广东移动通信有限公司 | 缓存替换方法及装置、电子设备、存储介质 |
CN115809028A (zh) * | 2023-01-19 | 2023-03-17 | 北京象帝先计算技术有限公司 | 一种缓存数据替换方法、装置、图形处理系统及电子设备 |
CN117609110A (zh) * | 2023-12-19 | 2024-02-27 | 北京开源芯片研究院 | 一种缓存方法、高速缓存、电子设备及可读存储介质 |
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130304990A1 (en) * | 2012-05-08 | 2013-11-14 | International Business Machines Corporation | Dynamic Control of Cache Injection Based on Write Data Type |
CN104834608A (zh) * | 2015-05-12 | 2015-08-12 | 华中科技大学 | 一种异构内存环境下的缓存替换方法 |
CN106250348A (zh) * | 2016-07-19 | 2016-12-21 | 北京工业大学 | 一种基于gpu访存特性的异构多核架构缓存管理方法 |
CN109840216A (zh) * | 2017-11-28 | 2019-06-04 | 华为技术有限公司 | 针对高速缓存的数据处理方法及相关元件、设备、系统 |
WO2019128958A1 (zh) * | 2017-12-29 | 2019-07-04 | 华为技术有限公司 | 缓存替换技术 |
CN111241010A (zh) * | 2020-01-17 | 2020-06-05 | 中国科学院计算技术研究所 | 一种基于缓存划分及回滚的处理器瞬态攻击防御方法 |
CN111651375A (zh) * | 2020-05-22 | 2020-09-11 | 中国人民解放军国防科技大学 | 基于分布式有限目录的多路处理器缓存数据一致性实现方法及系统 |
CN111935727A (zh) * | 2020-07-10 | 2020-11-13 | 展讯半导体(成都)有限公司 | 通信异常处理方法、主节点、室内分布系统及存储介质 |
CN112612727A (zh) * | 2020-12-08 | 2021-04-06 | 海光信息技术股份有限公司 | 一种高速缓存行替换方法、装置及电子设备 |
CN115794682A (zh) * | 2022-11-28 | 2023-03-14 | Oppo广东移动通信有限公司 | 缓存替换方法及装置、电子设备、存储介质 |
CN115809028A (zh) * | 2023-01-19 | 2023-03-17 | 北京象帝先计算技术有限公司 | 一种缓存数据替换方法、装置、图形处理系统及电子设备 |
CN117609110A (zh) * | 2023-12-19 | 2024-02-27 | 北京开源芯片研究院 | 一种缓存方法、高速缓存、电子设备及可读存储介质 |
Non-Patent Citations (3)
Title |
---|
OLORODE O等: "Improving Performance in Sub-Block Caches with Optimized Replacement Policies", 《ACM》, 13 May 2015 (2015-05-13) * |
张剑飞;: "多处理器共享缓存设计与实现", 计算机与数字工程, no. 09, 20 September 2008 (2008-09-20) * |
林晓敏;桂婷;乔福明;胡同森;: "多核系统中共享Cache的冒泡替换算法", 微电子学与计算机, no. 04, 5 April 2011 (2011-04-05) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110532205B (zh) | 数据传输方法、装置、计算机设备和计算机可读存储介质 | |
CN107526546B (zh) | 一种Spark分布式计算数据处理方法及系统 | |
US10402114B2 (en) | Information processing system, storage control apparatus, storage control method, and storage control program | |
US20060129763A1 (en) | Virtual cache for disk cache insertion and eviction policies and recovery from device errors | |
CN106527974B (zh) | 一种写数据的方法、设备及系统 | |
CN111324303B (zh) | Ssd垃圾回收方法、装置、计算机设备及存储介质 | |
CA2978927C (en) | Data check method and storage system | |
US10592148B2 (en) | Information processing system, storage control apparatus, storage control method, and storage control program for evaluating access performance to a storage medium | |
CN113535633A (zh) | 一种片上缓存装置和读写方法 | |
CN111563052B (zh) | 降低读延时的缓存方法、装置、计算机设备及存储介质 | |
JP5499987B2 (ja) | 共有キャッシュメモリ装置 | |
CN115794682A (zh) | 缓存替换方法及装置、电子设备、存储介质 | |
CN104778132A (zh) | 一种多核处理器目录缓存替换方法 | |
CN117806992B (zh) | 数据块替换方法、装置、电子设备及存储介质 | |
CN117806992A (zh) | 数据块替换方法、装置、电子设备及存储介质 | |
US10872015B2 (en) | Data storage system with strategic contention avoidance | |
CN116257463A (zh) | 混合存储方法、装置、计算机设备、存储介质 | |
JP5018060B2 (ja) | 情報処理装置および情報処理方法 | |
CN116244219A (zh) | 一种基于raid缓存状态的落盘方法及系统 | |
KR102516882B1 (ko) | 캐시 관리 방법 및 이를 위한 컴퓨팅 장치 | |
KR20090053164A (ko) | 상태 정보를 관리하는 플래시 메모리 제어 장치 및 방법 | |
KR100900012B1 (ko) | 정보 처리 시스템, 정보 처리 기판, 및 캐시 태그 및스누프 태그의 갱신 방법 | |
JP6502879B2 (ja) | 記憶装置 | |
US6546501B1 (en) | Cache memory apparatus and computer readable recording medium on which a program for controlling a cache memory is recorded | |
CN112988037A (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 | ||
GR01 | Patent grant |