CN115543181A - 访问存储器中数据的方法、电子设备及存储介质 - Google Patents
访问存储器中数据的方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115543181A CN115543181A CN202110739406.1A CN202110739406A CN115543181A CN 115543181 A CN115543181 A CN 115543181A CN 202110739406 A CN202110739406 A CN 202110739406A CN 115543181 A CN115543181 A CN 115543181A
- Authority
- CN
- China
- Prior art keywords
- reading
- scheme
- read
- target
- schemes
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 133
- 238000000034 method Methods 0.000 title claims abstract description 94
- 238000010276 construction Methods 0.000 claims description 6
- 230000001360 synchronised effect Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 2
- 230000000694 effects Effects 0.000 claims 1
- 101100325756 Arabidopsis thaliana BAM5 gene Proteins 0.000 description 16
- 101150046378 RAM1 gene Proteins 0.000 description 16
- 101100476489 Rattus norvegicus Slc20a2 gene Proteins 0.000 description 16
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 5
- 102100031584 Cell division cycle-associated 7-like protein Human genes 0.000 description 4
- 101000777638 Homo sapiens Cell division cycle-associated 7-like protein Proteins 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- HRANPRDGABOKNQ-ORGXEYTDSA-N (1r,3r,3as,3br,7ar,8as,8bs,8cs,10as)-1-acetyl-5-chloro-3-hydroxy-8b,10a-dimethyl-7-oxo-1,2,3,3a,3b,7,7a,8,8a,8b,8c,9,10,10a-tetradecahydrocyclopenta[a]cyclopropa[g]phenanthren-1-yl acetate Chemical compound C1=C(Cl)C2=CC(=O)[C@@H]3C[C@@H]3[C@]2(C)[C@@H]2[C@@H]1[C@@H]1[C@H](O)C[C@@](C(C)=O)(OC(=O)C)[C@@]1(C)CC2 HRANPRDGABOKNQ-ORGXEYTDSA-N 0.000 description 1
- 101100328887 Caenorhabditis elegans col-34 gene Proteins 0.000 description 1
- RRLHMJHRFMHVNM-BQVXCWBNSA-N [(2s,3r,6r)-6-[5-[5-hydroxy-3-(4-hydroxyphenyl)-4-oxochromen-7-yl]oxypentoxy]-2-methyl-3,6-dihydro-2h-pyran-3-yl] acetate Chemical compound C1=C[C@@H](OC(C)=O)[C@H](C)O[C@H]1OCCCCCOC1=CC(O)=C2C(=O)C(C=3C=CC(O)=CC=3)=COC2=C1 RRLHMJHRFMHVNM-BQVXCWBNSA-N 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 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
- 230000009467 reduction Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例涉及存储器技术领域,公开了一种访问存储器中数据的方法、电子设备及存储介质,在接收多路读取请求后,依次确定各路读取请求的目标存储库的读取方案;其中,在每确定一路读取请求的目标存储库的读取方案后,将确定的读取方案所涉及读取的库均作为目标库,并在各存储库的所有读取方案中,将涉及读取任一目标库的读取方案标识为不可用,各路读取请求的目标存储库的读取方案均在可用的读取方案中选择;根据确定的各路读取请求的目标存储库的读取方案,进行数据的同步读取,从而实现对存储器进行多路读取的访问。本方案可有效解决由于需要采用真值表记录所有读取方案组合,而导致真值表较大,对资源消耗较多的问题。
Description
技术领域
本发明涉及存储器技术领域,特别涉及一种访问存储器中数据的方法、电子设备及存储介质。
背景技术
现有技术普遍是通过编码方法由单端口存储器集合构造多端口存储器,通过算法逻辑为输入的k路读取请求,分配所需要读取的存储库和编码库的具体存储器,再通过有限域的减法,计算出所需要读取的数据,并作为结果输出。
现有的技术方法中使用真值表,为k路读取分配读取方案,由于真值表需要包含所有读取情况的方案组合,所以对于k较大或编码复杂的编码方法,真值表将会非常巨大,需要消耗非常多的资源。例如,在4×4存储库实现4路读取的编码方法中,4路读取的所有情况有164=65536种,需要构建65536行的真值表,资源消耗巨大。
发明内容
本发明实施方式的目的在于提供一种访问存储器中数据的方法、电子设备及存储介质,能够有效解决多端口存储器进行多路读取时,由于需要采用真值表记录所有读取方案组合,而导致真值表较大,对资源消耗较多的问题。
为解决上述技术问题,本发明的实施方式提供了一种访问存储器中数据的方法,所述存储器包含多个存储库和多个编码库,所述编码库用于存储所述存储库中的数据的编码版本;每个所述存储库预设有多种读取方案;所述读取方案涉及读取至少一个所述存储库和/或至少一个所述编码库;所述方法包括:
接收多路读取请求;
依次确定各路读取请求的目标存储库的读取方案;其中,在每确定一路读取请求的目标存储库的读取方案后,将所述确定的读取方案所涉及读取的库均作为目标库,并在各存储库的所有读取方案中,将涉及读取任一所述目标库的读取方案标识为不可用,各路读取请求的目标存储库的读取方案均在可用的读取方案中选择;
根据确定的各路读取请求的目标存储库的读取方案,进行数据的同步读取。
本发明的实施方式还提供了一种电子设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的访问存储器中数据的方法。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的访问存储器中数据的方法。
本发明实施方式相对于现有技术而言,在对多路读取请求分配读取方案时,是依次确定各路读取请求的目标存储库的读取方案;其中,在每确定一路读取请求的目标存储库的读取方案后,将确定的读取方案所涉及读取的库均作为目标库,并在各存储库的所有读取方案中,将涉及读取任一目标库的读取方案标识为不可用,各路读取请求的目标存储库的读取方案均在可用的读取方案中选择,从而保证每次为当前读取请求所选择的读取方案与已分配的读取方案不冲突,即二者之间所涉及读取的库中不存在相同的库;根据确定的各路读取请求的目标存储库的读取方案,进行数据的同步读取,从而实现对存储器进行多路读取的访问。本方案由于采用动态分配过程依次为每一路读取请求的目标存储库分配读取方案,分配过程中仅需要知晓每种读取方案涉及读取的库即可,而无需构建包含所有读取方案组合情况的真值表,从而降低了对存储资源的消耗。对多路读取请求分配读取方案,可以采用流水线的逻辑运算,从而达到更快速的读取操作。
附图说明
图1是本发明实施例中基于超图构造法构建的存储器的数据存储结构图;
图2是本发明实施例中基于一维编码方法构建的存储器的数据存储结构图;
图3是本发明实施例中基于二维编码方法构建的存储器的数据存储结构图;
图4是本发明实施例中基于二维编码方法构建的另一存储器的数据存储结构图;
图5是根据本发明实施方式的访问存储器中数据的方法的具体流程图一;
图6是根据本发明实施方式的访问存储器中数据的方法的具体流程图二;
图7是根据本发明实施方式的存储器中编码器的数据存储结构图;
图8是根据本发明实施方式的访问存储器中数据的方法的具体流程图三;
图9是根据本发明实施方式的数据写入的方法的具体流程图;
图10是根据本发明实施方式的存储库中数据写入的过程图;
图11是根据本发明实施方式的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
本发明的一实施方式涉及一种访问存储器中数据的方法,该存储器包含多个存储库和多个编码库,编码库用于存储存储库中的数据的编码版本;每个存储库预设有多种读取方案;读取方案涉及读取至少一个存储库和/或至少一个编码库。其中,存储库和编码库可以但不局限为随机存取存储器(random access memory,RAM),或基于多个RAM构建的存储体。为方便描述,本实施例中均采用一个RAM代表存储库或者编码库,并通过对RAM进行编号,以指代不同的存储库和编码库,例如RAM1为存储库、RAM2为编码库。编码库存储的编码版本可以为对上述多个存储库中至少部分存储库中数据,采用有限域加法进行编码后形成的数据;有限域加法可包括如下方法中的任一种:超图构造法、一维编码方法、二维编码方法以及多维编码方法。以下对这些方法进行介绍说明。
超图构造法,基于超图的点和线,点作为存储库,线作为编码库,构造存储器,图1为10点10线的超图构造法。
一维编码方法,是二维及多维编码方法的基础,通过对一维的存储库进行编码,得到1个编码库,图2为一种一维编码方法。
二维编码方法,通过对二维的存储库进行编码,即将二维的存储库细分为多个一维的存储库,再进行一维的编码方法。图3为4×4存储库实现3路读取的编码方法。图4为4×4存储库实现4路读取的编码方法。
多维编码方法的构造原理,与二维编码方法一致,通过降维的方法来进行编码,多维编码方法的复杂度与维数成正比。
通过冗余的编码库,可以为一组数据(存储库中的数据)提供多种读取方案,根据编码方法的不同,每组数据可以提供的读取方案数也不相同。以图4中4×4存储库实现4路读取的编码方法为例,读取存储库1中的数据有四种读取方案:读取存储库1;读取编码库1+2+3+4和存储库2、3、4;读取编码库1+5+9+13和存储库5、9、13;读取剩余所有的编码库和存储库。由于存储库有16个(16个RAM),所以一共有16×4=64种读取方案。一般来说,对于n个RAM的k路读取的编码方法,一共有n×k种读取方案,且每个RAM的k个读取方案读取的RAM没有重复。
如图5所示,本实施例提供的访问存储器中数据的方法的执行主体可以为存储器的控制器,包括如下步骤。
步骤101:接收多路读取请求。
其中,该多路读取请求可以是外部处理器如多核处理器共享存储器时向存储器的控制器发送的多路读取请求,用于读取存储器中存储库中的数据。该多路读取请求所请求的数据可以是相同存储库中的数据,也可以是不同存储库中的数据。
步骤102:依次确定各路读取请求的目标存储库的读取方案;其中,在每确定一路读取请求的目标存储库的读取方案后,将所述确定的读取方案所涉及读取的库均作为目标库,并在各存储库的所有读取方案中,将涉及读取任一所述目标库的读取方案标识为不可用,各路读取请求的目标存储库的读取方案均在可用的读取方案中选择。
控制器接收到多路读取请求后,依次确定各路读取请求的目标存储库的读取方案。确定过程为:
步骤1,从当前一路读取请求的目标存储库的所有读取方案中,确定一可用的读取方案作为当前一路读取请求的目标存储库的读取方案。
其中,将读取请求所读数据所在的存储库记为相应读取请求的目标存储库。每个目标存储库对应的可用的读取方案是动态变化的。这取决于在前处理的几路读取请求所被分配的读取方案与当前目标存储库的读取方案,在涉及读取的库中是否存在相同的库。如果存在相同库,则包含该相同库的读取方案视为不可用,否则视为可用。在为当前目标存储库选取读取方案时,需从可用读取方案中选取以读取方案,作为当前一路读取请求的目标存储库的读取方案。
步骤2,将确定的读取方案所涉及读取的库均作为目标库,并在各存储库的所有读取方案中,将涉及读取任一目标库的读取方案标识为不可用。
为方便从可用的读取方案中,确定下一路读取请求的目标存储库的读取方案,可以在每确定一路读取请求的目标存储库的读取方案后,对各存储库的所有读取方案中的不可用的读取方案进行更新标识。
具体操作过程为:将针对当前一路读取请求所确定的读取方案所涉及读取的库均作为目标库,对存储器中各存储库的所有读取方案进行遍历,将其中涉及读取任一目标库的读取方案标识为不可用。为了提高标识效率,在遍历各存储库的读取方案时,已被标识为不可用的读取方案将不作为遍历的对象。
步骤103:根据确定的各路读取请求的目标存储库的读取方案,进行数据的同步读取。
具体地,针对读取方案为直接从存储库中读取,则可直接从相应存储库(目标存储库)中读取数据,读取的数据即为读取请求对应的数据。针对读取方案中涉及从编码库中读取,则在从编码库以及存储库读取出数据后,还要对这些库中数据进行逻辑处理,以得到读取请求对应的数据(目标存储库中的数据)。其中,所采用的逻辑处理与编码库采用的编码方法相关。
在一个例子中,当编码库存储的编码版本为对多个存储库中至少部分存储库中数据,采用有限域加法进行编码后形成的数据时,相应地,在根据确定的各路读取请求的目标存储库的读取方案,进行数据的同步读取之后,还包括:
对读取的编码库,以及该编码库对应的多个存储库中的数据执行有限域减法,得到目标存储库的数据。
例如,以图4中4×4存储库实现4路读取的编码方法为例,一路读取请求为读取存储库1中的数据,实施的读取方案为读取编码库1+2+3+4和存储库2、3、4。则对应执行的有限域减法为编码库1+2+3+4中的数据减去存储库2、3、4中的数据,从而得到存储库1中的数据。
与相关技术相比,本实施例在对多路读取请求分配读取方案时,是依次确定各路读取请求的目标存储库的读取方案;其中,在每确定一路读取请求的目标存储库的读取方案后,将确定的读取方案所涉及读取的库均作为目标库,并在各存储库的所有读取方案中,将涉及读取任一目标库的读取方案标识为不可用,各路读取请求的目标存储库的读取方案均在可用的读取方案中选择,从而保证每次为当前读取请求所选择的读取方案与已分配的读取方案不冲突,即二者之间所涉及读取的库中不存在相同的库;根据确定的各路读取请求的目标存储库的读取方案,进行数据的同步读取,从而实现对存储器进行多路读取的访问。本方案由于采用动态分配过程依次为每一路读取请求的目标存储库分配读取方案,分配过程中仅需要知晓每种读取方案涉及读取的库即可,而无需构建包含所有读取方案组合情况的真值表,从而降低了对存储资源的消耗。对多路读取请求分配读取方案,可以采用流水线的逻辑运算,从而达到更快速的读取操作。
本发明的另一实施方式涉及一种访问存储器中数据的方法。在本实施方式中,通过预先构建的第一真值表中,确定当前一路读取请求的目标存储库的读取方案。相应的,如图6所示,上述步骤102可具体包括如下子步骤。
子步骤1021:在预先构建的第一真值表中,选择当前待确定的目标存储库的读取方案;其中,第一真值表用于存储各存储库的所有读取方案,以及各所述读取方案涉及读取的库。
具体地,以4×4的存储库实现4路读取的编码方法为例,每个存储库有4种读取方案。存储库对应16个RAM,编码库对应9个RAM,1-16为存储库的RAM编号,17-25为编码库的RAM编号,编码库的RAM编号对应的具体编码数据如图7所示。表1为针对4×4的存储库实现4路读取的第一真值表。
表1第一真值表
基于表1中的数据,在确定当前一路读取请求的目标存储库为RAM1时,可先从表1中选择出该RAM1对应的所有读取方案。
子步骤1022:在选择的读取方案中,选择任一个可用的读取方案作为当前一路读取请求的目标存储库的读取方案。
例如,当表1中RAM1对应的所有读取方案中,只有方案编号为1、2的读取方案为可用读取方案,则可从这两个读取方案中任选一个可用的读取方案,如方案编号为1的读取方案作为当前一路读取请求的目标存储库的读取方案。
子步骤1021~1022可作为各路读取请求的目标存储库的读取方案均在可用的读取方案中选择的具体实现过程。
子步骤1023:将确定的读取方案所涉及读取的库均作为目标库,并在各存储库的所有读取方案中,将涉及读取任一目标库的读取方案标识为不可用。
例如,当确定表1中RAM1对应的方案编号为1的读取方案作为当前一路读取请求的目标存储库(RAM1)的读取方案后,可以该读取方案涉及读取的RAM集合中任一RAM(仅包含RAM1)作为目标库,查找各存储库中的读取方案中涉及读取RAM1的读取方案。经查找,RAM2的读取方案2、RAM3的读取方案2、RAM4的读取方案2、RAM5的读取方案3、RAM6的读取方案4、RAM7的读取方案4、RAM8的读取方案4、RAM9的读取方案3、RAM10的读取方案4、RAM11的读取方案4、RAM12的读取方案4、RAM13的读取方案3、RAM14的读取方案4、RAM15的读取方案4以及RAM16的读取方案4均涉及读取RAM1。因此将这些读取方案均标识为不可用。
与相关技术相比,本发明实施方式通过预先构建的第一真值表,可以方便选择出分配给当前一路读取请求的目标存储库的读取方案,且第一真值表存储的数据较少,不会对存储资源造成较大消耗。
本发明的另一实施方式涉及一种访问存储器中数据的方法。在本实施方式中,通过预先构建的第二真值表,标识各存储库的读取方案对应的相冲突的读取方案。相应的,如图8所示,上述步骤102可具体包括如下子步骤。
子步骤1024:从当前一路读取请求的目标存储库的所有读取方案中,确定一可用的读取方案作为当前一路读取请求的目标存储库的读取方案。
具体地,以表1为例,假设当前一路读取请求的目标存储库为RAM1,最终确定该RAM1的读取方案1作为当前一路读取请求的读取方案。
子步骤1025:在预先构建的第二真值表中,选择与已确定为当前一路读取请求的目标存储库的读取方案相冲突的读取方案;其中,第二真值表用于存储各存储库的所有读取方案中,与各存储库的各读取方案相冲突的读取方案,两个读取方案相冲突为两个读取方案涉及读取的库中存在至少一个相同的库。
具体地,以表1为例,将表1中所有读取方案按当前顺序映射到64比特的位图中。位图的每一个比特位(序数)表示一种读取方案,64比特的位图共表示64种读取方案,每四个比特为一组,表示一个RAM的四种读取方案。例如,RAM1的读取方案1对应的比特位为1、RAM1的读取方案2对应的比特位为2,。。。,RAM2的读取方案1对应的比特位为5、RAM2的读取方案2对应的比特位为6,。。。,RAM16的读取方案3对应的比特位为63、RAM16的读取方案4对应的比特位为64。将位图映射到读取方案的真值表中形成第二真值表,表示某个读取方案对应的不可用的读取方案。其中,表项“相冲突的比特位”表示该比特位对应的读取方案与当前表项的读取方案相冲突。本实施例中,对两个读取方案相冲突的定义为这两个读取方案涉及读取的库中存在至少一个相同的库。表2为针对4×4的存储库实现4路读取的第二真值表。
表2第二真值表
基于表2中的数据,在确定出RAM1的读取方案1作为当前一路读取请求的读取方案后,可先从表2中选择出该RAM1的读取方案1对应的所有相冲突的比特位。然后基于比特位与读取方案的对应关系,可以获悉与该RAM1的读取方案1相冲突的读取方案,即涉及读取的库与该RAM1的读取方案所涉及读取的库中具有相同库的读取方案。
当然,在构建第二真值表时,也可以直接将相冲突的比特位替换为相冲突的读取方案的编号,如RAM1的读取方案1。
子步骤1026:将选择的相冲突的读取方案标识为不可用。
其中,子步骤1025~1026可作为上述步骤中,在每确定一路读取请求的目标存储库的读取方案后,将确定的读取方案所涉及读取的库均作为目标库,并在各存储库的所有读取方案中,将涉及读取任一目标库的读取方案标识为不可用的具体处理过程。
进一步地,可以通过预先构建的上述位图,记录各读取方案的是否可用的状态。
具体地,在预先构建的位图中,选择与已确定为当前一路读取请求的目标存储库的读取方案相冲突的读取方案所对应的比特位;其中,位图中的比特位与各存储库的各读取方案一一对应,可用读取方案对应的比特位上的值为0,不可用读取方案对应的比特位上的值为1;在位图中,将选择的上述相冲突的读取方案对应的比特位上的值置为1。
通过更新各比特位上的值,可以清晰的记录当前各存储库的所有读取方案的可用状态。基于此,在确定目标存储库的可用读取方案时,也可以选择比特位值为0的比特位对应的读取方案作为相应读取请求的目标存储库的读取方案。
此外,在依次确定各路读取请求的目标存储库的读取方案之前,还可以将各存储库的所有读取方案均标识为可用,从而为多路读取请求提供最大的读取方案组合空间。
此外,在确定最后一路读取请求的目标存储库的读取方案后,还可包括:省略将确定的读取方案所涉及读取的库均作为目标库,并在各存储库的所有读取方案中,将涉及读取任一目标库的读取方案标识为不可用处理步骤。由于确定最后一路读取请求的目标存储库的读取方案后,无需再分配读取方案,因此可以省略后续标记不可用读取方案的处理步骤,降低处理复杂度,节省计算资源。
在此基础上,如果是采用上述第二真值表记录与各读取方案相冲的读取方案,那么原则上无需记录最后一路读取请求的读取方案所对应的冲突读取方案。
在一个例子中,在实现各路读取请求的目标存储库的读取方案均在可用的读取方案中选择的过程中,可针对各路读取请求的目标存储库,按优先级顺序从该目标存储库的可用读取方案中选取读取方案。例如,采用上述位图中比特位与读取方案的对应关系,在每次选取目标存储库的读取方案时,都从该目标存储库的四种读取方案中,按编号1到编号4的顺序依次进行选取(编号越小对应优先级越高)。那么原则上编号为4的读取方案总是在多路读取请求中处理最后一路请求时才有机会被选择,因此可以不预先存储所有存储库中与编号为4的读取方案相冲突的读取方案。
相应的,在第二真值表中,用于存储各存储库的所有读取方案中,与上述优先级顺序对应的最后一个读取方案(如编号为4的读取方案)相冲突的读取方案的表项为空。
与相关技术相比,本发明实施方式通过预先构建的第二真值表,可以在每确定一路读取请求的目标存储库的读取方案后,快速、准确地获悉当前不可用的读取方案,从而保证下一路读取请求的读取方案能够在可用读取方案中选择。
此外,通过预先构建的位图,可以在分配读取方案的过程中,标识各存储库的所有读取方案的可用情况,从而快速实现为当前存储库分配可用的读取方案。
由于确定最后一路读取请求的目标存储库的读取方案后,无需再分配读取方案,因此可以省略后续标记不可用读取方案的处理步骤,同时在第二真值表中也无需存储与该读取方案对应的冲突方案,从而在降低处理复杂度,节省计算资源的同时,节省存储资源。
本发明的另一实施方式涉及一种访问存储器中数据的方法。在本实施方式中,增加一路写入请求的处理操作。相应的,如图9所示,该写入请求的处理方法包括如下步骤。
步骤201:接收一路写入请求。
其中,该一路写入请求可以是外部处理器如多核处理器共享存储器时向存储器的控制器发送的一路写入请求,用于向存储器中存储库写入数据。这个一路写入请求为向一个存储库写入数据。对某一个存储库写入数据时,除了需要写入该存储库外,还需要将新数据写入其对应的编码库内。
步骤202:确定待写入数据的目标存储库,以及基于该目标存储库形成的目标编码库。
其中,将写入请求所写数据所写入的存储库记为相应写入请求的目标存储库,由于每个存储库均有其对应的基于该存储库编码构建的编码库,因此还需从所述编码库中确定基于该目标存储库形成的目标编码库。
步骤203:读取目标存储库和目标编码库中的数据。
例如,目标存储库的数据为A,与其对应的一个编码库为A+B+C+D,记为P,P=A+B+C+D。读取出目标存储库和目标编码库中的数据A和P(P有多个,为P1,P2等)。
步骤204:通过有限域的加减法计算,得到需要写入目标存储库的待写入数据和需要写入目标编码库的编码版本。
需要写入目标存储库的新数据为A’,则目标存储库的待写入数据为A’;
目标编码库的待写入数据(编码版本)为P-A+A’,即通过有限域减法,对P减去A,再通过有限域加法,对P-A加上A’;
得到需要写入目标存储库的待写入数据和需要写入目标编码库的编码版本。
步骤205:同步将待写入数据写入到待写入数据的所述目标存储库,将所述编码版本写入到所述目标编码库。
如图10所示,分别示出了数据写入过程中,目标存储库A和编码库A+B+C+D中数据的变化过程。
此外,本实施例的方法步骤中还包括:当同步接收多路读取请求和一路写入请求时,基于预先确定的访问优先级,确定多路读取请求和一路写入请求之间的处理顺序,并执行相应处理。
例如,存储器的控制器可预先设置处理多路读取请求和一路写入请求的优先级,在实际应用场景中,如果控制器同步接收到读写请求,则可基于各请求预先设置的优先级,确定处理请求的顺序。
本实施例中,在多路读取的基础上,提供一路写入的处理方案。另外,通过设置读写请求的优先级,从而提供多路读取和一路写入之间的仲裁机制。
本发明的另一实施方式涉及一种电子设备,如图11所示,包括至少一个处理器302;以及,与至少一个处理器302通信连接的存储器;其中,存储器301存储有可被至少一个处理器302执行的指令,指令被至少一个处理器302执行,以使至少一个处理器302能够执行上述任一方法实施例。
其中,存储器301和处理器302采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器302和存储器301的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器302处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器302。
处理器302负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器301可以被用于存储处理器302在执行操作时所使用的数据。
本发明的另一实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述任一方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (13)
1.一种访问存储器中数据的方法,其特征在于,所述存储器包含多个存储库和多个编码库,所述编码库用于存储所述存储库中的数据的编码版本;每个所述存储库预设有多种读取方案;所述读取方案涉及读取至少一个所述存储库和/或至少一个所述编码库;所述方法包括:
接收多路读取请求;
依次确定各路读取请求的目标存储库的读取方案;其中,在每确定一路读取请求的目标存储库的读取方案后,将所述确定的读取方案所涉及读取的库均作为目标库,并在各存储库的所有读取方案中,将涉及读取任一所述目标库的读取方案标识为不可用,各路读取请求的目标存储库的读取方案均在可用的读取方案中选择;
根据确定的各路读取请求的目标存储库的读取方案,进行数据的同步读取。
2.根据权利要求1所述的方法,其特征在于,所述各路读取请求的目标存储库的读取方案均在可用的读取方案中选择,包括:
在预先构建的第一真值表中,选择当前待确定的目标存储库的读取方案;其中,所述第一真值表用于存储各存储库的所有读取方案,以及各所述读取方案涉及读取的库;
在选择的读取方案中,选择任一个可用的读取方案作为当前一路读取请求的目标存储库的读取方案。
3.根据权利要求1所述的方法,其特征在于,所述在每确定一路读取请求的目标存储库的读取方案后,将所述确定的读取方案所涉及读取的库均作为目标库,并在各存储库的所有读取方案中,将涉及读取任一所述目标库的读取方案标识为不可用,包括:
在预先构建的第二真值表中,选择与已确定为当前一路读取请求的目标存储库的读取方案相冲突的读取方案;其中,所述第二真值表用于存储各存储库的所有读取方案中,与各存储库的各读取方案相冲突的读取方案,两个读取方案相冲突为所述两个读取方案涉及读取的库中存在至少一个相同的库;
将选择的所述相冲突的读取方案标识为不可用。
4.根据权利要求3所述方法,其特征在于,所述将选择的所述相冲突的读取方案标识为不可用,包括:
在预先构建的位图中,选择与已确定为当前一路读取请求的目标存储库的读取方案相冲突的读取方案所对应的比特位;其中,所述位图中的比特位与各存储库的各读取方案一一对应,可用读取方案对应的比特位上的值为0,不可用读取方案对应的比特位上的值为1;
在所述位图中,将选择的所述相冲突的读取方案对应的比特位上的值置为1。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述依次确定各路读取请求的目标存储库的读取方案之前,包括:
将各存储库的所有读取方案均标识为可用。
6.根据权利要求1-4任一项所述的方法,其特征在于,在确定最后一路读取请求的目标存储库的读取方案后,包括:
省略所述将所述确定的读取方案所涉及读取的库均作为目标库,并在各存储库的所有读取方案中,将涉及读取任一所述目标库的读取方案标识为不可用的处理步骤。
7.根据权利要求3所述的方法,其特征在于,在确定最后一路读取请求的目标存储库的读取方案后,包括:
省略所述将所述确定的读取方案所涉及读取的库均作为目标库,并在各存储库的所有读取方案中,将涉及读取任一所述目标库的读取方案标识为不可用的处理步骤;
所述各路读取请求的目标存储库的读取方案均在可用的读取方案中选择,包括:
针对各路读取请求的目标存储库,按优先级顺序从该目标存储库的可用读取方案中选取读取方案;
其中,所述第二真值表中,用于存储各存储库的所有读取方案中,与所述优先级顺序对应的最后一个读取方案相冲突的读取方案的表项为空。
8.根据权利要求1所述的方法,其特征在于,所述编码库存储的所述编码版本为对所述多个存储库中至少部分存储库中数据,采用有限域加法进行编码后形成的数据;所述有限域加法包括如下方法中的任一种:
超图构造法、一维编码方法、二维编码方法以及多维编码方法。
9.根据权利要求8所述的方法,其特征在于,所述根据确定的各路读取请求的目标存储库的读取方案,进行数据的同步读取之后,包括:
对读取的所述编码库,以及该编码库对应的多个存储库中的数据执行有限域减法,得到所述目标存储库的数据。
10.根据权利要求8或9所述的方法,其特征在于,所述方法还包括:
接收一路写入请求;
确定待写入数据的目标存储库,以及基于该目标存储库形成的目标编码库;
读取所述目标存储库和所述目标编码库中的数据;
通过有限域的加减法计算,得到需要写入目标存储库的待写入数据和需要写入目标编码库的编码版本;
同步将待写入数据写入到待写入数据的所述目标存储库,将所述编码版本写入到所述目标编码库。
11.根据权利要求10所述的方法,其特征在于,所述方法包括:
当同步接收多路读取请求和一路写入请求时,基于预先确定的访问优先级,确定所述多路读取请求和一路写入请求之间的处理顺序,并执行相应处理。
12.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至11中任一项所述的访问存储器中数据的方法。
13.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11中任一项所述的访问存储器中数据的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110739406.1A CN115543181A (zh) | 2021-06-30 | 2021-06-30 | 访问存储器中数据的方法、电子设备及存储介质 |
PCT/CN2022/098776 WO2023273873A1 (zh) | 2021-06-30 | 2022-06-14 | 访问存储器中数据的方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110739406.1A CN115543181A (zh) | 2021-06-30 | 2021-06-30 | 访问存储器中数据的方法、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115543181A true CN115543181A (zh) | 2022-12-30 |
Family
ID=84690021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110739406.1A Pending CN115543181A (zh) | 2021-06-30 | 2021-06-30 | 访问存储器中数据的方法、电子设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115543181A (zh) |
WO (1) | WO2023273873A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9921754B2 (en) * | 2015-07-28 | 2018-03-20 | Futurewei Technologies, Inc. | Dynamic coding algorithm for intelligent coded memory system |
US10437480B2 (en) * | 2015-12-01 | 2019-10-08 | Futurewei Technologies, Inc. | Intelligent coded memory architecture with enhanced access scheduler |
US11366790B2 (en) * | 2017-10-30 | 2022-06-21 | AtomBeam Technologies Inc. | System and method for random-access manipulation of compacted data files |
CN110955555B (zh) * | 2019-10-24 | 2024-03-29 | 晶晨半导体(上海)股份有限公司 | 一种nand存储器的兼容方法 |
CN111240597B (zh) * | 2020-01-15 | 2024-05-17 | 书生星际(北京)科技有限公司 | 存储数据的方法、装置、设备和计算机可读存储介质 |
-
2021
- 2021-06-30 CN CN202110739406.1A patent/CN115543181A/zh active Pending
-
2022
- 2022-06-14 WO PCT/CN2022/098776 patent/WO2023273873A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2023273873A1 (zh) | 2023-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10346507B2 (en) | Symmetric block sparse matrix-vector multiplication | |
US11392488B2 (en) | Optimizing storage of application data in memory | |
US11093388B2 (en) | Method, apparatus, device and storage medium for accessing static random access memory | |
US9697111B2 (en) | Method of managing dynamic memory reallocation and device performing the method | |
US9632729B2 (en) | Storage compute device with tiered memory processing | |
US10846233B2 (en) | Memory controller and application processor for controlling utilization and performance of input/output device and method of operating the memory controller | |
CN110333827B (zh) | 一种数据加载装置和数据加载方法 | |
CN114185818B (zh) | 基于扩展页表的gpu访存自适应优化方法及装置 | |
KR20180015565A (ko) | 메모리 모듈 및 그것의 동작 방법 | |
CN111240744B (zh) | 一种提高涉及稀疏矩阵并行计算效率的方法和系统 | |
CN113628647A (zh) | 用于近数据处理的系统、方法和设备 | |
CN112368676A (zh) | 处理数据的方法和设备 | |
JPWO2014192144A1 (ja) | ホストバスアダプタおよびシステム | |
CN107003932B (zh) | 多核处理器系统的缓存目录处理方法和目录控制器 | |
CN113257352A (zh) | 一种基因测序数据排序方法、集成电路及排序设备 | |
CN113994314B (zh) | 扩展存储器接口 | |
US20160267006A1 (en) | Massive access request for out-of-core textures by a parallel processor with limited memory | |
CN115543181A (zh) | 访问存储器中数据的方法、电子设备及存储介质 | |
CN108519860B (zh) | 一种ssd读命中的处理方法和装置 | |
CN116048770A (zh) | 用于进程调度的方法和设备 | |
CN117056247A (zh) | 流式高速缓存存储器中的数据行的混合分配 | |
US8452920B1 (en) | System and method for controlling a dynamic random access memory | |
CN113454612A (zh) | 存储装置操作编排 | |
CN113490915A (zh) | 扩展存储器操作 | |
US20230088939A1 (en) | Processing system that increases the capacity of a very fast memory |
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 |