模拟多端口方法及模拟多端口记忆体与流程

文档序号:11409494阅读:300来源:国知局
模拟多端口方法及模拟多端口记忆体与流程

本发明涉及存储设备技术领域,特别是涉及模拟多端口方法及模拟多端口记忆体。



背景技术:

一般的,可以将记忆体分为单端口和多端口两种。单端口记忆体每次操作只可以输入一个地址,读取或写入该地址的数据。多端口记忆体每次操作则可以输入多个任意地址信号,任意读取或者写入对应地址信号的数据。

现有半导体ip供应商一般只提供单端口或者双端口静态记忆体sram的记忆体产生器。基于单端口或者多端口的记忆体可以随意产生不同大小的记忆体。

例如,图1为现有技术中惯常使用的单端口sram的6tbitcell(存储单元)的电路原理图。如图1所示,该单端口存储单元由2个p型管和4个n型管组成,wl为选择线。在wl为1时,可以导通m5和m6,从而令该存储单元导通。bl和blb为一对差分数据信号线,连接到读写模块。一般在写入或读取前,同时初始化成高电平,再根据读取或写入数据再做差分。在一个时钟周期内,该单端口存储单元只能执行写入或者读取一个操作。

图2为现有技术中惯常使用的双端口sram的8tbitcell(存储单元)的电路原理图。如图2所示,该双端口存储单元相较于图1,增加了m7和m8开关管,具有2个选择线wl1和wl2以及两对差分数据信号线(bl1、bl2、blb1、blb2)。该双端口存储单元能够在一个时钟周期内同时执行2个读写操作。

在一些应用场合中,如图像处理、视频信号处理、通信等领域,需要从记忆体中连续读写多个地址的数据。例如,处理器(cpu)从主程序记忆体读取指令时一般会连续读取多个指令存入内部的高度缓存器(cache),然后在逐个从cache中读出并执行。或者是在信号处理过程中,从记忆体的某个地址k开始,连续的读取n个数据(k、k+1直至k+n-1)进行处理。

为满足上述应用场景,惯常的解决方法是使用单端口记忆体,并在若干个时钟周期内,连续对单端口记忆体执行多次读写操作,从而完成对记忆体内多个地址的数据的读写操作。

在实现本发明过程中,发明人发现相关技术存在以下问题:现有的单端口记忆体,每次读写一个地址的数据均需要进行一次读写操作。由此,在进行多个连续的数据地址的读写操作时,功耗较高,而且数据读写时延较长。而采用更多端口的记忆体虽然可以减少读写操作所需的时钟周期和功耗,但会导致芯片面积显著增加。



技术实现要素:

本发明实施例提供模拟多端口方法及模拟多端口记忆体,能够解决现有技术中单端口记忆体读写数据功耗较高、时延长的问题。

为解决上述技术问题,本发明实施例提供一种模拟多端口记忆体。其包括:数据输入输出端口、记忆体控制器、读写模块、行解码模块、第1存储区块至第n存储区块,所述存储区块为p列q行的存储单元阵列;每个存储区块中同一行的存储单元的选择线连接到同一个地址线上,每个存储区块有q个地址线,n、p和q为均正整数;所述行解码模块包括行解码器1至行解码器q的q个行解码器;所述行解码模块与第n存储区块的对应的地址线连接;所述行解码模块在所述记忆体控制器的配置下,令对应行解码器输出导通信号导通所述第n存储区块的地址线;n为1-n之间的正整数;导通信号引导系统,所述导通信号引导系统用于将所述导通信号引导至除第n存储区块外,其余各个存储区块对应的地址线;以及交换网,所述交换网通过所述读写模块与n个存储区块连接,根据预定的交换规则匹配所述存储区块及数据输入输出端口。

可选地,设所述模拟多端口记忆体具有0-k的k个地址,每个存储单元具有唯一的地址;第n存储区块的第q行的第一个存储单元的地址为:(q-1)×n+(n-1);n为1至n之间的正整数,q为1至q之间的正整数;第n存储区块的最后一个存储单元的地址为k。

可选地,所述导通信号引导系统包括:与第1存储区块至第n-1存储区块对应设置的n-1个地址线选择模块;所述地址线选择模块包括选择器1至选择器q的q个选择器,所述选择器为二选一选择器;选择器q的输出端与对应的存储区块的地址线q连接;选择器q的两个输入端分别与行解码器q和行解码器q+1耦合;q为1至q之间的正整数;其中,选择器1的输入端分别与行解码器q和行解码器1耦合。

可选地,所述导通信号引导系统包括:与第1存储区块至第n-1存储区块对应设置的n-1个地址线选择模块;所述地址线选择模块包括选择器1至选择器q的q个选择器,所述选择器为二选一选择器;选择器q的输出端与对应的存储区块的地址线q连接;选择器q的两个输入端分别与行解码器q和行解码器q+1耦合;q为1至q之间的正整数;其中,所述行解码模块还包括一个额外的行解码器q,所述额外的行解码器q设置在所述行解码器1旁,所述选择器1的输入端分别与所述额外的行解码器q和行解码器1耦合。

可选地,所述数据输入输出端口至少包括:地址信号输入端口、n个写入数据端口、n个读取数据端口以及n个读写操作端口;n为所述模拟多端口记忆体的端口数量。

可选地,所述交换网包括若干个与所述存储区块对应设置的交换网1至交换网n;所述交换网根据预定的交换规则,选择对应存储区块与所述写入数据端口以及读取数据端口匹配。

为解决上述技术问题,本发明另一实施例提供了一种模拟多端口的方法。所述方法包括:接收一个数据读写指令,所述数据读写指令包括:地址信号以及读写操作信号;根据所述地址信号在对应的行解码器输出导通信号;根据所述地址信号,令所述导通信号输入至各个存储区块对应的地址线,导通对应行的存储单元;根据所述读写操作信号,控制所述存储单元执行对应操作;通过所述地址信号,确定所述n个存储区块与数据输入输出端口的匹配关系。

可选地,所述方法还包括:将数据依据地址依次写入所述n个存储区块的第1行;所述地址包括0-k的k个地址;

在所有存储区块的第1行写入完毕后,重新将数据依次写入所述n个存储区块的第2行;重复上述数据写入操作直至第n存储区块的最后一个地址k被写入。

可选地,所述根据所述地址信号,令所述导通信号输入至各个存储区块对应的地址线,导通对应行的存储单元,具体包括:

行解码器q输出导通信号至第n存储区块的地址线q,令第q行的存储单元导通;

令所述导通信号依次通过若干选择器,进入第n-1存储区块至第1存储区块;

所述导通信号从当前存储区块进入下一存储区块时,通过所述选择器选择进入下一存储区块的当前行地址线或下一行地址线,令对应行的存储单元导通,q为1-q之间的正整数。

可选地,所述导通信号从当前存储区块进入下一存储区块时,通过所述选择器选择进入下一存储区块的当前行地址线或下一行地址线,令对应行的存储单元导通,具体包括:

解析地址信号,获得与地址信号对应的第n存储区块;

向第n存储区块对应的选择器输出第一选择信号;所述第一选择信号为控制导通信号进入下一行地址线的选择信号;

向其它选择器输入第二选择信号,所述第二选择信号为控制导通信号进入当前行地址线的选择信号。

可选地,所述方法还包括:向第n存储区块对应的选择器输出第一选择信号时,将行解码器q输出的导通信号,引导至第n存储区块的地址线1。本发明实施例中提供的模拟多端口方法及模拟多端口记忆体,可以使用单端口存储单元实现多端口模拟的效果。在需要对记忆体的多个连续地址进行读写操作时,只需要对记忆体执行一次操作,在一个时钟周期内即可完成,在节省芯片面积的同时还可以降低功耗和数据读写时延。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

图1为典型的6tbitcell的电路原理图;

图2为典型的8tbitcell的电路原理图;

图3为本发明实施例提供的记忆体的应用环境示意图;

图4为典型的单端口记忆体的输入/输出端口示意图;

图5为典型的单端口记忆体的结构框图;

图6为本发明实施例提供的模拟多端口记忆体的输入/输出端口示意图;

图7为本发明实施例提供的模拟多端口记忆体的结构框图;

图8为本发明另一实施例提供的模拟多端口记忆体的结构框图;

图9为本发明又一实施例提供的模拟多端口记忆体的结构框图;

图10为本发明实施例提供的模拟多端口方法的方法流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

图3为本发明实施例提供的记忆体的应用环境示意图。在该应用环境中,包括记忆体10以及处理器20。

所述记忆体10具有多个地址,指向对应的存储单元(例如每个地址与一位数据对应,或者每个地址可以与8bit或者32bit的数位数据对应)。每个存储单元存储1位数据。处理器20在执行程序指令过程中,例如执行某些图像处理算法、视频处理或者通信帧处理等,需要对记忆体10的连续的多个地址进行读/写操作。

如处理器20在某些图像处理算法中,需要执行读取记忆体10地址n至n+2连续3个地址的数据,并且将运算后的结果写入地址n+3指向的存储单元中的操作。

图4和图5为现有的单端口记忆体。以下结合图4和图5,详细阐述在图3所示的应用环境中,使用现有的单端口记忆体的读写操作过程。

如图4所示,为现有的单端口记忆体在进行读写操作过程中需要的指令或者数据,具体包括:地址信号addr、写入数据wdata、使能信号cs、读写操作信号rwen、时钟信号clk以及读取数据rdata。上述信号均可以采用各种合适的形式,根据实际情况进行设置。例如,可以将该读写操作信号rwen配置为:在rwen=1时,控制记忆体执行读取操作,读取地址addr对应的存储单元的数据作为读取数据rdata输出;在rwen=0时,控制记忆体执行写入操作,将写入数据wdata写入记忆体地址addr指向的存储单元中。

图5为图4所示的单端口记忆体的功能框图。如图5所示,该记忆体可以包括:用以接收指令信号并作出对应处理操作的记忆体控制器100、行解码模块200、读出放大器/写入缓冲器300以及由若干个单端口存储单元组成的存储单元阵列400。

在具体的读写操作过程中,可以设置记忆体控制器100在时钟信号clk的上升沿时解码输入的使能信号cs、读写操作信号rwen和地址信号addr,从而确认需要执行的是读取还是写入操作以及该读/写操作执行的操作地址、操作地址指向的存储单元。记忆体控制器100根据解析结果,将对应的控制信号ctrl以及行解码模块使能信号rowen分别输出至所述行解码模块200以及读出放大器/写入缓冲器300中。

所述行解码模块200包括若干个与存储单元阵列的行数对应设置的行解码器,接收控制器给出的使能信号rowen后,解码地址信号,令对应的行解码器输出导通信号使存储单元阵列400中的某一行导通。

所述读出放大器则根据记忆体控制器100给出的控制信号,放大地址信号addr指向的存储单元的bl和blb信号,作为读取数据rdata输出。例如,所述读出放大器可以配置为:当bl信号的电平高于blb时,所述读出放大器输出信号1,否则输出信号0。所述写入缓冲器则根据记忆体控制器100给出的控制信号,将写入数据wdata写入地址信号addr指向的存储单元。例如,写入缓冲器可以配置为:当wdata为1时,令bl停留在初始化后的电压,blb的电压下拉至接近vss,当wdata为0时则相反。

由于读出放大器和写入缓冲器是成对设置的,分别针对某列存储单元的数据读取和数据写入操作。为陈述简便,以下在说明书附图中以一个功能框300表示读取放大器和写入缓冲器,并简称为“读写模块”300。

