CN117917735B - 伪双端口sram的读写控制方法及装置 - Google Patents
伪双端口sram的读写控制方法及装置 Download PDFInfo
- Publication number
- CN117917735B CN117917735B CN202410317553.3A CN202410317553A CN117917735B CN 117917735 B CN117917735 B CN 117917735B CN 202410317553 A CN202410317553 A CN 202410317553A CN 117917735 B CN117917735 B CN 117917735B
- Authority
- CN
- China
- Prior art keywords
- data
- writing
- port sram
- item
- buffer queue
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000013479 data entry Methods 0.000 claims description 46
- 230000000630 rising effect Effects 0.000 claims description 7
- 238000013507 mapping Methods 0.000 claims 1
- 230000003068 static effect Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012545 processing Methods 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
- Static Random-Access Memory (AREA)
Abstract
本发明提出一种伪双端口SRAM的读写控制方法及装置,涉及计算机技术领域,方法包括:其中,伪双端口静态随机存取存储器SRAM对外有两个端口,分别用于读取数据和写入数据,内部由多块单口SRAM和一个全相联映射的寄存器缓冲队列组成,数据写入或读取时会选择性的经过寄存器缓冲队列,减少单端口SRAM的读写冲突。由此,通过多块单端口SRAM和寄存器缓冲队列的组合,可以在具备单端口SRAM面积小的优点的同时,实现极低的读写冲突概率,使得多块单端口SRAM在允许读写冲突出现的场景下可以充当伪双口SRAM使用。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种伪双端口SRAM的读写控制方法、装置、电子设备及存储介质。
背景技术
在数字IC设计领域常用静态随机存取存储器(Static Random Access Memory,SRAM)作为存储器件来存储数据,常用的SRAM包含单口SRAM (single-port,RAM)、伪双口SRAM(two-port,RAM)和双口SRAM(dual-port,RAM)。在需要同一周期读写SRAM的场景中经常使用两种方案。第一种是直接使用伪双口SRAM或者双口SRAM,但是电路面积较大。另一种方案是使用是将多块单口SRAM组合使用,存在较大的读写冲突。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一个目的在于提出一种伪双端口SRAM的读写控制方法,通过多块单端口SRAM和寄存器缓冲队列的组合,可以在具备单端口SRAM面积小的优点的同时,实现极低的读写冲突概率,使得多块单端口SRAM在允许读写冲突出现的场景下可以充当伪双口SRAM使用。
本发明的第二个目的在于提出一种伪双端口SRAM的读写控制装置。
本发明的第三个目的在于提出一种电子设备。
本发明的第四个目的在于提出一种存储有计算机数据的非瞬时计算机可读存储介质。
为达上述目的,本发明第一方面实施例提出了一种伪双端口SRAM的读写控制方法,其中,所述伪双端口静态随机存取存储器SRAM对外有两个端口,分别用于读取数据和写入数据,内部由多块单口SRAM和一个全相联映射的寄存器缓冲队列组成,所述寄存器缓冲队列每个数据表项包含数据有效位、数据脏位、数据、标签,所述方法包括:
在从所述伪双端口SRAM中读取数据时,读取寄存器缓冲队列的各个数据表项,在数据读取请求对应的读取标签命中任一目标数据表项中标签,且读取标签对应数据有效位有效的情况下,则读取所述目标数据表项的数据,不读取伪双端口SRAM中单口SRAM的数据;
在所述伪双端口SRAM中需写入数据时,读取寄存器缓冲队列的各个数据表项,在数据写入项对应的写入标签未命中任一数据表项中标签时,将数据写入项插入到寄存器缓冲队列尾部,将数据写入项的写入有效位置为有效,并在寄存器缓冲队列中没有数据脏位的脏表项和数据写入项属于同一目标单口SRAM,且目标单口SRAM没有数据读取请求的情况下,将写入数据项直接写入到所属的目标单口SRAM中,缓冲队列中写入数据项的写入脏位不置为脏。
为达上述目的,本发明第二方面实施例提出了一种伪双端口SRAM的读写控制装置,其中,所述伪双端口静态随机存取存储器SRAM对外有两个端口,分别用于读取数据和写入数据,内部由多块单口SRAM和一个全相联映射的寄存器缓冲队列组成,所述寄存器缓冲队列每个数据表项包含数据有效位、数据脏位、数据、标签,所述装置包括:
第一读取模块,用于在从所述伪双端口SRAM中读取数据时,读取寄存器缓冲队列的各个数据表项,在数据读取请求对应的读取标签命中任一目标数据表项中标签,且读取标签对应数据有效位有效的情况下,则读取所述目标数据表项的数据,不读取伪双端口SRAM中单口SRAM的数据;
第一写入模块,用于在所述伪双端口SRAM中需写入数据时,读取寄存器缓冲队列的各个数据表项,在数据写入项对应的写入标签未命中任一数据表项中标签时,将数据写入项插入到寄存器缓冲队列尾部,将数据写入项的写入有效位置为有效,并在寄存器缓冲队列中没有数据脏位的脏表项和数据写入项属于同一目标单口SRAM,且目标单口SRAM没有数据读取请求的情况下,将写入数据项直接写入到所属的目标单口SRAM中,缓冲队列中写入数据项的写入脏位不置为脏。
为达上述目的,本发明第三方面实施例提出了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器所使用的数据,所述数据被所述至少一个处理器所使用,以使所述至少一个处理器能够执行第一方面所述的方法。
为了实现上述目的,本发明第四方面实施例提出了一种存储有计算机数据的非瞬时计算机可读存储介质,计算机数据用于使所述计算机执行第一方面所述的方法。
本发明实施例提供的伪双端口SRAM的读写控制方法、装置、电子设备和存储介质,其中,伪双端口静态随机存取存储器SRAM对外有两个端口,分别用于读取数据和写入数据,内部由多块单口SRAM和一个全相联映射的寄存器缓冲队列组成,数据写入或读取时会选择性的经过寄存器缓冲队列,减少单端口SRAM的读写冲突,由此,通过多块单端口SRAM和寄存器缓冲队列的组合,可以在具备单端口SRAM面积小的优点的同时,实现极低的读写冲突概率,使得多块单端口SRAM在允许读写冲突出现的场景下可以充当伪双口SRAM使用。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例所提供的一种伪双端口SRAM的读写控制方法的流程示意图;
图2为本发明实施例所提供的一种伪双端口SRAM的结构示意图;
图3为本发明实施例所提供的一种伪双端口SRAM读取流程示意图;
图4为本发明实施例所提供的一种伪双端口SRAM写入流程示意图;
图5为本发明实施例所提供的一种写入数据写回单口SRAM的流程示意图;
图6为本发明实施例提供的一种伪双端口SRAM的读写控制装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
其中,需要说明的是,本发明技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
下面参考附图描述本发明实施例的伪双端口SRAM的读写控制方法和装置。
图1为本发明实施例所提供的一种伪双端口SRAM的读写控制方法的流程示意图,其中,如图2所示,图2为本发明实施例所提供的一种伪双端口SRAM的结构示意图,其中,伪双端口静态随机存取存储器(Static Random Access Memory,SRAM)对外有两个端口,分别用于读取数据和写入数据,内部由多块单口SRAM(bank)和一个全相联映射的寄存器缓冲队列组成,寄存器缓冲队列每个数据表项包含数据有效位、数据脏位、数据、标签,具体地,在单口SRAM有4个(bank0、bank1、bank2、bank3)的情况下,寄存器缓冲队列如图2所示的连接方式加入伪双端口SRAM中。其中,寄存器缓冲队列和多块单口SRAM通过全相联匹配电路连接,通过寄存器缓冲队列和各单口静态随机存取存储器仲裁读取。
此外,寄存器缓冲队列可以使用全相联寄存器实现,但不仅限于此。
进一步地,数据有效位:表示该数据表项是否有效;数据脏位:表示数据表项中的数据是否需要写入到伪双端口SRAM中;数据:表示所写入的数据信息;标签:表示所写入的SRAM地址,同时还用于读取寄存器缓冲队列时进行匹配,当读写地址与标签相同时,视为命中,否则视为未命中。
如图1所示,该方法包括以下步骤:
步骤101,在从伪双端口静态随机存取存储器中读取数据时,读取寄存器缓冲队列的各个数据表项,在数据读取请求对应的读取标签命中任一目标数据表项中标签,且读取标签对应数据有效位有效的情况下,则读取目标数据表项的数据,不读取伪双端口静态随机存取存储器中单口静态随机存取存储器的数据。
在一些实施例中,如图3所示,图3为本发明实施例所提供的一种伪双端口SRAM读取流程示意图,在从伪双端口SRAM中读取数据时,读取寄存器缓冲队列的各个数据表项,在数据读取请求对应的读取标签命中任一目标数据表项中标签,且读取标签对应数据有效位有效的情况下,则读取成功,读取目标数据表项的数据,不读取伪双端口静态随机存取存储器中单口静态随机存取存储器的数据;在数据读取请求对应的读取标签未命中寄存器缓冲队列中各数据表项的标签时,基于读取标签的低n位选择出对应的读取单口静态随机存取存储器;将读取标签的高y位作为读取请求地址送入读取单口静态随机存取存储器,并拉高数据读取请求的电平信号,在读取请求的电平信号为高电平时,允许读取,读取伪双端口静态随机存取存储器中单口静态随机存取存储器的目标数据,并将读取的目标数据输出,在读取请求的电平信号为低电平,读取请求读取失败,输出结果无效。
可选地,n,y是基于每个单口SRAM内包含的数据表项数确定的,且n和y的总和为读取标签或写入标签的总位数,当单端口SRAM数量为m,每个单端口SRAM的数据表项数为x时,n=,y=/>。
进一步地,在每个单口SRAM内有x条数据表项的情况下,读取标签的低n=位作为单口SRAM的选择字段,读取标签的高y=/>位作为单口SRAM内标签,读取标签的总标签共a=n+y位。
步骤102,在伪双端口静态随机存取存储器中需写入数据时,读取寄存器缓冲队列的各个数据表项,在数据写入项对应的写入标签未命中任一数据表项中标签时,将数据写入项插入到寄存器缓冲队列尾部,将数据写入项的写入有效位置为有效,并在寄存器缓冲队列中没有数据脏位的脏表项和数据写入项属于同一目标单口静态随机存取存储器,且目标单口静态随机存取存储器没有数据读取请求的情况下,将写入数据项直接写入到所属的目标单口静态随机存取存储器中,缓冲队列中写入数据项的写入脏位不置为脏。
在一些实施例中,如图4所示,图4为本发明实施例所提供的一种伪双端口SRAM的写入流程示意图,在伪双端口SRAM中需写入数据时,读取寄存器缓冲队列的各个数据表项,在数据写入项对应的写入标签未命中任一数据表项中标签时,将数据写入项插入到寄存器缓冲队列尾部,将数据写入项的写入有效位置为有效,并在寄存器缓冲队列中没有数据脏位的脏表项和数据写入项属于同一目标单口静态随机存取存储器,且目标单口静态随机存取存储器没有数据读取请求的情况下,基于写入标签的低n位选择出对应的目标单口静态随机存取存储器;将写入标签的高y位作为写入请求地址送入目标单口静态随机存取存储器,并拉高数据写入项的电平信号,以在时钟上升沿之后,将写入数据项直接写入到所属的目标单口静态随机存取存储器中,缓冲队列中写入数据项的写入脏位不置为脏。
如图4所示,在伪双端口SRAM中需写入数据时,读取寄存器缓冲队列的各个数据表项,并在数据写入项对应的写入标签命中任一数据表项中标签的情况下,将数据写入项合并至寄存器缓冲队列对应的数据表项中,且将数据写入脏位置为脏。
如图4所示,在伪双端口SRAM中需写入数据时,读取寄存器缓冲队列的各个数据表项,在数据写入项对应的写入标签未命中任一数据表项中标签时,将数据写入项插入到寄存器缓冲队列尾部,将数据写入项的写入有效位置为有效,并在寄存器缓冲队列中存在数据脏位的脏表项和数据写入项属于同一目标单口静态随机存取存储器,或目标单口静态随机存取存储器存在数据读取请求的情况下,将寄存器缓冲队列中写入数据项的写入脏位置为脏。
如图4所示,在伪双端口SRAM中需写入数据时,读取寄存器缓冲队列的各个数据表项,在数据写入项对应的写入标签未命中任一数据表项中标签时,将数据写入项插入到寄存器缓冲队列尾部,将数据写入项的写入有效位置为有效,并在每个数据表项中的数据脏位均置为脏,且和数据写入项对应读取标签属于同一目标单口静态随机存取存储器的情况下,将目标单口静态随机存取存储器对应数据读取请求电平信号拉低,以停止目标单口静态随机存取存储器读取,并将寄存器缓冲队列中写入数据项的写入脏位置为脏。
在另一些实施例中,如图5所示,图5为本发明实施例所提供的一种写入数据写回单口SRAM的流程示意图,在将数据写入项写入寄存器缓冲队列对应数据表项后,将寄存器缓冲队列中所有数据表项根据所属的单口静态随机存取存储器进行分组,以得到多组数据表项;在任一目标组数据表项存在数据脏位,且目标组数据表项所属的单口静态随机存取存储器没有读请求时,将目标组数据表项的数据写入所属的单口静态随机存取存储器,并取消脏置位。
本发明实施例提供的伪双端口SRAM的读写控制方法,其中,伪双端口静态随机存取存储器SRAM对外有两个端口,分别用于读取数据和写入数据,内部由多块单口SRAM和一个全相联映射的寄存器缓冲队列组成,数据写入或读取时会选择性的经过寄存器缓冲队列,减少单端口SRAM的读写冲突,由此,通过多块单端口SRAM和寄存器缓冲队列的组合,可以在具备单端口SRAM面积小的优点的同时,实现极低的读写冲突概率,使得多块单端口SRAM在允许读写冲突出现的场景下可以充当伪双口SRAM使用。
其中,可以理解的是,在伪双端口SRAM中由4个单口SRAM(Bank)+深度为4的寄存器缓冲队列的情况下,仅有万分之三的读写冲突概率,可替代伪双口SRAM使用,占用面积更小的同时,实现极低读写冲突概率。
为了实现上述实施例,本发明还提出一种伪双端口SRAM的读写控制装置。
图6为本发明实施例提供的一种伪双端口SRAM的读写控制装置的结构示意图。
如图6所示,该伪双端口静态随机存取存储器的读写控制装置60包括:第一读取模块61和第一写入模块62。
第一读取模块61,用于在从所述伪双端口SRAM中读取数据时,读取寄存器缓冲队列的各个数据表项,在数据读取请求对应的读取标签命中任一目标数据表项中标签,且读取标签对应数据有效位有效的情况下,则读取所述目标数据表项的数据,不读取伪双端口SRAM中单口SRAM的数据;
第一写入模块62,用于在所述伪双端口SRAM中需写入数据时,读取寄存器缓冲队列的各个数据表项,在数据写入项对应的写入标签未命中任一数据表项中标签时,将数据写入项插入到寄存器缓冲队列尾部,将数据写入项的写入有效位置为有效,并在寄存器缓冲队列中没有数据脏位的脏表项和数据写入项属于同一目标单口SRAM,且目标单口SRAM没有数据读取请求的情况下,将写入数据项直接写入到所属的目标单口SRAM中,缓冲队列中写入数据项的写入脏位不置为脏。
进一步地,在本发明实施例的一种可能的实现方式中,所述装置还包括:
选择模块,用于在从所述伪双端口SRAM读取数据时,读取寄存器缓冲队列的各个数据表项,在数据读取请求对应的读取标签未命中寄存器缓冲队列中各数据表项的标签时,基于读取标签的低n位选择出对应的读取单口SRAM;
第二读取模块,用于将读取标签的高y位送作为读取请求地址入所述读取单口SRAM,并拉高数据读取请求的电平信号,以在时钟上升沿之后,读取伪双端口SRAM中单口SRAM的目标数据,并将读取的目标数据输出。
进一步地,在本发明实施例的一种可能的实现方式中,所述第一写入模块62,具体用于:
在所述伪双端口SRAM中需写入数据时,读取寄存器缓冲队列的各个数据表项,在数据写入项对应的写入标签未命中任一数据表项中标签时,将数据写入项插入到寄存器缓冲队列尾部,将数据写入项的写入有效位置为有效,并在寄存器缓冲队列中没有数据脏位的脏表项和数据写入项属于同一目标单口SRAM,且目标单口SRAM没有数据读取请求的情况下,基于写入标签的低n位选择出对应的目标单口SRAM;
将写入标签的高y位作为写入请求地址送入所述目标单口SRAM,并拉高数据写入项的电平信号,以在时钟上升沿之后,将写入数据项直接写入到所属的目标单口SRAM中,缓冲队列中写入数据项的写入脏位不置为脏。
进一步地,在本发明实施例的一种可能的实现方式中,其中,n,y是基于每个单口SRAM内包含的数据表项数确定的,且n和y的总和为读取标签或写入标签的总位数,当单端口SRAM数量为m,每个单端口SRAM的数据表项数为x时,n=,y=/>。
进一步地,在本发明实施例的一种可能的实现方式中,所述装置还包括:
第二写入模块,用于在所述伪双端口SRAM中需写入数据时,读取寄存器缓冲队列的各个数据表项,并在数据写入项对应的写入标签命中任一数据表项中标签的情况下,将所述数据写入项合并至寄存器缓冲队列对应的数据表项中,且将所述数据写入脏位置为脏;
第三写入模块,用于在所述伪双端口SRAM中需写入数据时,读取寄存器缓冲队列的各个数据表项,在数据写入项对应的写入标签未命中任一数据表项中标签时,将数据写入项插入到寄存器缓冲队列尾部,将数据写入项的写入有效位置为有效,并在寄存器缓冲队列中存在数据脏位的脏表项和数据写入项属于同一目标单口SRAM,或目标单口SRAM存在数据读取请求的情况下,将寄存器缓冲队列中写入数据项的写入脏位置为脏;
第四写入模块,用于在所述伪双端口SRAM中需写入数据时,读取寄存器缓冲队列的各个数据表项,在数据写入项对应的写入标签未命中任一数据表项中标签时,将数据写入项插入到寄存器缓冲队列尾部,将数据写入项的写入有效位置为有效,并在每个数据表项中的数据脏位均置为脏,且和数据写入项对应读取标签属于同一目标单口SRAM的情况下,将目标单口SRAM对应数据读取请求电平信号拉低,以停止所述目标单口SRAM读取,并将寄存器缓冲队列中写入数据项的写入脏位置为脏。
进一步地,在本发明实施例的一种可能的实现方式中,所述装置还包括:
分组模块,用于在将数据写入项写入寄存器缓冲队列对应数据表项后,将寄存器缓冲队列中所有数据表项根据所属的单口SRAM进行分组,以得到多组数据表项;
第五写入模块,用于在任一目标组数据表项存在数据脏位,且目标组数据表项所属的单口SRAM没有读请求时,将目标组数据表项的数据写入所属的单口SRAM,并取消脏置位。
需要说明的是,前述对方法实施例的解释说明也适用于该实施例的装置,此处不再赘述。
本发明实施例的伪双端口SRAM的读写控制装置,其中,伪双端口静态随机存取存储器SRAM由多块单口SRAM组成,且伪双端口SRAM中存在一个与伪双端口SRAM全相联映射的寄存器缓冲队列,数据写入或读取时会选择性的经过寄存器缓冲队列,减少读写冲突。由此,通过与伪双端口SRAM全相联映射的寄存器缓冲队列,可以让伪双端口SRAM在具备面积小的优点的情况下解决读写冲突概率大的问题,实现极低读写冲突概率。
为了实现上述实施例,本发明还提出一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的数据,所述数据被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述的方法。
为了实现上述实施例,本发明还提出一种存储有计算机数据的非瞬时计算机可读存储介质,计算机数据用于使所述计算机执行前述的方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行数据的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行数据的定序列表,可以具体实现在任何计算机可读介质中,以供数据执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从数据执行系统、装置或设备取数据并执行数据的系统)使用,或结合这些数据执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供数据执行系统、装置或设备或结合这些数据执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的数据执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来数据相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (11)
1.一种伪双端口SRAM的读写控制方法,其特征在于,其中,所述伪双端口静态随机存取存储器SRAM对外有两个端口,分别用于读取数据和写入数据,内部由多块单口SRAM和一个全相联映射的寄存器缓冲队列组成,所述寄存器缓冲队列每个数据表项包含数据有效位、数据脏位、数据、标签,所述方法包括:
在从所述伪双端口SRAM中读取数据时,读取寄存器缓冲队列的各个数据表项,在数据读取请求对应的读取标签命中任一目标数据表项中标签,且读取标签对应数据有效位有效的情况下,则读取所述目标数据表项的数据,不读取伪双端口SRAM中单口SRAM的数据;
在从所述伪双端口SRAM读取数据时,读取寄存器缓冲队列的各个数据表项,在数据读取请求对应的读取标签未命中寄存器缓冲队列中各数据表项的标签时,基于读取标签的低n位选择出对应的读取单口SRAM;
将读取标签的高y位作为读取请求地址送入所述读取单口SRAM,并拉高数据读取请求的电平信号,以在时钟上升沿之后,读取伪双端口SRAM中单口SRAM的目标数据,并将读取的目标数据输出;
在所述伪双端口SRAM中需写入数据时,读取寄存器缓冲队列的各个数据表项,在数据写入项对应的写入标签未命中任一数据表项中标签时,将数据写入项插入到寄存器缓冲队列尾部,将数据写入项的写入有效位置为有效,并在寄存器缓冲队列中没有数据脏位的脏表项和数据写入项属于同一目标单口SRAM,且目标单口SRAM没有数据读取请求的情况下,基于写入标签的低n位选择出对应的目标单口SRAM;
将写入标签的高y位作为写入请求地址送入所述目标单口SRAM,并拉高数据写入项的电平信号,以在时钟上升沿之后,将写入数据项直接写入到所属的目标单口SRAM中,缓冲队列中写入数据项的写入脏位不置为脏;
在所述伪双端口SRAM中需写入数据时,读取寄存器缓冲队列的各个数据表项,并在数据写入项对应的写入标签命中任一数据表项中标签的情况下,将所述数据写入项合并至寄存器缓冲队列对应的数据表项中,且将所述数据写入脏位置为脏;
在所述伪双端口SRAM中需写入数据时,读取寄存器缓冲队列的各个数据表项,在数据写入项对应的写入标签未命中任一数据表项中标签时,将数据写入项插入到寄存器缓冲队列尾部,将数据写入项的写入有效位置为有效,并在寄存器缓冲队列中存在数据脏位的脏表项和数据写入项属于同一目标单口SRAM,或目标单口SRAM存在数据读取请求的情况下,将寄存器缓冲队列中写入数据项的写入脏位置为脏;
在所述伪双端口SRAM中需写入数据时,读取寄存器缓冲队列的各个数据表项,在数据写入项对应的写入标签未命中任一数据表项中标签时,将数据写入项插入到寄存器缓冲队列尾部,将数据写入项的写入有效位置为有效,并在每个数据表项中的数据脏位均置为脏,且和数据写入项对应读取标签属于同一目标单口SRAM的情况下,将目标单口SRAM对应数据读取请求电平信号调至时钟下降沿,以停止所述目标单口SRAM读取,并将寄存器缓冲队列中写入数据项的写入脏位置为脏。
2.根据权利要求1所述的方法,其特征在于,其中,n,y是基于每个单口SRAM内包含的数据表项数确定的,且n和y的总和为读取标签或写入标签的总位数,当单端口SRAM数量为m,每个单端口SRAM的数据表项数为x时,n=,y=/>。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在将数据写入项写入寄存器缓冲队列对应数据表项后,将寄存器缓冲队列中所有数据表项根据所属的单口SRAM进行分组,以得到多组数据表项;
在任一目标组数据表项存在数据脏位,且目标组数据表项所属的单口SRAM没有读请求时,将目标组数据表项的数据写入所属的单口SRAM,并取消脏置位。
4.一种用于执行如权利要求1所述的伪双端口SRAM的读写控制方法的伪双端口SRAM的读写控制装置,其特征在于,其中,所述伪双端口静态随机存取存储器SRAM对外有两个端口,分别用于读取数据和写入数据,内部由多块单口SRAM和一个全相联映射的寄存器缓冲队列组成,所述寄存器缓冲队列每个数据表项包含数据有效位、数据脏位、数据、标签,所述装置包括:
第一读取模块,用于在从所述伪双端口SRAM中读取数据时,读取寄存器缓冲队列的各个数据表项,在数据读取请求对应的读取标签命中任一目标数据表项中标签,且读取标签对应数据有效位有效的情况下,则读取所述目标数据表项的数据,不读取伪双端口SRAM中单口SRAM的数据;
第一写入模块,用于在所述伪双端口SRAM中需写入数据时,读取寄存器缓冲队列的各个数据表项,在数据写入项对应的写入标签未命中任一数据表项中标签时,将数据写入项插入到寄存器缓冲队列尾部,将数据写入项的写入有效位置为有效,并在寄存器缓冲队列中没有数据脏位的脏表项和数据写入项属于同一目标单口SRAM,且目标单口SRAM没有数据读取请求的情况下,将写入数据项直接写入到所属的目标单口SRAM中,缓冲队列中写入数据项的写入脏位不置为脏。
5.根据权利要求4所述的装置,其特征在于,装置还包括:
选择模块,用于在从所述伪双端口SRAM读取数据时,读取寄存器缓冲队列的各个数据表项,在数据读取请求对应的读取标签未命中寄存器缓冲队列中各数据表项的标签时,基于读取标签的低n位选择出对应的读取单口SRAM;
第二读取模块,用于将读取标签的高y位作为读取请求地址送入所述读取单口SRAM,并拉高数据读取请求的电平信号,以在时钟上升沿之后,读取伪双端口SRAM中单口SRAM的目标数据,并将读取的目标数据输出。
6.根据权利要求4所述的装置,其特征在于,所述第一写入模块,具体用于:
在所述伪双端口SRAM中需写入数据时,读取寄存器缓冲队列的各个数据表项,在数据写入项对应的写入标签未命中任一数据表项中标签时,将数据写入项插入到寄存器缓冲队列尾部,将数据写入项的写入有效位置为有效,并在寄存器缓冲队列中没有数据脏位的脏表项和数据写入项属于同一目标单口SRAM,且目标单口SRAM没有数据读取请求的情况下,基于写入标签的低n位选择出对应的目标单口SRAM;
将写入标签的高y位作为写入请求地址送入所述目标单口SRAM,并拉高数据写入项的电平信号,以在时钟上升沿之后,将写入数据项直接写入到所属的目标单口SRAM中,缓冲队列中写入数据项的写入脏位不置为脏。
7.根据权利要求5或6所述的装置,其特征在于,其中,n,y是基于每个单口SRAM内包含的数据表项数确定的,且n和y的总和为读取标签或写入标签的总位数,当单端口SRAM数量为m,每个单端口SRAM的数据表项数为x时,n=,y=/>。
8.根据权利要求4所述的装置,其特征在于,所述装置还包括:
第二写入模块,用于在所述伪双端口SRAM中需写入数据时,读取寄存器缓冲队列的各个数据表项,并在数据写入项对应的写入标签命中任一数据表项中标签的情况下,将所述数据写入项合并至寄存器缓冲队列对应的数据表项中,且将所述数据写入脏位置为脏;
第三写入模块,用于在所述伪双端口SRAM中需写入数据时,读取寄存器缓冲队列的各个数据表项,在数据写入项对应的写入标签未命中任一数据表项中标签时,将数据写入项插入到寄存器缓冲队列尾部,将数据写入项的写入有效位置为有效,并在寄存器缓冲队列中存在数据脏位的脏表项和数据写入项属于同一目标单口SRAM,或目标单口SRAM存在数据读取请求的情况下,将寄存器缓冲队列中写入数据项的写入脏位置为脏;
第四写入模块,用于在所述伪双端口SRAM中需写入数据时,读取寄存器缓冲队列的各个数据表项,在数据写入项对应的写入标签未命中任一数据表项中标签时,将数据写入项插入到寄存器缓冲队列尾部,将数据写入项的写入有效位置为有效,并在每个数据表项中的数据脏位均置为脏,且和数据写入项对应读取标签属于同一目标单口SRAM的情况下,将目标单口SRAM对应数据读取请求电平信号调至时钟下降沿,以停止所述目标单口SRAM读取,并将寄存器缓冲队列中写入数据项的写入脏位置为脏。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
分组模块,用于在将数据写入项写入寄存器缓冲队列对应数据表项后,将寄存器缓冲队列中所有数据表项根据所属的单口SRAM进行分组,以得到多组数据表项;
第五写入模块,用于在任一目标组数据表项存在数据脏位,且目标组数据表项所属的单口SRAM没有读请求时,将目标组数据表项的数据写入所属的单口SRAM,并取消脏置位。
10.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的数据,所述数据被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-3中任一项所述的方法。
11.一种存储有计算机数据的非瞬时计算机可读存储介质,其特征在于,所述计算机数据用于使所述计算机执行根据权利要求1-3中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410317553.3A CN117917735B (zh) | 2024-03-20 | 2024-03-20 | 伪双端口sram的读写控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410317553.3A CN117917735B (zh) | 2024-03-20 | 2024-03-20 | 伪双端口sram的读写控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117917735A CN117917735A (zh) | 2024-04-23 |
CN117917735B true CN117917735B (zh) | 2024-05-31 |
Family
ID=90729895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410317553.3A Active CN117917735B (zh) | 2024-03-20 | 2024-03-20 | 伪双端口sram的读写控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117917735B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6006310A (en) * | 1995-09-20 | 1999-12-21 | Micron Electronics, Inc. | Single memory device that functions as a multi-way set associative cache memory |
JP2006216075A (ja) * | 1995-03-20 | 2006-08-17 | Fujitsu Ltd | キャッシュコヒーレンス装置 |
CN101667451A (zh) * | 2009-09-11 | 2010-03-10 | 西安电子科技大学 | 高速数据交换接口的数据缓存器及其数据缓存控制方法 |
CN111124961A (zh) * | 2019-12-30 | 2020-05-08 | 武汉先同科技有限公司 | 一种连续读写模式下的单口ram转伪双口ram的实现方法 |
CN113641626A (zh) * | 2021-10-18 | 2021-11-12 | 睿思芯科(深圳)技术有限公司 | 一种sram读写控制方法及行缓冲控制器 |
CN116136827A (zh) * | 2021-11-17 | 2023-05-19 | 苏州盛科通信股份有限公司 | 一种多口存储设备、读写方法、装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6370073B2 (en) * | 1998-10-01 | 2002-04-09 | Monlithic System Technology, Inc. | Single-port multi-bank memory system having read and write buffers and method of operating same |
US10338850B2 (en) * | 2017-09-12 | 2019-07-02 | Toshiba Memory Corporation | Split-page queue buffer management for solid state storage drives |
-
2024
- 2024-03-20 CN CN202410317553.3A patent/CN117917735B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006216075A (ja) * | 1995-03-20 | 2006-08-17 | Fujitsu Ltd | キャッシュコヒーレンス装置 |
US6006310A (en) * | 1995-09-20 | 1999-12-21 | Micron Electronics, Inc. | Single memory device that functions as a multi-way set associative cache memory |
CN101667451A (zh) * | 2009-09-11 | 2010-03-10 | 西安电子科技大学 | 高速数据交换接口的数据缓存器及其数据缓存控制方法 |
CN111124961A (zh) * | 2019-12-30 | 2020-05-08 | 武汉先同科技有限公司 | 一种连续读写模式下的单口ram转伪双口ram的实现方法 |
CN113641626A (zh) * | 2021-10-18 | 2021-11-12 | 睿思芯科(深圳)技术有限公司 | 一种sram读写控制方法及行缓冲控制器 |
CN116136827A (zh) * | 2021-11-17 | 2023-05-19 | 苏州盛科通信股份有限公司 | 一种多口存储设备、读写方法、装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117917735A (zh) | 2024-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11175853B2 (en) | Systems and methods for write and flush support in hybrid memory | |
JP3657622B2 (ja) | エントリ当たり可変ページ寸法の変換ルックアサイドバッファ | |
US9158683B2 (en) | Multiport memory emulation using single-port memory devices | |
US7165144B2 (en) | Managing input/output (I/O) requests in a cache memory system | |
US20050055493A1 (en) | [method for accessing large block flash memory] | |
US5802568A (en) | Simplified least-recently-used entry replacement in associative cache memories and translation lookaside buffers | |
US20090144501A2 (en) | Data storage system with complex memory and method of operating the same | |
US8180965B2 (en) | System and method for cache access prediction | |
US20050144396A1 (en) | Coalescing disk write back requests | |
US5845317A (en) | Multi-way cache expansion circuit architecture | |
US6363460B1 (en) | Memory paging control method | |
CN108694133A (zh) | 用于即时高速缓存关联性的装置、方法和系统 | |
US20070112998A1 (en) | Virtualized load buffers | |
US6000017A (en) | Hybrid tag architecture for a cache memory | |
CN117917735B (zh) | 伪双端口sram的读写控制方法及装置 | |
US11836092B2 (en) | Non-volatile storage controller with partial logical-to-physical (L2P) address translation table | |
CN116136827A (zh) | 一种多口存储设备、读写方法、装置 | |
CN113377684B (zh) | 数据写入系统与方法 | |
CN110688238B (zh) | 一种分离存储的队列实现方法及装置 | |
CN101419543B (zh) | 预测高速寄存器的存取位置的方法及系统 | |
TWI739430B (zh) | 快取記憶體及快取記憶體的管理方法 | |
US20170075571A1 (en) | Memory device and control method thereof | |
US7404049B2 (en) | Method and system for managing address bits during buffered program operations in a memory device | |
CN111506252B (zh) | 快取存储器及快取存储器的管理方法 | |
CN116136828A (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 | ||
GR01 | Patent grant |