CN107797756A - 固态硬盘***的优先写入方法以及使用该方法的装置 - Google Patents

固态硬盘***的优先写入方法以及使用该方法的装置 Download PDF

Info

Publication number
CN107797756A
CN107797756A CN201610802224.3A CN201610802224A CN107797756A CN 107797756 A CN107797756 A CN 107797756A CN 201610802224 A CN201610802224 A CN 201610802224A CN 107797756 A CN107797756 A CN 107797756A
Authority
CN
China
Prior art keywords
mentioned
data
write
preferential
cache controller
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
CN201610802224.3A
Other languages
English (en)
Other versions
CN107797756B (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.)
SHANGHAI FEIEN MICROELECTRONIC CO Ltd
Shannon Systems Ltd
Original Assignee
SHANGHAI FEIEN MICROELECTRONIC 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 SHANGHAI FEIEN MICROELECTRONIC CO Ltd filed Critical SHANGHAI FEIEN MICROELECTRONIC CO Ltd
Priority to CN201610802224.3A priority Critical patent/CN107797756B/zh
Priority to TW105134402A priority patent/TWI613656B/zh
Priority to US15/626,334 priority patent/US10338998B2/en
Publication of CN107797756A publication Critical patent/CN107797756A/zh
Application granted granted Critical
Publication of CN107797756B publication Critical patent/CN107797756B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • 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
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0629Configuration or reconfiguration of storage systems
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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]
    • 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/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

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)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明的实施例提出一种固态硬盘***的优先写入方法,由处理单元执行,包含以下步骤。接收优先写入命令,指示写入少于一个页面长度的第一数据至储存单元。之后,驱动缓存控制器从缓存器中的关连于优先写入的下一个可用子区域开始向第一方向储存第一数据。接收非优先写入命令,指示写入少于一个页面长度的第二数据至储存单元。之后,驱动缓存控制器从缓存器中的关连于非优先写入的下一个可用子区域开始向第二方向储存第二数据。

Description

