固态硬盘的数据处理方法以及固态硬盘与流程

文档序号:16068084发布日期:2018-11-24 12:52阅读:290来源:国知局

本申请涉及数据处理领域,特别涉及一种固态硬盘的数据处理方法以及该固态硬盘。

背景技术

固态硬盘(solidstatedrives,ssd)由控制单元和存储单元组成。固态硬盘通常将用户数据存储在计算机闪存设备(nandflashmemory,简称nand)中的用户数据读入随机存储器(randomaccessmemory,ram)中,主机向固态硬盘发出请求时,固态硬盘会将用户数据从nand中读出,再通过无需中央处理器(centralprocessingunit,cpu)进行传送操作的成组数据传送(directmemoryaccess,dma)方式,将数据传输到主机。在将用户数据读入nand的操作时间以及通过dma方式传输用户数据的时间固定不变的情况下,将存储在nand中的用户数据读出后中转到ram的访问速率将决定固态硬盘的读操作性能。固态硬盘的主控制器有两部分可使用的存储器,一部分是主控芯片内的缓存随机存储器(bufferram),另一部分是外扩双倍速率同步动态随机存储器(doubledateratesynchronousdynamicrandomaccess,ddrsdram)。由于缓存ram内置于主控芯片中,而ddrsdram属于外扩存储器,与主控芯片之间有连线连接,因此将用户数据中转到主控芯片中的缓存ram不需要进行总线调度,而将用户数据中转到外扩ddrsdram则需要进行总线调度,所以缓存ram比ddrsdram的速率更快,带宽更高。

因此目前的固态硬盘读操作,在申请访问ram的操作过程中,固态硬盘的前端管理单元接收到主机发送的读操作请求后,直接由前端管理单元申请ram地址,该ram地址包括缓冲ram地址以及ddrsdram地址,接着前端管理单元将申请到的ram地址发送到固态硬盘的后端管理单元,然后接收后端管理单元发送的已完成读操作的消息,该消息中包含ram地址中的缓冲ram地址,最后前端管理单元向主机发送缓冲ram地址中的用户数据。

但是,由于缓存ram空间有限,通常只有1mb的容量,而ddrsdram的空间容量可以达到2gb或者4gb,在前端管理单元接收到读操作请求后,会申请包括有缓冲ram地址的ram地址,而前端管理单元在申请到缓冲ram地址后,需要将申请到的缓冲ram地址发送给后端管理单元,由后端管理单元执行读操作,这样导致在前端管理单元将缓冲ram地址发送给后端管理单元的过程中一直占用着ram地址对应的ram存储空间,因此缓存ram存储空间得不到充分的利用,减少了缓存ram存储空间能够存储数据的时间,降低了缓存ram存储空间的使用周转率,导致固态硬盘的读性能较差。



技术实现要素:

本申请实施例提供了固态硬盘的数据处理方法和该固态硬盘,用于通过后端管理单元申请缓冲ram地址,充分利用缓冲ram地址对应的缓冲ram存储空间,从而提高固态硬盘读操作的性能。

本申请实施例提供了一种固态硬盘的数据处理方法,包括:

前端管理单元接收主机发送的读操作请求;

所述前端管理单元向后端管理单元发送所述读操作请求,所述读操作请求中包含读操作需使用随机存储器ram地址的置位信息,所述读操作包含前端读操作以及后端读操作,所述后端读操作为所述后端管理单元将计算机闪存模块nand中的用户数据读入缓冲ram地址对应的缓冲ram存储空间,所述前端读操作为所述前端管理单元向所述主机发送所述缓冲ram存储空间中的所述用户数据,所述读操作请求用于指示所述后端管理单元将所述nand中的所述用户数据读入所述缓冲ram存储空间,并由所述前端管理单元将所述缓冲ram存储空间中的所述用户数据发送至所述主机;

所述前端管理单元接收所述后端管理单元发送的已完成读操作的消息,所述消息中包含所述ram地址中的所述缓冲ram地址;

所述前端管理单元执行所述前端读操作。

本申请实施例提供了另一种固态硬盘的数据处理方法,包括:

后端管理单元向ram管理单元申请ram地址;

所述后端管理单元从所述ram管理单元预取所述ram地址,所述ram地址中包含缓冲ram地址;

所述后端管理单元接收前端管理单元发送的读操作请求,所述读操作请求中包含读操作需使用随机存储器ram地址的置位信息,所述读操作包含前端读操作以及后端读操作,所述后端读操作为所述后端管理单元将计算机闪存模块nand中的用户数据读入所述缓冲ram地址对应的缓冲ram存储空间,所述前端读操作为所述前端管理单元向主机发送所述缓冲ram存储空间中的所述用户数据,所述读操作请求用于指示所述后端管理单元将所述nand中的所述用户数据读入所述缓冲ram存储空间,并由所述前端管理单元将所述缓冲ram存储空间中的所述用户数据发送至所述主机;

所述后端管理单元执行所述后端读操作;

所述后端管理单元将已完成所述后端读操作的消息发送至所述前端管理单元,所述消息中包含所述缓冲ram地址。

可选地,所述后端管理单元从所述ram管理单元预取所述ram地址包括:

所述后端管理单元根据所述ram地址的预取数量的预设阈值从所述ram管理单元预取所述缓冲ram地址,所述缓冲ram地址的预取数量为第一预取数量,所述第一预取数量至少为一个。

可选地,在所述后端管理单元根据所述ram地址的预取数量的预设阈值从所述ram管理单元预取所述缓冲ram地址之后,所述方法还包括:

所述后端管理单元判断所述第一预取数量是否达到所述预设阈值;

若否,则所述后端管理单元从所述ram管理单元预取第二预取数量的双倍速率同步动态随机存储器ddrsdram地址,所述第二预取数量为所述预设阈值与所述第一预取数量的差值。

本申请实施例提供了一种固态硬盘,所述固态硬盘包括前端管理单元以及后端管理单元,所述前端管理单元包括:

第一接收模块,用于接收主机发送的读操作请求;

第一发送消息队列模块,用于向所述后端管理单元发送所述读操作请求,所述读操作请求中包含读操作需使用随机存储器ram地址的置位信息,所述读操作包含前端读操作以及后端读操作,所述后端读操作为所述后端管理单元将计算机闪存模块nand中的用户数据读入缓冲ram地址对应的缓冲ram存储空间,所述前端读操作为所述前端管理单元向所述主机发送所述缓冲ram存储空间中的所述用户数据,所述读操作请求用于指示所述后端管理单元将所述nand中的所述用户数据读入所述缓冲ram存储空间,并由所述前端管理单元将所述缓冲ram存储空间中的所述用户数据发送至所述主机;

第一接收消息队列模块,用于接收所述后端管理单元发送的已完成读操作的消息,所述消息中包含所述ram地址中的所述缓冲ram地址;

前端读操作模块,用于执行所述前端读操作。

本申请实施例提供了另一种固态硬盘,所述固态硬盘包括前端管理单元、后端管理单元以及ram管理单元,所述后端管理单元包括:

ram地址预取模块,用于向所述ram管理单元申请ram地址,并从所述ram管理单元预取所述ram地址,所述ram地址中包含缓冲ram地址;

第二接收消息队列模块,用于接收所述前端管理单元发送的读操作请求,所述读操作请求中包含读操作需使用随机存储器ram地址的置位信息,所述读操作包含前端读操作以及后端读操作,所述后端读操作为所述后端管理单元将计算机闪存模块nand中的用户数据读入所述缓冲ram地址对应的缓冲ram存储空间,所述前端读操作为所述前端管理单元向主机发送所述缓冲ram存储空间中的所述用户数据,所述读操作请求用于指示所述后端管理单元将所述nand中的所述用户数据读入所述缓冲ram存储空间,并由所述前端管理单元将所述缓冲ram存储空间中的所述用户数据发送至所述主机;

后端读操作模块,用于执行所述后端读操作;

第二发送消息队列模块,用于将已完成所述后端读操作的消息发送至所述前端管理单元,所述消息中包含所述缓冲ram地址。

可选地,所述ram地址预取模块具体用于根据所述ram地址的预取数量的预设阈值从所述ram管理单元预取所述缓冲ram地址,所述缓冲ram地址的预取数量为第一预取数量,所述第一预取数量至少为一个。

可选地,所述后端管理单元还包括判断单元,用于判断所述第一预取数量是否达到所述预设阈值;若否,则所述ram地址预取模块还用于从所述ram管理单元预取第二预取数量的双倍速率同步动态随机存储器ddrsdram地址,所述第二预取数量为所述预设阈值与所述第一预取数量的差值。

从以上技术方案可以看出,本申请实施例具有以下优点:

固态硬盘的前端管理单元接收到主机发送的读操作请求后,前端管理单元不申请ram地址,而是将读操作请求发送到固态硬盘的后端管理单元,该读操作请求中包含读操作需使用ram地址的置位信息,该读操作包含前端读操作以及后端读操作,该后端读操作为后端管理单元将计算机闪存模块nand中的用户数据读入缓冲ram地址对应的缓冲ram存储空间,前端读操作为前端管理单元向主机发送缓冲ram存储空间中的用户数据,读操作请求用于指示后端管理单元将nand中的用户数据读入缓冲ram地址对应的缓冲ram存储空间,并由前端管理单元将缓冲ram存储空间中的用户数据发送至主机,然后前端管理单元接收后端管理单元发送的已完成读操作的消息,该消息中包含ram地址中的缓冲ram地址,最后前端管理单元向主机发送缓冲ram存储空间中的用户数据,由于在读操作请求消息从前端管理单元发送到后端管理单元的过程中,不占用缓存ram地址对应的缓存ram存储空间,从而降低了缓存ram的存储空间的使用时间,提高了缓存ram的使用效率,最终提高了固态硬盘读操作的性能。

附图说明

图1为本申请实施例中固态硬盘的数据处理框架示意图;

图2为本申请实施例中固态硬盘的数据处理方法的一个实施例示意图;

图3为本申请实施例中固态硬盘的数据处理方法的另一个实施例示意图;

图4为本申请实施例中固态硬盘的数据处理方法的流程示意图;

图5为本申请实施例中固态硬盘的一个实施例示意图;

图6为本申请实施例中固态硬盘的另一个实施例示意图。

具体实施方式

本申请实施例提供了固态硬盘的数据处理方法和装置,用于通过后端管理单元申请缓冲ram地址,充分利用缓冲ram地址对应的ram存储空间,从而提高固态硬盘读操作的性能。

请参阅图1,图1为本申请实施例中固态硬盘的数据处理框架示意图。如图1所示,在实现固态硬盘的数据处理的过程中,需要有主机101、前端管理单元102、后端管理单元103、ram管理单元104的参与。

后端管理单元103预先向ram管理单元104申请并预取ram地址,该ram地址中包含有至少一个缓冲ram地址,预取的ram地址的预取数量需满足预设阈值,也就是说,后端管理单元103预取的ram管理单元104中的缓冲ram地址的预取数量以及ddrsdram地址的预取数量之和需达到ram地址的预取数量的预设阈值。

当用户通过主机101将读操作请求发送到前端管理单元102时,前端管理单元102将该读操作请求发送到后端管理单元103,后端管理单元103根据该读操作请求读出nand中存储的用户数据,并将该用户数据读入预取的缓冲ram地址对应的缓冲ram存储空间以及ddrsdram地址对应的ddrsdram地址对应的ddrsdram存储空间中。

在后端管理单元103完成将用户数据读入缓冲ram存储空间以及ddrsdram存储空间之后,后端管理单元103就会向前端管理单元102发送已完成读操作的消息,该消息中包含ram地址中的缓冲ram地址以及ddrsdram地址。

最后,前端管理单元102就会将缓冲ram地址对应的缓冲ram空间中的用户数据以及其他存储在ddrsdram地址对应的ddrsdram空间中的用户数据发送到主机中。

基于上述固态硬盘的数据处理系统框架,请参阅图2,图2为本申请实施例中数据处理方法的一个实施例。如图2所示,本申请实施例中数据处理方法的一个实施例包括:

201、后端管理单元向ram管理单元申请ram地址;

本实施例中,后端管理单元可以预先向ram管理单元申请ram地址。

优选地,后端管理单元在向ram管理单元申请ram地址时,可以优先申请缓冲ram地址,这是因为主控芯片内的缓冲ram读入数据的速度要比外扩的ddrsdram读入数据的速度更快,从而能够提高读操作的性能。

202、后端管理单元从ram管理单元预取ram地址;

本实施例中,后端管理单元向ram管理单元申请ram地址之后,ram管理单元就会向后端管理单元发出响应,通知后端管理单元所管理的ram地址的情况,其中包括缓冲ram地址的数量。

后端管理单元在接收到ram管理单元发出的响应后,就可以从ram管理单元预先取出ram地址,以备读取nand的用户数据时使用。

进一步地,如果后端管理单元通过ram管理单元发出的响应获知存在缓冲ram地址,则后端管理单元可以优先从ram管理单元预先取出缓冲ram地址;如果后端管理单元通过ram管理单元发出的响应获知不存在缓冲ram地址,则后端管理单元从ram管理单元预先取出ddrsdram地址。

更进一步地,可以在出厂时为固态硬盘的数据处理装置设置ram地址的预取数量的预设阈值。这样,在后端管理单元从ram管理单元预取出缓冲ram地址之后,如果预取出来的缓冲ram地址的数量还未达到ram地址的预取数量的预设阈值,则后端管理单元可以继续从ram管理单元预取ddrsdram地址,直到预取出来的ddrsdram地址的数量与缓冲ram地址的预取数量之和达到预设阈值。本实施例中可以将缓冲ram地址的预取数量称为第一预取数量,该第一预取数量至少为一个。例如,ram地址的预取数量的预设阈值为2,而ram管理单元中只有一个缓冲ram地址,则后端管理单元在优先预取出该缓冲ram地址之后,还会从ram管理单元中预取出一个ddrsdram地址备用。

在上述更进一步的基础上,优选地,可以在出厂时减小ram地址的预取数量的预设阈值。由于后端管理单元优先申请并预取缓冲ram地址,因此,减小ram地址的预取数量的预设阈值,就等同于减小ddrsdram地址的预取数量,本实施例中可以将ddrsdram地址的预取数量称为第二预取数量,缓冲ram地址的第一预取数量与ddrsdram地址的第二预取数量之和为ram地址的预取数量。而由于ddrsdram读入数据的速度比缓冲ram慢,因此如果减小ddrsdram地址的预取数量的预设阈值,则当后端管理单元预取的包含了缓冲ram地址的预取数量达到预设阈值时,后端管理单元就可以暂时停止预取ddrsdram地址。因为ddrsdram地址的数量远远比缓冲ram地址多,这样就等同于减少了预取ddrsdram地址的数量,从而在后端管理单元用预取的包含有缓冲ram地址的ram地址读入用户数据之后,可以重新在不超过上述预设阈值的条件下预取包含有缓冲ram地址的ram地址,从而能够提高缓冲ram地址的使用周转率。

203、主机向前端管理单元发送读操作请求;

本实施例中,当用户需要进行读操作时,用户可以通过主机向前端管理单元发送读操作请求。

需要说明的是,读操作是指后端管理单元读出存储在nand中的用户数据,然后将该用户数据读入缓冲ram地址对应的缓冲ram存储空间,最后由前端管理单元将存储在该缓冲ram存储空间中的用户数据发送给主机。本实施例中的读操作可以包含前端读操作和后端读操作,后端读操作即是后端管理单元读出存储在nand中的用户数据,然后将该用户数据读入缓冲ram地址对应的缓冲ram存储空间;而前端读操作即是前端管理单元向主机发送缓冲ram存储空间中的用户数据。此外,该读操作请求则用于指示后端管理单元将nand中的用户数据读入缓冲ram地址对应的缓冲ram存储空间,并由前端管理单元将缓冲ram存储空间中的用户数据发送至主机。

204、前端管理单元向后端管理单元发送读操作请求;

本实施例中,前端在接收到主机发送过来的读操作请求之后,可以先不根据该读操作请求执行相应操作,而是将接收到的读操作请求发送到后端管理单元。并且,在该读操作请求中可以包含需使用ram地址的置位信息,具体地,可以在读操作请求中将某一个比特值设为“1”,以此来标示置位信息,从而使后端管理单元能够获知该读操作请求需要使用ram地址;此外,同样可以在读操作请求中将某一个比特值设为“0”,当后端管理单元识别到该比特值为“0”时,可以获知该读操作请求需要使用ram地址。有关置位信息的标示方法,具体此处不做限定。

205、后端管理单元执行后端读操作;

本实施例中,后端管理单元在接收到前端管理单元发送的读操作请求之后,后端管理单元可以执行后端读操作,该后端读操作即是将nand中的用户数据读入ram地址对应的ram存储空间,其中,ram存储空间至少包括缓冲ram地址对应的缓冲ram存储空间,当存储的用户数据量较大时,ram存储空间也可以包括缓冲ram地址对应的缓冲ram存储空间以及ddrsdram地址对应的ddrsdram存储空间。

需要说明的是,被读入用户数据的ram存储空间对应的ram地址,就是后端管理单元预先从ram管理单元申请并预取的ram地址。进一步地,在预取的ram地址中,至少包括缓冲ram地址,还可以包括ddrsdram地址。

206、后端管理单元将已完成后端读操作的消息发送至前端管理单元;

本实施例中,后端管理单元在向ram存储空间读入用户数据之后,即后端管理单元在完成后端读操作之后,可以将已完成后端读操作的消息发送到前端管理单元。需要说明的是,在该已完成后端读操作的消息中,至少包含有已读入用户数据的缓冲ram存储空间对应的缓冲ram地址,如果存储的用户数据量较大时,则在该消息中,除了包含有缓冲ram地址之外,还包含有已读入用户数据的ddrsdram空间对应的ddrsdram地址。

207、前端管理单元执行前端读操作。

本实施例中,在前端管理单元接收到后端管理单元发送的已完成后端读操作的消息之后,前端管理单元就可以执行前端读操作,即前端管理单元将存储在ram空间中的用户数据发送到主机中。也就是说,前端管理单元将至少存储在缓冲ram空间中的用户数据发送到主机中,如果用户数据量较大,则在预取的缓冲ram地址对应的缓冲ram空间以及部分预取的ddrsdram地址所ddrsdram空间中都会存储有根据读操作请求读入的用户数据,此种情况下,前端管理单元则需要将存储在缓冲ram空间以及ddrsdram空间中的用户数据都发送到主机中。

优选地,前端管理单元可以通过成组数据传送(directmemoryaccess,dma)方式将用户数据传送给主机。dma方式无需中央处理器(centralprocessingunit,cpu)参加传送操作,因此省去了cpu取指令、取数、送数等操作。内存地址修改、传送字个数的计数等等,也不是由软件实现,而是用硬件线路直接实现,dma方式能满足高速输入/输出设备的要求,也有利于cpu效率的发挥。dma方式主要适用于一些高速的输入/输出设备。这些设备传输字节或字的速度非常快,而dma方式能使输入/输出设备直接和存储器进行成批数据的快速发送。

此外,在前端管理单元通过dma方式将用户数据发送到主机之后,可以立即清除缓冲ram地址对应的缓冲ram空间中的用户数据,这样后端管理单元有可以预取该缓冲ram地址以备读操作使用。

需要说明的是,本实施例中,在后端管理单元向ram管理单元申请读操作所需的ram地址之前,后端管理单元需要先将发送过来的排列在该读操作请求之前的其他消息队列中的消息处理完,然后在准备读取nand中的用户数据之前,才开始解析前端管理单元发送过来的读操作请求。在后端管理单元确定前端管理单元发送过来的消息类别是读操作请求后,才会向ram管理单元申请ram地址。

在本申请实施例中,固态硬盘的前端管理单元在接收到用户通过主机发送的读操作请求后,前端管理单元将读操作请求发送给后端管理单元,由后端管理单元向ram管理单元申请并预取ram地址,在申请ram地址时,优先申请缓冲ram地址,在预取完缓冲ram地址之后,再继续预取ddrsdram地址,直到缓冲ram地址的第一预取数量与ddrsdram地址的第二预取数量之和达到ram地址的预设阈值,并可以减小预取的ram地址的预设阈值,从而减少ddrsdram地址的预取数量,由上可知,由于固态硬盘由后端管理单元申请包含有缓冲ram空间的ram空间,因此减少了如果由前端管理单元申请缓冲ram空间之后,在该申请消息到达后端管理单元时需要在消息队列中等待所占用的时间,并由于优先预取缓冲ram地址,且进一步设置并减小了ram地址的预取数量的预设阈值,从而进一步提高了缓冲ram存储空间的使用比率,同时降低了ddrsdram的使用率,因此提高了固态硬盘存储数据的速率,最终提高了固态硬盘的读操作性能。

上面对本申请实施例中的数据处理方法的一个实施例进行了描述,下面对本申请实施例中数据处理方法的另一个实施例进行描述,请参阅图3和图4,图3为本申请实施例中数据处理方法的另一个实施例示意图,图4为本申请实施例中的固态硬盘的数据处理方法的流程示意图。

请参阅图3,本申请实施例中数据处理方法的另一个实施例包括:

301、ram地址预取模块向ram管理单元申请缓冲ram地址;

本实施例中,后端管理单元中的ram地址预取模块可以预先向后端管理单元中ram管理单元申请缓冲ram地址。

302、ram地址预取模块向ram管理单元预取缓冲ram地址;

ram地址预取模块向ram管理单元申请缓冲ram地址之后,可以向ram管理单元预取缓冲ram地址。

需要说明的是,如果ram管理单元中不存在缓冲ram地址,则ram地址预取模块向ram管理单元预取ddrsdram地址。

303、判断模块判断第一预取数量是否达到预设阈值;

在ram地址预取模块向ram管理单元预取了缓冲ram地址之后,后端管理单元的判断模块可以判断缓冲ram地址的预取数量是否达到固态硬盘出厂时ram地址的预取数量的预设阈值,该缓冲ram地址的预取数量即为第一预取数量。

若否,则执行步骤304;若是,则执行步骤305。

304、ram地址预取模块从ram管理单元预取第二预取数量的ddrsdram地址;

如果判断模块确定第一预取数量还未达到ram地址的预取数量的预设阈值,则ram地址预取模块可以从ram管理单元预取第二预取数量的ddrsdram地址,该第二预取数量为预设阈值与第一预取数量的差值。当ram地址预取模块从ram管理单元预取的ddrsdram地址的预取数量与预取的缓冲ram地址的预取数量之和达到ram地址的预取数量的预设阈值时,ram地址预取模块就会暂停从ram管理单元继续预取ddrsdram地址。

305、主机向第一接收模块发送读操作请求;

在ram地址预取模块为读操作请求预取完ram地址之后,主机就可以向前端管理单元的第一接收模块发送读操作请求。

306、第一发送消息队列模块向第二接收消息队列模块发送读操作请求;

然后,前端管理单元中的第一发送消息队列模块可以将第一接收模块中的读操作请求发送至后端管理单元中的第二接收消息队列。

需要说明的是,消息队列模块是指在消息的传输过程中保存消息的模块。队列的主要目的是提供路由并保证消息的传递,本实施例中,第一发送消息队列模块将读操作请求发送到第二接收消息队列中时,第二接收消息队列不会立刻处理该读操作请求,而是先保留该读操作请求,并且先处理排列在该读操作请求前面队列中的各种消息直到将排列在读操作请求前面队列中的各种消息都处理完之后,才可以将读操作请求传递到后端读操作模块。

307、后端读操作模块将nand模块中的用户数据读入缓冲ram存储空间;

后端管理单元中的后端读操作模块在接收到第二接收消息队列模块中的读操作请求之后,可以将nans模块中的用户数据读入预取的缓冲ram地址对应的缓冲ram存储空间(图4中未示出缓冲ram存储空间)。

需要说明的是,后端读操作模块还可以将nand模块中的其他满足读操作请求的用户数据读入预取的ddrsdram地址对应的ddrsdram存储空间(图4中未示出ddrsdram存储空间)。

308、第二发送消息队列模块将已完成读操作的消息发送至第一接收消息模块;

本实施例中,在后端读操作模块将用户数据读入缓冲ram空间和/或ddrsdram空间之后,后端管理单元的第二发送消息队列模块可以将已完成读操作的消息发送到前端管理单元的第一接收消息队列模块。

在该已完成读操作的消息中,包含有预取的ram地址中的缓冲ram地址和/或ddrsdram地址。

309、前端读操作模块将缓冲ram存储空间中的用户数据发送至主机;

前端管理单元的前端读操作模块在接收到第一接收消息队列模块发送的已完成读操作消息之后,就可以将存储在缓冲ram空间和/或ddrsdram空间中的用户数据发送到主机中。

需要说明的是,前端读操作模块将用户数据发送到主机中的方式可以用dma方式,也可以用输入/输出通道控制方式,具体此处不做限定。

310、清除缓冲ram存储空间中的用户数据。

在前端读操作模块将用户数据发送到主机之后,后端管理单元就可以清除缓冲ram存储空间和/或ddrsdram存储空间中的用户数据。这样,后端管理单元的ram地址预取模块又可以立刻预取已处于空状态的缓冲ram空间对应的缓冲ram地址,以备下一个读操作请求使用。

在本申请实施例中,由于固态硬盘的前端管理单元的第一接收模块在接收到来自主机的读操作请求后,不会直接向后端管理单元的ram地址预取模块申请包含有缓冲ram地址的ram地址,而是将该读操作请求发送到后端管理单元的第二接收消息队列模块中,第二接收消息队列模块在将排列在该读操作请求之前的各种消息处理完之后,才向ram地址管理单元申请包含有缓冲ram地址的ram地址,因此减少了占用申请到的缓冲ram空间的时间,增加了利用缓冲ram存储数据的时间;进一步地,在ram地址预取模块在向ram管理单元申请ram地址时,可以优先申请并预取缓冲ram地址,因此更进一步增加了利用缓冲ram的时间;更进一步地,由于可以事先减小预取ram地址的预设阈值,因此更进一步地减少了预取的ddrsdram地址,从而更进一步增加缓冲ram的利用时间,由于缓冲ram读入数据的速率要比ddrsdram快,因此最终提升了固态硬盘的读性能。

上面对本申请实施例中的固态硬盘的数据处理方法进行了描述,下面对本申请实施例中的固态硬盘进行描述,请参阅图5,图5为本申请实施例中固态硬盘的一个实施例示意图。

本申请实施例中固态硬盘的前端管理单元500a的一个实施例包括:

第一接收模块501,用于接收主机500d发送的读操作请求;

第一发送消息队列模块502,用于向后端管理单元500b发送读操作请求,该读操作请求中包含读操作需使用随机存储器ram地址的置位信息,读操作包含前端读操作以及后端读操作,后端读操作为后端管理单元500b将计算机闪存模块nand中的用户数据读入缓冲ram地址对应的缓冲ram存储空间,前端读操作为前端管理单元500a向主机500d发送缓冲ram存储空间中的用户数据,读操作请求用于指示后端管理单元500b将nand中的用户数据读入缓冲ram存储空间,并由前端管理单元500a将缓冲ram存储空间中的用户数据发送至主机500d;

第一接收消息队列模块503,用于接收后端管理单元500b发送的已完成读操作的消息,该消息中包含ram地址中的缓冲ram地址;

前端读操作模块504,用于执行前端读操作。

在本申请实施例中,固态硬盘的前端管理单元500a中的第一发送消息队列模块将第一接收模块501接收到的读操作请求发送到后端管理单元500b,而无需直接由前端管理单元500a申请读操作所需的缓冲ram地址,因此减少了占用申请到的缓冲ram地址对应的缓冲ram空间的时间,增加了利用缓冲ram存储数据的时间,因此提升了固态硬盘的读性能。

上述实施例是固态硬盘的前端管理单元处理读操作请求的技术方案,下述实施例是固态硬盘的后端管理单元处理读操作请求的技术方案。

请参阅图5,本申请实施例中固态硬盘的后端管理单元500b的一个实施例包括:

ram地址预取模块505,用于向ram管理单元500c申请ram地址,并从ram管理单元500c预取ram地址,该ram地址中包含缓冲ram地址;

