CN104636087B - 读取数据的控制方法和装置 - Google Patents
读取数据的控制方法和装置 Download PDFInfo
- Publication number
- CN104636087B CN104636087B CN201510068000.XA CN201510068000A CN104636087B CN 104636087 B CN104636087 B CN 104636087B CN 201510068000 A CN201510068000 A CN 201510068000A CN 104636087 B CN104636087 B CN 104636087B
- Authority
- CN
- China
- Prior art keywords
- reading
- virtual
- read
- directed toward
- practical
- 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.)
- Expired - Fee Related
Links
Landscapes
- Communication Control (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明实施例提供一种读取数据的控制方法和装置,通过增加读取方式和与读取方式对应的接口信号,以及对接口信号的控制方式,根据读取方式,确定与上述读取方式对应的接口信号;对上述与读取方式对应的接口信号进行控制,实现数据的可重复读取和/或可控数据量的读取。
Description
技术领域
本发明实施例涉及计算机技术,尤其涉及一种读取数据的控制方法和装置。
背景技术
随着多核***芯片(System on Chip,以下简称:SoC)***的广泛应用,常常具有将一个核的某个数据流发送到其他多个核的需求,通常先将数据写入到存储器中,以先进先出(First Input First Output,以下简称:FIFO)存储器为例,然后从FIFO存储器中读取数据,发送到总线进行传输,通过总线控制模块来控制数据流复制发送到多个核。
现有技术中,从FIFO存储器中读取数据,数据一旦读出,FIFO中存储已读出数据的存储空间即被释放,已读出的数据在FIFO存储器中即失效,无法实现数据的可重复读取。
发明内容
本发明实施例提供一种读取数据的控制方法和装置,以实现数据的可重复读取。
本发明实施例第一方面提供一种读取数据的控制方法,包括:
根据读取方式,确定与所述读取方式对应的接口信号;
对所述与所述读取方式对应的接口信号进行控制。
结合第一方面,在第一方面的第一种可能的实现方式中,所述读取方式包括:实际读取、虚拟递增读取或虚拟重置读取。
结合第一方面,在第一方面的第二种可能的实现方式中,所述根据读取方式,确定与所述读取方式对应的接口信号,包括:
当所述读取方式为虚拟递增读取时,确定与所述读取方式对应的接口信号包括虚拟读指针;
所述对与所述读取方式对应的接口信号进行控制,包括:
从虚拟读指针指向的FIFO存储单元的起始位置开始读取,读取的数据量每超过一个FIFO存储单元对应的数据量时,所述虚拟读指针指向下一个FIFO存储单元。
结合第一方面,在第一方面的第三种可能的实现方式中,所述根据读取方式,确定与所述读取方式对应的接口信号,包括:
当所述读取方式为虚拟递增读取时,确定与所述读取方式对应的接口信号包括虚拟读指针和虚拟读偏移;
所述对与所述读取方式对应的接口信号进行控制,包括:
从虚拟读偏移指向的位置开始读取,当所述虚拟读偏移指向的位置的数值加读取的数据量超过一个FIFO存储单元对应的数据量时,所述虚拟读指针指向下一个FIFO存储单元;
当读取结束时,所述虚拟读偏移指向的位置更新为所述读取的数据结束的位置。
结合第一方面,在第一方面的第四种可能的实现方式中,所述根据读取方式,确定与所述读取方式对应的接口信号,包括:
当所述读取方式为虚拟重置读取时,确定与所述读取方式对应的接口信号包括虚拟读指针;
所述对与所述读取方式对应的接口信号进行控制,包括:
从虚拟读指针指向的FIFO存储单元的起始位置开始读取,当读取结束时,将所述虚拟读指针指向的位置重置到实际读指针指向的位置。
结合第一方面,在第一方面的第五种可能的实现方式中,所述根据读取方式,确定与所述读取方式对应的接口信号,包括:
当所述读取方式为虚拟重置读取时,确定与所述读取方式对应的接口信号包括虚拟读指针和虚拟读偏移;
所述对与所述读取方式对应的接口信号进行控制,包括:
从虚拟读偏移指向位置开始读取,当读取结束时,将所述虚拟读指针指向的位置重置到实际读指针指向的位置;
将所述虚拟读偏移指向的位置重置到实际读偏移指向的位置。
结合第一方面,在第一方面的第六种可能的实现方式中,所述根据读取方式,确定与所述读取方式对应的接口信号,包括:
当所述读取方式为实际读偏移时,确定与所述实际读取方式对应的接口信号包括实际读指针和实际读偏移;
所述对与所述读取方式对应的接口信号进行控制,包括:
从实际读偏移指向的位置开始读取,当所述实际读偏移指向的位置的数值加读取的数据量超过一个FIFO存储单元对应的数据量时,所述实际读指针指向下一个FIFO存储单元;
当读取结束时,所述虚拟读偏移指向的位置更新为所述读取的数据结束的位置。
结合第一方面的第二种可能的实现方式,在第一方面的第七种可能的实现方式中,所述从虚拟读指针指向的FIFO存储单元的起始位置开始读取之前,还包括:
根据写指针指向的位置与虚拟读指针指向的位置确定FIFO中有效数据量;
确定所述有效数据量大于等于一个FIFO存储单元对应的数据量。
结合第一方面的第三种可能的实现方式,在第一方面的第八种可能的实现方式中,所述从虚拟读偏移指向的位置开始读取之前,还包括:
根据写指针指向的位置、虚拟读指针指向的位置和虚拟读偏移指向的位置确定FIFO中有效数据量;
确定所述有效数据量大于等于虚拟读取每次读取的最小数据量。
结合第一方面的第六种可能的实现方式,在第一方面的第九种可能的实现方式中,所述从实际读偏移指向的位置开始读取之前,还包括:
根据写指针指向的位置、实际读指针指向的位置和实际读偏移指向的位置确定FIFO中有效数据量;
确定所述有效数据量大于等于实际读取每次读取的最小数据量。
结合第一方面或第一方面的第一种至第六种可能的实现方式中任一种可能的实现方式或第七种至第九种可能的实现方式中任一种可能的实现方式,在第一方面的第十种可能的实现方式中,所述对与所述读取方式对应的接口信号进行控制之后,还包括:
根据实际读指针指向的位置,释放FIFO存储空间。
结合第一方面或第一方面的第一种至第九种可能的实现方式中任一种可能的实现方式,在第一方面的第十一种可能的实现方式中,所述对于所述读取方式对应的接口信号进行控制之后,还包括:
根据实际读指针指向的位置和实际读偏移指向的位置,释放FIFO存储空间。
本发明实施例第二方面提供一种读取数据的控制装置,包括:
处理模块,用于根据读取方式,确定与所述读取方式对应的接口信号;
控制模块,用于对所述与所述读取方式对应的接口信号进行控制。
结合第二方面,在第二方面的第一种可能的实现方式中,所述读取方式包括:实际读取、虚拟递增读取或虚拟重置读取。
结合第二方面,在第二方面的第二种可能的实现方式中,所述处理模块具体用于当所述读取方式为虚拟递增读取时,确定与所述读取方式对应的接口信号包括虚拟读指针;
所述控制模块具体用于从虚拟读指针指向的FIFO存储单元的起始位置开始读取,读取的数据量每超过一个FIFO存储单元对应的数据量时,所述虚拟读指针指向下一个FIFO存储单元。
结合第二方面,在第二方面的第三种可能的实现方式中,所述处理模块具体用于当所述读取方式为虚拟递增读取时,确定与所述读取方式对应的接口信号包括虚拟读指针和虚拟读偏移;
所述控制模块具体用于从虚拟读偏移指向的位置开始读取,当所述虚拟读偏移指向的位置的数值加读取的数据量超过一个FIFO存储单元对应的数据量时,所述虚拟读指针指向下一个FIFO存储单元;
当读取结束时,所述虚拟读偏移指向的位置更新为所述读取的数据结束的位置。
结合第二方面,在第二方面的第四种可能的实现方式中,所述处理模块具体用于当所述读取方式为虚拟重置读取时,确定与所述读取方式对应的接口信号包括虚拟读指针;
所述控制模块具体用于从虚拟读指针指向的FIFO存储单元的起始位置开始读取,当读取结束时,将所述虚拟读指针指向的位置重置到实际读指针指向的位置。
结合第二方面,在第二方面的第五种可能的实现方式中,所述处理模块具体用于当所述读取方式为虚拟重置读取时,确定与所述读取方式对应的接口信号包括虚拟读指针和虚拟读偏移;
所述控制模块具体用于从虚拟读偏移指向位置开始读取,当读取结束时,将所述虚拟读指针指向的位置重置到实际读指针指向的位置;
将所述虚拟读偏移指向的位置重置到实际读偏移指向的位置。
结合第二方面,在第二方面的第六种可能的实现方式中,所述处理模块具体用于当所述读取方式为实际读偏移时,确定与所述实际读取方式对应的接口信号包括实际读指针和实际读偏移;
所述控制模块具体用于从实际读偏移指向的位置开始读取,当所述实际读偏移指向的位置的数值加读取的数据量超过一个FIFO存储单元对应的数据量时,所述实际读指针指向下一个FIFO存储单元;
当读取结束时,所述虚拟读偏移指向的位置更新为所述读取的数据结束的位置。
结合第二方面的第二种可能的实现方式,在第二方面的第七种可能的实现方式中,所述处理模块还用于根据写指针指向的位置与虚拟读指针指向的位置确定FIFO中有效数据量;确定所述有效数据量大于等于一个FIFO存储单元对应的数据量。
结合第二方面的第三种可能的实现方式,在第二方面的第八种可能的实现方式中,所述处理模块还用于根据写指针指向的位置、虚拟读指针指向的位置和虚拟读偏移指向的位置确定FIFO中有效数据量;确定所述有效数据量大于等于虚拟读取每次读取的最小数据量。
结合第二方面的第六种可能的实现方式,在第二方面的第九种可能的实现方式中,所述处理模块还用于根据写指针指向的位置、实际读指针指向的位置和实际读偏移指向的位置确定FIFO中有效数据量;确定所述有效数据量大于等于实际读取每次读取的最小数据量。
结合第二方面或第二方面的第一种至第六种可能的实现方式中任一种可能的实现方式或第七种至第九种可能的实现方式中任一种可能的实现方式,在第二方面的第十种可能的实现方式中,所述控制模块还用于根据实际读指针指向的位置,释放FIFO存储空间。
结合第二方面或第二方面的第一种至第九种可能的实现方式中任一种可能的实现方式,在第二方面的第十一种可能的实现方式中,所述控制模块还用于根据实际读指针指向的位置和实际读偏移指向的位置,释放FIFO存储空间。
本发明实施例提供的读取数据的控制方法和装置,通过增加读取方式和与读取方式对应的接口信号,以及对接口信号的控制方式,根据读取方式,确定与所述读取方式对应的接口信号;对所述与所述读取方式对应的接口信号进行控制,实现数据的可重复读取和/或可控数据量的读取。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明读取数据的控制方法实施例一的流程示意图;
图2为本发明实施例FIFO结构示意图;
图3为本发明实施例实际读取的应用场景示意图;
图4为本发明虚拟递增读取和虚拟重置读取的应用场景示意图;
图5为本发明读取数据的控制装置实施例一的结构示意图;
图6为本发明读取数据的控制装置实施例二的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例通过增加读取方式和与读取方式对应的接口信号,以及对接口信号的控制方式,实现数据的可重复读取和可控数据量的读取,具体地,读取方式包括:实际读取、虚拟递增读取和虚拟重置读取;实际读取对应的接口信号为实际读指针,或者,实际读指针和实际读偏移;虚拟递增读取对应的接口信号为虚拟读指针,或者,虚拟读指针和虚拟读偏移;虚拟重置读取对应的接口信号为虚拟读指针,或者,虚拟读指针和虚拟读偏移。
因FIFO中的存储空间释放或者数据失效,是根据实际读取方式中实际读指针的指向确定的,因此,本发明增加虚拟递增读取和虚拟重置读取,通过对虚拟读指针的控制读取数据,同时,实际读指针的指向不变,从而保证已读取的数据所在的存储空间不被释放(即数据不失效),通过虚拟重置读取,使读取结束之后,虚拟读指针重置到实际读指针的位置,以使数据可重复读取。
通过增加虚拟读偏移,确保采用虚拟递增读取或虚拟重置读取时,读取的数据量可控,通过增加实际读偏移,确保实际读取时,读取的数据量可控。
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
首先对本发明可能用到的接口信号进行简要的介绍,以便于后续描述:
fifo_wen:FIFO写使能接口信号,输入接口,高有效,每次写入的数据量是一个FIFO位宽对应的数据量,也就是一个FIFO存储单元对应的数据量。
fifo_wdata:FIFO的写数据接口信号,输入接口。
fifo_ren:FIFO读使能信号,输入接口,高有效。
fifo_rtype:FIFO读取方式,输入接口,分为以下三种:
实际读取:读取数据后,FIFO中已读取的数据对应的存储空间释放,已读取的数据失效,对应的实际读指针(actual_pointer)和实际读偏移(actual_offset)根据读取的数据量而递增。
虚拟递增读取:读取数据后,FIFO中已读取的数据对应的存储空间未释放,已读取的数据有效,对应的虚拟读指针(virtual_pointer)和虚拟读偏移(virtual_offset)根据读取的数据量而递增。
虚拟重置读取:读取数据后,FIFO中已读取的数据对应的存储空间未释放,已读取的数据有效,对应的虚拟读指针(virtual_pointer)和虚拟读偏移(virtual_offset)重置到实际读指针和实际读偏移对应的位置。
fifo_rsize:FIFO读操作读取的有效数据量,单位为字节(byte),输入接口,本发明实施例支持任意小于等于FIFO存储单元对应数据量的读取,匹配总线每个周期(cycle)发送任意字节数据量的需求。
fifo_rdata:FIFO读数据,输出接口,读数据的位宽是FIFO宽度的两倍,因为一次操作的有效数据量,可能跨域到两个连续指针对应的存储单元上。
fifo_roffset:FIFO读偏移量,输出接口,fifo_roffset是直接将FIFO中读指针对应的数据块及其与读指针连续的下一个指针对应的数据块读出去,FIFO使用者需要根据fifo_roffset和fifo_rsize判断读取的有效数据在fifo存储单元中的位置,如果是虚拟递增读取或者虚拟重置读取,fifo_roffset对应的是虚拟读偏移(virtual_roffset),如果是实际读取,fifo_roffset对应的是实际读偏移(actual_roffset)。
virtual byte_cnt:FIFO中虚拟有效数据量,单位为字节(byte),输出接口,虚拟有效数据量是通过虚拟读指针、虚拟读偏移和实际写指针确定,当FIFO读取方式为虚拟递增读取或者虚拟重置读取时,读取之前根据虚拟有效数据量判断是否允许进行虚拟递增读取或者虚拟重置读取。
actual byte_cnt:FIFO中实际有效数据量,单位为字节(byte),输出接口,实际有效数据量是通过实际读指针、实际读偏移和实际写指针确定,当FIFO读取方式为实际读取时,读取之前根据实际有效数据量判断是否允许进行实际读取。
图1为本发明读取数据的控制方法实施例一的流程示意图,如图1所示,本实施例的方法如下:
S101:根据读取方式,确定与读取方式对应的接口信号。
具体地,读取方式包括:实际读取、虚拟递增读取或虚拟重置读取。
与实际读取对应的接口信号为实际读指针,或者,与实际读取对应的接口信号为实际读指针和实际读偏移;
与虚拟递增读取对应的接口信号为虚拟读指针,或者,与虚拟递增读取对应的接口信号为虚拟读指针和虚拟读偏移;
与虚拟重置读取对应的接口信号为虚拟读指针,或者,与虚拟重置读取对应的接口信号为虚拟读指针和虚拟读偏移。
S102:对与读取方式对应的接口信号进行控制。
针对不同的读取方式,以及不同的接口信号,控制方式不同:
1、针对读取方式为虚拟递增读取时,对接口信号的控制分以下两种情况:
11:读取方式对应的接口信号为虚拟读指针时,控制方式如下:
从虚拟读指针指向的FIFO存储单元的起始位置开始读取,读取的数据量每超过一个FIFO存储单元对应的数据量时,虚拟读指针指向下一个FIFO存储单元。
在这种方式中,每次读取必须读取一个FIFO宽度对应的数据量,也就是一个FIFO存储单元对应的数据量,读取的数据量不可控制。
12:读取方式对应的接口信号为虚拟读指针和虚拟读偏移时,控制方式如下:
从虚拟读偏移指向的位置开始读取,当虚拟读偏移指向的位置的数值加读取的数据量超过一个FIFO存储单元对应的数据量时,虚拟读指针指向下一个FIFO存储单元;当虚拟递增读取偏移指向的位置的数值加读取的数据量未超过一个FIFO存储单元对应的数据量时,虚拟读指针指向不变化。
当读取结束时,无论虚拟读偏移指向的位置的数值加读取的数据量是否超过一个FIFO存储单元对应的数据量,虚拟读偏移指向的位置更新为读取的数据结束的位置。
在这种方式中,每次读取可以是任意的数据量,读取的数据量可控。
2、针对读取方式为虚拟重置读取时,对接口信号的控制分以下两种情况:
21:读取方式对应的接口信号为虚拟读指针时,控制方式如下:
从虚拟读指针指向的FIFO存储单元的起始位置开始读取,当读取结束时,将虚拟读指针指向的位置重置到实际读指针指向的位置。
在这种方式中,每次读取必须读取一个FIFO宽度对应的数据量,也就是一个FIFO存储单元对应的数据量,读取的数据量不可控制。
22:读取方式对应的接口信号包括虚拟读指针和虚拟读偏移时,控制方式如下:
从虚拟读偏移指向位置开始读取,当读取结束时,将虚拟读指针指向的的位置重置到实际读指针指向的位置;将上述虚拟读偏移指向的位置重置到实际读偏移指向的位置。
在这种方式中,每次读取可以是任意的数据量,读取的数据量可控。
当读取结束时,上述虚拟读偏移指向的位置更新为上述读取的数据结束的位置。
3、针对读取方式为实际读取时,对接口信号的控制分以下两种情况:
31、当读取方式对应的接口信号为实际读指针时,控制方式如下:
从实际读指针指向的FIFO存储单元的起始位置开始读取,读取的数据量每超过一个FIFO存储单元对应的数据量时,实际读指针指向下一个FIFO存储单元。
在这种方式中,每次读取必须读取一个FIFO宽度对应的数据量,也就是一个FIFO存储单元对应的数据量,读取的数据量不可控制。
当读取结束时,根据实际读指针指向的位置,释放FIFO存储空间。
32、当读取方式对应的接口信号为实际读指针和实际读偏移时,控制方式如下:
从实际读偏移指向的位置开始读取,当实际读偏移指向的位置的数值加读取的数据量超过一个FIFO存储单元对应的数据量时,实际读指针指向下一个FIFO存储单元;当实际读取偏移指向的位置的数值加读取的数据量未超过一个FIFO存储单元对应的数据量时,实际读指针指向不变化。
当读取结束时,无论实际读偏移指向的位置的数值加读取的数据量是否超过一个FIFO存储单元对应的数据量,实际读偏移指向的位置更新为上述读取的数据结束的位置。
在这种方式中,每次读取可以是任意的数据量,读取的数据量可控。
当读取结束时,根据实际读指针指向的位置和实际读偏移指向的位置,释放FIFO存储空间。
本实施例中,通过增加读取方式和与读取方式对应的接口信号,以及对接口信号的控制方式,实现数据的可重复读取和/或可控数据量的读取。
需要说明的是,在上述实施例中,采用虚拟递增读取方式或虚拟重置读取方式之前,
如果虚拟递增读取或者虚拟重置读取中对应的接口信号为虚拟读指针,则还包括:根据写指针指向的位置与虚拟读指针指向的位置确定FIFO中有效数据量;确定有效数据量大于等于一个FIFO存储单元对应的数据量时,才允许进行虚拟递增读取或者虚拟重置读取。
如果虚拟递增读取或者虚拟重置读取中对应的接口信号为虚拟读指针和虚拟读偏移,则还包括:根据写指针指向位置、虚拟读指针指向的位置和虚拟读偏移指向的位置确定FIFO中有效数据量,确定有效数据量大于等于虚拟读取每次读取的最小数据量。
在上述实施例中,采用实际读取方式之前,如果实际读取对应的接口信号为实际读指针,则还包括:根据写指针指向的位置与虚拟读指针指向的位置确定FIFO中有效数据量;确定有效数据量大于等于一个FIFO存储单元对应的数据量时,才允许进行实际读取。
如果实际读取对应的接口信号为实际读指针和实际读偏移,则还包括:根据写指针指向的位置、实际读指针指向的位置和实际读偏移指向的位置确定FIFO中有效数据量;确定上述有效数据量大于等于实际读取每次读取的最小数据量。
在上述实施例中,写数据时,每次写入的数据量必须是一个FIFO存储单元对应的数据量,每写入一个FIFO存储单元对应的数据量后,写指针加1。
图2为本发明实施例FIFO结构示意图,如图2所示,横向指的是FIFO的宽度,纵向指的是FIFO的深度(图2中示出了‘h0~‘hN),阴影块的标识FIFO中存放的有效数据量,空白块标识FIFO中的无效数据块,对FIFO数据的读取主要包括对三种读取方式对应的接口信号的控制,图中示出了,实际读指针、实际读偏移、实际写指示、虚拟读指针和虚拟读偏移。
图3以实际读取为例进行描述,图3为本发明实施例实际读取的应用场景示意图,图3中的左图为读取前FIFO中有效数据和接口信号的状态,图3中的右图为读取后FIFO中有效数据和接口状态的信号,图3中示出的接口信号为实际读指针、实际读偏移和实际写指针,如图3所示,阴影块为FIFO中的有效数据,实际读指针指向‘h1,实际写指针指向‘h4,实际读偏移指向有效数据的起始位置,即‘h1的偏左部分;进行实际读取操作,从实际读偏移开始读取,实际读取的数量量加实际读偏移超过了一个FIFO存储单元对应的数据量,实际读指针指向‘h2;实际读偏移更新到读取的数据结束的位置。读取之后已读取的数据的存储空间被释放,即数据被无效,如图3中的右图所示,阴影块为FIFO实际读取之后的有效数据,空白块为实际读取之后的无效数据。
图4为本发明虚拟递增读取和虚拟重置读取的应用场景示意图,图4中包含四幅附图,左上图为读取之前的有效数据及接口信号的状态示意图,右上图为第一次虚拟递增读取后的有效有数据及接口信号的状态示意图,右下为第二次虚拟递增读取后的有效数据及接口信号的状态示意图,左下为第三次虚拟重置读取后的有效数据及接口信号的状态示意图。图4的各图中阴影块为有效数据,空白块为无效数据;
第一次虚拟递增读取,fifo_rtype设定为虚拟递增读取,从虚拟读偏移指向的位置开始读取,读出的数据跨越地址‘h3和‘h4,虚拟读指针的指向由‘h3更新为‘h4,虚拟读偏移的位置更新为读取数据结束的位置;实际读偏移、实际读指针以及实际写指针的位置不变。
第二次虚拟递增读取,fifo_rtype设定为虚拟递增读取,从虚拟读偏移指向的位置开始读取,读出的数据在地址‘h4内,虚拟读指针的指向不变,虚拟读偏移的位置更新为读取数据结束的位置;实际读偏移、实际读指针以及实际写指针的位置不变。
第三次虚拟重置读取,fifo_rtype设定为虚拟重置读取,从虚拟读偏移指向的位置开始读取,读出的数据跨越地址‘h4和‘h5,读取结束后,虚拟读偏移的位置重置到实际读偏移,虚拟读指针的指向重置到实际读指针的指向。
本实施例中,通过增加读取方式和与读取方式对应的接口信号,以及对接口信号的控制方式,实现数据的可重复读取和/或可控数据量的读取。
图5为本发明读取数据的控制装置实施例一的结构示意图,如图5所示,本实施例的装置包括:处理模块501和控制模块502,其中,处理模块501用于根据读取方式,确定与上述读取方式对应的接口信号;控制模块502用于对上述与上述读取方式对应的接口信号进行控制。
在上述实施例中,上述读取方式包括:实际读取、虚拟递增读取或虚拟重置读取。
在上述实施例中,上述处理模块501具体用于当上述读取方式为虚拟递增读取时,确定与上述读取方式对应的接口信号包括虚拟读指针;
上述控制模块502具体用于从虚拟读指针指向的FIFO存储单元的起始位置开始读取,读取的数据量每超过一个FIFO存储单元对应的数据量时,上述虚拟读指针指向下一个FIFO存储单元。
在上述实施例中,上述处理模块501具体用于当上述读取方式为虚拟递增读取时,确定与上述读取方式对应的接口信号包括虚拟读指针和虚拟读偏移;
上述控制模块502具体用于从虚拟读偏移指向的位置开始读取,当上述虚拟读偏移指向的位置的数值加读取的数据量超过一个FIFO存储单元对应的数据量时,上述虚拟读指针指向下一个FIFO存储单元;
当读取结束时,上述虚拟读偏移指向的位置更新为上述读取的数据结束的位置。
在上述实施例中,上述处理模块501具体用于当上述读取方式为虚拟重置读取时,确定与上述读取方式对应的接口信号包括虚拟读指针;
上述控制模块502具体用于从虚拟读指针指向的FIFO存储单元的起始位置开始读取,当读取结束时,将上述虚拟读指针指向的位置重置到实际读指针指向的位置。
在上述实施例中,上述处理模块501具体用于当上述读取方式为虚拟重置读取时,确定与上述读取方式对应的接口信号包括虚拟读指针和虚拟读偏移;
上述控制模块502具体用于从虚拟读偏移指向位置开始读取,当读取结束时,将上述虚拟读指针指向的位置重置到实际读指针指向的位置;
将上述虚拟读偏移指向的位置重置到实际读偏移指向的位置。
在上述实施例中,上述处理模块501具体用于当上述读取方式为实际读偏移时,确定与上述实际读取方式对应的接口信号包括实际读指针和实际读偏移;
上述控制模块502具体用于从实际读偏移指向的位置开始读取,当上述实际读偏移指向的位置的数值加读取的数据量超过一个FIFO存储单元对应的数据量时,上述实际读指针指向下一个FIFO存储单元;
当读取结束时,上述虚拟读偏移指向的位置更新为上述读取的数据结束的位置。
在上述实施例中,上述处理模块501还用于根据写指针指向的位置与虚拟读指针指向的位置确定FIFO中有效数据量;确定上述有效数据量大于等于一个FIFO存储单元对应的数据量。
在上述实施例中,上述处理模块501还用于根据写指针指向的位置、虚拟读指针指向的位置和虚拟读偏移指向的位置确定FIFO中有效数据量;确定上述有效数据量大于等于虚拟读取每次读取的最小数据量。
在上述实施例中,上述处理模块501还用于根据写指针指向的位置、实际读指针指向的位置和实际读偏移指向的位置确定FIFO中有效数据量;确定上述有效数据量大于等于实际读取每次读取的最小数据量。
在上述实施例中,上述控制模块502还用于根据实际读指针指向的位置,释放FIFO存储空间。
在上述实施例中,上述控制模块502还用于根据实际读指针指向的位置和实际读偏移指向的位置,释放FIFO存储空间。
上述装置实施例,通过增加读取方式和与读取方式对应的接口信号,以及对接口信号的控制方式,处理模块根据读取方式,确定与上述读取方式对应的接口信号;控制模块对与上述读取方式对应的接口信号进行控制,实现数据的可重复读取和/或可控数据量的读取。
图6为本发明读取数据的控制装置实施例二的结构示意图,如图6所示,读取数据的控制装置600包括通信接口601、存储器603和处理器602,其中,通信接口601、处理器602、存储器603、通过总线604相互连接;总线604可以是PCI总线或EISA总线等。上述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器603,用于存放程序。具体地,程序可以包括程序代码,上述程序代码包括计算机操作指令。存储器603可能包含RAM,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
处理器602执行存储器603所存放的程序,实现本发明图1所示的读取数据的控制的方法,包括:
根据读取方式,确定与上述读取方式对应的接口信号;
对上述与上述读取方式对应的接口信号进行控制。
上述的处理器602可以是通用处理器,包括CPU、NP等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本实施例,通过增加读取方式和与读取方式对应的接口信号,以及对接口信号的控制方式,处理器根据读取方式,确定与上述读取方式对应的接口信号;对与上述读取方式对应的接口信号进行控制,实现数据的可重复读取和/或可控数据量的读取。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (6)
1.一种读取数据的控制方法,其特征在于,包括:
根据读取方式,确定与所述读取方式对应的接口信号;
对所述与所述读取方式对应的接口信号进行控制;
所述读取方式包括:虚拟重置读取,所述虚拟重置读取为虚拟读指针和虚拟读偏移重置到实际读指针和实际读偏移对应位置的方式;
所述根据读取方式,确定与所述读取方式对应的接口信号,包括:
当所述读取方式为虚拟重置读取时,确定与所述读取方式对应的接口信号包括虚拟读指针;
所述对与所述读取方式对应的接口信号进行控制,包括:
从虚拟读指针指向的FIFO存储单元的起始位置开始读取,当读取结束时,将所述虚拟读指针指向的位置重置到实际读指针指向的位置;
或者,
所述根据读取方式,确定与所述读取方式对应的接口信号,包括:
当所述读取方式为虚拟重置读取时,确定与所述读取方式对应的接口信号包括虚拟读指针和虚拟读偏移;
所述对与所述读取方式对应的接口信号进行控制,包括:
从虚拟读偏移指向位置开始读取,当读取结束时,将所述虚拟读指针指向的位置重置到实际读指针指向的位置;
将所述虚拟读偏移指向的位置重置到实际读偏移指向的位置。
2.根据权利要求1所述的方法,其特征在于,所述对与所述读取方式对应的接口信号进行控制之后,还包括:
根据实际读指针指向的位置,释放FIFO存储空间。
3.根据权利要求1或2所述的方法,其特征在于,所述对与 所述读取方式对应的接口信号进行控制之后,还包括:
根据实际读指针指向的位置和实际读偏移指向的位置,释放FIFO存储空间。
4.一种读取数据的控制装置,其特征在于,包括:
处理模块,用于根据读取方式,确定与所述读取方式对应的接口信号;
控制模块,用于对所述与所述读取方式对应的接口信号进行控制;
所述读取方式包括:虚拟重置读取,所述虚拟重置读取为虚拟读指针和虚拟读偏移重置到实际读指针和实际读偏移对应位置的方式;
所述处理模块具体用于当所述读取方式为虚拟重置读取时,确定与所述读取方式对应的接口信号包括虚拟读指针;
所述控制模块具体用于从虚拟读指针指向的FIFO存储单元的起始位置开始读取,当读取结束时,将所述虚拟读指针指向的位置重置到实际读指针指向的位置;
或者,
所述处理模块具体用于当所述读取方式为虚拟重置读取时,确定与所述读取方式对应的接口信号包括虚拟读指针和虚拟读偏移;
所述控制模块具体用于从虚拟读偏移指向位置开始读取,当读取结束时,将所述虚拟读指针指向的位置重置到实际读指针指向的位置;
将所述虚拟读偏移指向的位置重置到实际读偏移指向的位置。
5.根据权利要求4所述的装置,所述控制模块还用于根据实际读指针指向的位置,释放FIFO存储空间。
6.根据权利要求4或5所述的装置,其特征在于,所述控制模块还用于根据实际读指针指向的位置和实际读偏移指向的位置,释放FIFO存储空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510068000.XA CN104636087B (zh) | 2015-02-09 | 2015-02-09 | 读取数据的控制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510068000.XA CN104636087B (zh) | 2015-02-09 | 2015-02-09 | 读取数据的控制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104636087A CN104636087A (zh) | 2015-05-20 |
CN104636087B true CN104636087B (zh) | 2018-06-26 |
Family
ID=53214898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510068000.XA Expired - Fee Related CN104636087B (zh) | 2015-02-09 | 2015-02-09 | 读取数据的控制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104636087B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783403A (zh) * | 2017-11-10 | 2019-05-21 | 深圳超级数据链技术有限公司 | 读取数据的方法、装置和数据处理器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1949163A (zh) * | 2006-11-30 | 2007-04-18 | 北京中星微电子有限公司 | 一种虚拟先入先出内存的实现方法和控制装置 |
CN101063978A (zh) * | 2006-04-28 | 2007-10-31 | 联发科技股份有限公司 | 文件***管理装置 |
CN103902471A (zh) * | 2012-12-28 | 2014-07-02 | 华为技术有限公司 | 数据缓存处理方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6269413B1 (en) * | 1998-10-30 | 2001-07-31 | Hewlett Packard Company | System with multiple dynamically-sized logical FIFOs sharing single memory and with read/write pointers independently selectable and simultaneously responsive to respective read/write FIFO selections |
US6381659B2 (en) * | 1999-01-19 | 2002-04-30 | Maxtor Corporation | Method and circuit for controlling a first-in-first-out (FIFO) buffer using a bank of FIFO address registers capturing and saving beginning and ending write-pointer addresses |
US7467242B2 (en) * | 2003-05-13 | 2008-12-16 | Via Technologies, Inc. | Method and system for dynamic FIFO flow control |
-
2015
- 2015-02-09 CN CN201510068000.XA patent/CN104636087B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101063978A (zh) * | 2006-04-28 | 2007-10-31 | 联发科技股份有限公司 | 文件***管理装置 |
CN1949163A (zh) * | 2006-11-30 | 2007-04-18 | 北京中星微电子有限公司 | 一种虚拟先入先出内存的实现方法和控制装置 |
CN103902471A (zh) * | 2012-12-28 | 2014-07-02 | 华为技术有限公司 | 数据缓存处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104636087A (zh) | 2015-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104981873B (zh) | 在发送写入数据到存储器的同时从存储器读取数据的***和方法 | |
CN105608027B (zh) | 非易失存储设备和访问非易失存储设备的方法 | |
CN104781801B (zh) | 使固态驱动器配置成采用存储模式或存储器模式操作的技术 | |
CN103019970B (zh) | 存储装置及其控制方法 | |
CN103366794B (zh) | 用于减少接脚数内存总线接口的装置及方法 | |
TW201413453A (zh) | 資料儲存裝置以及快閃記憶體控制方法 | |
CN102915274A (zh) | 存储装置 | |
CN107111452A (zh) | 应用于计算机***的数据迁移方法和装置、计算机*** | |
CN105229592B (zh) | 用于生成用以由于错误而重新访问存储驱动器的非易失性半导体存储器的描述符的装置和方法 | |
CN107291392A (zh) | 一种固态硬盘及其读写方法 | |
CN110211621A (zh) | 闪存中的双向计数器 | |
CN101836194A (zh) | 控制数据信道的优化解决方案 | |
CN113868039A (zh) | 一种测试方法、装置及相关设备 | |
JP2009282923A (ja) | 半導体記憶装置及び不揮発性メモリ | |
CN104657678B (zh) | 应答保护单调计数器、读取方法及计数方法 | |
CN104636087B (zh) | 读取数据的控制方法和装置 | |
CN108765082A (zh) | 一种图书借阅方法、***、设备及计算机可读存储介质 | |
CN117591450B (zh) | 一种数据处理***、方法、设备及介质 | |
US8239637B2 (en) | Byte mask command for memories | |
CN105354153A (zh) | 一种紧耦合异构多处理器数据交换缓存的实现方法 | |
CN108572932A (zh) | 多平面nvm命令融合方法与装置 | |
CN109710547B (zh) | 一种工业物联网中的缓冲内存管理设计与实现方法 | |
CN204462995U (zh) | 一种板载内存加固计算机平台 | |
CN103488597A (zh) | 一种先进先出缓存器及其读写数据的方法 | |
CN103500585B (zh) | 一种用于控制单次可编程存储器的控制电路及其控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180626 Termination date: 20190209 |
|
CF01 | Termination of patent right due to non-payment of annual fee |