一种先进先出的数据缓存器及数据缓存系统的制作方法

文档序号:31449634发布日期:2022-09-07 12:55阅读:38来源:国知局
一种先进先出的数据缓存器及数据缓存系统的制作方法

1.本技术涉及数字电路技术领域,特别是涉及一种先进先出的数据缓存器及数据缓存系统。


背景技术:

2.微控制器是小型、多功能、价格低廉的设备,不论是经验丰富的电气工程师,还是业余爱好者、学生或其他学科的专业人员,都可以较为容易地对微控制器进行编程,由于微控制器具备适应性强、价格合理以及用户友好等特点,微控制器被应用在几乎所有电子产品上。
3.微控制器由中央处理单元,非易失性存储器,易失性存储器,外围设备和支持电路组成。其中,易失性存储器(即随机存取存储器,random access memory,ram)用于临时数据存储,通常采用双端口ram,一个端口用于先进先出(first input first output,fifo)队列进行写操作,另一个端口用于先进先出队列进行读操作,构成先进先出的数据缓存器。fifo主要应用与突发传输,当读数据速率和写数据速率差异较大时,为了防止数据丢失,需要依据具体需求合理设计fifo的深度,即fifo的寻址范围。然而,目前微控制器的外围设备模块的用于接收和发送数据的fifo的深度是固定的,在实际使用中,如果fifo的深度设计的过浅,会出现fifo的深度不能满足需求的情况,设计的过深又会造成资源的浪费,即使进行适中的设计,也会无法满足部分应用场景下的需求,导致数据丢失。
4.由此,如何在减少资源浪费的前提下使fifo的深度可以满足多样化的应用需求,成为目前亟待解决的问题。


技术实现要素:

5.基于上述问题,本技术提供了一种先进先出的数据缓存器及数据缓存系统,可以在减少资源浪费的前提下使fifo的深度满足多样化的应用需求。
6.本技术实施例公开了如下技术方案:第一方面,本技术提供了一种先进先出的数据缓存器,所述数据缓存器包括:双端口随机存取存储器,第一指针控制模块以及第二指针控制模块;所述第一指针控制模块和所述第二指针控制模块通过多条地址线与所述双端口随机存取存储器的至少一个存储单元连接,所述第一指针控制模块连接的全部存储单元的集合为第一寻址范围,所述第二指针控制模块连接的全部存储单元的集合为第二寻址范围;所述双端口随机存取存储器,用于存储所述第一指针控制模块和/或所述第二指针控制模块写入的数据;所述第一指针控制模块,用于接收第一地址线切换请求,根据所述第一地址线切换请求,控制所述第一指针控制模块连接的存储单元的数量,得到更新后的第一寻址范围,向所述更新后的第一寻址范围内的存储单元写入数据或从所述更新后的第一寻址范围内
的存储单元读取数据;所述第二指针控制模块,用于接收第二地址线切换请求,根据所述第二地址线切换请求,控制所述第二指针控制模块连接的存储单元的数量,得到更新后的第二寻址范围,向所述更新后的第二寻址范围内的存储单元写入数据或从所述更新后的第二寻址范围内的存储单元读取数据。
7.可选地,所述第一指针控制模块,包括:第一写指针控制单元、第一读指针控制单元以及第一地址线控制单元;所述第一写指针控制单元通过至少一条地址线与所述双端口随机存取存储器的至少一个存储单元的第一端口连接,所述第一读指针控制单元通过至少一条地址线与所述双端口随机存取存储器的所述至少一个存储单元的第二端口连接,与所述第一写指针控制单元和所述第一读指针控制单元连接的存储单元的数量受控于所述第一地址线控制单元;所述第一地址线控制单元,用于接收第一地址线切换请求,根据所述第一地址线切换请求,控制所述第一写指针控制单元和所述第一读指针控制单元连接的存储单元的数量,得到更新后的第一寻址范围;所述第一写指针控制单元,用于根据预设的寻址逻辑在所述更新后的第一寻址范围中确定待写入数据的存储单元,通过所述待写入数据的存储单元的第一端口,将数据写入所述待写入数据的存储单元;所述第一读指针控制单元,用于根据预设的寻址逻辑在所述更新后的第一寻址范围中确定待读取数据的存储单元,通过所述待读取数据的存储单元的第二端口,从所述待读取数据的存储单元中读取数据;所述寻址逻辑包括先进先出。
8.可选地,所述第一寻址范围和/或所述更新后的第一寻址范围包括固定范围和可调配置范围,所述第一寻址范围内的存储单元数量大于0。
9.可选地,所述第二指针控制模块,包括:第二写指针控制单元、第二读指针控制单元以及第二地址线控制单元;所述第二写指针控制单元通过至少一条地址线与所述双端口随机存取存储器的至少一个存储单元的第一端口连接,所述第二读指针控制单元通过至少一条地址线与所述双端口随机存取存储器的所述至少一个存储单元的第二端口连接,或所述第二写指针控制单元和所述第二读指针控制单元不与所述双端口随机存取存储器的任一存储单元连接,与所述第二写指针控制单元和所述第二读指针控制单元连接的存储单元的数量受控于所述第二地址线控制单元;所述第二地址线控制单元,用于接收第二地址线切换请求,根据所述第二地址线切换请求,控制所述第二写指针控制单元和所述第二读指针控制单元连接的存储单元的数量,得到更新后的第二寻址范围;所述第二写指针控制单元,用于根据预设的寻址逻辑在所述更新后的第二寻址范围中确定待写入数据的存储单元,通过所述待写入数据的存储单元的第一端口,将数据写入所述待写入数据的存储单元;所述第二读指针控制单元,用于根据预设的寻址逻辑在所述更新后的第二寻址范围中确定待读取数据的存储单元,通过所述待读取数据的存储单元的第二端口,从所述待
读取数据的存储单元中读取数据;所述寻址逻辑包括先进先出。
10.可选地,所述第二寻址范围和/或所述更新后的第二寻址范围包括可调配置范围,所述第二寻址范围内的存储单元数量大于等于0。
11.可选地,所述第一地址线控制模块,具体用于:接收第一地址线切换请求;根据所述第一地址线切换请求,控制所述配置范围内的至少一条指定地址线与对应的存储单元建立连接或断开连接,得到更新后的第一寻址范围。
12.可选地,所述第一地址线控制模块和/或所述第二地址线控制模块,还用于:根据所述更新后的第一寻址范围和/或所述更新后的第二寻址范围,更新所述寻址逻辑。
13.第二方面,本技术提供了一种先进先出的数据缓存系统,包括上述第一方面中任一项所述的数据缓存器。
14.相较于现有技术,本技术具有以下有益效果:本技术提供了一种先进先出的数据缓存器,该数据缓存器包括:双端口随机存取存储器,第一指针控制模块以及第二指针控制模块;第一指针控制模块和第二指针控制模块通过多条地址线与双端口随机存取存储器的至少一个存储单元连接,第一指针控制模块连接的全部存储单元的集合为第一寻址范围,第二指针控制模块连接的全部存储单元的集合为第二寻址范围;双端口随机存取存储器,用于存储第一指针控制模块和/或第二指针控制模块写入的数据;第一指针控制模块,用于接收第一地址线切换请求,根据第一地址线切换请求,控制第一指针控制模块连接的存储单元的数量,得到更新后的第一寻址范围,向更新后的第一寻址范围内的存储单元写入数据或从更新后的第一寻址范围内的存储单元读取数据;第二指针控制模块,用于接收第二地址线切换请求,根据第二地址线切换请求,控制第二指针控制模块连接的存储单元的数量,得到更新后的第二寻址范围,向更新后的第二寻址范围内的存储单元写入数据或从更新后的第二寻址范围内的存储单元读取数据。由此,通过切换地址线可以改变第一指针控制模块和第二指针控制模块连接的双端口随机存取存储器的存储单元的数量,也即可以分别或同时改变第一指针控制模块和第二指针控制模块各自对应的先进先出fifo队列的深度,既可以使fifo的深度满足多样化的应用需求,又可以避免数据存储资源的浪费。
附图说明
15.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
16.图1为本技术实施例提供的一种先进先出的数据缓存器结构图;图2为本技术实施例提供的另一种先进先出的数据缓存器结构图。
具体实施方式
17.本发明提供的一种先进先出的数据缓存器及数据缓存系统可用于数字电路领域,上述仅为示例,并不对本发明提供的一种先进先出的数据缓存器及数据缓存系统的应用领域进行限定。
18.本技术说明书和权利要求书及附图说明中的术语“第一”、“第二”“第三”、和“第四”等是用于区别不同对象,而不是用于限定特定顺序。
19.在本技术实施例中,“作为示例”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“作为示例”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“作为示例”或者“例如”等词旨在以具体方式呈现相关概念。
20.本技术的实施方式部分使用的术语仅用于对本技术的具体实施例进行解释,而非旨在限定本技术。
21.正如前文描述,目前微控制器的外围设备模块的用于接收和发送数据的fifo的深度是固定的,在实际使用中,如果fifo的深度设计的过浅,会出现fifo的深度不能满足需求的情况,设计的过深又会造成资源的浪费,即使进行适中的设计,也会无法满足部分应用场景下的需求,导致数据丢失。
22.发明人经过研究,发现微控制器具有多个外部设备模块,例如串行外设接口(serial peripheral interface,spi)、通用异步收发传输器(universal asynchronous receiver transmitter,uart)以及控制器域网(controller area network,can)等。通常来说,相同功能的上述外部设备模块的数量至少有两个,例如,具有四个uart,然而,实际使用过程中,用户大多只会启用其中的一部分。
23.有鉴于此,本技术提供了一种先进先出的数据缓存器,该先进先出的数据缓存器包括:双端口随机存取存储器,第一指针控制模块以及第二指针控制模块;第一指针控制模块和第二指针控制模块通过多条地址线与双端口随机存取存储器的至少一个存储单元连接,第一指针控制模块连接的全部存储单元的集合为第一寻址范围,第二指针控制模块连接的全部存储单元的集合为第二寻址范围。通过切换地址线可以改变第一指针控制模块和第二指针控制模块连接的双端口随机存取存储器的存储单元的数量,也即可以分别或同时改变第一指针控制模块和第二指针控制模块各自对应的先进先出fifo队列的深度,既可以使fifo的深度满足多样化的应用需求,又可以避免数据存储资源的浪费。
24.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
25.参见图1,该图为本技术提供的一种先进先出的数据缓存器结构图,可应用于数字电路技术领域中的微控制器,该数据缓存器包括:双端口随机存取存储器101,第一指针控制模块102以及第二指针控制模块103。
26.第一指针控制模块102和第二指针控制模块103通过多条地址线与双端口随机存取存储器101的至少一个存储单元连接,第一指针控制模块102连接的全部存储单元的集合为第一寻址范围,第二指针控制模块103连接的全部存储单元的集合为第二寻址范围。
27.双端口随机存取存储器101:用于存储第一指针控制模块和/或第二指针控制模块写入的数据。
28.优选地,双端口随机存取存储器包含多个存储单元,作为示例,图1中的a0~a15表示同一随机存取存储器的16个数据存储单元,每个存储单元具有两个端口,一个端口用于向存储单元写入数据,另一个端口用于从存储单元读取数据。写入数据和读取数据可以是同步的,也可以是异步的。
29.第一指针控制模块102:用于接收第一地址线切换请求,根据第一地址线切换请求,控制第一指针控制模块连接的存储单元的数量,得到更新后的第一寻址范围,向更新后的第一寻址范围内的存储单元写入数据或从更新后的第一寻址范围内的存储单元读取数据。
30.优选地,该数据缓存器可以具有多个第一指针控制模块,图1仅示出了具有一个第一指针控制模块的情况。在该实施例中,第一寻址范围内的存储单元包括固定的a0~a7和可以控制是否与第一指针控制模块相连的a8~a15,即第一指针控制模块对应的第一先进先出fifo队列的深度范围可以在8~16之间灵活配置。
31.作为示例,在本技术提供的另一实施例中,也可以具有两个第一指针控制模块,其中一个的寻址范围包括固定的a0~a3和可以控制是否与第一指针控制模块相连的a4~a10,另一个的寻址范围包括固定的a11~a15和可以控制是否与第一指针控制模块相连的a4~a10,上述内容仅为示例,不对本技术的保护范围进行限定,在实际应用中可以灵活调整第一指针控制模块的数量以及第一寻址范围。
32.作为示例,初始状态下,第一寻址范围可以是a0~a7,即第一指针控制模块对应的第一先进先出fifo队列的深度为8,若第一指针控制模块102接收到例如将第一先进先出fifo队列的深度设置为10的第一地址线切换请求,则可以控制与a8、a9这两个数据存储单元连接的地址线与第一指针控制模块相连,此时,更新后的第一寻址范围为a0~a9,也即第一先进先出fifo队列的深度为10。而后,第一指针控制模块可以向a0~a9这10个存储单元内写入数据或从中读取数据。
33.第二指针控制模块103:用于接收第二地址线切换请求,根据第二地址线切换请求,控制第二指针控制模块连接的存储单元的数量,得到更新后的第二寻址范围,向更新后的第二寻址范围内的存储单元写入数据或从更新后的第二寻址范围内的存储单元读取数据。
34.优选地,该数据缓存器可以具有多个第二指针控制模块。图1仅示出了具有一个第二指针控制模块的情况,在该实施例中,第二寻址范围内的存储单元包括可以控制是否与第二指针控制模块相连的a8~a15,即第二指针控制模块对应的第二先进先出fifo队列的深度范围可以在0~8之间灵活配置,fifo深度为0表示放弃使用第二先进先出队列,也可以表示放弃使用第二先进先出队列连接的外部设备模块。第二指针控制模块可以与第一指针控制模块在功能上完全相同。
35.优选地,上述第一指针控制模块和第二指针控制模块连接相同功能或类型的外部设备模块,例如,第一指针控制模块连接一个uart,第二指针控制模块连接另一个uart。
36.本技术实施例提供了一种先进先出的数据缓存器,该先进先出的数据缓存器包括:双端口随机存取存储器,第一指针控制模块以及第二指针控制模块;第一指针控制模块
和第二指针控制模块通过多条地址线与双端口随机存取存储器的至少一个存储单元连接,第一指针控制模块连接的全部存储单元的集合为第一寻址范围,第二指针控制模块连接的全部存储单元的集合为第二寻址范围;双端口随机存取存储器,用于存储第一指针控制模块和/或第二指针控制模块写入的数据;第一指针控制模块,用于接收第一地址线切换请求,根据第一地址线切换请求,控制第一指针控制模块连接的存储单元的数量,得到更新后的第一寻址范围,向更新后的第一寻址范围内的存储单元写入数据或从更新后的第一寻址范围内的存储单元读取数据;第二指针控制模块,用于接收第二地址线切换请求,根据第二地址线切换请求,控制第二指针控制模块连接的存储单元的数量,得到更新后的第二寻址范围,向更新后的第二寻址范围内的存储单元写入数据或从更新后的第二寻址范围内的存储单元读取数据。由此,通过切换地址线可以改变第一指针控制模块和第二指针控制模块连接的双端口随机存取存储器的存储单元的数量,也即可以分别或同时改变第一指针控制模块和第二指针控制模块各自对应的先进先出fifo队列的深度,既可以使fifo的深度满足多样化的应用需求,又可以避免数据存储资源的浪费。
37.参见图2,该图为本技术提供的另一种先进先出的数据缓存器结构图,可应用于数字电路技术领域中的微控制器,该数据缓存器包括:双端口随机存取存储器201,第一写指针控制单元2021,第一读指针控制单元2022,第一地址线控制单元2023,第二写指针控制单元2031,第二读指针控制单元2032以及第二地址线控制单元2033。
38.第一写指针控制单元2021通过至少一条地址线与双端口随机存取存储器201的至少一个存储单元的第一端口连接,第一读指针控制单元2022通过至少一条地址线与双端口随机存取存储器201的至少一个存储单元的第二端口连接,与第一写指针控制单元2021和第一读指针控制单元2022连接的存储单元的数量受控于第一地址线控制单元2023;第二写指针控制单元2031通过至少一条地址线与双端口随机存取存储器201的至少一个存储单元的第一端口连接,第二读指针控制单元2032通过至少一条地址线与双端口随机存取存储器201的至少一个存储单元的第二端口连接,或第二写指针控制单元2031和第二读指针控制单元2032不与双端口随机存取存储器201的任一存储单元连接,与第二写指针控制单元2031和第二读指针控制单元2032连接的存储单元的数量受控于第二地址线控制单元2033。
39.双端口随机存取存储器201:用于存储第一指针控制模块和/或第二指针控制模块写入的数据。
40.第一写指针控制单元2021:用于根据预设的寻址逻辑在第一寻址范围中确定待写入数据的存储单元,通过待写入数据的存储单元的第一端口,将数据写入待写入数据的存储单元。
41.作为示例,预设的寻址逻辑可以是先进先出,即按顺序写入数据,先写入的数据先被读取。优选地,第一寻址范围内的存储单元包括固定的a0~a7和可以控制是否与第一指针控制模块相连的a8~a15,即第一指针控制模块对应的第一先进先出fifo队列的深度范围可以在8~16之间灵活配置。
42.第一读指针控制单元2022:用于根据预设的寻址逻辑在第一寻址范围中确定待读取数据的存储单元,通过待读取数据的存储单元的第二端口,从待读取数据的存储单元中读取数据。
43.第一地址线控制单元2023:用于接收第一地址线切换请求,根据第一地址线切换
请求,控制第一写指针控制单元和第一读指针控制单元连接的存储单元的数量,得到更新后的第一寻址范围。
44.第二写指针控制单元2031:用于根据预设的寻址逻辑在更新后的第二寻址范围中确定待写入数据的存储单元,通过待写入数据的存储单元的第一端口,将数据写入待写入数据的存储单元。
45.第二读指针控制单元2032:用于根据预设的寻址逻辑在更新后的第二寻址范围中确定待读取数据的存储单元,通过待读取数据的存储单元的第二端口,从待读取数据的存储单元中读取数据。
46.第二地址线控制单元2033,用于接收第二地址线切换请求,根据第二地址线切换请求,控制第二写指针控制单元和第二读指针控制单元连接的存储单元的数量,得到更新后的第二寻址范围。
47.示例性地,上述第一地址线控制模块2023和上述第二地址线控制模块2033的功能可以完全相同,用于接收地址线切换请求,并根据地址线切换请求,控制配置范围内的至少一条指定地址线与对应的存储单元建立连接或断开连接。例如,可以参见图2,若当前状态下存储单元a0~a7连接第一指针控制模块,存储单元a8~a15连接第二指针控制模块,在第一地址线控制模块2023接收到例如将第一先进先出fifo队列的深度设置为10的第一地址线切换请求,第二地址线控制模块2033接收到例如将第二先进先出fifo队列的深度设置为6的第二地址线切换请求时,第一地址线控制模块2023可以控制第一指针控制模块与存储单元a8、a9通过地址线相连,第二地址线控制模块2033可以控制第二指针控制模块与存储单元a8、a9断开连接。
48.此外,地址线控制模块还可以根据更新后的第一寻址范围和/或更新后的第二寻址范围,更新寻址逻辑。
49.作为示例,若第一先进先出fifo队列的初始深度为8,第一写指针写完数据后自动加一,则在空状态下进行8次加一后,该先进先出队列为满状态,不可继续写入数据;若经地址线控制模块切换地址线后,第一先进先出fifo队列的深度变为10,则要在空状态下,第一写指针进行10次加一后,认为该先进先出队列为满状态,不可继续写入数据。空状态不可读取数据的判断逻辑与上述满状态不可写入数据的判断逻辑相似,上述仅为示例,不对本技术提供的数据缓存器的寻址逻辑进行限定。
50.本技术实施例提供了一种先进先出的数据缓存器,该先进先出的数据缓存器包括:双端口随机存取存储器,第一指针控制模块以及第二指针控制模块;第一指针控制模块和第二指针控制模块通过多条地址线与双端口随机存取存储器的至少一个存储单元连接,第一指针控制模块连接的全部存储单元的集合为第一寻址范围,第二指针控制模块连接的全部存储单元的集合为第二寻址范围;双端口随机存取存储器,用于存储第一指针控制模块和/或第二指针控制模块写入的数据;第一指针控制模块,用于接收第一地址线切换请求,根据第一地址线切换请求,控制第一指针控制模块连接的存储单元的数量,得到更新后的第一寻址范围,向更新后的第一寻址范围内的存储单元写入数据或从更新后的第一寻址范围内的存储单元读取数据;第二指针控制模块,用于接收第二地址线切换请求,根据第二地址线切换请求,控制第二指针控制模块连接的存储单元的数量,得到更新后的第二寻址范围,向更新后的第二寻址范围内的存储单元写入数据或从更新后的第二寻址范围内的存
储单元读取数据。由此,通过切换地址线可以改变第一指针控制模块和第二指针控制模块连接的双端口随机存取存储器的存储单元的数量,也即可以分别或同时改变第一指针控制模块和第二指针控制模块各自对应的先进先出fifo队列的深度,既可以使fifo的深度满足多样化的应用需求,又可以避免数据存储资源的浪费。
51.在上述实施例的基础上,本技术实施例还提供了一种先进先出的数据缓存系统,包括如上述的数据缓存器。
52.需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于装置实施例,所以描述得比较简单,相关之处参见装置实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元提示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
53.以上所述,仅为本技术的一种具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应该以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1