CN116540951A - 存储器、数据存取方法、存储装置及存储介质 - Google Patents

存储器、数据存取方法、存储装置及存储介质 Download PDF

Info

Publication number
CN116540951A
CN116540951A CN202310821688.9A CN202310821688A CN116540951A CN 116540951 A CN116540951 A CN 116540951A CN 202310821688 A CN202310821688 A CN 202310821688A CN 116540951 A CN116540951 A CN 116540951A
Authority
CN
China
Prior art keywords
data segment
data
memory
storage module
bit
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
Application number
CN202310821688.9A
Other languages
English (en)
Other versions
CN116540951B (zh
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.)
Suzhou Yangsiping Semiconductor Co ltd
Original Assignee
Suzhou Yangsiping Semiconductor 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 Suzhou Yangsiping Semiconductor Co ltd filed Critical Suzhou Yangsiping Semiconductor Co ltd
Priority to CN202310821688.9A priority Critical patent/CN116540951B/zh
Publication of CN116540951A publication Critical patent/CN116540951A/zh
Application granted granted Critical
Publication of CN116540951B publication Critical patent/CN116540951B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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
    • 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)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)

Abstract

本申请实施例涉及计算机技术领域,提供一种存储器、数据存取方法、存储装置及存储介质,该存储器包括:存储模块,能够以先进先出的方式存储至少一个完整数据;控制器,用于如果所述存储模块中未存储完整数据,则将所述存储模块的状态设置为不可读;如果所述存储模块中存储有至少一个完整数据,则将所述存储模块的状态设置为可读。本申请实施例可以确定存储模块中是否存储有至少一个完整数据,否则将所述存储模块的状态设置为不可读,从而显著地提升了数据传输稳定性,为用户带来了更好的体验。

Description

存储器、数据存取方法、存储装置及存储介质
技术领域
本申请实施例涉及数据存储领域,更具体地涉及一种存储器、数据存取方法、存储装置及存储介质。
背景技术
在数据传输过程中,由于一些完整数据过大,存储器的有限带宽不足以一次完成传输该完整数据。为了解决上述问题,相关技术可以将一个完整数据分成多个数据段后,逐个传输该多个数据段,以实现传输完整数据。然而,这可能导致数据传输不稳定,如代码内部无法及时得到完整数据。
发明内容
本申请实施例提供一种存储器、数据存取方法、存储装置及存储介质,使得数据以完整数据的格式流通,有效提升数据传输稳定性。
第一方面,本申请实施例提供一种存储器,该方法包括:存储模块和控制器。其中,存储模块能够以先进先出的方式存储至少一个完整数据;控制器用于如果所述存储模块中未存储完整数据,则将所述存储模块的状态设置为不可读;如果所述存储模块中存储有至少一个完整数据,则将所述存储模块的状态设置为可读。
第二方面,本申请实施例提供一种数据存取方法,该方法包括:如果存储模块中未存储完整数据,则将所述存储模块的状态设置为不可读;如果所述存储模块中存储有至少一个完整数据,则将所述存储模块的状态设置为可读,其中,所述存储模块能够以先进先出的方式存储至少一个完整数据;响应于接受到输出数据段指令,如果所述存储模块的状态为不可读,则禁止输出与所述输出数据段指令对应的数据段;如果所述存储模块的状态为可读,则输出与所述输出数据段指令对应的数据段。
第三方面,本申请实施例提供一种存储装置,该装置包括:控制模块和存储模块。其中,控制模块被配置为如果存储模块中未存储完整数据,则将所述存储模块的状态设置为不可读;如果所述存储模块中存储有至少一个完整数据,则将所述存储模块的状态设置为可读,其中,所述存储模块能够以先进先出的方式存储至少一个完整数据;存储模块用于响应于输出数据段指令,如果所述存储模块的状态为不可读,则禁止输出与所述输出数据段指令对应的数据段;如果所述存储模块的状态为可读,则输出与所述输出数据段指令对应的数据段。
第四方面,本申请实施例提供一种计算机可读存储介质,其包括指令,当其在计算机上运行时,使得计算机执行如上述方法。
第五方面,本申请实施例提供一种计算设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如上述的方法。
第六方面,本申请实施例提供一种芯片,该芯片中包括与终端设备的收发器耦合的处理器,用于执行本申请实施例如上述的技术方案。
第七方面,本申请实施例提供一种芯片系统,该芯片系统包括处理器,用于支持终端设备实现如上述所涉及的功能,例如,生成或者处理上述提供的方法中所涉及的信息。
在一种可能的设计中,上述芯片系统还包括存储器,该存储器用于保存终端必需的程序指令和数据。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
第八方面,本申请实施例提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第二方面提供的数据存取方法。
相较于现有技术,本申请实施例中,存储模块能够以先进先出的方式存储至少一个完整数据,通过控制器确定该存储模块中是否存在完整数据来设置存储模块的状态。如果所述存储模块中未存储完整数据,则将所述存储模块的状态设置为不可读,即存储模块中未存储完整数据时不允许从存储模块中读取数据段,而不是相关技术中即使存储模块中未存储完整数据也可以读取其中的数据段。由于存储模块中存储有完整数据时才为可读状态,本申请实施例能够保证读取到完整数据,有效提升数据传输稳定性。
附图说明
通过参考附图阅读本申请实施例的详细描述,本申请实施例的目的、特征和优点将变得易于理解。其中:
图1为本申请实施例中适用存储器、数据存取方法、存储装置及存储介质的系统示意图;
图2为本申请实施例的存储器的一种结构的方框图;
图3为本申请实施例的存储器的另一种结构的方框图;
图4为本申请实施例的完整数据的一种结构示意图;
图5为本申请实施例的数据段的一种结构示意图;
图6为本申请实施例的数据段的另一种结构示意图;
图7为本申请实施例的数据段的另一种结构示意图;
图8为本申请实施例的数据输入的逻辑示意图;
图9为本申请实施例的数据输出的逻辑示意图;
图10为本申请实施例的数据存取方法的流程图;
图11为本申请实施例的数据存取装置的图;
图12为本申请实施例的计算设备的一种结构示意图;
图13为本申请实施例中手机的一种结构示意图;
图14为本申请实施例中服务器的一种结构示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
本申请实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象(例如第一对象和第二对象分别表示为不同的对象,其他类似),而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本申请实施例中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行。另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块之间的间接耦合,通信连接可以是电性或其他类似的形式,本申请实施例中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分布到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本申请实施例方案的目的。
本申请实施例提供一种存储器、数据存取方法、存储装置及存储介质,可应用于能够先进先出(First In First Out,简称FIFO)场景下的数据处理。为了防止出现数据丢失、频繁的总线操作以及提高数据的传输速度,在各种场景中往往会用到FIFO存储器。
在计算机编程中,FIFO是处理从队列或堆栈发出的程序工作数据的一种方法,它使最早的输入数据被最先处理。相关技术的FIFO存储器大部分都是实现数据缓存、先进先出的,仅能作为一个存储器实现功能。相关技术的FIFO存储器技术仅考虑了软件方面的实现,没有考虑硬件方面的负担。假设一个完整数据的长度达到一定的值,在模块连接之间使用与数据长度相仿的带宽会加大成本。
数据位宽表示着FIFO存储的数据位宽是多少,深度指可以存储的数据数量。输入的数据位宽可以和输出的数据位宽不同,但需要存在整数倍关系,深度也会随之变化。二者的乘积是根据写入的配置而固定的。
相关技术进行数据传输过程中,由于部分数据过大,带宽不足以一次传输完所有数据。其中,带宽指的是在单位时间内可以传输的数据总量。带宽等于位宽与工作频率的乘积。
为了解决带宽不足的问题,相关技术中的一个完整数据可能会被分成数次进行传输,即使用多段数据来传输一个完整数据段。而FIFO存储器往往会和一些计算单元相连接,这也就意味着我们希望从FIFO发出去的是一个连续的数据段,而不是将分段的完整数据割裂发送。这种将完整数据割裂发送的方式会导致数据无法以完整数据的格式在代码内部进行流通。然而,为了使数据的传输更加稳定,希望数据在代码内部流通时可以以一个完整数据的格式进行流通。
综上,在内部的存储器或者模块中保证一个数据完整之后,再流通到下一个模块就变得非常有必要。本申请实施例能够判断FIFO存储器中是否存储有完整数据,因而可以停止发送数据直至存储器中有一个完整数据,这样可以保证一次输出的数据为完整数据,提升数据传输的稳定性。
以下结合图1至图14对本申请的技术方案进行示例性说明。
图1为本申请实施例中适用存储器、数据存取方法、存储装置及存储介质的系统示意图。
参见图1,FIFO存储器是一个先入先出的双口缓冲器,即第一个进入其内的数据第一个被移出,其中一个是存储器的输入口,另一个口是存储器的输出口。
图1中的FIFO存储器按序执行方法,先进入的指令先完成并引退,然后才执行第二条指令。如图1中先缓存数据1,然后依序缓存数据2、数据3和数据4。此外,图1中也会先输出数据1,然后依序输出数据2、数据3和数据4。FIFO存储器与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成,不便于由地址线决定读取或写入某个指定的地址。相关技术的FIFO存储器大部分都是实现数据缓存、先进先出的,仅能作为一个存储器实现功能,只能保证先进先出,不便于实现将分段的完整数据连续发送。本申请实施例能够FIFO存储器输出数据直至存储器中有一个完整数据,这样可以保证一次输出的数据为完整数据,不仅仅能够实现数据缓存,还能有效提升数据传输的稳定性。
图2为本申请实施例的存储器的一种结构的方框图。
参见图2,该存储器20包括:存储模块210和控制器220。
其中,存储模块210能够以先进先出的方式存储至少一个完整数据。
控制器220用于如果所述存储模块中未存储完整数据,则将所述存储模块的状态设置为不可读;如果所述存储模块中存储有至少一个完整数据,则将所述存储模块的状态设置为可读。
例如,存储器210包括能够实现FIFO存储方式的存储空间。对于单片FIFO来说,主要有两种结构:触发导向结构和零导向传输结构。触发导向传输结构的FIFO是由寄存器阵列构成的,零导向传输结构的FIFO是由具有读和写地址指针的双口RAM构成。
例如,控制器220为存储控制器。存储控制器是按照一定的时序规则对存储器的访问进行必要控制的设备,包括地址信号、数据信号以及各种命令信号的控制,使主设备(访问存储器的设备)能够根据自己的需求使用存储器上的存储资源。
存储控制器的作用主要就是进行接口的转换,将主设备发出的读、写等命令转换成存储器能够识别的信号,还要完成主设备与存储器之间地址译码、数据格式的转换(比如数据位宽)。
例如,FIFO的宽度(THE WIDTH)是指FIFO一次读写操作的数据位。例如,微控制单元(Microcontroller Unit,简称MCU)包括8位和16位等,FIFO的宽度在单片成品集成电路(IC)中是固定的,也有可选择的,如果用可编程阵列逻辑(Field Programmable GateArray,简称FPGA)电路实现一个FIFO,其数据位,也就是宽度是可以自己定义的。
此外,FIFO的深度(THE DEEPTH),指的是FIFO可以存储多少个N位的数据(如FIFO的宽度为N)。如一个8位的FIFO,若深度为8,它可以存储8个8位的数据。如果深度为12,则可以存储12个8位的数据,FIFO的深度可大可小。在兼顾系统性能和FIFO成本的情况下估算一个大概的宽度和深度就可以了。而对于写速度慢于读速度的应用,FIFO的深度要根据读出的数据结构和读出数据由那些具体的要求来确定。如32比特(bit)位宽,深度是1024的FIFO,就占用32k bit。一个位宽是50bit,深度是1024的FIFO,就会占用50k bit存储空间。
FIFO没有外部读写地址线,这样使用起来非常简单。但缺点是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。
FIFO依据工作时钟域,可分为同步FIFO和异步FIFO。同步FIFO是指读时钟和写时钟为同一个时钟,在时钟上升沿或下降沿发生读写操作。异步FIFO是指读写时钟不一致,读写时钟是互相独立的。FIFO一般用于不同时钟域之间的数据传输,如FIFO的一端是模数(AD)数据采集,另一端是计算机的PCI总线,假设其AD采集的速率为16位100KSPS,那么每秒的数据量为100K×16bit=1.6Mb/s,而PCI总线的速度为33MHz,总线宽度32bit,其最大传输速率为1056Mb/s,在两个不同的时钟域间就可以采用FIFO来作为数据缓冲。另外对于不同宽度的数据接口也可以用FIFO,例如,单片机位8位数据输出,而DSP可能是16位数据输入,在单片机与DSP连接时就可以使用FIFO来达到数据匹配的目的。
此外,控制器220可以为FIFO存储器设置状态标识。例如,数据的满标识表征当前可以读出数据,数据的空标识表征当前可以写入数据。例如,对于满标识:FIFO已满或将要满时由FIFO的状态电路送出的信号,以阻止FIFO的写操作继续向FIFO中写数据而造成溢出(overflow)。例如,对于空标识:FIFO已空或将要空时由FIFO的状态电路送出的信号,以阻止FIFO的读操作继续从FIFO中读出数据而造成无效数据的读出(underflow)。
本申请实施例中,FIFO存储器的状态标识除了上述满标识和空标识之外,还可以设置可读标识和不可读标识。该可读标识和不可读标识是根据FIFO存储器中是否存储了至少一个完整数据来确定的。例如,当FIFO存储器中存储了至少一个完整数据,则FIFO存储器为可读状态标识。当FIFO存储器中没有存储完整数据时,则FIFO存储器为不可读状态标识。相对于空标识和满标识而言,可读标识和不可读标识能够有效提升FIFO存储器输出数据的完整性。
在某些实施例中,可以通过计数器确定数据段的个数来确定存储器中是否包括完整数据。例如,默认一个完整数据包括n个数据段,则在首个数据段后连续计数(n-1)后可以确定存储器中包括至少一个完整数据。具体地,所述完整数据包括n个数据段,n个所述数据段包括首数据段,所述首数据段具有首数据段标识,n是大于或等于1的整数。
图3为本申请实施例的存储器的另一种结构的方框图。
参见图3所示,存储器20还可以包括:计数器230。
其中,计数器230用于对数据段进行计数,得到计数结果。
所述控制器具体用于响应于获得所述首数据段标识,控制所述计数器对后续存入所述存储模块中的数据段的个数进行计数,并且将所述存储模块的状态设置为不可读,直至满足可读条件,所述可读条件包括:所述存储模块中存储有至少一个完整数据,或者所述计数器的计数结果大于或者等于(n-1)。例如,在FIFO存储器中存储具有首数据段标识的数据段后开始计数,则在计数大于或者等于(n-1),且存储器中没有输出数据段时,可以确定存储器中包括一个完整数据、两个数据段或者更多个数据段。
例如,FIFO存储器包括如下功能块:存储体、写计数器(WP)、可读逻辑RW和不可读逻辑UR。存储体没有满时,在时钟脉冲的上升沿作用下,DIN的数据将压入FIFO堆栈。当RW=1时,则表明存储体中包括至少一个完整数据,响应于读数据指令,由DOUT输出至少一个完整数据。当RW=0时,则表明存储体中没有完整数据,即使接收到读数据指令,禁止DOUT输出数据。
图4为本申请实施例的完整数据的一种结构示意图。
参见图4,一个完整数据400包括多个数据段410。例如,一个完整数据400包括4个、7个、10个或者更多个数据段410。每个数据段410可以包括多个比特位411。
在某些实施例中,n个所述数据段中的最后一个数据段为尾数据段。所述控制器具体用于如果针对当前数据段的计数结果等于(n-1),则为所述当前数据段设置尾数据段标识。为了进一步提升数据传输完整性,可以为完整数据的最后一个数据段设置尾数据段标识,这样便于在存储器输出数据时根据尾数据段标识确定已输出完整数据段。
在某些实施例中,可以通过在数据段的特定位置新增比特位的方式来设置标识。例如,可以在数据段的首位、尾位或者中间位置等中至少一处设置标识。具体地,所述控制器还用于处理原始数据段以得到增加状态标识位的所述数据段,所述状态标识位包括至少两比特位,其中,至少所述两比特位中的第一比特位用于设置所述数据段的首数据段标识,至少所述两比特位中的第二比特位用于设置所述数据段的尾数据段标识。需要说明的是,首数据段标识和尾数据段标识可以位于相邻或者相互分离的位置,在此不做限定。
图5为本申请实施例的数据段的一种结构示意图。
参见图5,数据段的头部包括两比特位的状态标识,状态标识是由控制器设置的,如图中双实线方格所示。其中,一个比特位用于设置首数据段标识,另一个比特位用于设置尾数据段标识。例如,图5中第一个比特位用于设置首数据段标识,如第一个比特位的取值为1时表征该数据段为首数据段,第一个比特位的取值为0时表征该数据段不是首数据段。第二个比特位用于设置尾数据段标识,如第二个比特位的取值为1时表征该数据段为尾数据段,第二个比特位的取值为0时表征该数据段不是尾数据段。又例如,图5中第一个比特位用于设置尾数据段标识,第二个比特位用于设置首数据段标识。
图6为本申请实施例的数据段的另一种结构示意图。
参见图6,数据段的尾部包括两比特位的状态标识,状态标识是由控制器设置的,如图中双实线方格所示。其中,一个比特位用于设置首数据段标识,另一个比特位用于设置尾数据段标识。例如,图6中倒数第二个比特位用于设置首数据段标识,如倒数第二个比特位的取值为1时表征该数据段为首数据段,倒数第二个比特位的取值为0时表征该数据段不是首数据段。倒数第一个比特位用于设置尾数据段标识,如倒数第一个比特位的取值为1时表征该数据段为尾数据段,倒数第一个比特位的取值为0时表征该数据段不是尾数据段。又例如,图6中倒数第二个比特位用于设置尾数据段标识,倒数第一个比特位用于设置首数据段标识。
图7为本申请实施例的数据段的另一种结构示意图。
参见图7,数据段的两比特位的状态标识可以分别设置在数据段的不同位置,如一个状态标识设置在数据段的头部,另一个状态标识设置在数据段的尾部,如图中双实线方格所示。其中,一个比特位用于设置首数据段标识,另一个比特位用于设置尾数据段标识。例如,图7中第一个比特位用于设置首数据段标识,如第一个比特位的取值为1时表征该数据段为首数据段,第一个比特位的取值为0时表征该数据段不是首数据段。倒数第一个比特位用于设置尾数据段标识,如倒数第一个比特位的取值为1时表征该数据段为尾数据段,倒数第一个比特位的取值为0时表征该数据段不是尾数据段。需要说明的是,图7中的状态标识的位置仅为示例性示出,还可以在数据段的中间位置等指定位置插入状态标识位。
以下对FIFO存储器的数据写入过程进行示例性说明。
在某些实施例中,在向FIFO存储器输入数据时,还需要考虑存储器是否存满数据,否则可能造成数据溢出。
具体地,所述控制器还用于:响应于获得当前输入数据段,如果所述存储模块的当前存储空间未满,则写入当前输入数据段,所述当前输入数据段为待写入的数据段。
例如,所述控制器还用于:响应于获得当前输入数据段,如果存储模块的当前存储空间已满,则禁止写入当前输入数据段。
例如,如上所示,FIFO存储器的存储状态还可以包括满标识和/或空标识。如当满标识为1时,则表征存储模块的当前存储空间已满。如当空标识为1时,则表征存储模块的当前存储空间为空。当满标识和空标识为0时,则表征FIFO存储器中存储有数据,且为非满状态。
具体地,所述控制器用于通过头指针和尾指针确定所述存储空间的存储状态。例如,头指针和尾指针相同时,则表明存储空间为空或者存储空间为满。
例如,所述控制器还用于在写入所述当前输入数据段后,改变所述尾指针,以及,在输出当前输出数据段后,改变所述头指针。
如果改变后的尾指针和所述头指针重合,则确定所述存储空间为存满状态。例如,如果两个指针相交,可以根据指针变化时是否有“套圈”的现象来判断FIFO是满或空。
如果改变后的尾指针和所述头指针未重合,则确定所述存储空间为未满状态。
以高位扩展法为例进行示例性说明。举例在深度为8的FIFO存储器重,需要3bit的读写指针来分别指示读写地址31b000~31b111这8个地址。若将地址指针扩展1bit,则变成4bit的地址,而地址表示区间则变成了41b0000~41b1111.假设不看最高位的话,后面3位的表示区间仍然是31b000~31b111。也就意味着最高位可以拿来作为指示位。当最高位不同,且其他位相同,则表示读指针或者写指针多跑了一圈,而显然不会让读指针多跑一圈,所以可能出现的情况只能是写指针多跑了一圈,也就意味着FIFO存储器写满了。当最高位相同,且其他位相同,则表示读指针追到了写指针或者写指针追到了读指针,而显然不会让写指针追读指针,所以可能出现的情况只能是读指针追到了写指针,也就意味着FIFO被读空了。
在某些实施例中,所述控制器具体用于:在写入当前输入数据段的过程中,如果当前输入数据段的状态标识位的第一比特位表征首数据段,且所述第二比特位表征非尾数据段,则存储该当前输入数据段,并且将所述计数器的计数结果设置为0。
在某些实施例中,所述控制器具体用于:在写入当前输入数据段的过程中,如果当前输入数据段的状态标识位的第一比特位表征非首数据段,且所述第二比特位表征非尾数据段,则重复以下过程直至所述计数器的计数结果达到(n-1):存储该当前输入数据段,所述计数器的计数结果加1,并且将下一输入数据段作为新的当前输入数据段。
在某些实施例中,所述控制器具体用于:在写入当前输入数据段的过程中,如果当前输入数据段的状态标识位的第一比特位表征非首数据段、所述第二比特位表征尾数据段,则存储所述当前输入数据段,并且将所述存储模块的状态设置为可读。
在一个具体实施例中,假设传输数据时将一完整的数据分成n个数据段进行传输。在本实施例中,数据段的位宽将会比输入的数据多两位,其中一位表示数据的第一个分段,一位表示数据的最后一个分段。其中,数据完整性是指数据生命周期内所有数据完整、一致、准确的程度。数据完整性的设定必须在整个“数据生命周期”内,保护数据的准确性、完整性、内容以及意义。
当一个有效数据的第一个分段输入时,FIFO内部的计数器将会对有效的数据分段进行计数,并将输入的数据段保存下来,并在表示数据第一个分段的数位上置1,如通过写数据控制模块将数据写入至存储器(memory)的同时加上该状态标识。此时如果没有FIFO内部没有完整的数据,FIFO本身将不可读。其中,有效数据可以通过一个有效(valid)的输入来表示,输入1就是有效数据,0就是无效数据,除此之外也可以有其他的方式,在此不作限定。
当计数器计到n或(n-1),即FIFO中拥有了一完整的数据段时,FIFO才会变成可读状态。此刻输入的数据分段是最后一个分段,因此在数据存储时将会把表示最后一个分段的数位置1。
当FIFO被读取时,完整的数据的数据分段将会被连续输出,通过数据多出来的两位来判断整个数据段是否传输完毕(如根据计数器的计数结果来判断是否传输完毕),其中第一个表示数据有效的信号将会跟随数据一同进行传输。为了保证功能性,FIFO中的深度必须大于n。FIFO的深度可以根据使用情况进行定义。需要说明的是,状态标识位需要占用FIFO存储器的位宽。
当FIFO中被放满数据时,FIFO将不可写入,当FIFO中为空时,FIFO将不可读。
为了判断FIFO中为空还是满,本实施例可以采用两个指针指向FIFO中按顺位被放入的第一个有效数据和最后一个有效数据。如果两个指针相交,我们将根据指针变化时是否有“套圈”的现象来判断FIFO是满或空。如果FIFO中尾指针套圈了头指针,则FIFO满,若尾指针与头指针重合但没有套圈出现,那么FIFO空。例如,输入一个数据,则尾指针加一,输出一个数据,则头指针加一。如果比深度大就取模,然后判断有没有套圈,用圈(round)信号来表征此刻头指针和尾指针是否套圈。
在某些实施例中,还可以通过如下方式来确定存储区的状态是否处于存满状态。
首先,获取第一指针和第二指针,并根据所述第一指针和所述第二指针分别指向的存储地址之间的数据个数,获取所述储存区的状态。
例如,所述第一指针指向的存储地址存储所述储存区中存入顺序最早的数据(如头指针),所述第二指针指向的存储地址存储所述储存区中存入顺序最晚的数据(如尾指针)。
相应地,所述储存区的状态包括:储存区空置和储存区存满。
如果所述第一指针和所述第二指针分别指向的存储地址之间的数据个数非0,则判定所述储存区非空。
如果所述第一指针和所述第二指针分别指向的存储地址之间的数据个数为0,则判定所述储存区存满或者空置。
如果所述储存区存满,则禁止向所述储存区中写入数据。
如果所述储存区空置或者没有至少一个完整数据,则禁止从所述储存区中读取数据。
图8为本申请实施例的数据输入的逻辑示意图。
参见图8,如果FIFO可以输入数据,则可以从外界输入数据,在输入数据时同时要标明数据是有效的,且是否为整个数据段中的第一段数据。若为首数据段,则以{数据,1,0}的方式放入内存中,计数器置0。如果不为首数据段,则计数器的计数结果+1,若计数器中的计数结果达到(n-1),则输入的数据变为{数据,0,1}的格式放入存储空间。如果计数器中的值没达到(n-1),则数据的数据变为{数据,0,0}的格式放入存储空间。随后,指向最后输入的数据的尾指针变动。若尾指针与头指针重合,则表示存储空间已满,不能再继续存储数据,输出表示内存已满的信号,如果头指针与尾指针没有重合,则可以继续输入数据。
需要说明的是,具体实施过程中可以根据用户使用时的定义来确定:是否需要先比较存储器和数据之间深度,FIFO存储器中不会比较。始终信号可以是FIFO存储器的输入信号。
以下对FIFO存储器的输出数据过程进行示例性说明。
在某些实施例中,所述控制器还用于:响应于接收到数据输出指令,且所述存储空间中包括至少一个完整数据,如果当前输出数据段的状态标识位的第一比特位表征首数据段,第二比特位表征非尾数据段,则输出所述当前输出数据段,并且输出表征完整数据中的首数据段的信号。其中,第一比特位表征首数据段,第二比特位表征非尾数据段,则表征该数据段是首数据段,不是尾数据段,在存储空间中包括至少一个完整数据时,可以输出当前数据段。
在某些实施例中,所述控制器还用于:响应于接收到数据输出指令,且所述存储空间中包括至少一个完整数据,如果当前输出数据段的状态标识位的第一比特位表征非首数据段,第二比特位表征非尾数据段,则输出所述当前输出数据段。第一比特位表征非首数据段,第二比特位表征非尾数据段,则表征当前数据段是完整数据的中间数据段,可以输出该当前数据段。
在某些实施例中,所述控制器还用于:响应于接收到数据输出指令,且所述存储空间中包括至少一个完整数据,如果当前输出数据段的状态标识位的第二比特位表征尾数据段,则输出所述当前输出数据段,输出表征完整数据中最后一个数据段的信号。当输出完整数据的尾数据段后,可以输出信号以通知控制器等已输出完整数据。
在某些实施例中,在输出数据后,需要适应性改变头指针,以便准确确定FIFO存储器中首个数据段的地址。具体地,所述控制器还用于:在所述输出表征完整数据中最后一个数据段的信号之后,如果所述头指针和所述尾指针重合,则等待所述头指针的变动。
在某些实施例中,所述控制器还用于:在所述输出表征完整数据中最后一个数据段的信号之后,如果所述头指针和尾指针未重合,并且尾指针和头指针之间的差值表征所述存储空间中包括待输出完整数据,则输出所述待输出完整数据。
在某些实施例中,所述控制器还用于:在所述输出表征完整数据中最后一个数据段的信号之后,如果所述头指针和尾指针未重合,并且尾指针和头指针之间的差值表征所述存储空间中没有待输出完整数据,则将所述存储模块的状态设置为不可读。由于FIFO存储器中可能存储有两个或者多个完整数据,因此,在输出一个完整数据后,还需要进一步判断FIFO存储器中是否还有完整数据,如果有,则可以继续输出数据。
在某些实施例中,所述控制器还具体用于:在所述输出所述当前输出数据段的过程中,禁止输出所述当前输出数据段的状态标识位的数据。这样可以保证输出数据的准确度。
图9为本申请实施例的数据输出的逻辑示意图。
参见图9所示,当数据可以从FIFO存储器中输出时,最先进来的数据将会输出,指向其的指针将会顺位移动向下一个。请一并参见图6,在输出数据的同时判断查看数据的倒数第一位和倒数第二位(需要说明的是,查看倒数第一位和倒数第二位不需要计数器的信息,只是简单查看,读数据控制模块可以胜任),其中这两位不进行输出。若数据的倒数第二位为1,表示数据是整个数据段中的第一个数据,同时输出表示其为第一个数据的信号。如果数据的倒数第一位为1,表示数据是整个数据段中的最后一个数据,则同时输出表示其为最后一个数据段的信号。若输出的不是最后一个数据段 ,则可以进行继续输出,如果输出的是最后一个数据段,通过头尾指针的差来判断是否还有一整个数据段可以输出。如果没有,则发出不能继续输出的信号,直到内存中存满一整个数据,如果有,则发出可以输出的信号,等待上一级的输出指令。
需要说明的是,因为本实施例提供的FIFO存储器不是非空就能输出,所以还是要看是否有完整数据可以输出(也可以认为这是一种空信号)。给FIFO存储器发送读指令的模块主要需要查看的是FIFO存储器中是否有可以输出的完整数据。如果FIFO存储器满并不影响读,所以发送读指令的模块并不关心FIFO存储器是否是满的。
此外,FIFO存储器可以替换成任何先进先出的存储结构。头指针和尾指针可以替换为任何可以判断存储空间中的有效数据个数的结构。
本实施例提供的存储器,使FIFO存储器拥有重新整合数据,并且控制数据流,使存储空间中必须包含一个完整数据段才能输出的功能,能有效提升传输数据的完整性。
本申请的另一方面还提供了一种数据存取方法。
图10为本申请实施例的数据存取方法的流程图。
参见图10,该方法包括操作1001~操作1002。
在操作1001,如果存储模块中未存储完整数据,则将所述存储模块的状态设置为不可读;如果所述存储模块中存储有至少一个完整数据,则将所述存储模块的状态设置为可读,其中,所述存储模块能够以先进先出的方式存储至少一个完整数据。
例如,可以通过寄存器来实现FIFO。例如,可以通过块RAM的资源配置形成的FIFO,块(Block)RAM(简称BRAM)和一些外设电路。例如,通过分布式RAM配置形成的FIFO,与BRAM类似,只是RAM的类型不一样。
在操作1002,响应于接受到输出数据段指令,如果所述存储模块的状态为不可读,则禁止输出与所述输出数据段指令对应的数据段;如果所述存储模块的状态为可读,则输出与所述输出数据段指令对应的数据段。
本实施中主要针对数据宽度过大,需要用多个数据包来发送一整段数据的应用场景。本实施例可以用来在FIFO缓冲区中重新整合数据,方便之后的上级对整段数据进行操作,并且可以排出由于直线的传输在一整段数据的不同数据分段中夹带的无效数据。
需要说明的是,上述存储器能够实现的各功能,都可以通过软件的方式来实现。上述数据存取方法的各操作可以参考如上存储器对应的内容,在此不再详述。
本申请的另一方面还提供了一种数据存取装置。
图11为本申请实施例的数据存取装置的图。
参见图11,该装置1100包括:控制模块1110和存储模块1120。
控制模块1110被配置为如果存储模块中未存储完整数据,则将所述存储模块的状态设置为不可读;如果所述存储模块中存储有至少一个完整数据,则将所述存储模块的状态设置为可读,其中,所述存储模块能够以先进先出的方式存储至少一个完整数据。
存储模块1120用于响应于输出数据段指令,如果所述存储模块的状态为不可读,则禁止输出与所述输出数据段指令对应的数据段;如果所述存储模块的状态为可读,则输出与所述输出数据段指令对应的数据段。
本申请还提供了一种计算设备。图12为本申请实施例的计算设备的一种结构示意图。
图11所示的装置均可以具有如图12所示的结构,当图11所示的存储装置1100具有如图12所示的结构时,图12中的处理器能够实现前述对应该装置的装置实施例提供的控制模块1110相同或相似的功能,图12中的存储器存储处理器执行上述存取方法时需要调用的计算机程序。
本申请实施例还提供了一种终端设备,该终端设备包括如上述的存储器,如图13所示,为了便于说明,以手机的存储器为例示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该终端设备可以为包括手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、销售终端设备(Point of Sales,POS)、车载电脑等任意终端设备,以终端设备为手机为例:
图13示出的是与本申请实施例提供的终端设备相关的手机的部分结构的框图。参考图13,手机包括:射频(Radio Frequency,RF)电路1310、存储器1320、输入单元1330、显示单元1340、传感器1350、音频电路1360、无线保真(wireless fidelity,WiFi)模块1370、处理器1380、以及电源1390等部件。本领域技术人员可以理解,图13中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图13对手机的各个构成部件进行具体的介绍:
RF电路1310可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1380处理;另外,将设计上行的数据发送给基站。通常,RF电路1310包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(LowNoiseAmplifier,LNA)、双工器等。此外,RF电路1310还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GlobalSystem of Mobile communication,GSM)、通用分组无线服务(General PacketRadioService,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器1320可用于存储软件程序以及模块,处理器1380通过运行存储在存储器1320的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器1320可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1320可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元1330可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元1330可包括触控面板1331以及其他输入设备1332。触控面板1331,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1331上或在触控面板1331附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1331可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1380,并能接收处理器1380发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1331。除了触控面板1331,输入单元1330还可以包括其他输入设备1332。具体地,其他输入设备1332可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元1340可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1340可包括显示面板1341,可选的,可以采用液晶显示器(LiquidCrystalDisplay,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板1341。进一步的,触控面板1331可覆盖显示面板1341,当触控面板1331检测到在其上或附近的触摸操作后,传送给处理器1380以确定触摸事件的类型,随后处理器1380根据触摸事件的类型在显示面板1341上提供相应的视觉输出。虽然在图13中,触控面板1331与显示面板1341是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板1331与显示面板1341集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器1350,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1341的亮度,接近传感器可在手机移动到耳边时,关闭显示面板1341和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路1360、扬声器1361,传声器1362可提供用户与手机之间的音频接口。音频电路1360可将接收到的音频数据转换后的电信号,传输到扬声器1361,由扬声器1361转换为声音信号输出;另一方面,传声器1362将收集的声音信号转换为电信号,由音频电路1360接收后转换为音频数据,再将音频数据输出处理器1380处理后,经RF电路1310以发送给比如另一手机,或者将音频数据输出至存储器1320以便进一步处理。
Wi-Fi属于短距离无线传输技术,手机通过Wi-Fi模块1370可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图13示出了Wi-Fi模块1370,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器1380是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1320内的软件程序和/或模块,以及调用存储在存储器1320内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器1380可包括一个或多个处理单元;可选的,处理器1380可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1380中。
手机还包括给各个部件供电的电源1390(比如电池),可选的,电源可以通过电源管理系统与处理器1380逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本申请实施例中,该手机所包括的处理器1380还能够实现控制执行上述数据存取方法流程。
本申请实施例还提供了一种服务器,请参阅图14,图14是本申请实施例提供的一种服务器结构示意图,该服务器1400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(英文全称:central processing units,英文简称:CPU)1422(例如,一个或一个以上处理器)和存储器1432,一个或一个以上存储应用程序1442或数据1444的存储介质1430(例如一个或一个以上海量存储设备)。其中,存储器1432和存储介质1430可以是短暂存储或持久存储。存储在存储介质1430的程序可以包括一个或一个以上模块(图中未示出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1422可以设置为与存储介质1430通信,在服务器1400上执行存储介质1430中的一系列指令操作。
服务器1400还可以包括一个或一个以上电源1426,一个或一个以上有线或无线网络接口1450,一个或一个以上输入输出接口1458,和/或,一个或一个以上操作系统1441,例如Windows Server,Mac OS X,Unix, Linux,FreeBSD等等。
上述实施例中由服务器所执行的步骤可以基于该图14所示的服务器1400的结构。例如,所述中央处理器1422通过调用存储器1432中的指令,执行以下操作:
通过输入输出接口1458实现如果存储模块中未存储完整数据,则将所述存储模块的状态设置为不可读;如果所述存储模块中存储有至少一个完整数据,则将所述存储模块的状态设置为可读,其中,所述存储模块能够以先进先出的方式存储至少一个完整数据。
还可以通过输入输出接口1458响应于接受到输出数据段指令,如果所述存储模块的状态为不可读,则禁止输出与所述输出数据段指令对应的数据段;如果所述存储模块的状态为可读,则输出与所述输出数据段指令对应的数据段。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请实施例各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
以上对本申请实施例所提供的技术方案进行了详细介绍,本申请实施例中应用了具体个例对本申请实施例的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请实施例的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请实施例的限制。

Claims (17)

1.一种存储器,其特征在于,包括:
存储模块,能够以先进先出的方式存储至少一个完整数据;
控制器,用于如果所述存储模块中未存储完整数据,则将所述存储模块的状态设置为不可读;如果所述存储模块中存储有至少一个完整数据,则将所述存储模块的状态设置为可读。
2.根据权利要求1所述的存储器,其特征在于,所述完整数据包括n个数据段,n个所述数据段包括首数据段,所述首数据段具有首数据段标识,n是大于或等于1的整数;
所述存储器还包括:计数器,用于对数据段进行计数,得到计数结果;
所述控制器具体用于响应于获得所述首数据段标识,控制所述计数器对后续存入所述存储模块中的数据段的个数进行计数,并且将所述存储模块的状态设置为不可读,直至满足可读条件,所述可读条件包括:所述存储模块中存储有至少一个完整数据,或者所述计数器的计数结果大于或者等于(n-1)。
3.根据权利要求2所述的存储器,其特征在于,n个所述数据段中的最后一个数据段为尾数据段;
所述控制器具体用于如果针对当前数据段的计数结果等于(n-1),则为所述当前数据段设置尾数据段标识。
4.根据权利要求2所述的存储器,其特征在于,所述控制器还用于处理原始数据段以得到增加状态标识位的所述数据段,所述状态标识位包括至少两比特位,其中,至少所述两比特位中的第一比特位用于设置所述数据段的首数据段标识,至少所述两比特位中的第二比特位用于设置所述数据段的尾数据段标识。
5.根据权利要求4所述的存储器,其特征在于,所述控制器还用于:
响应于获得当前输入数据段,如果所述存储模块的当前存储空间未满,则写入当前输入数据段,所述当前输入数据段为待写入的数据段;
响应于获得当前输入数据段,如果存储模块的当前存储空间已满,则禁止写入当前输入数据段。
6.根据权利要求5所述的存储器,其特征在于,所述控制器具体用于:在写入当前输入数据段的过程中,
如果当前输入数据段的状态标识位的第一比特位表征首数据段,且所述第二比特位表征非尾数据段,则存储该当前输入数据段,并且将所述计数器的计数结果设置为0;
如果当前输入数据段的状态标识位的第一比特位表征非首数据段,且所述第二比特位表征非尾数据段,则重复以下过程直至所述计数器的计数结果达到(n-1):存储该当前输入数据段,所述计数器的计数结果加1,并且将下一输入数据段作为新的当前输入数据段;
如果当前输入数据段的状态标识位的第一比特位表征非首数据段、所述第二比特位表征尾数据段,则存储所述当前输入数据段,并且将所述存储模块的状态设置为可读。
7.根据权利要求5所述的存储器,其特征在于,所述控制器用于通过头指针和尾指针确定所述存储空间的存储状态。
8.根据权利要求7所述的存储器,其特征在于,所述控制器还用于在写入所述当前输入数据段后,改变所述尾指针,以及,在输出当前输出数据段后,改变所述头指针;
如果改变后的尾指针和所述头指针重合,则确定所述存储空间为存满状态;
如果改变后的尾指针和所述头指针未重合,则确定所述存储空间为未满状态。
9.根据权利要求8所述的存储器,其特征在于,所述控制器还用于:响应于接收到数据输出指令,且所述存储空间中包括至少一个完整数据,
如果当前输出数据段的状态标识位的第一比特位表征首数据段,第二比特位表征非尾数据段,则输出所述当前输出数据段,并且输出表征完整数据中的首数据段的信号;
如果当前输出数据段的状态标识位的第一比特位表征非首数据段,第二比特位表征非尾数据段,则输出所述当前输出数据段;
如果当前输出数据段的状态标识位的第二比特位表征尾数据段,则输出所述当前输出数据段,输出表征完整数据中最后一个数据段的信号。
10.根据权利要求9所述的存储器,其特征在于,所述控制器还用于:在所述输出表征完整数据中最后一个数据段的信号之后,
如果所述头指针和所述尾指针重合,则等待所述头指针的变动;
如果所述头指针和尾指针未重合,并且尾指针和头指针之间的差值表征所述存储空间中包括待输出完整数据,则输出所述待输出完整数据;
如果所述头指针和尾指针未重合,并且尾指针和头指针之间的差值表征所述存储空间中没有待输出完整数据,则将所述存储模块的状态设置为不可读。
11.根据权利要求9所述的存储器,其特征在于,所述控制器还具体用于:在所述输出所述当前输出数据段的过程中,禁止输出所述当前输出数据段的状态标识位的数据。
12.一种数据存取方法,其特征在于,该方法包括:
如果存储模块中未存储完整数据,则将所述存储模块的状态设置为不可读;如果所述存储模块中存储有至少一个完整数据,则将所述存储模块的状态设置为可读,其中,所述存储模块能够以先进先出的方式存储至少一个完整数据;
响应于接受到输出数据段指令,如果所述存储模块的状态为不可读,则禁止输出与所述输出数据段指令对应的数据段;如果所述存储模块的状态为可读,则输出与所述输出数据段指令对应的数据段。
13.一种存储装置,其特征在于,该装置包括:
控制模块,被配置为如果存储模块中未存储完整数据,则将所述存储模块的状态设置为不可读;如果所述存储模块中存储有至少一个完整数据,则将所述存储模块的状态设置为可读,其中,所述存储模块能够以先进先出的方式存储至少一个完整数据;
存储模块,用于响应于输出数据段指令,如果所述存储模块的状态为不可读,则禁止输出与所述输出数据段指令对应的数据段;如果所述存储模块的状态为可读,则输出与所述输出数据段指令对应的数据段。
14.一种计算设备,其特征在于,其包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如权利要求12所述的方法。
15.一种计算机可读存储介质,其特征在于,其包括指令,当其在计算机上运行时,使得所述计算机执行如权利要求12所述的方法。
16.一种包含指令的计算机程序产品,所述计算机程序产品包括程序指令,当所述程序指令在计算机或处理器上运行时,使得所述计算机或所述处理器执行如权利要求12所述的方法。
17.一种芯片系统,其特征在于,该芯片系统包括:
通信接口,用于输入和/或输出信息;
处理器,用于执行计算机可执行程序,使得安装有所述芯片系统的设备执行如权利要求12所述的方法。
CN202310821688.9A 2023-07-06 2023-07-06 存储器、数据存取方法、存储装置及存储介质 Active CN116540951B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310821688.9A CN116540951B (zh) 2023-07-06 2023-07-06 存储器、数据存取方法、存储装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310821688.9A CN116540951B (zh) 2023-07-06 2023-07-06 存储器、数据存取方法、存储装置及存储介质

Publications (2)

Publication Number Publication Date
CN116540951A true CN116540951A (zh) 2023-08-04
CN116540951B CN116540951B (zh) 2023-09-08

Family

ID=87458222

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310821688.9A Active CN116540951B (zh) 2023-07-06 2023-07-06 存储器、数据存取方法、存储装置及存储介质

Country Status (1)

Country Link
CN (1) CN116540951B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05292477A (ja) * 1992-04-16 1993-11-05 Hitachi Ltd 映像信号の処理装置
JPH0628840A (ja) * 1992-07-07 1994-02-04 Fujitsu Ltd Fifo回路
US6412030B1 (en) * 1999-04-16 2002-06-25 Koninklijke Philips Electronics N.V. System and method to optimize read performance while accepting write data in a PCI bus architecture
CN1407458A (zh) * 2001-08-30 2003-04-02 华为技术有限公司 一种异步先进先出(fifo)数据缓存的方法
JP2013034647A (ja) * 2011-08-08 2013-02-21 Fujishoji Co Ltd 弾球遊技機
CN104020457A (zh) * 2014-06-23 2014-09-03 哈尔滨工业大学 雷达测试中多路数据的实时记录装置及实现数据实时记录的方法
US20160239263A1 (en) * 2015-02-13 2016-08-18 Electronics And Telecommunications Research Institute Dual-clock fifo apparatus for packet transmission
CN113485647A (zh) * 2021-07-13 2021-10-08 湖南国科微电子股份有限公司 数据写入方法、数据读出方法及先进先出存储器
CN114546277A (zh) * 2022-02-23 2022-05-27 北京奕斯伟计算技术有限公司 用于存取数据的装置、方法、处理装置及计算机系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05292477A (ja) * 1992-04-16 1993-11-05 Hitachi Ltd 映像信号の処理装置
JPH0628840A (ja) * 1992-07-07 1994-02-04 Fujitsu Ltd Fifo回路
US6412030B1 (en) * 1999-04-16 2002-06-25 Koninklijke Philips Electronics N.V. System and method to optimize read performance while accepting write data in a PCI bus architecture
CN1407458A (zh) * 2001-08-30 2003-04-02 华为技术有限公司 一种异步先进先出(fifo)数据缓存的方法
JP2013034647A (ja) * 2011-08-08 2013-02-21 Fujishoji Co Ltd 弾球遊技機
CN104020457A (zh) * 2014-06-23 2014-09-03 哈尔滨工业大学 雷达测试中多路数据的实时记录装置及实现数据实时记录的方法
US20160239263A1 (en) * 2015-02-13 2016-08-18 Electronics And Telecommunications Research Institute Dual-clock fifo apparatus for packet transmission
CN113485647A (zh) * 2021-07-13 2021-10-08 湖南国科微电子股份有限公司 数据写入方法、数据读出方法及先进先出存储器
CN114546277A (zh) * 2022-02-23 2022-05-27 北京奕斯伟计算技术有限公司 用于存取数据的装置、方法、处理装置及计算机系统

Also Published As

Publication number Publication date
CN116540951B (zh) 2023-09-08

Similar Documents

Publication Publication Date Title
CN110888821B (zh) 一种内存管理方法及装置
US20160266948A1 (en) Queued Messages Processing Method and Apparatus, Method and Apparatus for Controlling Messages to be Enqueued
US10317931B2 (en) Method for managing multi-core processor, and apparatus
CN112559390B (zh) 一种数据写入控制方法及存储设备
CN111177025B (zh) 数据存储方法、装置及终端设备
CN111078523B (zh) 日志获取方法、装置、存储介质及电子设备
CN113032293A (zh) 缓存管理器及控制部件
CN113900974B (zh) 一种存储装置、数据存储方法及相关设备
CN111104180B (zh) 应用程序优化方法、装置、存储介质及电子设备
CN103793267A (zh) 队列的访问方法及装置
US20240020246A1 (en) Method for Generating Information Based on FIFO Memory and Apparatus, Device and Medium
CN116540951B (zh) 存储器、数据存取方法、存储装置及存储介质
CN116594930A (zh) 一种基于流水线的数据传输控制方法、系统及电子设备
CN112261634B (zh) 一种蓝牙传输控制方法、装置、终端设备和存储介质
CN113420191B (zh) 数据存储方法和装置、数据查询方法和装置、数据结构、电子设备及计算机可读存储介质
WO2019140565A1 (zh) 云存储命令管理方法及系统
CN111143580B (zh) 多媒体数据存储方法、装置、存储介质及电子设备
CN111210299B (zh) 一种单号生成及管理方法及装置
CN109582240B (zh) 一种数据移动方法及其相关设备
CN116737601B (zh) 将外设寄存器扩展为系统ram的方法、装置及存储介质
CN114296641B (zh) 增量文件传输方法、装置、电子设备及可读存储介质
CN111338452B (zh) 模拟u盘加速充电的方法、系统、存储介质及移动终端
EP3344004A1 (en) Communication method, mobile terminal and storage medium
WO2019140578A1 (zh) 数据备份指令管理方法及系统
CN112770356B (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
GR01 Patent grant
GR01 Patent grant