CN111274171B - 一种数据传输装置及方法 - Google Patents
一种数据传输装置及方法 Download PDFInfo
- Publication number
- CN111274171B CN111274171B CN201811472376.7A CN201811472376A CN111274171B CN 111274171 B CN111274171 B CN 111274171B CN 201811472376 A CN201811472376 A CN 201811472376A CN 111274171 B CN111274171 B CN 111274171B
- Authority
- CN
- China
- Prior art keywords
- data
- pointer
- clock
- module
- write
- 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.)
- Active
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 64
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000001360 synchronised effect Effects 0.000 claims abstract description 78
- 230000003139 buffering effect Effects 0.000 claims abstract description 8
- 230000000630 rising effect Effects 0.000 claims description 14
- 230000000694 effects Effects 0.000 abstract description 2
- 238000012545 processing Methods 0.000 description 31
- 230000008859 change Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000011176 pooling Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- LHMQDVIHBXWNII-UHFFFAOYSA-N 3-amino-4-methoxy-n-phenylbenzamide Chemical compound C1=C(N)C(OC)=CC=C1C(=O)NC1=CC=CC=C1 LHMQDVIHBXWNII-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
Images
Classifications
-
- 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/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
-
- 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/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种数据传输装置及方法,该装置包括:AHB总线(10)、存储单元(20)和KDP模块(30);其中,所述存储单元(20),用于接收经所述AHB总线(10)传输的数据,在异步时钟和同步时钟下对所述数据进行缓存,并在同步时钟下以设定的速度将所述数据输出至所述KDP模块(30)。本发明的方案,可以解决异步时钟下大容量数据的传输存在亚稳态的问题,达到降低大容量数据的传输难度的效果。
Description
技术领域
本发明属于数据处理技术领域,具体涉及一种数据传输装置及方法,尤其涉及一种基于AHB(Advanced High-Performance Bus,高级高性能总线)总线的Streamfifo同步数据的装置及方法。
背景技术
在设计***时,处理器和外设工作在不同的时钟频率下,数据在不同模块之间传输时,先进现出(First Input First Output)模块占据十分重要的作用。其中,处理器:即MCU的内核,如ARM公司的Coretex M0、M4等。外设:主要是内存相关的外设,如Nanflash、DMA、SAI音频等。
Streamfifo包括两种FIFO,包括异步Asyncfifo和同步Syncfifo,同步的Syncfifo可以使用双端口的RAM和读写指针完成,Asyncfifo为了避免亚稳态,在设计上需要做特别处理。
AHB总线是AMBA总线的一部分,它用于高性能,高时钟频率的***结构中。是由Master、Slave和Infrastructure 3部分所组成,整个AHB bus上的传输都是由Master所发出,由Slave负责回应。
常用的数据缓存器基于AXI总线架构,由于AXI是读写并行机制,这种方法具备高速度和高带宽的优势。而AHB总线总延时低于AXI总线,效率和速度都兼备。AXI是先进的可拓展接口(多通道总线),AHB是先进的高性能总线(单通道总线),在异步通信过程中,AHB总线没有AXI总线有优势。异步信号处理是AHB总线的缓存架构面临的问题。
发明内容
本发明的目的在于,针对上述缺陷,提供一种数据传输装置及方法,以解决现有技术中异步时钟下大容量数据的传输存在亚稳态的问题,达到消除数据传输的亚稳态的效果。
本发明提供一种数据传输装置,包括:AHB总线、存储单元和KDP模块;其中,所述存储单元,用于接收经所述AHB总线传输的数据,在异步时钟和同步时钟下对所述数据进行缓存,并在同步时钟下以设定的速度将所述数据输出至所述KDP模块。
可选地,所述存储单元,包括:异步FIFO模块和同步FIFO模块;其中,所述异步FIFO模块,用于接收经所述AHB总线传输的数据,在异步时钟下对所述数据进行缓存;所述同步FIFO模块,用于在同步时钟下对所述数据进行缓存,并以设定的速度将所述数据输出至所述KDP模块。
可选地,所述同步FIFO模块输出至所述KDP模块的数据所包含的信号,包括:设定比特的数据、数据有效性、所述KDP模块从所述同步FIFO模块读取数据的数量、以及中断标志位。
可选地,所述同步FIFO模块,包括:FIFO存储器和状态模块;还包括:写指针、和/或读指针;其中,所述写指针,用于指向下一个待写入的数据,写完之后指针自动加一;和/或,所述读指针,用于指向下一个待读取的数据,读取完之后指针自动加一;所述FIFO存储器,用于根据待写数据的写地址和写FIFO,对待写数据进行写操作并缓存;和/或,用于根据待读数据的读地址和读FIFO,对缓存的待读数据进行读操作;所述状态模块,用于根据所述写的可行性和写地址的状态,在所述FIFO存储器的写操作是两个指针在下个时钟保持相等时,输出满的标志位给所述写指针;和/或,用于根据所述读的可行性和读地址的状态,在所述FIFO存储器的读操作是两个指针在下一个时钟相等时,输出空的标志位给所述写指针。
可选地,所述存储单元中的读操作的读寄存器、和/或所述存储单元中的写操作的写寄存器,包括:二进制计数器。
可选地,所述增强的二进制计数器中,设置有行波进位加法器和D锁存器;其中,所述行波进位加法器,用于产生一个提前半个周期的指针信号和一个正常的指针信号;和/或,所述D锁存器,在读操作中,读地址的指针和读时钟的空标志指针都是在时钟的上升沿产生,读时钟满标志指针在紧接着的时钟的下降沿产生;第1位指针式由触发器构成,第2位指针的进位信号则通过第1位读时钟满标志指针和第2位读时钟满标志指针异或产生,第3位指针的进位信号则通过第2位指针运算结果再异或上第3位读时钟满标志指针产生,以此类推,得到其他读进位信号;或者,所述D锁存器,在写操作中,写地址的指针和写时钟的空标志指针都是在时钟的上升沿产生,写时钟满标志指针在紧接着的时钟的下降沿产生;第1位指针式由触发器构成,第2位指针的进位信号则通过第1位写时钟满标志指针和第2位写时钟满标志指针异或产生,第3位指针的进位信号则通过第2位指针运算结果再异或上第3位写时钟满标志指针产生,以此类推,得到其他写进位信号。
可选地,其中,当所述KDP模块开启时,所述同步FIFO模块的数据能够按设定批量被所述KDP模块读取;同时,所述异步FIFO模块还能够继续接收所述AHB总线传输的数据,并存储到所述同步FIFO模块中。
与上述装置相匹配,本发明再一方面提供一种数据传输方法,包括:通过存储单元,接收经所述AHB总线传输的数据,在异步时钟和同步时钟下对所述数据进行缓存,并在同步时钟下以设定的速度将所述数据输出至所述KDP模块。
可选地,通过存储单元,接收经所述AHB总线传输的数据,在异步时钟和同步时钟下对所述数据进行缓存,并在同步时钟下以设定的速度将所述数据输出至所述KDP模块,包括:通过异步FIFO模块,接收经所述AHB总线传输的数据,在异步时钟下对所述数据进行缓存;以及,通过同步FIFO模块,在同步时钟下对所述数据进行缓存,并以设定的速度将所述数据输出至所述KDP模块。
可选地,其中,当KDP模块开启时,通过KDP模块按设定批量读取所述同步FIFO模块的数据;同时,通过异步FIFO模块继续接收AHB总线传输的数据,并存储到所述同步FIFO模块中。
本发明的方案,通过实现AHB总线从存储单元抓取数据,在异步时钟下实现数据的缓存和高速输出给数据处理模块,并且消除了亚稳态,提高了数据传输的稳定性及可靠性。
进一步,本发明的方案,通过AHB总线对数据进行传输,利用增强的二进制计数器产生满、空指针,消除了亚稳态,满足数据处理模块对数据的需求,时效性高。
由此,本发明的方案,通过AHB总线对数据进行传输,利用增强的二进制计数器产生满、空指针,解决现有技术中异步时钟下大容量数据的传输存在亚稳态的问题,从而,克服现有技术中数据传输存在亚稳态、延时时间长和可靠性差的缺陷,实现消除数据传输的亚稳态、减小延时时间和提升可靠性的有益效果。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明的数据传输装置的一实施例的结构示意图,具体为Streamfifo工作框图;
图2为本发明的数据传输装置中同步FIFO的一实施例的结构示意图,具体为本发明的工作原理示意图;
图3为本发明的数据传输装置中二进制计数器读指针产生电路的一实施例的结构示意图;
图4为本发明的数据传输装置中二进制计数器写指针产生电路的一实施例的结构示意图;
图5为本发明的数据传输方法的一实施例的流程示意图;
图6为本发明的数据传输方法的另一实施例的流程示意图。
结合附图,本发明实施例中附图标记如下:
10-AHB总线;20-存储单元;30-KDP模块。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明的实施例,提供了一种数据传输装置。参见图1所示本发明的装置的一实施例的结构示意图。该数据传输装置可以包括:AHB总线10、存储单元20和KDP模块30。
其中,所述AHB总线10,可以用于进行数据传输。所述存储单元20,可以用于接收经所述AHB总线10传输的数据,在异步时钟和同步时钟下对所述数据进行缓存,并在同步时钟下以设定的速度将所述数据输出至所述KDP模块30。所述KDP模块30,可以用于对所述数据进行运算处理。
例如:由于本发明实现的AHB到数据处理模块的缓存装置,具有很高的时效性,并且消除了亚稳态,除了应用在网络数据传输,还可以拓展应用到语音或视频的人工智能领域等。其中,由AHB总线负责数据的读取和传输,能够工作在AHB总线下,可以降低数据在总线上的延时。
例如:可以实现AHB总线从存储单元抓取数据,在异步时钟下实现数据的缓存和高速输出给数据处理模块,并且消除了亚稳态;取消了二进制和格雷码转换单元,减少了电路的面积,在其它方面都一致的情况下,降低了整个***的流片成本;可以作为数据低速读取到高速输出的转换器,以实现异步时钟下数据的同步传输操作;可以以更少的电路面积实现数据的缓存和高速输出。
由此,通过使存储单元对AHB总线传输的数据在异步时钟和同步时钟下进行缓存,并在同步时钟下以设定的速度将缓存的数据输出至KDP模块进行运算处理,消除了数据传输的亚稳态,提高了数据传输的稳定性和可靠性,且传输效率高、传输容量大。
在一个可选例子中,所述存储单元20,可以包括:异步FIFO模块和同步FIFO模块。
具体地,所述异步FIFO模块,可以用于接收经所述AHB总线10传输的数据,在异步时钟下对所述数据进行缓存。
具体地,所述同步FIFO模块,可以用于在同步时钟下对所述数据进行缓存,并以设定的速度将所述数据输出至所述KDP模块30。
例如:设计了一个异步Streamfifo的通用架构,能够实现异步FIFO自动从AHB总线上抓取数据,并且缓存在同步FIFO中。采用异步FIFO和同步FIFO相结合的缓存机制,可以有效解决数据运算模块直接从存储模块读取数据,延时过长的问题。
例如:异步FIFO输出的数据再经过同步FIFO,完成了数据的异步处理,并且存储到FIFO中。
由此,通过异步FIFO模块和同步FIFO模块对AHB总线传输的数据进行异步时钟和同步时钟下的缓存及输出,传输可靠性高、且传输容量大。
其中,所述同步FIFO模块输出至所述KDP模块30的数据所包含的信号,可以包括:设定比特的数据、数据有效性、所述KDP模块30从所述同步FIFO模块读取数据的数量、以及中断标志位。
例如:如图1所示,同步FIFO输出4个信号给数据处理模块(KDP),其中str_data是32比特的数据,str_valid表示数据有效性,content表示数据处理模块从同步数据模块读取数据的数量,interrupt作为中断标志位。
由此,通过使同步FIFO模块输出至KDP模块的数据包含多种信号,有利于提升数据转数的准确性和可靠性。
可选地,如图2所示,所述同步FIFO模块,可以包括:FIFO存储器和状态模块;还可以包括:写指针、和/或读指针。
具体地,所述写指针,可以用于指向下一个待写入的数据,写完之后指针自动加一;和/或,所述读指针,可以用于指向下一个待读取的数据,读取完之后指针自动加一。
其中,其实正常的读写指针都是指读写的地址,只是地址都是根据基准地址,累加产生新的指针,地址是连续的。
具体地,所述FIFO存储器,可以用于根据待写数据的写地址和写FIFO,对待写数据进行写操作并缓存;和/或,可以用于根据待读数据的读地址和读FIFO,对缓存的待读数据进行读操作。
具体地,所述状态模块,可以用于根据所述写的可行性和写地址的状态,在所述FIFO存储器的写操作是两个指针在下个时钟保持相等时,输出满的标志位给所述写指针;和/或,可以用于根据所述读的可行性和读地址的状态,在所述FIFO存储器的读操作是两个指针在下一个时钟相等时,输出空的标志位给所述写指针。
例如:Streamfifo可以改变普通的连接方式,降低总线延时,解决数据准备不充分的问题。如图2所示,同步FIFO模块的内部结构,wr_addr和rd_addr表示读写地址,wr_fifo和rd_fifo表示写FIFO和读FIFO,wr_ptr和rd_ptr表示写地址和读地址的状态。valid_wr和valid_rd表示写和读的可行性。full和empty是整个FIFO的满和空的标志位。
例如:如图2所示,状态模块:FIFO中在写操作是两个指针在下个时钟保持相等时,FIFO状态模块输出满(Full),当读操作是两个指针在下一个时钟相等时,FIFO变空(Empty)。
由此,通过读指针和/或写指针、FIFO存储器和状态模块的配合设置,对AHB总线传输的数据进行异步时钟和同步时钟下的缓存及输出,数据传输效率高、且可靠性好。
在一个可选例子中,所述存储单元20中的读操作的读寄存器、和/或所述存储单元20中的写操作的写寄存器,可以包括:二进制计数器,优选为增强的二进制计数器。
例如:所述存储单元20中的读操作的读寄存器、和/或所述存储单元20中的写操作的写寄存器,可以包括:D锁存器。如:在所述存储单元20中异步FIFO模块和/或同步FIFO模块中,读操作的读寄存器、和/或写操作的写寄存器,可以包括:D锁存器。
例如:所述存储单元20中的读计数器、和/或所述存储单元20中的写计数器,可以包括:增强的二进制计数器。如:在所述存储单元20中异步FIFO模块和/或同步FIFO模块中,读计数器、和/或写计数器,可以包括:增强的二进制计数器。
例如:二进制指针计数器可以实现多位同时变化,指令跳转和丢弃错误数据等特殊功能,比格雷码只支持单比特变化更丰富。采用增强的二进制计数器设计,满足了FIFO中满和空的算法,消除了亚稳态。
例如:通过AHB总线对数据进行传输,利用增强的二进制计数器产生满、空指针,消除了亚稳态,满足数据处理模块对数据的需求,具有很高的时效性,除了应用在网络数据传输,还可以拓展应用到语音或视频的人工智能领域等。
由此,通过在读寄存器、写寄存器等使用增强的二进制计数器,可以实现多位同时变化,消除了亚稳态,且处理效率高、功能丰富。
可选地,所述增强的二进制计数器中,设置有行波进位加法器和D锁存器。
具体地,所述行波进位加法器,可以用于产生一个提前半个周期的指针信号和一个正常的指针信号。
具体地,如图3所示,所述D锁存器,在读操作中,读地址的指针和读时钟的空标志指针都是在时钟的上升沿产生,读时钟满标志指针在紧接着的时钟的下降沿产生。第1位指针式由触发器构成,第2位指针的进位信号则通过第1位读时钟满标志指针和第2位读时钟满标志指针异或产生,第3位指针的进位信号则通过第2位指针运算结果再异或上第3位读时钟满标志指针产生,以此类推,得到其他读进位信号。
例如:配置Streamfifo中Asyncfifo中的读操作的寄存器,使能FIFO和数据来源和确定数据的传输方式,并且开启FIFO空/满/传输完成的中断。数据经AHB总线传输并保存在FIFO中,其中读计数器使用如下增强的二进制计数器:
1)设置行波进位加法器,产生一个提前半个周期的指针信号和一个正常的指针信号。
2)图3所示寄存器为D锁存器,R_EF和R_FF分别表示读时钟的空标志指针和读时钟满标志指针,其中R_EF相对于R_FF提前半个周期产生,即R_EF信号在时钟的上升沿产生,而R_FF信号在紧接着的时钟的下降沿产生。
3)其中读地址的指针和R_EF一致,都是在时钟的上升沿产生。
4)第一位指针式由触发器构成,第2位指针的进位信号则R_FF1和R_FF2异或产生,第三位指针的进位信号则通过第二位指针运算结果再异或上R_FF3,以此类推,得到其他读进位信号。
或者,如图4所示,所述D锁存器,在写操作中,写地址的指针和写时钟的空标志指针都是在时钟的上升沿产生,写时钟满标志指针在紧接着的时钟的下降沿产生。第1位指针式由触发器构成,第2位指针的进位信号则通过第1位写时钟满标志指针和第2位写时钟满标志指针异或产生,第3位指针的进位信号则通过第2位指针运算结果再异或上第3位写时钟满标志指针产生,以此类推,得到其他写进位信号。
例如:数据经AHB总线传输并保存在FIFO中,其中写计数器使用如下增强的二进制计数器。
1)设置行波进位加法器,产生一个提前半个周期的指针信号和一个正常的指针信号。
2)图4所示寄存器为D锁存器,W_FF和W_EF分别表示读时钟的空标志指针和读时钟满标志指针,其中W_FF相对于W_EF提前半个周期产生,即W_FF信号在时钟的上升沿产生,而W_EF信号在紧接着的时钟的下降沿产生。
3)其中读地址的指针和W_FF一致,都是在时钟的上升沿产生。
4)第一位指针式由触发器构成,第2位指针的进位信号则W_EF1和W_EF2异或产生,第三位指针的进位信号则通过第二位指针运算结果再异或上W_EF3,以此类推,得到其他写进位信号。
其中,行波进位加法器和D锁存器,可以择一地或同时地按上述方式设置。例如:全新定制的读指针和写指针产生电路,满足FIFO的周期数,并且消除了亚稳态。
由此,通过在增强的二进制计数器中设置有行波进位加法器和D锁存器,可以消除了亚稳态,且时效性好。
在一个可选例子中,当所述KDP模块30开启时,所述同步FIFO模块的数据能够按设定批量被所述KDP模块30读取。同时,所述异步FIFO模块还能够继续接收所述AHB总线10传输的数据,并存储到所述同步FIFO模块中。
例如:当KDP数据处理模块开启,同步FIFO的数据能够大批量被读取,满足处理的需求,与此同时,异步FIFO还能够继续接收AHB总线的数据,源源不断存储到同步FIFO中,可以实现数据的大量缓存。
由此,通过使FIFO模块和异步FIFO模块同时工作,可以提高数据传输效率和传输容量。
经大量的试验验证,采用本发明的技术方案,通过实现AHB总线从存储单元抓取数据,在异步时钟下实现数据的缓存和高速输出给数据处理模块,并且消除了亚稳态,提高了数据传输的稳定性及可靠性。
根据本发明的实施例,还提供了对应于数据传输装置的一种数据传输方法。该数据传输方法可以可以包括:通过AHB总线10,进行数据传输;通过存储单元20,接收经所述AHB总线10传输的数据,在异步时钟和同步时钟下对所述数据进行缓存,并在同步时钟下以设定的速度将所述数据输出至所述KDP模块30;通过KDP模块30,对所述数据进行运算处理。
由此,通过使存储单元对AHB总线传输的数据在异步时钟和同步时钟下进行缓存,并在同步时钟下以设定的速度将缓存的数据输出至KDP模块进行运算处理,消除了数据传输的亚稳态,提高了数据传输的稳定性和可靠性,且传输效率高、传输容量大。
可选地,可以结合图5所示本发明的方法的另一实施例的流程示意图,进一步说明存储单元20的具体处理过程,可以包括:步骤S110和步骤S120。
步骤S110,通过异步FIFO模块,接收经所述AHB总线10传输的数据,在异步时钟下对所述数据进行缓存。以及,
步骤S120,通过同步FIFO模块,在同步时钟下对所述数据进行缓存,并以设定的速度将所述数据输出至所述KDP模块30。
由此,通过异步FIFO模块和同步FIFO模块对AHB总线传输的数据进行异步时钟和同步时钟下的缓存及输出,传输可靠性高、且传输容量大。
在一个可选例子中,可以结合图6所示本发明的方法的另一实施例的流程示意图,进一步说明存储单元20的具体处理过程,可以包括:步骤S210和步骤S220。
步骤S210,当KDP模块30开启时,通过KDP模块30按设定批量读取所述同步FIFO模块的数据。
同时,步骤S220,通过异步FIFO模块继续接收AHB总线10传输的数据,并存储到所述同步FIFO模块中。
由此,通过使FIFO模块和异步FIFO模块同时工作,可以提高数据传输效率和传输容量。
在一个可选实施方式中,为了实现异步时钟下的大容量数据传输,本发明的方案,至少将解决如下问题:
(1)设计了一个异步Streamfifo的通用架构,能够实现异步FIFO自动从AHB总线上抓取数据,并且缓存在同步FIFO中。
(2)常用的Streamfifo使用是AXI***总线,负责数据的搬运,本发明能够工作在AHB总线下,可以降低数据在总线上的延时。
(3)二进制指针计数器可以实现多位同时变化,指令跳转和丢弃错误数据等特殊功能,比格雷码只支持单比特变化更丰富。
(4)本发明采用增强的二进制计数器设计,满足了FIFO中满和空的算法,消除了亚稳态。
(5)在***的关键设计中实现数据的大量缓存。
本发明的方案,至少可以解决以上问题后,Streamfifo可以改变普通的连接方式,降低总线延时,解决数据准备不充分的问题。
其中,对于芯片传输效率来讲,主要消耗来源于总线延时和器件内部延时,那么,在器件延时固定的前提下,如果总线延时降低,能够地降低芯片内部延时。而本发明的方案,取消了二进制和格雷码转换单元,减少了电路的面积,在其它方面都一致的情况下,降低了整个***的流片成本。
在一个可选例子中,本发明的方案,提出了一种新的Streamfifo设计方法,通过AHB总线对数据进行传输,利用增强的二进制计数器产生满、空指针,消除了亚稳态,满足数据处理模块对数据的需求,具有很高的时效性,除了应用在网络数据传输,还可以拓展应用到语音或视频的人工智能领域等。
可选地,本发明的方案,实现数据从***到数据运算单元KDP(Kindle DirectPublishing,Kindle出版服务),不再是AXI总线,本发明是由AHB总线负责数据的读取和传输。
可选地,本发明的方案,采用异步FIFO和同步FIFO相结合的缓存机制,可以有效解决数据运算模块直接从存储模块读取数据,延时过长的问题。
可选地,本发明的方案,可以作为数据低速读取到高速输出的转换器,以实现异步时钟下数据的同步传输操作。
可选地,本发明的方案,更少的电路面积实现数据的缓存和高速输出。
可选地,本发明的方案,全新定制的读指针和写指针产生电路,满足FIFO的周期数,并且消除了亚稳态。
可选地,本发明的方案,由于本发明实现的AHB到数据处理模块的缓存装置,具有很高的时效性,并且消除了亚稳态,除了应用在网络数据传输,还可以拓展应用到语音或视频的人工智能领域等。
在一个可选具体实施方式中,可以参见图1至图3所示的例子,对本发明的方案的具体实现过程进行示例性说明。
图1中,数据缓存模块通过高性能总线(AHB)与处理器通信,Asynchronous_fifo和Synchronous_fifo分别表示异步FIFO和同步FIFO模块,用于异步时钟和同步时钟下的数据缓存。同步FIFO输出4个信号给数据处理模块(KDP),其中str_data是32比特的数据,str_valid表示数据有效性,content表示数据处理模块从同步数据模块读取数据的数量,interrupt作为中断标志位。
图2中,这是同步FIFO模块的内部结构,wr_addr和rd_addr表示读写地址,wr_fifo和rd_fifo表示写FIFO和读FIFO,wr_ptr和rd_ptr表示写地址和读地址的状态。valid_wr和valid_rd表示写和读的可行性。full和empty是整个FIFO的满和空的标志位。
在一个可选具体例子中,本发明的方案,可以实现AHB总线从存储单元抓取数据,在异步时钟下实现数据的缓存和高速输出给数据处理模块,并且消除了亚稳态。
在本发明的方案中,设计的结构划分阐述如下:
FIFO(First-In-First-Out),即先进先出队列。它是一种传统的按序执行的方法,先进入的指令先完成并引退,跟着才执行第二条指令,在FIFO中并不对内容进行分类,其关心的队列的长度问题。
AHB(Advanced High Performance Bus),高级高性能总线,主要用于高性能模块之间的连接。AHB***由主模块、从模块和基础结构3部分组成,整个AHB总线上的传输都由主模块发出,从模块负责回应。
KDP(Key Data Processor),芯片中一个硬件加速数据处理模块,可以支持常见卷积神经网络中的卷积层(Convolution layer)、池化层(Maxpooling layer)、以及均值池化(Average pooling)等。
SRAM(Static Random Access Memory),静态随即存储器是存储器的一种,静态存储器只要保持通电,里面存储的数据就可以保持。
状态模块:FIFO中在写操作是两个指针在下个时钟保持相等时,FIFO状态模块输出满(Full),当读操作是两个指针在下一个时钟相等时,FIFO变空(Empty)。
状态模块:FIFO中当写指针和读指针的最高位不相同,但其他位相同,FIFO状态输出满(Full);当写指针和读指针完全一样时,状态输出为空(Empty)。
其中,本发明的工作原理可以如下:
1、配置Streamfifo中Asyncfifo中的读操作的寄存器,使能FIFO和数据来源和确定数据的传输方式,并且开启FIFO空/满/传输完成的中断。
2、数据经AHB总线传输并保存在FIFO中,其中读计数器使用如下增强的二进制计数器:
1)设置行波进位加法器,产生一个提前半个周期的指针信号和一个正常的指针信号。
2)图3所示寄存器为D锁存器,R_EF和R_FF分别表示读时钟的空标志指针和读时钟满标志指针,其中R_EF相对于R_FF提前半个周期产生,即R_EF信号在时钟的上升沿产生,而R_FF信号在紧接着的时钟的下降沿产生。
3)其中读地址的指针和R_EF一致,都是在时钟的上升沿产生。
4)第一位指针式由触发器构成,第2位指针的进位信号则R_FF1和R_FF2异或产生,第三位指针的进位信号则通过第二位指针运算结果再异或上R_FF3,以此类推,得到其他读进位信号。
3、数据经AHB总线传输并保存在FIFO中,其中写计数器使用如下增强的二进制计数器。
1)设置行波进位加法器,产生一个提前半个周期的指针信号和一个正常的指针信号。
2)图4所示寄存器为D锁存器,W_FF和W_EF分别表示写时钟的空标志指针和写时钟满标志指针,其中W_FF相对于W_EF提前半个周期产生,即W_FF信号在时钟的上升沿产生,而W_EF信号在紧接着的时钟的下降沿产生。
3)其中写地址的指针和W_FF一致,都是在时钟的上升沿产生。
4)第一位指针式由触发器构成,第2位指针的进位信号则W_EF1和W_EF2异或产生,第三位指针的进位信号则通过第二位指针运算结果再异或上W_EF3,以此类推,得到其他写进位信号。
4、异步FIFO输出的数据再经过同步FIFO,完成了数据的异步处理,并且存储到FIFO中。
5、当KDP数据处理模块开启,同步FIFO的数据能够大批量被读取,满足处理的需求,与此同时,异步FIFO还能够继续接收AHB总线的数据,源源不断存储到同步FIFO中。
由于本实施例的方法所实现的处理及功能基本相应于前述图1至图4所示的装置的实施例、原理和实例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
经大量的试验验证,采用本实施例的技术方案,通过AHB总线对数据进行传输,利用增强的二进制计数器产生满、空指针,消除了亚稳态,满足数据处理模块对数据的需求,时效性高。
综上,本领域技术人员容易理解的是,在不冲突的前提下,上述各有利方式可以自由地组合、叠加。
以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (10)
1.一种数据传输装置,其特征在于,包括:AHB总线(10)、存储单元(20)和KDP模块(30);所述存储单元(20)中的读操作的读寄存器、和/或所述存储单元(20)中的写操作的写寄存器,包括:二进制计数器;所述二进制计数器,包括:增强的二进制计数器;其中,
所述存储单元(20),用于接收经所述AHB总线(10)传输的数据,在异步时钟和同步时钟下对所述数据进行缓存,并在同步时钟下以设定的速度将所述数据输出至所述KDP模块(30);
通过AHB总线对数据进行传输,利用增强的二进制计数器产生满、空指针,消除了亚稳态。
2.根据权利要求1所述的装置,其特征在于,所述存储单元(20),包括:异步FIFO模块和同步FIFO模块;其中,
所述异步FIFO模块,用于接收经所述AHB总线(10)传输的数据,在异步时钟下对所述数据进行缓存;
所述同步FIFO模块,用于在同步时钟下对所述数据进行缓存,并以设定的速度将所述数据输出至所述KDP模块(30)。
3.根据权利要求2所述的装置,其特征在于,所述同步FIFO模块输出至所述KDP模块(30)的数据所包含的信号,包括:设定比特的数据、数据有效性、所述KDP模块(30)从所述同步FIFO模块读取数据的数量、以及中断标志位。
4.根据权利要求2或3所述的装置,其特征在于,所述同步FIFO模块,包括:FIFO存储器和状态模块;还包括:写指针和读指针;其中,
所述写指针,用于指向下一个待写入的数据,写完之后指针自动加一;
所述读指针,用于指向下一个待读取的数据,读取完之后指针自动加一;
所述FIFO存储器,用于根据待写数据的写地址和写FIFO,对待写数据进行写操作并缓存;用于根据待读数据的读地址和读FIFO,对缓存的待读数据进行读操作;
所述状态模块,用于根据所述写的可行性和写地址的状态,在所述FIFO存储器的写操作是两个指针在下个时钟保持相等时,输出满的标志位给所述写指针;用于根据所述读的可行性和读地址的状态,在所述FIFO存储器的读操作是两个指针在下一个时钟相等时,输出空的标志位给所述写指针。
5.根据权利要求1所述的装置,其特征在于,所述增强的二进制计数器中,设置有行波进位加法器和D锁存器;其中,
所述行波进位加法器,用于产生一个提前半个周期的指针信号和一个正常的指针信号;
和/或,
所述D锁存器,在读操作中,读地址的指针和读时钟的空标志指针都是在时钟的上升沿产生,读时钟满标志指针在紧接着的时钟的下降沿产生;第1位指针式由触发器构成,第2位指针的进位信号则通过第1位读时钟满标志指针和第2位读时钟满标志指针异或产生,第3位指针的进位信号则通过第2位指针运算结果再异或上第3位读时钟满标志指针产生,以此类推,得到其他读进位信号;
或者,
所述D锁存器,在写操作中,写地址的指针和写时钟的空标志指针都是在时钟的上升沿产生,写时钟满标志指针在紧接着的时钟的下降沿产生;第1位指针式由触发器构成,第2位指针的进位信号则通过第1位写时钟满标志指针和第2位写时钟满标志指针异或产生,第3位指针的进位信号则通过第2位指针运算结果再异或上第3位写时钟满标志指针产生,以此类推,得到其他写进位信号。
6.根据权利要求2或3所述的装置,其特征在于,其中,
当所述KDP模块(30)开启时,所述同步FIFO模块的数据能够按设定批量被所述KDP模块(30)读取;同时,所述异步FIFO模块还能够继续接收所述AHB总线(10)传输的数据,并存储到所述同步FIFO模块中。
7.根据权利要求4所述的装置,其特征在于,其中,
当所述KDP模块(30)开启时,所述同步FIFO模块的数据能够按设定批量被所述KDP模块(30)读取;同时,所述异步FIFO模块还能够继续接收所述AHB总线(10)传输的数据,并存储到所述同步FIFO模块中。
8.一种如权利要求1-7任一所述的数据传输装置的数据传输方法,其特征在于,包括:
通过存储单元(20),接收经所述AHB总线(10)传输的数据,在异步时钟和同步时钟下对所述数据进行缓存,并在同步时钟下以设定的速度将所述数据输出至所述KDP模块(30);所述存储单元(20)中的读操作的读寄存器、和/或所述存储单元(20)中的写操作的写寄存器,包括:二进制计数器;所述二进制计数器,包括:增强的二进制计数器;通过AHB总线对数据进行传输,利用增强的二进制计数器产生满、空指针,消除了亚稳态。
9.根据权利要求8所述的方法,其特征在于,通过存储单元(20),接收经所述AHB总线(10)传输的数据,在异步时钟和同步时钟下对所述数据进行缓存,并在同步时钟下以设定的速度将所述数据输出至所述KDP模块(30),包括:
通过异步FIFO模块,接收经所述AHB总线(10)传输的数据,在异步时钟下对所述数据进行缓存;以及,
通过同步FIFO模块,在同步时钟下对所述数据进行缓存,并以设定的速度将所述数据输出至所述KDP模块(30)。
10.根据权利要求9所述的方法,其特征在于,其中,
当KDP模块(30)开启时,通过KDP模块(30)按设定批量读取所述同步FIFO模块的数据;
同时,通过异步FIFO模块继续接收AHB总线(10)传输的数据,并存储到所述同步FIFO模块中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811472376.7A CN111274171B (zh) | 2018-12-04 | 2018-12-04 | 一种数据传输装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811472376.7A CN111274171B (zh) | 2018-12-04 | 2018-12-04 | 一种数据传输装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111274171A CN111274171A (zh) | 2020-06-12 |
CN111274171B true CN111274171B (zh) | 2022-02-11 |
Family
ID=70998498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811472376.7A Active CN111274171B (zh) | 2018-12-04 | 2018-12-04 | 一种数据传输装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111274171B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112416823B (zh) * | 2020-11-15 | 2024-05-03 | 珠海一微半导体股份有限公司 | 一种突发模式下的传感器数据读写控制方法、***及芯片 |
CN112804321A (zh) * | 2021-01-08 | 2021-05-14 | 广州航天海特***工程有限公司 | 以太网数据包的缓存转发方法、装置、设备及存储介质 |
CN113533941B (zh) * | 2021-09-15 | 2022-03-01 | 北京国科天迅科技有限公司 | 芯片接口的测试方法、装置、计算机设备和存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04276935A (ja) * | 1991-03-04 | 1992-10-02 | Mitsubishi Electric Corp | 非同期データ同期伝送装置 |
CN1478226A (zh) * | 2000-06-09 | 2004-02-25 | ŦԼ�и��ױ��Ǵ�ѧ�йܻ� | 混合异步同步***的低等待时间fifo电路 |
CN1560868A (zh) * | 2004-02-10 | 2005-01-05 | 中国科学院计算技术研究所 | 用双端口随机存取存储器实现异步先进先出数据传输 |
CN101320362A (zh) * | 2008-06-27 | 2008-12-10 | 北京大学深圳研究生院 | 支持异步传输的阵列处理***及其时钟管理方法 |
CN102931994A (zh) * | 2012-09-26 | 2013-02-13 | 成都嘉纳海威科技有限责任公司 | 应用于信号处理芯片的高速信号采样和同步的架构及方法 |
CN103488597A (zh) * | 2013-09-27 | 2014-01-01 | 深圳先进技术研究院 | 一种先进先出缓存器及其读写数据的方法 |
CN104049909A (zh) * | 2013-03-15 | 2014-09-17 | 国际商业机器公司 | 双异步和同步存储器*** |
CN104298634A (zh) * | 2014-09-24 | 2015-01-21 | 四川九洲电器集团有限责任公司 | 基于fpga和dsp的数据传输*** |
CN104461967A (zh) * | 2014-12-25 | 2015-03-25 | 中国电子科技集团公司第三十八研究所 | 一种支持同步和异步传输模式的并行数据接口 |
CN104484011A (zh) * | 2014-11-25 | 2015-04-01 | 上海高性能集成电路设计中心 | 一种分布控制双时钟异步发送、接收模块及fifo装置 |
CN108829373A (zh) * | 2018-05-25 | 2018-11-16 | 西安微电子技术研究所 | 一种异步fifo实现电路 |
-
2018
- 2018-12-04 CN CN201811472376.7A patent/CN111274171B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04276935A (ja) * | 1991-03-04 | 1992-10-02 | Mitsubishi Electric Corp | 非同期データ同期伝送装置 |
CN1478226A (zh) * | 2000-06-09 | 2004-02-25 | ŦԼ�и��ױ��Ǵ�ѧ�йܻ� | 混合异步同步***的低等待时间fifo电路 |
CN1560868A (zh) * | 2004-02-10 | 2005-01-05 | 中国科学院计算技术研究所 | 用双端口随机存取存储器实现异步先进先出数据传输 |
CN101320362A (zh) * | 2008-06-27 | 2008-12-10 | 北京大学深圳研究生院 | 支持异步传输的阵列处理***及其时钟管理方法 |
CN102931994A (zh) * | 2012-09-26 | 2013-02-13 | 成都嘉纳海威科技有限责任公司 | 应用于信号处理芯片的高速信号采样和同步的架构及方法 |
CN104049909A (zh) * | 2013-03-15 | 2014-09-17 | 国际商业机器公司 | 双异步和同步存储器*** |
CN103488597A (zh) * | 2013-09-27 | 2014-01-01 | 深圳先进技术研究院 | 一种先进先出缓存器及其读写数据的方法 |
CN104298634A (zh) * | 2014-09-24 | 2015-01-21 | 四川九洲电器集团有限责任公司 | 基于fpga和dsp的数据传输*** |
CN104484011A (zh) * | 2014-11-25 | 2015-04-01 | 上海高性能集成电路设计中心 | 一种分布控制双时钟异步发送、接收模块及fifo装置 |
CN104461967A (zh) * | 2014-12-25 | 2015-03-25 | 中国电子科技集团公司第三十八研究所 | 一种支持同步和异步传输模式的并行数据接口 |
CN108829373A (zh) * | 2018-05-25 | 2018-11-16 | 西安微电子技术研究所 | 一种异步fifo实现电路 |
Also Published As
Publication number | Publication date |
---|---|
CN111274171A (zh) | 2020-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111274171B (zh) | 一种数据传输装置及方法 | |
CN110347635B (zh) | 一种基于多层总线的异构多核微处理器 | |
CN110297797B (zh) | 异构协议转换装置和方法 | |
US20050097240A1 (en) | Supercharge message exchanger | |
CN110058816B (zh) | 一种基于ddr的高速多用户队列管理器及方法 | |
US20040151200A1 (en) | Method and system for optimizing UTOPIA CLAV polling arbitration | |
CN116089343A (zh) | 一种基于axi的数据存储方法、装置、存储介质及设备 | |
CN104809093A (zh) | 对串行接口传输的数据进行处理的方法及装置 | |
CN112948322B (zh) | 一种基于弹性缓存的虚通道及实现方法 | |
CN113672030A (zh) | 数据传输速率发生器和相关装置及方法 | |
CN100343778C (zh) | 数据传送方法和数据传送桥接器 | |
CN110851390B (zh) | 一种基于fpga实现4m 1553b总线协议的方法及*** | |
CN115129657B (zh) | 一种可编程逻辑资源扩展装置和服务器 | |
CN103166863A (zh) | 集总式8x8低延迟高带宽交叉点缓存队列片上路由器 | |
WO2022252590A1 (zh) | 数据包处理方法及装置 | |
CN115328832A (zh) | 一种基于pcie dma的数据调度***与方法 | |
CN111399802B (zh) | 多电源域多时钟域先进先出队列、集成电路芯片及计算机设备 | |
CN112231261A (zh) | 一种用于axi总线的id号压缩装置 | |
CN111782563A (zh) | 一种用于risc-v微控制器的dvp控制器*** | |
CN117608667B (zh) | 指令集处理***、方法及电子设备 | |
CN101267459A (zh) | 数据输出方法及数据缓存器 | |
CN116186793B (zh) | 一种基于risc-v的安全芯片架构及其工作方法 | |
CN100499631C (zh) | 数据丢弃模块及数据丢弃的实现方法 | |
CN221175403U (zh) | 一种内置dma控制模块的读取装置 | |
CN113515910B (zh) | 一种基于axi总线的数据预处理方法 |
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 |