CN106873904A - 数据写入方法及固态硬盘 - Google Patents

数据写入方法及固态硬盘 Download PDF

Info

Publication number
CN106873904A
CN106873904A CN201611265199.6A CN201611265199A CN106873904A CN 106873904 A CN106873904 A CN 106873904A CN 201611265199 A CN201611265199 A CN 201611265199A CN 106873904 A CN106873904 A CN 106873904A
Authority
CN
China
Prior art keywords
data
accelerator
writing
write
solid state
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.)
Granted
Application number
CN201611265199.6A
Other languages
English (en)
Other versions
CN106873904B (zh
Inventor
严小平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Union Memory Information System Co Ltd
Original Assignee
Beijing Legend Core Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Legend Core Technology Co Ltd filed Critical Beijing Legend Core Technology Co Ltd
Priority to CN201611265199.6A priority Critical patent/CN106873904B/zh
Publication of CN106873904A publication Critical patent/CN106873904A/zh
Application granted granted Critical
Publication of CN106873904B publication Critical patent/CN106873904B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本公开涉及一种数据写入方法及固态硬盘,用于减轻固态硬盘的处理器的负荷。所述方法包括:所述固态硬盘的处理器接收用于写入数据的指令;所述处理器通知所述固态硬盘的写加速器写入所述数据;所述写加速器将所述数据从所述固态硬盘的输入输出口写入所述固态硬盘的缓存单元。

Description

数据写入方法及固态硬盘
技术领域
本公开涉及计算机技术领域,具体地,涉及一种数据写入方法及固态硬盘。
背景技术
随着数据存储技术的高速发展,固态硬盘(Solid State Drives,SSD)由于具有读写速度快、抗震动、低功耗、无噪音、低热量、以及质量轻等特点,已被广泛应用于军事、车载、工业、医疗、和航空等领域。
固态硬盘可以具有一个或多个处理器(Central Processing Unit,CPU),处理器相当于固态硬盘的大脑,统筹固态硬盘完成各种工作。例如,在将数据写入固态硬盘的缓存单元时,需要固态硬盘的处理器完成将数据写入缓存单元的操作,比如,配置写入缓存单元的地址,查询写入状态等等,需要处理器执行的操作较多,固态硬盘的处理器负荷较重。
发明内容
本公开的目的是提供一种数据写入方法及固态硬盘,用于减轻固态硬盘的处理器的负荷。
第一方面,提供一种数据写入方法,应用与固态硬盘,包括:
所述固态硬盘的处理器接收用于写入数据的指令;
所述处理器通知所述固态硬盘的写加速器写入所述数据;
所述写加速器将所述数据从所述固态硬盘的输入输出口写入所述固态硬盘的缓存单元。
可选的,所述写加速器包括直接内存存取DMA接口,以与所述固态硬盘的DMA控制器连接,所述写加速器将所述数据从所述固态硬盘的输入输出口写入所述固态硬盘的缓存单元,包括:
所述写加速器根据所述数据的数据量,确定位于所述缓存单元的目标地址;
所述写加速器控制所述DMA控制器将所述数据写入所述目标地址对应的缓存空间。
可选的,所述方法还包括:
所述处理器根据所述缓存单元的存储状态,向所述写加速器发送所述缓存单元的可用地址;
所述写加速器记录所述可用地址;
所述写加速器根据所述数据的数据量,确定位于所述缓存单元的目标地址,包括:
所述写加速器根据所述数据的数据量,从所述可用地址中确定所述目标地址。
可选的,所述方法还包括:
所述写加速器获得数据写入进度,其中,所述数据写入进度表征已被写入所述缓存空间的数据量占所述数据的数据量的比例;
所述写加速器记录所述数据写入进度;
所述写加速器向所述处理器发送所述数据写入进度。
可选的,所述方法还包括:
在所述写加速器写入所述缓存单元的数据量达到第一预设阈值时,所述写加速器通知所述处理器对已写入所述缓存单元的数据进行处理。
可选的,在所述固态硬盘的处理器接收用于写入数据的指令之后,还包括:
所述处理器判断所述数据的数据量是否小于第二预设阈值;
所述处理器通知所述固态硬盘的写加速器写入所述数据,包括:
在所述数据的数据量小于所述第二预设阈值时,所述处理器通知所述写加速器写入所述数据。
可选的,所述方法还包括:
所述写加速器向所述处理器发送已写入所述缓存单元的数据的存储地址;
所述处理器根据所述存储地址,获取已写入所述缓存单元的数据,以对已写入所述缓存单元的数据进行处理。
可选的,所述方法还包括:
所述写加速器接收所述处理器发送的状态控制指令;
所述写加速器根据所述控制指令切换为停止状态或运行状态;
所述写加速器将所述数据从所述固态硬盘的输入输出口写入所述固态硬盘的缓存单元,包括:
所述写加速器在处于运行状态时,将所述数据从所述输入输出口写入所述缓存单元。
第二方面,提供一种固态硬盘,包括:相互连接的输入输出口、缓存单元、写加速器、及处理器;其中,
所述处理器用于接收用于写入数据的指令,及通知所述写加速器写入所述数据;
所述写加速器用于将所述数据从所述输入输出口写入所述缓存单元。
可选的,所述固态硬盘还包括直接内存存取DMA控制器,所述写加速器通过DMA接口与所述DMA控制器连接,所述写加速器用于:
根据所述数据的数据量,确定位于所述缓存单元的目标地址;
控制所述DMA控制器将所述数据写入所述目标地址对应的缓存空间。
可选的,所述处理器还用于根据所述缓存单元的存储状态,向所述写加速器发送所述缓存单元的可用地址;
所述写加速器还用于记录所述可用地址;
所述写加速器用于:
根据所述数据的数据量,从所述可用地址中确定所述目标地址。
可选的,所述写加速器还用于:
获得数据写入进度,其中,所述数据写入进度表征已被写入所述缓存空间的数据量占所述数据的数据量的比例;
记录所述数据写入进度;
向所述处理器发送所述数据写入进度。
可选的,所述写加速器还用于:
在所述写加速器写入所述缓存单元的数据量达到第一预设阈值时,通知所述处理器对已写入所述缓存单元的数据进行处理。
可选的,所述处理器还用于:
在接收用于写入数据的指令之后,判断所述数据的数据量是否小于第二预设阈值;
在所述数据的数据量小于所述第二预设阈值时,通知所述写加速器写入所述数据。
可选的,所述写加速器还用于向所述处理器发送已写入所述缓存单元的数据的存储地址;
所述处理器还用于根据所述存储地址,获取已写入所述缓存单元的数据,以对已写入所述缓存单元的数据进行处理。
可选的,所述写加速器还用于:
接收所述处理器发送的状态控制指令;
根据所述控制指令切换为停止状态或运行状态;
在处于运行状态时,将所述数据从所述输入输出口写入所述缓存单元。
本公开实施例中,固态硬盘的处理器在接收到用于写入数据的指令时,可以通知固态硬盘的写加速器来写入数据,进而由写加速器将数据从输入输出口写入缓存单元中。通过这样的方式,在固态硬盘中加入了写加速器,那么在要写入数据时,固态硬盘的处理器只需通知写加速器即可,具体的写操作可以由写加速器完成,进而减小了处理器的负荷,同时,由于无需固态硬盘的处理器来进行写操作,处理器可以有空闲去完成其他的工作,固态硬盘的数据处理效率较高。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1为本公开实施例中固态硬盘的结构示意图。
图2为本公开实施例中数据写入方法的流程图。
图3为本公开实施例中写加速器结构示意图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
在对本公开提供的数据写入方法进行说明之前,首先对本公开涉及的相关技术进行说明。
固态硬盘可以是用固态电子存储芯片阵列制成的硬盘。目前,固态硬盘的存储介质一般可以有两种,一种是采用闪存(FLASH)芯片作为存储介质,另外一种是采用动态随机存取存储器(Dynamic Random Access Memory,DRAM)作为存储介质。其中,采用FLASH芯片作为存储介质的固态硬盘,也就是通常所说的SSD,它的外观可以被制作成多种模样,例如:笔记本硬盘、微硬盘、存储卡、U盘等样式。
固态硬盘可以具有一个或多个处理器,对于具有多个处理器的固态硬盘而言,不同的处理器可以完成不同的功能,比如,部分处理器完成输入输出口管理以及将数据从接口写入固态硬盘等功能,部分处理器完成存储数据的FTL(Flash Translation Layer,闪存转换层)的操作和管理功能,部分处理器完成多通道的闪存单元的管理和数据存储功能,等等。本公开实施例中,在固态硬盘具有多个处理器的情况下,所指的处理器可以是用于管理输入输出口的处理器。
固态硬盘通常配置有缓存单元,比如可以是DDR(Double Data Rate,双倍数据速率)存储器,或者可以是RAM(Random Access Memory,随机存取存储器),等等。在将数据写入固态硬盘时,可以先将数据写入固态硬盘的缓存单元中,那么读取数据时,会首先从缓存单元中查找需要的数据,如果找到了便可以直接读取,缓存单元的运行速度较快,因此能够帮助固态硬盘更快地运行。目前,将数据写入缓存单元的操作是由处理器完成的,那么处理器需要进行地址管理、状态检测等操作,对于处理器来说,负担较重。
请参见图1,为了减小固态硬盘的处理器的负荷,本公开提供一种固态硬盘100,包括相互连接的输入输出口101、缓存单元102、写加速器103、及处理器104,输入输出口101例如可以是PCIe口等等,缓存单元102例如可以是DDR存储器等等。各部件相互连接的方式可以是如图1所示,每个部件均与总线(比如AXI总线,等等)连接,写加速器103再单独与输入输出口101连接。本公开实施例对于各部件互连的方式不作限定,只要能够相互通信即可。
固态硬盘100能够执行本公开提供的数据写入方法,下面结合附图对本公开提供的数据写入方法进行详细说明。
请参见图2,图2是根据一示例性实施例示出的一种数据写入方法的流程图,该方法可以应用于图1所示的固态硬盘100。如图2所示,该方法包括以下步骤:
步骤S21:固态硬盘100的处理器104接收用于写入数据的指令。
步骤S22:处理器104通知固态硬盘100的写加速器103写入数据。
步骤S23:写加速器103将数据从固态硬盘100的输入输出口101写入固态硬盘100的缓存单元102。
本公开实施例中,在固态硬盘100中增加了写加速器103,对于写加速器103的内部结构究竟是如何布置的,本公开实施例不作限定,只要能够实现将数据写入缓存单元102的功能即可。请参见图3,图3为一种示例性的写加速器103的结构,写加速器103例如可以包括总线接口、DMA(Direct Memory Access,直接内存存取)接口,控制状态寄存器、输入/输出信息缓冲器、输入地址缓冲器、系统控制模块、信息数据处理模块、数据DMA控制模块。在下文的说明中,将以写加速器103为图3所示的结构为例,对本公开提供的固态硬盘100的数据写入方法进行详细说明,当然,对于图3所示的模块划分仅仅是示意性的,在实际实现时可以有其他的模块划分方式及功能实现方式。
在主机要向固态硬盘100中写入数据时,主机可以向固态硬盘100发送写入数据的指令,那么可以由固态硬盘100的处理器104接收用于写入数据的指令。处理器104在接收到写入数据的指令后,通知写加速器103即可,比如处理器104通过总线与写加速器103连接,处理器104可以向图3中所示的写加速器103的输入信息缓冲器发送写入数据的命令。输入信息缓冲器能够解析需要读写的数据块的信息,写加速器103进而获知要写入的数据的信息。输入信息缓冲器可用采用异步的设计方式,即处理器104只要在命令队列不满的情况下就可以向输入信息缓冲器发送信息,替代双方握手的方式,提升数据处理的速度。
具体的写入数据的操作可以由写加速器103来进行,即由写加速器103将数据从输入输出口101写入缓存单元102,这样,可以减小处理器104的负荷,处理器104可以有空闲去完成其他的工作,固态硬盘100的数据处理效率较高。
可选的,固态硬盘100可以是配置有DMA控制器的固态硬盘100,那么写加速器103可以包括DMA接口,以与固态硬盘100的DMA控制器连接。在写入数据时,可以由写加速器103根据要写入的数据的数据量,确定位于缓存单元102的目标地址,然后由写加速器103控制DMA控制器将数据写入目标地址对应的缓存空间。
图3所示的写加速器103可以通过DMA接口与DMA控制器连接,DMA控制器不具备数据处理的能力,只能基于命令来搬移数据。因此,写加速器103可以先根据要写入的数据的数据量来确定写入缓存单元102的目标地址,写加速器103可以通过输入信息缓冲器接收处理器104发送的指令,进而获知待写入的数据的数据量,比如,需要1KB的空间来存储待写入的数据,那么写加速器103可以确定位于缓存单元102的能够容纳1KB数据的目标地址。确定目标地址之后,再控制DMA将数据从输入输出接口搬移到缓存单元102中的目标地址对应的缓存空间中,进而实现数据的写入。通过这样的方式,无需固态硬盘100的处理器104来配置DMA,减轻了固态硬盘100的处理器104的负荷,有利于处理器104能够继续执行其他的任务,提升固态硬盘100的处理速度。
可选的,对于写加速器103如何确定目标地址,本公开实施例不作限定,可以由处理器104根据缓存单元102的存储状态,向写加速器103发送缓存单元102的可用地址,然后写加速器103记录可用地址。写加速器103在确定目标地址时,可以根据数据的数据量,从可用地址中确定目标地址。
处理器104能够读取缓存单元102的存储状态,进而获知缓存单元102究竟哪些缓存空间空闲可用。本公开实施例中,处理器104可以在空闲的时候获取缓存单元102中的可用地址,然后将可用地址发送给写加速器103,写加速器103将可用地址进行存储,以便在需要写入数据时进行地址分配。比如可以由图3所示的写加速器103的输入地址缓冲器来存储可用地址,输入地址缓冲器同样可以采用异步的设计方式,处理器104只要在命令队列不满的情况下就可以向输入地址缓冲器发送可用地址,替代双方握手的方式,提升数据处理的速度。
也就是说,输入地址缓冲器中存储有缓存单元102当前的可用地址,那么在输入信息缓冲器接收到写入数据的命令后,可以由信息数据处理模块将要写入的数据的信息以及当前的可用地址告知系统控制模块,由系统控制模块来基于要写入的数据的数据量大小,从可用地址中确定能够容纳要写入的数据的目标地址,然后将数据的源地址、目标地址、数据包大小等信息按照DMA传输方式进行组包,通过数据DMA控制模块控制DMA控制器进行数据的搬移。这样,可用由写加速器103完成配置DMA控制器、分配目标地址等操作,减轻处理器104的负荷,处理器104能够执行其他的命令,提升固态硬盘100数据处理的效率。
可选的,写加速器103还可以获得数据写入进度,数据写入进度表征已被写入缓存空间的数据量占数据的数据量的比例,写加速器103可用记录数据写入进度,然后向处理器104发送数据写入进度。
如图3所示的写加速器103,在写加速器103控制DMA控制器将数据写入缓存单元102时,数据DMA控制模块可以获取数据写入进度,进而获知数据写入了多少,剩余多少,数据是写入成功,还是写入失败等等信息。数据DMA控制模块可以将获取的信息发送给系统控制模块,再由控制状态寄存器进行存储,当然,数据DMA控制模块也可以直接将获取的数据写入进度发送给状态寄存器进行存储。处理器104可以通过与控制状态寄存器交互来获知数据写入进度,进而使得处理器104能够掌控写加速器103写入数据的各种状态,固态硬盘100的数据处理能力较强。
可选的,在写加速器103写入缓存单元102的数据量达到第一预设阈值时,写加速器103可以通知处理器104对已写入缓存单元102的数据进行处理。
对于数据量较小的小包数据而言,每写入一个小包数据均需要进行配置DMA控制器、配置写入地址、状态监测等操作,如果这些操作均由处理器104来完成,每个操作均为多周期指令进行,对于短包数据的传输,处理器104会频繁进行上述操作,效率较为低下。本公开实施例中,可以由写加速器103来完成上述操作,写加速器103可以是单周期的操作,相对于处理器104而已,采用写加速器103来写入数据能够有效提升效率。
为了更好地提升固态硬盘100写数据的效率,通过写加速器103写入小包数据时,无需每写入一个数据均通知处理器104进行处理,写加速器103可以对小包数据进行累积,在写入的小包数据的数据量累积达到第一预设阈值后,再通知处理器104对已经写入缓存单元102的数据进行处理。第一预设阈值可以是预先设定的任意阈值,可以是固态硬盘100在出厂时已经设置好的,或者也可以由用户根据需要自行设定的,或者也可以是由固态硬盘100根据存储状态动态配置的,等等,本公开实施例对于第一预设阈值的数值不作限定。例如,可以设定第一预设阈值为512KB,等等。
写加速器103可以在写入缓存单元102的数据达到第一预设阈值后再通知处理器104处理写入的数据。例如,第一预设阈值为512KB,写加速器103在写入了128个4KB的小包数据后,累积达到了第一预设阈值,此时再由写加速器103通知处理器104对写入缓存单元102的累积达到了512KB的全部数据进行进一步地处理。对于写加速器103通知处理器104的方式,本公开实施例不作限定,例如,图3所述的写加速器103的系统控制模块还可以通过一条数据线直接与处理器104连接,系统控制模块可以直接通过建立的连接中断处理器104,以使得处理器104对存入缓存单元102的数据进行处理。当然,写加速器103也可以通过其他的方式通知处理器104。处理器104在获知写加速器103写入缓存单元102的数据达到第一预设阈值后,可以对累积后的数据进行进一步处理,比如将达到第一预设阈值的数据从缓存单元102存入固态硬盘100的持久化介质(比如NAND FLASH)中。通过这样的方式,可以有效提升小包数据的写入效率,提高数据写入速度。
可选的,在固态硬盘100的处理器104接收用于写入数据的指令之后,还可以判断数据的数据量是否小于第二预设阈值,在数据的数据量小于第二预设阈值时,处理器104再通知写加速器103写入数据。
由于写加速器103能够显著提升小包数据的写入速度,那么处理器104在接收到主机发出的写入数据的指令后,可以先判断要写入的数据是不是小包数据,也就是判断要写入的数据的数据量是否小于第二预设阈值,在要写入的数据小于第二预设阈值,也就是确定为小包数据时,再通知写加速器103来写入数据。第二预设阈值可以是预先设定的任意阈值,可以是固态硬盘100在出厂时已经设置好的,或者也可以由用户根据需要自行设定的,或者也可以是由固态硬盘100根据存储状态动态配置的,等等,本公开实施例对于第二预设阈值的数值不作限定。例如,可以设定第二预设阈值为24KB,等等。当然,在判断出要写入的数据大于第二预设阈值时,可以由处理器104来完成写操作,或者同样也可以由写加速器103来完成写操作,本公开实施例对此不作限定。这样,可以由写加速器103来完成小包数据的写入操作,有效提升小包数据的写入效率,提高数据写入速度。
可选的,写加速器103累积写入缓存单元102的小包数据达到第一预设阈值后,写加速器103还可以向处理器104发送已写入缓存单元102的数据的存储地址,处理器104可以根据存储地址,获取已写入缓存单元102的数据,以对已写入缓存单元102的数据进行处理。
处理器104要对已写入缓存单元102的数据进行处理,比如将数据写入NAND FLASH中,需要获知已写入缓存单元102的数据的地址,那么可以由写加速器103向处理器104发送已写入缓存单元102的数据的存储地址。例如,如图3所示的写加速器103,可以由输出信息缓冲器告知处理器104已经累积写入缓存单元102的数据的信息,比如已经累积写入缓存单元102的数据的存储地址,数据量大小等信息,那么处理器104可以根据获取的信息来找到已写入缓存单元102的数据,以便能够处理这些数据。输出信息缓冲器同样可用采用异步的设计方式,即处理器104只要在命令队列不满的情况下就可以读取输出信息缓冲器反馈的信息,替代双方握手的方式,提升数据处理的速度。
可选的,写加速器103还可以接收处理器104发送的状态控制指令,然后根据控制指令切换为停止状态或运行状态。写加速器103在处于运行状态时,才能将数据从输入输出口101写入缓存单元102。
也就是说,处理器104可以控制写加速器103打开或关闭,写加速器103只有在运行状态时才能进行数据的写入操作。如图3所示的写加速器103,处理器104可以向控制状态寄存器发送控制指令,进而控制写加速器103的打开或关闭。通过这样的方式,固态硬盘100可以根据实际使用情况来确定是否要启用写加速器103,方式较为灵活,固态硬盘100的数据处理能力较强。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将固态硬盘的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得固态硬盘执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、RAM存储器、磁碟或者光盘等各种可以存储程序代码的介质。
具体来讲,本申请实施例中的一种数据写入方法对应的计算机程序指令可以被存储在光盘,硬盘,U盘等存储介质上,当存储介质中的与一种数据写入方法对应的计算机程序指令被一固态硬盘读取或被执行时,包括如下步骤:
所述固态硬盘的处理器接收用于写入数据的指令;
所述处理器通知所述固态硬盘的写加速器写入所述数据;
所述写加速器将所述数据从所述固态硬盘的输入输出口写入所述固态硬盘的缓存单元。
可选的,所述写加速器包括直接内存存取DMA接口,以与所述固态硬盘的DMA控制器连接,所述存储介质中存储的与步骤:所述写加速器将所述数据从所述固态硬盘的输入输出口写入所述固态硬盘的缓存单元,对应的计算机指令在被执行过程中,包括:
所述写加速器根据所述数据的数据量,确定位于所述缓存单元的目标地址;
所述写加速器控制所述DMA控制器将所述数据写入所述目标地址对应的缓存空间。
可选的,所述存储介质中还存储有另外一些步骤,所述另外一些步骤在被执行过程中,还包括:
所述处理器根据所述缓存单元的存储状态,向所述写加速器发送所述缓存单元的可用地址;
所述写加速器记录所述可用地址;
所述存储介质中存储的与步骤:所述写加速器根据所述数据的数据量,确定位于所述缓存单元的目标地址,对应的计算机指令在被执行过程中,包括:
所述写加速器根据所述数据的数据量,从所述可用地址中确定所述目标地址。
可选的,所述存储介质中还存储有另外一些步骤,所述另外一些步骤在被执行过程中,还包括:
所述写加速器获得数据写入进度,其中,所述数据写入进度表征已被写入所述缓存空间的数据量占所述数据的数据量的比例;
所述写加速器记录所述数据写入进度;
所述写加速器向所述处理器发送所述数据写入进度。
可选的,所述存储介质中还存储有另外一些步骤,所述另外一些步骤在被执行过程中,还包括:
在所述写加速器写入所述缓存单元的数据量达到第一预设阈值时,所述写加速器通知所述处理器对已写入所述缓存单元的数据进行处理。
可选的,所述存储介质中存储的与步骤:所述固态硬盘的处理器接收用于写入数据的指令,对应的计算机指令在被执行之后,还包括:
所述处理器判断所述数据的数据量是否小于第二预设阈值;
所述存储介质中存储的与步骤:所述处理器通知所述固态硬盘的写加速器写入所述数据,对应的计算机指令在被执行过程中,包括:
在所述数据的数据量小于所述第二预设阈值时,所述处理器通知所述写加速器写入所述数据。
可选的,所述存储介质中还存储有另外一些步骤,所述另外一些步骤在被执行过程中,还包括:
所述写加速器向所述处理器发送已写入所述缓存单元的数据的存储地址;
所述处理器根据所述存储地址,获取已写入所述缓存单元的数据,以对已写入所述缓存单元的数据进行处理。
可选的,所述存储介质中还存储有另外一些步骤,所述另外一些步骤在被执行过程中,还包括:
所述写加速器接收所述处理器发送的状态控制指令;
所述写加速器根据所述控制指令切换为停止状态或运行状态;
所述存储介质中存储的与步骤:所述写加速器将所述数据从所述固态硬盘的输入输出口写入所述固态硬盘的缓存单元,对应的计算机指令在被执行过程中,包括:
所述写加速器在处于运行状态时,将所述数据从所述输入输出口写入所述缓存单元。
以上所述,以上实施例仅用以对本公开的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本公开的方法及其核心思想,不应理解为对本公开的限制。本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本公开的保护范围之内。

Claims (10)

1.一种数据写入方法,应用于固态硬盘,其特征在于,包括:
所述固态硬盘的处理器接收用于写入数据的指令;
所述处理器通知所述固态硬盘的写加速器写入所述数据;
所述写加速器将所述数据从所述固态硬盘的输入输出口写入所述固态硬盘的缓存单元。
2.根据权利要求1所述的方法,其特征在于,所述写加速器包括直接内存存取DMA接口,以与所述固态硬盘的DMA控制器连接,所述写加速器将所述数据从所述固态硬盘的输入输出口写入所述固态硬盘的缓存单元,包括:
所述写加速器根据所述数据的数据量,确定位于所述缓存单元的目标地址;
所述写加速器控制所述DMA控制器将所述数据写入所述目标地址对应的缓存空间。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述处理器根据所述缓存单元的存储状态,向所述写加速器发送所述缓存单元的可用地址;
所述写加速器记录所述可用地址;
所述写加速器根据所述数据的数据量,确定位于所述缓存单元的目标地址,包括:
所述写加速器根据所述数据的数据量,从所述可用地址中确定所述目标地址。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述写加速器获得数据写入进度,其中,所述数据写入进度表征已被写入所述缓存空间的数据量占所述数据的数据量的比例;
所述写加速器记录所述数据写入进度;
所述写加速器向所述处理器发送所述数据写入进度。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述写加速器写入所述缓存单元的数据量达到第一预设阈值时,所述写加速器通知所述处理器对已写入所述缓存单元的数据进行处理。
6.根据权利要求5所述的方法,其特征在于,在所述固态硬盘的处理器接收用于写入数据的指令之后,还包括:
所述处理器判断所述数据的数据量是否小于第二预设阈值;
所述处理器通知所述固态硬盘的写加速器写入所述数据,包括:
在所述数据的数据量小于所述第二预设阈值时,所述处理器通知所述写加速器写入所述数据。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述写加速器向所述处理器发送已写入所述缓存单元的数据的存储地址;
所述处理器根据所述存储地址,获取已写入所述缓存单元的数据,以对已写入所述缓存单元的数据进行处理。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述写加速器接收所述处理器发送的状态控制指令;
所述写加速器根据所述控制指令切换为停止状态或运行状态;
所述写加速器将所述数据从所述固态硬盘的输入输出口写入所述固态硬盘的缓存单元,包括:
所述写加速器在处于运行状态时,将所述数据从所述输入输出口写入所述缓存单元。
9.一种固态硬盘,其特征在于,包括:相互连接的输入输出口、缓存单元、写加速器、及处理器;其中,
所述处理器用于接收用于写入数据的指令,及通知所述写加速器写入所述数据;
所述写加速器用于将所述数据从所述输入输出口写入所述缓存单元。
10.根据权利要求9所述的固态硬盘,其特征在于,所述固态硬盘还包括直接内存存取DMA控制器,所述写加速器通过DMA接口与所述DMA控制器连接,所述写加速器用于:
根据所述数据的数据量,确定位于所述缓存单元的目标地址;
控制所述DMA控制器将所述数据写入所述目标地址对应的缓存空间。
CN201611265199.6A 2016-12-30 2016-12-30 数据写入方法及固态硬盘 Active CN106873904B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611265199.6A CN106873904B (zh) 2016-12-30 2016-12-30 数据写入方法及固态硬盘

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611265199.6A CN106873904B (zh) 2016-12-30 2016-12-30 数据写入方法及固态硬盘

Publications (2)

Publication Number Publication Date
CN106873904A true CN106873904A (zh) 2017-06-20
CN106873904B CN106873904B (zh) 2020-02-14

Family

ID=59165386

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611265199.6A Active CN106873904B (zh) 2016-12-30 2016-12-30 数据写入方法及固态硬盘

Country Status (1)

Country Link
CN (1) CN106873904B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107329694A (zh) * 2017-06-22 2017-11-07 苏州交运电子科技有限公司 数据存储控制方法、控制装置及存储设备
CN107608909A (zh) * 2017-09-19 2018-01-19 记忆科技(深圳)有限公司 一种NVMe固态硬盘写加速的方法
CN109032503A (zh) * 2018-06-14 2018-12-18 浙江大华技术股份有限公司 一种固态硬盘数据迁移带宽的流控方法及装置
CN109144422A (zh) * 2018-08-31 2019-01-04 浪潮电子信息产业股份有限公司 一种固态硬盘的写数据方法、装置、设备及存储介质
CN109582232A (zh) * 2018-11-21 2019-04-05 中国船舶重工集团公司第七0七研究所 一种基于FPGA的顺序读写多片Flash系统及方法
CN110321296A (zh) * 2018-03-31 2019-10-11 深圳忆联信息系统有限公司 数据写入方法及固态硬盘
CN116521090A (zh) * 2023-06-25 2023-08-01 苏州浪潮智能科技有限公司 数据落盘方法、装置、电子设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1959620A (zh) * 2006-11-10 2007-05-09 威盛电子股份有限公司 芯片组、北桥芯片以及磁盘数据存取方法
CN101539785A (zh) * 2008-03-21 2009-09-23 深圳市朗科科技股份有限公司 集成闪存存储单元的主板
CN202453860U (zh) * 2012-01-04 2012-09-26 刘淑敏 数据读写效能加速装置及具有该装置的硬盘设备
CN102945141A (zh) * 2012-11-09 2013-02-27 华为技术有限公司 一种用于提升raid组存储性能的系统及其方法
CN103238305A (zh) * 2010-05-28 2013-08-07 安全第一公司 用于安全数据储存的加速器系统
CN104081351A (zh) * 2012-01-25 2014-10-01 国际商业机器公司 用于混合系统的分布式功能执行
WO2016041128A1 (zh) * 2014-09-15 2016-03-24 华为技术有限公司 数据写请求处理方法和存储阵列

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1959620A (zh) * 2006-11-10 2007-05-09 威盛电子股份有限公司 芯片组、北桥芯片以及磁盘数据存取方法
CN101539785A (zh) * 2008-03-21 2009-09-23 深圳市朗科科技股份有限公司 集成闪存存储单元的主板
CN103238305A (zh) * 2010-05-28 2013-08-07 安全第一公司 用于安全数据储存的加速器系统
CN202453860U (zh) * 2012-01-04 2012-09-26 刘淑敏 数据读写效能加速装置及具有该装置的硬盘设备
CN104081351A (zh) * 2012-01-25 2014-10-01 国际商业机器公司 用于混合系统的分布式功能执行
CN102945141A (zh) * 2012-11-09 2013-02-27 华为技术有限公司 一种用于提升raid组存储性能的系统及其方法
WO2016041128A1 (zh) * 2014-09-15 2016-03-24 华为技术有限公司 数据写请求处理方法和存储阵列

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107329694A (zh) * 2017-06-22 2017-11-07 苏州交运电子科技有限公司 数据存储控制方法、控制装置及存储设备
CN107608909A (zh) * 2017-09-19 2018-01-19 记忆科技(深圳)有限公司 一种NVMe固态硬盘写加速的方法
CN110321296A (zh) * 2018-03-31 2019-10-11 深圳忆联信息系统有限公司 数据写入方法及固态硬盘
CN109032503A (zh) * 2018-06-14 2018-12-18 浙江大华技术股份有限公司 一种固态硬盘数据迁移带宽的流控方法及装置
CN109032503B (zh) * 2018-06-14 2021-04-16 浙江大华存储科技有限公司 一种固态硬盘数据迁移带宽的流控方法及装置
CN109144422A (zh) * 2018-08-31 2019-01-04 浪潮电子信息产业股份有限公司 一种固态硬盘的写数据方法、装置、设备及存储介质
CN109582232A (zh) * 2018-11-21 2019-04-05 中国船舶重工集团公司第七0七研究所 一种基于FPGA的顺序读写多片Flash系统及方法
CN116521090A (zh) * 2023-06-25 2023-08-01 苏州浪潮智能科技有限公司 数据落盘方法、装置、电子设备及存储介质
CN116521090B (zh) * 2023-06-25 2023-09-12 苏州浪潮智能科技有限公司 数据落盘方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN106873904B (zh) 2020-02-14

Similar Documents

Publication Publication Date Title
CN106873904A (zh) 数据写入方法及固态硬盘
CN111226230B (zh) 具有多个处理器和神经网络加速器的神经网络处理系统
CN108459974B (zh) 集成闪存的高带宽存储器设备
KR100909119B1 (ko) 집적 dma 엔진을 사용하는 고성능 휘발성 디스크드라이브 메모리 액세스 장치 및 방법
CN104951252A (zh) 一种数据访问方法及PCIe存储设备
KR101512743B1 (ko) 반도체 저장 장치 기반 시스템에서 메인 메모리가 없는 직접 메모리 엑세스 시스템
CN104375895B (zh) 用于多种存储器间的数据存储调度方法以及装置
EP3910488A1 (en) Systems, methods, and devices for near data processing
US20080229049A1 (en) Processor card for blade server and process.
US20140068125A1 (en) Memory throughput improvement using address interleaving
CN105849669A (zh) 用于单个通道内的dram空间联合的方法和装置
TWI639921B (zh) 指令處理方法及使用所述方法的儲存控制器
CN1936873A (zh) 一种控制两种不同速度总线间数据传送的方法
US6175886B1 (en) Semiconductor integrated circuit with low-power bus structure and system for composing low-power bus structure
CN110109851A (zh) 具有主机和存储器控制器的电子系统及其操作方法
US8745294B2 (en) Dynamic random access memory for a semiconductor storage device-based system
US11914903B2 (en) Systems, methods, and devices for accelerators with virtualization and tiered memory
TWI474254B (zh) 用於在一記憶體系統中執行命令的方法與裝置及資料儲存系統
CN102279728A (zh) 数据存储设备及数据计算方法
CN112035398A (zh) 一种系统级芯片SoC及适用于SoC的数据处理方法
EP4105771A1 (en) Storage controller, computational storage device, and operational method of computational storage device
CN110321296A (zh) 数据写入方法及固态硬盘
CN105988945A (zh) 一种异构多处理器系统及其驱动控制方法
CN106598742B (zh) 一种ssd主控内部负载均衡系统及方法
US11579979B2 (en) Storage backed memory package save trigger

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20190808

Address after: 518067 Dongjiaotou Workshop D24/F-02, Houhai Avenue, Shekou Street, Nanshan District, Shenzhen City, Guangdong Province

Applicant after: Shenzhen Yi Lian Information System Co., Ltd.

Address before: 100176 Beijing City, Daxing District branch of Beijing economic and Technological Development Zone, fourteen Street No. 99 building 33 building D No. 2226

Applicant before: Beijing legend core technology Co., Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant