CN102298561B - 一种对存储设备进行多通道数据处理的方法、系统和装置 - Google Patents
一种对存储设备进行多通道数据处理的方法、系统和装置 Download PDFInfo
- Publication number
- CN102298561B CN102298561B CN201110228780.1A CN201110228780A CN102298561B CN 102298561 B CN102298561 B CN 102298561B CN 201110228780 A CN201110228780 A CN 201110228780A CN 102298561 B CN102298561 B CN 102298561B
- Authority
- CN
- China
- Prior art keywords
- request
- access
- storage
- queue
- channel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 230000008569 process Effects 0.000 title abstract description 4
- 238000012545 processing Methods 0.000 claims abstract description 103
- 238000013507 mapping Methods 0.000 claims abstract description 39
- 238000003860 storage Methods 0.000 claims description 134
- 238000007726 management method Methods 0.000 claims description 53
- 238000013519 translation Methods 0.000 claims description 7
- 230000002093 peripheral effect Effects 0.000 claims description 5
- 239000000872 buffer Substances 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 4
- 238000009826 distribution Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Landscapes
- Memory System (AREA)
Abstract
本发明提供了一种对存储设备进行多通道数据处理的方法、系统和装置,其中系统包括:驱动及读写管理装置、以及一个以上的存储控制器,其中每个存储通道存在一个独立的存储控制器;所述驱动及读写管理装置,用于接收各线程提供的访问请求,对接收到的访问请求进行调度并发送给对应线程所负责存储通道的存储控制器,其中,每个线程负责一个或者多个存储通道;所述存储控制器,用于根据所在存储通道中逻辑地址与物理地址的映射关系,执行所接收到访问请求对应的数据处理。本发明能够使多通道之间的并发调度由上层软件决定,更适合应用层的需求,达到最佳的读写性能。
Description
【技术领域】
本发明涉及计算机技术领域,特别涉及一种对存储设备进行多通道数据处理的方法、系统和装置。
【背景技术】
随着半导体介质存储装置的广泛使用,出现了各种各样的存储设备以及多种存储介质,例如固态硬盘(SSD,SolidStateDisk)、闪存(flash)卡。SSD或者flash卡都是由多片flash芯片组成,每个flash芯片或者一组flash芯片可以构成一个存储通道,存储控制器通过在存储通道(以下简称通道)之间的并发读写来提高总体性能,如图1所示,软件驱动层仅为上层软件提供统一访问的接口,数据在多通道之间的调度由存储控制器统一决定。但对于上层软件来说,看不到各通道,也就是说,各通道对于上层软件是不可见的,需要存储控制器控制多通道之间的调度和并发读写。这就可能造成如下缺陷:
如果存储控制器的并发粒度太小,则需要存储控制器维护一张非常巨大的逻辑地址到物理地址的映射表,而且还容易造成写放大;如果存储控制器的并发粒度太大,则不能充分利用硬件提供的资源。也就是说,存储控制器并不知道如何在多通道之间进行调度更适合应用层的需求,来达到最佳的读写性能。
【发明内容】
本发明提供了一种对存储设备进行多通道数据处理的方法和系统,从而使多通道之间的并发调度更适合应用层的需求,达到最佳的读写性能。
具体技术方案如下:
一种对存储设备进行多通道数据处理的系统,该系统包括:驱动及读写管理装置、以及一个以上的存储控制器;其中每个存储通道存在一个独立的存储控制器;
所述驱动及读写管理装置,用于接收各线程提供的访问请求,对接收到的访问请求进行调度并发送给对应线程所负责存储通道的存储控制器,其中,每个线程负责一个或者多个存储通道;
所述存储控制器,用于根据所在存储通道中逻辑地址与物理地址的映射关系,执行所接收到访问请求对应的数据处理。
其中,所述存储通道包含一个或一组闪存flash芯片。
所述存储控制器与所述驱动及读写管理装置通过外设总线互连标准PCI连接。
具体地,所述驱动及读写管理装置根据预先保存的线程与存储通道的绑定关系将所述访问请求发送给对应线程所负责存储通道的存储控制器,或者,根据所述访问请求中携带的通道号将所述访问请求发送给对应线程所负责存储通道的存储控制器。
其中,所述驱动及读写管理装置具体包括:块设备操作单元、一个以上的请求子队列、请求调度单元、总请求队列以及请求处理单元;
所述块设备操作单元,用于接收各线程发送的访问请求,将访问请求送入所述一个以上的请求子队列;
所述请求调度单元,用于调度各请求子队列中的访问请求并送入所述总请求队列;
所述请求处理单元,用于从所述总请求队列读取访问请求并分发给对应存储通道的存储控制器。
所述一个以上的请求子队列为各存储通道的请求子队列,所述块设备操作单元将访问请求送入对应存储通道的请求子队列;或者,
所述一个以上的请求子队列为各访问类型的请求子队列,所述块设备操作单元将访问请求送入对应访问类型的请求子队列。
所述请求处理单元采用批处理的方式从所述总请求队列读取访问请求并分发给对应存储通道的存储控制器。
其中,所述存储控制器包括:存储器文件RF、闪存翻译层FTL、先入先出存储器FIFO以及闪存控制模块;
所述RF,用于记录接收到的访问请求;
所述FTL与所述RF、所述FIFO以及缓存处理数据的DRAM连接,用于进行地址管理,所述地址管理包括:维护所在存储通道中逻辑地址到物理地址的地址映射表,完成所述RF所记录访问请求的逻辑地址到物理地址的映射;
所述闪存控制模块,与所述FTL通过所述FIFO连接,用于根据所述FTL的地址映射结果,按照所述访问请求对flash芯片进行数据处理。
更进一步地,所述RF还用于保存数据处理的状态信息;
所述闪存控制模块,还用于在数据处理后,将处理状态通过所述FIFO传回所述FTL,由所述FTL将所述处理状态写入所述RF。
一种驱动及读写管理装置,该驱动及读写管理装置包括:块设备操作单元、一个以上的请求子队列、请求调度单元、总请求队列以及请求处理单元;
所述块设备操作单元,用于接收各线程发送的访问请求,将访问请求送入所述一个以上的请求子队列;
所述请求调度单元,用于调度各请求子队列中的访问请求并送入所述总请求队列;
所述请求处理单元,用于从所述总请求队列读取访问请求并分发给对应存储通道的存储控制器;
其中每个线程负责一个或多个存储通道,每个存储通道存在一个独立的存储控制器。
具体地,所述一个以上的请求子队列为各存储通道的请求子队列,所述块设备操作单元将访问请求送入对应存储通道的请求子队列;或者,
所述一个以上的请求子队列为各访问类型的请求子队列,所述块设备操作单元将访问请求送入对应访问类型的请求子队列。
优选地,所述请求处理单元采用批处理的方式从所述总请求队列读取访问请求并分发给对应存储通道的存储控制器。
一种对存储设备进行多通道数据处理的方法,该方法应用于包括驱动及读写管理装置、以及一个以上的存储控制器的系统,其中每个存储通道存在一个独立的存储控制器;该方法包括:
S1、所述驱动及读写管理装置接收各线程提供的访问请求,对接收到的访问请求进行调度并发送给对应线程所负责存储通道的存储控制器,其中,每个线程负责一个或者多个存储通道;
S2、所述存储控制器根据所在存储通道中逻辑地址与物理地址的映射关系,执行所接收到访问请求对应的数据处理。
其中,所述存储通道包含一个或一组闪存flash芯片。
具体地,在所述步骤S1中,所述驱动及读写管理装置通过外设总线互连标准PCI将访问请求发送给对应线程所负责存储通道的存储控制器。
在所述步骤S1中,所述驱动及读写管理装置根据预先保存的线程与存储通道的绑定关系将所述访问请求发送给对应线程所负责存储通道的存储控制器,或者,根据所述访问请求中携带的通道号将所述访问请求发送给对应线程所负责存储通道的存储控制器。
具体地,所述步骤S1包括:
S11、在所述驱动及读写管理装置中,块设备操作单元接收各线程发送的访问请求,将访问请求送入一个以上的请求子队列;
S12、请求调度单元调度各请求子队列中的访问请求并送入总请求队列;
S13、请求处理单元从所述总请求队列读取访问请求并分发给对应存储通道的存储控制器。
步骤S11中所述将访问请求送入一个以上的请求子队列为:
所述块设备操作单元将访问请求送入对应存储通道的请求子队列;或者,
所述块设备操作单元将访问请求送入对应访问类型的请求子队列。
优选地,所述步骤S13为:
所述请求处理单元采用批处理的方式从所述总请求队列读取访问请求并分发给对应存储通道的存储控制器。
其中,所述步骤S2具体包括:
S21、在所述存储控制器中,存储器文件记录接收到的访问请求;
S22、闪存翻译层FTL根据维护的所在存储通道中逻辑地址到物理地址的地址映射表,完成所述RF所记录访问请求的逻辑地址到物理地址的映射;
S23、所述闪存控制模块根据所述FTL的地址映射结果,按照所述访问请求对flash芯片进行数据处理。
更进一步地,所述步骤S2还包括:
所述闪存控制模块在数据处理后,将处理状态通过所述FIFO传回所述FTL,由所述FTL将所述处理状态写入所述RF。
一种驱动及读写管理方法,应用于包括块设备操作单元、一个以上的请求子队列、请求调度单元、总请求队列以及请求处理单元的装置;该方法包括:
A、所述块设备操作单元接收各线程发送的访问请求,将访问请求送入一个以上的请求子队列;
B、所述请求调度单元调度各请求子队列中的访问请求并送入总请求队列;
C、所述请求处理单元从所述总请求队列读取访问请求并分发给对应存储通道的存储控制器;
其中每个线程负责一个或多个存储通道,每个存储通道存在一个独立的存储控制器。
具体地,步骤A中所述将访问请求送入一个以上的请求子队列为:
所述块设备操作单元将访问请求送入对应存储通道的请求子队列;或者,
所述块设备操作单元将访问请求送入对应访问类型的请求子队列。
优选地,所述步骤C为:
所述请求处理单元采用批处理的方式从所述总请求队列读取访问请求并分发给对应存储通道的存储控制器。
由以上技术方案可以看出,在本发明中各线程分别负责不同的通道,使得上层软件根据应用层的需求将处理任务分发给多个线程进行处理时,粒度可直接由上层软件决定并体现在不同的通道上,而不是由存储控制器实现多通道的并发调度,从而满足应用层的需求;并且,由于各通道分别具有独立的存储控制器,存储控制器仅需要维护所在通道的地址映射表,避免了并发粒度太小造成的存储压力,更方便达到最佳的读写性能。
【附图说明】
图1为现有技术中对存储设备进行多通道数据处理的系统示意图;
图2为本发明实施例所提供系统的硬件架构图;
图3为本发明实施例提供的主要方法流程图;
图4为本发明实施例提供的并发数据处理的效果图;
图5a为本发明实施例提供的驱动及读写管理装置的一种结构图;
图5b为本发明实施例提供的驱动及读写管理装置的另一种结构图;
图6为本发明实施例提供的驱动及读写管理方法的流程图;
图7为本发明实施例提供的各通道的存储控制器的硬件控制架构示意图;
图8为本发明实施例提供的通道引擎的硬件架构图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
图2为本发明实施例所提供系统的硬件架构图,如图1所示,在该系统的硬件架构中,每个通道对存在一个独立的存储控制器,负责所在通道中flash芯片的数据分布和数据处理,其中数据处理包括:数据的读、写或擦除等。各通道之间的调度由CPU中驱动及读写管理装置通过软件的方式控制,也就是说,驱动及读写管理装置为各通道的数据读写、擦除等处理提供应用管理程序接口(API),多通道之间的调度交由上层软件控制。
本发明实施例提供的架构中,各通道对上层软件是可见的,整个存储设备可以看成由多个相互独立的子设备构成,每个子设备包括一个通道的存储控制器和flash芯片。每个线程可以负责一个或者多个通道的访问,不同线程可以对不同通道进行并发访问。一种优选的实施方式为一个线程负责一个通道。
各通道的存储控制器与CPU的驱动及读写管理装置可以通过诸如PCIE等外设总线互连标准(PCI)进行连接。
其中,驱动及读写管理装置,用于接收各线程提供的访问请求,对接收到的访问请求进行调度并发送给对应线程所负责存储通道的存储控制器,其中每个线程负责一个或多个存储通道。
存储控制器,用于根据所在存储通道中逻辑地址与物理地址的映射关系,执行所接收到访问请求对应的数据处理。
该硬件架构下的数据处理流程可以参见图3所示,主要包括以下步骤:
步骤301:驱动及读写管理装置接收线程提供的访问请求。
该访问请求可以包括但不限于:读请求、写请求或者擦除请求。
步骤302:驱动及读写管理装置根据预设的通道调度策略,对接收到的访问请求进行调度并发送给对应线程所负责通道的存储控制器。
由于在本发明实施例中,线程与通道可以存在一定绑定关系,因此,驱动及读写管理装置可以预先保存该绑定关系,接收到来自线程的访问请求时,根据该绑定关系确定该线程所负责的通道,并发送访问请求;或者,线程在发送访问请求时,在该访问请求中指定通道号,该通道号为该线程所负责通道的通道号,驱动及读写管理装置根据访问请求中指定的通道号确定该线程所负责的通道,并发送访问请求。
在进行数据处理时,上层软件根据应用层的需求即数据量的大小,会将处理任务分发给多个线程进行处理,本发明实施例中各线程分别负责不同的通道,并发粒度直接由上层软件决定并体现在不同的通道上,因此,本发明实施例提供的这种方式能够直接满足上层软件的并发需求。而现有技术中,各线程并不存在负责的通道,虽然上层软件根据数据量的大小会将处理任务分发给多个线程进行处理,但存储控制器会将多个线程发送来的请求进行并发调度,并发粒度由存储控制器控制,显然无法满足应用层的并发需求。
步骤303:存储控制器根据其所在通道中逻辑地址与物理地址的映射关系,执行所接收到访问请求对应的数据处理。
由于通常存储空间的物理地址对于软件是屏蔽的,而采用逻辑地址,也就是说,线程发送的访问请求中携带的是逻辑地址,即目的地址是逻辑地址,存储控制器执行具体的数据处理操作时,需要查找地址映射表确定逻辑地址对应的物理地址,到对应的物理地址执行数据处理。在本发明实施例中,各存储控制器存储和维护的地址映射表仅是其所在通道的逻辑地址与物理地址的映射关系即可。
各通道的地址映射表可以预先设置在各存储控制器中,也可以在读写过程中动态生成,该部分为现有技术,在此不再赘述。
通过上述流程实现的数据处理从整体上看,能够实现各线程对其所负责通道的并发访问,以每个线程负责一个通道为例,效果如图4所示。
下面对驱动及读写管理装置的具体实现进行详细描述,如图5a所示,该驱动及读写管理装置可以具体包括:块设备操作单元、一个以上的请求子队列、请求调度单元、总请求队列以及请求处理单元。
其中,块设备操作单元,用于接收各线程发送的访问请求,将访问请求送入一个以上的请求子队列。
请求调度单元,用于调度各请求子队列中的访问请求并送入总请求队列。
请求处理单元,用于从总请求队列读取访问请求并分发给对应存储通道的存储控制器。
在该驱动及读写管理装置的结构下,具体实现的驱动及读写管理方法可以如图6所示,包括以下步骤:
步骤601:各线程均将访问请求发送给块设备操作单元。
步骤602:块设备操作单元接收各线程发送的访问请求,将访问请求送入一个以上的请求子队列。
上述的请求子队列用于存储访问请求,可以采用如下两种方式:
第一种方式:以通道划分请求子队列,块设备操作单元将访问请求放入对应的通道的请求子队列。如图5a所示,如果线程1负责通道1,线程2负责通道2,则块设备操作单元接收到线程1发送的访问请求后,将该访问请求发送给通道1的请求子队列,接收到线程2发送的访问请求后,将该访问请求发送给通道2的请求子队列。
第二种方式:以访问类型划分请求子队列,块设备操作单元将访问请求放入对应访问类型的请求子队列。如图5b所示,可以划分为读请求子队列、写请求子队列和擦除请求子队列,块设备操作单元接收到来自各线程的访问请求后,如果该访问请求的访问类型是读数据,则将该访问请求发送给读请求子队列;如果该访问请求的访问类型是写数据,则将该访问请求发送给写请求子队列;如果该访问请求的访问类型是擦除请求子队列,则将该访问请求发送给擦除请求子队列。
步骤603:请求调度单元调度各请求子队列中的访问请求并送入总请求队列。
其中,请求调度单元调度各请求子队列的方式可以包括但不限于:轮询调度、随机调度等。另外,可以根据总请求队列中的访问请求数量状况,决定调度的速度,从而防止拥塞。
步骤604:请求处理单元从总请求队列读取访问请求并分发给对应通道的存储控制器。在此可以预设请求处理函数,请求处理单元调用请求处理函数从总请求队列中读取访问请求,最终发起硬件操作。
一种优选的实施方式,请求处理单元可以采用批处理的方式处理总请求队列中的访问请求,从而提高访问请求的分发效率。
上述各线程在发送访问请求后可以进入睡眠状态,等待操作完成,待硬件完成数据处理后,会通过中断处理函数唤醒对应线程。此处的硬件完成数据处理为通道的存储控制器按照接收到的访问请求完成flash芯片的数据处理。
下面对各通道的存储控制器的硬件控制架构进行详细描述,图7为本发明实施例提供的各通道的存储控制器的硬件控制架构示意图,如图7所示,该硬件控制架构可以包括:总线控制模块、动态随机存储器(DRAM)、DRAM控制器以及各通道的通道引擎(Channelengine),该通道引擎就相当于上述系统中的存储控制器。
其中,每个通道都有一个单独的通道引擎,该通道引擎负责所在通道的数据处理,包括读数据、写数据或者擦除数据等,很容易地实现数据处理的并发性。
各通道的通道引擎通过总线控制单元接收访问请求,并根据其所在通道中逻辑地址与物理地址的映射关系,执行所接收到访问请求对应的数据处理。在本发明实施例中,每个通道由一个通道引擎控制,这个通道引擎比现有的通道引擎更简单,因为不需要管理所有通道的并发性,无需维护所有通道的地址映射表,仅需要维护其所在通道的地址映射表。
其中,总线控制单元可以采用PCIEDMA。DRAM用于缓存处理的数据,DRAM控制器用于对DRAM的读写状态进行控制。
另外,该硬件控制架构中还可以包括BCH校验模块,用于对随机错误模式进行校正。
上述多个通道的通道引擎、总线控制模块、DRAM控制器、BCH校验模块可以在一个现场可编程门阵列(FPGA)芯片中实现,该FPGA、DRAM和flash芯片可以设置在一个PCB电路板上。
总线控制模块、DRAM控制器、BCH校验模块的用法与现有技术相同,不同的是,为了节省FPGA电路资源和结构上的简化,多个通道引擎可以公用一个DRAM控制器、总线控制模块和BCH校验模块。DRAM控制器、总线控制模块和BCH校验模块的数据处理带宽都足够大,能保证多个通道同时读写时,数据传输带宽能够达到理论值上限。
下面对上述的通道引擎的硬件架构进行详细描述,如图8所示,存储器文件(RF,RegisterFile)用于记录接收到的访问请求,包括访问请求的源地址和目的地址、访问类型、数据长度等,还可以保存数据处理的状态信息和异常信息等。
闪存翻译层(FTL,FlashTranslationLayer)与RF、DRAM以及FIFO连接,用于进行地址管理,该地址管理包括:维护逻辑地址到物理地址的地址映射表,完成访问请求对应的逻辑地址到物理地址的映射。即将访问请求中目的地址映射为具体的flash芯片上存储空间的物理地址。
上述地址管理还可以包括:flash芯片的坏块管理、均衡磨损(wearleveling)控制等,这部分与现有技术相同,不再赘述。
闪存控制模块用于根据FTL进行地址映射结果,对flash芯片进行数据处理。
如果接收到的访问请求为写数据,则数据经总线控制模块传到DRAM,RF记录该访问请求,FTL根据该访问请求进行地址映射后,将数据从DRAM通过FIFO传给闪存控制模块,闪存控制模块根据地址映射的结果,将该数据写入相应的flash芯片,并将处理状态通过FIFO传回FTL,由FTL将处理状态写入RF。
如果接收到的访问请求为读数据,则RF记录该访问请求,FTL根据该访问请求进行地址映射,闪存控制模块根据地址映射的结果,从相应的flash芯片中读取数据,将读取的数据经由FIFO传给FTL,FTL将数据送入DRAM,再经由总线控制模块传给CPU的驱动及读写管理装置。并且,闪存控制模块在处理完成后,会将处理状态通过FIFO传回FTL,由FTL将处理状态写入RF。
如果接收到的访问请求为擦除数据,则RF记录该访问请求,FTL根据该访问请求进行地址映射,闪存控制模块根据地址映射的结果,从相应的flash芯片中擦除数据,并将处理状态通过FIFO传回FTL,由FTL将处理状态写入RF。
上述FIFO的作用是作时钟隔离,因为FTL和DRAM运行在较高的时钟域,而闪存控制模块运行在较低的时钟域。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (24)
1.一种对存储设备进行多通道数据处理的系统,其特征在于,该系统包括:驱动及读写管理装置、以及一个以上的存储控制器;其中每个存储通道存在一个独立的存储控制器;
所述驱动及读写管理装置,用于接收各线程提供的访问请求,对接收到的访问请求进行调度并发送给对应线程所负责存储通道的存储控制器,其中,每个线程负责一个或者多个存储通道;
所述存储控制器,用于根据所在存储通道中逻辑地址与物理地址的映射关系,执行所接收到访问请求对应的数据处理;
其中所述驱动及读写管理装置向上层软件提供API,以便上层软件根据应用层的需求将访问请求分发给多个线程。
2.根据权利要求1所述的系统,其特征在于,所述存储通道包含一个或一组闪存flash芯片。
3.根据权利要求1所述的系统,其特征在于,所述存储控制器与所述驱动及读写管理装置通过外设总线互连标准PCI连接。
4.根据权利要求1所述的系统,其特征在于,所述驱动及读写管理装置根据预先保存的线程与存储通道的绑定关系将所述访问请求发送给对应线程所负责存储通道的存储控制器,或者,根据所述访问请求中携带的通道号将所述访问请求发送给对应线程所负责存储通道的存储控制器。
5.根据权利要求1所述的系统,其特征在于,所述驱动及读写管理装置具体包括:块设备操作单元、一个以上的请求子队列、请求调度单元、总请求队列以及请求处理单元;
所述块设备操作单元,用于接收各线程发送的访问请求,将访问请求送入所述一个以上的请求子队列;
所述请求调度单元,用于调度各请求子队列中的访问请求并送入所述总请求队列;
所述请求处理单元,用于从所述总请求队列读取访问请求并分发给对应存储通道的存储控制器。
6.根据权利要求5所述的系统,其特征在于,所述一个以上的请求子队列为各存储通道的请求子队列,所述块设备操作单元将访问请求送入对应存储通道的请求子队列;或者,
所述一个以上的请求子队列为各访问类型的请求子队列,所述块设备操作单元将访问请求送入对应访问类型的请求子队列。
7.根据权利要求5所述的系统,其特征在于,所述请求处理单元采用批处理的方式从所述总请求队列读取访问请求并分发给对应存储通道的存储控制器。
8.根据权利要求1所述的系统,其特征在于,所述存储控制器包括:存储器文件RF、闪存翻译层FTL、先入先出存储器FIFO以及闪存控制模块;
所述RF,用于记录接收到的访问请求;
所述FTL与所述RF、所述FIFO以及缓存处理数据的DRAM连接,用于进行地址管理,所述地址管理包括:维护所在存储通道中逻辑地址到物理地址的地址映射表,完成所述RF所记录访问请求的逻辑地址到物理地址的映射;
所述闪存控制模块,与所述FTL通过所述FIFO连接,用于根据所述FTL的地址映射结果,按照所述访问请求进行数据处理。
9.根据权利要求8所述的系统,其特征在于,所述RF还用于保存数据处理的状态信息;
所述闪存控制模块,还用于在数据处理后,将处理状态通过所述FIFO传回所述FTL,由所述FTL将所述处理状态写入所述RF。
10.一种驱动及读写管理装置,其特征在于,该驱动及读写管理装置向上层软件提供API,以便上层软件根据应用层的需求将访问请求分发给多个线程;该驱动及读写管理装置包括:块设备操作单元、一个以上的请求子队列、请求调度单元、总请求队列以及请求处理单元;
所述块设备操作单元,用于接收各线程发送的访问请求,将访问请求送入所述一个以上的请求子队列;
所述请求调度单元,用于调度各请求子队列中的访问请求并送入所述总请求队列;
所述请求处理单元,用于从所述总请求队列读取访问请求并分发给对应线程所负责存储通道的存储控制器;
其中每个线程负责一个或多个存储通道,每个存储通道存在一个独立的存储控制器。
11.根据权利要求10所述的装置,其特征在于,所述一个以上的请求子队列为各存储通道的请求子队列,所述块设备操作单元将访问请求送入对应存储通道的请求子队列;或者,
所述一个以上的请求子队列为各访问类型的请求子队列,所述块设备操作单元将访问请求送入对应访问类型的请求子队列。
12.根据权利要求10所述的装置,其特征在于,所述请求处理单元采用批处理的方式从所述总请求队列读取访问请求并分发给对应存储通道的存储控制器。
13.一种对存储设备进行多通道数据处理的方法,其特征在于,该方法应用于包括驱动及读写管理装置、以及一个以上的存储控制器的系统;其中每个存储通道存在一个独立的存储控制器,所述驱动及读写管理装置向上层软件提供API,以便上层软件根据应用层的需求将访问请求分发给多个线程;该方法包括:
S1、所述驱动及读写管理装置接收各线程提供的访问请求,对接收到的访问请求进行调度并发送给对应线程所负责存储通道的存储控制器,其中,每个线程负责一个或者多个存储通道;
S2、所述存储控制器根据所在存储通道中逻辑地址与物理地址的映射关系,执行所接收到访问请求对应的数据处理。
14.根据权利要求13所述的方法,其特征在于,所述存储通道包含一个或一组闪存flash芯片。
15.根据权利要求13所述的方法,其特征在于,在所述步骤S1中,所述驱动及读写管理装置通过外设总线互连标准PCI将访问请求发送给对应线程所负责存储通道的存储控制器。
16.根据权利要求13所述的方法,其特征在于,在所述步骤S1中,所述驱动及读写管理装置根据预先保存的线程与存储通道的绑定关系将所述访问请求发送给对应线程所负责存储通道的存储控制器,或者,根据所述访问请求中携带的通道号将所述访问请求发送给对应线程所负责存储通道的存储控制器。
17.根据权利要求13所述的方法,其特征在于,所述步骤S1具体包括:
S11、在所述驱动及读写管理装置中,块设备操作单元接收各线程发送的访问请求,将访问请求送入一个以上的请求子队列;
S12、请求调度单元调度各请求子队列中的访问请求并送入总请求队列;
S13、请求处理单元从所述总请求队列读取访问请求并分发给对应存储通道的存储控制器。
18.根据权利要求17所述的方法,其特征在于,步骤S11中所述将访问请求送入一个以上的请求子队列为:
所述块设备操作单元将访问请求送入对应存储通道的请求子队列;或者,
所述块设备操作单元将访问请求送入对应访问类型的请求子队列。
19.根据权利要求17所述的方法,其特征在于,所述步骤S13为:
所述请求处理单元采用批处理的方式从所述总请求队列读取访问请求并分发给对应存储通道的存储控制器。
20.根据权利要求13所述的方法,其特征在于,所述步骤S2具体包括:
S21、在所述存储控制器中,存储器文件记录接收到的访问请求;
S22、闪存翻译层FTL根据维护的所在存储通道中逻辑地址到物理地址的地址映射表,完成所述RF所记录访问请求的逻辑地址到物理地址的映射;
S23、所述闪存控制模块根据所述FTL的地址映射结果,按照所述访问请求对flash芯片进行数据处理。
21.根据权利要求20所述的方法,其特征在于,所述步骤S2还包括:
所述闪存控制模块在数据处理后,将处理状态通过先入先出存储器FIFO传回所述FTL,由所述FTL将所述处理状态写入所述RF。
22.一种驱动及读写管理方法,其特征在于,应用于包括块设备操作单元、一个以上的请求子队列、请求调度单元、总请求队列以及请求处理单元的驱动及读写管理装置;该驱动及读写管理装置向上层软件提供API,以便上层软件根据应用层的需求将访问请求分发给多个线程;该方法包括:
A、所述块设备操作单元接收各线程发送的访问请求,将访问请求送入一个以上的请求子队列;
B、所述请求调度单元调度各请求子队列中的访问请求并送入总请求队列;
C、所述请求处理单元从所述总请求队列读取访问请求并分发给对应线程所负责存储通道的存储控制器;
其中每个线程负责一个或多个存储通道,每个存储通道存在一个独立的存储控制器。
23.根据权利要求22所述的方法,其特征在于,步骤A中所述将访问请求送入一个以上的请求子队列为:
所述块设备操作单元将访问请求送入对应存储通道的请求子队列;或者,
所述块设备操作单元将访问请求送入对应访问类型的请求子队列。
24.根据权利要求22所述的方法,其特征在于,所述步骤C为:
所述请求处理单元采用批处理的方式从所述总请求队列读取访问请求并分发给对应存储通道的存储控制器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110228780.1A CN102298561B (zh) | 2011-08-10 | 2011-08-10 | 一种对存储设备进行多通道数据处理的方法、系统和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110228780.1A CN102298561B (zh) | 2011-08-10 | 2011-08-10 | 一种对存储设备进行多通道数据处理的方法、系统和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102298561A CN102298561A (zh) | 2011-12-28 |
CN102298561B true CN102298561B (zh) | 2016-04-27 |
Family
ID=45358987
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110228780.1A Active CN102298561B (zh) | 2011-08-10 | 2011-08-10 | 一种对存储设备进行多通道数据处理的方法、系统和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102298561B (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5479519B2 (ja) * | 2012-03-30 | 2014-04-23 | 富士フイルム株式会社 | 画像処理装置、方法及びプログラム |
CN104699638B (zh) * | 2013-12-05 | 2017-11-17 | 华为技术有限公司 | 内存访问方法和内存访问装置 |
CN105378640B (zh) * | 2014-06-06 | 2019-04-26 | 华为技术有限公司 | 一种处理访问请求的方法及装置 |
CN104102458B (zh) * | 2014-06-27 | 2017-11-10 | 北京兆易创新科技股份有限公司 | 多核cpu的负载均衡方法、多核cpu及固态硬盘 |
CN104378571B (zh) * | 2014-11-27 | 2018-01-30 | 江西洪都航空工业集团有限责任公司 | 一种绝对时间的实时提取与叠加方法 |
CN105556473A (zh) * | 2014-12-27 | 2016-05-04 | 华为技术有限公司 | 一种i/o任务处理的方法、设备和系统 |
CN111475438B (zh) * | 2015-08-12 | 2021-12-10 | 北京忆恒创源科技股份有限公司 | 提供服务质量的io请求处理方法及其装置 |
CN105868123B (zh) * | 2016-04-07 | 2018-10-09 | 武汉数字派特科技有限公司 | 一种并发数据的缓存装置及方法 |
CN105912479B (zh) * | 2016-04-07 | 2023-05-05 | 合肥锐世数字科技有限公司 | 一种并发数据的缓存方法及装置 |
CN111679795B (zh) * | 2016-08-08 | 2024-04-05 | 北京忆恒创源科技股份有限公司 | 无锁并发io处理方法及其装置 |
CN106569901A (zh) * | 2016-10-28 | 2017-04-19 | 努比亚技术有限公司 | 终端及访问命令的处理方法 |
CN107092445B (zh) * | 2017-05-31 | 2020-05-29 | 郑州云海信息技术有限公司 | 一种多通道ssd固态盘io调度方法及装置 |
CN107562379A (zh) * | 2017-08-28 | 2018-01-09 | 东莞记忆存储科技有限公司 | 一种提升固态存储设备读性能的方法 |
CN112214166B (zh) * | 2017-09-05 | 2022-05-24 | 华为技术有限公司 | 用于传输数据处理请求的方法和装置 |
US10884662B2 (en) * | 2018-08-06 | 2021-01-05 | Silicon Motion, Inc. | Method for performing storage control in a storage server, associated memory device and memory controller thereof, and associated storage server |
CN111240813A (zh) * | 2018-11-29 | 2020-06-05 | 杭州嘉楠耘智信息科技有限公司 | 一种dma调度方法、装置和计算机可读存储介质 |
CN111143258B (zh) * | 2019-12-29 | 2022-03-01 | 苏州浪潮智能科技有限公司 | 一种基于Opencl的系统访问FPGA的方法、系统、设备以及介质 |
CN111739569B (zh) * | 2020-06-19 | 2022-04-26 | 西安微电子技术研究所 | 一种边读边写的sdram控制系统及控制方法 |
CN111949213B (zh) * | 2020-07-28 | 2022-08-30 | 新华三半导体技术有限公司 | 内存颗粒访问控制芯片、内存颗粒的访问控制系统及方法 |
CN113051194B (zh) * | 2021-03-02 | 2023-06-09 | 长沙景嘉微电子股份有限公司 | 缓冲存储器、gpu、处理系统及缓存访问方法 |
CN113485252B (zh) * | 2021-07-17 | 2022-08-30 | 中山迈雷特数控技术有限公司 | 多通道数控系统中多通道plc控制方法与多通道数控系统 |
CN114003170B (zh) * | 2021-09-17 | 2024-03-19 | 方一信息科技(上海)有限公司 | 一种基于FPGA的Raid卡驱动方法 |
CN114443532B (zh) * | 2022-02-08 | 2024-09-03 | 广州小鹏汽车科技有限公司 | 一种总线控制方法、装置、车辆、存储介质 |
CN117806545A (zh) * | 2023-11-30 | 2024-04-02 | 中科驭数(北京)科技有限公司 | 多存储盘的落盘方法、装置、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1387644A (zh) * | 1999-08-31 | 2002-12-25 | 英特尔公司 | 并行处理器体系结构的sdram控制器 |
CN1633174A (zh) * | 2004-12-29 | 2005-06-29 | 国家广播电影电视总局广播科学研究院 | 一种数据文件的存储方法和消息处理方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100530070C (zh) * | 2006-11-24 | 2009-08-19 | 骆建军 | 基于flash的硬盘 |
US8259130B2 (en) * | 2007-03-29 | 2012-09-04 | International Business Machines Corporation | Color buffer contrast threshold for adaptive anti-aliasing |
US8473669B2 (en) * | 2009-12-07 | 2013-06-25 | Sandisk Technologies Inc. | Method and system for concurrent background and foreground operations in a non-volatile memory array |
-
2011
- 2011-08-10 CN CN201110228780.1A patent/CN102298561B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1387644A (zh) * | 1999-08-31 | 2002-12-25 | 英特尔公司 | 并行处理器体系结构的sdram控制器 |
CN1633174A (zh) * | 2004-12-29 | 2005-06-29 | 国家广播电影电视总局广播科学研究院 | 一种数据文件的存储方法和消息处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102298561A (zh) | 2011-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102298561B (zh) | 一种对存储设备进行多通道数据处理的方法、系统和装置 | |
US10552055B2 (en) | Multi-tier scheme for logical storage management | |
US8250271B2 (en) | Command and interrupt grouping for a data storage device | |
JP5729774B2 (ja) | いくつかのコマンドを処理するためのメモリコントローラ、メモリシステム、ソリッドステートドライブ、および方法 | |
US20100262979A1 (en) | Circular command queues for communication between a host and a data storage device | |
US9032162B1 (en) | Systems and methods for providing memory controllers with memory access request merging capabilities | |
CN102279712A (zh) | 一种适用于互联网存储系统的存储控制方法、系统和装置 | |
CN115080455B (zh) | 一种计算机芯片、计算机板卡、存储空间分配方法及装置 | |
US20220350655A1 (en) | Controller and memory system having the same | |
CN111258932A (zh) | 加速ufs协议处理的方法与存储控制器 | |
CN106681660A (zh) | Io调度方法及io调度装置 | |
US9263117B2 (en) | Writing method for solid state disk | |
US8713204B2 (en) | High-performance AHCI interface | |
KR20110037492A (ko) | 멀티 포트 메모리 및 그 억세스 제어 방법 | |
KR20200056704A (ko) | 멀티 호스트 컨트롤러와 이를 포함하는 반도체 장치 | |
US11194514B2 (en) | Just in time data placement in NAND flash | |
US11030007B2 (en) | Multi-constraint dynamic resource manager | |
CN118295943A (zh) | 读响应保序方法、系统、存储介质及电子设备 | |
TW202424762A (zh) | 執行主機寫入命令的方法及電腦程式產品及裝置 | |
CN111865824A (zh) | 一种串口通信中的双指针环形缓冲区设计方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |