实现同步双端口存储器ip的并行读写的结构及方法

文档序号:6472141阅读:256来源:国知局
专利名称:实现同步双端口存储器ip的并行读写的结构及方法
实现同步双端口存储器IP的并行读写的结构及方法
背景技术
对有多个处理器的系统来讲,它需要同时对存储器进行存取操作,这会引起严重
的数据总线的竞争。而这可以通过采用特殊结构的存储器,比如多端口存储器来避免。当 前,多端口存储器尤其是双端口存储器广泛应用于数据通信设备中。 对于一般的同步双端口存储器知识产权(Intellectual Property,简称IP)来 说,通常在同一时刻对同一地址进行读写操作时会造成读写操作的错误。具体情况如下当 一个端口进行读操作而另一个端口同时对该地址进行写操作时,读出数据错误。此时读出 的数据既不能保证是该地址上原有的数据,也不能保证是新写入的数据,而是一个不能确 定的值;当两个端口进行读操作时,两个端口的读操作均正确,均输出存储器该地址上的数 据。也就是说,在通常的同步双端口存储器IP中,如果一个端口进行读操作的同时另一个 端口对同一地址进行写操作,则读出的数据有可能会是错误的。为了保证上述情况下两个 端口读和写操作的正确性,同步双端口存储器IP通常会对两个端口的时钟做出限制。如图 l所示,当对同一地址进行读和写操作时会要求两个端口的时钟clockA 101和clockB 102 的上升沿间隔一段时间t100来避免读写冲突,从而保证两个端口的读写操作均正确。
在有些设计当中会要求在某时刻从存储器的一个端口读出某一地址上原有的数 据,同时从另一端口向该地址写入新的数据。比如商用FPGA芯片中的嵌入式存储器就需 要实现同一周期内的先读后写操作。这时为了保证两个端口读写操作的正确性,传统的做 法是将这两个操作间隔一定的时间。比如在设计存储器时,加入探测电路,等读操作完成后 再进行写操作。如果采用这种机制,就需要定制整个存储器,给设计带来很大的成本和风 险,而且会延长产品开发周期。为了快速实现该设计,必须尽量复用存储器IP,采用新的设 计思想来实现。 —种方法是对写时钟进行延迟,如图2所示使写时钟202的上升沿落后于读时
钟201的上升沿一定的时间t,保证先读出该地址上的原有数据,然后写入新的数据。可以
让系统时钟200通过延迟单元来得到写时钟,只要保证写时钟始终落后于读时钟一定的时
间,就能在同一周期内实现先读后写的操作。这种方法的缺点是延迟单元的延时受工艺和
温度的影响比较大,不同工艺、温度条件下延迟单元的延时可能会有很大的差别,很难保证
在所有的情况下该延时都满足条件,而且当温度改变时,系统的性能将会受到很大的影响,
因此系统缺乏稳定性。这种设计方法还依赖于工艺,不同的工艺下延迟单元的延迟不同。因
此当改变工艺时,这些延迟单元又要重新进行设计,增加了设计的复杂性。 从以上的分析中,我们可以看出时钟延迟并不是一种好的解决方案。它增大了系
统的不稳定性,并且使得设计对不同工艺具有不可移植性。为此,本发明提出了一种不同于
这些技术的处理方法以解决上述技术带来的困难。

