CN116257463A - 混合存储方法、装置、计算机设备、存储介质 - Google Patents
混合存储方法、装置、计算机设备、存储介质 Download PDFInfo
- Publication number
- CN116257463A CN116257463A CN202310005489.0A CN202310005489A CN116257463A CN 116257463 A CN116257463 A CN 116257463A CN 202310005489 A CN202310005489 A CN 202310005489A CN 116257463 A CN116257463 A CN 116257463A
- Authority
- CN
- China
- Prior art keywords
- cache
- space
- buffer
- address
- buffer space
- 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
- 238000000034 method Methods 0.000 title claims abstract description 46
- 239000000872 buffer Substances 0.000 claims abstract description 186
- 238000004590 computer program Methods 0.000 claims abstract description 22
- 238000013507 mapping Methods 0.000 claims abstract description 13
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 5
- 230000003139 buffering effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- 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
- 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
技术领域
本申请涉及计算机技术领域,特别是涉及一种混合存储方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
高速缓存(High-speed Cache,简称Cache)是硬件逻辑中常见的单元,用于暂存数据、指令、常数等信息,良好的Cache设计,既可以大大提高访问存储器的效率,也可以显著减小存储带宽的压力。
传统技术中,如果读写类型的高速缓存在失配(miss)状态,那么需要把该缓存行的脏(dirty)数据写到外部存储器中,然后从外部存储器中读取新的数据更新该缓存行。但是,由于缓存行数量有限,一些重要的数据一旦被替换出去,再次被访问的时候将不得不从外部读取,造成较长的延时。
发明内容
基于此,有必要针对上述技术问题,提供一种能够避免重要数据被替换的可能性,提高读写效率的混合存储方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种混合存储方法,所述方法包括:
接收待处理访问指令;所述待处理访问指令携带空间标识;
当所述空间标识为缓冲模式时,根据所述待处理访问指令进行空间映射得到缓冲空间地址,根据所述缓冲空间地址在缓冲空间中进行数据操作;所述缓冲空间是对缓存空间进行划分得到的;
当所述空间标识为缓存标识时,计算所述待处理访问指令对应的缓存空间地址,并根据所述缓存空间地址在所述目标缓存空间中进行数据操作。
在其中一个实施例中,所述缓冲空间的划分方式,包括:
接收驱动指令;
根据所述驱动指令对所述缓存空间进行划分,得到所述缓冲空间。
在其中一个实施例中,所述根据所述待处理访问指令进行空间映射得到缓冲空间地址,根据所述缓冲空间地址在缓冲空间中进行数据操作,包括:
判断所述缓冲空间地址是否越界;
当所述缓冲空间地址越界时,重新计算所述待处理访问指令对应的所述缓存空间地址,并根据所述缓存空间地址在所述缓存空间中进行数据操作;
当所述缓冲空间地址未越界时,根据所述缓冲空间地址在所述缓冲空间中进行数据操作。
在其中一个实施例中,所述根据所述缓存空间地址在所述目标缓存空间中进行数据操作,包括:
读取与所述缓存空间地址对应的关联信息;
将所述关联信息与所述缓存空间地址进行匹配,得到匹配结果;
根据所述匹配结果以及所述缓存空间地址,在所述目标缓存空间中进行数据操作。
在其中一个实施例中,所述根据所述匹配结果以及所述缓存空间地址,在所述缓存空间中进行数据操作,包括:
当所述匹配结果为匹配时,根据所述缓存空间地址在所述目标缓存空间中进行数据操作;
当所述匹配结果为不匹配时,基于缓存类型,根据所述缓存空间地址在所述目标缓存空间中进行数据操作。
在其中一个实施例中,所述基于缓存类型,根据所述缓存空间地址在所述缓存空间中进行数据操作,包括:
当所述缓存类型为读写类型的缓存时,将所述缓存空间地址中的脏数据信息输出,从外部存储空间读取目标数据,并将所述目标数据存储到所述缓存空间地址,并根据所述缓存空间地址在所述目标缓存空间中进行数据操作;
当所述缓存类型为读类型的缓存时,读取所述目标数据,并将所述目标数据存储到所述缓存空间地址,并根据所述缓存空间地址在所述目标缓存空间中进行数据操作。
第二方面,本申请还提供了一种混合存储装置,所述装置包括:
接收模块,用于接收待处理访问指令;所述待处理访问指令携带空间标识;
缓冲操作模块,用于当所述空间标识为缓冲模式时,根据所述待处理访问指令进行空间映射得到缓冲空间地址,根据所述缓冲空间地址在缓冲空间中进行数据操作;所述缓冲空间是对缓存空间进行划分得到的;
缓存操作模块,用于当所述空间标识为缓存标识时,计算所述待处理访问指令对应的缓存空间地址,并根据所述缓存空间地址在所述目标缓存空间中进行数据操作。
第三方面,本申请还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。
第四方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
第五方面,本申请还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法的步骤。
上述混合存储方法、装置、计算机设备、存储介质和计算机程序产品,缓存根据待处理访问指令所携带的空间标识,到对应的存储空间中执行对应的数据操作,由于缓冲空间中的重要数据不必被替换出去,因此能够避免数据被替换到外部存储器之后再次访问造成的性能损失。其次,在硬件上只增加了一套BUF_CTRL的管理机制,成本开销小。
附图说明
图1为一个实施例中高速缓存的基本逻辑示意图;
图2为一个实施例中混合存储方法的流程示意图;
图3为一个实施例中的空间划分示意图;
图4为一个实施例中应用于高速缓存的混合存储过程示意图;
图5为一个实施例中应用于混合指令缓存的混合存储过程示意图;
图6为一个实施例中混合存储装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
传统的高速缓存,每个时钟周期(cycle)只能处理一次匹配检测,使用LRU(LeastRecently Used,最近最少使用策略)等类似的替换算法进行分配和替换。但是由于缓存行数量有限,一些重要的数据一旦被替换出去,再次被访问的时候不得不从外部读取,造成较长的延时。图1是高速缓存的基本逻辑示意图,其中包括缓存空间(CAM)、匹配控制逻辑(HIT_TST)、Tag单元(TAG)等部分,缓存空间一般划分为多行缓存行(cache line)的形式,由Tag单元进行管理,而每次选择合适缓存行进行匹配、替换和读写,是由匹配控制逻辑决定的。
在这种结构下,操作过程为:外部模块发送一个读写请求,由HIT_TST模块从TAG中读取Tag信息进行hit/miss测试,如果测试结果为匹配(hit)状态,那么更新该Tag信息,并从CRAM中读写相应的缓存行数据;如果测试结果是失配(miss)状态,那么根据优先级选择一条缓存行,并更新Tag信息。如果是读写类型的高速缓存,那么需要把该缓存行的脏(dirty)数据写到外部存储器中,然后从外部存储器中读取新的数据更新该缓存行。由上可知,高速缓存对于失配情况,将把已有的数据替换出去。如果该数据优先级别较高,下次再次访问的时候,高速缓存将不得不从外部存储器读取,造成性能的下降。
因此,为了把重要的数据尽量保持在缓存中,本申请提供了一种混合存储方法,如图2所示,以该方法应用于缓存为例进行说明,需要说明的一点是,本申请中的缓存可以但不局限于高速缓存、指令缓存和UAV缓存(Unordered Access View,无序访问视图),具体包括以下步骤:
S202,接收待处理访问指令;待处理访问指令携带空间标识。
其中,空间标识是指待处理访问指令所携带的,用于区分访问模式的标识。示例性的,如果空间标识为缓冲模式,表示将从缓冲空间中进行对应的数据操作,如果空间标识为缓存模式,则表示将从缓存空间中进行对应的数据操作。
可选地,可以在待处理访问指令中设置1bit为空间标识,当缓存接收到待处理访问指令时,根据待处理访问指令中的空间标识到对应的存储空间进行对应的数据操作。
S204,当空间标识为缓冲模式时,根据待处理访问指令进行空间映射得到缓冲空间地址,根据缓冲空间地址在缓冲空间中进行数据操作;缓冲空间是对缓存空间进行划分得到的。
其中,缓冲空间是指对原始缓存空间进行划分后得到的,用于存储预设信息的空间。可选地,其可以是根据预设划分规则进行划分得到的,例如存储指令的优先级、指令的读写次数的频率等。需要说明的一点是,缓冲空间中的数据不必被替换出去。
示例性的,结合图3所示,图3为一个实施例中的空间划分示意图,缓存空间被分为很多缓存行,缓存空间进行划分之后,可以得到缓冲空间以及目标缓存空间。由于缓冲空间是按照预设划分规则进行划分后得到的,因此缓冲空间可以根据需求动态调整,如果将缓存空间都划分为目标缓存空间,那么退化为普通的缓存;如果将缓存空间都划分为缓冲空间,那么它将成为一个缓冲空间来使用。
示例性的,当空间标识为缓冲模式时,当前的待处理访问指令送入BUF_CTRL模块(缓冲空间控制模块)进行地址映射操作,得到与待处理访问指令对应的缓冲空间地址,并进入缓冲空间进行读写操作,最后通过输出子模块返回结果。
S206,当空间标识为缓存标识时,计算待处理访问指令对应的缓存空间地址,并根据缓存空间地址在目标缓存空间中进行数据操作。
示例性的,当空间标识为缓冲模式时,当前的待处理访问指令送入HIT_TST模块(匹配模块)进行地址映射操作,得到与待处理访问指令对应的缓存空间地址,并根据缓存空间地址进入目标缓存空间进行读写操作,最后通过输出子模块返回结果。
上述混合存储方法中,缓存根据待处理访问指令所携带的空间标识,到对应的存储空间中执行对应的数据操作,由于缓冲空间中的重要数据不必被替换出去,因此能够避免数据被替换到外部存储器之后再次访问造成的性能损失。其次,在硬件上只增加了一套BUF_CTRL的管理机制,成本开销小。
在其中一个实施例中,缓冲空间的划分方式,包括:接收驱动指令;根据驱动指令对缓存空间进行划分,得到缓冲空间。
示例性的,外部驱动根据需求设置缓冲空间的大小,然后生成对应的驱动指令并将驱动指令发送到缓存,缓存会根据驱动指令对缓存空间进行划分,得到缓冲空间。
示例性的,以混合式指令缓存为例,在某个任务中包含VS(Vertex Shader,顶点着色器)、HS(hull Shader,外壳着色器)、DS(Domain Sharder,域着色器)、GS(geometryShader,几何着色器)、CS(compute Shader,计算着色器)、PS(pixel Shader,像素着色器)等类型,其中PS指令的优先级最高,因此将PS指令存储在缓冲空间中。在本实施例中,MIX_IC包含有64条缓存行,其中每行可以缓存32条指令。假设PS的指令共有180条,那么可以分配6行缓存行作为缓冲空间,这是由于32*6>180。
在上述实施例中,缓存根据实际需求对缓存空间进行划分,能够实现对缓冲空间的动态调整。
在其中一个实施例中,根据所述待处理访问指令进行空间映射得到缓冲空间地址,根据所述缓冲空间地址在缓冲空间中进行数据操作,包括:判断缓冲空间地址是否越界;当缓冲空间地址越界时,重新计算待处理访问指令对应的缓存空间地址,并根据缓存空间地址在缓存空间中进行数据操作;当缓冲空间地址未越界时,根据缓冲空间地址在缓冲空间中进行数据操作。
可选地,可以通过缓存空间中的OOR(Out-of-range,越界判断模块)对缓存空间地址是否越界进行判断。当缓冲空间地址越界时,重新计算待处理访问指令对应的缓存空间地址,即将其作为缓存标识对应的处理步骤进行处理。当缓冲空间地址未越界时,则根据缓冲空间地址在缓冲空间中进行数据操作。
示例性的,若缓冲空间为0~4行,而计算得到的缓冲空间地址为5,此时判定缓冲空间地址越界,那么还是使用缓存模型进行处理,即将其作为缓存标识对应的处理步骤进行处理。
在上述实施例中,对缓冲空间是否越界进行判断能够避免无法进行数据操作而导致异常情况的出现。
在其中一个实施例中,根据缓存空间地址在目标缓存空间中进行数据操作,包括:读取与缓存空间地址对应的关联信息;将关联信息与缓存空间地址进行匹配,得到匹配结果;根据匹配结果以及缓存空间地址,在目标缓存空间中进行数据操作。
其中,关联信息是指用于表征缓存空间中数据的状态,例如缓存空间的ID号(数据在缓存空间中的缓存行的标号)、是否命中的状态以及是否锁定的状态。
具体地,缓存读取与当前待处理访问指令的地址关联信息,并将地址关联信息与当前待处理访问指令进行匹配,得到对应的匹配结果。然后根据对应匹配结果,在目标缓存空间中进行数据操作。例如,当匹配结果为匹配时,直接在目标缓存空间中进行数据操作;当匹配结果为失配时,基于缓存类型,根据缓存空间地址在缓存空间中进行数据操作。示例性的,缓存可以通过Tag单元的信息进行匹配,得到匹配结果。
可选地,将匹配结果输出到Pending_Fifo(队列控制单元),Pending_Fifo会按照先进先出的顺序根据匹配结果进行对应的操作。例如,Pending_Fifo执行匹配结果为hit(匹配)的任务时,根据缓存空间地址在缓存空间中进行数据操作;当执行匹配结果为miss(失配)的任务时,需要根据基于当前缓存的缓存类型,根据缓存空间地址在目标缓存空间中进行数据操作。
进一步的,基于缓存类型,根据缓存空间地址在缓存空间中进行数据操作,包括:当缓存类型为读写类型的缓存时,将缓存空间地址中的脏数据信息输出,从外部存储空间读取目标数据,并将目标数据存储到缓存空间地址,并根据缓存空间地址在目标缓存空间中进行数据操作;当缓存类型为读类型的缓存时,从外部存储空间读取目标数据,并将目标数据存储到缓存空间地址,并根据缓存空间地址在目标缓存空间中进行数据操作。
其中,外部存储空间是指当前缓存空间之外的存储空间。示例性的,若与当前缓存相连接的内存,则内存为外部存储空间;如果当前是多级缓存相连接的情况,则向下一级缓存读取目标数据。例如,当前是由L0、L1以及L2三种缓存相连接,如果当前缓存是L0级的缓存,则向L1级的缓存读取目标数据。在其他实施例中,外部存储空间可以是寄存器、闪存等,在本实施例中不作具体限定。
可选地,当缓存类型为读写类型的缓存时,将缓存空间地址中的脏数据信息输出,脏数据信息是由于该缓存空间数据被更新以后,没有输出暂存在缓存空间中,当发生不匹配时候,需要写出到外部。然后从外部存储空间读取目标数据;这一过程可能较长,在Pending_Fifo中的对应请求将被挂起,直到目标数据返回,才能根据存储空间在目标缓存空间进行数据操作,也就是读取数据。
可选地,当缓存类型为读类型的缓存时,从外部存储空间读取目标数据,并将目标数据存储到缓存空间地址,并根据缓存空间地址在目标缓存空间中进行数据操作。
在上述实施例中,在不匹配的情况下,可以结合缓存的类型进行数据操作,避免出现数据不匹配。
在一个示例性实施例中,结合图4所示,图4为一个实施例中应用于高速缓存的混合存储过程示意图,具体过程如下:
(1)外部驱动根据需求设置buffer空间的大小。如果高速缓存中包含N个缓存行,那么可以设置0~N个缓存行作为buffer空间。0表示所有缓存行均作为cache使用;N表示所有缓存行均作为buffer使用,此时整个缓存将仅作为一个缓冲区;
(2)每个输入的请求req,即待处理访问指令,将增加1bit表示访问的模式,如果是buffer模式,那么进入(3),如果是cache模式,即缓存模式,那么进入(5);
(3)由于buffer空间有限,所以还需要检查当前的访问地址是否越界(Out-of-range,OOR),如果超过当前buffer空间,那么还是使用cache模式执行,进入(5);
(4)在buffer模式下,也就是缓冲模式,当前的访问送入BUF_CTRL模块,进行地址映射操作,得到该访问对应的缓存行位置,并进入CRAM中的buffer空间进行读写操作,最后通过输出子模块返回结果;
(5)在cache模式下,HIT_TST计算请求的虚拟地址,读取TAG单元的信息,也就是关联信息进行匹配检测操作;
(6)得到匹配(hit)或者失配(miss)的检测结果后,HIT_TST更新TAG单元,输出匹配结果到Pending_Fifo;
(7)按照先进先出顺序从Pending_Fifo获得匹配结果,并对CRAM中相应的缓存行进行读写数据操作;
(8)对于失配(miss)的情况,需要把脏(dirty)的缓存行输出,然后从外部存储器读取新的数据;这一过程可能较长,在Pending_Fifo中的对应请求将被挂起,直到外部数据返回;
(9)外部数据返回后,更新相应的缓存行,并唤起在Pending_Fifo中被挂起的对应请求,从而可以继续执行;
(10)在req完成CRAM的读写操作后,由Out子模块返回读写结果。
在上述实施例中,由于缓冲空间中的重要数据不必被替换出去,因此能够避免数据被替换到外部存储器之后再次访问造成的性能损失,并且只增加一套BUF_CTRL的管理机制,因此本申请的硬件开销较小。
在一个示例性实施例中,提供了一种应用于混合指令缓存的混合存储方法,指令缓存(Instruction Cache,IC)是CPU、GPU等芯片的重要部件,包含多条缓存行。在本实施例中,MIX_IC包含有64条缓存行,每行可以缓存32条指令。某个任务中包含VS、HS、DS、PS等类型,PS的指令共有180条,那么可以分配6行缓存行作为buffer(32*6>180),其它的缓存行仍然作为cache工作。其混合式指令缓存MIX_IC如图5所示。
在程序执行前,由驱动设置当前混合式指令缓存中的buffer的大小,确定为6行缓存行作为buffer。为了提高buffer使用效率,驱动可以把PS程序的指令也预先装入到buffer中。在线程执行的时候,对于每一个指令读取请求,MIX_IC将判断当前的指令请求类型,如果是PS指令,那么进入buffer路径,从buffer中直接读取,如果是其它类型的指令请求,那么进入cache路径,经过HIT_TST模块进行缓存行的匹配判断,进入Pending_Fifo依次从cache中读取指令;如果是失配的指令,还需要从外部的存储器中装载指令。由于指令缓存仅管理只读的指令数据,所以没有dirty数据写出到外部存储器的过程。
在本实施例中,这种混合式指令缓存可以保证重要的指令放在buffer空间中,防止由于失配被替换出去,提高了指令缓存的性能。
在另一个示例性实施例中,提供了一种应用于混合式UAV缓存的存储方法,将UC(Uav Cache)扩展成为混合式UAC缓存(Mix_UC),划分一部分缓存行作为buffer模式,以便将重要的UAV数据缓存在buffer空间中,这样就能够从buffer中直接读写,避免了被替换出去。同时需要指定某些UAV的访问模式,扩展指令为:
LOAD/STORE Rst[.xyzw],Rsrc,U#,coord#,mode
其中,mode:表示该U#缓存在Mix_UC中的区域,可能为buffer或者cache;
这样,可以使用buffer模式,来保证那些重要的数据一直存储在Mix_UC中:
STORE R0.xyz, R4,U0,coord2D,buffer
LOAD R0.xyz, R4,U0,coord2D,buffer
Mix_UC是一种可读可写的高速缓存,其结构与图4类似,首先由驱动设置当前buffer的缓存行数,例如可以将40个缓存行设置为缓冲空间。在执行中对于模式为buffer的Store命令,将把数据记录在buffer中,保证数据不会被替换出去,当线程发出模式为buffer的Load命令时候,则从buffer中直接读取。由于UAV缓存地址访问的随机性,并不能保证buffer能够装载所有的重要数据,所以当访问地址超过了buffer的空间大小时候,将依然进入cache部分进行常规的寻址和缓存行匹配操作,保证了与cache模式的UAV访问相兼容。但是如果越界的情况经常发生,会导致UAV访问性能会有所下降,所以驱动需要预先估计出当前程序的UAV访问情况,合理设置buffer空间。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的混合存储方法的混合存储装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个混合存储装置实施例中的具体限定可以参见上文中对于混合存储方法的限定,在此不再赘述。
在一个实施例中,如图6所示,提供了一种混合存储装置,包括:接收模块100、缓冲操作模块200和缓存操作模块300,其中:
接收模块100,用于接收待处理访问指令;待处理访问指令携带空间标识。
缓冲操作模块200,用于当空间标识为缓冲模式时,根据待处理访问指令进行空间映射得到缓冲空间地址,根据缓冲空间地址在缓冲空间中进行数据操作;缓冲空间是对目标缓存空间进行划分得到的。
缓存操作模块300,用于当空间标识为缓存标识时,计算待处理访问指令对应的缓存空间地址,并根据缓存空间地址在缓存空间中进行数据操作。
在一个实施例中,上述装置还包括:
指令接收模块,用于接收驱动指令。
划分模块,用于根据驱动指令对缓存空间进行划分,得到缓冲空间。
在一个实施例中,上述缓冲操作模块包括:
越界判断单元,用于判断缓冲空间地址是否越界。
第一操作单元,用于当缓冲空间地址越界时,重新计算待处理访问指令对应的缓存空间地址,并根据缓存空间地址在缓存空间中进行数据操作。
第二操作单元,用于当缓冲空间地址未越界时,根据缓冲空间地址在缓冲空间中进行数据操作。
在一个实施例中,上述缓存操作模块300还包括:
读取单元,用于读取与缓存空间地址对应的关联信息。
匹配单元,用于将关联信息与缓存空间地址进行匹配,得到匹配结果。
缓存操作单元,用于根据匹配结果以及缓存空间地址,在目标缓存空间中进行数据操作。
在一个实施例中,上述缓存操作单元包括:
第三操作子单元,用于当匹配结果为匹配时,根据缓存空间地址在目标缓存空间中进行数据操作。
第四操作子单元,用于当匹配结果为不匹配时,基于缓存类型,根据目标缓存空间地址在缓存空间中进行数据操作。
在一个实施例中,上述第四操作子单元包括:
读写操作孙单元,用于当缓存类型为读写类型的缓存时,将缓存空间地址中的脏数据信息输出,从外部存储空间读取目标数据,并将目标数据存储到缓存空间地址,并根据缓存空间地址在目标缓存空间中进行数据操作。
只读操作孙单元,用于当缓存类型为读类型的缓存时,读取目标数据,并将目标数据存储到缓存空间地址,并根据缓存空间地址在目标缓存空间中进行数据操作。
上述混合存储装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述任意一个实施例中的方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任意一个实施例中的方法的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任意一个实施例中的方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种混合存储方法,其特征在于,所述方法包括:
接收待处理访问指令;所述待处理访问指令携带空间标识;
当所述空间标识为缓冲模式时,根据所述待处理访问指令进行空间映射得到缓冲空间地址,根据所述缓冲空间地址在缓冲空间中进行数据操作;所述缓冲空间是对缓存空间进行划分得到的;
当所述空间标识为缓存标识时,计算所述待处理访问指令对应的缓存空间地址,并根据所述目标缓存空间地址在所述缓存空间中进行数据操作。
2.根据权利要求1所述的方法,其特征在于,所述缓冲空间的划分方式,包括:
接收驱动指令;
根据所述驱动指令对所述缓存空间进行划分,得到所述缓冲空间。
3.根据权利要求1所述的方法,其特征在于,所述根据所述待处理访问指令进行空间映射得到缓冲空间地址,根据所述缓冲空间地址在缓冲空间中进行数据操作,包括:
判断所述缓冲空间地址是否越界;
当所述缓冲空间地址越界时,重新计算所述待处理访问指令对应的所述缓存空间地址,并根据所述缓存空间地址在所述缓存空间中进行数据操作;
当所述缓冲空间地址未越界时,根据所述缓冲空间地址在所述缓冲空间中进行数据操作。
4.根据权利要求1所述的方法,其特征在于,所述根据所述缓存空间地址在所述目标缓存空间中进行数据操作,包括:
读取与所述缓存空间地址对应的关联信息;
将所述关联信息与所述缓存空间地址进行匹配,得到匹配结果;
根据所述匹配结果以及所述缓存空间地址,在所述目标缓存空间中进行数据操作。
5.根据权利要求4所述的方法,其特征在于,所述根据所述匹配结果以及所述缓存空间地址,在所述目标缓存空间中进行数据操作,包括:
当所述匹配结果为匹配时,根据所述缓存空间地址在所述目标缓存空间中进行数据操作;
当所述匹配结果为不匹配时,基于缓存类型,根据所述缓存空间地址在所述目标缓存空间中进行数据操作。
6.根据权利要求5所述的方法,其特征在于,所述基于缓存类型,根据所述缓存空间地址在所述目标缓存空间中进行数据操作,包括:
当所述缓存类型为读写类型的缓存时,将所述缓存空间地址中的脏数据信息输出,从外部存储空间读取目标数据,并将所述目标数据存储到所述缓存空间地址,并根据所述缓存空间地址在所述目标缓存空间中进行数据操作;
当所述缓存类型为读类型的缓存时,读取所述目标数据,并将所述目标数据存储到所述缓存空间地址,并根据所述缓存空间地址在所述目标缓存空间中进行数据操作。
7.一种混合存储装置,其特征在于,所述装置包括:
接收模块,用于接收待处理访问指令;所述待处理访问指令携带空间标识;
缓冲操作模块,用于当所述空间标识为缓冲模式时,根据所述待处理访问指令进行空间映射得到缓冲空间地址,根据所述缓冲空间地址在缓冲空间中进行数据操作;所述缓冲空间是对缓存空间进行划分得到的;
缓存操作模块,用于当所述空间标识为缓存标识时,计算所述待处理访问指令对应的缓存空间地址,并根据所述缓存空间地址在所述目标缓存空间中进行数据操作。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310005489.0A CN116257463A (zh) | 2023-01-04 | 2023-01-04 | 混合存储方法、装置、计算机设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310005489.0A CN116257463A (zh) | 2023-01-04 | 2023-01-04 | 混合存储方法、装置、计算机设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116257463A true CN116257463A (zh) | 2023-06-13 |
Family
ID=86685484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310005489.0A Pending CN116257463A (zh) | 2023-01-04 | 2023-01-04 | 混合存储方法、装置、计算机设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116257463A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116303135A (zh) * | 2023-02-24 | 2023-06-23 | 格兰菲智能科技有限公司 | 任务数据的装载方法、装置和计算机设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110320730A1 (en) * | 2010-06-23 | 2011-12-29 | International Business Machines Corporation | Non-blocking data move design |
CN107463510A (zh) * | 2017-08-21 | 2017-12-12 | 北京工业大学 | 一种面向高性能的异构多核共享cache缓冲管理方法 |
CN110990300A (zh) * | 2019-12-20 | 2020-04-10 | 山东方寸微电子科技有限公司 | 一种基于使用热度的高速缓冲存储器替换方法及系统 |
CN113760787A (zh) * | 2021-09-18 | 2021-12-07 | 成都海光微电子技术有限公司 | 多级高速缓存数据推送系统、方法、设备和计算机介质 |
-
2023
- 2023-01-04 CN CN202310005489.0A patent/CN116257463A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110320730A1 (en) * | 2010-06-23 | 2011-12-29 | International Business Machines Corporation | Non-blocking data move design |
CN107463510A (zh) * | 2017-08-21 | 2017-12-12 | 北京工业大学 | 一种面向高性能的异构多核共享cache缓冲管理方法 |
CN110990300A (zh) * | 2019-12-20 | 2020-04-10 | 山东方寸微电子科技有限公司 | 一种基于使用热度的高速缓冲存储器替换方法及系统 |
CN113760787A (zh) * | 2021-09-18 | 2021-12-07 | 成都海光微电子技术有限公司 | 多级高速缓存数据推送系统、方法、设备和计算机介质 |
Non-Patent Citations (1)
Title |
---|
刘翠梅;杨璇;贾刚勇;韩光洁;: "一种代价感知的细粒度闪存缓冲区替换算法", 小型微型计算机系统, no. 05, 14 May 2019 (2019-05-14) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116303135A (zh) * | 2023-02-24 | 2023-06-23 | 格兰菲智能科技有限公司 | 任务数据的装载方法、装置和计算机设备 |
CN116303135B (zh) * | 2023-02-24 | 2024-03-22 | 格兰菲智能科技有限公司 | 任务数据的装载方法、装置和计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108363620B (zh) | 提供虚拟内存容量的内存模块及其操作方法 | |
US20120246410A1 (en) | Cache memory and cache system | |
US7949839B2 (en) | Managing memory pages | |
US10162554B2 (en) | System and method for controlling a programmable deduplication ratio for a memory system | |
US20070016719A1 (en) | Memory device including nonvolatile memory and memory controller | |
US11314689B2 (en) | Method, apparatus, and computer program product for indexing a file | |
US20180081567A1 (en) | Buffer allocation and memory management using mapping table | |
US20180150219A1 (en) | Data accessing system, data accessing apparatus and method for accessing data | |
CN110413211B (zh) | 存储管理方法、电子设备以及计算机可读介质 | |
US8185687B2 (en) | Semiconductor storage device and method of controlling semiconductor storage device | |
JP5730126B2 (ja) | データ供給装置、キャッシュ装置、データ供給方法、キャッシュ方法およびプログラム | |
US7260674B2 (en) | Programmable parallel lookup memory | |
JP3900025B2 (ja) | 共有キャッシュメモリのヒット判定制御方法及び共有キャッシュメモリのヒット判定制御方式 | |
US20160179580A1 (en) | Resource management based on a process identifier | |
CN116257463A (zh) | 混合存储方法、装置、计算机设备、存储介质 | |
US20090150642A1 (en) | Indexing Page Attributes | |
US8994740B2 (en) | Cache line allocation method and system | |
US10191846B2 (en) | Cache memory for particular data | |
US6518973B1 (en) | Method, system, and computer program product for efficient buffer level management of memory-buffered graphics data | |
CN108519860B (zh) | 一种ssd读命中的处理方法和装置 | |
CN116400852A (zh) | 固态硬盘写性能的优化方法、装置、计算机设备及存储介质 | |
US11176039B2 (en) | Cache and method for managing cache | |
US20050138264A1 (en) | Cache memory | |
US8756193B2 (en) | System and method for persisting object pointers | |
US20160140034A1 (en) | Devices and methods for linked list array hardware implementation |
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 |