掌桥专利:专业的专利平台
掌桥专利
首页

数据读写方法、装置、计算机设备及可读存储介质

文献发布时间:2023-06-19 18:37:28


数据读写方法、装置、计算机设备及可读存储介质

技术领域

本发明涉及固态硬盘技术领域,尤其涉及一种数据读写方法、装置、计算机设备及可读存储介质。

背景技术

随着云计算,人工智能和物联网等产品的高速发展,终端产品和服务器对固态硬盘SSD的存储容量的需求越来越大,对数据读写速率的要求也越来越快,而固态硬盘SSD在没有动态随机存取存储器(Dynamic Random Access Memory,简称DRAM)的方案中,很难做到全盘读写数据不降速的要求。

按照现有读写方案,CPU在读取DRAM中的数据时,往往会长时间占用CPU的工作资源,造成CPU工作效率低的问题,进而影响数据读写的效率。

因此,亟需一种读写效率更高的数据读写方案。

发明内容

为了解决上述技术问题,本申请实施例提供了一种数据读写方法、装置、计算机设备及可读存储介质,具体方案如下:

第一方面,本申请实施例提供了一种数据读写方法,用于通过SRAM在DRAM中读写数据,所述方法包括:

向所述DRAM写数据时,将第一目标数据写入所述SRAM的第一缓存区域,并生成写数据控制信息,所述写数据控制信息包括所述第一目标数据在所述DRAM的预设存储地址;

根据所述写数据控制信息将所述第一目标数据写入所述DRAM;

从所述DRAM读数据时,生成读数据控制信息,所述读数据控制信息包括第二目标数据在所述DRAM的预设存储地址;

根据所述读数据控制信息从所述DRAM读取所述第二目标数据,并将所述第二目标数据写入所述SRAM的第二缓存区域;

从所述第二缓存区域读取所述第二目标数据。

根据本申请实施例的一种具体实施方式,向所述DRAM写数据时,若所述第一目标数据在所述DRAM中的预设存储地址是连续的,所述方法还包括:

连续将所述第一目标数据写入所述第一缓存区域,直至所述第一缓存区域被存满;

当所述第一缓存区域被存满时,判断所述第一目标数据是否已被完全写入所述第一缓存区域;

若所述第一目标数据已被完全写入所述第一缓存区域,跳转执行所述根据所述写数据控制信息将所述第一目标数据写入所述DRAM的步骤;

若所述第一目标数据未被完全写入所述第一缓存区域,在所述第一缓存区域中的数据被清空时,将剩余的所述第一目标数据连续写入所述第一缓存区域。

根据本申请实施例的一种具体实施方式,所述方法还包括:

从SRAM的预设指针存储区域读取硬件已读取SRAM数据指针,从预设寄存器读取固件已写入SRAM数据指针;

判断固件已写入SRAM数据指针是否等于硬件已读取SRAM数据指针;

若所述固件已写入SRAM数据指针等于硬件已读取SRAM数据指针,确定所述第一缓存区域被清空。

根据本申请实施例的一种具体实施方式,向所述DRAM写数据时,若所述第一目标数据在所述DRAM中的预设存储地址是非连续的,所述方法还包括:

将所述第一目标数据及其对应的DRAM地址分为多帧写数据指令,分别写入所述SRAM的第三缓存区域,并生成写数据配置信息;

根据所述写数据配置信息依次将所述第三缓存区域中的第一目标数据写入其对应的DRAM地址中。

根据本申请实施例的一种具体实施方式,所述根据所述写数据配置信息依次将所述第三缓存区域中的第一目标数据写入其对应的DRAM地址中,包括:

根据所述写数据配置信息将一帧写数据指令中包括的第一目标数据写入其对应的DRAM地址后,从所述第三缓存区域读取下一帧写数据指令,直至写入所述DRAM中的第一目标数据的数据量等于所述写数据配置信息的预设写入数据量。

根据本申请实施例的一种具体实施方式,从所述DRAM读数据时,若所述第二目标数据在所述DRAM中的存储地址是连续的,所述方法还包括:

