一种数据缓存方法及一种缓冲存储器的制造方法
【技术领域】
[0001]本发明涉及计算机技术领域,特别涉及一种数据缓存方法及一种缓冲存储器。
【背景技术】
[0002]随着计算机技术的快速发展,单核处理器受性能的限制已不能满足人们日益增多的需求,为了实现更高的性能需要,多核处理器的研宄与应用与日俱增。如何提高多核系统的并行处理能力和实现更高的存储带宽,越来越受到重视。在多核系统运行中,每个核心是协同处理的,对于每个核心产生的共享数据,需要进行缓冲再处理,否则会出现乱序,一致性的问题。为了避免产生这些问题,在内核与存储体、外设之间使用共享存储端的结构,它能够起到数据缓冲与处理的作用。
[0003]现有技术中,缓冲存储器中通过端口接收外部输入源发来的数据,将同一拍的数据存储在同一个缓存单元中,将不同拍的数据存储在不同的缓存单元中。
[0004]通过上述描述可见,现有技术的缓冲存储器在一拍的数据比较少时,也要通过一个缓存单元来存储,浪费了存储空间。
【发明内容】
[0005]有鉴于此,本发明提供了一种数据缓存方法及一种缓冲存储器,能够节省存储空间。
[0006]一方面,本发明提供了一种数据缓存方法,包括:
[0007]S1:接收输入源发来的缓存数据;
[0008]S2:根据当前缓存单元中存储的缓存数据及当前拍的缓存数据,判断当前拍的缓存数据是否满足归并条件,如果是,则执行步骤S3,否则,将下一个空闲缓存单元作为当前缓存单元,执行步骤S3 ;
[0009]S3:将当前拍的缓存数据存储到当前缓存单元中,返回步骤SI。
[0010]进一步地,在所述SI之前,还包括:预先设置写数据的缓存单元和读数据的缓存单元,其中,缓存单元包括:写数据的缓存单元、读数据的缓存单元,所述缓存数据包括??写数据、读数据;
[0011]所述S2中,所述将下一个空闲缓存单元作为当前缓存单元,包括:将下一个空闲写数据的缓存单元作为当前写数据的缓存单元,将下一个空闲读数据的缓存单元作为当前读数据的缓存单元;
[0012]所述S3,包括:将当前拍的缓存数据中的写数据存储到当前写数据的缓存单元中,将当前拍的缓存数据中的读数据存储到当前读数据的缓存单元中。
[0013]进一步地,还包括:
[0014]所述S2,包括:
[0015]B1:判断当前缓存单元中存储的缓存数据及当前拍的缓存数据是否都满足读数据和写数据均小于等于第一预设值,如果是,则执行步骤B2,否则,判定当前拍的缓存数据不满足归并条件;
[0016]B2:获取当前拍的缓存数据的输入源的地址和当前缓存单元中存储的缓存数据的输入源的地址,判断将当前拍的缓存数据的所有输入源的地址与当前缓存单元中存储的缓存数据的所有输入源的地址中,是否存在相同的地址,如果是,则判定当前拍的数据不满足归并条件,否则,判定当前拍的数据满足归并条件。
[0017]进一步地,所述S2,包括:
[0018]Al:判断当前拍的缓存数据的数量与当前缓存单元中存储的缓存数据的数量之和是否小于等于第二预设值,如果是,则执行步骤A2,否则,判定当前拍的缓存数据不满足归并条件;
[0019]A2:获取当前拍的缓存数据的输入源的地址和当前缓存单元中存储的缓存数据的输入源的地址,判断将当前拍的缓存数据存储到当前缓存单元中是否会造成地址访问顺序错误,如果是,则判定当前拍的数据不满足归并条件,否则,判定当前拍的数据满足归并条件。
[0020]进一步地,还包括:预先设置用于指示写位置的写指针和用于指示读位置的读指针;
[0021]实时判断写指针与读指针的差值的绝对值是否小于等于第三预设值,当判断结果为是时,向所述输入源发送停止发送缓存数据的信号,以使所述输入源停止发送缓存数据,当判断结果为否时,不向所述输入源发送停止发送缓存数据的信号,以使所述输入源继续发送缓存数据;
[0022]其中,由缓存单元组成的缓存体是先入先出的结构。
[0023]另一方面,本发明提供了一种缓冲存储器,包括:
[0024]接收单元,用于接收输入源发来的缓存数据;
[0025]第一判断单元,用于根据当前缓存单元中存储的缓存数据及当前拍的缓存数据,判断当前拍的缓存数据是否满足归并条件,当判断结果为是时,通知存储单元,当判断结果为否时,将下一个空闲缓存单元作为当前缓存单元,通知存储单元;
[0026]存储单元,用于将当前拍的缓存数据存储到当前缓存单元中,通知接收单元。
[0027]进一步地,还包括:
[0028]第一设置单元,用于设置写数据的缓存单元和读数据的缓存单元,其中,缓存单元包括:写数据的缓存单元、读数据的缓存单元,所述缓存数据包括:写数据、读数据;
[0029]所述第一判断单元,用于将下一个空闲写数据的缓存单元作为当前写数据的缓存单元,将下一个空闲读数据的缓存单元作为当前读数据的缓存单元;
[0030]所述存储单元,用于将当前拍的缓存数据中的写数据存储到当前写数据的缓存单元中,将当前拍的缓存数据中的读数据存储到当前读数据的缓存单元中。
[0031]进一步地,所述第一判断单元,包括:第一判断子单元、第二判断子单元;
[0032]第一判断子单元,用于判断当前缓存单元中存储的缓存数据及当前拍的缓存数据是否都满足读数据和写数据均小于等于第一预设值,当判断结果为是时,通知所述第二判断子单元,当判断结果为否时,判定当前拍的缓存数据不满足归并条件;
[0033]第二判断子单元,用于获取当前拍的缓存数据的输入源的地址和当前缓存单元中存储的缓存数据的输入源的地址,判断将当前拍的缓存数据的所有输入源的地址与当前缓存单元中存储的缓存数据的所有输入源的地址中,是否存在相同的地址,当判断结果为是时,则判定当前拍的数据不满足归并条件,当判断结果为否时,判定当前拍的数据满足归并条件。
[0034]进一步地,所述第一判断单元,包括:第三判断子单元、第四判断子单元;
[0035]所述第三判断子单元,用于判断当前拍的缓存数据的数量与当前缓存单元中存储的缓存数据的数量之和是否小于等于第二预设值,当判断结果为是时,通知所述第四判断子单元,当判断结果为否时,判定当前拍的缓存数据不满足归并条件;
[0036]所述第四判断子单元,用于获取当前拍的缓存数据的输入源的地址和当前缓存单元中存储的缓存数据的输入源的地址,判断将当前拍的缓存数据存储到当前缓存单元中是否会造成地址访问顺序错误,当判断结果为是时,则判定当前拍的数据不满足归并条件,当判断结果为否时,判定当前拍的数据满足归并条件。
[0037]进一步地,所述缓冲存储器包括:缓存体;所述缓存体包括:所述缓存单元;所述缓存体是先入先出的结构;
[0038]还包括:第二设置单元,用于设置用于指示写位置的写指针和用于指示读位置的读指针;
[0039]第二判断单元,用于实时判断写指针与读指针的差值的绝对值是否小于等于第三预设值,当判断结果为是时,向所述输入源发送停止发送缓存数据的信号,以使所述输入源停止发送缓存数据,当判断结果为否时,不向所述输入源发送停止发送缓存数据的信号,以使所述输入源继续发送缓存数据;
[0040]和/ 或,
[0041]所述缓冲存储器的缓存体是寄存器文件的结构,所述缓存单元包括寄存器;
[0042]和/ 或,
[0043]还包括:状态监控单元,用于通过有效寄存器来记录每个缓存单元的状态,在当前的缓存单元能够存储接收到的缓存数据时,将当前的缓存单元标记为空闲,否则,标记为不空闲。
[0044]本发明提供了一种数据缓存方法及一种缓冲存储器,在存储接到的缓存数据之前,确定当前拍的缓存数据是否满足归并条件,如果满足归并条件则可以将当前拍的缓存数据与之前拍的缓存数据存储到同一个缓存单元中,不用将不同拍的数据存储在不同的缓存单元中,节省了存储空间。
【附图说明】
[0045]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0046]图1是