第二接收消息队列模块506,用于接收前端管理单元500a发送的读操作请求,该读操作请求中包含读操作需使用随机存储器ram地址的置位信息,读操作包含前端读操作以及后端读操作,后端读操作为后端管理单元500b将计算机闪存模块nand510中的用户数据读入缓冲ram地址对应的缓冲ram存储空间,前端读操作为前端管理单元500a向主机500d发送缓冲ram存储空间中的用户数据,读操作请求用于指示后端管理单元500b将nand中的用户数据读入缓冲ram存储空间,并由前端管理单元500a将缓冲ram存储空间中的用户数据发送至主机500d;

后端读操作模块507,用于执行所述后端读操作;

第二发送消息队列模块508,用于将已完成所述后端读操作的消息发送至所述前端管理单元500a,所述消息中包含所述缓冲ram地址。

ram地址预取模块505具体用于根据ram地址的预取数量的预设阈值从ram管理单元500c预取缓冲ram地址,该缓冲ram地址的预取数量为第一预取数量,该第一预取数量至少为一个。

所述后端管理单元500b还包括:

判断模块509,用于判断第一预取数量是否达到所述预设阈值;若否,则ram地址预取模块还用于从ram管理单元预取第二预取数量的双倍速率同步动态随机存储器ddrsdram地址,该第二预取数量为预设阈值与第一预取数量的差值。

在本申请实施例中,后端管理单元的第二接收消息队列模块506在接收到前端管理单元500a发送的读操作请求后,在读取数据之前,由ram地址预取模块505申请并预取ram地址,并优先申请缓冲ram地址,还可以减小预取的ram地址的预设阈值,从而减少ddrsdram地址的预取数量,由上可知,由于固态硬盘由后端管理单元500b申请包含有缓冲ram空间的ram空间,而不是由前端管理单元500a申请缓冲ram空间,因此减少了占用缓冲ram空间的时间,并由于优先预取缓冲ram地址,且进一步设置并减小了ram地址的预取数量的预设阈值,从而进一步提高了缓冲ram存储空间的使用比率,同时降低了ddrsdram的使用率,因此提高了固态硬盘存储数据的速率,最终提高了固态硬盘的读操作性能。

上述是本申请实施例中后端管理单元的一个实施例,下面请参阅图6,本申请实施例提供了固态硬盘的另一个实施例。

本申请实施例提供的固态硬盘的另一个实施例包括:

该固态硬盘600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,cpu)601(例如,一个或一个以上处理器)、nand605和ram606,该nand605以及ram606中均存储有一个或一个以上的应用程序或数据。

其中,中央处理器601中存储有多个单元,其中包括前端管理单元、后端管理单元、ram管理单元等,且各个单元中可以包括多个模块;nand605是持久存储的闪存模块,ram606是易失性存储的模块,包括缓存ram以及ddrsdram。存储在nand605的程序以及存储在ram606的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器601可以设置为与nand605以及ram606通信,在固态硬盘600上执行nand605以及ram606中的一系列指令操作。

固态硬盘600还可以包括一个或一个以上电源602,一个或一个以上有线或无线网络接口603,一个或一个以上输入输出接口604,和/或,一个或一个以上操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

本实施例中固态硬盘600中的中央处理器601所执行的流程与前述图2与图3所示的实施例中描述的方法流程类似,此处不再赘述。

在本申请实施例中,由于中央处理器601中由后端管理单元申请缓冲ram地址,因此固态硬盘减少了在申请到缓冲ram空间后到使用ram空间前所占用缓冲ram的时间,这样就能够增加使用缓冲ram的时间,并由于减小了ram地址的预取数量的预设阈值,因此减少了预去的ddrsdram地址的预取数量,同时由于优先申请缓冲ram地址,因此进一步提高了缓冲ram地址对应的缓冲ram空间的使用率,最终提升了固态硬盘的读性能。

本申请实施例还提供一种计算机存储介质,该计算机存储介质用于储存为前述固态硬盘所用的计算机软件指令,其包括用于执行为固态硬盘所设计的程序。

本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机软件指令,该计算机软件指令可通过处理器进行加载来实现前述图2和图3所示的实施例中的方法流程。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1