根据所述读数据控制信息连续从所述DRAM读取所述第二目标数据,直至所述第二目标数据的数据量等于所述读数据控制信息中的预设读取数据量;

将所述第二目标数据写入所述SRAM的第二缓存区域,直至所述第二缓存区域被存满;

当所述第二缓存区域被存满时,判断所述第二目标数据是否已被完全写入所述第二缓存区域;

若所述第二目标数据已被完全写入所述第二缓存区域,跳转从所述第二缓存区域读取所述第二目标数据的步骤;

若所述第二目标数据未被完全写入所述第二缓存区域,在所述第二缓存区域中的数据被清空时,将剩余的所述第二目标数据连续写入所述第二缓存区域。

根据本申请实施例的一种具体实施方式,从所述DRAM读数据时,若所述第二目标数据在所述DRAM中的存储地址是非连续的,所述方法还包括:

生成读数据配置信息;

将所述读数据配置信息写入所述SRAM的第三缓存区域;

从所述第三缓存区域依次调用所述读数据配置信息,根据所述读数据配置信息将所述第二目标数据写入所述SRAM的第二缓存区域;

从所述第二缓存区域读取所述第二目标数据。

第二方面,本申请实施例提供了一种数据读写装置,用于通过SRAM在DRAM中读写数据,所述数据读写装置包括:

写数据模块,用于向所述DRAM写数据时,将第一目标数据写入所述SRAM的第一缓存区域,并生成写数据控制信息,所述写数据控制信息包括所述第一目标数据在所述DRAM的预设存储地址;根据所述写数据控制信息将所述第一目标数据写入所述DRAM;

读数据模块,用于生成读数据控制信息,所述读数据控制信息包括第二目标数据在所述DRAM的预设存储地址;根据所述读数据控制信息从所述DRAM读取所述第二目标数据,并将所述第二目标数据写入所述SRAM的第二缓存区域;从所述第二缓存区域读取所述第二目标数据。

第三方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行第一方面及第一方面任一实施方式所述的数据读写方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序在处理器上运行时执行第一方面及第一方面任一实施方式所述的数据读写方法。

本申请实施例提供了一种数据读写方法、装置、计算机设备及可读存储介质,用于通过SRAM在DRAM中读写数据,所述方法包括:向所述DRAM写数据时,将第一目标数据写入所述SRAM的第一缓存区域,并生成写数据控制信息,所述写数据控制信息包括所述第一目标数据在所述DRAM的预设存储地址;根据所述写数据控制信息将所述第一目标数据写入所述DRAM;从所述DRAM读数据时,生成读数据控制信息,所述读数据控制信息包括第二目标数据在所述DRAM的预设存储地址;根据所述读数据控制信息从所述DRAM读取所述第二目标数据,并将所述第二目标数据写入所述SRAM的第二缓存区域;从所述第二缓存区域读取所述第二目标数据。本发明通过SRAM作为中间介质,对DRAM中的数据进行读写,有效增加了CPU读写DRAM中数据的读写效率。

附图说明

为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。

图1示出了本申请实施例提供的一种数据读写方法的方法流程示意图;

图2示出了本申请实施例提供的一种数据读写方法的应用场景示意图之一;

图3示出了本申请实施例提供的一种数据读写方法的应用场景示意图之二;

图4示出了本申请实施例提供的一种数据读写方法的应用场景示意图之三;

图5示出了本申请实施例提供的一种数据读写方法的应用场景示意图之四;

图6示出了本申请实施例提供的一种数据读写方法的应用场景示意图之五;

图7示出了本申请实施例提供的一种数据读写方法的DRAM控制组件的模式切换示意图;

图8示出了本申请实施例提供的一种数据读写装置的装置模块示意图。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。

通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

在下文中,可在本发明的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。

此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。

为了满足对固态硬盘(Solid State Disk,简称SSD)进行全盘读写不降速的要求,需要支持DRAM接口的SSD的控制器(Controller),在固态硬盘的盘片中增加DRAM颗粒。