固态硬盘***的优先写入方法以及使用该方法的装置
【技术领域】
本发明关连于一种快闪存储器装置,特别是一种固态硬盘***的优先写入方法以及使用该方法的装置。
【背景技术】
快闪存储器装置通常分为NOR快闪装置与NAND快闪装置。NOR快闪装置为随机存取装置,而可于地址脚位上提供任何的地址,用以存取NOR快闪装置的主装置(host),并及时地由NOR快闪装置的数据脚位上获得储存于该地址上的数据。相反地,NAND快闪装置并非随机存取,而是序列存取。NAND快闪装置无法像NOR快闪装置一样,可以存取任何随机地址,主装置反而需要写入序列的比特组(bytes)的值到NAND快闪装置中,用以定义请求命令(command)的类型(如,读取、写入、抹除等),以及用在此命令上的地址。地址可指向一个页面(在快闪存储器中的一个写入操作的最小数据块)或一个区块(在快闪存储器中的一个抹除操作的最小数据块)。实际上,NAND快闪装置通常从存储器单元(memory cells)上读取或写入完整的数页数据。当一整页的数据从阵列读取到装置中的缓存器(buffer)后,借由使用提取信号(strobe signal)顺序地敲出(clock out)内容,让主单元可逐比特组或字元组(words)存取数据。
优先写入是应用在储存***的重要规格,例如,数据库***。储存***有时会处于繁重的工作量。为了提升效能,传统的储存***拥有非常深的伫列并且试图将所有目前请求进行平行处理。提升产出率(throughput)的同时,通常会伤害延迟(latency),也就是说,因为不利的请求排程,一个请求可能卡在伫列很长一段时间。于传统的数据库交易,数据异动是为二阶段提交(two phase commit):首先,将异动储存至重作日志(redo log)并刷新(flush)日志;接着,在背景执行实际的数据更新。然而,重作日志的写入操作可能会阻挡其他的写入操作,而某些写入操作的触发就算比重作日志的写入操作更晚,还需要即时完成。因此,本发明提出一种固态硬盘***的优先写入方法以及使用该方法的装置,用以解决如上所述的问题。
【发明内容】
本发明的实施例提出一种固态硬盘***的优先写入方法,由处理单元执行,包含以下步骤。接收优先写入命令,指示写入少于一个页面长度的第一数据至储存单元。之后,驱动缓存控制器从缓存器中的关连于优先写入的下一个可用子区域开始向第一方向储存第一数据。接收非优先写入命令,指示写入少于一个页面长度的第二数据至储存单元。之后,驱动缓存控制器从缓存器中的关连于非优先写入的下一个可用子区域开始向第二方向储存第二数据。
本发明的实施例提出一种固态硬盘***的优先写入装置,包含缓存控制器及处理单元。处理单元从主装置接收优先写入命令,指示写入少于一个页面长度的第一数据至储存单元。之后,处理单元驱动缓存控制器从缓存器中的关连于优先写入的下一个可用子区域开始向第一方向储存第一数据。处理单元从主装置接收非优先写入命令,指示写入少于一个页面长度的第二数据至储存单元。之后,处理单元驱动缓存控制器从缓存器中的关连于非优先写入的下一个可用子区域开始向第二方向储存第二数据。
【附图说明】
图1是依据本发明实施例的快闪存储器的***架构示意图。
图2是依据本发明实施例的存取接口与储存单元的方块图。
图3是依据本发明实施例的一个存取子接口与多个储存子单元的连接示意图。
图4是依据本发明实施例的缓存器示意图。
第5及6图是依据本发明实施例的固态硬盘***的优先写入方法流程图。
图7是依据本发明实施例的缓存器示意图。
【符号说明】
10 ***;
110 处理单元;
120 数据分配器;
130 缓存控制器;
140_1、140_3 RAID引擎;
150 存取接口;
160 主装置;
170 存取接口;
CTRL 控制信号;
CMD1、CMD2、CMD3 命令;
DAT1、DAT2、DAT3 数据;
ECC1、ECC2 错误检查修正码;
170_0~170_j 存取子接口;
180 储存单元;
180_0_0、…、180_j_i 储存子单元;
320_0_0、…、320_0_i 芯片致能控制信号;
400 缓存器;
400_0_0、…、400_0_i 缓存器中的区域;
S510~S573 方法步骤;
S611~S635 方法步骤;
Head_1、Head_2 头指标;
Tail_1、Tail_2 尾指标。
【具体实施方式】
以下说明是为完成发明的较佳实现方式,其目的在于描述本发明的基本精神,但并不用以限定本发明。实际的发明内容必须参考之后的权利要求范围。
必须了解的是,使用于本说明书中的“包含”、“包括”等词,是用以表示存在特定的技术特征、数值、方法步骤、操作处理、元件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、操作处理、元件、组件,或以上的任意组合。
于权利要求中使用如“第一”、“第二”、“第三”等词是用来修饰权利要求中的元件,并非用来表示之间具有优先权顺序,先行关系,或者是一个元件先于另一个元件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的元件。
图1是依据本发明实施例的快闪存储器的***架构示意图。快闪存储器的***架构10中包含处理单元110,用以写入数据到储存单元180中的指定地址,以及从储存单元180中的指定地址读取数据。详细来说,处理单元110通过存取接口170写入数据到储存单元180中的指定地址,以及从储存单元180中的指定地址读取数据。处理单元110可使用多种方式实施,例如以专用硬件电路或通用硬件(例如,单一处理器、具平行处理能力的多处理器或其他具运算能力的处理器),并且于载入及执行特定指令或软件时实施如下所述的功能。处理单元110可包含运算逻辑单元(ALU,Arithmetic and Logic Unit)以及位移器(bitshifter)。运算逻辑单元负责执行布林运算(如AND、OR、NOT、NAND、NOR、XOR、XNOR等),而位移器负责位移运算及比特旋转。***架构10使用数个电子信号来协调处理单元110与储存单元180间的数据与命令传递,包含数据线(data line)、时脉信号(clock signal)与控制信号(control signal)。数据线可用以传递命令、地址、读出及写入的数据;控制信号线可用以传递芯片致能(chip enable,CE)、地址提取致能(address latch enable,ALE)、命令提取致能(command latch enable,CLE)、写入致能(write enable,WE)等控制信号。存取接口170可采用双倍数据率(double data rate,DDR)通信协定与储存单元180沟通,例如,开放NAND快闪(open NAND flash interface,ONFI)、双倍数据率开关(DDR toggle)或其他接口。处理单元110另可使用存取接口150通过指定通信协定与主装置160进行沟通,例如,通用序列总线(universal serial bus,USB)、先进技术附着(advanced technologyattachment,ATA)、序列先进技术附着(serial advanced technology attachment,SATA)、快速周边元件互联(peripheral component interconnect express,PCI-E)或其他接口。
储存单元180可包含多个储存子单元,每一个储存子单元实施于一个管芯(die)上,各自使用关联的存取子接口与处理单元110进行沟通。图2是依据本发明实施例的存取接口与储存单元的方块图。快闪存储器10可包含j+1个存取子接口170_0至170_j,存取子接口又可称为通道(channel),每一个存取子接口连接i+1个储存子单元。换句话说,i+1个储存子单元共享一个存取子接口。例如,当快闪存储器10包含4个通道(j=3)且每一个通道连接4个储存单元(i=3)时,快闪存储器10一共拥有16个储存单元180_0_0至180_j_i。处理单元110可驱动存取子接口170_0至170_j中其中之一,写入数据至指定的储存子单元。每个储存子单元拥有独立的芯片致能(CE,Chip Enable)控制信号。换句话说,当欲对指定的储存子单元进行数据写入时,需要驱动关联的存取子接口致能此储存子单元的芯片致能控制信号。图3是依据本发明实施例的一个存取子接口与多个储存子单元的连接示意图。处理单元110可通过存取子接口170_0使用独立的芯片致能控制信号320_0_0至320_0_i来从连接的储存子单元180_0_0至180_0_i中选择出其中一者,接着,通过共享的数据线310_0写入数据至选择出的储存子单元的指定位置。
处理单元110可使用二个模式中其中之一驱动存取接口170写入数据,一为直接写入(direct write),另一为缓存写入(buffered write)。当主装置160发出的写入命令(write command,CMD1)指示写入超过一个页面长度的数据时,处理单元110进入直接写入模式。假设一个页面的长度为16K比特组(bytes):当处理单元110判断主装置160发出的写入命令CMD1指示写入超过16K比特组的数据时,使用直接写入模式来写入数据。于此须注意的是,如果写入数据的长度不为页面长度的倍数时(例如nxp的数据,其中n代表页面数量,p代表一个页面的数据长度),不足的部分以虚拟数据(dummy data)填充。详细来说,于直接写入模式中,处理单元110发出控制信号CTRL指示数据分配器(data dispatcher)120将数据DAT1直接传送至存取接口170,并且发出命令CMD3驱动存取接口170把数据DAT1写入至储存单元180中的指定地址。当主装置160发出的写入命令CMD1指示写入的数据长度少于一个页面时,处理单元110进入缓存写入模式。详细来说,于缓存写入模式中,处理单元110发出控制信号CTRL指示数据分配器120将数据DAT1传送至缓存控制器130并且发出命令CMD2驱动缓存控制器130储存数据DAT1至缓存器的指定区域。接着,当缓存器中的数据搜集到一个页面的长度后,处理单元110发出命令CMD2驱动缓存控制器130输出缓存器中指定区域的数据DAT2或DAT3至存取接口170,接着发出命令CMD3驱动存取接口170把数据DAT2或DAT3写入至储存单元180中的指定地址。数据分配器120可以解多工器(de-multiplexer)实施,用以将存取接口150的数据线依据控制信号CTRL耦接至缓存控制器130及存取接口170中其中之一。图4是依据本发明实施例的缓存器示意图。缓存器400包含多个区域400_0_0至400_0_i。每个区域可包含四个子区域,用以分别储存四个单元(units)的数据,每个单元为固定长度,例如4K比特组。于此须注意的是,每个区域包含的子区域数目可依据储存子单元及容错式磁盘阵列(RAID,Redundant Array of Independent Disks)的设计而调整,本发明并不因此受限。
于缓存写入模式中,写入命令可为优先写入(priority write)及非优先写入(non-priority write)中其中之一。非优先写入命令可包含用以刷新重作日志至储存单元180的命令。如果写入命令CMD1包含优先写入的信息,处理单元110可发出控制信号CTRL指示数据分配器120将数据DAT1从区域400_0_0的第一个子区域向后储存(可称为第一方向)。例如,区域400_0_0的第一个子区域、第二个子区域,依此类推。从如果写入命令CMD1包含非优先写入的信息,处理单元110可发出控制信号CTRL指示数据分配器120将数据DAT1从区域400_0_i的最后一个子区域向前储存(可称为第二方向)。例如,区域400_0_i的最后一个子区域、倒数第二个子区域,依此类推。缓存控制器130中的寄存器储存二个尾指标(tailpointers):一个尾指标用以指向可储存优先写入命令的数据的下一个可用子区域;另一个尾指标用以指向可储存非优先写入命令的数据的下一个可用子区域。缓存控制器130可依据尾指标得到此优先写入命令或非优先写入命令的下一个可用子区域。于成功储存数据至缓存器400后,缓存控制器130更新相应的尾指标,用以指向已写入数据的最后一个单元的下一个的子区域。
RAID引擎140_1及140_3可分别依据数据DAT2及DAT3产生错误检查修正码(ECC,Error Check and Correction Code)。缓存控制器130中的寄存器另储存二个头指标(headpointers):一个头指标用以指向优先写入命令的尚未写入数据的第一个子区域;另一个头指标用以指向非优先写入命令的尚未写入数据的第一个子区域。缓存控制器130周期性地依据寄存器的四个指标以及写入政策(program policies)决定是否需要将缓存器400中的数据写入储存单元180。若是,缓存控制器130则将一个页面的数据传送至RAID引擎140_1至140_3中其中之一,并且发出命令CMD给存取接口170,用以指示从此RAID引擎接收数据DAT2或DAT3及相应的错误检查修正码并写入至储存单元180中的指定地址。
图5是依据本发明实施例的固态硬盘***的优先写入方法流程图。于缓存写入模式中,处理单元110载入并执行特定软件程序(software routine)时实施此方法,用以将不足一个页面的数据搬迁至缓存器400中的特定区域。首先,处理单元110通过存取接口150从主装置160取得写入命令CMD1,包含是否为优先写入(priority write)的信息(步骤S510)。当处理单元110判断写入命令CMD1为优先写入时(步骤S530中“是”的路径),执行优先写入程序(步骤S551至S553),否则(步骤S530中“否”的路径),执行非优先写入程序(步骤S571至S573)。
于优先写入程序中,处理单元110指示数据分配器120将数据DAT1传送至缓存控制器130,以及驱动缓存控制器130从缓存器中的关连于优先写入的下一个可用子区域开始储存数据DAT1(步骤S551)。接着,缓存控制器130于成功储存数据DAT1后,更新关连于优先写入的尾指标用以指向数据DAT1所储存的最后一个子区域的下一个可用子区域的地址(步骤S553)。于非优先写入程序中,处理单元110指示数据分配器120将数据DAT1传送至缓存控制器130,以及驱动缓存控制器130从缓存器中的关连于非优先写入的下一个可用子区域开始储存数据DAT1(步骤S571)。接着,缓存控制器130于成功储存数据DAT1后,更新关连于非优先写入的尾指标用以指向数据DAT1所储存的最后一个子区域的下一个可用子区域的地址(步骤S573)。图7是依据本发明实施例的缓存器示意图。假设缓存控制器130写入二个单元的优先写入数据及二个单元的非优先写入数据至缓存器400:缓存控制器130从缓存器400中的区域400_0_0的第一个子区域开始向后储存二个单元的优先写入数据后(步骤S551),更新关连于优先写入的尾指标Tail_1,用以指向区域400_0_0的第三个子区域(亦即是指向优先写入数据所储存的最后一个子区域的下一个可用子区域)(步骤S553)。缓存控制器130从缓存器400中的区域400_0_i的最后一个子区域开始向前储存二个单元的非优先写入数据后(步骤S571),更新关连于非优先写入的尾指标Tail_2,用以指向区域400_0_i的倒数第三个子区域(亦即是指向非优先写入数据所储存的最后一个子区域的下一个可用子区域)。
图6是依据本发明实施例的固态硬盘***的优先写入方法流程图。缓存控制器130实施此方法,用以周期性将零或多个页面的数据搬迁至缓存器400中的特定区域。缓存控制器130判断缓存器400中是否已储存至少一个页面的优先写入数据(步骤S611)。于步骤S611,缓存控制器130可依据关连于优先写入的头指标及尾指标判断缓存器400是否已储存至少一个页面的优先写入数据。如果优先写入的头指标及尾指标间的数据单元数目超过一个页面的数据单元数目,代表缓存器400已储存至少一个页面的优先写入数据。当缓存控制器130判断缓存器400中已储存至少一个页面的优先写入数据时(步骤S611中“是”的路径),输出缓存器400中一或多个完整页面的优先写入数据DAT2至RAID引擎140_1以及驱动存取接口170从RAID引擎140_1接收优先写入数据DAT2及其错误检查修正码ECC1并写入至储存单元180中的指定地址(步骤S613)。存取接口170可包含一个多工器,用以将RAID引擎140_1及140_3中其中之一耦接至储存单元180。缓存控制器130于成功写入优先写入数据DAT2后,更新关连于优先写入的头指标用以指向已写入数据DAT2所储存的最后一个子区域的下一个子区域(步骤S615),以及判断缓存器400中是否已储存至少一个页面的非优先写入数据(步骤S631)。当缓存控制器130判断缓存器400中尚未储存足够一个页面的优先写入数据时(步骤S611中“否”的路径),更判断缓存器400中是否已储存至少一个页面的非优先写入数据(步骤S631)。于步骤S631,缓存控制器130可依据关连于非优先写入的头指标及尾指标判断缓存器400是否已储存至少一个页面的非优先写入数据。如果非优先写入的头指标及尾指标间的数据单元数目超过一个页面的数据单元数目,代表缓存器400已储存至少一个页面的非优先写入数据。当缓存控制器130判断缓存器400中已储存至少一个页面的非优先写入数据时(步骤S631中“是”的路径),输出缓存器400中一或多个完整页面的非优先写入数据DAT3至RAID引擎140_3以及驱动存取接口170从RAID引擎140_3接收非优先写入数据DAT3及其错误检查修正码ECC2并写入至储存单元180中的指定地址(步骤S633)。缓存控制器130于成功写入非优先写入数据DAT3后,更新关连于非优先写入的头指标用以指向已写入数据DAT3所储存的最后一个子区域的下一个子区域(步骤S635),以及结束整个流程。当缓存控制器130判断缓存器400中尚未储存足够一个页面的非优先写入数据时(步骤S631中“否”的路径),结束整个流程。于此须注意的是,由于优先写入数据的优先权必须高于非优先写入数据的优先权,所以,步骤S631必须置于步骤S611之后。
虽然图1至3中包含了以上描述的元件,但不排除在不违反发明的精神下,使用更多其他的附加元件,已达成更佳的技术效果。此外,虽然第5及6图的处理步骤采用特定的顺序来执行,但是在不违反发明精神的情况下,熟习此技艺人士可以在达到相同效果的前提下,修改该多个步骤间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。
虽然本发明使用以上实施例进行说明,但需要注意的是,该多个描述并非用以限缩本发明。相反地,此发明涵盖了熟习此技艺人士显而易见的修改与相似设置。所以,申请权利要求范围须以最宽广的方式解释来包含所有显而易见的修改与相似设置。