为完成图3所示的应用环境的工作任务,处理器20可以在每个时钟周期向记忆体10发送一次读/写操作指令(需要的指令或数据如图4所示),在记忆体10的一个地址上写入数据或者读取某个地址的数据。例如,在第1个时钟周期,完成对地址n的读取操作;在第2个时钟周期,完成地址n+1的读取操作;在第3个时钟周期,地址n+2的读取操作以及在第4个时钟周期,完成对地址n+3的写入操作。

这样的,若使用单端口记忆体,在图3所示的应用环境中,对n个地址的操作需要执行n次对记忆体的操作,所需的功耗较大,涉及的时间也较长(n个时钟周期)。

在另一些实施例中,也可以在图3所示的应用环境中使用具有多端口的记忆体(例如4端口记忆体)。这样的,处理器20在执行对记忆体的连续4个地址的读/写操作时,只需要在1个时钟周期,执行一次对记忆体的操作。但是,更多端口的记忆体需要占用的芯片面积较大,而且更多端口记忆体(例如3端口、4端口记忆体)并非常用的标准产品,一般的半导体ip厂商并不会供应这样的产品,需要自行设计。

为更好的提升单端口记忆体在执行图3所示的,处理器对记忆体的连续地址进行读/写操作时的性能,在本发明实施例提供了一种模拟多端口记忆体。该模拟多端口记忆体可以在使用单端口记忆体的基础上,通过一些增设的功能模块,实现模拟多端口的效果,从而在芯片面积、记忆体成本与记忆体端口数量之间取得平衡。

在本发明实施例提供的模拟多端口记忆体中,使用的存储单元为图1所示的6t的单端口存储单元。当然,还可以使用其它合适类型的存储单元。

图6为本发明实施例提供的模拟多端口记忆体的端口示意图。如图6所示,该记忆体为模拟n个端口的记忆体,可以包括如下所述的数据输入输出端口,用以输入对应的数据/指令或者输出对应的数据:

时钟信号端口clk、使能信号端口cs、地址信号端口addr、写入数据端口wdata1至wdatan、读写操作端口rwen1至rwenn以及读取数据端口rdata1至rdatan。

其中,n具体可以由技术人员根据实际情况或者使用场景的需要设置,例如将n设置为4。地址信号addr为执行读/写操作的第一个地址信号,例如处理器20需要对4-7这4个连续地址执行读/写操作时,图6中输入的地址信号addr为4。

读写操作端口rwen1-rwenn用以输入对于各个地址的读写操作信号。亦即,读写操作端口rwen1输入的信号对应的是地址信号addr的读写操作信号,rwen2对应的是地址addr+1的读写操作信号,直至rwenn对应地址addr+n-1的读写操作信号。

该读写操作信号可以根据实际情况进行配置,例如,在对应端口输入“1”时,表示控制记忆体在该地址执行读取操作,在对应端口输入“0”时,表示控制记忆体在该地址执行写入操作。在本发明的另一实施例中,还可以根据实际需要增加或者减省一些额外的数据端口而不限于图6所示。

图7为本发明实施例提供的模拟多端口记忆体的结构框图。如图7所示,除现有的单端口记忆体所需的模块外,所述模拟多端口记忆体还包括第1至第n的n个独立的存储区块400、n-1个地址线选择模块500以及n个交换网600。

其中,每个存储区块400均为p列q行的存储阵列。每个存储区块400具有与q行对应的地址线1至地址线q,每个存储单元的差分数据信号线bl和blb则连接至对应的读写模块300中,位于同一列的存储单元共享差分数据线bl和blb。

可选地,每一列的存储单元既可以独立的使用一个读写模块300。也可以共享一个读写模块300并增加额外的选择装置,选择导通的对应列的存储单元执行读/写操作。

其中一个存储区块400与单端口记忆体的行解码模块200连接(如图7所示的第n存储区块)。行解码模块200包括行解码器1至行解码器q的q个行解码器,行解码器q与所述第n存储区块的对应的地址线q连接,q为1-q之间的正整数。

在执行记忆体读取操作时,在记忆体控制器100的配置下,行解码模块200对应的行解码器将输出一个导通信号。该导通信号进入第n存储区块的对应的地址线中,导通该行的存储单元。导通的存储单元可以通过读写模块300,读取或者写入数据。

如图7所示,所述地址线选择模块500连接两个相邻的存储区块400。n-1个地址线选择模块500组成一个导通信号引导系统。通过该导通信号引导系统,可以引导导通信号从第n存储区块分别进入到剩余的第1至第n-1存储区块对应的地址线上,从而令n个存储区块中某一行的存储单元导通。

在实际操作过程中,具体可以根据存储区块实际的地址设置情况,配置预定的控制信号或者规则,令所述导通信号引导系统有序的控制各个存储区块需要导通的行(例如,图7中使用选择控制信号sel_n来控制,n为1至n-1的正整数,分别与n-1个地址线选择模块对应,如sel_1、sel_2,…,sel_n-1)。

如图7所示,在一些实施例中,所述选择控制信号sel_n可以是由额外地址线选择模块的控制器502根据输入的地址信号所决定。所述控制器502具体可以采用任何合适的,具有对应解码能力的逻辑运算单元实现。其可以整合在地址线选择模块中,作为地址线选择模块的一部分,也可以设置为分立的功能模块。

在本发明实施例中,通过由多个地址线选择模块组成的导通信号引导系统,只需要对记忆体进行一次操作,即可实现对每个存储区块的其中一个地址执行读/写操作,由此来实现模拟多端口的效果。

当然,除通过导通信号引导系统将导通信号的引导至每个存储区块外,记忆体控制器100还需要根据存储区块的地址排布方式,确定各个存储区块与端口之间的具体对应关系以确保读/写操作能够有序正确的进行。例如,需要确定第1个地址信号addr的读写操作信号对应的存储区块,第n个地址addr+n-1的读写操作信号对应的存储区块等。

在本实施例中,通过连接存储区块以及写入数据端口wdata1-wdatan、读写操作端口rwen1-rwenn以及读取数据端口rdata1-rdatan的交换网600来完成上述端口与存储区块的匹配。所述交换网600根据配置好的交换方式,将存储区块与对应的端口匹配,令记忆体10有序的完成对连续n个地址的数据读取或者写入操作。

在一些实施例中,所述交换网600可以通过2个n:1的选择器实现。

例如,可以使用2个4:1的选择器实现如图8或图9所示的交换网600。实际执行过程中,根据addr[1:0]和交换网对应的储存区块计算两个选择器对应的选择信号,分别选择wdata1~wdata4中的其中一个输出到wdata_bank4以及选择一个rdata_bank1~rdata_bank4到rdata4。

本发明实施例提供的模拟多端口记忆体以单端口存储单元为基础,通过设置额外的导通信号引导系统、交换网并根据实际地址排布,配置对应的控制方式,实现了模拟多端口的效果。

在图3所示的应用环境中,使用本发明实施例提供的模拟多端口记忆体时,处理器20可以在一个时钟周期内,对记忆体执行一次操作来完成在连续n个地址中执行读/写操作。与现有技术中的单端口记忆体相比,所需要的时钟周期和对记忆体的操作次数均得到了极大的降低,而且由于基于单端口存储单元实现,占用的芯片面积较小。

图8为本发明实施例提供的存储区块的地址设置示意图。以下以图8的存储区块地址设置为例,详细描述如何配置上述导通信号引导系统及交换网。

如图8所示,设该模拟多端口记忆体有0-99的100个地址,划分为第1至第4的4个独立的存储区块。每个存储区块均为1列25行的存储单元阵列,具有地址线1至地址线25(如图8所示为wl1-wl25)。

存储区块的地址设置方式为:在第1存储区块的第一行设置1个地址,依次在各个存储区块的第一行放置,直至排满全部存储区块后,重新在第1存储区块的第二行设置下一个地址。