由于DRAM中存储着固态硬盘的闪存转换层(Flash Translation Layer,简称FTL)文件。FTL文件是SSD的逻辑层到物理层的映射表文件,在SSD中读写数据前,CPU会从DRAM中读取FTL文件,并从FTL文件中得到闪存(NAND Flash)的物理映射表,通过所述物理映射表中的地址映射关系,将数据读写入NAND Flash中。

在对SSD数据进行读写时,SSD Controller中的中央处理器(central processingunit,简称CPU)会频繁的读写DRAM中的FTL文件,CPU对DRAM的读写效率会直接影响对SSD数据的读写效率。

参考图1,为本申请实施例提供的一种数据读写方法的方法流程示意图,本申请实施例提供的数据读写方法,用于通过SRAM在DRAM中读写数据,如图1所示,所述方法包括:

步骤S101,向所述DRAM写数据时,将第一目标数据写入所述SRAM的第一缓存区域,并生成写数据控制信息,所述写数据控制信息包括所述第一目标数据在所述DRAM的预设存储地址;

步骤S102,根据所述写数据控制信息将所述第一目标数据写入所述DRAM;

步骤S103,从所述DRAM读数据时,生成读数据控制信息,所述读数据控制信息包括第二目标数据在所述DRAM的预设存储地址;

步骤S104,根据所述读数据控制信息从所述DRAM读取所述第二目标数据,并将所述第二目标数据写入所述SRAM的第二缓存区域;

步骤S105,从所述第二缓存区域读取所述第二目标数据。

具体地,本实施例提出的数据读写方法可以应用于中央处理器对固态硬盘中的DRAM进行数据读写的场景,也可以应用于包括SRAM接口的其它设备对固态硬盘中DRAM进行数据读写的场景,本实施例对此不作具体限定。

本实施例使用静态随机存取存储器(Static Random-Access Memory,SRAM)作为传输桥梁,CPU将数据、CMD指令信息写入SRAM中,DRAM控制组件能根据对应的写数据指令将数据写入DRAM中,DRAM控制组件也能根据对应的读数据指令将数据写入SRAM中,以便于CPU对DRAM中的数据进行读取。

在一种实施例中,本实施例中的数据读写方法的应用场景可以如图2所示,在实际应用场景中,所述SRAM还包括写数据SRAM Buffer组件、写数据控制组件、寄存器组件、PtrSRAM组件、指令SRAM Buffer组件、指令控制组件、读数据SRAM Buffer组件、读数据控制组件。

所述DRAM包括DRAM控制组件和动态随机存取存储器(DRAM)。

具体地,步骤S101-S102为CPU向DRAM写入数据的步骤,在向DRAM写入数据时,先将第一目标数据写入DRAM中的第一缓存区域。

如图2所示,所述写数据SRAM Buffer组件可以为所述第一缓存区域,CPU需要向DRAM写入数据时,可以将所述写数据SRAM Buffer作为中间介质,将待写入的第一目标数据均写入所述写数据SRAM Buffer中。

所述写数据SRAM Buffer组件和写数据控制组件通信连接,写数据控制组件作为写数据SRAM Buffer组件和DRAM控制组件的桥梁,当DRAM控制组件需要向所述DRAM中写入数据时,所述DRAM会向所述写数据控制组件请求数据。

其中,写数据控制组件也可以作为所述第一缓存区域,缓存一定数据量的第一目标数据。当所述写数据控制组件的缓存没有存满,而所述SRAM Buffer组件的缓存中还包括第一目标数据时,所述写数据控制组件会将所述写数据控制组件的缓存存满。而当所述写数据控制组件的缓存中包括第一目标数据时,会随时相应DRAM控制组件的请求,向DRAM控制组件提供所述第一目标数据。

CPU将所述第一目标数据存入第一缓存区域后,生成所述第一目标数据对应的写数据控制信息。其中,所述写数据控制信息包括第一目标数据在DRAM中预设存储位置、第一目标数据的数据量大小以及固件已写入SRAM的数据指针。

所述寄存器组件对CPU发送的写数据控制信息进行解析后,将解析后的写数据控制信息分发给写数据控制组件和DRAM控制组件,以将第一目标数据进行搬运写入DRAM中。

所述指令SRAM Buffer组件用于缓存CPU下发的读写指令,写入指令的CMD格式如下:

需知的,所述指令SRAM Buffer组件中存储的指令可以为CMD格式,也可以为CFG格式,其中,CMD格式的指令为命令模式,CFG格式为配置模式。

命令模式的指令可以对连续地址的第一目标数据或第二目标数据进行处理,也可以对非连续地址的第一目标数据或第二目标数据进行处理。配置模式的指令只可以对连续地址的第一目标数据或第二目标数据进行处理。

具体地,命令模式下,可以随时在读指令和写指令之间相互切换。而配置模式下,必须完成CPU配置的写指令后才能处理读指令,同样的,必须完成CPU配置的读指令后才能处理写指令。

所述指令控制组件用于缓存部分指令,以保证DRAM控制组件在运行过程中对数据的读写步骤保持连续,不会由于配置指令等原因造成执行指令时中断的问题。

所述寄存器组件用于解析CPU下发的配置信息、中断信息和状态查询信息,例如写数据控制信息、读数据控制信息、写数据配置信息和读数据配置信息。

所述Ptr SRAM组件用于存储各执行SRAM缓存功能和控制功能的硬件的SRAM指针,而所述寄存器组件中存储着CPU下发的所有固件,通过判断固件中的SRAM指针和硬件执行的SRAM指针的数量,能够准确判断各缓存器中的数据是否被完全处理。

CPU与所述Ptr SRAM组件通信连接,从而可以更快的读取各缓存器的相关参数,进一步提高对DRAM数据的读写效率。

具体地,步骤S103-S105为CPU从DRAM读取数据的步骤,从所述DRAM读取数据时,需先向所述寄存器组件发送配置信息,以通知所述DRAM控制组件从所述DRAM中读取第二目标数据,并将所述第二目标数据搬运至所述第二缓存区域。

其中,所述读数据控制组件用于根据DRAM控制组件发送的写入请求,将所述第二目标数据存储至读数据SRAM Buffer组件中。所述读数据SRAM Buffer组件可以为所述第二缓存区域,在一些情况中,所述读数据控制组件也可以作为所述第二缓存区域。

当SRAM Bufer组件没有缓存空间时,所述读数据控制组件向DRAM控制组件发送对应的停止信号,以停止DRAM控制组件向DRAM读取数据,直到CPU从读数据SRAM Buffer组件读取第二目标数据后,此时读数据SRAM Buffer组件释放了缓存空间,所述读数据组件控制和所述DRAM控制组件继续读取第二目标数据,直到将全部第二目标数据读取完毕。

具体地,本实施例提出的数据读写方法包括多种数据读写场景,例如,待写入的数据在DRAM中的地址是连续的,待写入的数据在DRAM中的地址是非连续的,待读取的数据在DRAM中的地址是连续的,待读取的数据在DRAM中的地址是非连续的。

本实施例中,CPU在应对不同数据读写场景时,所调用的SRAM资源并不相同。在具体实施过程中,CPU仅调用与数据读写场景相关的SRAM资源,以减轻SRAM资源的消耗。在完成当前数据读写操作后,CPU对调用的SRAM资源进行回收处理,以便于提升SRAM资源的使用效率。

如图3至图6所示,实现框部分表示CPU在当前应用场景中调用的资源,虚线框部分表示CPU在当前应用场景中未调用的资源。

参考图3,根据本申请实施例的一种具体实施方式,向所述DRAM写数据时,若所述第一目标数据在所述DRAM中的预设存储地址是连续的,所述方法还包括:

连续将所述第一目标数据写入所述第一缓存区域,直至所述第一缓存区域被存满;