发明内容
本发明的目的是提供一种实现同步双端口存储器IP的并行读写的结构和方法, 提出了一种嵌入式存储器的结构及其存取控制策略用于实现当双端口嵌入式存储器的一
4个端口进行写操作,另一端口同时对同一地址进行读操作时,能在同一周期内先读出该地 址上的原有数据,然后在该地址写入新数据的功能。 为实现上述目的,本发明提供的实现同步双端口存储器IP的并行读写的结构,为 一嵌入式存储器结构,其主要包括 同步双端口存储器IP,用于嵌入式存储器基本的读写操作; 仲裁电路,根据端口输入信息及一级缓存器缓存信息输出控制信号控制将端口信 号缓存至一级缓存器或传送给同步双端口存储器IP ; —级缓存器,根据仲裁电路的控制信号缓存各自端口输入的包括数据、地址和写 使能信号; 二级缓存器,在时钟上升沿到来时缓存一级缓存器中的包括数据、地址和写使能 信号; 选择器,根据仲裁电路提供的控制信号决定向同步双端口存储器IP传送包括数 据、地址和写使能的端口输入信号或一级缓存器中包括数据、地址和写使能的信号;以及
读出控制电路,根据端口输入信息及二级缓存器中的信息控制输出二级缓存器中 的数据或输出同步双端口存储器IP的输出数据。 本发明的仲裁电路具有端口信号输入端口 , 一级缓存器信号输入端口 ;该仲裁电 路根据端口输入信号和一级缓存器中的信号输出控制信号将端口输入信号缓存至一级缓 存器或直接输入双端口存储器IP,或将一级缓存器中的信号传送给同步双端口存储器IP 中。 本发明的一级缓存器具备接收端口输入信号的输入端,其根据仲裁电路提供的控
制信号有选择性地缓存包括数据、地址和写使能信号的本端口输入信号。 本发明的二级缓存器具备接收一级缓存器输出信号的输入端,其在时钟的上升沿
到来时缓存包括数据、地址和写使能信号的本端口一级缓存器的输出信号。 本发明的选择器根据仲裁电路输出的控制信号来控制将端口信号传送给同步双
端口存储器IP或将一级缓存器中的信号传送给同步双端口存储器IP。 本发明的读出控制电路根据端口地址输入信号以及二级缓存器中缓存的信号决 定输出二级缓存器中的数据或输出同步双端口存储器IP的输出数据。 本发明提供的利用上述嵌入式存储器实现同步双端口存储器IP的并行读写的方 法,决定输出数据的来源,决定输出的数据是二级缓存器中的数据还是同步双端口存储器 IP的输出数据,该方法包含 比较第一端口地址与第一端口二级缓存器中的地址是否相同,为确定输出数据来 源提供依据; 比较第一端口地址与第二端口二级缓存器中的地址是否相同,为确定输出数据来 源提供依据; 判断第一端口二级缓存器中缓存的是写操作还是读操作,为确定输出数据来源提 供依据; 判断第二端口二级缓存器中缓存的是写操作还是读操作,为确定输出数据来源提 供依据。 本发明的方法中还包含
5
比较第一及第二端口的地址是否相同,为嵌入式存储器中的选择器选择端口信号 还是选择一级缓存器中的信号以及一级缓存器是否缓存本端口输入信号提供依据;
比较第一端口地址与第一端口一级缓存器中的地址是否相同,为嵌入式存储器中 的选择器选择端口信号还是选择一级缓存器中的信号以及一级缓存器是否缓存本端口输 入信号提供依据; 比较第二端口地址与第一端口一级缓存器中的地址是否相同,为嵌入式存储器中 的选择器选择端口信号还是选择一级缓存器中的信号以及一级缓存器是否缓存本端口输 入信号提供依据; 判断第一端口是进行写操作还是进行读操作,为嵌入式存储器中的选择器选择 端口信号还是选择一级缓存器中的信号以及一级缓存器是否缓存本端口输入信号提供依 据; 判断第二端口是进行写操作还是进行读操作,为嵌入式存储器中的选择器选择 端口信号还是选择一级缓存器中的信号以及一级缓存器是否缓存本端口输入信号提供依 据; 判断第一端口一级缓存器中缓存的是写操作还是读操作,为嵌入式存储器中的选 择器选择端口信号还是选择一级缓存器中的信号以及一级缓存器是否缓存本端口输入信 号提供依据。 本发明的效果是 其一是实现双端口存储器一个端口进行读操作的同时另一端口对同一地址进行 写操作,而能够在同一周期内先读出该地址上的原有数据,然后写入新的数据这一读写方 式,以满足系统对存储器的需求。 其二是得到一个稳定的双端口存储器,尽量减少工艺和温度带来的影响。避免采 用时钟延迟,而通过对端口信号采取缓存的办法来实现先读后写操作可以减少工艺和温度 带来的影响,增强系统的稳定性。 其三是尽量减少设计风险和设计周期。在可能的情况下,尽量使用第三方厂商提 供的存储器IP进行设计。采用第三方提供的存储器IP可以避免从基本的存储单元开始设 计,能大大减少存储器设计的风险,提高设计效率。 其四是尽可能采用自动化的流程,增强设计的可移植性。 一旦本发明提出的存储 器结构的代码得以实现,就可将其由一种工艺移植到另一种工艺,而代码却不需要改变或 改变很少。这种设计的可移植性同样可以大大提高设计的效率。


图1为已有同步双端口存储器IP要求对同一地址进行读写操作时读操作和写操 作的时钟上升沿必须相隔一段时间。 图2为已有技术通过延迟单元使写操作的时钟上升沿落后于读操作的时钟上升 沿。 图3为本发明双端口存储器系统结构图 图4为本发明输入信号选择和缓存策略的原理流程图 图5为本发明输出数据选择策略的原理流程图
6
图6为本发明输入信号选择和缓存策略的判断逻辑流程图
图7为本发明输出数据选择策略的判断逻辑流程图
具体实施例方式本发明所提策略有两个关键点1)输入信号的选择和缓存;2)输出数据的选择。
这两个关键点分别通过输入信号选择和缓存策略以及输出数据选择策略来实现。
图3示出了本发明中双端口存储器系统的结构,其包含同步双端口存储器IP
300、仲裁电路301、读出控制电路302、一级缓存器303和304、二级缓存器303'和304',以
及选择器305和306。 其中,仲裁电路301、一级缓存器303和304以及选择器305和306主要完成如图 4所示的输入信号选择和缓存策略。 一级缓存器303和选择器305与A端口相对应,对A端 口的输入信号进行操作;一级缓存器304和选择器306与B端口相对应,对B端口的输入信 号进行操作。需要说明的是, 一级缓存器303和304以及二级缓存器303'和304'均是本 领域公知技术,并非本发明的发明要点,因此对其详细的内部构造和工作原理不再做详细 说明,也不推荐附图。 仲裁电路301将输入信号A端口地址信号307、 A端口写使能信号309、 B端口地 址信号308、B端口写使能信号310、A端口一级缓存器303中的数据、地址及写使能信号319 和B端口 一级缓存器304中的数据、地址及写使能信号320经过图4所示的数据选择和缓存 策略进行判断,按照判断结果输出控制A端口一级缓存器303的控制信号311、控制B端口 一级缓存器304的控制信号312、控制选择器305的控制信号313以及控制选择器306的控 制信号314,用以控制一级缓存器、选择器完成本发明的数据选择和缓存策略,达到存储器 IP的双端口在同一时间周期内同时进行读和写,能够避免冲突并保证整个双端口嵌入式存 储器系统能够读出和写入正确数据的目的。 与其相配合的,读出控制电路302与二级缓存器303' 、304'以及同步双端口存储 器IP共同完成如图5所示的输出数据选择策略。在输出数据选择策略中,对二级缓存器 303'和304'的中的地址和写使能信号进行判断。读出控制电路302的输入信号来源于二 级缓存器303'和304'中的数据、地址和写使能信号,同步双端口存储器IP的输出数据,以 及A、B端口输入的地址信号,按照图5所示的输出数据选择策略进行选择,最终输出所需的 数据322。 上述仲裁电路301进行的输入信号选择和缓存策略和读出控制电路302进行的输 出数据选择策略是同时进行的,只有两个策略同时进行,才能保证双端口存储器一个端口 进行写操作,另一端口同时对同一地址进行读操作时,可先读出该地址上的原有数据再向 该地址写入新数据的功能。 下面结合附图,对本发明进行更详细地说明。
图3为本发明双端口存储器系统的结构。 仲裁电路301的输入信号有307、308、309、310、319和320,301根据上述输入信 号的具体情况来决定输出的控制信号311、312、313和314。 —级缓存器303和304的输入信号来源为A、B端口的输入信号315、316,该输入 信号主要包括两个端口输入的数据、地址和写使能等信号;仲裁电路301输出的控制信号
7311和312 ;与同步双端口存储器IP同步的时钟信号323。 一级缓存器303通过仲裁电路 301输出的控制信号311决定是否将与其对应的A端口输入信号315进行缓存;一级缓存 器304通过仲裁电路301输出的控制信号312决定是否将与其对应的B端口输入信号316 进行缓存。 一级缓存器303和304中的缓存信号分别输出至选择器305和306以及二级缓 存器303,和304',它们同时输出至仲裁电路301。 二级缓存器303'和304'的输入信号来源为A、 B端口一级缓存器303、304的输 出信号,该输出信号主要包括数据、地址和写使能等信号。当时钟信号323的上升沿到来 时,一级缓存器303和304中缓存的信号319和320就会被分别缓存到二级缓存器303'和 304'中。二级缓存器303'和304'的缓存信号,包括缓存的数据、地址和写使能等信号,在 时钟的上升沿到来后就会输出至读出控制电路302,以完成读出数据的操作。
选择器305和306的输入来源有A、B端口的输入信号315、316,该输入信号主要 包括端口输入的数据、地址和写使能等信号;仲裁电路301输出的控制信号313和314 ;以 及从一级缓存器303和304中输出的缓存信号,该信号主要包括数据、地址和写使能等信 号。选择器305通过控制信号313决定传送给存储器IP的信号317是端口输入信号315 还是缓存在一级缓存器303中的缓存信号319。选择器306通过控制信号314决定传送给 存储器IP的信号318是端口信号316还是缓存在一级缓存器304中的缓存信号320。
读出控制电路302的输入来源有A端口地址信号307、B端口地址信号308、二级 缓存器303'中缓存的地址、写使能和数据信号319'以及二级缓存器304'中缓存的地址、 写使能和数据信号320',以及从同步双端口存储器IP输出的数据。使其可以通过图5所 示的输出数据选择策略来决定最终的输出数据322到底是二级缓存器中的缓存信号319'、 320'还是存储器IP的输出数据321。 同步双端口存储器IP 300的输入信号为由选择器305和306输出的信号;以及时 钟信号323。在选择器305、306按照如图4所示的输入信号选择策略所进行的判断结果来 决定同步双端口存储器IP两个端口的信号来源,从而决定同步双端口存储器IP两个端口 所进行的操作。 同步双端口存储器IP 300、一级缓存器303和304以及二级缓存器303'和304' 都是在时钟323的上升沿触发。对于同步双端口存储器IP,只有在时钟323的上升沿到来 时才开始进行读写操作。仲裁电路301只对A、B端口的地址和写使能信号以及一级缓存器 303和304中缓存的地址和写使能信号进行比较判断并输出相应的控制信号311、312、313 和314。选择器305和306根据其选择控制端信号313和314的情况来选择输入端口信号, 它直接将端口输入的信号(包括端口的数据、写使能以及地址等全部信号)传输至同步双 端口存储器IP,或者将一级缓存器中缓存的信号(包括缓存的数据、写使能以及地址等全 部信号)传输至同步双端口存储器IP。当时钟323的上升沿到来时,一级缓存器303和304 根据其使能端信号311和312的情况对A、 B端口的数据、写使能以及地址等全部信号进行 缓存或不进行缓存。对于二级缓存器303'和304',只要时钟323的上升沿一来就会将一 级缓存器中缓存的信号(包括数据、写使能以及地址等全部信号)进行缓存。在本发明的 输入信号选择和缓存策略中,仲裁电路301进行比较和判断的信号为端口信号和一级缓存 器303和304中缓存的信号。而在本发明的输出数据选择策略中,读出控制电路302进行 比较和判断的信号为端口信号和二级缓存器303'和304'中缓存的信号。
下面结合图4,对本发明的数据选择和缓存策略进行详细说明。 本发明利用一种选择性的缓存策略来避免出现读写冲突而造成读出数据的错误。
图4所示为控制图3中选择器305和306选择将端口信号还是将一级缓存器中的信号传送
给同步双端口存储器IP,同时也控制一级缓存器303和304是否缓存端口信号。下面以A
端口为例进行分析,B端口的情形可依次类推进行分析,此处不做重复说明。 图中400为仲裁电路301需要进行判断的六项内容比较307与308,判断A端口
与B端口的地址是否相同;比较307(A端口的地址)与其相应端口一级缓存器303中缓存
的地址是否相同;比较308 (B端口的地址)与与A端口一级缓存器303中缓存的地址是否
相同;判断309(A端口的写使能信号)是读使能还是写使能;判断310(B端口的写使能信
号)是读使能还是写使能;以及与A端口相对应的一级缓存器303中缓存的写使能信号是
读使能还是写使能。 归纳起来,主要需要处理如下五种情形 (1)A、B端口地址相同且A端口进行写操作。此时不管B端口进行读操作还是写 操作都会存在读写冲突,此时需要将一级缓存器303中的数据传送至同步双端口存储器 IP300,当时钟323的上升沿到来时,传送至同步双端口存储器IP300的操作就会被同步双 端口存储器IP执行,同时A端口的写操作被缓存至A端口的一级缓存器303中,而A端口 一级缓存器中的原有操作也同时被缓存至二级缓存器303'中。为避免同步双端口存储器 IP的端口出现读写冲突而将有冲突的写操作进行缓存,此时采用图4所示的情形1进行处 理。 (2)A、B端口地址相同,A端口进行读操作,但此时A端口一级缓存器303中缓存有 与A端口地址相同的写操作。此时说明上次的A端口的写操作由于避免读写冲突或其它原 因还缓存在一级缓存器303中,并没有送给同步双端口存储器IP300。此时缓存在一级缓存 器303中的写操作被送给同步双端口存储器IP300,当时钟323的上升沿到来时,该写操作 被同步双端口存储器IP300执行,同时一级缓存器303中缓存的写操作被缓存至二级缓存 器303'。由于一级缓存器303中的原写操作会被同步双端口存储器IP300执行,其一级缓 存器303中缓存的操作也应该被更新,否则按图5所示的读出数据选择策略读出的数据可 能是错误的。因此,在时钟323的上升沿到来时,A端口的读操作也会同时缓存至一级缓存 器303之中而将原有的写操作覆盖掉。对于这种情形,采用图4所示的情形2进行处理。
(3)A、B端口地址不同,A端口进行写操作,但此时A端口一级缓存器303中缓存有 与A端口写操作地址相同的写操作。虽然此时A、 B端口不存在读写冲突,但由于A端口一 级缓存器中缓存有上次没有写入同步双端口存储器IP300的数据,当时钟323的上升沿到 来时,应让同步双端口存储器IP300执行一级缓存器303中缓存的写操作,而端口的写操作 也应同时被缓存至一级缓存器303中而将原有的写操作覆盖掉。即将一级缓存器303中 的原有操作传送给同步双端口存储器IP300,当时钟323的上升沿到来时,该操作就会被同 步双端口存储器IP300执行,同时一级缓存器303中的原有操作也会被缓存至二级缓存器 303'中,而A端口的写操作也会被缓存至一级缓存器303中而将原有的写操作覆盖掉。对 于这种情形,采用图4所示的情形3进行处理。 (4)A、B端口地址不同,A端口进行读操作,B端口进行写操作,A端口一级缓存器 303中缓存有与B端口地址相同的写操作。此时A端口的读操作应传送给同步双端口存储
9器IP300以使其输出相应地址上的数据,B端口的写操作也会直接传送给同步双端口存储器IP300。此时,由于最新的数据已被写入同步双端口存储器IP300,缓存在A端口 一级缓存器303中的写操作应该被A端口的读操作所覆盖。即将A端口的读操作直接传送给同步双端口存储器IP300,当时钟323的上升沿到来时,该操作就会被同步双端口存储器IP300执行而读出相应地址上的数据,同时一级缓存器303中的原有写操作会被缓存至二级缓存器303'中,而A端口的读操作也会同时被缓存至一级缓存器303中而将原有的写操作覆盖掉。对于这种情形,采用图4所示的情形4进行处理。 (5)对于上述四种情形之外的情形。A端口信号可直接传送给同步双端口存储器IP300, A端口操作不需要缓存到与其端口对应的一级缓存器303中。即当时钟323的上升沿到来时,同步双端口存储器IP300直接执行A端口的操作,同时一级缓存器303中缓存的操作保持不变,而此时二级缓存器303'仍会缓存一级缓存器303中的操作。对于这种情形,采用图5所示的其它情形进行处理。 本发明的基本思想是通过缓存有读写冲突的写操作来避免同步双端口存储器IP的两个端口出现同时对同一地址进行读写操作的情形,从而避免从同步双端口存储器IP读出错误的数据。由于写操作有可能缓存在缓存器中,其数据并没有写入存储器IP,因此在读出数据时需要通过一定的方法来判断需要读出的数据是在同步双端口存储器IP中还是在缓存器中。判断的方法就是本发明所提出的输出选择策略。 图5示出了本发明中输出数据的选择策略。如上所述,图5的输出数据选择策略主要由读出控制电路302来完成。读出控制电路302通过输出数据选择策略对输入的A端口地址信号307、B端口地址信号308、二级缓存器303'中缓存的写使能和地址信号319'以及二级缓存器304'中缓存的写使能和地址信号320'进行判断,根据判断结果决定将同步双端口存储器IP300的输出数据还是将二级缓存器303、304中的数据输出。读出控制电路302的输出结果伴随其输入信号的改变而改变,当时钟323的上升沿到来后,同步双端口存储器IP的输出数据、二级缓存器303'和304'中缓存的信号会发生变化,读出控制电路的输出也会随之发生相应的改变。 输出数据选择策略根据读出控制电路302的输入信号307 (A端口地址)、308 (B端口地址)、319' (A端口二级缓存器303'中缓存的数据、地址和写使能)、320' (B端口二级缓存器304'中缓存的数据、地址和写使能),按照图5所示的输出数据选择策略来输出相应的数据。B端口输出数据322的选择策略和A端口的一样,可依此类推得到。A端口输出数据322的选择策略主要包括七个部分500、511、512、513、521、522和523。其中
500给出了读出控制电路302需要进行比较和判断的内容比较A端口地址与二级缓存器303'中缓存的地址是否相同?比较A端口地址与二级缓存器304'中缓存的地址是否相同?判断二级缓存器303'中缓存的是写操作还是读操作(通过二级缓存器303'中缓存的写使能信号来判断)?判断二级缓存器304'中缓存的是写操作还是读操作(通过二级缓存器304'中缓存的写使能信号来判断)?这些需要比较和判断的信号由读出控制电路302的输入307、308、319'和320'提供。通过这些比较和判断可以为输出数据322的来源选择提供依据。 511、512和513将500的比较判断结果分成了三类。 511对应的是A端口地址与B端口二级缓存器304'中缓存的地址相同且二级缓存
10器304'中缓存的是写操作的情形。此时说明二级缓存器304中缓存有需要输出的数据,应 按照521输出二级缓存器304'中缓存的数据。 512对应的是在A端口地址与B端口二级缓存器304'中缓存的地址不同或者二级 缓存器304'中缓存的是读操作的情况下,A端口地址与A端口二级缓存器303'中缓存的 地址相同且二级缓存器303'中缓存的是写操作的情形。此时说明B端口二级缓存器304' 中没有缓存需要输出的数据,而A端口二级缓存器303'中却缓存有需要输出的数据,此时 应按照522输出A端口二级缓存器303'中缓存的数据。 513对应的是511和512之外的情形,此时说明二级缓存器303'和304'中均没有
缓存需要输出的数据,此时应按照523输出同步双端口存储器IP300的输出数据321。 521、522和523分别给出了 511、512和513这三种情况下输出数据322的来源。 521说明在511这种情况下应输出二级缓存器304'中缓存的数据。 522说明在512这种情况下应输出二级缓存器303'中缓存的数据。 523说明在513这种情况下应输出同步双端口存储器IP 300的输出数据321。 下面结合图6对本发明的选择和缓存策略的流程进行说明。 步骤600 :仲裁电路301根据信号307与308判断外界给嵌入式存储器A、 B端口
的地址307与308是否相同。如果相同则进入步骤601,如果不同则进入步骤611。 步骤601 :仲裁电路301根据A端口的写使能信号309判断A端口是进行读操作
还是写操作。如果是读操作则进入步骤602,如果是写操作则进入步骤604。 步骤602 :仲裁电路301通过一级缓存器303的输出信号319与A端口地址307进
行比较,判断A端口地址307与A端口 一级缓存器303中缓存的地址是否相同。如果相同
则进入步骤603,否则进入步骤606。 步骤603 :仲裁电路301通过一级缓存器303的输出信号319中的写使能信号判 断A端口一级缓存器303中缓存的是读操作还是写操作。如果是读操作则进入步骤606,如 果是写操作则进入步骤604。 步骤604 :仲裁电路301输出控制信号311使A端口的输入信号(数据、地址和写 使能等)315进入一级缓存器303。同时仲裁电路301输出控制信号313使选择器305选择 将A端口一级缓存器303中的原有信号传送给同步双端口存储器IP300 ;当时钟323的上 升沿到来后,同步双端口存储器IP执行A端口一级缓存器303中的原有信号,而同时A端 口一级缓存器303中的原有信号被缓存至二级缓存器303',而A端口信号也被缓存到一级 缓存器303中以覆盖303中的原有信号。 步骤605 :仲裁电路301输出控制信号311使A端口的输入信号(数据、地址和写 使能等)315进入一级缓存器303。同时仲裁电路301输出控制信号313使选择器305选择 将A端口信号315传送给同步双端口存储器IP300。当时钟323的上升沿到来后,同步双端 口存储器IP执行A端口的输入信号,而同时A端口一级缓存器303中的原有信号被缓存至 二级缓存器303',而A端口信号也被缓存到一级缓存器303中以覆盖303中的原有信号。
步骤606 :仲裁电路301输出控制信号311使A端口的输入信号(数据、地址和写 使能等)315不进入一级缓存器303。同时仲裁电路输出控制信号313使选择器305选择将 A端口信号315传送给同步双端口存储器IP300。当时钟323的上升沿到来后,同步双端口 存储器IP执行A端口的输入信号,A端口 一级缓存器303中的原有信号被缓存至二级缓存器303',而A端口一级缓存器303中缓存的信号保持不变。 步骤611 :仲裁电路301根据A端口写使能信号309判断A端口是进行读操作还
是写操作。如果是读操作则进入步骤612,如果是写操作则进入步骤602。 步骤612 :仲裁电路301根据B端口写使能信号310判断B端口是进行读操作还
是写操作。如果是读操作则进入步骤606,如果是写操作则进入步骤613。 步骤613 :仲裁电路301通过B端口地址信号308和A端口一级缓存器303中缓
存的信号319来比较B端口地址308与A端口一级缓存器303中缓存的地址是否相同。如
果相同,则进入步骤614,否则进入步骤606。 步骤614 :仲裁电路301通过A端口一级缓存器303中缓存的信号319中的写使 能信号判断A端口一级缓存器303中缓存的是读操作还是写操作。如果是读操作则进入步 骤606,如果是写操作则进入步骤605。 图7示出了本发明中A端口输出数据322的选择策略,它给出了A端口输出数据是 输出二级缓存器303'和304'中的数据还是输出同步双端口存储器IP300的输出数据321 的规则。B端口输出数据的选择策略与A端口的一样,可依此类推得到。A端口的输出数据 选择策略包含步骤如下 步骤700 :读出控制电路302通过A端口地址信号307和B端口二级缓存器304' 中缓存的信号320'中的地址信号判断A端口地址307与B端口二级缓存器304'中缓存的 地址是否相同。如果相同则进入步骤701,否则进入步骤702。 步骤701 :读出控制电路302通过B端口二级缓存器304'中缓存的信号320'中 的写使能信号判断B端口二级缓存器304'中缓存的是读操作还是写操作。如果是读操作 则进入步骤702,如果是写操作则进入步骤704。 步骤702 :读出控制电路302通过A端口地址信号307和A端口二级缓存器303' 中缓存的信号319'中的地址信号比较A端口地址307与其端口二级缓存器303'中缓存的 地址是否相同。如果相同则进入步骤703,否则进入步骤706。 步骤703 :读出控制电路302通过A端口二级缓存器303'中缓存的信号319'中 的写使能信号判断A端口二级缓存器303'中缓存的是读操作还是写操作。如果是读操作 则进入步骤706,如果是写操作则进入步骤705。 步骤704 :读出控制电路302输出B端口二级缓存器304'中缓存的数据。 步骤705 :读出控制电路302输出A端口二级缓存器303'中缓存的数据。 步骤706 :读出控制电路302输出存储器IP300的输出数据321。 本发明的侧重点是解决双端口存储器一个端口进行写操作,另一端口同时对同一
地址进行读操作时产生的读写冲突问题。当出现这种冲突时,按照本发明提出的策略可实
现先读出该地址上的原有数据再向该地址写入新数据的功能。由于在上电时,所有缓存器
中的信号会被清零。只要存储器两端口不出现同时对同一地址进行写操作的情形,那么按
照本发明提出的策略对输入输出数据进行控制后,就会始终读出正确的数据。 综上所述,虽然本发明仅以一实例披露如上,但其并非用以限定本发明,本领域技
术人员在不脱离本发明的精神和范围的情况下,可作各种的更改与润饰,因此本发明的保
护范围应以权利要求范围所界定的内容为准。
1权利要求
一种实现同步双端口存储器IP的并行读写的结构,为一嵌入式存储器,其特征在于,主要包括同步双端口存储器IP,用于嵌入式存储器基本的读写操作;仲裁电路,根据端口输入信息及一级缓存器中的信息输出控制信号控制将端口信号缓存至一级缓存器或传送给同步双端口存储器IP;一级缓存器,根据仲裁电路的控制信号缓存各自端口输入的包括数据、地址和写使能信号;二级缓存器,缓存一级缓存器中的包括数据、地址和写使能信号;选择器,根据仲裁电路提供的控制信号决定向同步双端口存储器IP传送包括数据、地址和写使能的端口输入信号或一级缓存器中包括数据、地址和写使能的信号;以及读出控制电路,根据端口输入地址信息及二级缓存器中的信息控制输出二级缓存器中的数据或输出同步双端口存储器IP的输出数据。
2. 如权利要求1所述的实现同步双端口存储器IP的并行读写的结构,其特征在于,所 述仲裁电路具有端口信号输入端口 , 一级缓存器信号输入端口 ;该仲裁电路根据端口输入 信号和一级缓存器中的信号输出控制信号将端口输入信号缓存或直接输入双端口存储器 IP,或将缓存器中的信号传送给同步双端口存储器IP中。
3. 如权利要求1所述的实现同步双端口存储器IP的并行读写的结构,其特征在于,所 述缓存器具备接收端口输入信号的输入端,其根据仲裁电路提供的控制信号有选择性地缓存包括数据、地址和写使能信号的本端口输入信号。
4. 如权利要求1所述的实现同步双端口存储器IP的并行读写的结构,其特征在于,存 在一级缓存器和二级缓存器,其中一级缓存器根据仲裁电路提供的控制信号有选择的缓 存端口信号,二级缓存器用于在每一时钟上升沿到来时就会缓存一级缓存器中缓存的包括 数据、地址和写使能信号。
5. 如权利要求1所述的实现同步双端口存储器IP的并行读写的结构,其特征在于,所 述选择器根据仲裁电路输出的控制信号来控制将端口信号传送给同步双端口存储器IP或 将一级缓存器中的信号传送给同步双端口存储器IP。
6. 如权利要求1所述的实现同步双端口存储器IP的并行读写的结构,其特征在于,所 述读出控制电路根据端口输入地址信号以及二级缓存器中缓存的信号决定输出二级缓存 器中的数据或输出同步双端口存储器IP的输出数据。
7. 利用权利要求l所述的嵌入式存储器实现同步双端口存储器IP的并行读写的方法, 决定输出数据的来源,决定输出的数据是二级缓存器中的数据还是同步双端口存储器IP 的输出数据,该方法包含比较第一端口地址与第一端口二级缓存器中的地址是否相同,为确定输出数据来源提 供依据;比较第一端口地址与第二端口二级缓存器中的地址是否相同,为确定输出数据来源提 供依据;判断第一端口二级缓存器中缓存的是写操作还是读操作,为确定输出数据来源提供依据;判断第二端口二级缓存器中缓存的是写操作还是读操作,为确定输出数据来源提供依据。
8.利用权利要求1所述的嵌入式存储器实现同步双端口存储器IP的并行读写的方法, 决定将端口输入信号缓存至一级缓存器或直接输入双端口存储器IP,或将一级缓存器中的 信号传送给同步双端口存储器IP,该方法包含比较第一及第二端口的地址是否相同,为选择器选择端口信号还是选择一级缓存器中 的信号以及一级缓存器是否缓存本端口输入信号提供依据;比较第一端口地址与第一端口一级缓存器中的地址是否相同,为选择器选择端口信号 还是选择一级缓存器中的信号以及一级缓存器是否缓存本端口输入信号提供依据;比较第二端口地址与第一端口一级缓存器中的地址是否相同,为选择器选择端口信号 还是选择一级缓存器中的信号以及一级缓存器是否缓存本端口输入信号提供依据;判断第一端口是进行写操作还是进行读操作,为选择器选择端口信号还是选择一级缓 存器中的信号以及一级缓存器是否缓存本端口输入信号提供依据;判断第二端口是进行写操作还是进行读操作,为选择器选择端口信号还是选择一级缓 存器中的信号以及一级缓存器是否缓存本端口输入信号提供依据;判断第一端口一级缓存器中缓存的是写操作还是读操作,为选择器选择端口信号还是 选择一级缓存器中的信号以及一级缓存器是否缓存本端口输入信号提供依据。
全文摘要
本发明提出一种基于同步双端口存储器IP的并行读写操作的实现方法。在同步双端口存储器IP中,当在同一时刻对同一地址进行读写操作时会存在端口读写冲突,从而造成读写操作的错误。本发明通过选择性的读写控制策略来解决端口读写冲突问题,实现了在同一周期内先读出存储器中的原有数据再向该地址写入新数据的操作。本发明的优点为提供了一种有效解决双端口存储器端口读写冲突的方法;利用本发明进行设计可得到性能比较稳定的存储器系统;可利用自动化的工具来实现整个设计,设计具有可移植性,从而可以缩短产品的开发周期。
文档编号G06F12/08GK101770437SQ20081024674
公开日2010年7月7日 申请日期2008年12月30日 优先权日2008年12月30日
发明者杨海钢, 蔡刚 申请人:中国科学院电子学研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1