CN104239246A - 提供多端口功能的存储装置与方法 - Google Patents
提供多端口功能的存储装置与方法 Download PDFInfo
- Publication number
- CN104239246A CN104239246A CN201410126387.5A CN201410126387A CN104239246A CN 104239246 A CN104239246 A CN 104239246A CN 201410126387 A CN201410126387 A CN 201410126387A CN 104239246 A CN104239246 A CN 104239246A
- Authority
- CN
- China
- Prior art keywords
- group
- operating frequency
- data
- memory
- synchronization module
- 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
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1066—Output synchronization
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1075—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for multiport memories each having random access ports and serial ports, e.g. video RAM
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1093—Input synchronization
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
Landscapes
- Static Random-Access Memory (AREA)
- Dram (AREA)
Abstract
一种提供多端口功能的存储装置,此存储装置包含具有第一操作频率的单端口存储器,此第一操作频率是多端口存储器的第二操作频率的两倍或大于两倍以上;至少一读取同步模块,将一组读取信号从此第二操作频率同步至此第一操作频率;至少一写入同步模块,将一组写入信号从此第二操作频率同步至此第一操作频率;读取/写入信号选择器,将一组同步的读取信号和一组同步的写入信号集成为此单端口存储器的一组输入控制信号;以及读取数据同步模块,被配置为将此单端口存储器的一组读取数据从此第一操作频率的同步至此多端口存储器的此第二操作频率。
Description
技术领域
本发明是关于一种提供多端口(multi-port)功能的存储装置(memory device)和方法。
背景技术
在数字电路的设计中,存储器经常被使用于,但不限定于,数据缓冲等,以成为在不同的计算模块之间的数据传输的临时媒介(temporary media)等。在一实时运作系统中的同一存储周期(memory cycle)的期间,一模块可以将数据写入至一存储器的一地址,另一模块可以从此存储器中另一地址读出数据。在此情况下,必须提供在同一时间能够从此存储器读取数据以及将数据写入至此存储器的功能。一般而言,可以使用一个多端口存储器,例如使用两端口(two-port)存储器来执行此功能。两端口存储器的结构具有两个输入端口,此两输入端口可以同时输入读取和写入运作所需要的相关的信号。设计者只需要适当地控制读取和写入控制信号,并且应用这些控制信号至该两端口存储器,则同时将数据储存至此存储器与从此存储器读取数据就可以容易地实现。例如,在写入端口(write port),写入致能(write enable)信号可以伴随写入地址(writeaddress)信号和写入数据(write data)信号。当此写入致能信号是在逻辑高(logichigh)时,此两端口存储器可以将此写入数据写入至相对位置(relative position)。在读取端口(read port),读取致能(read enable)信号可以伴随读取地址(readaddress)信号。当此读取致能信号是在逻辑高时,此两端口存储器可以在下一时钟周期(clock cycle)读取一地址中的数据。
此两端口存储器可以在一时钟周期内同时执行存储器写入动作(memorywrite operation)和存储器读取动作(memory read operation)。而单端口存储器在一时钟周期内只可以执行存储器读取或写入(memory read or memory write)动作。当在专用集成电路(Application Specific Integrated Circuits,ASIC)已下线(tape out)时,若存储器的容量又太大,可提供多端口功能的单端口(single port)存储装置将是解决此问题的多种方法的其中一种方法。
发明内容
本发明的实施例可提供一种提供多端口功能的存储装置和方法。
本发明的一实施例是关于一种提供多端口功能的存储装置,此存储装置可包含单端口存储器、至少一读取同步模块(read synchronization module)、至少一写入同步模块(write synchronization module)、读取/写入信号选择器(read/write signal selector)、以及读取数据同步模块(read out data synchronizationmodule)。此单端口存储器具有第一操作频率(operating frequency),此第一操作频率是多端口存储器的第二操作频率的两倍或大于两倍以上。此读取同步模块将一组读取信号从此第二操作频率同步至此第一操作频率。此写入同步模块将一组写入信号从此第二操作频率同步至此第一操作频率。此读取/写入信号选择器将一组同步的读取信号(synchronized read signals)和一组同步的写入信号(synchronized write signals)集成为(integrate into)此单端口存储器的一组输入控制信号(input control signals)。此读取数据同步模块被配置为将此单端口存储器的一组读取数据(read data)从此第一操作频率同步至此多端口存储器的此第二操作频率。
本发明的另一实施例是关于一种提供多端口功能的存储方法。此方法可包含:提供具有第一操作频率的单端口存储器,此第一操作频率是多端口存储器的第二操作频率的两倍或大于两倍以上;将一组读取信号从此第二操作频率同步至此第一操作频率,并且将一组写入信号从此第二操作频率同步至此第一操作频率;将一组同步的读取信号和一组同步的写入信号集成为此单端口存储器的一组输入控制信号;以及将此单端口存储器的一组读取数据从此第一操作频率同步至此多端口存储器的此第二操作频率。
兹配合下列图示、实施例的详细说明及申请专利范围,将上述及本发明的其他优点详述于后。
附图说明
图1是根据本发明的一实施例,说明一种提供多端口功能的存储装置;
图2是根据本发明的一实施例,说明单端口存储器的操作频率是两端口存储器的操作频率的两倍;
图3是根据本发明的一实施例,说明图2中存储装置的各种信号的时序关系;
图4是根据本发明的一实施例,说明读取数据同步模块的细部结构;
图5是根据本发明的一实施例,说明读取数据同步模块的一范例,其中单端口存储器的操作频率是两端口存储器的操作频率的两倍;
图6是根据本发明的一实施例,说明图5的读取数据同步模块中各种信号的时序关系;
图7是根据本发明的一实施例,说明一种提供多端口功能的存储方法;
图8是根据本发明的一实施例,说明一种从四端口至单端口的结构;
图9是根据本发明的一实施例,说明图8的四端口至单端口的结构中,各种信号的时序关系;
图10是根据本发明的一实施例,说明从单端口至四端口的读取数据同步模块的替换与修改;
图11是根据本发明的一实施例,说明图10中从单端口至四端口的读取数据同步模块的时序关系;
图12是根据本发明的一实施例,说明一种从三端口至单端口的结构;
图13是根据本发明的一实施例,说明图12中从三端口至单端口的结构的各种信号的时序关系;
图14是根据本发明的一实施例,说明从单端口至三端口的读取数据同步模块的替换与修改;
图15是根据本发明的一实施例,说明图14中从单端口至三端口的读取数据同步模块的时序关系。
其中,附图标记:
100 存储装置 101 单端口存储器
103 读取同步模块 105 写入同步模块
107 读取/写入信号选择器 109 读取数据同步模块
111 读取数据 113 读取信号
115 写入信号 117 输入控制信号
123 同步的读取信号 125 同步的写入信号
Write_signal_1x写入端口上的每一控制信号
Wr_en写入致能信号
Wr_addr写入地址信号
Wr_data写入数据信号
Read_signal_1x读取端口上的每一控制信号
Rd_en读取致能信号
Rd_addr读取地址信号
CLK_1x两端口存储器的操作频率
CLK_2x单端口存储器的操作频率
SYNC_R1读取同步模块
SYNC_W1写入同步模块
Read_signal_2x读取的输入控制信号
Write_signal_2x写入的输入控制信号
读取输入控制信号
401同步模块选择器
405读取数据选择器
Data0_2x~Data(N-1)_2x一组读取数据
Data0_1x~Data(N-1)_1x一组同步的读取数据
CLK_1x Read out data与多端口存储器的数据格式一致的一组输出数据
710提供具有第一操作频率的单端口存储器,其中此第一操作频率是多端口存储器的第二操作频率的两倍或大于两倍以上
720一组读取信号从此第二操作频率被同步至此第一操作频率,并且一组写入信号从此第二操作频率被同步至此第一操作频率
730一组同步的读取信号和一组同步的写入信号被集成为此单端口存储器的一组输入控制信号
740此单端口存储器的一组读取数据从此第一操作频率被同步至此多端口存储器的第二操作频率
CLK_4x单端口存储器的操作频率
Read_signal1_1x、Read_signal2_1x读取端口的输入控制信号
Write_signal1_1x、Write_signal2_1x写入端口的输入控制信号
1p_input_signal_4x输入控制信号
Read_out_data_4x读取数据
Rd1_out_1x对应于Read_signal1_1x的读取数据
Rd2_out_1x对应于Read_signal2_1x的读取数据
对于Write_signal1_1x的输入序列
对于Write_signal2_1x的输入序列
对于Read_signal1_1x的输入序列
对于Read_signal2_1x的输入序列
Write_signal1_4x、Write_signal2_4x、Read_signal1_4x、以及Read_signal2_4x四个同步的控制信号
1p_input_signal_4x单端口存储器的控制信号
Data1_0~Data1_(N-1)第一组读取数据
Data2_0~Data2_(N-1)第二组读取数据
Data1_0_1x~Data1_(N-1)_1x第一组同步的数据
Data2_0_1x~Data2_(N-1)_1x第二组同步的数据
CLK_3x单端口存储器的操作频率
Write_signal1_3x、Write_signal2_3x、Read_signal1_3x三个同步的控制信号
1p_input_signal_3x输入控制信号
Read_out_data_3x读取数据
Data0_3x~Data(N-1)_3x一组读取数据
Data0_1x、Data1_1x、…、Data1(N-1)_1x一组同步的数据
具体实施例
以下,参考伴随的图示,详细说明依据本发明的实施例,使本领域者易于了解。所述的发明创意可以采用多种变化的实施方式,当不能只限定于这些实施例。本发明省略已熟知部分(well-known part)的描述,并且相同的参考号于本发明中代表相同的组件。
依据本发明的实施例提供一种技术,藉由使用单端口存储器的架构来建构可提供具有多端口存储器的功能的结构。此多端口存储器在一时钟周期内可以同时将数据写入一存储器以及从此存储器读取数据,而一典型的单端口存储器在一时钟周期内只可以将数据写入存储器或是从存储器读取数据。为了使用单端口存储器来建构可提供此多端口存储器功能的结构,依据本发明的实施例可执行输入与输出信号的转换,以符合此多端口存储器和此单端口存储器。所以,这些实施例揭露将此多端口存储器的输入信号转换为此单端口存储器的输入信号的架构,并且将此单端口存储器的读取信号转换为此多端口存储器输出信号。
图1是根据本发明的一实施例,说明一种提供多端口功能的存储装置。参考图1,此存储装置100可包含单端口存储器101、至少一读取同步模块103、至少一写入同步模块105、读取/写入信号选择器107、以及读取数据同步模块109。单端口存储器101具有第一操作频率,此第一操作频率可以是多端口存储器的第二操作频率的两倍或大于两倍以上。至少一读取同步模块103将一组读取信号113从此第二操作频率同步至此第一操作频率。至少一写入同步模块105将一组写入信号115从此第二操作频率同步至此第一操作频率。读取/写入信号选择器107将一组同步的读取信号123和一组同步的写入信号125集成为单端口存储器101的一组输入控制信号117。读取数据同步模块109被配置为将单端口存储器101的一组读取数据111从此第一操作频率同步至此多端口存储器的此第二操作频率,从而产生此多端口存储器的一组读取数据。
单端口存储器的输入控制信号可包括读取/写入致能信号、读取/写入地址信号、以及写入数据信号。此单端口存储器的输出信号可包括读取数据。当此读取/写入致能信号Rd_en/Wr_en是在逻辑高时,这可指示存储器写入动作被执行并且写入数据被写入至存储器地址。当此读取/写入致能信号在逻辑低时,可指示存储器读取动作被执行,并且此存储器在下一时钟周期的期间从存储器地址读取数据。
根据本发明的实施例,该组同步的读取信号123和该组同步的写入信号125被分布在单端口存储器101的时钟域(clock domain)的不同时钟周期。该组同步的读取信号123和该组同步的写入信号125在时钟域的分布顺序可由使用存储装置100的系统来决定。单端口存储器101的第一操作频率可以是多端口存储器的该第二操作频率的k倍或k倍以上,其中k是一正实数,并且k≧2。
图2是根据本发明的一实施例,说明单端口存储器的操作频率CLK_2x是两端口存储器的操作频率CLK_1x的两倍。换句话说,操作频率CLK_1x用于使用图1的存储装置的系统中。图3是与本发明的一实施例一致的时序图,说明提供给图2中的存储装置的各种信号的时序关系(timing relationship)。
数字电路设计中的两端口存储器可具有专属的(dedicated)读取端口用来输入一组读取控制信号和输出数据信号,以及专属的写入端口用来输入一组写入控制信号。在写入端口上的每一控制信号,以Write_signal_1x表示,可包括写入致能信号Wr_en、写入地址信号Wr_addr、以及写入数据信号Wr_data。在读取端口上的每一控制信号,以Read_signal_1x表示,可包括读取致能信号Rd_en与读取地址信号Rd_addr,并且有输出信号Rd_data用于从此存储器读取数据。
参考图2和图3,此两端口存储器的操作频率CLK_1x中,读取输入控制信号如,与写入输入控制信号如,分别经由两同步模块(读取同步模块SYNC_R1与写入同步模块SYNC_W1),同步至单端口存储器的操作频率CLK_2x。经由此两同步模块,读取与写入的输入控制信号分布在此单端口存储器的时钟域的不同时钟周期,如图3中的Write_signal_2x与Read_signal_2x所示。此两组同步的输入控制信号Write_signal_2x与Read_signal_2x还经由读取/写入信号选择器107集成,从而产生分布在单端口存储器101的时钟域的不同时钟周期的一组输入控制信号1p_input_signal_2x,如图3所示。此组输入控制信号1p_input_signal_2x可以控制对单端口存储器101的存取,从而输出读取数据,标记为Read_out_data_2x。这些读取数据Read_out_data_2x还被转换至两端口存储器的操作频率CLK_1x,以利于在系统中运作。换句话说,此单端口存储器的读取数据Read_out_data_2x被转换回至原先系统的操作频率CLK_1x,以利于在原先系统中运作。
图4是根据本发明一实施例,说明读取数据同步模块的细部结构。参考图4,读取数据同步模块109还可包括同步模块选择器401、一组同步模块,记为同步模块SYNC1,…,同步模块SYNCN,N≧2,以及读取数据选择器405。同步模块选择器401控制单端口的存储器101中的每一组读取数据,如一组读取数据Data0_2x~Data(N-1)_2x,应使用此组同步模块中哪一个同步模块。此组同步模块可将单端口存储器101的该组读取数据如Data0_2x~Data(N-1)_2x,从第一操作频率同步至原先系统的操作频率,以利于在原先系统中运作。读取数据选择器405可以将来自该组同步模块的同步的读取数据如Data0_1x~Data(N-1)_1x,集成为与多端口存储器的数据格式一致的一组输出数据CLK_1x Read out data。
因为更快频率的信号会同步至较低的频率,所以它需要经过数个频率为CLK_1x的时钟时间才能使该组读出数据111的同步达到稳定的状态。当多端口存储器的读取控制信号持续致能一段很长的时间时,只使用同步模块将会导致一些数据的丢失。因此,对于从单端口存储器中读取数据,于本发明的一实施例中,可先计算从原先单端口存储器的操作频率CLK_SP同步至CLK_1x所造成的最大时间延迟。因为具有单端口存储器的操作频率CLK_SP的每一读取信号针对系统操作频率CLK_1x可能会有不同的相位,因此,于本发明的一实施例中,可根据单端口存储器的操作频率CLK_SP以及每一读取数据,计算最大同步时钟延迟(synchronize clock latency,亦即M×CLK_1x)并且做为该最大时间延迟,其中同步模块的个数N大于或等于M。M是从该第一操作频率同步至系统的操作频率所造成的最大时间延迟的时钟周期的数量。
有此N个同步模块,N≧M,单端口存储器的输出数据可选择不同的同步模块来进行同步。如此可避免数据丢失的问题。对于同步过程中的每一读取数据,也可使用计数器做为控制指示器(control indicator),指出此N个同步模块中的相对应的同步模块。根据此控制指示器,来自此单端口存储器的输出数据可以藉由同步模块选择器401选择相对应的同步模块来同步数据。在实施例中有N个同步模块。每一同步模块可以在不同的时间启动。于一实施例中,可由同步模块选择器401决定哪一同步模块被选取,以及何时启动所选取的同步模块。
举例来说,当单端口存储器输出第一笔读取数据时,致能第一同步模块如同步模块SYNC1,当单端口存储器输出第二笔读取数据时,致能第二同步模块如同步模块SYNC2,…,当单端口存储器输出第N笔读取数据时,致能第N同步模块如同步模块SYNCN,当单端口存储器输出第(N+1)笔读取数据时,致能第一同步模块如同步模块SYNC1,当单端口存储器输出第(N+2)笔读取数据时,致能第二同步模块如同步模块SYNC2,…,等。换句话说,对于来自单端口存储器的每一读取数据,同步模块选择器401轮流致能该N个同步模块中的一个不同的同步模块。
图5是根据本发明的一实施例,说明读取数据同步模块的一范例,其中单端口存储器的操作频率是两端口存储器的操作频率的两倍。如图5所示,同步模块选择器401控制单端口存储器101的每一读取数据Read_out_data_2x应使用哪一个同步模块。在一范例中,读取数据Data0_2x使用同步模块SYNC1,读取数据Data1_2x使用同步模块SYNC2,读取数据Data2_2x使用同步模块SYNC3,...,读取数据Data N-1_2x使用模块同步SYNCN。从操作频率CLK_2x同步至操作频率CLK_1x后,每一读取数据Datak_2x被转换成数据Datak_1x,0≦k≦N-1。读取数据选择器405然后将来自此N个同步模块,即同步模块SYNCN,的这些同步的读取数据,即 被集成为一组输出数据(亦即CLK_1x读取数据),这些CLK_1x读取数据的数据格式与该两端口存储器的数据格式一致。
图6是根据本发明的一实施例,说明图5的读取数据同步模块中各种信号的时序关系。在图6中,假设同步模块的个数N等于3,此表示有三个同步模块,即同步模块SYNC3,用于同步单端口存储器的输出数据。同步模块选择器401控制来自单端口存储器的每一笔读取数据Read_out_data_2x,例如有六笔读取数据应使用哪一个同步模块。在本范例中,读取数据Data0_2x使用同步模块SYNC1,读取数据Data1_2x使用同步模块SYNC2,读取数据Data2_2x使用同步模块SYNC3,读取数据Data3_2x使用同步模块SYNC1,读取数据Data4_2x使用同步模块SYNC2,以及读取数据Data5_2x使用同步模块SYNC3。这些读取数据从操作频率CLK_2x同步至操作频率CLK_1x后,利用同步模块SYNC3,每一读取数据Datak_2x被转换成为同步的读取数据Datak_1x,0≦k≦5。这些来自同步模块SYNC3的同步的读取数据,即被集成为一组输出数据(即CLK_1x读取数据)。
图7是根据本发明的一实施例,说明一种提供多端口功能的存储方法。在步骤710中,提供具有第一操作频率的单端口存储器,其中此第一操作频率是多端口存储器的第二操作频率的两倍或大于两倍以上。在步骤720中,一组读取信号从此第二操作频率被同步至此第一操作频率,并且一组写入信号从此第二操作频率被同步至此第一操作频率。在步骤730中,一组同步的读取信号和一组同步的写入信号被集成为此单端口存储器的一组输入控制信号。在步骤740中,此单端口存储器的一组读取数据从此第一操作频率被同步至此多端口存储器的第二操作频率。
如前面提及的,单端口存储器的第一操作频率至少可以是多端口存储器的第二操作频率的k倍,其中k是一个正实数,且k≧2。并且,该组同步的读取信号和该组同步的写入信号分布在单端口存储器的时钟域的不同时钟周期。对于该组同步的读取信号和该组同步的写入信号,时钟域里的分布顺序可由使用该存储装置的系统来决定。
以下举出多个例子来说明从多端口至单端口的各种架构,以及这些架构对应的时序图来描述从多端口至单端口的架构的各种信号的时序关系。并且,更多例子说明从多端口至单端口的读取数据同步模块的各种替换和修改,以及此读取数据同步模块相对应的时序图,以描述提供此读取数据同步模块的各种替换和修改的各种信号的时序关系。
图8是根据本发明的一实施例,说明一种从四端口至单端口的结构。此处只比较图8的实施例与图2的细节的不同。类似的组件(即使不同运作)以类似的参考号码显示与说明。在图8中,假设此四端口中有两个端口是用来读取信号并且另外两个端口是用来写入信号。此单端口存储器的操作频率CLK_4x是系统操作频率CLK_1x的四倍。Read_signal1_1x和Read_signal2_1x是两读取端口的两个输入控制信号,并且Write_signal1_1x和Write_signal2_1x是两写入端口的两个输入控制信号。四个不同的同步模块同步地控制此四个输入控制信号,使其至存储器的操作频率。同步处理后,第一读取信号是Read_signal1_4x以及第二读取信号是Read_signal2_4x。类似地,同步处理后,第一写入信号是Write_signal1_4x以及第二写入信号是Write_signal2_4x。此四个同步的控制信号再由读取/写入信号选择器107处理,以取得单端口存储器101的一输入控制信号1p_input_signal_4x。来自单端口存储器101的读取数据是read_out_data_4x。因为原先的输入使用两个读取端口,所以读取数据同步模块将输入的读取数据read_out_data_4x从操作频率CLK_4x同步至操作频率CLK_1x后,产生两个读取数据。对应于原先输入控制信号Read_signal1_1x的读取数据是Rd1_out_1x,并且对应于原先输入控制信号Read_signal2_1x的读取数据是Rd2_out_1x。
图9是根据本发明的一实施例,说明图8的四端口至单端口的结构中,各种信号的时序关系。在第一写入端口上,对于控制信号Write_signal1_1x的输入序列如第1至第5输入,记为在第二写入端口上,对于控制信号Write_signal2_1x的输入序列如第一至第五输入,记为 在第一读取端口上,对于控制信号Read_signal1_1x的输入序列如第一至第五输入,记为在第二读取端口上,对于控制信号Read_signal2_1x的输入序列如第一至第五输入,记为四个同步的信号Write_signal1_4x、Write_signal2_4x、Read_signal1_4x、以及Read_signal2_4x,是分别藉由同步模块Sync_W1、Sync_W2、Sync_R1、以及Sync_R2,对Write_signal1_1x、Write_signal2_1x、Read_signal1_1x、以及Read_signal2_1x中每一控制信号的第一至第五输入进行同步而得到的。然后,读取/写入信号选择器将此四个同步的控制信号集成为此单端口存储器的控制信号1p_input_signal_4x。
图10是根据本发明的一实施例,说明从单端口至四端口的读取数据同步模块的替换与修改。单端口存储器的控制信号1p_input_signal_4x包括两个读取信号,即Read_signal1_4x与Read_signal2_4x。所以,读取数据Read_out_data_4x包括两组读取数据。对应于Read_signal1_4x的第一组读取数据是DATA1_0、DATA1_1、…、Data1_(N-1)、Data1_N、…。对应于Read_signal2_4x的第二组读取数据是Data2_0、Data2_1、…、Data2_(N-1)、Data2_N、…。每一组读取数据使用N个同步模块来进行同步。第一组数据读分别使用N个同步模块,即同步模块SYNC1_N,来进行同步。第二组读取数据分别使用其它N个同步模块,即同步模块 SYNC2_N,来进行同步。同步后,第一组同步的数据是Data1_0_1x、Data1_1_1x、…、Data1_(N-1)_1x。同步后,第二组同步的数据是Data2_0_1x、Data2_1_1x、…、Data2_(N-1)_1x。然后,读取数据选择器405将两组读取数据形成为两个端口的读取数据Rd1_out_1x,Rd2_out_1x。
图11是根据本发明的一实施例,说明图10中从单端口至四端口的读取数据同步模块的时序关系。图9中对应于单端口存储器控制信号1p_input_signal_4x的读取数据Read_out_data_4x包含(两端口的)两组读取数据,即一组DATA1_0、DATA1_1、…,与另一组Data2_0、Data2_1、…。此两组读取数据的每一组读取数据分别使用N个同步模块来进行同步,即一组读取数据使用同步模块SYNC1_N,另一组读取数据使用同步模块SYNC2_N。两组读取数据的第一笔数据DATA1_0与Data2_0分别经由同步模块SYNC1_1与同步模块SYNC2_1同步后,成为同步的数据Data1_0_1x与Data2_0_1x,同步的数据Data1_0_1x与Data2_0_1x将在同一时间出现在具有相同的系统频率CLK_1x的时序中。两组读取数据的第二笔数据DATA1_1与Data2_1分别经由同步模块SYNC1_1与同步模块SYNC2_1同步后,成为同步的数据Data1_1_1x与Data2_1_1x,同步的数据Data1_1_1x与Data2_1_1x将紧随同步的第一笔数据适时地出现在具有相同的系统操作频率CLK_1x的时序中。然后,读取数据选择器集成此两组同步的数据的每一对同步的数据,以形成为两个端口的读取数据,即Rd1_out_1x与Rd2_out_1x。
图12是根据本发明的一实施例,说明一种从三端口至单端口的结构。此处只比较图12的实施例与图2的细节的不同。类似的组件(即使不同运作)以类似的参考号码显示与说明。在图12中,假设有一埠端口是用来读取信号并且另两个端口是用来写入信号。此单端口存储器的操作频率CLK_3x是系统操作频率CLK_1x的三倍。Read_signal1_1x是读取端口的输入控制信号,并且Write_signal1_1x与Write_signal2_1x是两个写入端口的两个输入控制信号。三个不同的同步模块同步地控制此三个输入控制信号至存储器的操作频率。同步处理后,第一读取信号是Read_signal1_3x。类似地,同步处理后,第一写入信号是Write_signal1_3x,以及第二写入信号是Write_signal2_3x。此三个同步的控制信号再经由读取/写入信号选择器107处理,以取得单端口存储器101的输入控制信号1p_input_signal_3x。单端口存储器101的读取数据是read_out_data_3x。因为三个端口中只有一个端口是读取端口,此相同于前述的两端口存储器的实施例,其中此单端口的读取数据是read_out_data_3x。读取数据同步模块将读取数据read_out_data_3x从操作频率CLK_3x同步至操作频率CLK_1x后,产生单端口的读取数据CLK_1X_Read_out_data。
图13是根据本发明的一实施例,说明图12中从三端口至单端口的结构的各种信号的时序关系。参考图13,在第一写入端口上,对于控制信号Write_signal1_1x的输入序列如第1至第5输入,是在第二写入端口上,对于控制信号Write_signal2_1x的输入序列如第一至第五输入,是在第一读取端口上,对于控制信号Read_signal1_1x的输入系列如第一至第五输入,是三个同步的信号,即Write_signal1_3x、Write_signal2_3x、以及Read_signal1_3x,是分别经由同步模块,即Sync_W1、Sync_W2、以及Sync_R1,进行同步而得到的。然后,读取/写入信号选择器107将此三个同步的信号集成为单端口存储器的一控制信号1p_input_signal_3x。
图14是根据本发明的一实施例,说明从单端口至三端口的读取数据同步模块的替换与修改。单端口存储器的控制信号1p_input_signal_3x包括读取信号Read_signal1_3x。因此,读取数据Read_out_data_3x包括两组读取数据。对应于读取信号Read_signal1_3x的一组读取数据是Data0_3x、Data1_3x、…、Data(N-1)_3x,DataN_3x、…。类似于前述的两端口存储器的实施例,这些读取数据是由N个同步模块进行同步。同步后,得到一组同步的数据是Data0_1x、Data1_1x、…、Data1(N-1)_1x。然后,读取数据选择器405将这些同步的读取数据集成为具有系统所要求的读取数据格式的一组输出数据(即CLK_1x读取数据)。
图15是根据本发明的一实施例,说明图14中从单端口至三端口的读取数据同步模块的时序关系。图14中对应于单端口存储器的控制信号1p_input_signal_3x的读取数据Read_out_data_3x包括一组读取数据,即Data0_3x、Data1_3x、Data2_3x、…。类似于两端口存储器的前述实施例,这些读取数据是由N个同步模块,即同步模块SYNCN进行同步。同步后,此N个同步模块产生同步的数据Data0_1x、Data1_1x、Data2_1x、…。然后,读取数据选择器405集成这些同步的数据,以形成读取数据CLK_1x_Read_out_data,此读取数据CLK_1x_Read_out_data具有原先系统的操作频率的数据输出格式。
综上所述,依据本发明的实施例提供一种技术,此技术使用单端口存储器的结构来提供多端口的功能,以取代n端口存储器,其中n是一个正整数,且大于或等于2。在此技术中,输入的读取信号与写入信号由多端口存储器的操作频率同步至单端口存储器的操作频率。同步的读取信号与同步的写入信号被集成为单端口存储器的一组输入控制信号。此单端口存储器的读取数据从单端口存储器的操作频率被同步至多端口存储器的操作频率,以在原先系统中进行运作。
以上所述者仅为依据本发明的实施范例,当不能依此限定本发明实施的范围。即大凡发明申请专利范围所作的均等变化与修饰,皆应仍属本发明权利要求保护范围。
Claims (19)
1.一种提供多端口功能的存储装置,包含:
单端口存储器,具有第一操作频率,该第一操作频率是多端口存储器的第二操作频率的两倍或大于两倍以上;
至少一读取同步模块,将一组读取信号从该第二操作频率同步至该第一操作频率;
至少一写入同步模块,将一组写入信号从该第二操作频率同步至该第一操作频率;
读取/写入信号选择器,将一组同步的读取信号和一组同步的写入信号集成为该单端口存储器的一组输入控制信号;以及
读取数据同步模块,被配置为将该单端口存储器的一组读取数据从该第一操作频率同步至该多端口存储器的该第二操作频率。
2.如权利要求1所述的存储装置,其中该组同步的读取信号和该组同步的写入信号分布在该单端口存储器的时钟域的不同的时钟周期。
3.如权利要求2所述的存储装置,其中该组同步的读取信号和该组同步的写入信号在该时钟域里的分布顺序由使用该存储装置的系统决定。
4.如权利要求1所述的存储装置,其中该单端口存储器的该第一操作频率是该多端口存储器的该第二操作频率的至少k倍,k是一个正实数,k大于或等于2。
5.如权利要求1所述的存储装置,其中该读取数据同步模块还包括:
一组同步模块,将该单端口存储器的该组读取数据从该第一操作频率同步至系统的操作频率,以在该系统中运作。
6.如权利要求5所述的存储装置,其中该组同步模块的个数大于或等于M,并且M是从该第一操作频率同步至该系统的该操作频率所造成的一个最大时间延迟的时钟周期的数量。
7.如权利要求5所述的存储装置,其中该读取数据同步模块还包括:
一同步模块选择器,控制来自该单端口存储器的每一读取数据使用该组同步模块中哪一同步模块。
8.如权利要求5所述的存储装置,其中该存储装置使用计数器作为控制指示器,以指出在同步过程中,每一读取数据使用该组同步模块中的相对应的同步模块。
9.如权利要求7所述的存储装置,其中对于每一读取数据,该同步模块选择器决定选取哪一同步模块,以及何时启动所选取的该同步模块。
10.如权利要求7所述的存储装置,其中对于来自该单端口存储器的每一读取数据,该同步模块选择器轮流致能该组同步模块中的不同的同步模块。
11.如权利要求5所述的存储装置,其中该读取数据同步模块还包括:
读取数据选择器,将来自该组同步模块的一组同步的读取数据集成为具有该多端口存储器的数据格式的一组输出数据。
12.一种提供多端口功能的存储方法,包含:
提供具有第一操作频率的单端口存储器,该第一操作频率是多端口存储器的第二操作频率的两倍或大于两倍以上;
将一组读取信号从该第二操作频率同步至该第一操作频率,并且将一组写入信号从该第二操作频率同步至该第一操作频率;
将一组同步的读取信号和一组同步的写入信号集成为该单端口存储器的一组输入控制信号;以及
将该单端口存储器的一组读取数据从该第一操作频率同步至该多端口存储器的该第二操作频率。
13.如权利要求12所述的方法,其中该方法还包括:
将该组同步的读取信号与该组同步的写入信号分布在该单端口存储器的时钟域里的不同的时钟周期。
14.如权利要求13所述的方法,其中该组同步的读取信号和该组同步的写入信号在该时钟域里的分布顺序由使用存储装置的系统决定,该方法实施于该存储装置上。
15.如权利要求12所述的方法,其中该单端口存储器的该第一操作频率是该多端口存储器的该第二操作频率的至少k倍,k是一个正实数,k大于或等于2。
16.如权利要求12所述的方法,其中将该单端口存储器的一组读取数据从该第一操作频率同步至该多端口存储器的该第二操作频率还包括:
藉由一组同步模块,将该单端口存储器的该组读取数据从该第一操作频率同步至系统的操作频率,以在该系统中运作;以及
藉由读取数据选择器,将来自该组同步模块的一组同步的读取数据集成为具有该多端口存储器的数据格式的一组输出数据。
17.如权利要求16所述的方法,其中该方法还包括:
藉由同步模块选择器,控制来自该单端口存储器的该组读取数据的每一读取数据使用该组同步模块中的哪一同步模块。
18.如权利要求17所述的方法,其中该方法还包括:
藉由该同步模块选择器,对于该组读取数据的每一读取数据,决定选取哪一同步模块,以及何时启动所选取的该同步模块。
19.如权利要求17所述的方法,其中该方法还包括:
对于来自该单端口存储器的每一读取数据,轮流致能该组同步模块中的不同的同步模块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361832294P | 2013-06-07 | 2013-06-07 | |
US61/832,294 | 2013-06-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104239246A true CN104239246A (zh) | 2014-12-24 |
CN104239246B CN104239246B (zh) | 2017-09-05 |
Family
ID=52005359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410126387.5A Active CN104239246B (zh) | 2013-06-07 | 2014-03-31 | 提供多端口功能的存储装置与方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9105318B2 (zh) |
CN (1) | CN104239246B (zh) |
TW (1) | TWI518703B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106126112A (zh) * | 2015-05-07 | 2016-11-16 | 马维尔以色列(M.I.S.L.)有限公司 | 每个周期具有多个读取端口和多个写入端口的多条存储器 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11099746B2 (en) | 2015-04-29 | 2021-08-24 | Marvell Israel (M.I.S.L) Ltd. | Multi-bank memory with one read port and one or more write ports per cycle |
US10558477B2 (en) * | 2016-11-16 | 2020-02-11 | International Business Machines Corporation | Array clocking in emulation |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6314047B1 (en) * | 1999-12-30 | 2001-11-06 | Texas Instruments Incorporated | Low cost alternative to large dual port RAM |
CN1622070A (zh) * | 2004-12-14 | 2005-06-01 | 威瀚科技股份有限公司 | 实现双端口同步存储装置的方法及相关装置 |
US7251189B2 (en) * | 2004-08-23 | 2007-07-31 | Kabushiki Kaisha Toshiba | Semiconductor storage device |
US7738496B1 (en) * | 2002-12-31 | 2010-06-15 | Cypress Semiconductor Corporation | Device that provides the functionality of dual-ported memory using single-ported memory for multiple clock domains |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5828623A (en) | 1996-02-23 | 1998-10-27 | Integrated Device Technology, Inc. | Parallel write logic for multi-port memory arrays |
US5761147A (en) | 1997-02-21 | 1998-06-02 | International Business Machines Corporation | Virtual two-port memory structure with fast write-thru operation |
US5933855A (en) | 1997-03-21 | 1999-08-03 | Rubinstein; Richard | Shared, reconfigurable memory architectures for digital signal processing |
US6882562B2 (en) | 2001-11-01 | 2005-04-19 | Agilent Technologies, Inc. | Method and apparatus for providing pseudo 2-port RAM functionality using a 1-port memory cell |
US7934057B1 (en) | 2003-12-24 | 2011-04-26 | Cypress Semiconductor Corporation | Logic for implementing a dual clock domain read access with predictable timing for bi-directional inputs/outputs |
US7251186B1 (en) * | 2004-06-07 | 2007-07-31 | Virage Logic Corporation | Multi-port memory utilizing an array of single-port memory cells |
US7349285B2 (en) | 2005-02-02 | 2008-03-25 | Texas Instruments Incorporated | Dual port memory unit using a single port memory core |
EP1811370A2 (en) | 2005-12-30 | 2007-07-25 | STMicroelectronics Pvt. Ltd. | A first-in first-out (FIFO) memory architecture providing multiport functionality |
US7533222B2 (en) | 2006-06-29 | 2009-05-12 | Mosys, Inc. | Dual-port SRAM memory using single-port memory cell |
US7529139B2 (en) * | 2007-01-26 | 2009-05-05 | Mediatek, Inc. | N-port memory circuits allowing M memory addresses to be accessed concurrently and signal processing methods thereof |
CN101236774B (zh) | 2007-02-01 | 2011-04-13 | 北京芯技佳易微电子科技有限公司 | 单端口存储器实现多端口存储功能的装置和方法 |
US8102721B2 (en) | 2007-06-27 | 2012-01-24 | Infineon Technologies Ag | Pseudo dual-port memory |
US8959291B2 (en) | 2010-06-04 | 2015-02-17 | Lsi Corporation | Two-port memory capable of simultaneous read and write |
US8514652B2 (en) | 2011-03-02 | 2013-08-20 | Lsi Corporation | Multiple-port memory device comprising single-port memory device with supporting control circuitry |
US9641464B2 (en) * | 2012-04-30 | 2017-05-02 | Nxp Usa, Inc. | FIFO buffer system providing same clock cycle response to pop commands |
-
2013
- 2013-10-24 US US14/062,560 patent/US9105318B2/en active Active
-
2014
- 2014-03-26 TW TW103111288A patent/TWI518703B/zh active
- 2014-03-31 CN CN201410126387.5A patent/CN104239246B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6314047B1 (en) * | 1999-12-30 | 2001-11-06 | Texas Instruments Incorporated | Low cost alternative to large dual port RAM |
US7738496B1 (en) * | 2002-12-31 | 2010-06-15 | Cypress Semiconductor Corporation | Device that provides the functionality of dual-ported memory using single-ported memory for multiple clock domains |
US7251189B2 (en) * | 2004-08-23 | 2007-07-31 | Kabushiki Kaisha Toshiba | Semiconductor storage device |
CN1622070A (zh) * | 2004-12-14 | 2005-06-01 | 威瀚科技股份有限公司 | 实现双端口同步存储装置的方法及相关装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106126112A (zh) * | 2015-05-07 | 2016-11-16 | 马维尔以色列(M.I.S.L.)有限公司 | 每个周期具有多个读取端口和多个写入端口的多条存储器 |
CN106126112B (zh) * | 2015-05-07 | 2020-08-18 | 马维尔以色列(M.I.S.L.)有限公司 | 每个周期具有多个读取端口和多个写入端口的多条存储器 |
Also Published As
Publication number | Publication date |
---|---|
TW201447910A (zh) | 2014-12-16 |
US9105318B2 (en) | 2015-08-11 |
TWI518703B (zh) | 2016-01-21 |
CN104239246B (zh) | 2017-09-05 |
US20140362651A1 (en) | 2014-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101694512B (zh) | 测试电路和片上系统 | |
CN100585852C (zh) | 使用最少引脚而被测试的半导体器件、以及测试其的方法 | |
CN101692346B (zh) | 一种存储器数据采样装置及一种采样控制器 | |
CN100376006C (zh) | 具有数据选通脉冲电路的半导体内存装置 | |
EP1355318A3 (en) | Semiconductor memory | |
CN101446841B (zh) | 确定存储器控制器时钟校准值的方法及系统 | |
CN101236774B (zh) | 单端口存储器实现多端口存储功能的装置和方法 | |
CN1941196B (zh) | 半导体存储装置 | |
CN100576140C (zh) | 产生数字信号处理器和存储器的时钟信号的电路和方法 | |
JP5052056B2 (ja) | 半導体メモリ素子のデータ入力装置 | |
CN1860460A (zh) | 在具有等待信息的存储系统上的回声时钟 | |
CN104239246A (zh) | 提供多端口功能的存储装置与方法 | |
CN104778965A (zh) | 半导体器件和包括其的半导体系统 | |
TW201539476A (zh) | 記憶體元件的控制方法、記憶體元件以及記憶體系統 | |
CN102117244B (zh) | Soc中支持多个音视频ip核寻址的ddr2的控制方法 | |
CN102880442A (zh) | 用于时钟树转换处的先入先出(fifo)装置与方法 | |
US20070245096A1 (en) | Finding a data pattern in a memory | |
CN108268416A (zh) | 一种异步接口转同步接口控制电路 | |
CN101404145B (zh) | 液晶显示控制系统 | |
KR20120098147A (ko) | 집적회로 | |
Wang et al. | High bandwidth memory interface design based on DDR3 SDRAM and FPGA | |
KR20050086525A (ko) | 정보 기억 장치, 정보 기억 방법 및 정보 기억 프로그램 | |
CN1531778A (zh) | 时钟电路的方法与设备 | |
CN1856835A (zh) | 同步的ram存储电路 | |
KR20180127755A (ko) | 데이터 정렬 회로 및 이를 포함하는 반도체 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |