CN115437972A - 一种带时钟切换的乒乓缓存方法、装置及接口控制器 - Google Patents
一种带时钟切换的乒乓缓存方法、装置及接口控制器 Download PDFInfo
- Publication number
- CN115437972A CN115437972A CN202211052915.8A CN202211052915A CN115437972A CN 115437972 A CN115437972 A CN 115437972A CN 202211052915 A CN202211052915 A CN 202211052915A CN 115437972 A CN115437972 A CN 115437972A
- Authority
- CN
- China
- Prior art keywords
- cache
- cache device
- switching signal
- buffer
- clock
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0835—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
- G06F13/282—Cycle stealing DMA
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种带时钟切换的乒乓缓存方法,其包括:基于第一时钟域及第二时钟域的控制信号,生成第一切换信号,以及反相的第二切换信号;根据第一切换信号和第二切换信号轮流控制第一缓存装置和第二缓存装置,通过乒乓切换的方式控制每一缓存周期内第一缓存装置和第二缓存装置的读写状态,使每一缓存周期内其中一个缓存装置处于读状态,另一个缓存装置处于写状态;将轮流缓存至第一缓存装置和第二缓存装置中的来自第一时钟域的数据,输出至第二时钟域侧。本发明还公开了相应的装置以及接口控制器,可以减少芯片面积,并提高方案稳定性。
Description
技术领域
本发明涉及SOC芯片技术领域,特别是涉及一种带时钟切换的乒乓缓存方法、装置及接口控制器。
背景技术
如图1所示,示出了现有的一种接口控制器的架构示意图,在这种复杂接口的控制器设计中,通常会有两个时钟域。其中,而一个时钟(CLK1)是系统的主工作时钟,系统内的大多数模块都工作在时钟下,用于CPU内核、总线、DMA(Direct Memory Access,直接内存访问)等模块。
另一个时钟(CLK2)是靠近接口的物理层(PHY)一侧,用于跟物理层模块(PHY)进行数据通信。通常此时钟的频率依赖于接口的数据速率,常见的关系是freq(CLK2)*data_width=data_rate,例如千兆网络的数据速率是1Gbps,PHY接口的数据位宽是8bit,所以CLK2的频率是125MHz。
所述接口控制器的数据流包含发送和接收两个方向,其中:
数据发送过程:在CLK1内的DMA模块负责从系统内存中读出待发送的数据,因为读数据有延时,为避免发送数据过程中发生数据断流而造成违反接口协议或者对接口带宽形成浪费,所以一般是将待发送数据读出后先暂存到内部的缓存(TX BUFFER)中,待缓存完成后,再开始将数据传输到CLK2时钟域,由发送逻辑(TX LOGIC)然后数据被依次发送给物理层模块,物理层模块再将数据发送到接口上。为保证数据的持续发送,在TX_LOGIC读缓存器件的同时,TX_DMA继续从内存读数据并且写到缓存器件中;
数据接收过程:物理层模块接收从对端送过来的数据,并通过CLK2时钟域内的接收逻辑(RX LOGIC)送给控制器模块,按照常见的接口协议规定,一个包的数据会被连续不断的发送,而因为数据被写入系统内存会有延时,所以需要有缓存来吸收暂时无法被写入的数据,所以在CLK2与CLK1间会有一个缓存用于缓存物理层送过来的数据(RX BUFFER),然后由CLK1时钟域内RX DMA模块负责将数据写入系统内存中。为保证数据的持续接受,在RXDMA读缓存器件的同时,RX_LOGIC继续接收物理层送来的数据并把数据写到缓存器件中;
由图1中所知,发送缓存(TX BUFFER)和接收缓存(RX BUFFER)会横跨CLK2和CLK1两个时钟域,并且需要同时支持对缓存的读操作和写操作,一般使用如下两种实现方案:
第一种方案:使用支持两个时钟域的双端口缓存器件,具体如图2所示。
此类缓存器件有两个端口,每个端口可使用不同的时钟域,而且每个端口可以独立并且可以同时对memory进行读写操作。以上图中TX_BUFFER为例,左侧使用CLK1时钟域,由TX_DMA将从内存中读到的数据写入缓存,而右侧使用CLK2时钟域将缓存内的数据读出后送到TX_LOGIC模块而后发送给PHY模块。
第二种方案:使用支持单个时钟域的双端口缓存器件,再搭配一个用于时钟域穿越的异步FIFO(First In First Out,先进先出),具体如图3所示。
此类缓存器件有两个端口,但只支持一个时钟域,而且每个端口可以独立并且可以同时对缓存器件进行读写操作。以上图中TX_BUFFER为例,缓存器件使用CLK1时钟域,由TX_DMA将从内存中读到的数据写入缓存,当缓存非空后,将数据从缓存器件读出并写入异步FIFO,当异步FIFO内的数据到达发送水线后,在另外一个时钟域CLK2将数据从一部分FIFO读出后送TX_LOGIC模块而后发送给PHY模块。
但是现有的这两个技术方案,在实际项目使用时,均会产生不足之处:
第一种方案虽然简单,但因为双时钟域双端口缓存器件的面积大,通常是单时钟域单端口缓存器件的面积的三倍以上,对面积敏感的项目会存在极大的影响;
在第二种方案中,虽然其面积比双时钟域双端口缓存器件的面积较小,但还是单时钟域单端口缓存器件的面积的两倍左右,而且由于时序情况也比较差,会造成后端时序收敛较困难;另外,一般异步FIFO内使用特殊的结构来完成跨时钟域,而为了保证电路的功能正确性,在后端实现中需要做针对性的时序检查,会造成引入额外的后端工作量。
发明内容
本发明所要解决的技术问题在于,提供一种带时钟切换的乒乓缓存方法、装置及接口控制器,通过对两块单时钟域单端口缓存器进行时钟切换和乒乓操作,可以实现支持两个时钟域对于缓存的同时读写操作,减少了芯片面积,提高了方案稳定性。
为解决上述技术问题,作为本发明的一方面,提供一种带时钟切换的乒乓缓存方法,用于支持两个时钟域工作的接口控制器中,其至少包括:
基于第一时钟域及第二时钟域的控制信号,生成第一切换信号,以及与所述第一切换信号反相的第二切换信号;
根据所述第一切换信号和第二切换信号轮流控制第一缓存装置和第二缓存装置,通过乒乓切换的方式控制每一缓存周期内第一缓存装置和第二缓存装置的读写状态,使每一缓存周期内其中一个缓存装置处于读状态,另一个缓存装置处于写状态,且每一缓存装置在相邻的缓存周期内所对应的读写状态相反;
将轮流缓存至第一缓存装置和第二缓存装置中的来自第一时钟域的数据,输出至第二时钟域侧。
其中,根据所述第一切换信号和第二切换信号轮流控制第一缓存装置和第二缓存装置,通过乒乓切换的方式控制每一缓存周期内第一缓存装置和第二缓存装置的读写状态的步骤进一步包括:
在第一缓存周期内,根据所述第一切换信号控制第一缓存装置,使所述第一缓存装置处于写状态,将来自第一时钟域侧的数据写入所述第一缓存装置中;根据第二切换信号控制第二缓存装置,使所述第二缓存装置处于读状态,将所述第二缓存装置中缓存的数据读出并输出至第二时钟域侧;
在第二缓存周期内,根据所述第二切换信号控制第一缓存装置,使所述第一缓存装置处于读状态,将第一缓存装置中缓存的数据读出并输出至第二时钟域侧;根据第一切换信号控制第二缓存装置,使所述第二缓存装置处于写状态,将来自第一时钟域侧数据写入所述第二缓存装置中;
轮流执行所述第一缓存周期与第二缓存周期。
其中,所述第一缓存装置以及第二缓存装置均为单时钟域单端口缓存器件。
相应地,本发明的另一方面,还提供了一种带时钟切换的乒乓缓存装置,用于支持两个时钟域工作的接口控制器中,其至少包括:
切换信号生成单元,用于基于第一时钟域及第二时钟域的控制信号,生成第一切换信号,以及与所述第一切换信号反相的第二切换信号;
缓存乒乓控制单元,用于根据所述第一切换信号和第二切换信号轮流控制第一缓存装置和第二缓存装置,通过乒乓切换的方式控制每一缓存周期内第一缓存装置和第二缓存装置的读写状态,使每一缓存周期内其中一个缓存装置处于读状态,另一个缓存装置处于写状态,且每一缓存装置在相邻的缓存周期内所对应的读写状态相反;
数据输出单元,用于将轮流缓存至第一缓存装置以第二缓存装置中的来自第一时钟域的数据,输出至第二时钟域侧。
其中,所述缓存乒乓控制单元进一步用于:
在第一缓存周期内,根据所述第一切换信号控制第一缓存装置,使所述第一缓存装置处于写状态,将来自第一时钟域侧的数据写入所述第一缓存装置中;根据第二切换信号控制第二缓存装置,使所述第二缓存装置处于读状态,将所述第二缓存装置中缓存的数据读出并输出至第二时钟域侧;
在第二缓存周期内,根据所述第二切换信号控制第一缓存装置,使所述第一缓存装置处于读状态,将第一缓存装置中缓存的数据读出并输出至第二时钟域侧;根据第一切换信号控制第二缓存装置,使所述第二缓存装置处于写状态,将来自第一时钟域侧数据写入所述第二缓存装置中;
轮流执行所述第一缓存周期与第二缓存周期。
其中,所述第一缓存装置以及第二缓存装置均为单时钟域单端口缓存器件。
其中,所述切换信号生成单元进一步包括:
与门,其输入端接收第一时钟域及第二时钟域的控制信号;
第一选择器,其控制端连接所述与门的输出;其两输入端之间连接第一反相器;
触发器,其输入端与所述第一选择器的输出端相连接,其输出端输出第一切换信号;所述输出端连接所述第一选择器处反相器的输入端;
第二反相器,其输入端连接所述触发器的输出端,其输出端输出与所述第一切换信号反相的第二切换信号。
其中,所述缓存乒乓控制单元进一步包括:
第一切换器,其控制端连接所述触发器的输出端,其两个输入端连接读时钟信号以及写时钟信号,输出端连接第一缓存装置的时钟信号端口;
第二选择器,其控制端连接所述触发器的输出端,其两个输入端分别连接高电平及低电平信号,输出端连接第一缓存装置的读使能端口;
第一或门,其输入端分别连接读使能信号和写使能信号;
第二切换器,其控制端连接所述第二反相器输出端,其两个输入端连接读时钟信号以及写时钟信号,输出端连接第二缓存装置的时钟信号端口;
第三选择器,其控制端连接所述第二反相器输出端,其两个输入端分别连接高电平及低电平信号,输出端连接第二缓存装置的读使能端口;
第二或门,其输入端分别连接读使能信号和写使能信号。
其中,所述数据输出单元进一步包括:
读数据选择器,其控制端连接所述触发器的输出端,其两个输入端分别连接所述第一缓存装置的读数据端口,以及所述第二缓存装置的读数据端口。
相应地,本发明还提供一种接口控制器,其包括:设置于一个时钟侧的内存、总线模块、TX DMA模块、RX DMA模块;以及设置于另一个时钟侧的TX LOGIC模块、RX LOGIC模块、PHY模块;
进一步包括:
分别设置于TXDMA模块与TX LOGIC模块之间的第一乒乓缓存装置,以及设置于RXDMA模块与RX LOGIC模块之间的第二乒乓缓存装置;所述第一乒乓缓存装置以及第二乒乓缓存装置均采用前述的带时钟切换的乒乓缓存装置。
实施本发明实施例,具有如下的有益效果:
本发明提供一种带时钟切换的乒乓缓存方法、装置及接口控制器,通过对两块单时钟域单端口缓存器进行时钟切换和乒乓操作,可以实现支持两个时钟域对缓存的同时读写操作,其芯片面积是常规方案的1/3~1/2,可以极大的减小大规模数字芯片的面积成本。
同时,所采用的方案无需采用异步FIFO,方案易于实现,且稳定性高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,根据这些附图获得其他的附图仍属于本发明的范畴。
图1是现有技术中一种接口控制器的架构示意图;
图2为应用于图1中的一种双时钟域双端口缓存器的结构示意图;
图3为应用于图1中的一种单时钟域双端口缓存器的结构示意图;
图4为本发明提供的一种带时钟切换的乒乓缓存装置的一个实施例的结构示意图;
图5为图4对应的电路原理示意图;
图6为图5中的单时钟域单端口缓存器的结构示意图;
图7为本发明中采用图4中带时钟切换的乒乓缓存装置的接口控制器的架构示意图;
图8为本发明提供的一种带时钟切换的乒乓缓存方法的一个实施例的主流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
如图4所示,示出了本发明提供的一种带时钟切换的乒乓缓存装置的一个实施例的结构示意图;一并结合图5至图6所示。在本实施例中,所述带时钟切换的乒乓缓存装置1,用于支持两个时钟域工作的接口控制器中,其至少包括:
切换信号生成单元10,用于基于第一时钟域的控制信号及第二时钟域的控制信号,生成第一切换信号,以及与所述第一切换信号反相的第二切换信号;
缓存乒乓控制单元11,用于根据所述第一切换信号和第二切换信号轮流控制第一缓存装置和第二缓存装置,通过乒乓切换的方式控制每一缓存周期内第一缓存装置和第二缓存装置的读写状态,使每一缓存周期内其中一个缓存装置处于读状态,另一个缓存装置处于写状态,且每一缓存装置在相邻的缓存周期内所对应的读写状态相反;
数据输出单元12,用于将轮流缓存至第一缓存装置和第二缓存装置中的来自第一时钟域的数据,输出至第二时钟域侧。
在一个具体的实施例中,所述缓存乒乓控制单元11进一步用于:
在第一缓存周期内,根据所述第一切换信号控制第一缓存装置,使所述第一缓存装置处于写状态,将来自第一时钟域侧的数据写入所述第一缓存装置中;根据第二切换信号控制第二缓存装置,使所述第二缓存装置处于读状态,将所述第二缓存装置中缓存的数据读出并输出至第二时钟域侧;
在第二缓存周期内,根据所述第二切换信号控制第一缓存装置,使所述第一缓存装置处于读状态,将第一缓存装置中缓存的数据读出并输出至第二时钟域侧;根据第一切换信号控制第二缓存装置,使所述第二缓存装置处于写状态,将来自第一时钟域侧数据写入所述第二缓存装置中;
轮流执行所述第一缓存周期与第二缓存周期。
下述结合图5中的电路原理图,来进一步描述在本实施例中,上述带时钟切换的乒乓缓存装置1中各单元是如何实现的。
在图5中,所述第一缓存装置(SP_MEM_A)以及第二缓存装置(SP_MEM_B)均为单时钟域单端口缓存器件。如图6所示,在这种缓存器中,其只有一个时钟域,而且同一个时间只能进行读操作或者写操作,不支持同时进行读写操作。具体地,当CE=1且R_EN=0时,执行写操作,将来自W_DATA端口的数据写入缓存器;当CE=1且R_EN=1时,执行读操作,将缓存器中的数据从R_DATA端口读出。
所述切换信号生成单元10进一步包括:
与门(AND),其输入端接收第一时钟域及第二时钟域的控制信号(TX_DMA和TX_LOGIC);
第一选择器(MUX_C),其控制端连接所述与门(AND)的输出;其两输入端之间连接第一反相器(D1);
触发器(SWITCH_SEL),其D输入端与所述第一选择器的输出端相连接,其Q输出端输出第一切换信号;所述Q输出端连接所述第一选择器处反相器的输入端;
第二反相器(D2),其输入端连接所述触发器的Q输出端,其输出端输出与所述第一切换信号反相的第二切换信号。
其中,所述缓存乒乓控制单元11进一步包括:
第一切换器(CLK_SWITCH_A),其控制端连接所述触发器的Q输出端,其两个输入端连接读时钟信号(R_CLK)以及写时钟信号(W_CLK),输出端连接第一缓存装置的时钟信号端口;
第二选择器(MUX_A),其控制端连接所述触发器的Q输出端,其两个输入端分别连接高电平及低电平信号,输出端连接第一缓存装置的读使能(R_EN)端口;
第一或门(OR_A),其输入端分别连接读使能信号(R_EN)和写使能信号(W_EN);
第二切换器(CLK_SWITCH_B),其控制端连接所述第二反相器(D2)输出端,其两个输入端连接读时钟信号(R_CLK)以及写时钟信号(W_CLK),输出端连接第二缓存装置的时钟信号端口;
第三选择器(MUX_B),其控制端连接所述第二反相器(D2)输出端,其两个输入端分别连接高电平及低电平信号,输出端连接第二缓存装置的读使能(R_EN)端口;
第二或门(OR_B),其输入端分别连接读使能信号(R_EN)和写使能信号(W_EN)。
其中,所述数据输出单元12进一步包括:
读数据选择器(MUX_RDATA),其控制端连接所述触发器的Q输出端,其两个输入端分别连接所述第一缓存装置的读数据端口(R_DATA_A),以及所述第二缓存装置的读数据端口(R_DATA_B)。
可以理解的是,图5示出的电路的工作原理如下:
其中,触发器(SWITCH_SEL)的功能如下:
在触发器复位后,其输出值默认值为0;
当完成一个缓存周期内缓存装置的全部的读操作(即R_DONE=1)和写操作(即W_DONE=1)后,其输出值取反,否则保持原值。
其中,第一缓存装置和第二缓存装置的时钟信号(CLK)来源于读写时钟,使用一个支持无毛刺切换装置(即第一切换器CLK_SWITCH_A和第二切换器CLK_SWITCH_B)来产生,第一缓存装置和第二缓存装置所使用的控制信号来自触发器(SWITCH_SEL)输出的第一切换信号以及反向后的第二切换信号;
第一缓存装置和第二缓存装置的读写使能信号(R_EN),均使用选择器(即第二选择器和第三选择器)产生,其控制信号来自触发器(SWITCH_SEL)输出的第一切换信号以及反向后的第二切换信号;
第一缓存装置和第二缓存装置的片选信号(CE)由读使能(R_EN)和写使能(W_EN)进行“或”操作产生,即当要进行读操作和写操作时,片选信号都有效;
在一个缓存周期内,当SWITCH_SEL输出信号为低电平(0)时:
第一缓存装置(SP_MEM_A)的CLK为W_CLK,R_EN=0,由TX_DMA对第一缓存装置进行写操作,将从内存读到的数据写入到第一缓存装置中;
此时,第二缓存装置(SP_MEM_B)的CLK为R_CLK,R_EN=1,由TX_LOGIC读第二缓存装置,并且TX_LOGIC的发送数据选择第二缓存装置的读数据。
当上述两个操作都完成后,进入下一个缓存周期,此时SWITCH_SEL输出信号进行切换,变为高电平(即1)。
在此缓存周期中,SWITCH_SEL输出信号为高电平(1):
第一缓存装置(SP_MEM_A)的CLK为R_CLK,R_EN=1,由TX_LOGIC读第一缓存装置,将数据读出后发给PHY模块,并且TX_LOGIC的发送数据选择第一缓存装置的读数据;
第二缓存装置(SP_MEM_B)的CLK为W_CLK,R_EN=0,由TX_DMA对第二缓存装置进行写操作,将从内存读到的数据写入第二缓存装置中;
当上述两个操作都完成后,进入下一个缓存周期,此时SWITCH_SEL输出信号进行切换,变为低电平(即0)。
重复上述两个步骤,第一缓存装置和第二缓存装置两个缓存进行乒乓操作,从而实现同时在两个时钟域下的读写操作。
如图7所示,示出了采用图4中带时钟切换的乒乓缓存装置的接口控制器的架构示意图;在该实施例中,所述接口控制器包括:设置于一个时钟侧的内存、总线模块、TX DMA模块、RX DMA模块;以及设置于另一个时钟侧的TX LOGIC模块、RX LOGIC模块、PHY模块;
进一步包括:分别设置于TXDMA模块与TX LOGIC模块之间的第一乒乓缓存装置,以及设置于RX DMA模块与RX LOGIC模块之间的第二乒乓缓存装置;所述第一乒乓缓存装置以及第二乒乓缓存装置均采用如图5示出的带时钟切换的乒乓缓存装置;
更具体地,所述第一乒乓缓存装置可以直接采用图5所示出的电路,其中,第一时钟域为CLK1,第二时钟域为CLK2,第一时钟域及第二时钟域的控制信号(TX_DMA和TX_LOGIC);
而第二乒乓缓存装置在采用图5所示出的电路时,只需要要进行微小的调整,其中,第一时钟域为CLK2,第二时钟域为CLK1,第一时钟域及第二时钟域的控制信号(RX_LOGIC和RX_DMA)。其工作原理与对图5中介绍的类似,可以一并结合并参照,在此不进行赘述。
如图8所示,示出了本发明提供的一种带时钟切换的乒乓缓存方法的一个实施例的主流程示意图。在此实施例中,所述带时钟切换的乒乓缓存方法,用于支持两个时钟域工作的接口控制器中,至少包括:
步骤S10,基于第一时钟域及第二时钟域的控制信号,生成第一切换信号,以及与所述第一切换信号反相的第二切换信号;
步骤S11,根据所述第一切换信号和第二切换信号轮流控制第一缓存装置和第二缓存装置,通过乒乓切换的方式控制每一缓存周期内第一缓存装置和第二缓存装置的读写状态,使每一缓存周期内其中一个缓存装置处于读状态,另一个缓存装置处于写状态,且每一缓存装置在相邻的缓存周期内所对应的读写状态相反;
步骤S12,将轮流缓存至第一缓存装置以第二缓存装置中的来自第一时钟域的数据,输出至第二时钟域侧。
更具体的,在所述步骤S11中:
在第一缓存周期内,根据所述第一切换信号控制第一缓存装置,使所述第一缓存装置处于写状态,将来自第一时钟域侧的数据写入所述第一缓存装置中;根据第二切换信号控制第二缓存装置,使所述第二缓存装置处于读状态,将所述第二缓存装置中缓存的数据读出并输出至第二时钟域侧;
在第二缓存周期内,根据所述第二切换信号控制第一缓存装置,使所述第一缓存装置处于读状态,将第一缓存装置中缓存的数据读出并输出至第二时钟域侧;根据第一切换信号控制第二缓存装置,使所述第二缓存装置处于写状态,将来自第一时钟域侧数据写入所述第二缓存装置中;
轮流执行所述第一缓存周期与第二缓存周期。
其中,所述第一缓存装置以及第二缓存装置均为单时钟域单端口缓存器件。
更多细节,可以参考并结合前述对图4至图7的描述,在此不进行赘述。
实施本发明实施例,具有如下的有益效果:
本发明提供一种带时钟切换的乒乓缓存方法、装置及接口控制器,通过对两块单时钟域单端口缓存器进行时钟切换和乒乓操作,可以实现支持两个时钟域对缓存的同时读写操作,其芯片面积是常规方案的1/3~1/2,可以极大的减小大规模数字芯片的面积成本。
同时,所采用的方案无需采用异步FIFO,方案易于实现,且稳定性高。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (10)
1.一种带时钟切换的乒乓缓存方法,用于支持两个时钟域工作的接口控制器中,其特征在于,至少包括:
基于第一时钟域及第二时钟域的控制信号,生成第一切换信号,以及与所述第一切换信号反相的第二切换信号;
根据所述第一切换信号和第二切换信号轮流控制第一缓存装置和第二缓存装置,通过乒乓切换的方式控制每一缓存周期内第一缓存装置和第二缓存装置的读写状态,使每一缓存周期内其中一个缓存装置处于读状态,另一个缓存装置处于写状态,且每一缓存装置在相邻的缓存周期内所对应的读写状态相反;
将轮流缓存至第一缓存装置和第二缓存装置中的来自第一时钟域的数据,输出至第二时钟域侧。
2.如权利要求1所述的方法,其特征在于,根据所述第一切换信号和第二切换信号轮流控制第一缓存装置和第二缓存装置,通过乒乓切换的方式控制每一缓存周期内第一缓存装置和第二缓存装置的读写状态的步骤进一步包括:
在第一缓存周期内,根据所述第一切换信号控制第一缓存装置,使所述第一缓存装置处于写状态,将来自第一时钟域侧的数据写入所述第一缓存装置中;根据第二切换信号控制第二缓存装置,使所述第二缓存装置处于读状态,将所述第二缓存装置中缓存的数据读出并输出至第二时钟域侧;
在第二缓存周期内,根据所述第二切换信号控制第一缓存装置,使所述第一缓存装置处于读状态,将第一缓存装置中缓存的数据读出并输出至第二时钟域侧;根据第一切换信号控制第二缓存装置,使所述第二缓存装置处于写状态,将来自第一时钟域侧数据写入所述第二缓存装置中;
轮流执行所述第一缓存周期与第二缓存周期。
3.如权利要求1或2所述的方法,其特征在于,所述第一缓存装置以及第二缓存装置均为单时钟域单端口缓存器件。
4.一种带时钟切换的乒乓缓存装置,用于支持两个时钟域工作的接口控制器中,其特征在于,至少包括:
切换信号生成单元,用于基于第一时钟域及第二时钟域的控制信号,生成第一切换信号,以及与所述第一切换信号反相的第二切换信号;
缓存乒乓控制单元,用于根据所述第一切换信号和第二切换信号轮流控制第一缓存装置和第二缓存装置,通过乒乓切换的方式控制每一缓存周期内第一缓存装置和第二缓存装置的读写状态,使每一缓存周期内其中一个缓存装置处于读状态,另一个缓存装置处于写状态,且每一缓存装置在相邻的缓存周期内所对应的读写状态相反;
数据输出单元,用于将轮流缓存至第一缓存装置以第二缓存装置中的来自第一时钟域的数据,输出至第二时钟域侧。
5.如权利要求4所述的装置,其特征在于,所述缓存乒乓控制单元进一步用于:
在第一缓存周期内,根据所述第一切换信号控制第一缓存装置,使所述第一缓存装置处于写状态,将来自第一时钟域侧的数据写入所述第一缓存装置中;根据第二切换信号控制第二缓存装置,使所述第二缓存装置处于读状态,将所述第二缓存装置中缓存的数据读出并输出至第二时钟域侧;
在第二缓存周期内,根据所述第二切换信号控制第一缓存装置,使所述第一缓存装置处于读状态,将第一缓存装置中缓存的数据读出并输出至第二时钟域侧;根据第一切换信号控制第二缓存装置,使所述第二缓存装置处于写状态,将来自第一时钟域侧数据写入所述第二缓存装置中;
轮流执行所述第一缓存周期与第二缓存周期。
6.如权利要求5所述的装置,其特征在于,所述第一缓存装置以及第二缓存装置均为单时钟域单端口缓存器件。
7.如权利要求4至6任一项所述的装置,其特征在于,所述切换信号生成单元进一步包括:
与门,其输入端接收第一时钟域及第二时钟域的控制信号;
第一选择器,其控制端连接所述与门的输出;其两输入端之间连接第一反相器;
触发器,其输入端与所述第一选择器的输出端相连接,其输出端输出第一切换信号;所述输出端连接所述第一选择器处反相器的输入端;
第二反相器,其输入端连接所述触发器的输出端,其输出端输出与所述第一切换信号反相的第二切换信号。
8.如权利要求7所述的装置,其特征在于,所述缓存乒乓控制单元进一步包括:
第一切换器,其控制端连接所述触发器的输出端,其两个输入端连接读时钟信号以及写时钟信号,输出端连接第一缓存装置的时钟信号端口;
第二选择器,其控制端连接所述触发器的输出端,其两个输入端分别连接高电平及低电平信号,输出端连接第一缓存装置的读使能端口;
第一或门,其输入端分别连接读使能信号和写使能信号;
第二切换器,其控制端连接所述第二反相器输出端,其两个输入端连接读时钟信号以及写时钟信号,输出端连接第二缓存装置的时钟信号端口;
第三选择器,其控制端连接所述第二反相器输出端,其两个输入端分别连接高电平及低电平信号,输出端连接第二缓存装置的读使能端口;
第二或门,其输入端分别连接读使能信号和写使能信号。
9.如权利要求8所述的装置,其特征在于,所述数据输出单元进一步包括:
读数据选择器,其控制端连接所述触发器的输出端,其两个输入端分别连接所述第一缓存装置的读数据端口,以及所述第二缓存装置的读数据端口。
10.一种接口控制器,其特征在于,至少包括:设置于一个时钟域侧的与内存连接的总线模块、TX DMA模块、RX DMA模块;以及设置于另一个时钟域侧的TX LOGIC模块、RX LOGIC模块、PHY模块、
分别设置于TXDMA模块与TX LOGIC模块之间的第一乒乓缓存装置,以及设置于RX DMA模块与RX LOGIC模块之间的第二乒乓缓存装置;所述第一乒乓缓存装置以及第二乒乓缓存装置均采用如权利要求4至9任一项的一种带时钟切换的乒乓缓存装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211052915.8A CN115437972A (zh) | 2022-08-31 | 2022-08-31 | 一种带时钟切换的乒乓缓存方法、装置及接口控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211052915.8A CN115437972A (zh) | 2022-08-31 | 2022-08-31 | 一种带时钟切换的乒乓缓存方法、装置及接口控制器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115437972A true CN115437972A (zh) | 2022-12-06 |
Family
ID=84244916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211052915.8A Pending CN115437972A (zh) | 2022-08-31 | 2022-08-31 | 一种带时钟切换的乒乓缓存方法、装置及接口控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115437972A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116662246A (zh) * | 2023-08-01 | 2023-08-29 | 北京炬玄智能科技有限公司 | 跨时钟域的数据读取电路及电子装置 |
-
2022
- 2022-08-31 CN CN202211052915.8A patent/CN115437972A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116662246A (zh) * | 2023-08-01 | 2023-08-29 | 北京炬玄智能科技有限公司 | 跨时钟域的数据读取电路及电子装置 |
CN116662246B (zh) * | 2023-08-01 | 2023-09-22 | 北京炬玄智能科技有限公司 | 跨时钟域的数据读取电路及电子装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7725625B2 (en) | Latency insensitive FIFO signaling protocol | |
CN114490460B (zh) | 一种用于asic的flash控制器及其控制方法 | |
EP0579515B1 (en) | Asynchronous bus interface for minimising asynchronous bus data transfer times | |
US20020154625A1 (en) | Method and apparatus for implementing low latency crossbar switches with integrated storage signals | |
US7035956B2 (en) | Transmission control circuit, reception control circuit, communications control circuit, and communications control unit | |
CN108874702B (zh) | 基于axi总线的多路对称加解密ip核并行处理装置和方法 | |
CN115437972A (zh) | 一种带时钟切换的乒乓缓存方法、装置及接口控制器 | |
JP4404637B2 (ja) | 局所同期回路間の情報交換 | |
CN117113442B (zh) | 一种面向同态加密算法Paillier的数据通路的加速系统 | |
KR100598010B1 (ko) | 클럭 분배기, 클럭 분배기를 포함한 시스템, 클럭 분배방법 및 클럭 분배를 이용한 데이터 읽기 및 쓰기 방법 | |
US20110314197A1 (en) | Data processing system | |
CN115834602A (zh) | 一种异步数据流通信交互系统 | |
JPH0789348B2 (ja) | インタフェースシステムにおけるデータ伝送方法 | |
US7899955B2 (en) | Asynchronous data buffer | |
CN114840458B (zh) | 读写模块、片上系统和电子设备 | |
JPH10214220A (ja) | 集積回路 | |
Ning et al. | Design of a GALS Wrapper for Network on Chip | |
US20040064662A1 (en) | Methods and apparatus for bus control in digital signal processors | |
US6453373B1 (en) | Method and apparatus for differential strobing | |
CN118734757A (zh) | 基于fpga的ddr物理层接口电路及其控制方法 | |
Herlev et al. | Open core protocol (OCP) clock domain crossing interfaces | |
JP2645462B2 (ja) | データ処理システム | |
JP2971006B2 (ja) | シリアル通信方法およびシリアル通信コントローラ | |
Varshavsky et al. | One-two-one track asynchronous FIFO | |
CN116486856A (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 |