一种存储空间的缓冲方法及装置的制造方法

文档序号:10488692阅读:223来源:国知局
一种存储空间的缓冲方法及装置的制造方法
【专利摘要】本发明公开了一种存储空间的缓冲方法,包括:接收数据输入端当前拍输入的待缓冲数据;判断待缓冲数据的个数是否超过当前缓冲行的剩余缓冲个数,待缓冲数据的地址是否与当前缓冲行中的已缓冲数据的地址有冲突;当待缓冲数据的个数不超过当前缓冲行的剩余缓冲个数,且待缓冲数据的地址与当前缓冲行中的已缓冲数据的地址没有冲突时,将待缓冲数据写入当前缓冲行中;否则将待缓冲数据写入下一缓冲行中。通过对缓冲数据的个数和地址进行分析,当待缓冲数据的个数和地址都满足条件时,就将待缓冲数据写入当前缓冲行,这样可以有效地节约存储空间,避免存储空间的浪费,提高了缓冲效率。此外,本发明还公开一种存储空间的缓冲装置。
【专利说明】
一种存储空间的缓冲方法及装置
技术领域
[0001]本发明涉及计算机技术领域,特别是涉及一种存储空间的缓冲方法及装置。
【背景技术】
[0002]随着各行业对计算机性能要求的不断提升,特别是在大型服务器中,多核处理器的研究与应用与日倶增,因此如何在控制成本的前提下提高数据处理的效率以及如何提高多核系统的并行处理能力和实现更高的存储带宽,是今后研究的一个重点。为了解决多核处理器运行过程中可能出现的一致性问题,往往采用缓冲的设计。
[0003]在现有技术中,对于多核系统的多个数据输入端来说,其缓冲方式是同拍数据写入到同一行进行缓冲,当同拍数据写入完成后,写指针发生变化,指向下一行进行缓冲,数据有效寄存器发生相应变化。这种缓冲方式虽然能够保证不同拍数据写入时的顺序性,但是如果同一拍写入的数据过少,就会浪费大量的存储空间。在深度设置不够大的存储体中,代价过大,影响整体存储效率。
[0004]由此可见,如何减小存储空间的浪费,提高存储效率是本领域技术人员亟待解决地问题。

【发明内容】