Claims (20)

1.一种固态硬盘***的优先写入方法,由一处理单元执行,其特征在于,包含:
接收一第一写入命令,指示写入少于一页面长度的一第一数据至一储存单元,其中上述第一写入命令为一优先写入命令;
驱动一缓存控制器从一缓存器中的关连于一优先写入的下一个可用子区域开始向一第一方向储存上述第一数据;
接收一第二写入命令,指示写入少于上述页面长度的一第二数据至上述储存单元,其中上述第二写入命令为一非优先写入命令;以及
驱动上述缓存控制器从上述缓存器中的关连于一非优先写入的下一个可用子区域开始向一第二方向储存上述第二数据。
2.如权利要求1所述的固态硬盘***的优先写入方法,其特征在于,上述第一方向相反于上述第二方向。
3.如权利要求1所述的固态硬盘***的优先写入方法,其特征在于,更包含:
储存上述第一数据至上述缓存器后,更新一第一尾指标用以指向上述第一数据所储存的最后一个子区域的下一个可用子区域;以及
储存上述第二数据至上述缓存器后,更新一第二尾指标用以指向上述第二数据所储存的最后一个子区域的下一个可用子区域。
4.如权利要求1所述的固态硬盘***的优先写入方法,其特征在于,更包含:
于驱动上述缓存控制器储存上述第一数据至上述缓存器之前,指示上述数据分配器将一第一存取接口耦接至上述缓存控制器,用以将上述第一数据传送至上述缓存控制器;以及
于驱动上述缓存控制器储存上述第二数据至上述缓存器之前,指示上述数据分配器将上述第一存取接口耦接至上述缓存控制器,用以将上述第二数据传送至上述缓存控制器。
5.如权利要求4所述的固态硬盘***的优先写入方法,其特征在于,上述数据分配器为一解多工器,用以依据一控制信号将上述第一存取接口耦接至上述缓存控制器以及一第二存取接口中其中之一。
6.如权利要求1所述的固态硬盘***的优先写入方法,其特征在于,上述缓存控制器周期性判断上述缓存器中是否已储存至少一页面的上述第一数据;以及当上述缓存器中已储存至少一页面的上述第一数据时,将上述完整页面的上述第一数据写入上述储存单元。
7.如权利要求6所述的固态硬盘***的优先写入方法,其特征在于,当上述缓存器中已储存至少一页面的上述第一数据时,上述缓存控制器输出上述完整页面的上述第一数据至一第一容错式磁盘阵列引擎;以及驱动一存取接口从上述第一容错式磁盘阵列引擎接收上述完整页面的上述第一数据以及一第一错误检查修正码,以及写入上述完整页面的上述第一数据以及上述第一错误检查修正码。
8.如权利要求7所述的固态硬盘***的优先写入方法,其特征在于,上述缓存控制器成功写入上述完整页面的上述第一数据以及上述第一错误检查修正码至上述储存单元后,更新一第一头指标用以指向上述已写入的第一数据所储存的最后一个子区域的下一个子区域。
9.如权利要求6所述的固态硬盘***的优先写入方法,其特征在于,上述缓存控制器写入至少一完整页面的上述第一数据写入一储存单元之后,判断上述缓存器中是否已储存至少一页面的上述第二数据;以及当上述缓存器中已储存至少一页面的上述第二数据时,将上述完整页面的上述第二数据写入上述储存单元。
10.如权利要求9所述的固态硬盘***的优先写入方法,其特征在于,当上述缓存器中已储存至少一页面的上述第二数据时,上述缓存控制器输出上述完整页面的上述第二数据至一第二容错式磁盘阵列引擎;以及驱动一存取接口从上述第二容错式磁盘阵列引擎接收上述完整页面的上述第二数据以及一第二错误检查修正码,以及写入上述完整页面的上述第二数据以及上述第二错误检查修正码。
11.一种固态硬盘***的优先写入装置,其特征在于,包含:
一缓存控制器;以及
一处理单元,耦接至上述缓存控制器,从一主装置接收一第一写入命令,指示写入少于一页面长度的一第一数据至一储存单元,其中上述第一写入命令为一优先写入命令;驱动上述缓存控制器从一缓存器中的关连于一优先写入的下一个可用子区域开始向一第一方向储存上述第一数据;从上述主装置接收一第二写入命令,指示写入少于上述页面长度的一第二数据至上述储存单元,其中上述第二写入命令为一非优先写入命令;以及驱动上述缓存控制器从上述缓存器中的关连于一非优先写入的下一个可用子区域开始向一第二方向储存上述第二数据。
12.如权利要求11所述的固态硬盘***的优先写入装置,其特征在于,上述第一方向相反于上述第二方向。
13.如权利要求11所述的固态硬盘***的优先写入装置,其特征在于,储存上述第一数据至上述缓存器后,上述处理单元更新一第一尾指标用以指向上述第一数据所储存的最后一个子区域的下一个可用子区域;以及储存上述第二数据至上述缓存器后,更新一第二尾指标用以指向上述第二数据所储存的最后一个子区域的下一个可用子区域。
14.如权利要求11所述的固态硬盘***的优先写入装置,其特征在于,上述处理单元于驱动上述缓存控制器储存上述第一数据至上述缓存器之前,指示上述数据分配器将一第一存取接口耦接至上述缓存控制器,用以上述第一数据传送至上述缓存控制器;以及于驱动上述缓存控制器储存上述第二数据至上述缓存器之前,指示上述数据分配器将上述第一存取接口耦接至上述缓存控制器,用以将上述第二数据传送至上述缓存控制器。
15.如权利要求14所述的固态硬盘***的优先写入装置,其特征在于,上述数据分配器为一解多工器,用以依据一控制信号将上述第一存取接口耦接至上述缓存控制器以及一第二存取接口中其中之一。
16.如权利要求11所述的固态硬盘***的优先写入装置,其特征在于,上述缓存控制器周期性判断上述缓存器中是否已储存至少一页面的上述第一数据;以及当上述缓存器中已储存至少一页面的上述第一数据时,将上述完整页面的上述第一数据写入上述储存单元。
17.如权利要求16所述的固态硬盘***的优先写入装置,其特征在于,当上述缓存器中已储存至少一页面的上述第一数据时,上述缓存控制器输出上述完整页面的上述第一数据至一第一容错式磁盘阵列引擎;以及驱动一存取接口从上述第一容错式磁盘阵列引擎接收上述完整页面的上述第一数据以及一第一错误检查修正码,以及写入上述完整页面的上述第一数据以及上述第一错误检查修正码。
18.如权利要求17所述的固态硬盘***的优先写入装置,其特征在于,上述缓存控制器成功写入上述完整页面的上述第一数据以及上述第一错误检查修正码至上述储存单元后,更新一第一头指标用以指向上述已写入的第一数据所储存的最后一个子区域的下一个子区域。
19.如权利要求16所述的固态硬盘***的优先写入装置,其特征在于,上述缓存控制器写入至少一完整页面的上述第一数据写入一储存单元之后,判断上述缓存器中是否已储存至少一页面的上述第二数据;以及当上述缓存器中已储存至少一页面的上述第二数据时,将上述完整页面的上述第二数据写入上述储存单元。
20.如权利要求19所述的固态硬盘***的优先写入装置,其特征在于,当上述缓存器中已储存至少一页面的上述第二数据时,上述缓存控制器输出上述完整页面的上述第二数据至一第二容错式磁盘阵列引擎;以及驱动一存取接口从上述第二容错式磁盘阵列引擎接收上述完整页面的上述第二数据以及一第二错误检查修正码,以及写入上述完整页面的上述第二数据以及上述第二错误检查修正码。
CN201610802224.3A 2016-09-05 2016-09-05 固态硬盘***的优先写入方法以及使用该方法的装置 Active CN107797756B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201610802224.3A CN107797756B (zh) 2016-09-05 2016-09-05 固态硬盘***的优先写入方法以及使用该方法的装置
TW105134402A TWI613656B (zh) 2016-09-05 2016-10-25 固態硬碟系統的優先寫入方法以及使用該方法的裝置
US15/626,334 US10338998B2 (en) 2016-09-05 2017-06-19 Methods for priority writes in an SSD (solid state disk) system and apparatuses using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610802224.3A CN107797756B (zh) 2016-09-05 2016-09-05 固态硬盘***的优先写入方法以及使用该方法的装置