当所述第一缓存区域被存满时,判断所述第一目标数据是否已被完全写入所述第一缓存区域;

若所述第一目标数据已被完全写入所述第一缓存区域,跳转执行所述根据所述写数据控制信息将所述第一目标数据写入所述DRAM的步骤;

若所述第一目标数据未被完全写入所述第一缓存区域,在所述第一缓存区域中的数据被清空时,将剩余的所述第一目标数据连续写入所述第一缓存区域。

在具体实施例中,如图3所示,当CPU向DRAM写入具有连续地址的第一目标数据时,CPU调用写数据SRAM Buffer组件作为CPU写入数据的数据缓存器,配置好相应的写数据控制信息后,将所述写数据控制信息发送至寄存器组件,以使通过所述寄存器组件实现写数据控制组件和DRAM控制组件的参数同步。

在实际应用过程中,对于数据量小于一定阈值的第一目标数据,CPU向所述寄存器组件发送的写数据控制信息可以为CMD格式,也可以为CFG格式。对于数据量大于一定阈值的第一目标数据,CPU向所述寄存器组件发送的写数据控制信息为CFG格式。所述阈值可以根据实际应用场景进行自适应设置,此处不作具体限定。

在实际应用过程中,写数据SRAM Buffer组件的缓存具有存储极值,当第一目标数据的数据量大于所述写数据SRAM Buffer组件的存储极值时,可以在SRAM Buffer组件的缓存被存满时,停止向所述写数据SRAM Buffer组件继续搬运第一目标数据。

待写数据控制组件以及DRAM控制组件将写数据SRAM Buffer组件中的第一目标数据搬空后,继续写入剩余的第一目标数据,若第二次写满所述写数据SRAM Buffer组件,还未处理完全部第一目标数据,重复上述步骤,直至将具有连续存储地址的第一目标数据全部写入DRAM中。

根据本申请实施例的一种具体实施方式,所述方法还包括:

从SRAM的预设指针存储区域读取硬件已读取SRAM数据指针,从预设寄存器读取固件已写入SRAM数据指针;

判断固件已写入SRAM数据指针是否等于硬件已读取SRAM数据指针;

若所述固件已写入SRAM数据指针等于硬件已读取SRAM数据指针,确定所述第一缓存区域被清空。

在具体实施例中,所述预设指针存储区域为图3中的Ptr SRAM组件,预设寄存器为所述寄存器组件。

本实施例可以通过识别硬件和固件中的SRAM数据指针的方式,实现缓存数据是否已处理的判断。通过识别已搬运数据量和写数据控制信息中的预设数据量的方式,实现写数据操作是否完成的判断。

参考图4,根据本申请实施例的一种具体实施方式,向所述DRAM写数据时,若所述第一目标数据在所述DRAM中的预设存储地址是非连续的,所述方法还包括:

将所述第一目标数据及其对应的DRAM地址分为多帧写数据指令,分别写入所述SRAM的第三缓存区域,并生成写数据配置信息;

根据所述写数据配置信息依次将所述第三缓存区域中的第一目标数据写入其对应的DRAM地址中。

在具体实施例中,由于各第一目标数据在DRAM中的存储地址是不连续的,需要先将对应的第一目标数据及其对应的存储地址划分为多帧写数据指令,从而得到多条写数据配置信息。

如图4所示,此时,CPU向所述寄存器组件发送的数据配置信息为CMD格式的指令信息。

所述指令SRAM Buffer组件可以为所述第三缓存区域,在一些处理情况中,所述指令控制组件也可以为所述第三缓存区域。

CPU将多帧写数据指令存储于所述指令SRAM Buffer组件中,所述指令控制组件根据所述数据配置信息,分别读取所述SRAM Buffer组件中的写数据指令。

根据本申请实施例的一种具体实施方式,所述根据所述写数据配置信息依次将所述第三缓存区域中的第一目标数据写入其对应的DRAM地址中,包括:

根据所述写数据配置信息将一帧写数据指令中包括的第一目标数据写入其对应的DRAM地址后,从所述第三缓存区域读取下一帧写数据指令,直至写入所述DRAM中的第一目标数据的数据量等于所述写数据配置信息的预设写入数据量。

在具体实施例中,所述DRAM控制组件会在读取一帧写数据指令后,查看指令控制组件的缓存,若所述指令控制组件的缓存中还包括剩余的写数据指令,所述DRAM会立即读取下一帧写数据指令,直至处理完全部的写数据指令。

具体地,所述指令控制组件在获取指令SRAM Buffer组件中的写数据指令时,可以通过判断硬件已经读指令SRAM Buffer组件的指针是否小于固件已经写入指令SRAMBuffer组件的指令,若小于,则说明指令控制组件还需继续向所述指令SRAM Buffer组件获取写数据指令。若等于,则说明指令SRAM Buffer组件中的写数据指令已被完全读完。

参考图5,根据本申请实施例的一种具体实施方式,从所述DRAM读数据时,若所述第二目标数据在所述DRAM中的存储地址是连续的,所述方法还包括:

根据所述读数据控制信息连续从所述DRAM读取所述第二目标数据,直至所述第二目标数据的数据量等于所述读数据控制信息中的预设读取数据量;

将所述第二目标数据写入所述SRAM的第二缓存区域,直至所述第二缓存区域被存满;

当所述第二缓存区域被存满时,判断所述第二目标数据是否已被完全写入所述第二缓存区域;

若所述第二目标数据已被完全写入所述第二缓存区域,跳转从所述第二缓存区域读取所述第二目标数据的步骤;

若所述第二目标数据未被完全写入所述第二缓存区域,在所述第二缓存区域中的数据被清空时,将剩余的所述第二目标数据连续写入所述第二缓存区域。

在具体实施例中,如图5所示,所述读数据SRAM Buffer组件可以作为所述第二缓存区域,在一些情况下,所述读数据控制组件也可以作为所述第二缓存区域。

具体地,由所述寄存器组件接收所述CPU发送的读数据控制信息,并将对应的参数信息统一给所述DRAM控制组件,以使所述DRAM控制组件获取连续地址的第二目标数据。

在实际应用过程中,若所述读数据SRAM Buffer组件中包括CPU没有读取的数据,所述寄存器组件会自动向所述CPU发送中断指令,以提醒CPU可以向所述读数据SRAMBuffer组件的第二目标数据。

具体的,在读数据控制组件中的缓存被存满时,会向所述DRAM控制组件发送停止指令,以暂停DRAM控制组件继续向所述读数据控制组件搬运第二目标数据,直至所述读数据控制组件的缓存出现空余。

CPU可以通过查询Ptr SRAM组件中的写数据SRAM Buffer指针,以判断还有多少第二目标数据待读取。

根据本申请实施例的一种具体实施方式,从所述DRAM读数据时,若所述第二目标数据在所述DRAM中的存储地址是非连续的,所述方法还包括:

生成读数据配置信息;

将所述读数据配置信息写入所述SRAM的第三缓存区域;

从所述第三缓存区域依次调用所述读数据配置信息,根据所述读数据配置信息将所述第二目标数据写入所述SRAM的第二缓存区域;

从所述第二缓存区域读取所述第二目标数据。

在具体实施例中,如图6所示,所述指令SRAM Buffer组件可以为所述第三缓存区域,在一些情况下,所述指令控制组件也可以为所述第三缓存区域。

CPU会将非连续存储地址的第二目标数据对应的读数据配置信息分别写入所述指令SRAM Buffer组件和寄存器组件,以使所述DRAM控制组件分别从DRAM中获取位于不同存储地址的第二目标数据。

DRAM控制组件从指令控制组件中读取一次读数据配置信息后,当指令控制组件的缓存中还包括剩余读数据配置信息,且硬件写入指令SRAM Buffer组件的指针小于固件写入指令SRAM Buffer组件的指针时,继续从指令控制组件中读取数据,直到硬件写入指令SRAM Buffer组件的指针等于固件写入指令SRAM Buffer组件指针时,操作结束。

CPU从所述指令SRAM Buffer中获取第二目标数据,直至获取的第二目标数据的数据量等于读数据配置信息中的预设数据量。

在实际应用过程中,在处理非连续存储地址的第一目标数据的写入步骤时,还可以同时处理非连续存储地址的第二目标数据的读取步骤,执行过程可以参考上述方法实施例中的具体实施过程,此处不作赘述。

如图7所示,本实施例中的DRAM控制组件的控制状态包括7种,分别为空闲状态IDLE、命令模式读数据状态CMD_R、命令模式下写数据状态CMD_W、配置模式读数据状态CFG_R、配置模式写数据状态CFG_W、写数据完成状态W_F、读数据完成状态R_F。

在具体应用过程中,空闲状态IDLE为CPU启用DRAM内存时,对DRAM控制器进行初始化配置时进入的状态。

命令模式读数据状态CMD_R和命令模式下写数据状态CMD_W为接收CMD控制信号后,CPU控制所述DRAM控制组件进入的读写数据指令模式。

具体的,接收cmd_read指令后,DRAM控制组件由空闲状态IDLE切换为命令模式读数据状态CMD_R。接收cmd_write指令后,DRAM控制组件由空闲状态IDLE切换为命令模式下写数据状态CMD_W。其中,cmd_read指令是由读数据SRAM Buffer组件中的CMD_OP控制,cmd_write指令是由SRAM Buffer组件中CMD_OP控制。

DRAM控制组件还可以根据cmd_write指令和cmd_read指令,在命令模式读数据状态CMD_R和命令模式下写数据状态CMD_W之间进行切换。

若DRAM控制组件在命令模式读数据状态CMD_R下结束操作,接收cmdr_done指令后,切换为读数据完成状态R_F。若DRAM控制组件在命令模式写数据状态CMD_W下结束操作,接收cmdw_done指令后,切换为写数据完成状态W_F。

接收cfg_read指令后,DRAM控制组件切换为配置模式读数据状态CFG_R,接收cfg_write指令后,DRAM控制组件切换为配置模式写数据状态CFG_W。

DRAM控制组件在配置模式下,均需要完成配置信息设置的数据量大小的读写操作后,进入对应的完成状态。且配置模式不可相互切换。

本实施例提供的数据读写方法,能够支持多场景下CPU对DRAM数据的读写操作,包括大量具有连续存储地址的DRAM数据的读写场景,大量具有非连续存储地址的DRAM数据的读写场景以及非连续存储地址的DRAM数据的读取和写入相结合的处理场景。将CPU对DRAM数据的读写操作转为CPU对SRAM数据的读写,操作上更加简单快捷,效率上提高明显。

参考图8,为本申请实施例提供的一种数据读写装置800的装置模块示意图,本申请实施例提供的数据读写装置800,用于通过SRAM在DRAM中读写数据,如图8所示,所述装置800包括:

写数据模块801,用于向所述DRAM写数据时,将第一目标数据写入所述SRAM的第一缓存区域,并生成写数据控制信息,所述写数据控制信息包括所述第一目标数据在所述DRAM的预设存储地址;根据所述写数据控制信息将所述第一目标数据写入所述DRAM;

读数据模块802,用于生成读数据控制信息,所述读数据控制信息包括第二目标数据在所述DRAM的预设存储地址;根据所述读数据控制信息从所述DRAM读取所述第二目标数据,并将所述第二目标数据写入所述SRAM的第二缓存区域;从所述第二缓存区域读取所述第二目标数据。

另外,本申请实施例还提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行前述方法实施例中的数据读写方法。

本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序在处理器上运行时执行前述方法实施例中的数据读写方法。

上述实施例中提到的数据读写装置、计算机设备及计算机可读存储介质的具体实施过程,可以参见上述方法实施例的具体实施过程,在此不再一一赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。

技术分类

06120115632498