CN113254373A - 支持同时读写的类双口存储器实现方法、类存储器及芯片结构 - Google Patents

支持同时读写的类双口存储器实现方法、类存储器及芯片结构 Download PDF

Info

Publication number
CN113254373A
CN113254373A CN202110663812.4A CN202110663812A CN113254373A CN 113254373 A CN113254373 A CN 113254373A CN 202110663812 A CN202110663812 A CN 202110663812A CN 113254373 A CN113254373 A CN 113254373A
Authority
CN
China
Prior art keywords
address
read
write
port
sub
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
Application number
CN202110663812.4A
Other languages
English (en)
Other versions
CN113254373B (zh
Inventor
王白羽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Sijiu Microelectronics Co ltd
Original Assignee
Shanghai Xijiu Microelectronics Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Xijiu Microelectronics Co ltd filed Critical Shanghai Xijiu Microelectronics Co ltd
Priority to CN202110663812.4A priority Critical patent/CN113254373B/zh
Publication of CN113254373A publication Critical patent/CN113254373A/zh
Application granted granted Critical
Publication of CN113254373B publication Critical patent/CN113254373B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Static Random-Access Memory (AREA)

Abstract

本申请实施例提供了一种类双口存储器实现方法、类存储器及芯片结构,所述类双口存储器通过两个容量相同的第一单口存储单元和第二存储单元实现,将输入读地址和写地址通过拆分算法拆分为无交集的第一子地址集和第二子地址集,将第一子地址集、第二子地址集和读写使能信号分别映射至第一单口存储单元和第二单口存储单元的地址线及使能线上,第一单口存储单元和第二单口存储单元的读写时钟频率与类双口存储器的读写时钟频率为同一时钟频率,本申请技术方案可广泛应用在需大量使用到同时读写的存储器设计中,极大地节省了芯片面积,降低了成本。

Description

支持同时读写的类双口存储器实现方法、类存储器及芯片 结构
技术领域
本申请各实施例属于存储技术领域,具体涉及一种支持同时读写的类双口存储器实现方法、类存储器及芯片结构。
背景技术
随着集成电路的不断发展,在芯片设计中会使用大量的有一定地址规则的存储器,经常需要在读某个地址数据的时钟周期内,同时对另一个地址进行写入操作,通常的做法有两种,第一种需要使用到双口存储器,双口存储器相比单口存储器的优势在于,具有两套数据/地址接口,可以独立的进行读/写操作,但它的面积相当于是单口存储器的两倍,会使芯片成本上升;第二种是提高读写频率,将读写时钟频率翻倍,但这样增加了功耗,而且在大规模的集成电路的设计中,也不能无限制的提高主频。
综上所述,芯片的面积直接决定了芯片的成本,特别现在大规模集成电路设计中都使用了大量的存储器,比如在电力线载波通信芯片中,其物理层的设计,无论是turbo编解码,还是交织、信道估计以及均衡,都大量需要使用同时读写的存储器,而读写时钟又是同一个时钟。因此在实际应用中,需要一种低成本的可支持同时读写的双口存储器的实现方法来解决上述问题。
发明内容
本申请实施例目的在于克服上述问题或者至少部分地解决或缓减上述问题,本申请提供的技术方案提供了一种采用单口存储单元来实现同时读写的类双口存储器功能的方法,可广泛应用在需要大量使用到同时读写的存储器的设计中,特别适合有一定地址规则的同时读写存储器设计,例如在上述电力线载波通信芯片中,极大地节省了芯片面积,降低了成本。
第一方面,本申请提供了一种支持同时读写的类双口存储器实现方法,所述类双口存储器通过两个容量相同的第一单口存储单元和第二单口存储单元实现,其中,所述第一单口存储单元与第二单口存储单元的容量为预实现的类双口存储器容量的一半,所述方法包括,
将输入读地址和写地址通过拆分算法拆分为无交集的第一子地址集和第二子地址集,在不同读写时刻,读地址或写地址既可以分配在第一子地址集中,也可以分配在第二子地址集中,在每一个读写时刻,读地址和写地址交错分配在不同子地址集中;
将第一子地址集、第二子地址集和读写使能信号以及写数据分别对应至第一单口存储单元和第二单口存储单元的地址线及使能线以及写数据线上,将每一次对类双口存储器的同时读写操作,变换成对第一单口存储单元进行读操作和第二单口存储单元进行写操作,或者变换成对第一单口存储单元进行写操作和第二单口存储单元进行读操作;
所述方法还包括,
将输入读地址及读使能先进行延迟,以便将读地址和写地址通过拆分算法进行拆分为无交集的第一子地址集和第二子地址集;
或,将类双口存储器的输出读数据进行延迟后并进行分时选择,使得类双口存储器的输出读数据相对于读地址和读使能的延迟时钟周期数保持固定。
与现有技术相比,本申请提供了一种采用单口存储单元来实现同时读写的类双口存储器功能的方法,本申请通过两个容量相同的单口存储单元实现类双口存储器的功能,将原读写地址第一子地址集和第二子地址集通过映射单元分别映射到两个单口存储单元的读写地址的地址线上,不需要额外增加任何的存储资源,另外,本申请通过固定延迟时钟周期数设计,在进行类双口存储器的使用上可按统一时序处理,无需针对不固定的读操作延迟时序再去针对性地弥补时序差异,简化处理步骤,本申请提供的技术方案可广泛应用在需要大量使用到同时读写的存储器设计中,极大地节省了芯片面积,降低了成本。
第二方面,本申请实施例提供了一种类双口存储器,包括,映射单元、第一单口存储单元和第二单口存储单元;
映射单元,用于将输入读地址和写地址通过拆分算法拆分为无交集的第一子地址集和第二子地址集;在不同读写时刻,读地址或写地址既可以分配在第一子地址集中,也可以分配在第二子地址集中,在每一个读写时刻,读地址和写地址交错分配在不同的子地址集中;并用于将第一子地址集、第二子地址集和读写使能信号分别映射至第一单口存储单元和第二单口存储单元的地址线及使能线上;用于将类双口存储器的输出读数据相对于读地址和读使能的延迟时钟周期数保持固定;还用于将读取的第一单口存储单元和第二单口存储单元的数据合并输出;
第一单口存储单元和第二单口存储单元,分别由第一单口存储单元和第二单口存储单元的时钟频率驱动进行读写操作,第一单口存储单元和第二单口存储单元的读写时钟频率与类双口存储器的读写时钟频率为同一时钟频率。
与现有技术相比,本申请提供了一种类双口存储器,本申请通过两个容量相同的单口存储单元实现类双口存储器的功能,将原读写地址第一子地址集和第二子地址集通过映射单元分别映射到两个单口存储单元的读写地址的地址线上,不需要额外增加任何的存储资源,另外,本申请通过固定延迟时钟周期数设计,在进行类双口存储器的使用上可按统一时序处理,无需针对不固定的读操作延迟时序再去针对性地弥补时序差异,简化处理步骤,本申请提供的技术方案可广泛应用在需要大量使用到同时读写的存储器设计中,极大地节省了芯片面积,降低了成本。
第三方面,本申请实施例提供了一种芯片结构,包括上述任一项所述的一种类双口存储器。
与现有技术相比,本申请第三方面提供实施例的有益效果与上述任一项技术方案的有益效果相同,在此不再赘述。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。后文将参照附图以示例性而非限制性的方式详细描述本申请的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分,本领域技术人员应该理解的是,这些附图未必是按比例绘制的,在附图中:
图1为本申请一具体实施例中提供的一种支持同时读写的类双口存储器实现方法的流程图;
图2为本申请一具体实施例中提供的一种支持同时读写的类双口存储器实现方法的流程图;
图3为本申请一具体实施例中提供的一种类双口存储器的实现结构示意图;
图4为本申请一具体实施例中提供的图4所示类双口存储器的详细实现结构示意图;
图5为本申请一具体实施例中从0到2n-1的地址全集集合及子集划分方式;
图6为本申请一具体实施例内部单口存储单元及外层类双口存储器波形示意图;
图7为本申请一具体实施例内部单口存储单元及外层类双口存储器波形示意图;
图8为本申请另一具体实施例内部单口存储单元及外层类双口存储器波形示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
如图1所示,本申请提供的一种支持同时读写的类双口存储器实现的方法,所述类双口存储器通过两个容量相同的第一单口存储单元和第二存储单元实现,其中,所述第一存储单元与第二单口存储单元的容量为预实现的类双口存储器容量的一半,所述方法包括,
步骤S11,将输入读地址及读使能先进行延迟,然后将读地址和写地址通过拆分算法进行拆分为无交集的第一子地址集和第二子地址集;在不同的读写时刻,读地址或写地址既可以分配在第一子地址集中,也可以分配在第二子地址集中,但在每一个读写时刻,读地址和写地址总被交错分配在不同的子地址集中。
步骤S12,将第一子地址集、第二子地址集和读写使能信号分别映射至第一单口存储单元和第二单口存储单元的地址线及使能线上,第一单口存储单元和第二单口存储单元的读写时钟频率与类双口存储器的读写时钟频率为同一时钟频率,将对类双口存储器的同时读写操作,变换成对第一单口存储单元进行读操作和第二单口存储单元进行写操作,或者变换成对第一单口存储单元进行写操作和第二单口存储单元进行读操作。
通过步骤S11可以保证双口存储器的读数据时间相对读地址和读使能时间延迟固定时钟周期数,通常设计为延迟固定时钟周期数为2拍数。为了实现读写地址总是分配在无交集的地址集,有的情况下需要对读地址延迟1拍数时钟周期来解决冲突。当产生冲突时,将输入读地址和读使能延迟1拍数,输出读数据延迟器不打开。当不产生冲突时,输入读地址和读使能延迟器不打开,输出读数据延迟器延迟1拍数。这样始终保证双口存储器的读数据时间相对读地址和读使能时间延时固定时间都是2拍数,举例来说,当输入读地址和写地址存在偶数个时钟延时关系时,将输入读地址和读使能延迟1拍数,读数据延迟器不打开。当输入读地址和写地址存在奇数个时钟延时关系时,输入读地址延迟器不打开,输出读数据延迟器延迟1拍数,本申请通过固定延迟时钟周期数设计,在系统中进行双口类存储器的使用上将可按统一时序处理,无需针对不固定的读操作延迟时序再去针对性地弥补时序差异,简化处理步骤。
如图2所示,本申请提供的一种支持同时读写的类双口存储器实现的方法,包括如下步骤:
步骤S21,将读地址和写地址通过拆分算法进行拆分为无交集的第一子地址集和第二子地址集;在不同的读写时刻,读地址或写地址既可以分配在第一子地址集中,也可以分配在第二子地址集中,但在每一个读写时刻,读地址和写地址总被交错分配在不同的子地址集中。
步骤S22,将第一子地址集、第二子地址集和读写使能信号分别映射至第一单口存储单元和第二单口存储单元的地址线及使能线上,第一单口存储单元和第二单口存储单元的读写时钟频率与类双口存储器的读写时钟频率为同一时钟频率,将对类双口存储器的同时读写操作,变换成对第一单口存储单元进行读操作和第二单口存储单元进行写操作,或者变换成对第一单口存储单元进行写操作和第二单口存储单元进行读操作。
步骤S23,将类双口存储器的输出读数据进行延迟后并进行分时选择,使得类双口存储器的输出读数据相对于读地址和读使能的延迟时钟周期数保持固定。
在本实施例中步骤S23和步骤S21与图1中的步骤S11的效果一样,在此不在赘述。
本申请实施例如果使用2个容量规格为D xW的单口存储器,来实现2DxW容量的类双口存储器,并通过简易的映射单元将原读写地址转换为两个单口存储单元的读写地址来实现类存储器的功能,其中2D为类双口存储器的深度,表示类双口存储器中存储单元的总数,W为类双口存储器的宽度,表示每个存储单元的容量,单位是bit。
在本发明实施例中,类双口存储器的写操作数据与第一单口存储单元和第二单口存储单元的写操作数据相同。
所述将输入读地址和写地址通过拆分算法拆分为无交集的第一子地址集和第二子地址集,包括,
根据输入读地址和写地址按照某种转换逻辑转换为顺序读地址和写地址;
将所述新类型读地址和写地址除以2并进行左移得到为无交集的第一子地址集和第二子地址集。
其中,所述输入读地址和写地址为顺序读地址和写地址或矩阵交织型读地址和写地址。
需要说明的是,如果将输入读地址和写地址定义为ADDR1,首先通过逻辑地址转换器将输入读地址和写地址ADDR1根据其规则转换成顺序读地址和写地址ADDR2,再将顺序读地址和写地址ADDR2除以2即简单左移便得到两个单口存储器的地址。
如果ADDR1本身就是顺序0,1,2,3,4,5,6,…2D-1,则ADDR2=ADDR1。
如果ADDR1为某种矩阵交织型地址,比如0,R, 2R,…(L-1)R, 1, R+1,…(L-1)R+1,…, R-1, R-1+R, …,(L-1)R+R-1,其中R和L都为偶数,R*L=2D(存储容量),那么ADDR2=mod(ADDR1,R)*L+floor(ADDR1/R); mod表示取余,floor表示向下取整。
如果ADDR1为其他类型地址,因为ADDR1的产生必然是按照顺序即计数器根据某种逻辑方法产生的,那么按照该逻辑方法的逆向,将输入读地址和写地址根据其规则转换成顺序地址ADDR2,得到ADDR2后,再将顺序地址除以2即简单左移便得到两个单口存储器的地址。
单口存储单元的常规读写操作做法为,片选使能生效且写使能无效时,单口存储单元进行读操作;片选使能生效且写使能生效时,单口存储单元进行写操作,在本发明实施例中,第一单口存储单元和第二单口存储单元均遵从上述常规做法。
通过如图1和图2所示的方法,本申请通过两个容量相同的存储单元实现类双口存储器的功能,不需要额外增加任何的存储资源,通过映射单元将原读写地址第一子地址集和第二子地址集分别映射到两个单口存储单元的读写地址的地址线上,本申请通过固定延迟时钟周期数设计,在进行类双口存储器的使用上可按统一时序处理,无需针对不固定的读操作延迟时序再去针对性地弥补时序差异,简化处理步骤,本申请提供的技术方案可广泛应用在需要大量使用到同时读写的存储器的设计中,极大地节省了芯片面积,降低了成本,相比于双口存储器,采用本申请提供的方法实现的类双口存储器同样具有两套数据/地址接口,且可以独立的进行读/写操作,在同等大小的的情况下,类双口存储器的面积比常用的双口存储器小,降低了芯片成本。
如图3所示,本发明实施例提供了一种类双口存储器的实现结构,包括映射单元21、第一单口存储单元22和第二单口存储单元23;
映射单元21,用于用于将输入读地址和写地址通过拆分算法拆分为无交集的第一子地址集和第二子地址集;在不同读写时刻,读地址或写地址既可以分配在第一子地址集中,也可以分配在第二子地址集中,在每一个读写时刻,读地址和写地址交错分配在不同的子地址集中,并用于将第一子地址集、第二子地址集和读写使能信号分别映射至第一单口存储单元21和第二单口存储单元23的地址线及使能线上;用于将类双口存储器的输出读数据相对于读地址和读使能的延迟时钟周期数保持固定;还用于将读取的第一单口存储单元22和第二单口存储单元23的数据合并输出;
第一单口存储单元22和第二单口存储单元23,第一单口存储单元22和第二单口存储单元23分别与映射单元21通过信号线连接,且分别由第一单口存储单元22和第二单口存储单元23的时钟频率驱动进行读写操作,第一单口存储单元22和第二单口存储单元23的时钟频率、类双口存储器写操作时钟频率和读操作时钟频率为同一时钟频率。
与现有技术相比,本申请提供了一种类双口存储器,本申请通过两个容量相同的单口存储单元实现类双口存储器的功能,将原读写地址第一子地址集和第二子地址集通过映射单元分别映射到两个单口存储单元的读写地址的地址线上,不需要额外增加任何的存储资源,另外,本申请通过固定延迟时钟周期数设计,在进行类双口存储器的使用上可按统一时序处理,无需针对不固定的读操作延迟时序再去针对性地弥补时序差异,简化处理步骤,本申请提供的技术方案可广泛应用在需要大量使用到同时读写的存储器的设计中,极大地节省了芯片面积,降低了成本。
如图4所示,本发明实施例提供的一种类双口存储器的详细实现结构,包括映射单元31、第一单口存储单元32和第二单口存储单元33;
映射单元31,包括地址逻辑分配器311,延迟器312和选择器313;
地址逻辑分配器311,用于将输入读地址和写地址通过拆分算法拆分为无交集的第一子地址集和第二子地址集,在不同读写时刻,读地址或写地址既可以分配在第一子地址集中,也可以分配在第二子地址集中,在每一个读写时刻,读地址和写地址交错分配在不同的子地址集中;
延迟器312,用于将类双口存储器的读数据输出相对于读地址和读使能的延迟时钟周期数保持固定;
也就是说,延迟器312用于保证双口存储器的读数据时间相对读地址和读使能的延迟时钟周期数是固定的,通常设计为延迟固定时钟周期为2拍数。为了实现读写地址总是分配在无交集的地址集,有的情况下需要先对读地址延迟1拍数来解决冲突。当产生冲突时,将输入读地址和读使能延迟1拍数,输出读数据延迟器不打开。当不产生冲突时,输入读地址和读使能延迟器不打开,输出读数据延迟器延迟1拍数。这样始终保证双口存储器的读数据时间相对读地址和读使能时间延迟时钟数总是2拍数,举例来说,当输入读地址和写地址存在偶数个时钟延时关系时,将输入读地址延迟1拍,输出读数据延迟器不打开。当输入读地址和写地址存在奇数个时钟延时关系时,读地址延迟器不打开,读出数据延迟器延迟1拍。本申请通过固定此延迟时钟周期数设计,在系统中进行双口类存储器的使用上将可按统一时序处理,无需针对不固定的读操作延迟时序再去针对性地弥补时序差异,简化处理步骤。
选择器313,用于将读取的第一单口存储单元32和第二单口存储单元33的数据合并输出。
也就是说,在本申请实施例中,在映射单元31中,由地址逻辑分配器311负责将地址分配为2个子地址集,并将两个子地址集的地址以及读写使能分别映射到两个单口存储单元的地址线和使能线上,选择器313将从两个单口存储单元读回的数据合并并输出,地址和数据延迟器312确保读出数据相对输入读地址延迟时间固定。
在本申请实施例中,类双口存储器的读时钟CLKA 等于写时钟CLKB 等于内部两个单口存储单元的CLK,不需对单口存储单元提高时钟频率,映射单元逻辑简单。
类双口存储器的写数据DB直接接入到两个单口存储单元,即第一单口存储单元32的写数据D1等于第二单口存储单元33的写数据D2等于类双口存储器的写数据DB。
第一单口存储单元32读操作生效时,类双口存储器的读数据QA为第一单口存储单元32的数据Q1,第二单口存储单元33读操作生效时,则类双口存储器的读数据QA为第二单口存储单元33的数据Q2,两个单口存储单元读操作交替进行。
如图5所示,示出了映射单元全集,以及划分子集的方式。在映射单元中,读写地址[0,2n-1]作为一个全集集合,把读写地址[0,2n-1]分配为无交集的两个子地址集,这两个子地址集构成全集集合[0,2n-1],同一时刻类双口存储器的读写地址(AA/AB)分配在两个不同的子地址集中。
图5示出了从0到2n-1的地址全集集合,分配A为子地址集1,分配B为子地址集2,A和B的成员个数分别都为n个,A和B可以是任意不规则的子地址集,且满足下面的公式:
Figure 429230DEST_PATH_IMAGE004
Figure 462004DEST_PATH_IMAGE008
;(
Figure 620614DEST_PATH_IMAGE009
表示取并集,
Figure 901497DEST_PATH_IMAGE010
表示取交集,
Figure 356768DEST_PATH_IMAGE011
表示为空,1表示全集,即0 到2n-1的地址全集集合集合)。
图5所示,在此实例中,地址ADDR1为顺序输入,读写地址AA/AB分别为0,1,…2n-1,总共有2n个数,在映射单元中,将对应的地址AA/AB分为两个子地址集,即{0,2,4,…2n-4,2n-2}以及{1,3,5,…2n-2,2n-1},这两个子地址集可分别对应映射到两个单口存储单元上的地址{0,1,2,…n-1}。
在图6中,从T0时刻开始进行读操作,即读地址AA从T1时刻开始有效。对于第一单口存储单元32,T0/T2/T4…/T2n-2时刻进行读操作, T5/T7/T9…/T2n-1/T2n+1/T2n+3时刻进行写操作;对于第二单口存储单元33而言,时刻T1/T3/T5…/T2n-1进行读操作,时刻T6/T8/T10…/T2n-2/T2n/T2n+2/T2n+4进行写操作,可看到在波形最后都实现了类双口存储器的同时读写。
在这个情况下,输入读地址写地址存在奇数个时钟延时关系,读地址延迟器不打开,读出数据延迟器延迟1拍。
第一单口存储单元的片选使能CEN_1及写使能WEN_1都在低电平时生效;第二单口存储单元的片选使能CEN_2及写使能WEN_2都在低电平时生效。单口存储单元的常规读写做法为,片选使能生效,且写使能无效时,单口存储单元进行读操作;片选使能生效且写使能生效时,单口存储单元进行写操作。在本实施例中,第一单口存储单元和第二单口存储单元均遵从上述常规做法。
第一单口存储单元32读操作生效时,类双口存储器的读数据QA为第一单口存储单元32的数据Q1,第二单口存储单元33读操作生效时,则类双口存储器的读数据QA为第二单口存储单元33的数据Q2。两个单口存储单元读操作交替进行。在图7中,和图6不同的是,从T-1时刻开始读,即读地址AA从T-1开始有效。此时输入读地址写地址存在偶数个时钟延时关系,因此延迟器将读地址延迟1拍,即A0和A1的读地址和读使能相较AA和CENA在时间上延迟了一拍,读出数据延迟器不打开,因此仍可实现读出数据相对于输入读地址固定延迟2拍。
如图8所示,读写地址AA/AB为某种矩阵交织型地址,0,R, 2R,…(L-1)R, 1, R+1,…(L-1)R+1,…, R-1, R-1+R, …,(L-1)R+R-1。其中R=4,L=4;地址分配映射器将输入的AA/AB地址转换为单口存储器的地址。
从T0时刻开始进行读操作,对于第一单口存储单元32,T0/T2/T4…/T2n-2时刻进行读操作,T5/T7/T9…/T2n-1/T2n+1/T2n+3时刻进行写操作;对于第二单口存储单元33而言,时刻T1/T3/T5…/T2n-1进行读操作,时刻T6/T8/T10…/T2n-2/T2n/T2n+2/T2n+4进行写操作,可看到在波形最后都实现了类双口存储器的同时读写。
与图6一样,第一单口存储单元32读操作生效时,类双口存储器的读数据QA为第一单口存储单元32的数据Q1,第二单口存储单元33读操作生效时,则类双口存储器的读数据QA为第二单口存储单元33的数据Q2,两个单口存储单元读操作交替进行。
本发明提供了一种采用单口存储器来实现同时读写的双口存储器功能的方法,可广泛应用在需要大量使用到同时读写的存储器的设计中,例如电力线载波通信芯片中,极大地节省了芯片面积,降低了成本。在例如通信芯片中,其物理层大量的需要使用存储器,不同存储器的输入地址可能是不同的规则,但每一轮访问存储器的输入地址规则都是固定不随时间变化的,针对所需每个双口存储器的不同输入地址规则,进行每个差异化的映射单元设计,即地址拆分算法,而非通用化的设计,映射单元采取差异化的针对输入地址规则进行差异化的逻辑分配,使得每个存储器只需要固定支持一种规则的映射算法,而不同存储器之间的映射算法可以根据规则类别是相同或者不同,无需在同一个存储器的映射算法中支持多种规则类别,从而实现资源和代价最小化,对于对成本和功耗敏感的专用芯片设计尤其具有指导意义。
如背景技术章节中所述,在芯片设计中会使用大量的规则存取存储器,尤其是在一些设计中经常需要同时读某个地址的数据,然后写入另一个地址,目前芯片设计中使用到通常的做法有两种,第一种需要使用到双口存储器,双口存储器相比单口存储器的优势在于,具有两套数据/地址接口,可以独立的进行读/写操作,但它的面积相当于是单口存储器的两倍,会使芯片成本上升;第二种是提高读写频率,将读写时钟频率翻倍,但这样增加了功耗,而且在大规模的集成电路的设计中,也不能无限制的提高主频。
一个满足在100MHz频率上同时读写要求的2048*32bits (2048深度32比特位宽)的存储器的实现方式有上述提供的两种通常做法,即方案一使用2048深度32比特位宽的双口存储器;方案二采用工作在200MHz的一个2048*32bits (2048深度32比特位宽)的单口存储器来实现;方案三则采用本发明的类双口存储器,即由两个工作在100MHz的1024*32bits(1024深度32比特位宽)的单口存储器以及映射单元组成的实现结构。
以SMIC55纳米工艺为例,方案一的面积为97869.798平方微米,功耗为3.16毫瓦;方案二的芯片面积为51465.315平方微米,功耗为4.33毫瓦;方案三的芯片面积为2个29412.547平方微米即58825.094平方微米,功耗为2.065毫瓦。从上述数据中可以看到,本发明即方案三在芯片面积和功耗综合考虑的情况下具有更大的优势。
第三方面,本申请实施例提供了一种芯片结构,包括上述任一项所述的一种类双口存储器。
与现有技术相比,本申请第三方面提供实施例的有益效果与上述任一项技术方案的有益效果相同,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (11)

1.一种支持同时读写的类双口存储器实现方法,其特征在于,所述类双口存储器通过两个容量相同的第一单口存储单元和第二单口存储单元实现,其中,所述第一单口存储单元与第二单口存储单元的容量为预实现的类双口存储器容量的一半,所述方法包括,
将输入读地址和写地址通过拆分算法拆分为无交集的第一子地址集和第二子地址集,在不同读写时刻,读地址或写地址既可以分配在第一子地址集中,也可以分配在第二子地址集中,在每一个读写时刻,读地址和写地址交错分配在不同子地址集中;
将第一子地址集、第二子地址集和读写使能信号以及写数据分别对应至第一单口存储单元和第二单口存储单元的地址线及使能线以及写数据线上,将每一次对类双口存储器的同时读写操作,变换成对第一单口存储单元进行读操作和第二单口存储单元进行写操作,或者变换成对第一单口存储单元进行写操作和第二单口存储单元进行读操作;
所述方法还包括,
将输入读地址及读使能先进行延迟,以便将读地址和写地址通过拆分算法进行拆分为无交集的第一子地址集和第二子地址集;
或,将类双口存储器的输出读数据进行延迟后并进行分时选择,使得类双口存储器的输出读数据相对于读地址和读使能的延迟时钟周期数保持固定。
2.如权利要求1所述的一种支持同时读写的类双口存储器实现方法,其特征在于,
第一单口存储单元和第二单口存储单元的读写时钟频率与类双口存储器的读写时钟频率为同一时钟频率。
3.如权利要求1所述的一种支持同时读写的类双口存储器实现方法,其特征在于,类双口存储器的写操作数据与第一单口存储单元或第二单口存储单元的写操作数据相同。
4.如权利要求1至3任一项所述的一种支持同时读写的类双口存储器实现方法,其特征在于,第一单口存储单元和第二单口存储单元的读写操作交替进行。
5.如权利要求4所述的一种支持同时读写的类双口存储器实现方法,其特征在于,延迟时钟周期数为2拍数。
6.如权利要求4所述的一种支持同时读写的类双口存储器实现方法,其特征在于,当输入读地址和写地址产生冲突时,将输入读地址和读使能延迟时钟周期数为1拍数,输出读数据延迟器不打开;当输入读地址和写地址不产生冲突时,输入读地址和读使能延迟器不打开,输出读数据延迟器延迟时钟周期数为1拍数。
7.如权利要求1所述的一种支持同时读写的类双口存储器实现方法,其特征在于,所述将输入读地址和写地址通过拆分算法拆分为无交集的第一子地址集和第二子地址集,包括,
根据输入读地址和写地址按照某种转换逻辑转换为顺序读地址和写地址;
将所述顺序读地址和写地址除以2并进行左移得到为无交集的第一子地址集和第二子地址集。
8.如权利要求7所述的一种支持同时读写的类双口存储器实现方法,其特征在于,所述输入读地址和写地址为顺序读地址和写地址或矩阵交织型读地址和写地址。
9.一种类双口存储器,其特征在于,包括,映射单元、第一单口存储单元和第二单口存储单元,其中,所述第一单口存储单元与第二单口存储单元的容量相等且为预实现的类双口存储器容量的一半;
映射单元,用于将输入读地址和写地址通过拆分算法拆分为无交集的第一子地址集和第二子地址集,在不同读写时刻,读地址或写地址既可以分配在第一子地址集中,也可以分配在第二子地址集中,在每一个读写时刻,读地址和写地址交错分配在不同的子地址集中;并用于将第一子地址集、第二子地址集和读写使能信号分别映射至第一单口存储单元和第二单口存储单元的地址线及使能线上;用于将类双口存储器的输出读数据相对于读地址和读使能的延迟时钟周期数保持固定;还用于将读取的第一单口存储单元和第二单口存储单元的数据合并输出;
第一单口存储单元和第二单口存储单元,分别由第一单口存储单元和第二单口存储单元的时钟频率驱动进行读写操作,第一单口存储单元和第二单口存储单元的读写时钟频率与类双口存储器的读写时钟频率为同一时钟频率。
10.如权利要求9所述的一种类双口存储器,其特征在于,所述映射单元包括地址逻辑分配器、地址映射器、延迟器和选择器;
地址逻辑分配器,用于将输入读地址和写地址通过拆分算法拆分为无交集的第一子地址集和第二子地址集,在不同读写时刻,读地址或写地址既可以分配在第一子地址集中,也可以分配在第二子地址集中,在每一个读写时刻,读地址和写地址交错分配在不同的子地址集中;
用于将第一子地址集、第二子地址集和读写使能信号以及写数据分别对应至第一单口存储单元和第二单口存储单元的地址线及使能线以及写数据线上,将每一次对类双口存储器的同时读写操作,变换成对第一单口存储单元进行读操作和第二单口存储单元进行写操作,或者变换成对第一单口存储单元进行写操作和第二单口存储单元进行读操作;
延迟器,用于将输入读地址及读使能先进行延迟,然后将读地址和写地址通过拆分算法进行拆分为无交集的第一子地址集和第二子地址集;
或,用于将类双口存储器的输出读数据进行延迟后并进行分时选择,使得类双口存储器的输出读数据相对于读地址和读使能的延迟时钟周期数保持固定;
选择器,用于将读取的第一单口存储单元和第二单口存储单元的数据合并输出。
11.一种芯片结构,其特征在于,包括如权利要求9至10任一项所述的一种类双口存储器。
CN202110663812.4A 2021-06-16 2021-06-16 支持同时读写的类双口存储器实现方法、类存储器及芯片结构 Active CN113254373B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110663812.4A CN113254373B (zh) 2021-06-16 2021-06-16 支持同时读写的类双口存储器实现方法、类存储器及芯片结构

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110663812.4A CN113254373B (zh) 2021-06-16 2021-06-16 支持同时读写的类双口存储器实现方法、类存储器及芯片结构

Publications (2)

Publication Number Publication Date
CN113254373A true CN113254373A (zh) 2021-08-13
CN113254373B CN113254373B (zh) 2021-10-12

Family

ID=77188089

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110663812.4A Active CN113254373B (zh) 2021-06-16 2021-06-16 支持同时读写的类双口存储器实现方法、类存储器及芯片结构

Country Status (1)

Country Link
CN (1) CN113254373B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117149671A (zh) * 2023-08-30 2023-12-01 上海合芯数字科技有限公司 缓存实现方法、系统、介质及电子设备

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1360314A (zh) * 2000-12-20 2002-07-24 富士通株式会社 基于动态随机存取存储器核心的多端口存储器
CN101030180A (zh) * 2007-04-06 2007-09-05 北京理工大学 一种基于同步访问模式的多端口存储器
CN101038571A (zh) * 2007-04-19 2007-09-19 北京理工大学 一种块传输的多端口存储控制器
CN101043289A (zh) * 2006-06-16 2007-09-26 华为技术有限公司 一种解除存储器读写冲突的方法和装置
CN101127208A (zh) * 2007-08-15 2008-02-20 西安龙腾微电子科技发展有限公司 异步伪双端口图像存储器的访问冲突处理方法
CN101226767A (zh) * 2008-02-18 2008-07-23 华为技术有限公司 双端口ram的读写控制电路、方法及装置
CN101770817A (zh) * 2010-01-18 2010-07-07 华东师范大学 基于fpga的多接口存储器验证系统
CN102436427A (zh) * 2011-11-07 2012-05-02 华为技术有限公司 一种数据读写方法和存储设备
CN103730149A (zh) * 2014-01-20 2014-04-16 中国科学院电子学研究所 一种双端口存储器的读写控制电路
EP2767980A1 (en) * 2012-05-28 2014-08-20 Brocade Communications Systems, Inc. Two-port memory implemented with single-port memory blocks
CN107025924A (zh) * 2015-12-31 2017-08-08 Arm有限公司 存储器使用的端口模式
CN108121503A (zh) * 2017-08-08 2018-06-05 鸿秦(北京)科技有限公司 一种NandFlash地址映射及块管理算法
CN108604456A (zh) * 2016-02-26 2018-09-28 英特尔公司 在存储器插槽中支持多个存储器类型
US20190303307A1 (en) * 2009-12-23 2019-10-03 Cypress Semiconductor Corporation Variable read latency on a serial memory bus

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1360314A (zh) * 2000-12-20 2002-07-24 富士通株式会社 基于动态随机存取存储器核心的多端口存储器
CN101043289A (zh) * 2006-06-16 2007-09-26 华为技术有限公司 一种解除存储器读写冲突的方法和装置
CN101030180A (zh) * 2007-04-06 2007-09-05 北京理工大学 一种基于同步访问模式的多端口存储器
CN101038571A (zh) * 2007-04-19 2007-09-19 北京理工大学 一种块传输的多端口存储控制器
CN101127208A (zh) * 2007-08-15 2008-02-20 西安龙腾微电子科技发展有限公司 异步伪双端口图像存储器的访问冲突处理方法
CN101226767A (zh) * 2008-02-18 2008-07-23 华为技术有限公司 双端口ram的读写控制电路、方法及装置
US20190303307A1 (en) * 2009-12-23 2019-10-03 Cypress Semiconductor Corporation Variable read latency on a serial memory bus
CN101770817A (zh) * 2010-01-18 2010-07-07 华东师范大学 基于fpga的多接口存储器验证系统
CN102436427A (zh) * 2011-11-07 2012-05-02 华为技术有限公司 一种数据读写方法和存储设备
EP2767980A1 (en) * 2012-05-28 2014-08-20 Brocade Communications Systems, Inc. Two-port memory implemented with single-port memory blocks
CN103730149A (zh) * 2014-01-20 2014-04-16 中国科学院电子学研究所 一种双端口存储器的读写控制电路
CN107025924A (zh) * 2015-12-31 2017-08-08 Arm有限公司 存储器使用的端口模式
CN108604456A (zh) * 2016-02-26 2018-09-28 英特尔公司 在存储器插槽中支持多个存储器类型
CN108121503A (zh) * 2017-08-08 2018-06-05 鸿秦(北京)科技有限公司 一种NandFlash地址映射及块管理算法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117149671A (zh) * 2023-08-30 2023-12-01 上海合芯数字科技有限公司 缓存实现方法、系统、介质及电子设备
CN117149671B (zh) * 2023-08-30 2024-05-24 上海合芯数字科技有限公司 缓存实现方法、系统、介质及电子设备

Also Published As

Publication number Publication date
CN113254373B (zh) 2021-10-12

Similar Documents

Publication Publication Date Title
US10593390B2 (en) Dynamic memory supporting simultaneous refresh and data-access transactions
JP6018118B2 (ja) マイクロスレッドメモリ
CN101236774B (zh) 单端口存储器实现多端口存储功能的装置和方法
JP2012248267A (ja) 多重プリフェッチi/o構成を備えるデータパスを有するメモリデバイスおよび方法
CN101169772A (zh) 用于传送命令和地址信号的方法和设备
US6266751B1 (en) Continuously sliding window method and apparatus for sharing single-ported memory banks between two agents
CN113254373B (zh) 支持同时读写的类双口存储器实现方法、类存储器及芯片结构
KR20100100395A (ko) 복수의 프로세서를 포함하는 메모리 시스템
CN105677609A (zh) 一种SoC系统的总线结构
WO2006050983A1 (en) Memory access using multiple sets of address/data lines
JP2625141B2 (ja) デュアルポートramメモリ装置
CN102004626B (zh) 双口存储器
US20110191564A1 (en) Hierarchical Organization Of Large Memory Blocks
CN105589679B (zh) 用于共享处理器过程上下文的寄存器堆组织
CN212484941U (zh) 时钟电路以及存储器
US4879680A (en) Multi-slave master-slave flip-flop
CN110827891B (zh) 信号转换单元、存储器以及应用于存储器的驱动方法
WO2023274032A1 (zh) 存储访问电路、集成芯片、电子设备及存储访问方法
CN105373348A (zh) 一种混合内存的硬件实现系统及方法
KR100343831B1 (ko) 반도체메모리
CN107293318B (zh) 一种可配位宽的嵌入式存储器
CN117931728B (zh) 一种片上存储器及其访问方法
JP3765452B2 (ja) 半導体記憶装置
KR100350177B1 (ko) 메모리시스템
CN216748737U (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
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Room 102-2, Qihang Building (West), No. 777 Zhongguan West Road, Zhuangshi Street, Zhenhai District, Ningbo City, Zhejiang Province, 315201

Patentee after: Shanghai Sijiu Microelectronics Co.,Ltd.

Address before: 201210 East 2nd floor, No. 88, Shangke Road, Pudong New Area, Shanghai (Howell Science Park)

Patentee before: SHANGHAI XIJIU MICROELECTRONICS CO.,LTD.