CN117453175A - 一种先进先出数据缓存器、数据处理方法及相关设备 - Google Patents

一种先进先出数据缓存器、数据处理方法及相关设备 Download PDF

Info

Publication number
CN117453175A
CN117453175A CN202311411606.XA CN202311411606A CN117453175A CN 117453175 A CN117453175 A CN 117453175A CN 202311411606 A CN202311411606 A CN 202311411606A CN 117453175 A CN117453175 A CN 117453175A
Authority
CN
China
Prior art keywords
data
read
register
module
buffer
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
Application number
CN202311411606.XA
Other languages
English (en)
Inventor
宋新亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202311411606.XA priority Critical patent/CN117453175A/zh
Publication of CN117453175A publication Critical patent/CN117453175A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

本申请实施例提供一种先进先出数据缓存器、数据处理方法及相关设备,所述先进先出数据缓存器至少包括:读写控制模块、存储模块和数据选通模块,先进先出数据缓存器的输入端连接至数据选通模块和存储模块,输出端连接至数据选通模块;读写控制模块连接至存储模块和数据选通模块;数据选通模块包括第一寄存器和第二寄存器,第一寄存器的数据用于传输至输出端;读写控制模块用于将输入端的待读取数据,优先写入第一寄存器;在第一寄存器存储有未被读取的待读取数据时,将输入端的待读取数据写入第二寄存器;在第二寄存器存储有未被读取的待读取数据时,将输入端的待读取数据写入存储模块,从而实现提升数据传输效率。

Description