[0005]本发明的目的是提供一种存储空间的缓冲方法及装置,用于减小存储空间的浪费,提高存储效率。
[0006]为解决上述技术问题,本发明提供一种存储空间的缓冲方法,包括:
[0007]Sll:接收数据输入端当前拍输入的待缓冲数据;
[0008]S12:判断所述待缓冲数据的个数是否超过当前缓冲行的剩余缓冲个数,所述待缓冲数据的地址是否与所述当前缓冲行中的已缓冲数据的地址有冲突;
[0009]S13:当所述待缓冲数据的个数不超过当前缓冲行的剩余缓冲个数,且所述待缓冲数据的地址与所述当前缓冲行中的已缓冲数据的地址没有冲突时,将所述待缓冲数据写入所述当前缓冲行中;
[0010]S14:当所述待缓冲数据的个数超过当前缓冲行的剩余缓冲个数,或所述待缓冲数据的地址与所述当前缓冲行中的已缓冲数据的地址有冲突时,将所述待缓冲数据写入下一缓冲行中;
[0011 ]其中,所述剩余缓冲个数为预设缓冲个数与所述已缓冲数据的个数的差值。
[0012]优选地,所述步骤S12具体包括:
[0013]S120:判断所述待缓冲数据的个数是否超过当前缓冲行的剩余缓冲个数,如果否,进入步骤S121,如果是,进入步骤S14;
[0014]S121:判断所述待缓冲数据的地址与所述当前缓冲行中的已缓冲数据的地址是否冲突,如果否,进入步骤S13,如果是进入步骤S14。
[0015]优选地,所述数据输入端为多路数据输入端。
[0016]优选地,所述多路数据输入端为4路、或所述多路数据输入端为8路、或所述多路数据输入端为16路。
[0017]一种存储空间的缓冲装置,包括:
[0018]接收单元,用于接收数据输入端当前拍输入的待缓冲数据;
[0019]判断单元,用于判断所述待缓冲数据的个数是否超过当前缓冲行的剩余缓冲个数,所述待缓冲数据的地址是否与所述当前缓冲行中的已缓冲数据的地址有冲突;
[0020]缓冲单元,用于当所述待缓冲数据的个数不超过当前缓冲行的剩余缓冲个数,且所述待缓冲数据的地址与所述当前缓冲行中的已缓冲数据的地址没有冲突时,将所述待缓冲数据写入所述当前缓冲行中;当所述待缓冲数据的个数超过当前缓冲行的剩余缓冲个数,或所述待缓冲数据的地址与所述当前缓冲行中的已缓冲数据的地址有冲突时,将所述待缓冲数据写入下一缓冲行中;
[0021 ]其中,所述剩余缓冲个数为预设缓冲个数与所述已缓冲数据的个数的差值。
[0022]优选地,所述判断单元具体包括:
[0023]第一判断子单元,用于判断所述待缓冲数据的个数是否小于当前缓冲行的剩余缓冲个数;
[0024]第二判断子单元,用于判断所述待缓冲数据的地址与所述当前缓冲行中的已缓冲数据的地址是否冲突。
[0025]优选地,所述数据输入端为多路数据输入端。
[0026]优选地,所述多路数据输入端为4路、或所述多路数据输入端为8路、或所述多路数据输入端为16路。
[0027]本发明所提供的存储空间的缓冲方法,通过对缓冲数据的个数和地址进行分析,当待缓冲数据的个数和地址都满足要求时,就将待缓冲数据写入当前缓冲行,这样可以有效地节约存储空间,避免存储空间的浪费,提高了缓冲效率。
【附图说明】
[0028]为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0029]图1为本发明提供的一种存储空间的缓冲方法的流程图;
[0030]图2为本发明提供的另一种存储空间的缓冲方法的流程图;
[0031]图3为本发明提供的一种存储空间的缓冲装置的结构图;
[0032]图4为本发明提供的另一种存储空间的缓冲装置的结构图。
【具体实施方式】
[0033]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
[0034]本发明的核心是提供一种存储空间的缓冲方法及装置。
[0035]为了使本技术领域的人员更好地理解本发明方案,下面结合附图和【具体实施方式】对本发明作进一步的详细说明。
[0036]图1为本发明提供的一种存储空间的缓冲方法的流程图。如图1所示,存储空间的缓冲方法包括:
[0037]Sll:接收数据输入端当前拍输入的待缓冲数据。
[0038]S12:判断待缓冲数据的个数是否超过当前缓冲行的剩余缓冲个数,待缓冲数据的地址是否与当前缓冲行中的已缓冲数据的地址有冲突。
[0039]S13:当待缓冲数据的个数不超过当前缓冲行的剩余缓冲个数,且待缓冲数据的地址与当前缓冲行中的已缓冲数据的地址没有冲突时,将待缓冲数据写入当前缓冲行中。
[0040]S14:当待缓冲数据的个数超过当前缓冲行的剩余缓冲个数,或待缓冲数据的地址与当前缓冲行中的已缓冲数据的地址有冲突时,将待缓冲数据写入下一缓冲行中。
[0041 ]其中,剩余缓冲个数为预设缓冲个数与已缓冲数据的个数的差值。
[0042]在具体实施中,步骤Sll是接收数据输入当前拍输入的待缓冲数据,这些数据还没有进入到缓冲行中,可以理解的是,当前拍可以是第一拍,也可以是第二拍,当然也可以是第三拍等。
[0043]如果当前拍是第一拍,那么当前缓冲行就没有缓冲数据,换句话说当前缓冲行的剩余缓冲个数与预设缓冲个数是相同的。
[0044]如果当前拍是第二拍,那么当前缓冲行有缓冲数据,即当前缓冲行的数据是第一拍输入的数据。
[0045]如果当前拍是第三拍,那么当前缓冲行有两种情况,一种情况是当前缓冲行的数据是第一拍输入的数据和第二拍输入的数据;另一种情况是当前缓冲行的数据是第二拍输入的数据。
[0046]综上,如果当前拍不是第一拍,则当前缓冲行至少包含有当前拍的前一拍输入的数据。
[0047 ]在步骤S12中,是判断待缓冲数据的个数是否超过当前缓冲行剩余缓冲个数。例如预设缓冲个数为10,当前缓冲行中已缓冲数据的个数为6个,那么剩余缓冲个数就是4个。如果当前待缓冲数据的个数为3个,那么待缓冲数据的个数就没有超过当前缓冲行剩余缓冲个数。
[0048]如果当前缓冲行中的已缓冲数据包括两个部分,一部分是第一拍输入的数据和第二拍输入的数据,那么第一拍输入的数据和第二拍输入的数据就构成了已缓冲数据,这两部分数据已经在当前缓冲行中写入。如果待缓冲数据的地址与这两部分已缓冲数据的地址都不冲突,那么待缓冲数据的地址就与已缓冲数据的地址不冲突,只要有一部分冲突,那么待缓冲数据的地址就与已缓冲数据的地址冲突。
[0049]通过步骤S12的判断就可以得出,待缓冲数据是否可以写入到当前缓冲行中。如果待缓冲数据同时满足上述两个条件,则将待缓冲数据写入到当前缓冲行,如果待缓冲数据不能同时满足上述两个条件,则将待缓冲数据写入到当前缓冲行的下一缓冲行。
[0050]可以理解的是,当再接收一拍待缓冲数据时,下一缓冲行就成为当前缓冲行。
[0051]本实施例提供的存储空间的缓冲方法,通过对缓冲数据的个数和地址进行分析,当待缓冲数据的个数和地址都满足要求时,就将待缓冲数据写入当前缓冲行,这样可以有效地节约存储空间,避免存储空间的浪费,提高了缓冲效率。
[0052]图2为本发明提供的另一种存储空间的缓冲方法的流程图。如图2所示,步骤S12具体包括:
[0053]S120:判断待缓冲数据的个数是否超过当前缓冲行的剩余缓冲个数,如果否,进入步骤S121,如果是,进入步骤S14;
[0054]S121:判断待缓冲数据的地址与当前缓冲行中的已缓冲数据的地址是否冲突,如果否,进入步骤S13,如果是进入步骤S14。
[0055]在上一实施例的基础上,本实施例限定了步骤S12的具体实施步骤,当接收到待缓冲数据时,首先要判断待缓冲数据的个数是否超过剩余缓冲个数,如果是,则不需要判断地址是否冲突,直接进入步骤S14即可。只有在待缓冲数据的个数不超过当前缓冲行的剩余缓冲个数时,才进入步骤S121。步骤S121是判断待缓冲数据的地址与当前缓冲行中的已缓冲数据的地址是否冲突。如果否,说明待缓冲数据可以写入至当前缓冲行,如果是,说明待缓冲数据不能写入当前缓冲行,需要重新写入当前缓冲行的下一缓冲行。
[0056]作为一种优选的实施方式,数据输入端为多路数据输入端。
[0057]可以理解的是,本发明中提出的方式可以适用数据输入端为单路的数据输入端,也可以是多路的数据输入端。当数据输入端为单路时,存储量较小,本发明提出的方法的优势并不明显。但是当数据输入端为多路时,存储量非常大,本发明提出的方法的优势就很明显。
[0058]作为一种优选的实施方式,多路数据输入端为4路、或多路数据输入端为8路、或多路数据输入端为16路。
[0059]图3为本发明提供的一种存储空间的缓冲装置的结构图。存储空间的缓冲装置包括:
[0060]接收单元11,用于接收数据输入端当前拍输入的待缓冲数据;
[0061]判断单元12,用于判断待缓冲数据的个数是否超过当前缓冲行的剩余缓冲个数,待缓冲数据的地址是否与当前缓冲行中的已缓冲数据的地址有冲突;
[0062 ]缓冲单元13,用于当待缓冲数据的个数不超过当前缓冲行的剩余缓冲个数,且待缓冲数据的地址与当前缓冲行中的已缓冲数据的地址没有冲突时,将待缓冲数据写入当前缓冲行中;当待缓冲数据的个数超过当前缓冲行的剩余缓冲个数,或待缓冲数据的地址与当前缓冲行中的已缓冲数据的地址有冲突时,将待缓冲数据写入下一缓冲行中;
[0063]其中,剩余缓冲个数为预设缓冲个数与已缓冲数据的个数的差值。
[0064]在具体实施中,接收单元11是接收数据输入当前拍输入的待缓冲数据,这些数据还没有进入到缓冲行中,可以理解的是,当前拍可以是第一拍,也可以是第二拍,当然也可以是第二拍等。
[0065]如果当前拍是第一拍,那么当前缓冲行就没有缓冲数据,换句话说当前缓冲行的剩余缓冲个数与预设缓冲个数是相同的。
[0066]如果当前拍是第二拍,那么当前缓冲行有缓冲数据,即当前缓冲行的数据是第一拍输入的数据。
[0067]如果当前拍是第三拍,那么当前缓冲行有两种情况,一种情况是当前缓冲行的数据是第一拍输入的数据和第二拍输入的数据;另一种情况是当前缓冲行的数据是第二拍输入的数据。
[0068]综上,如果当前拍不是第一拍,则当前缓冲行至少包含有当前拍的前一拍输入的数据。
[0069]在判断单元12中,是判断待缓冲数据的个数是否超过当前缓冲行剩余缓冲个数。例如预设缓冲个数为10,当前缓冲行中已缓冲数据的个数为6个,那么剩余缓冲个数就是4个。如果当前待缓冲数据的个数为3个,那么待缓冲数据的个数就没有超过当前缓冲行剩余缓冲个数。
[0070]如果当前缓冲行中的已缓冲数据包括两个部分,一部分是第一拍输入的数据和第二拍输入的数据,那么第一拍输入的数据和第二拍输入的数据就构成了已缓冲数据,这两部分数据已经在当前缓冲行中写入。如果待缓冲数据的地址与这两部分已缓冲数据的地址都不冲突,那么待缓冲数据的地址就与已缓冲数据的地址不冲突,只要有一部分冲突,那么待缓冲数据的地址就与已缓冲数据的地址冲突。
[0071]通过判断单元12的判断就可以得出,待缓冲数据是否可以写入到当前缓冲行中。如果待缓冲数据同时满足上述两个条件,则将待缓冲数据写入到当前缓冲行,如果待缓冲数据不能同时满足上述两个条件,则将待缓冲数据写入到当前缓冲行的下一缓冲行。
[0072]可以理解的是,当再接收一拍待缓冲数据时,下一缓冲行就成为当前缓冲行。
[0073]本实施例提供的存储空间的缓冲装置,通过对缓冲数据的个数和地址进行分析,当待缓冲数据的个数和地址都满足要求时,就将待缓冲数据写入当前缓冲行,这样可以有效地节约存储空间,避免存储空间的浪费,提高了缓冲效率。
[0074]图4为本发明提供的另一种存储空间的缓冲装置的结构图。作为一种优选地实施方式,判断单元12具体包括:
[0075]第一判断子单元120,用于判断待缓冲数据的个数是否小于当前缓冲行的剩余缓冲个数;
[0076]第二判断子单元121,用于判断待缓冲数据的地址与当前缓冲行中的已缓冲数据的地址是否冲突。
[0077]作为一种优选地实施方式,数据输入端为多路数据输入端。
[0078]作为一种优选地实施方式,多路数据输入端为4路、或多路数据输入端为8路、或多路数据输入端为16路。
[0079]由于装置部分的实施例与方法部分的实施例的实施过程相对应,因此,装置部分的实施例请参见方法部分的实施例,本实施例暂不赘述。
[0080]以上对本发明所提供的存储空间的缓冲方法及装置进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
[0081]专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0082]结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(R0M)、电可编程R0M、电可擦除可编程R0M、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
【主权项】
1.一种存储空间的缓冲方法,其特征在于,包括: S11:接收数据输入端当前拍输入的待缓冲数据; S12:判断所述待缓冲数据的个数是否超过当前缓冲行的剩余缓冲个数,所述待缓冲数据的地址是否与所述当前缓冲行中的已缓冲数据的地址有冲突; S13:当所述待缓冲数据的个数不超过当前缓冲行的剩余缓冲个数,且所述待缓冲数据的地址与所述当前缓冲行中的已缓冲数据的地址没有冲突时,将所述待缓冲数据写入所述当前缓冲行中; S14:当所述待缓冲数据的个数超过当前缓冲行的剩余缓冲个数,或所述待缓冲数据的地址与所述当前缓冲行中的已缓冲数据的地址有冲突时,将所述待缓冲数据写入下一缓冲行中; 其中,所述剩余缓冲个数为预设缓冲个数与所述已缓冲数据的个数的差值。2.根据权利要求1所述的存储空间的缓冲方法,其特征在于,所述步骤S12具体包括: S120:判断所述待缓冲数据的个数是否超过当前缓冲行的剩余缓冲个数,如果否,进入步骤S121,如果是,进入步骤S14; S121:判断所述待缓冲数据的地址与所述当前缓冲行中的已缓冲数据的地址是否冲突,如果否,进入步骤S13,如果是进入步骤S14。3.根据权利要求1所述的存储空间的缓冲方法,其特征在于,所述数据输入端为多路数据输入端。4.根据权利要求3所述的存储空间的缓冲方法,其特征在于,所述多路数据输入端为4路、或所述多路数据输入端为8路、或所述多路数据输入端为16路。5.一种存储空间的缓冲装置,其特征在于,包括: 接收单元,用于接收数据输入端当前拍输入的待缓冲数据; 判断单元,用于判断所述待缓冲数据的个数是否超过当前缓冲行的剩余缓冲个数,所述待缓冲数据的地址是否与所述当前缓冲行中的已缓冲数据的地址有冲突; 缓冲单元,用于当所述待缓冲数据的个数不超过当前缓冲行的剩余缓冲个数,且所述待缓冲数据的地址与所述当前缓冲行中的已缓冲数据的地址没有冲突时,将所述待缓冲数据写入所述当前缓冲行中;当所述待缓冲数据的个数超过当前缓冲行的剩余缓冲个数,或所述待缓冲数据的地址与所述当前缓冲行中的已缓冲数据的地址有冲突时,将所述待缓冲数据写入下一缓冲行中; 其中,所述剩余缓冲个数为预设缓冲个数与所述已缓冲数据的个数的差值。6.根据权利要求5所述的存储空间的缓冲装置,其特征在于,所述判断单元具体包括: 第一判断子单元,用于判断所述待缓冲数据的个数是否小于当前缓冲行的剩余缓冲个数; 第二判断子单元,用于判断所述待缓冲数据的地址与所述当前缓冲行中的已缓冲数据的地址是否冲突。7.根据权利要求5所述的存储空间的缓冲装置,其特征在于,所述数据输入端为多路数据输入端。8.根据权利要求7所述的存储空间的缓冲装置,其特征在于,所述多路数据输入端为4路、或所述多路数据输入端为8路、或所述多路数据输入端为16路。
【文档编号】G06F3/06GK105843561SQ201610262010
【公开日】2016年8月10日
【申请日】2016年4月25日
【发明人】马志超, 李拓, 童元满
【申请人】浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1