在这样的排布方式下,第n存储区块的第q行(n和q均为正整数,q的取值范围为1至存储区块的最后一行q,n的取值范围为1至最后一个存储区块n)的第一个存储单元对应的地址为:(q-1)×n+(n-1)。在另一实施例中,若需要包含数量更多的地址,可以继续采用上述地址设置方式,令存储单元阵列具有更多的列,例如2列25行的存储单元阵列。

在本实施例中,所述地址线选择模块500由q个选择器501组成(包括选择器1至选择器q)。n-1个地址线选择模块500分别与对应的第1至第n-1存储区块连接,设置在相邻的两个存储区块之间。所述选择器501为二选一选择器,包括选择控制信号输入端,一个输出端,输入端1以及输入端0。

其中,选择器501的输出端与在前的存储区块的地址线连接,两个输入端分别与在后的存储区块的本行以及上一行的地址线连接,同一个地址线选择模块内的选择器501共用相同的选择控制信号。这样的,除了与行解码模块200连接的第n存储区块外,该选择器501可以根据输入的选择控制信号sel_n选择输出端输出的是输入端1还是输入端0的值,从而实现导通信号的引导。例如,当输入选择控制信号值为1时输入端1输出至输出端(如第3存储区块在第1行的导通信号(地址2)将通过选择器,进入第2存储区块的地址线2),而输入选择控制信号值为0时,输入端0输出至输出端,。

另外,选择器1的输入端1与行解码器q的输出耦合。亦即,在前一个存储区块为最后一行地址线导通,选择控制信号值为1时,导通信号将被引导到下一个存储区块的第1行地址线。例如,第3存储区块的地址98导通,选择器接收到的选择控制信号为选择导通信号是进入下一存储区块的下一行地址线时,选择器则将导通信号引导至第2存储区块的第1行地址线(即地址1导通)。

在采用图8所示的记忆体结构时,所述模拟多端口记忆体的具体控制配置方式具体如下:

1)对读写操作信号rwen1-rwen4的分配:

在本实施例中,可以根据一个两位的二进制信号addr[1:0]来确定4个存储区块与读写操作信号rwen1-rwen4之间的匹配关系,该信号addr[1:0]的具体分配如表格1所示:

表格1

该二进制信号addr[1:0]具体的值由输入的地址信号addr所决定。addr[1:0]的取值范围为0-3的整数,与存储区块的数量对应。本领域技术人员可以理解的是,还可以根据存储区块的数量变化,配置更多位数的二进制信号来确定其分配关系。例如,具有8个存储区块时,该二进制信号的取值范围为0-7,需要3位的二进制信号。

2)对选择控制信号sel_n的配置:

所述选择控制信号也可以根据信号addr[1:0]来确定,其具体规则为包括:当addr[1:0]=1时,第1地址线选择模块输入的选择控制信号为sel_1=1,其它情况则取0;当addr[1:0]=2时,第2地址线选择模块输入的选择控制信号sel_2=1,其它情况则取0;当addr[1:0]=3时,第3地址线选择模块输入的选择控制信号sel_3=1,其它情况则取0。当地址线选择模块500输入的选择控制信号为1时,属于该地址线选择模块500的选择器501选择将输入端1引导至输出端。

上述对选择控制信号se_l的配置方法还可以进一步的推广到具有n个存储区块的情况中使用。亦即在采用与图8所示的记忆体相同结构的模拟n端口记忆体时,选择控制信号sel_n的配置方法为:首先确定地址信号addr指向的存储单元所在的存储区块(如第n存储区块)。然后,令第n存储区块对应的第n地址线选择模块的选择信号sel_n的值取1,其它的地址线选择模块的选择信号的值取0。

3)写入数据端口wdata1-wdata4、读取数据端口rdata1-rdate4与存储区块之间对应关系的配置:

设置wdata_bank(n)为第n存储区块写入的数据,rdata_bank(n)为第n存储区块读取的数据。

所述交换网600通过如下所述的规则来匹配存储区块与写入数据端口wdata1-wdata4以及读取数据端口rdata1-rdate4:

对于wdata1-wdata4:则有wdata1=wdata_bank(addr[1:0]+1);wdata2=wdata_bank(addr[1:0]+2);wdata3=wdata_bank(addr[1:0]+3);wdata4=wdata_bank(addr[1:0]+4)。

对于读取数据端口rdata1-rdate4:则有rdata1=rdata_bank(addr[1:0]+1);rdata2=rdata_bank(addr[1:0]+2);rdata3=rdata_bank(addr[1:0]+3);rdata4=rdata_bank(addr[1:0]+4)。

addr[1:0]+n是对应存储区块的编号。在本实施例中,最大的编号为4。若addr[1:0]+n大于4时,则依次循环至1重新计算。

通过上述配置步骤,可以确定每个存储区块中需要执行的操作,并确定写入数据端口wdata1-wdata4、读取数据端口rdata1-rdate4与存储区块的对应关系,有序的执行读写操作。

以下结合实施例对图8所示的模拟多端口记忆体的工作过程进行详细说明。图10为本发明实施例提供的模拟多端口方法的方法流程图。应用图10所示的方法可以实现图7或者图8所示的模拟多端口记忆体,使记忆体在单端口的硬件条件下,具有多端口记忆体的便利。

实施例1:

设图3所示的应用环境中,处理器20需要在记忆体10的地址2-5这四个地址上执行读/写操作。其中,在地址2和3上执行读取操作、4和5地址上执行写入操作。

如图10所示,首先记忆体接收一个数据读写指令。所述数据读写指令包括:地址信号以及读写操作信号(步骤100)。在实施例1中,所述模拟多端口记忆体的数据读写指令可以包括:一个7位的地址信号addr[6:0]=2(十进制表达),四个读写控制信号(其中rwen1和rwen2为1,rwen3和rwen4为0),写入数据端口wdata3和wdata4接收两个写入数据,分别写入地址4和5,并且从rdata1和rdata2分别输出地址2和3的读取数据。

然后,根据所述地址信号在对应的行解码器输出导通信号(步骤200)。即根据地址信号addr[6:2],所述行解码模块200解码后在行解码器1输出导通信号,其它解码器输出无效信号。

记忆体控制器100根据地址信号addr[6:2],确定对应的二进制信号addr[1:0]=2。然后根据表格1,利用控制信号线ctrl1-ctrl4分别将读写控制信号rwen1、rwen2、rwen3以及rwen4分配到对应存储区块的读写模块300中。亦即,rwen3通过ctrl1输出至第1存储区块,rwen4通过ctrl2输出至第2存储区块,rwen1通过ctrl3传输至第3存储区块,rwen2通过ctrl4传输至第4存储区块。

如图10所示,在输出导通信号后,可以令所述导通信号输入至各个存储区块对应的地址线,导通对应行的存储单元(步骤300)。在实施例1中,根据输入addr[1:0]=2,确定第2地址线选择模块的选择控制信号sel_2为1,其它的地址线选择模块的选择控制信号为0并输出。这样的,导通信号导通第4和第3存储区块的第1行后,在第2地址线选择模块的引导下,导通第2和第1存储区块的第2行(如图8的黑色粗框显示)。

由于具有不同的存储区块,需要根据所述读写操作信号,控制所述存储单元执行对应操作(步骤400)。亦即所述读写模块300可以根据读写控制信号,在对应的存储区块执行读写操作。在实施例1中,读写模块300在第1和第2存储区块执行写入操作,而在第3和第4存储区块执行读取操作。

最后,还需要通过所述地址信号,确定存储区块与数据输入输出端口的匹配关系(步骤500)。在实施例1中,可以由所述交换网600完成。根据addr[1:0]=2,各个交换网600通过上述的预定规则,将在第3和第4存储区块执行读取操作获取的数据,交换至rdata1和rdata2输出。并且,将写入数据端口wdata3和wdata4接收到的两个用于写入地址4和5的写入数据分别交换至第1和第2存储区块的读写模块300中,写入第1和第2存储区块。