一种先进先出数据缓存器、数据处理方法及相关设备
技术领域
本申请实施例涉及计算机技术领域,具体涉及一种先进先出数据缓存器、数据处理方法及相关设备。
背景技术
随着集成电路的发展和工艺提升,芯片的集成度也在不断提升,使得芯片实现的功能更多,逻辑容量也更大。但是,随着多个芯片之间的通信越来越多,数据处理的过程越来越复杂,不同部件或者芯片之间的数据处理机制以及数据访问效率存在较大差异,限制了多个芯片之间的数据传输效率。为了应对上述问题,通常需要在特定的逻辑节点上增加数据暂存点,例如,采用RAM(Random Access Memory,随机存取存储器)搭建FIFO(FirstInput First Output,先进先出缓存器)存储体作为数据暂存点。
因此,如何优化先进先出数据缓存器的数据处理方案,以提高数据传输效率,成为了本领域技术人员亟需解决的技术问题。
发明内容
有鉴于此,本申请实施例提供一种先进先出数据缓存器、数据处理方法及相关设备,以实现提高数据传输效率。
第一方面,本申请实施例提供一种先进先出数据缓存器,至少包括:读写控制模块、存储模块和数据选通模块,其中,所述先进先出数据缓存器的输入端连接至数据选通模块和存储模块,所述先进先出数据缓存器的输出端连接至数据选通模块;所述读写控制模块连接至存储模块和数据选通模块;
所述数据选通模块包括第一寄存器和第二寄存器,其中,所述第一寄存器的数据用于传输至所述先进先出数据缓存器的输出端;
所述读写控制模块用于将所述先进先出数据缓存器的输入端的待读取数据,优先写入所述第一寄存器;在所述第一寄存器存储有未被读取的待读取数据时,将所述先进先出数据缓存器的输入端的待读取数据写入所述第二寄存器;在所述第二寄存器存储有未被读取的待读取数据时,将所述先进先出数据缓存器的输入端的待读取数据写入所述存储模块。
可选的,所述读写控制模块还用于:
在所述第一寄存器的数据被读取后,若所述第二寄存器为非空,将所述第二寄存器中的待读取数据传输至所述第一寄存器;并且,若所述存储模块为非空,将所述存储模块中的待读取数据传输至所述第二寄存器。
可选的,所述读写控制模块还用于:
在所述第一寄存器的数据被读取后,若所述第二寄存器为空,且所述存储模块为非空,将所述存储模块中的待读取数据依序传输至所述第一寄存器和所述第二寄存器。
可选的,还包括:校验码生成模块和校验模块,所述校验码生成模块用于生成输入端输入的数据的校验标识;所述校验模块用于验证所述数据选通模块输出至输出端的数据的校验标识是否准确;
其中,所述先进先出数据缓存器的输入端输入的数据,基于所述校验码生成模块,连接至所述数据选通模块和所述存储模块;所述第一寄存器的数据,基于所述校验模块,传输至所述先进先出数据缓存器的输出端。
第二方面,本申请实施例提供一种数据处理方法,应用于如上述第一方面所述的先进先出数据缓存器,所述方法包括:
执行待读取数据的写入任务时,输入端输入的待读取数据优先写入数据选通模块的第一寄存器;在所述第一寄存器存储有未被读取的待读取数据时,输入端输入的待读取数据写入数据选通模块的第二寄存器;在所述第二寄存器存储有未被读取的待读取数据时,输入端输入的待读取数据写入存储模块;
执行待读取数据的读取任务时,将所述第一寄存器中的数据传输至输出端。
可选的,所述执行待读取数据的读取任务时,还包括:
在所述第一寄存器的数据被读取后,若所述第二寄存器为非空,将所述第二寄存器中的待读取数据传输至所述第一寄存器;并且,若所述存储模块为非空,将所述存储模块中的待读取数据传输至所述第二寄存器。
可选的,还包括:
在所述第一寄存器的数据被读取后,若所述第二寄存器为空,且所述存储模块为非空,将所述存储模块中的待读取数据依序传输至所述第一寄存器和所述第二寄存器。
可选的,所述执行待读取数据的写入任务时,输入端输入的待读取数据,存储至数据选通模块的第一寄存器之前,或者,存储至数据选通模块的第二寄存器之前,或者,存储至存储模块之前,还包括:
将待读取数据传输至校验码生成模块,以使所述校验码生成模块为所述待读取数据生成校验标识。
可选的,所述执行待读取数据的读取任务时,将所述第一寄存器中的数据传输至输出端之前,还包括:
将所述第一寄存器中的数据传输至校验模块,以使所述校验模块验证数据的校验标识是否准确,以在验证数据的校验标识准确时,将数据传输至输出端。
第三方面,本申请实施例提供一种芯片,包括如上述第一方面所述的先进先出数据缓存器。
第四方面,本申请实施例提供一种电子设备,至少包括如上述第三方面所述的芯片。
本申请实施例所提供的先进先出数据缓存器至少包括读写控制模块、存储模块和数据选通模块,其中,所述先进先出数据缓存器的输入端连接至数据选通模块和存储模块,所述先进先出数据缓存器的输出端连接至数据选通模块;所述读写控制模块连接至存储模块和数据选通模块;所述数据选通模块包括第一寄存器和第二寄存器,其中,所述第一寄存器的数据用于传输至所述先进先出数据缓存器的输出端;所述读写控制模块用于将所述先进先出数据缓存器的输入端的待读取数据,优先写入所述第一寄存器;在所述第一寄存器存储有未被读取的待读取数据时,将所述先进先出数据缓存器的输入端的待读取数据写入所述第二寄存器;在所述第二寄存器存储有未被读取的待读取数据时,将所述先进先出数据缓存器的输入端的待读取数据写入所述存储模块。
可以看出,本申请实施例提供的先进先出数据缓存器进行数据处理时,根据存储的优先顺序执行数据的写入任务,将数据优先写入用于传输数据至输出端的第一寄存器,并在第一寄存器存储有未被读取的待读取数据时,则将数据写入数据选通模块的第二寄存器,而在第二寄存器也存储有未被读取的待读取数据时,才会将数据写入存储模块,从而使得数据被读出的流程中,可以直接执行自第一寄存器中进行数据的读取流程,而不必等待存储模块中的数据依次读入数据选通模块的寄存器之后再进行,从而降低了数据传输延迟,提高了数据传输效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是RAM的可选结构示意图;
图2是先进先出数据缓存器的可选结构示意图;
图3是对应图2的先进先出数据缓存器的读写时序波形图;
图4是本申请实施例提供的先进先出数据缓存器的可选结构示意图;
图5是本申请实施例提供的数据处理方法中对应写入任务的可选流程示意图;
图6是本申请实施例提供的数据处理方法中对应读取任务的可选流程示意图;
图7是本申请实施例提供的先进先出数据缓存器的读写时序波形图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如背景技术所述,通常利用RAM(Random Access Memory,随机存取存储器)搭建FIFO(First Input First Output,先进先出)存储体,实现数据的先进先出功能。其中,将利用RAM搭建的具有数据先进先出功能的存储体称为先进先出数据缓存器(RAM-FIFO),基于该先进先出数据缓存器,能够确保数据在传输过程中的顺序性,使得数据按照正确的顺序被处理和使用。
图1示例性的示出了RAM的可选结构示意图。如图1所示,RAM具有双独立端口,即1独立的写数据端口(图1中示为“In_data”)和1独立的读数据端口(图1中示为“Ram_data”),通过读数据端口能够读出RAM中存储的待读取数据。
需要说明的是,在具有双独立端口的RAM中,包括两组数据线和地址线,分别对应数据的写和读,即一组写数据线和一组读数据线,以及一组写地址线和一组读地址线,并且,基于独立的读和写端口可以同时发起读和写,从而在同一个时刻能够同时访问写地址和读地址。然而,同时对同一个地址的数据进行读和写操作时,会导致RAM中存在数据的读写冲突,使得读出的数据存在不确定性,例如:读端口读出的数据可能是写端口已经写入的新数据,或者是写端口未开始写入的旧数据,又或者是写端口正在写但未完成的新旧交迭的数据。可见,利用RAM搭建的先进先出数据缓存器由于存在数据的读写冲突,使得读取数据的准确性降低。
在一个可选示例中,为保证数据的读取准确性,可以在先进先出数据缓存器中,通过控制对RAM的读写时序,使得对同一地址的数据写入和数据读取发生于不同的时序,从而避免读写冲突。其中,图2示例性的示出了先进先出数据缓存器的可选结构示意图。
如图2所示,该先进先出数据缓存器包括有双独立端口的RAM和读写控制模块。
基于时钟控制信号,所述读写控制模块可以实现对RAM的数据读写控制。
当数据的写入任务执行时,读写控制模块收到用以表示输入数据是否有效的输入控制信号(In_valid),其中,In_valid为高电平,指示输入数据有效,可以将数据写入RAM;In_valid为低电平,指示输入数据无效,数据不会被写入。当In_valid为高电平时,读写控制模块能够向RAM发送用以控制数据是否写入的写使能控制信号(ram_wr_en),其中,ram_wr_en为高电平,指示允许写入RAM;ram_wr_en为低电平,指示禁止写入RAM。当ram_wr_en为高电平时,读写控制模块能够向RAM发送写地址控制信号(ram_wr_addr),以指示数据要写入RAM的地址。
当数据的读取任务执行时,读写控制模块能够向RAM发送读地址控制信号(ram_rd_addr),以指示要读取的数据在RAM中的地址。
并且,基于RAM的存储情况,读写控制模块能够对数据在先进先出数据缓存器中的写和读进行控制。具体的,读写控制模块能够向外部发出指示先进先出数据缓存器是否为满状态的满状态控制信号FIFO_full,其中,FIFO_full为高电平,指示先进先出数据缓存器已满;FIFO_full为低电平,指示先进先出数据缓存器未满。以及,指示先进先出数据缓存器是否为空状态的空状态控制信号FIFO_emp,其中,FIFO_emp为高电平,指示FIFO为空;FIFO_emp为低电平,指示FIFO非空。
从而,当基于图2所示先进先出数据缓存器执行读写任务时,若对RAM的同一地址,同时执行数据的写入和读取操作,可以利用读写控制模块的控制机制,基于电平状态,使数据的写入与读取发生时序交错,在执行数据写入的一定延时后,才完成数据的读取,从而避免数据的读写冲突,保证读取数据的准确性。
为便于理解上述说明的延时,对应图2的先进先出数据缓存器,图3示例性的示出了读写时序波形图。其中,图3所示纵向的点画线表示使能信号的时钟上升沿,每两根点画线之间的距离为一个完整的时钟节拍。
如图3所示,第1拍,RAM为空,In_data无数据写入,In_valid为低电平;在第2拍,In_data有数据D0准备写入,In_valid跳转为高电平,读写控制模块控制将D0准备写入RAM的地址A0中;在第3拍,基于考虑RAM的数据读取速率和时钟频率等情况,为使Ram_data读取的A0的数据D0能够达到稳定有效的状态,D0写入A0将占用第3拍所示时钟节拍的部分时间;从而,在第4拍,Ram_data读出数据D0时会产生一定的输出延时。
可以看出,基于数据的输出延时,使得读取的数据达到稳定状态,进而提升读取数据的准确性。
参照图2所示,为进一步确保读取数据的准确性,可以在先进先出数据缓存器的写端口(In_data)配置校验码生成模块,生成数据的校验标识,从而将携带有校验标识的数据写入RAM。对应校验码生成模块,在RAM的读端口(Ram_data)配置正确性校验模块,以对从RAM中读取的数据的校验标识进行验证,确定其准确性。当正确性校验模块验证数据存在错误时,向读写控制模块发送错误位控制信号ECC_Errbits,以指示数据的错误位置。
需要说明的是,在考虑时钟节拍长短、RAM的数据读取速率,以及正确性校验模块的校验逻辑等情况下,可能会发生Ram_data读取的数据在正确性校验模块前发生拥堵,或者在正确性校验模块后发生拥堵,从而影响数据处理速度。因此,为满足先进先出数据缓存器的时序性,可以在RAM的读端口与正确性校验模块之间设置一寄存器,或者,在正确性校验模块之后设置一寄存器,从而实现数据读取的时钟隔离,如图2中的FF0或者FF1。以FF0为例,对应图3所示,在第5拍,Ram_data将D0传输至FF0,经过校验后,在先进先出数据缓存器的输出端可见。
可以理解的是,基于图3所示波形,数据D0在先进先出数据缓存器的输入端(In_data)准备写入,至数据D0在RAM的读端口(Ram_data)可见,需要3个时钟节拍(即第2拍至第4拍)。其中,在第2拍D0准备写入,同时,基于RAM的数据读取速率和时钟频率等因素考虑,为使得Ram_data读取的数据达到稳定有效的状态,第3拍所示时钟节拍的部分时间会被占用,从而具有1拍的输出延迟,在第4拍数据自RAM中被读取。进而,在第5拍将完整有效的数据传输至FF0,以进行时钟节拍隔离,使数据能够用于后续的准确性校验等逻辑功能,基于FF0的隔离作用,也使得数据再延迟1拍传输至先进先出数据缓存器的输出端。也就是说,图2所示先进先出数据缓存器,虽然基于RAM存储器的读写延迟,克服了数据的读写冲突问题,但是多次延迟增加了先进先出数据缓存器的数据读取时间,导致数据的访问效率降低。
可见,提供高效的先进先出数据缓存器方案,以在进行数据处理时,提高数据的访问效率,显得尤为必要。
有鉴于此,本申请实施例提出改进的先进先出数据缓存器方案,通过先进先出数据缓存器至少包括读写控制模块、存储模块和数据选通模块,其中,所述先进先出数据缓存器的输入端连接至数据选通模块和存储模块,所述先进先出数据缓存器的输出端连接至数据选通模块;所述读写控制模块连接至存储模块和数据选通模块;在所述数据选通模块包括第一寄存器和第二寄存器的情况下,所述第一寄存器的数据用于传输至所述先进先出数据缓存器的输出端;并且,所述读写控制模块用于将所述先进先出数据缓存器的输入端的待读取数据,优先写入所述第一寄存器;在所述第一寄存器存储有未被读取的待读取数据时,将所述先进先出数据缓存器的输入端的待读取数据写入所述第二寄存器;在所述第二寄存器存储有未被读取的待读取数据时,将所述先进先出数据缓存器的输入端的待读取数据写入所述存储模块。
可以看出,本申请实施例的先进先出数据缓存器在进行数据处理时,可以根据存储的优先顺序执行数据的写入任务,将数据优先写入用于传输数据至输出端的第一寄存器,并在第一寄存器存储有未被读取的待读取数据时,则将数据写入数据选通模块的第二寄存器,而在第二寄存器也存储有未被读取的待读取数据时,才会将数据写入存储模块,从而使得数据被读出的流程中,可以直接执行自第一寄存器中进行数据的读取流程,而不必等待存储模块中的数据依次读入数据选通模块的寄存器之后再进行,从而降低了数据传输延迟,提高了数据传输效率。
为使本申请实施例的上述目的、特征和优点能够更为明显易懂,下面结合附图对本申请的具体实施例做详细的说明。
图4示例性的示出了本申请实施例提供的先进先出数据缓存器的可选结构示意图。如图4所示,本申请的先进先出数据缓存器可以至少包括:读写控制模块、存储模块和数据选通模块。
其中,所述先进先出数据缓存器的输入端(In_data)连接至数据选通模块和存储模块,具体的,输入端连接所述数据选通模块的通路可以是不同于连接所述存储模块的通路,例如设置于所述存储模块旁路的通道(如图中粗线所示通道),该通道可以称为bypass通道,从而通过bypass通道,输入端输入的数据能够直接写入数据选通模块,而不需要经过存储模块。所述先进先出数据缓存器的输出端(Out_data)可以连接至所述数据选通模块,所述读写控制模块可以连接至存储模块和数据选通模块。
所述数据选通模块和存储模块可以用于存储写入的待读取数据,并且,本申请实施例中的数据选通模块可以包括第一寄存器(图4示为FF0)和第二寄存器(图4示为FF1),而且,所述第一寄存器的数据用于传输至所述先进先出数据缓存器的输出端,也就是说,执行数据的读取任务时,待读取数据自第一寄存器被传输至输出端被下游设备读取。
基于第一寄存器、第二寄存器和存储模块的数据存储作用,本申请实施例可以对应设置第一寄存器、第二寄存器和存储模块的存储优先顺序,例如:当第一寄存器、第二寄存器和存储模块均未存储数据时,若有数据存储,例如第一数据,则该第一数据优先存储至第一寄存器;当第一寄存器存储有数据时,若有数据存储,例如第二数据,则该第二数据优先存储至第二寄存器;当第一寄存器和第二寄存器均存储有数据时,若有数据存储,例如第三数据,则该第三数据存储至存储模块。从而基于第一寄存器、第二寄存器和存储模块的存储优先顺序,在执行数据的写入任务时,第一寄存器中数据的写入顺序可以是优先于第二寄存器,第二寄存器中数据的写入顺序可以是优先于存储模块。
另外,基于数据自第一寄存器被传输至输出端,本申请实施例在执行数据的读取任务时,可以直接执行自第一寄存器中进行数据的读取流程。
需要说明的是,所述存储模块可以对应有数据的存储地址,从而在将数据写入所述存储模块时,可以是根据数据的写入地址执行的数据写入,相应的,在将数据从所述存储模块中读取时,可以是根据数据的读取地址执行的数据读取。在一个具体示例中,所述存储模块可以例如是RAM存储器。
在第一寄存器、第二寄存器和存储模块对应不同的存储顺序,且存储模块具有数据的存储地址的示例中,所述读写控制模块可以对待读取数据写入RAM的相应地址的时机进行判断,控制在对应时机将待读取数据写入RAM,而且,控制对第一寄存器和第二寄存器中写入数据的时机。
作为一种可选实现,在第一寄存器、第二寄存器和存储模块具有存储的优先顺序的示例中,先进先出数据缓存器执行数据的写入任务时,所述读写控制模块可以用于将所述先进先出数据缓存器的输入端的待读取数据,优先写入所述第一寄存器。具体的,可以通过输入端的连接数据选通模块的连接通道,将待读取数据优先写入第一寄存器。例如:在先进先出数据缓存器处于初始状态时,存储模块,以及数据选通模块中的第一寄存器和第二寄存器均为空,未存储有数据,当In_data有数据X0准备写入时,读写控制模块控制将X0通过连接通道优先写入第一寄存器。
需要说明的是,在第一寄存器的数据用于传输至所述先进先出数据缓存器的输出端的情况下,当执行读取任务时,若第一寄存器中存在未被读取的数据,例如X0,读写控制模块控制读取第一寄存器中的X0至输出端。
在所述第一寄存器存储有未被读取的待读取数据时,所述读写控制模块可以用于将所述先进先出数据缓存器的输入端的待读取数据写入所述第二寄存器。具体的,可以通过输入端的连接数据选通模块的连接通道,将待读取数据优先写入第一寄存器。例如:当In_data有数据X1准备写入时,第一寄存器中已存储有X0且X0未被读取,读写控制模块控制将X1通过连接通道写入第二寄存器。
在所述第二寄存器存储有未被读取的待读取数据时,所述读写控制模块可以用于将所述先进先出数据缓存器的输入端的待读取数据写入所述存储模块。例如:当In_data有数据X2准备写入时,第二寄存器中已存储有X1,且X1未被读取,读写控制模块控制将X2通过输入端写入存储模块。
可以看出,本申请实施例提供的先进先出数据缓存器进行数据处理时,根据存储的优先顺序执行数据的写入任务,将数据优先写入用于传输数据至输出端的第一寄存器,并在第一寄存器存储有未被读取的待读取数据时,则将数据写入数据选通模块的第二寄存器,而在第二寄存器也存储有未被读取的待读取数据时,才会将数据写入存储模块,从而使得数据被读出的流程中,可以直接执行自第一寄存器中进行数据的读取流程,而不必等待存储模块中的数据依次读入数据选通模块的寄存器之后再进行,从而降低了数据传输延迟,提高了数据传输效率。
在一些实施例中,先进先出数据缓存器执行数据的读取任务时,所述读写控制模块还可以用于在所述第一寄存器的数据被读取后,若所述第二寄存器为非空,即所述第二寄存器中存储有未被读取的待读取数据,将所述第二寄存器中的待读取数据传输至所述第一寄存器,并且,若所述存储模块为非空,即所述存储模块中存储有未被读取的待读取数据,将所述存储模块中的待读取数据传输至所述第二寄存器。
例如:当第一寄存器中的X0被读取至Out_data后,第一寄存器为空,而第二寄存器中存储有未被读取的X1,存储模块中存储有未被读取的X1’,读写控制模块控制将第二寄存器中的X1传输至第一寄存器,将存储模块中的X1’传输至第二寄存器,以在下一次执行数据的读取任务时,读取第一寄存器中的X1,并且,将第二寄存器中的X1’传输至第一寄存器,以用于再下一次数据读取任务执行时,在第一寄存器中读取X1’。
在一些实施例中,先进先出数据缓存器执行数据的读取任务时,所述读写控制模块还可以用于在所述第一寄存器的数据被读取后,若所述第二寄存器为空,且所述存储模块为非空,即仅所述存储模块中存储有未被读取的待读取数据,将所述存储模块中的待读取数据依序传输至所述第一寄存器和所述第二寄存器。
例如:当第一寄存器中的X1被读取至Out_data后,第二寄存器为空,而存储模块中存储有未被读取的X2,读写控制模块控制存储模块将X2传输至第一寄存器,从而,在下一次执行数据的读取任务时,第一寄存器中的X2会被读取。
又例如:当第一寄存器中的X1被读取至Out_data后,第一寄存器为空,第二寄存器为空,而存储模块中存储有多个未被读取的X3和X4,读写控制模块控制存储模块将X3传输至第一寄存器,将X4传输至第二寄存器,从而,在下一次执行数据的读取任务时,第一寄存器中的X3会被读取,第二寄存器中的X4会被传输至第一寄存器,以在再下一次执行数据的读取任务时,读取第一寄存器中的X4
需要说明的是,在第一寄存器和第二寄存器包含于数据选通模块,而先进先出数据缓存器的输出端连接至数据选通模块的情况下,读写控制模块能够向数据选通模块发送数据选择控制信号(Data_mux_sels),以选择读取的数据来源。本申请实施例中以第一寄存器为读取数据的第一来源,也可以根据实际需要进行对应选择,对此本申请实施例并不进行限制。
在一些实施例中,如图4所示,为保证待读取数据的准确性,所述先进先出数据缓存器还可以包括校验码生成模块和校验模块。
其中,所述校验码生成模块位于用于生成输出端输入的数据的校验标识,从而所述先进先出数据缓存器的输入端输入的数据,能够基于所述校验码生成模块,传输至所述数据选通模块和所述存储模块。
所述校验模块用于验证所述数据选通模块输出至输出端的数据的校验标识是否准确,从而所述第一寄存器的数据,能够基于所述校验模块,传输至所述先进先出数据缓存器的输出端。
需要说明的是,当校验模块验证自所述第一寄存器中读取的数据的校验标识准确时,则该数据为准确数据,能够传输至输出端;当校验模块验证自所述第一寄存器中读取的数据的校验标识不准确时,则该数据为错误数据,能够向读写控制模块发送错误位控制信号(ECC_Errbits),以指示了写入错误位的位置。
可以看出,本申请实施例提供的先进先出数据缓存器,能够根据存储位置的优先级执行数据的写入任务,将数据写入对应位置;根据数据自第一寄存器中读取执行数据的读取任务,将数据从第一寄存器中读出,使得数据的写入与读取不会相互影响,避免发生读写冲突,实现提升读取数据的准确性,进而提高数据传输效率。
本申请实施例还提供一种数据处理方法,所述数据处理方法可以应用于上述本申请实施例所述的先进先出数据缓存器,其中,作为一种可选实现,图5示例性的示出了本申请实施例的数据处理方法中对应写入任务的可选流程示意图。如图5所示,执行待读取数据的写入任务时的方法流程可以包括:
步骤S101,输入端输入的待读取数据,优先写入数据选通模块的第一寄存器。
本申请实施例中第一寄存器的存储顺序先于第二寄存器,第二寄存器的存储顺序先于存储模块,从而在执行数据的写入任务时,输入端输入待读取数据可以优先写入数据选通模块的第一寄存器。可选的,在先进先出数据缓存器的输入端连接至数据选通模块的情况下,可以基于连接数据选通模块的连接通道,将待读取数据优先写入数据选通模块的第一寄存器。
步骤S102,在所述第一寄存器存储有未被读取的待读取数据时,输入端输入的待读取数据写入数据选通模块的第二寄存器。
当执行数据的写入任务时,若第一寄存器中存储有未被读取的待读取数据,基于第一寄存器的存储顺序先于第二寄存器,第二寄存器的存储顺序先于存储模块,则输入端输入的待读取数据可以写入第二寄存器。可选的,在先进先出数据缓存器的输入端连接至数据选通模块的情况下,可以基于连接数据选通模块的连接通道,将待读取数据写入数据选通模块的第二寄存器。
步骤S103,在所述第二寄存器存储有未被读取的待读取数据时,输入端输入的待读取数据写入存储模块。
当执行数据的写入任务时,若第二寄存器中存储有未被读取的待读取数据,基于第一寄存器的存储顺序先于第二寄存器,第二寄存器的存储顺序先于存储模块,则输入端输入的待读取数据可以存储模块。
作为一种可选实现,图6示例性的示出了本申请实施例的数据处理方法中对应读取任务的可选流程示意图。如图6所示,执行待读取数据的读取任务时的方法流程可以包括:
步骤S201,将第一寄存器中的数据传输至输出端。
可以理解的是,在执行待读取数据的读取任务时,直接执行自第一寄存器中进行数据的读取流程,相较于将存储器中的数据传输至寄存器在读取的方式,能够有效节省存储模块中的数据依次读入数据选通模块的寄存器之后再进行读取的等待时间,降低了数据的传输延迟。
可以看出,本申请实施例提供的先进先出数据缓存器进行数据处理时,根据存储的优先顺序执行数据的写入任务,将数据优先写入用于传输数据至输出端的第一寄存器,并在第一寄存器存储有未被读取的待读取数据时,则将数据写入数据选通模块的第二寄存器,而在第二寄存器也存储有未被读取的待读取数据时,才会将数据写入存储模块,从而使得数据被读出的流程中,可以直接执行自第一寄存器中进行数据的读取流程,而不必等待存储模块中的数据依次读入数据选通模块的寄存器之后再进行,从而降低了数据传输延迟,提高了数据传输效率。
继续参照图6,在一些实施例中,基于先进先出数据缓存器的时序要求,在第一寄存器的存储顺序先于第二寄存器,第二寄存器的存储顺序先于存储模块的情况下,执行待读取数据的读取任务时的方法流程还可以包括:
步骤S202,在所述第一寄存器的数据被读取后,若所述第二寄存器为非空,将所述第二寄存器中的待读取数据传输至所述第一寄存器;并且,若所述存储模块为非空,将所述存储模块中的待读取数据传输至所述第二寄存器。
由于第一寄存器的存储顺序先于第二寄存器,第二寄存器的存储顺序先于存储模块,从而当执行数据的读取任务时,在第一寄存器的数据被读取后,若第二寄存器为非空,即第二寄存器中存储有未被读取的待读取数据,并且,存储模块为非空,即存储模块中也存储有未被读取的待读取数据,则对应数据的存储顺序,可以将第二寄存器中的待读取数据传输至第一寄存器,将存储模块中的待读取数据传输至第二寄存器,以满足先进先出数据缓存器的数据时序性要求。
在一些实施例中,基于数据自第一寄存器被传输至输出端,在存储模块中存储有数据的情况下,执行待读取数据的读取任务时的方法流程还可以包括:
步骤S203,在所述第一寄存器的数据被读取后,若所述第二寄存器为空,且所述存储模块为非空,将存储模块中的待读取数据依序传输至所述第一寄存器和所述第二寄存器。
由于第一寄存器的存储顺序先于第二寄存器,第二寄存器的存储顺序先于存储模块,从而当执行数据的读取任务时,在第一寄存器的数据被读取后,若第二寄存器为空,且存储模块为非空,即仅存储模块中存储有数据,则可以将存储模块中的待读取数据依序传输至第一寄存器和第二寄存器。其中,存储模块传输至第二寄存器的数据,在后续读取任务执行时,在第一寄存器的数据被读取后,第二寄存器能够将该数据传输至第一寄存器,以满足先进先出数据缓存器的数据时序性要求。
在一些实施例中,为确保待读取数据的准确性,在执行待读取任务时,输入端输入的待读取数据,存储至数据选通模块的第一寄存器之前,或者,存储至数据选通模块的第二寄存器之前,或者,存储至存储模块之前,还可以包括:将待读取数据传输至校验码生成模块,以使所述校验码生成模块为所述待读取数据生成校验标识。
在一些实施例中,对应待读取数据的校验标识,在执行待读取数据的读取任务时,将所述第一寄存器中的数据传输至输出端之前,还可以包括:将所述第一寄存器中的数据传输至校验模块,以使所述校验模块验证数据的校验标识是否准确,以在验证数据的校验标识准确时,将数据传输至输出端。
作为一种可选实现,当校验模块验证数据的校验标识错误时,对应的待读取数据发生错误,校验模块能够发送错误位控制信号,以指示写入错误位的位置。
可以看出,本申请实施例的先进先出数据缓存器在进行数据处理时,能够根据存储的优先顺序执行数据的写入任务,将数据优先写入用于传输数据至输出端的第一寄存器,并在第一寄存器存储有未被读取的待读取数据时,则将数据写入数据选通模块的第二寄存器,而在第二寄存器也存储有未被读取的待读取数据时,才会将数据写入存储模块,从而使得数据被读出的流程中,可以直接执行自第一寄存器中进行数据的读取流程,而不必等待存储模块中的数据依次读入数据选通模块的寄存器之后再进行,从而降低了数据传输延迟,提高了数据传输效率。
其中,为便于理解本申请实时例提供的先进先出数据缓存器的数据处理方法,以图4所示先进先出数据缓存器结构为例,进行数据读取,其中初始状态下,RAM、FF0和FF1均为空,未存储数据。图7示例性的示出了本申请实施例的先进先出数据缓存器的读写时序波形图。参照图7所示,该先进先出数据缓存器的数据处理流程具体为:
第1拍:对应数据的写入任务(In_valid高电平有效),In_data有数据D0准备写入,RAM、FF0和FF1均为空的情况下,D0可以优先写入FF0。
第2拍:对应数据的读写任务(In_valid高电平有效,rd_en高电平有效),在执行读取任务时,由于FF0中写入有D0,则该先进先出数据缓存器不空,从而可以读出数据,将FF0中的D0读取至Out_data。同时,在执行写入任务时,In_data的D1准备写入FF0。
第3至5拍:对应数据的读写任务,保持与第2拍相同的节奏执行读取任务,同时执行写入任务。其中,在第5拍,D3被从FF0中读取至Out_data,In_data的D4被写入FF0。
第6拍:对应数据的写入任务,该拍读取任务暂停(rd_en低电平无效),FF0中存在D4未读取,则在执行写入任务时,In_data的D5准备写入FF1。
第7拍:对应数据的读写任务,该拍读取任务恢复(rd_en高电平有效),在执行读取任务时,FF0中的D4被读取至Out_data,FF1的D5准备传输至FF0。同时,在执行写入任务时,In_data的D6准备写入FF1。
第8拍:对应数据的写入任务,该拍读取任务暂停(rd_en低电平无效),在执行写入任务时,由于FF0中存储有D5,FF1中存储有D6,FF0和FF1均处于非空状态,则In_data的D7准备写入RAM的A0地址。
第9拍:对应数据的读写任务,该拍读取任务恢复执行(rd_en高电平有效),在执行读取任务时,FF0的D5被读取至Out_data,FF1的D6准备传输至FF0。同时,在执行写入任务时,In_data的D8准备写入RAM的A1地址。
第10拍:对应数据的读取任务,该拍写入任务暂停(In_valid低电平无效),FF1置为空闲。在执行读取任务时,FF0的D6被读取至Out_data,RAM的A0地址中的D7可以使用,被读取至Ram_data,并准备传输至FF0。
第11拍:对应数据的读写任务,该拍写入任务恢复(In_valid高电平有效)。在执行读取任务时,FF0的D7被读取至Out_data,而且,RAM的A1地址中的D8可以使用,被读取至Ram_data,并准备传输至FF0。同时,在执行写入任务时,基于RAM的A1地址中的D8被读取并传输至FF0,FF0非空,而FF1为空,则In_data的D9可以准备写入FF1。
第12拍:对应数据的写入任务,该拍读取任务暂停(rd_en低电平无效)。在执行写入任务时,由于FF0中存储有D8,FF1中存储有D9,FF0和FF1均处于非空状态,则In_data的D10准备写入RAM的A2地址。
第13拍:对应数据的写入任务,该拍读取任务暂停(rd_en低电平无效)。在执行写入任务时,In_data的D11准备写入RAM的A3地址。
第14拍:该拍写入任务暂停(In_valid低电平无效),且读取任务暂停(rd_en低电平无效),无写入,无读出,FF0、FF1、RAM保持不变。
第15拍:对应数据的读取任务,该拍写入任务暂停(In_valid低电平无效),而读取任务恢复(rd_en高电平有效)。在执行读取任务时,FF0的D8被读取至Out_data,FF1的D9准备传输至FF0。
第16拍:对应数据的读取任务,该拍写入任务暂停(In_valid低电平无效)。在执行读取任务时,FF0的D9被读取至Out_data,FF1空闲,则RAM的A2地址中的D10可以使用,被读取至Ram_data,并准备传输至FF0。
第17拍:对应数据的读取任务,该拍写入任务暂停(In_valid低电平无效)。在执行读取任务时,FF0的D10被读取至Out_data,FF1空闲,则RAM的A3地址中的D11可以使用,被读取至Ram_data,并准备传输至FF0。
第18拍:对应数据的读取任务,该拍写入任务暂停(In_valid低电平无效)。在执行读取任务时,FF0的D11被读取至Out_data,FF1空闲,RAM空闲。
第19拍:该拍写入任务暂停(In_valid低电平无效),且读取任务暂停(rd_en低电平无效),无写入,无读出,且FF0、FF1、RAM均处于空闲状态。
可以看出,本申请实施例提供的先进先出数据缓存器进行数据处理时,能够根据存储的优先顺序执行数据的写入任务,将数据优先写入用于传输数据至输出端的第一寄存器,并在第一寄存器存储有未被读取的待读取数据时,则将数据写入数据选通模块的第二寄存器,而在第二寄存器也存储有未被读取的待读取数据时,才会将数据写入存储模块,从而使得数据被读出的流程中,可以直接执行自第一寄存器中进行数据的读取流程,而不必等待存储模块中的数据依次读入数据选通模块的寄存器之后再进行,从而降低了数据传输延迟,提高了数据传输效率。
本申请实施例还提供一种芯片,包括如上述所述的先进先出数据缓存器,所述先进先出数据缓存器被配置为执行如上述所述的数据处理方法。
本申请实施例还提供一种电子设备,电子设备例如终端设备或者服务器设备,电子设备可以包括本申请实施例提供的上述的芯片。
上文描述了本申请实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本申请实施例披露、公开的实施例方案。
虽然本申请实施例披露如上,但本申请并非限定于此。任何本领域技术人员,在不脱离本申请的精神和范围内,均可作各种更动与修改,因此本申请的保护范围应当以权利要求所限定的范围为准。