Publications (2)

Publication Number Publication Date
CN107797756A true CN107797756A (zh) 2018-03-13
CN107797756B CN107797756B (zh) 2021-01-12

Family

ID=61281678

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610802224.3A Active CN107797756B (zh) 2016-09-05 2016-09-05 固态硬盘***的优先写入方法以及使用该方法的装置

Country Status (3)

Country Link
US (1) US10338998B2 (zh)
CN (1) CN107797756B (zh)
TW (1) TWI613656B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111966300A (zh) * 2020-08-24 2020-11-20 深圳三地一芯电子有限责任公司 一种节省主控sram的存储器数据写入方法及装置
CN117591036A (zh) * 2024-01-18 2024-02-23 四川云海芯科微电子科技有限公司 基于固件与芯片微内核的占位数据补齐方法及***

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11797188B2 (en) * 2019-12-12 2023-10-24 Sk Hynix Nand Product Solutions Corp. Solid state drive with multiplexed internal channel access during program data transfers
CN113821175B (zh) * 2021-09-27 2024-07-09 山东华芯半导体有限公司 基于存储内容优先的ssd指令调度方法及***

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101354635A (zh) * 2007-07-24 2009-01-28 株式会社东芝 信息记录装置及其控制方法
CN102110034A (zh) * 2009-12-28 2011-06-29 北京安码科技有限公司 一种结合电池和dram的硬盘存储方法及装置
US20130145085A1 (en) * 2008-06-18 2013-06-06 Super Talent Technology Corp. Virtual Memory Device (VMD) Application/Driver with Dual-Level Interception for Data-Type Splitting, Meta-Page Grouping, and Diversion of Temp Files to Ramdisks for Enhanced Flash Endurance
CN103425439A (zh) * 2013-07-16 2013-12-04 记忆科技(深圳)有限公司 固态硬盘读写的方法及其固态硬盘
US20150058700A1 (en) * 2013-08-23 2015-02-26 Silicon Motion, Inc. Methods for Accessing a Storage Unit of a Flash Memory and Apparatuses using the Same

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266367B2 (en) * 2003-12-02 2012-09-11 Super Talent Electronics, Inc. Multi-level striping and truncation channel-equalization for flash-memory system
US6922754B2 (en) * 2002-12-09 2005-07-26 Infabric Technologies, Inc. Data-aware data flow manager
JP2010080021A (ja) * 2008-09-29 2010-04-08 Toshiba Storage Device Corp 記録制御方法及び記録制御部、並びに記憶装置
US9471240B2 (en) * 2010-06-24 2016-10-18 International Business Machines Corporation Performing read and write operations with respect to at least one solid state disk and at least one non-solid state disk
US8966184B2 (en) * 2011-01-31 2015-02-24 Intelligent Intellectual Property Holdings 2, LLC. Apparatus, system, and method for managing eviction of data
US20130019057A1 (en) * 2011-07-15 2013-01-17 Violin Memory, Inc. Flash disk array and controller
US20130080687A1 (en) * 2011-09-23 2013-03-28 Avalanche Technology, Inc. Solid state disk employing flash and magnetic random access memory (mram)
US9645917B2 (en) * 2012-05-22 2017-05-09 Netapp, Inc. Specializing I/O access patterns for flash storage
CN105683930B (zh) * 2013-10-29 2019-05-31 上海宝存信息科技有限公司 用于数据存储***的动态缓存方法和***
US9274713B2 (en) * 2014-04-03 2016-03-01 Avago Technologies General Ip (Singapore) Pte. Ltd. Device driver, method and computer-readable medium for dynamically configuring a storage controller based on RAID type, data alignment with a characteristic of storage elements and queue depth in a cache
US9798470B2 (en) * 2015-01-23 2017-10-24 Toshiba Memory Corporation Memory system for storing and processing translation information

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101354635A (zh) * 2007-07-24 2009-01-28 株式会社东芝 信息记录装置及其控制方法
US20130145085A1 (en) * 2008-06-18 2013-06-06 Super Talent Technology Corp. Virtual Memory Device (VMD) Application/Driver with Dual-Level Interception for Data-Type Splitting, Meta-Page Grouping, and Diversion of Temp Files to Ramdisks for Enhanced Flash Endurance
CN102110034A (zh) * 2009-12-28 2011-06-29 北京安码科技有限公司 一种结合电池和dram的硬盘存储方法及装置
CN103425439A (zh) * 2013-07-16 2013-12-04 记忆科技(深圳)有限公司 固态硬盘读写的方法及其固态硬盘
US20150058700A1 (en) * 2013-08-23 2015-02-26 Silicon Motion, Inc. Methods for Accessing a Storage Unit of a Flash Memory and Apparatuses using the Same

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111966300A (zh) * 2020-08-24 2020-11-20 深圳三地一芯电子有限责任公司 一种节省主控sram的存储器数据写入方法及装置
CN117591036A (zh) * 2024-01-18 2024-02-23 四川云海芯科微电子科技有限公司 基于固件与芯片微内核的占位数据补齐方法及***
CN117591036B (zh) * 2024-01-18 2024-03-19 四川云海芯科微电子科技有限公司 基于固件与芯片微内核的占位数据补齐方法及***