实施例2:

设图3所示的应用环境中,处理器20需要在记忆体10的地址98-1这四个地址上执行读写操作。其中,地址98和1上执行读取操作、地址0和99地址上执行写入操作。

所述模拟多端口记忆体的数据读写指令包括:地址信号addr[6:0]=6’b110_0010(二进制表达)=98(十进制表达),四个读写控制信号(分别为rwen1=1,rwen2=0,rwen3=0以及rwen4=1)。

记忆体控制器100根据地址信号addr[6:0],确定对应的二进制信号addr[1:0]=2’b10=2。然后根据表格1,利用控制信号线ctrl1-ctrl4分别将读写控制信号rwen1、rwen2、rwen3以及rwen4分配到对应存储区块的读写模块300中。亦即,rwen3通过ctrl1输出至第1存储区块,rwen4通过ctrl2输出至第2存储区块,rwen1通过ctrl3传输至第3存储区块,rwen2通过ctrl4传输至第4存储区块。亦即向读写模块通过ctrl2和ctrl3发出写入操作控制信号,向读写模块通过ctrl1和ctrl4发出读取操作控制信号。

根据地址信号addr[6:2]=5’b11000=24,经过行解码模块解码后,第25地址解码器输出导通信号,其它地址解码器输出无效信号(可以设导通信号的值为1,无效信号的值为0)。

所述地址线选择模块500根据addr[1:0]=2,令第2地址线选择模块的选择控制信号sel_2为1,其它的地址线选择模块的选择控制信号为0。这样的,第4存储区块的第25行的存储单元导通,第3地址线选择模块将导通信号引导到第3存储区块的第25行地址线。第2地址线选择模块的选择器501则将第25地址解码器输出的导通信号,引导到第2存储区块的第1行地址线上,从而令第2存储区块的第1行存储单元导通,第1地址线选择模块进一步将导通信号引导至第1存储区块的第1行地址线(如图9所示的黑色粗框显示)。

根据addr[1:0]=2,所述交换网600可以基于上述的预设规则,将wdata1交换到wdata_bank3,wdata2交换到wdata_bank4,wdata3交换到wdata_bank1以及wdata4交换到wdata_bank2。由于读写操作指令对第1存储区块和第4存储区块执行读取操作,wdata2和wdata3会被忽略。并且,将rdata_bank3交换到rdata1,rdata_bank4交换到rdata2,rdata_bank1交换到rdata3以及rdata_bank2交换到rdata4。由于读写操作指令对第2存储区块和第3存储区块执行写入操作,rdata1和rdata4会被忽略。

为满足实施例2的导通信号引导情况,如图8所示,需要所述导通信号引导系统使用连接线横跨整个行地址解码模块连接地址解码器25与每个地址线选择模块的首个选择器的输入端1。

图9为本发明另一实施例提供的模拟多端口记忆体。如图9所示,为避免设置上述横跨长度大的连接线,在行解码器1的上方还可以设置一个额外的行解码器25。通过该额外设置的行解码器25,可以便于实现地址线选择模块执行将最后一行的导通信号引导至第一行的操作,不需要设置较长的连接线。

本发明实施例提供的模拟多端口记忆体,可以在使用单端口存储单元的前提下,实现模拟多端口的效果,在一个时钟周期内,通过对记忆体的一次读取操作来执行对连续n个地址的读写操作。该模拟多端口记忆体可以基于较少端口的存储单元,在占用较少芯片面积的情况下,获得较多端口记忆体的便利(执行时间短并且省电)。

本领域技术人员根据上述实施例披露的信号配置规则,在另一些实施例中,当模拟多端口记忆体具有更多的存储区块时,例如6个,8个或者更多,用以模拟更多端口数量时,可以使用位数更多的信号来建立与本发明实施例类似的分配表,并规定相应的控制信号规则。

专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的多端口模拟步骤(如图10所示的模拟多端口的数据读写方式),能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。所述的计算机软件可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。

以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1