Claims (11)

1.一种先进先出数据缓存器,其特征在于,至少包括:读写控制模块、存储模块和数据选通模块,其中,所述先进先出数据缓存器的输入端连接至数据选通模块和存储模块,所述先进先出数据缓存器的输出端连接至数据选通模块;所述读写控制模块连接至存储模块和数据选通模块;
所述数据选通模块包括第一寄存器和第二寄存器,其中,所述第一寄存器中的数据用于传输至所述先进先出数据缓存器的输出端;
所述读写控制模块用于将所述先进先出数据缓存器的输入端的待读取数据,优先写入所述第一寄存器;在所述第一寄存器存储有未被读取的待读取数据时,将所述先进先出数据缓存器的输入端的待读取数据写入所述第二寄存器;在所述第二寄存器存储有未被读取的待读取数据时,将所述先进先出数据缓存器的输入端的待读取数据写入所述存储模块。
2.根据权利要求1所述的先进先出数据缓存器,其特征在于,所述读写控制模块还用于:
在所述第一寄存器的数据被读取后,若所述第二寄存器为非空,将所述第二寄存器中的待读取数据传输至所述第一寄存器;并且,若所述存储模块为非空,将所述存储模块中的待读取数据传输至所述第二寄存器。
3.根据权利要求2所述的先进先出数据缓存器,其特征在于,所述读写控制模块还用于:
在所述第一寄存器的数据被读取后,若所述第二寄存器为空,且所述存储模块为非空,将所述存储模块中的待读取数据依序传输至所述第一寄存器和所述第二寄存器。
4.根据权利要求1所述的先进先出数据缓存器,其特征在于,还包括:校验码生成模块和校验模块,所述校验码生成模块用于生成输入端输入的数据的校验标识;所述校验模块用于验证所述数据选通模块输出至输出端的数据的校验标识是否准确;
其中,所述先进先出数据缓存器的输入端输入的数据,基于所述校验码生成模块,连接至所述数据选通模块和所述存储模块;所述第一寄存器的数据,基于所述校验模块,传输至所述先进先出数据缓存器的输出端。
5.一种数据处理方法,其特征在于,应用于如权利要求1-4任一项所述的先进先出数据缓存器,所述方法包括:
执行待读取数据的写入任务时,输入端输入的待读取数据优先写入数据选通模块的第一寄存器;在所述第一寄存器存储有未被读取的待读取数据时,输入端输入的待读取数据写入数据选通模块的第二寄存器;在所述第二寄存器存储有未被读取的待读取数据时,输入端输入的待读取数据写入存储模块;
执行待读取数据的读取任务时,将所述第一寄存器中的数据传输至输出端。
6.根据权利要求5所述的方法,其特征在于,所述执行待读取数据的读取任务时,还包括:
在所述第一寄存器的数据被读取后,若所述第二寄存器为非空,将所述第二寄存器中的待读取数据传输至所述第一寄存器;并且,若所述存储模块为非空,将所述存储模块中的待读取数据传输至所述第二寄存器。
7.根据权利要求6所述的数据处理方法,其特征在于,还包括:
在所述第一寄存器的数据被读取后,若所述第二寄存器为空,且所述存储模块为非空,将所述存储模块中的待读取数据依序传输至所述第一寄存器和所述第二寄存器。
8.根据权利要求5所述的数据处理方法,其特征在于,所述执行待读取数据的写入任务时,输入端输入的待读取数据,存储至数据选通模块的第一寄存器之前,或者,存储至数据选通模块的第二寄存器之前,或者,存储至存储模块之前,还包括:
将待读取数据传输至校验码生成模块,以使所述校验码生成模块为所述待读取数据生成校验标识。
9.根据权利要求5所述的数据处理方法,其特征在于,所述执行待读取数据的读取任务时,将所述第一寄存器中的数据传输至输出端之前,还包括:
将所述第一寄存器中的数据传输至校验模块,以使所述校验模块验证数据的校验标识是否准确,以在验证数据的校验标识准确时,将数据传输至输出端。
10.一种芯片,其特征在于,包括如权利要求1-4任一项所述的先进先出数据缓存器。
11.一种电子设备,其特征在于,至少包括如权利要求10所述的芯片。
CN202311411606.XA 2023-10-27 2023-10-27 一种先进先出数据缓存器、数据处理方法及相关设备 Pending CN117453175A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311411606.XA CN117453175A (zh) 2023-10-27 2023-10-27 一种先进先出数据缓存器、数据处理方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311411606.XA CN117453175A (zh) 2023-10-27 2023-10-27 一种先进先出数据缓存器、数据处理方法及相关设备

Publications (1)

Publication Number Publication Date
CN117453175A true CN117453175A (zh) 2024-01-26

Family

ID=89584836

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311411606.XA Pending CN117453175A (zh) 2023-10-27 2023-10-27 一种先进先出数据缓存器、数据处理方法及相关设备

Country Status (1)

Country Link
CN (1) CN117453175A (zh)

Similar Documents

Publication Publication Date Title
US7363396B2 (en) Supercharge message exchanger
JP4550439B2 (ja) Ecc制御装置
US8296541B2 (en) Memory subsystem with positional read data latency
US7454555B2 (en) Apparatus and method including a memory device having multiple sets of memory banks with duplicated data emulating a fast access time, fixed latency memory device
US20060195650A1 (en) Method to detect NAND-flash parameters by hardware automatically
EP3640944B1 (en) Non-sequential page continuous read
WO2008115400A1 (en) Ecc implementation in non-ecc components
JP2007525766A (ja) マルチポートメモリシステムにおける衝突検出
CN113254368A (zh) 从axi总线到opb总线的数据写入方法及读取方法
US20140359195A1 (en) Crossbar switch, information processing apparatus, and information processing apparatus control method
CN114265872B (zh) 一种用于总线的互联装置
CN113791994B (zh) 一种基于AXI协议wrap访问的DDR控制器及处理方法
US7480201B2 (en) Daisy chainable memory chip
JP2013089161A (ja) Ram記憶装置
US7774513B2 (en) DMA circuit and computer system
CN115952132B (zh) 异步桥、soc、电子组件、电子设备及芯片设计方法
CN117453175A (zh) 一种先进先出数据缓存器、数据处理方法及相关设备
CN116150077A (zh) 一种PCIe交换电路的出端口事务处理装置及方法
US5754802A (en) Increasing data transfer efficiency for a read operation in a non-split transaction bus environment by substituting a write operation for the read operation
CN108459876A (zh) 用于缩减面积的控制寄存器电路的方法与装置
CN100361090C (zh) 用于按序列存取多个存储数据单元的方法和装置
US7240144B2 (en) Arbitration of data transfer requests
US20090106466A1 (en) Design structure for piggybacking multiple data tenures on a single data bus grant to achieve higher bus utilization
US8402233B2 (en) Method and apparatus for high throughput mass storage device interface in a microprocessor for handheld systems
EP0550976A2 (en) Memory accessing device using address pipeline

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