Also Published As

Publication number Publication date
US10338998B2 (en) 2019-07-02
TWI613656B (zh) 2018-02-01
US20180067797A1 (en) 2018-03-08
CN107797756B (zh) 2021-01-12
TW201810277A (zh) 2018-03-16

Similar Documents

Publication Publication Date Title
KR102569783B1 (ko) 비순차적 구역 네임스페이스들
US10671299B2 (en) Nonvolatile memory module having device controller that detects validity of data in RAM based on at least one of size of data and phase bit corresponding to the data, and method of operating the nonvolatile memory module
US8681552B2 (en) System and method for accessing and storing interleaved data
US7937523B2 (en) Memory system with nonvolatile semiconductor memory
EP3511814B1 (en) Storage device storing data in order based on barrier command
CN103650054B (zh) 包含存储器***控制器的设备和相关方法
US20170322897A1 (en) Systems and methods for processing a submission queue
CN108874303B (zh) 非易失性存储器命令冲突避免的储存***和方法
US20160291866A1 (en) Command load balancing for nvme dual port operations
CN105528299B (zh) 读取命令排程方法以及使用该方法的装置
TWI698749B (zh) 資料儲存裝置與資料處理方法
KR20170012935A (ko) 데이터 저장 장치의 작동 방법과 상기 데이터 저장 장치를 포함하는 시스템의 작동 방법
US20150081967A1 (en) Management of storage read requests
CN107797756A (zh) 固态硬盘***的优先写入方法以及使用该方法的装置
KR102646724B1 (ko) 배리어 커맨드에 기초하여 데이터를 순서대로 저장하는 스토리지 장치
CN107797755A (zh) 固态硬盘***的原子写入方法以及使用该方法的装置
US10528285B2 (en) Data storage device and method for operating non-volatile memory
CN114730290A (zh) 将变化日志表移动至与分区对准
CN109799959A (zh) 一种提高开放通道固态盘写并行性的方法
US20130339583A1 (en) Systems and methods for transferring data out of order in next generation solid state drive controllers
US10365834B2 (en) Memory system controlling interleaving write to memory chips
CN112445422A (zh) 存储器控制器、存储装置以及存储器控制器的操作方法
CN116028169A (zh) 调度用于存储器装置的命令的方法和执行其的存储器***
CN113495850B (zh) 管理垃圾回收程序的方法、装置及计算机可读取存储介质
CN112579328A (zh) 处理编程出错的方法与存储设备

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
GR01 Patent grant
GR01 Patent grant