发明内容
本发明要解决的技术问题是,提供一种数据缓存的方法、装置及系统,提升数据存储设备的存储容量和访问速度。
本发明采用的技术方案是,所述数据缓存的方法,包括以下具体步骤:
步骤一、统一对至少两个存储设备中的存储空间划分存储块并编号;
步骤二、响应数据写入命令时,根据编址方案将数据存入所述存储空间;
步骤三、响应数据读出命令时,根据所述编址方案将数据从所述存储空间读出;
步骤四、对从所述存储空间中读出的数据重新排序后输出。
所述步骤二中根据编址方案将数据存入所述存储空间包括:按照存储设备读写速度由快到慢的顺序选择存储设备,并根据编址方案为数据分配存储块。
所述步骤三中响应数据读出命令时,在根据所述编址方案将数据从所述存储空间读出具体包括:
在设定的响应数据读出命令的单位时间内,根据所述编址方案将所述数据读出命令送往所述至少两个存储设备,并对所述数据读出命令统一顺序编号并分别计数。
所述步骤三中响应数据读出命令时,在根据所述编址方案将数据从所述存储空间读出具体包括:
设定的响应数据读出命令的单位个数之内,根据所述编址方案将所述数据读出命令送往所述至少两个存储设备,并对送往所述至少两个存储设备的所述数据读出命令统一顺序编号并分别计数。
所述步骤四中对从所述存储空间中读出的数据重新排序后输出包括:
根据数据读出命令的编号,对从所述至少两个存储设备的存储空间中读出的数据按照所对应的数据读出命令的先后顺序排序后输出。
作为一种优选的技术方案,所述数据缓存的方法在步骤四之后进一步包括:
统一对所述至少两个存储设备中的存储空间进行回收。
本发明还提供一种数据缓存的装置,包括:
存储块管理模块,用于管理至少两个存储设备中的存储空间;
写入控制模块,用于响应数据写入命令,对所述至少两个存储设备执行写入操作;
读出控制模块,用于响应数据读出命令,对所述至少两个存储设备执行读出操作。
所述存储管理模块进一步用于统一对所述至少两个存储设备中的存储空间划分存储块并编号;
当所述读出控制模块对所述至少两个存储设备执行读出操作后,对所述至少两个存储设备中的存储空间进行回收。
所述写入控制模块进一步用于按照存储设备读写速度由快到慢的顺序选择存储设备,并根据编址方案为数据分配存储块。
所述读出控制模块进一步包括:读出命令管理器和读出数据管理器;
所述读出命令管理器包括:
读出命令响应控制器,用于控制响应数据读出命令的单位个数或者响应数据读出命令的单位时间;
分配器,用于根据所述编址方案将所述数据读出命令送往所述至少两个存储设备;
第一读出命令计数器,用于对送往第一存储设备的所述数据读出命令计数;
第二读出命令计数器,用于对送往第二存储设备的所述数据读出命令计数;
编号模块,用于对送往所述至少两个存储设备的所述数据读出命令统一顺序编号;
所述读出数据管理器包括:
信息缓存模块,用于存储送往第一存储设备的所述数据读出命令计数值,送往第二存储设备的所述数据读出命令计数值,以及送往所述至少两个存储设备的所述数据读出命令的编号;
数据缓存模块,用于根据送往所述至少两个存储设备的所述数据读出命令的各计数值,从所述至少两个存储设备的存储空间中读出所述数据读出命令对应的数据,送往数据重排模块;
数据重排模块,用于对数据缓存模块送来的数据,按照与所述数据读出命令的编号一致的顺序排序后输出。
所述读出数据管理器进一步包括:
许可管理模块,用于根据数据缓存模块的容量和数据重排模块的实际工作情况通知所述读出命令管理器调整对数据读出命令的响应状态。
本发明还提供一种数据缓存的系统,数据缓存的装置同时与至少两个存储设备相连,所述装置包括:
存储块管理模块,用于管理存储设备中的存储空间;
写入控制模块,用于对所述至少两个存储设备执行写入操作;
读出控制模块,用于对所述至少两个存储设备执行读出操作。
所述至少两个存储设备包括至少一个片外存储设备。
采用上述技术方案,本发明至少具有下列优点:
本发明所述数据缓存的方法、装置及系统,该方法包括统一对至少两个存储设备中的存储空间划分存储块并编号;响应数据写入命令时,根据编址方案将数据存入所述至少两个存储设备的存储空间;响应数据读出命令时,根据所述编址方案将数据从所述存储空间读出;对读出的数据重新排序后输出。在本发明的技术方案中,对所述至少两个存储设备统一管理,共同配合使用,提升数据存储设备的存储容量和访问速度。由于对从所述至少两个存储空间中读出的数据根据其对应的数据读出命令的编号重新排序之后再输出,保证了输出数据顺序的正确性。
具体实施方式
为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明提出的所述数据缓存的方法、装置及系统,详细说明如后。
本发明第一实施例,一种数据缓存的方法,如图1所示,包括以下具体步骤:
步骤S101、统一对片内RAM和片外SDRAM中的存储空间划分存储块并为存储块编号,每个存储块的编号是唯一的。
步骤S102、响应数据写入命令时,按照存储设备的读写速度由快到慢的顺序选择存储设备,即按照先片内RAM后片外SDRAM的顺序选择存储设备,并根据编址方案为数据分配存储块,具体的,如果片内RAM中的存储空间没有耗尽,并且满足设定的其他条件,比如数据的长度、数据的类型等,则优先为数据分配片内RAM的存储块,否则为数据分配片外SDRAM的存储块。
需要说明的是,本发明不排除按照先片外SDRAM后片内RAM的顺序,根据编址方案为数据分配存储块的情况,只是将按照存储设备读写速度由快到慢的顺序选择存储设备为数据分配存储块作为优选的实施方式。另外,由于编址方案是存储设备的响应读写命令时现有的技术内容,本发明并不对具体的编址方式做限定,故此处不详述;
步骤S103、响应数据读出命令时,由于数据读出命令包含有地址信息,在设定的响应数据读出命令的单位时间TC内,根据编址方案将数据读出命令送往片内RAM和片外SDRAM,并对数据读出命令统一顺序编号并分别计数,当达到设定的响应数据读出命令的单位时间TC时,暂停响应数据读出命令。具体的,将数据读出命令编号标记为Seq,Seq从零开始递增,将送往片内RAM的数据读出命令的计数值标记为N1,将送往片外SDRAM的数据读出命令的计数值标记为N2。
步骤S104、根据送往片内RAM的数据读出命令的计数值N1从片内RAM的存储空间中读出N1个数据读出命令对应的数据,根据送往片外SDRAM的数据读出命令的计数值N2从片外SDRAM的存储空间中读出N2个数据读出命令对应的数据。
步骤S105、按照数据读出命令的编号,对从片内RAM和片外SDRAM的存储空间中读出的数据从小到大排序后输出。这一排序的顺序即为数据读出命令的先后顺序。
步骤S106、统一对片内RAM和片外SDRAM中已输出数据的存储空间进行回收。
步骤S107、判断是否所有数据读出命令都响应完毕,若是,则流程结束,否则跳转步骤S103。
本发明第二实施例,一种数据缓存的方法,如图2所示,包括:
步骤S201、统一对片内RAM和片外SRAM中的存储空间划分存储块并为存储块编号,每个存储块的编号是唯一的。
步骤S202、响应数据写入命令时,按照存储设备读写速度由快到慢的顺序选择存储设备,即按照先片内RAM后片外SRAM的顺序选择存储设备,并根据编址方案为数据分配存储块,具体的,如果片内RAM中的存储空间没有耗尽,并且满足设定的其他条件,比如数据的长度、数据的类型等,则优先为数据分配片内RAM的存储块,否则为数据分配片外SRAM的存储块。
需要说明的是,本发明不排除按照先片外SRAM后片内RAM的顺序,根据编址方案为数据分配存储块的情况,只是将按照先片内RAM后片外SRAM的顺序为数据分配存储块作为优选的实施方式。另外,由于编址方案是存储设备的响应读写命令时现有技术的内容,本发明并不对具体的编址方式做限定,故此处不详述;
步骤S203、响应数据读出命令时,由于数据读出命令包含有地址信息,设定的响应数据读出命令单位个数TM之内根据编址方案将数据读出命令送往片内RAM和片外SRAM,并对数据读出命令统一顺序编号并分别计数,当达到设定的响应数据读出命令单位个数TM时,暂停响应数据读出命令。具体的,将数据读出命令编号标记为Seq,Seq从零开始递增,将送往片内RAM的数据读出命令的计数值标记为N1,将送往片外SRAM的数据读出命令的计数值标记为N2。
步骤S204、根据送往片内RAM的数据读出命令的计数值N1从片内RAM的存储空间中读出N1个数据读出命令对应的数据,根据送往片外SRAM的数据读出命令的计数值N2从片外SRAM的存储空间中读出N2个数据读出命令对应的数据。
步骤S205、按照数据读出命令的编号,对从片内RAM和片外SRAM的存储空间中读出的数据从大到小排序后输出。这一排序的顺序即为数据读出命令的先后顺序。
步骤S206、统一对片内RAM和片外SRAM中已输出数据的存储空间进行回收。
步骤S207、判断是否所有数据读出命令都响应完毕,若是,则流程结束,否则跳转步骤S203。
本发明第三实施例,一种数据缓存的装置,如图3所示,包括:
存储块管理模块,用于管理片内RAM和片外SDRAM中的存储空间,具体的,包括对片内RAM和片外SDRAM中的存储空间划分存储块并为存储块编号,每个存储块编号是唯一的;当读出控制模块对片内RAM和片外SDRAM执行读出操作后,统一对片内RAM和片外SDRAM中的存储空间进行回收。
写入控制模块,用于响应数据写入命令,对片内RAM和片外SDRAM执行写入操作,具体的,根据编址方案按照存储设备读写速度由快到慢的顺序选择存储设备,并根据编址方案为数据分配存储块。
读出控制模块,用于响应数据读出命令,对片内RAM和片外SDRAM执行读出操作。如图4所示,读出控制模块进一步包括:读出命令管理器和读出数据管理器;
读出命令管理器包括:
读出命令响应控制器,用于控制响应数据读出命令的单位时间TC,TC与数据缓存模块的容量大小有关,因此,可以预先根据数据缓存模块的容量大小设置响应数据读出命令的单位时间TC;
分配器,用于根据所述编址方案将所述数据读出命令送往片内RAM和片外SDRAM;
第一读出命令计数器,用于对送往片内RAM的所述数据读出命令计数,计数值记为N1;
第二读出命令计数器,用于对送往片外SDRAM的所述数据读出命令计数,计数值记为N2;
编号模块,用于对送往片内RAM和片外SDRAM的所述数据读出命令统一顺序编号,编号记为Seq,Seq从零开始递增;
读出数据管理器包括:
信息缓存模块,用于存储送往片内RAM的所述数据读出命令计数值N1,送往片外SDRAM的所述数据读出命令计数值N2,以及送往片内RAM和片外SDRAM的所述数据读出命令的编号Seq;
数据缓存模块,用于根据送往片内RAM的数据读出命令的计数值N1从片内RAM的存储空间中读出N1个数据读出命令对应的数据,根据送往片外SDRAM的数据读出命令的计数值N2从片外SDRAM的存储空间中读出N2个数据读出命令对应的数据,送往数据重排模块;
数据重排模块,用于对数据缓存模块送来的数据,按照所述数据读出命令的编号从小到大排序后输出。这一排序的顺序即为数据读出命令的先后顺序。
可选的,读出数据管理器进一步包括:
许可管理模块,用于根据数据缓存模块的容量和数据重排模块的实际工作情况通知读出命令管理器调整对数据读出命令的响应状态,比如,当数据重排模块处理量达到饱和时,许可管理模块通知读出命令管理器暂停响应数据读出命令,当数据重排模块处理量未达到饱和时,许可管理模块通知读出命令管理器继续响应数据读出命令。
本发明第四实施例,一种数据缓存的装置,包括如下组成部分:
存储块管理模块,用于管理片内RAM和片外SRAM中的存储空间,具体的,包括对片内RAM和片外SRAM中的存储空间划分存储块并为存储块编号,每个存储块编号是唯一的;当读出控制模块对片内RAM和片外SRAM执行读出操作后,统一对片内RAM和片外SRAM中的存储空间进行回收。
写入控制模块,用于响应数据写入命令,对片内RAM和片外SRAM执行写入操作,具体的,根据编址方案按照存储设备读写速度由快到慢的顺序选择存储设备,并根据编址方案为数据分配存储块。
读出控制模块,用于响应数据读出命令,对片内RAM和片外SRAM执行读出操作。如图5所示,读出控制模块进一步包括:读出命令管理器和读出数据管理器;
读出命令管理器包括:
读出命令响应控制器,用于控制响应数据读出命令的单位个数TM,TM与数据缓存模块的容量大小有关,因此,可以预先根据数据缓存模块的容量大小设置响应数据读出命令的单位时间TM;
分配器,用于根据所述编址方案将所述数据读出命令送往片内RAM和片外SRAM;
第一读出命令计数器,用于对送往片内RAM的所述数据读出命令计数,计数值记为N1;
第二读出命令计数器,用于对送往片外SRAM的所述数据读出命令计数,计数值记为N2;
编号模块,用于对送往片内RAM和片外SRAM的所述数据读出命令统一顺序编号,编号记为Seq,Seq从零开始递增;
读出数据管理器包括:
信息缓存模块,用于存储送往片内RAM的所述数据读出命令计数值N1,送往片外SRAM的所述数据读出命令计数值N2,以及送往片内RAM和片外SRAM的所述数据读出命令的编号Seq;
数据缓存模块,用于根据送往片内RAM的数据读出命令的计数值N1从片内RAM的存储空间中读出N1个数据读出命令对应的数据,根据送往片外SRAM的数据读出命令的计数值N2从片外SRAM的存储空间中读出N2个数据读出命令对应的数据,送往数据重排模块;
数据重排模块,用于对数据缓存模块送来的数据,按照所述数据读出命令的编号Seq从小到大排序后输出。这一排序的顺序即为数据读出命令的先后顺序。
需要说明得是,存储块管理模块统一管理片外SDRAM与片外SRAM的情况是本领域技术人员通过以上两个实施例的记载可以想见的,比如,可以将片内RAM直接替换为片外SRAM后实现本发明的技术方案,故此处不详述。
本发明第五实施例,一种数据缓存的装置,包括如下组成部分:
存储块管理模块,用于管理片内RAM、片外SRAM和片外SDRAM中的存储空间,具体的,包括对片内RAM、片外SRAM和片外SDRAM中的存储空间划分存储块并为存储块编号,每个存储块编号是唯一的;当读出控制模块对片内RAM、片外SRAM和片外SDRAM执行读出操作后,统一对片内RAM、片外SRAM和片外SDRAM中的存储空间进行回收。
写入控制模块,用于响应数据写入命令,对片内RAM、片外SRAM和片外SDRAM执行写入操作,具体的,按照存储设备读写速度由快到慢的顺序选择存储设备,即按照片内RAM、片外SRAM、片外SDRAM的顺序选择存储设备,并根据编址方案为数据分配存储块。
读出控制模块,用于响应数据读出命令,对片内RAM、片外SRAM和片外SDRAM执行读出操作。如图6所示,读出控制模块进一步包括:读出命令管理器和读出数据管理器;
读出命令管理器包括:
读出命令响应控制器,用于控制响应数据读出命令的单位个数TM,TM与数据缓存模块的容量大小有关,因此,可以预先根据数据缓存模块的容量大小设置响应数据读出命令的单位时间TM;
分配器,用于根据所述编址方案将所述数据读出命令送往片内RAM、片外SRAM和片外SDRAM;
第一读出命令计数器,用于对送往片内RAM的所述数据读出命令计数,计数值记为N1;
第二读出命令计数器,用于对送往片外SRAM的所述数据读出命令计数,计数值记为N2;
第三读出命令计数器,用于对送往片外SDRAM的所述数据读出命令计数,计数值记为N3;
编号模块,用于对送往片内RAM、片外SRAM和片外SDRAM的所述数据读出命令统一顺序编号,编号记为Seq,Seq从零开始递增;
读出数据管理器包括:
信息缓存模块,用于存储送往片内RAM的所述数据读出命令计数值N1,送往片外SRAM的所述数据读出命令计数值N2,送往片外SDRAM的所述数据读出命令计数值N3,以及送往片内RAM和片外SRAM的所述数据读出命令的编号Seq;
数据缓存模块,用于根据送往片内RAM的数据读出命令的计数值N1从片内RAM的存储空间中读出N1个数据读出命令对应的数据,根据送往片外SRAM的数据读出命令的计数值N2从片外SRAM的存储空间中读出N2个数据读出命令对应的数据,根据送往片外SDRAM的数据读出命令的计数值N3从片外SDRAM的存储空间中读出N3个数据读出命令对应的数据,均送往数据重排模块;
数据重排模块,用于对数据缓存模块送来的数据,按照所述数据读出命令的编号Seq从小到大排序后输出。这一排序的顺序即为数据读出命令的先后顺序。
可选的,读出数据管理器进一步包括:
许可管理模块,用于根据数据缓存模块的容量和数据重排模块的实际工作情况通知读出命令管理器调整对数据读出命令的响应状态,比如,当数据重排模块处理量达到饱和时,许可管理模块通知读出命令管理器暂停响应数据读出命令,当数据重排模块处理量未达到饱和时,许可管理模块通知读出命令管理器继续响应数据读出命令。
本发明第六实施例,一种数据缓存的系统,如图7所示,数据缓存的装置同时与片内RAM和片外SDRAM相连,所述装置包括:
存储块管理模块,用于管理片内RAM和片外SDRAM中的存储空间;
写入控制模块,用于对片内RAM和片外SDRAM执行写入操作;
读出控制模块,用于对片内RAM和片外SDRAM执行读出操作。
存储块管理模块、写入控制模块和读出控制模块对片外SDRAM的管理和操作均是通过片外SDRAM控制器进行的。
因为本实施例中所述数据缓存的装置与第三实施例相同,故此处不详述。
本发明第七实施例,一种数据缓存的系统,如图8所示,数据缓存的装置同时与片内RAM、片外SRAM和片外SDRAM相连,所述装置包括:
存储块管理模块,用于管理片内RAM、片外SRAM和片外SDRAM中的存储空间;
写入控制模块,用于对片内RAM、片外SRAM和片外SDRAM执行写入操作;
读出控制模块,用于对片内RAM、片外SRAM和片外SDRAM执行读出操作。
存储块管理模块、写入控制模块和读出控制模块对片外SDRAM的管理和操作均是通过片外SDRAM控制器进行的。
因为本实施例中所述数据缓存的装置与第五实施例相同,故此处不详述。
本发明所述数据缓存的方法、装置及系统,该方法包括统一对至少两个存储设备中的存储空间划分存储块并编号;响应数据写入命令时,根据编址方案将数据存入所述至少两个存储设备的存储空间;响应数据读出命令时,根据所述编址方案将数据从所述存储空间读出;对读出的数据重新排序后输出。在本发明的技术方案中,对所述至少两个存储设备统一管理,共同配合使用,在不提高成本的情况下,提升数据存储设备的存储容量和访问速度。由于对从所述至少两个存储空间中读出的数据根据其对应的数据读出命令的编号重新排序之后再输出,保证了输出数据顺序的正确性。
通过具体实施方式的说明,应当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图示仅是提供参考与说明之用,并非用来对本发明加以限制。