CN102652313B - 闪速存储器控制器及其操作方法 - Google Patents
闪速存储器控制器及其操作方法 Download PDFInfo
- Publication number
- CN102652313B CN102652313B CN201080056012.6A CN201080056012A CN102652313B CN 102652313 B CN102652313 B CN 102652313B CN 201080056012 A CN201080056012 A CN 201080056012A CN 102652313 B CN102652313 B CN 102652313B
- Authority
- CN
- China
- Prior art keywords
- flash memory
- flash
- sub
- flash controller
- instruction
- 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.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 title claims abstract description 242
- 238000000034 method Methods 0.000 title claims abstract description 182
- 238000005538 encapsulation Methods 0.000 claims description 55
- 230000005540 biological transmission Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 238000002203 pretreatment Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 2
- 238000005299 abrasion Methods 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1042—Read-write modes for single port memories, i.e. having either a random port or a serial port using interleaving techniques, i.e. read-write of one part of the memory while preparing another part
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
闪速存储器控制器通过第一闪速存储器接口耦合到第一闪速存储器封装,并且通过第一闪速存储器接口耦合到第二闪速存储器封装。闪速存储器控制器设计为接收与第一闪速存储器封装有关的第一指令,并且执行取决于该第一指令的第一处理。闪速存储器控制器进一步设计为接收与第二闪速存储器封装有关的第二指令,并且执行取决于该第二指令的第二处理。闪速存储器控制器进一步适用于将该第一处理划分为至少两个第一子步骤,并且适用于将该第二处理划分为至少两个第二子步骤。闪速存储器控制器进一步适用于执行第一和第二子步骤,并且适用交叉于第一和第二子步骤的执行。
Description
技术领域
本发明涉及闪速存储器控制器,并且涉及用于操作闪速存储器控制器的方法。
背景技术
基于固态的存储设备与传统的硬盘驱动器相比,由于低功耗、耐用性和高输入输出(IO)性能,正变得日益受欢迎。最流行的固态存储设备基于NAND闪速存储器芯片。
基于闪存的存储系统的典型配置包括至少一个闪速存储器控制器,以及通过串行、多路复用闪速存储器接口连接到闪速存储器控制器的一个或多个闪速存储器封装(package)。每个闪速存储器封装典型地由一个或多个管芯构成,每个管芯典型地提供2GB或更多的存储容量。通过经由多路复用闪速存储器接口发送多步骤命令来存取闪速存储器封装。闪速存储器接口通常也称为信道。
在示例配置中,封装内的每个管芯包含8192个块。而每个块由每个4KB的64个页面构成。除了数据之外,每个页面包括128字节的区域,以存储元数据或错误检测和校正信息。
典型地以页面粒度进行数据读取和写入。典型的读取操作花费25μs来从各单元读取页面到附接到每个管芯的4KB的数据缓冲器中。除此之外,通过闪速存储器接口将数据从数据缓冲器发送到闪速存储器控制器。闪速存储器接口以典型地每字节25ns(根据ONFI-1标准)或粗略地每页面100μs传输数据。在数据从闪速存储器封装到闪速存储器控制器的传输期间,闪速存储器接口被占用,并且不可用于竞争数据传输。
写入操作花费相同的时间来将数据从闪速存储器控制器通过闪速存储器接口传输到管芯内的数据缓冲器。然后,对于要写出到管芯的各个存储器单元的数据花费额外的200μs。
发明内容
根据本发明实施例的闪速存储器控制器可以通过第一闪速存储器接口耦合到第一闪速存储器封装。第二闪速存储器封装也可以通过第一闪速存储器接口耦合到闪速存储器控制器。闪速存储器控制器设计为接收与第一闪速存储器封装有关的第一指令,并且执行取决于该第一指令的第一处理。闪速存储器控制器进一步设计为接收与第二闪速存储器封装有关的第二指令,并且执行取决于该第二指令的第二处理。闪速存储器控制器进一步设计用于将该第一处理划分为至少两个第一子步骤,并且用于将该第二处理划分为至少两个第二子步骤。闪速存储器控制器进一步设计用于执行第一和第二子步骤,并且用于交叉第一和第二子步骤的执行。该闪速存储器控制器可以改进闪速存储器接口上的IO吞吐量,并且可以消除执行读取和写入指令要求的时间之间的偏斜(skew)。
闪速存储器控制器可以包括处理列表,并且适用于在处理列表中存储未完成的处理和该未完成的处理的当前子步骤。
闪速存储器控制器可以进一步维持用于未完成的处理的定时器,其中该定时器适用于当完成未完成的处理的子步骤时触发事件。这可以允许高效地流水线处理多个处理的子步骤。
闪速存储器控制器可以进一步包括指令队列,并且适用于将第一和/或第二指令推入到该指令队列上。这可以允许推迟指令直到与之前指令有关的处理已经完成。
第一指令可以是读取指令。那么第一处理可以是读取处理,并且被划分为三个子步骤。
第一指令也可以是写入指令。那么第一处理可以是写入处理,并且被划分为三个子步骤。
第一指令还可以是擦除指令。那么第一处理可以是擦除处理,并且被划分为三个子步骤。
第一闪速存储器封装可以包括第一芯片管芯。那么第一指令可以与第一闪速存储器封装的该第一芯片管芯有关。那么闪速存储器控制器可以设计为接收与第一闪速存储器封装的第一芯片管芯有关的第三指令,并且执行取决于该第三指令的第三处理。那么闪速存储器控制器设计用于将第三处理划分为至少两个第三子步骤,并且用于在开始第三子步骤的执行之前完成全部第一子步骤的执行。这可以确保不并行执行涉及相同管芯的两个处理。这可以避免数据的最终损坏。
闪速存储器控制器可以通过第二闪速存储器接口耦合到第三闪速存储器封装。那么闪速存储器控制器可以与耦合到第一闪速存储器接口的闪速存储器封装和耦合到第二闪速存储器接口的闪速存储器封装同时交换数据。
闪速存储器控制器可以包括主机接口,并且适用于通过该主机接口接收第一指令和第二指令。这可以允许将闪速存储器控制器耦合到外部系统,例如个人计算机。
闪速存储器控制器可以包括将第一闪速存储器接口标记为忙碌或空闲的标志。这可以允许保持跟踪第一闪速存储器接口当前是可用还是占用。
在进一步的实施例中,闪速存储器控制器连接到多个闪速存储器接口,每个接口连接到多个闪速存储器封装或芯片管芯。在该实施例中,闪速存储器控制器通过发出由读取、写入和擦除处理构成的处理的流,检索和存储来自闪速存储器封装或芯片管芯的数据。每个读取、写入或擦除处理划分为多个子步骤。设计闪速存储器控制器,使得在较早处理的子步骤已经完成之前,稍后处理中的子步骤可以进行。此外,在连接到相同闪速存储器接口的多个闪速存储器封装或芯片管芯内多个处理可以并行进行。
用于操作根据本发明实施例的闪速存储器控制器的方法包括以下步骤:该闪速存储器控制器接收与第一闪速存储器封装有关的第一指令,该第一闪速存储器封装通过第一闪速存储器接口耦合到该闪速存储器控制器;该闪速存储器控制器接收与第二闪速存储器封装有关的第二指令,该第二闪速存储器封装通过该第一闪速存储器接口耦合到该闪速存储器控制器;该闪速存储器控制器将取决于该第一指令的第一处理划分为至少两个第一子步骤;该闪速存储器控制器将取决于该第二指令的第二处理划分为至少两个第二子步骤;以及该闪速存储器控制器执行第一和第二子步骤,其中闪速存储器控制器交叉第一和第二子步骤的执行。该方法可以改进闪速存储器接口上的IO吞吐量,并且可以消除执行读取和写入指令要求的时间之间的偏斜。
该方法可以包括步骤:在接收该第一指令后,闪速存储器控制器将第一指令推入到队列上。那么该方法还包括以下进一步的步骤,仅如果该第一闪速存储器接口标记为空闲、并且没有与第一闪速存储器封装有关的未完成的较早处理存在,则执行这些步骤:该闪速存储器控制器从该队列拉出与第一闪速存储器封装有关的较早指令;如果取决于较早指令的第三处理的第一子步骤要求使用该第一闪速存储器接口,则该闪速存储器控制器将第一闪速存储器接口标记为忙碌;该闪速存储器控制器开始该第三处理的该第一子步骤的执行。该方法可以确保接连地执行要求使用相同闪速存储器接口的竞争处理。
该方法可以还包括以下步骤:闪速存储器控制器接收用于该第三处理的之前的子步骤的完成事件,如果该第一闪速存储器接口已经用于执行之前的子步骤,则该闪速存储器控制器释放该第一闪速存储器接口。那么该方法还可以包括以下进一步的步骤,仅如果之前的子步骤不是第三处理的最后子步骤,则执行这些步骤:如果对于第三处理的下一子步骤需要该第一闪速存储器接口,该闪速存储器控制器将该第一闪速存储器接口标记为忙碌,以及该闪速存储器控制器开始执行该第三处理的该下一子步骤。这可以允许流水线进行几个竞争处理的子步骤,从而减少所有处理的整体执行时间。
该方法可以还包括以下步骤:完成第三处理的执行之后,闪速存储器控制器从该队列拉出与第一闪速存储器封装有关的第四指令,如果取决于第四指令的第四处理的第一子步骤要求使用该第一闪速存储器接口,则该闪速存储器控制器将该第一闪速存储器接口标记为忙碌,以及该闪速存储器控制器开始执行该第四处理的第一子步骤。这可以确保一旦闪速存储器接口变得再次可用,就执行已经为稍后的执行排队的处理。
附图说明
附图的简要描述
图1描述具有闪速存储器控制器的闪速存储器系统的示意性表示;
图2示出读取处理的时序图;
图3示出写入处理的时序图;
图4示出擦除处理的时序图;
图5示出用于操作闪速存储器控制器的方法的示意性流程图;以及
图6示出用于操作闪速存储器控制器的方法的进一步步骤的示意性流程图。
具体实施方式
图1示出闪速存储器系统400的简化示意性表示。闪速存储器系统400例如可以是闪速存储设备,并且例如可以用作对于硬盘驱动器的替代。闪速存储器系统400还可以是便携式存储设备。闪速存储器系统400包括闪速存储器控制器500。闪速存储器控制器500包括主机接口570,通过其闪速存储器控制器500可以与外部系统(例如,个人计算机)通信。闪速存储器控制器500可以经由主机接口570接收指令,可以经由主机接口570接收要存储在闪速存储器系统400中的数据,并且可以经由主机接口570将从闪速存储器系统400检索的数据发出到主机系统。
闪速存储器控制器500耦合到第一闪速存储器接口510和第二闪速存储器接口520。在可替代实施例中,闪速存储器控制器500可以仅耦合到第一闪速存储器接口510,或者可以耦合到多于两个的闪速存储器接口510、520。闪速存储器接口510、520也可以称为信道。第一闪速存储器封装530和第二闪速存储器封装540耦合到第一闪速存储器接口510。在可替代实施例中,可以只提供闪速存储器封装530,或者第一闪速存储器接口510可以耦合到多于两个闪速存储器封装530、540。第三闪速存储器封装550和第四闪速存储器封装560耦合到第二闪速存储器接口520。在可替代实施例中,第二闪速存储器接口还可以仅耦合到一个闪速存储器封装550,或者多于两个闪速存储器封装550、560。在每个时间点,每个闪速存储器接口510、520当前在使用中,贯穿本描述中这也将称为忙碌或占用,或者每个闪速存储器接口510、520当前不在使用中,贯穿本描述中这也将称为空闲或可用。
每个闪速存储器封装530、540、550、560包括一个或多个芯片管芯。在图1中描述的示例实施例中,第一闪速存储器封装530包括第一芯片管芯531和第二芯片管芯532。每个芯片管芯531、532例如可以包括2GB的存储器单元。每个管芯的存储器单元例如可以分为8192块。而每个芯片管芯531、532的每个块可以分组为64个页面,每个页面包括4KB的存储器单元。每个页面的存储器单元可以存储数据、元数据或错误检查或校正信息。
闪速存储器控制器500进一步包括指令队列501、处理列表502、定时器设备503、第一标志504和第二标志505。指令队列501、处理列表502和标志504、505例如可以设计为RAM存储器单元。优选地,指令队列501适配为FIFO(先入先出)队列。然而,指令队列501也可以以其他方式适配。定时器设备503能够在可编程时间点触发事件。由定时器设备503触发的事件触发通过闪速存储器控制器500的预定义例程的执行。
闪速存储器控制器500可以进一步包括操作闪速存储器封装530、540、550和560必需的组件。闪速存储器控制器500例如可以维持将闪速存储器封装530、540、550、560的逻辑块地址映射到闪速存储器封装530、540、550、560的物理块地址的列表。闪速存储器控制器500还可以包括磨损均衡无用信息(garbage)收集和坏块管理。这些组件对闪速存储器系统领域的技术人员是熟知的。
闪速存储器控制器500设计用于通过主机接口570接收指令。指令既可以是读取指令、写入指令,也可以是擦除指令。读取指令指令闪速存储器控制器500执行读出闪速存储器封装530、540、550、560之一中存储的数据、以及经由主机接口570发送检索的数据的处理。写入指令指令闪速存储器控制器500经由主机接口570检索数据,并且在闪速存储器封装530、540、550、560之一中存储检索的数据。擦除指令指令闪速存储器控制器500执行擦除闪速存储器封装530、540、550、560之一的一个或多个块中存储的数据。
图2示出当接收读取指令时由闪速存储器控制器500执行的读取处理100的示意图。读取处理包括第一读取子步骤110、第二读取子步骤120和第三读取子步骤130。图2的示例图假设读取处理100读取耦合到第一闪速存储器接口510的第一闪速存储器封装530的芯片管芯531、532之一中存储的数据。图2的水平轴描述增加的时间。第一图形140描述第一闪速存储器接口510上的数据通信。第二图形150描述闪速存储器接口510是忙碌还是空闲。图形150的上水平线指示在读取处理100的执行期间要求第一闪速存储器接口510,因此第一闪速存储器接口510是忙碌的,同时图形150的下水平线指示第一闪速存储器接口510在读取处理100的该执行时段期间没有使用,因此是空闲的。
在第一读取子步骤110期间,闪速存储器控制器500经由第一闪速存储器接口510将第一命令码141、页面地址142和第二命令码143接连发送到第一闪速存储器封装530。第一读取子步骤110持续七个时钟周期长的第一读取子步骤持续时间115。一个时钟周期例如可以要求25ns。在第一读取子步骤110期间,对于传输第一命令码141、页面地址142和第二命令码143要求第一闪速存储器接口510,因此第一闪速存储器接口510对于其他处理不可用。
在第二读取子步骤120期间,第一闪速存储器封装530从芯片管芯531、532之一检索请求的数据,并且将该数据存储在与第一闪速存储器封装530的各自芯片管芯相关联的内部缓冲器。第二读取子步骤120持续例如可以是25μs长的第二读取子步骤持续时间125。在第二读取子步骤120期间,对于读取处理100不要求第一闪速存储器接口510,如第二图形150所指示的。
在第三读取子步骤130期间,闪速存储器控制器500经由第一闪速存储器接口510从与第一闪速存储器封装530的各自芯片管芯相关联的内部缓冲器检索请求的数据144。第三读取子步骤130持续例如可以是100μs长的第三读取子步骤持续时间135。在第三读取子步骤130期间,第一闪速存储器接口510由读取处理100占用,如图2中的图形150所指示的。
图3显示由闪速存储器控制器500执行的写入处理200的示意性时序图。在图3的示例中,假设写入处理200将数据写入到第一闪速存储器封装530的芯片管芯531、531之一。图3的水平轴描述增加的时间。第一图形240描述经由第一闪速存储器接口510在闪速存储器控制器500和第一闪速存储器封装530之间传输的数据。第二图形250描述在写入处理200的执行期间在各自时间点是否要求第一闪速存储器接口510。上水平线指示要求第一闪速存储器接口510,而下水平线指示不要求第一闪速存储器接口510。写入处理200包括第一写入子步骤210、第二写入子步骤220和第三写入子步骤230。
在第一写入子步骤210期间,闪速存储器控制器500经由第一闪速存储器接口510将第一命令码241、页面地址242、要存储在第一闪速存储器封装530的芯片管芯531、532之一的存储器单元中的数据243、以及第二命令码244接连发送到第一闪速存储器封装530。因此,在第一写入子步骤210期间,占用第一闪速存储器接口510。第一写入子步骤210持续可以是近似100μs长的第一写入子步骤持续时间215。第一闪速存储器封装530首先在与第一闪速存储器封装530的各自芯片管芯531、532相关联的内部缓冲器中存储检索的数据243。
在第二写入子步骤220期间,第一闪速存储器封装530将第一闪速存储器封装530的内部缓冲器中存储的数据243写入到芯片管芯531、532的各个存储器单元。在第二写入子步骤220期间,对于写入处理200不要求第一闪速存储器接口510。第二写入子步骤200持续例如可以是200μs的第二写入子步骤持续时间225。
在第三写入子步骤230期间,闪速存储器控制器500经由闪速存储器接口510从第一闪速存储器封装530检索第三命令码245并第四命令码246,以确定是否已经成功执行数据写入。因此,第一闪速存储器接口510在第三写入子步骤230期间是忙碌的。第三写入子步骤230持续例如可以是两个时钟周期长的第三写入子步骤持续时间235。
图4描述有闪速存储器控制器500执行的擦除处理300的示意时序图。在图4的示例中,假设擦除处理300从第一闪速存储器封装530的芯片管芯531、532之一的存储器单元擦除数据。水平轴再次描述增加的时间。第一图形340描述经由第一闪速存储器接口510在闪速存储器控制器500和第一闪速存储器封装530之间传输的数据。第二图形350描述在各自时间点对于执行擦除处理300是否要求第一闪速存储器接口510。擦除处理300包括第一擦除子步骤310、第二擦除子步骤320和第三擦除子步骤330。
在第一擦除子步骤310期间,闪速存储器控制器500经由第一闪速存储器接口510将第一命令码341、块地址342和第二命令码343发送到第一闪速存储器封装530。因此,在第一擦除子步骤310期间,第一闪速存储器接口510是忙碌的。第一擦除子步骤310持续例如可以是七个时钟周期长的第一擦除子步骤持续时间315。
在第二擦除子步骤320期间,第一闪速存储器封装530从具有块地址342的块的存储器单元擦除数据。第二擦除子步骤320持续例如可以是1.5ms长的第二擦除子步骤持续时间325。在第二擦除子步骤320期间,对于擦除处理300不占用第一闪速存储器接口510。
在第三擦除子步骤330期间,闪速存储器控制器500经由第一闪速存储器接口510从第一闪速存储器封装530检索第三命令码344和第四命令码345,以确定从请求的块擦除数据是否已经成功。因此,在第三擦除子步骤330期间,擦除处理300不占用第一闪速存储器接口510。第三擦除子步骤330持续例如可以是两个时钟周期长的第三擦除子步骤持续时间335。
图2和3的时序图示出读取处理100总共花费约125μs,而写入处理200总共花费约300ms。因此,读取处理100快于写入处理200。
图1示出第一闪速存储器封装530和第二闪速存储器封装540二者都通过闪速存储器接口510耦合到闪速存储器控制器500。在传统闪速存储器系统中,在闪速存储器控制器500执行与第一闪速存储器封装530的第一芯片管芯531有关的处理的同时,完全阻断第一闪速存储器接口510。因此,闪速存储器控制器500在完成与第一闪速存储器封装530的第一芯片管芯531有关的竞争处理之前,不能执行与第一闪速存储器封装530的第二芯片管芯532有关的处理。这相应地应用于耦合到第一闪速存储器接口510的任何进一步的闪速存储器封装。
然而,图2、3和4的示例已经示出读取处理100、写入处理200和擦除处理300每个包括不要求第一闪速存储器接口510的子步骤。本发明的一个理念是利用这些用于并行执行竞争处理的子步骤的间隔。这允许实现改进的整体性能。该方法尤其允许使得读取处理100和写入处理200均等地快。
例如提出的方法允许并行于与第一闪速存储器封装530的第二芯片管芯532有关的第二读取处理,部分执行与第一闪速存储器封装530的第一芯片管芯531有关的第一读取处理。然而,与闪速存储器封装的相同芯片管芯有关的两个处理仍然顺序执行,以避免数据的损坏。该原理是流水线进行与耦合到相同闪速存储器接口的闪速存储器封装的处理的子步骤,同时按顺序根据其子步骤使读取处理、写入处理和擦除处理完成而没有损坏。
为了达到这一点,闪速存储器控制器500既对于耦合到闪速存储器控制器500每个闪速存储器接口保持跟踪所有未完成的读取处理、写入处理和擦除处理,又保持跟踪每个未完成的读取处理、写入处理和擦除处理的当前子步骤。该信息存储在闪速存储器控制器500的处理列表502中。闪速存储器控制器500进一步维持用于每个未完成的读取处理、写入处理和擦除处理的定时器,以便一旦这些处理之一的子步骤完成就知道。这样做,闪速存储器控制器500利用定时器设备503。闪速存储器接口510、520之一空闲的任何时间,闪速存储器控制器500检查是否可能将未完成的处理前进到其各自的下一子步骤,如果不能,检查是否可能开始新的读取处理、写入处理或擦除处理。闪速存储器控制器500维持标志504、506,以确定闪速存储器接口510、520是忙碌还是空闲。
图5示出描述由闪速存储器控制器500执行的方法的步骤的示意性流程图。在第一步骤610,闪速存储器控制器500经由主机接口570接收与闪速存储器封装530、540、550和560之一的芯片管芯之一有关的指令。在第一步骤610闪速存储器控制器500接收的指令例如可以是与第一闪速存储器封装530的第一芯片管芯531有关的读取指令。在第二步骤620闪速存储器控制器500检查标志504、506,以确定要求的闪速存储器接口510、520是否忙碌或占用。在当前示例中,闪速存储器控制器500例如检查第一标志504,以确定第一闪速存储器接口510是否空闲。如果相关的闪速存储器接口510、520当前被占用,闪速存储器控制器500在第三步骤630将检索的指令推入到指令队列501上,并且完成该方法的执行。然而,如果相关的闪速存储器接口510、520空闲,闪速存储器控制器500在第四步骤640检查是否与相同闪速存储器封装530、540、550、560的相同芯片管芯531、532有关的较早处理还没有完成。在给出的示例中,闪速存储器控制器500检查与闪速存储器封装530的第一芯片管芯531有关的较早处理是否未完成。闪速存储器控制器500通过查找处理列表502执行该检查。如果该检查表明未完成的处理存在,闪速存储器控制器500将在第一步骤610接收的指令推入到指令队列501上,并且完成执行。另外,该方法以第五步骤650继续,在第五步骤650中当前指令推入到指令队列501上。然后,闪速存储器控制器500在第六步骤660从指令队列501拉出一个指令,并且开始执行该指令。在第五步骤650中将在第一步骤610中接收的指令推入到指令队列501上、以及在第六步骤660从指令队列501拉出一个指令确保由闪速存储器控制器500较早执行较早接收的指令。为了执行与在第六步骤从指令队列501拉出的指令有关的处理,闪速存储器控制器500使用第一标志504标记第一闪速存储器接口510为忙碌,建立定时器设备503以当完成该处理的第一子步骤时触发事件,然后开始该处理的第一子步骤的执行。
闪速存储器控制器500进一步适于执行图6的示意性流程图中描述的方法。在该方法中,闪速存储器控制器500在第一步骤710接收来自定时器设备503的子步骤完成事件。由定时器设备503触发的完成事件指示较早开始的处理的子步骤已经完成。在第二步骤720,闪速存储器控制器500检查已完成子步骤是否要求使用闪速存储器接口510、520之一。如果不是该情况下,闪速存储器控制器500直接前进到第四步骤740。然而,如果已完成的子步骤的确使用闪速存储器接口510、520之一,闪速存储器控制器500通过修改各自的标志504、505,来在第三步骤730标记各自的闪速存储器接口510、520为空闲。例如,如果已完成的子步骤使用第一闪速存储器接口510,则闪速存储器控制器500标记第一标志504为空闲。然后,闪速存储器控制器500前进到第四步骤740,在第四步骤740闪速存储器控制器500中检查已完成的子步骤是否是各自处理的最后子步骤。如果是该情况,则闪速存储器控制器500完成各自处理的执行,然后跳转到图5描述的方法的第六步骤660,从指令队列501拉出下一指令,并且开始执行该指令。然而,如果在第四步骤740中的检查表明已完成的步骤不是各自处理的最后步骤,则闪速存储器控制器500前进到第五步骤750,在第五步骤750中闪速存储器控制器500检查各自处理的下一子步骤是否将要求使用闪速存储器接口510、520之一。如果不是该情况,则闪速存储器控制器500前进到第九步骤790。然而,如果下一子步骤要求使用闪速存储器接口510、520之一,则闪速存储器控制器500前进到第六步骤760,在第六步骤760中闪速存储器控制器500检查各自闪速存储器接口510、520当前是否空闲。闪速存储器控制器500通过检查标志504、505实现这一点。例如,如果当前处理的下一子步骤要求使用第一快闪存取接口510,则闪速存储器控制器500检查第一标志504。如果要求的闪速存储器接口510、520可用,闪速存储器控制器500前进到第八步骤780。否则,闪速存储器控制器500等待,直到在第七步骤770中各自闪速存储器接口510、520变得空闲。一旦要求的闪速存储器接口510、520变得空闲,闪速存储器控制器500就继续第八步骤780。在第八步骤780中,闪速存储器控制器500通过修改标志504、505之一,来标记各自的闪速存储器接口510、520为忙碌。然后,闪速存储器控制器500继续第九步骤790,在第九步骤790中闪速存储器控制器500建立定时器设备503以当完成当前处理的下一子步骤时触发事件,然后开始执行当前处理的下一子步骤。
Claims (16)
1.一种闪速存储器控制器(500),配置为
-通过第一闪速存储器接口(510)耦合到第一闪速存储器封装(530),
-通过该第一闪速存储器接口(510)耦合第二闪速存储器封装(540),
其中该闪速存储器控制器(500)包括:
接收与该第一闪速存储器封装(530)有关的第一指令,并且执行取决于该第一指令的第一处理(100、200、300)的模块;
接收与该第二闪速存储器封装(540)有关的第二指令,并且执行取决于该第二指令的第二处理(100、200、300)的模块;
用于将该第一处理(100、200、300)划分为至少两个第一子步骤(110、120、130、210、220、230、310、320、330)的模块;
用于将该第二处理(100、200、300)划分为至少两个第二子步骤(110、120、130、210、220、230、310、320、330)的模块;
用于执行第一和第二子步骤(110、120、130、210、220、230、310、320、330)的模块;
用于执行第一和第二子步骤(110、120、130、210、220、230、310、320、330)的模块,并且该模块用于在该第一闪速存储器接口空闲的间隔交叉执行第一和第二子步骤(110、120、130、210、220、230、310、320、330)。
2.如权利要求1所述的闪速存储器控制器(500),
其中该闪速存储器控制器(500)包括处理列表(502),
其中该闪速存储器控制器(500)适用于在该处理列表(502)存储未完成的处理(100、200、300)以及该未完成的处理(100、200、300)的当前子步骤(110、120、130、210、220、230、310、320、330)。
3.如前述权利要求任一所述的闪速存储器控制器(500),
其中该闪速存储器控制器(500)维持用于未完成的处理(100、200、300)的定时器(503),
其中该定时器(503)适用于当完成该未完成的处理(100、200、300)的子步骤(110、120、130、210、220、230、310、320、330)时触发事件。
4.如前述权利要求1或2所述的闪速存储器控制器(500),
其中
该闪速存储器控制器(500)包括指令队列(501),
其中该闪速存储器控制器(500)适用于将第一和/或第二指令推入到该指令队列(501)上。
5.如前述权利要求1或2所述的闪速存储器控制器(500),
其中该第一指令是读取指令,
其中该第一处理是读取处理(100),
其中该读取处理(100)被划分为三个子步骤(110、120、130)。
6.如权利要求1所述的闪速存储器控制器(500),
其中该第一指令是写入指令,
其中该第一处理是写入处理(200),
其中该写入处理(200)被划分为三个子步骤(210、220、230)。
7.如权利要求1或2所述的闪速存储器控制器(500),
其中该第一指令是擦除指令,
其中该第一处理是擦除处理(300),
其中该擦除处理(300)被划分为三个子步骤(310、320、330)。
8.如前述权利要求1或2所述的闪速存储器控制器(500),
其中该第一闪速存储器封装(530)包括第一芯片管芯(531),
其中该第一指令与该第一闪速存储器封装(530)的该第一芯片管芯(531)有关,
其中该闪速存储器控制器(500)设计为接收与该第一闪速存储器封装(530)的第一芯片管芯(531)有关的第三指令,并且执行取决于该第三指令的第三处理(100、200、300),
其中该闪速存储器控制器(500)设计用于将该第三处理(100、200、300)划分为至少两个第三子步骤(110、120、130、210、220、230、310、320、330),
其中该闪速存储器控制器(500)适用于在开始该第三子步骤(110、120、130、210、220、230、310、320、330)的执行之前完成全部第一子步骤(110、120、130、210、220、230、310、320、330)的执行。
9.如前述权利要求1或2所述的闪速存储器控制器(500),
其中
该闪速存储器控制器(500)通过该第二闪速存储器接口(520)耦合到第三闪速存储器封装(550)。
10.如前述权利要求1或2所述的闪速存储器控制器(500),
其中该闪速存储器控制器(500)包括主机接口(570),
其中该闪速存储器控制器(500)适用于通过该主机接口(570)接收第一指令和第二指令。
11.如前述权利要求1或2所述的闪速存储器控制器(500),
其中该闪速存储器控制器(500)包括将第一闪速存储器接口(510)标记为忙碌或空闲的标志。
12.如前述权利要求1或2所述的闪速存储器控制器(500),
其中该闪速存储器控制器(500)连接到多个闪速存储器接口(510、520),每个闪速存储器接口连接到多个闪速存储器封装(530、540、550、560)或芯片管芯(531、532),
其中该闪速存储器控制器(500)通过发出由读取(100)、写入(200)和擦除(300)处理构成的处理(100、200、300)的流,检索和存储来自闪速存储器封装(530、540、550、560)或芯片管芯(531、532)的数据,
其中每个读取、写入或擦除处理(100、200、300)划分为多个子步骤(110、120、130、210、220、230、310、320、330),
其中设计该闪速存储器控制器(500),使得在较早处理(100、200、300)的子步骤(110、120、130、210、220、230、310、320、330)已经完成之前,稍后处理(100、200、300)中的子步骤(110、120、130、210、220、230、310、320、330)能够进行,
其中在连接到相同闪速存储器接口(510、520)的多个闪速存储器封装(530、540、550、560)或芯片管芯(531、532)内,多个处理(100、200、300)能够并行进行。
13.一种用于操作闪速存储器控制器(500)的方法,
包括以下步骤:
-该闪速存储器控制器(500)接收与第一闪速存储器封装(530)有关的第一指令,该第一闪速存储器封装(530)通过第一闪速存储器接口(510)耦合到该闪速存储器控制器(500);
-该闪速存储器控制器(500)接收与第二闪速存储器封装(540)有关的第二指令,该第二闪速存储器封装(540)通过该第一闪速存储器接口(510)耦合到该闪速存储器控制器(500);
-该闪速存储器控制器(500)将取决于该第一指令的第一处理(100、200、300)划分为至少两个第一子步骤(110、120、130、210、220、230、310、320、330);
-该闪速存储器控制器(500)将取决于该第二指令的第二处理(100、200、300)划分为至少两个第二子步骤(110、120、130、210、220、230、310、320、330);
-该闪速存储器控制器(500)执行第一和第二子步骤(110、120、130、210、220、230、310、320、330),
其中闪速存储器控制器(500)在该第一闪速存储器接口空闲的间隔交叉执行第一和第二子步骤(110、120、130、210、220、230、310、320、330)。
14.如权利要求13所述的方法,
其中
-在接收该第一指令后,该闪速存储器控制器(500)将第一指令推入到队列(501)上,
其中,仅如果该第一闪速存储器接口(510)标记为空闲、并且没有与第一闪速存储器封装(530)有关的未完成的较早处理(100、200、300)存在,则执行以下步骤:
-该闪速存储器控制器(500)从该队列(501)拉出与第一闪速存储器封装(530)有关的较早指令;
-如果取决于较早指令的第三处理(100、200、300)的第一子步骤(110、210、310)要求使用该第一闪速存储器接口(510),则该闪速存储器控制器(500)将第一闪速存储器接口(510)标记为忙碌;
-该闪速存储器控制器(500)开始执行该第三处理(100、200、300)的该第一子步骤(110、210、310)。
15.如权利要求14所述的方法,
其中
-该闪速存储器控制器(500)接收用于该第三处理(100、200、300)的之前的子步骤(110、120、130、210、220、230、310、320、330)的完成事件;
-如果该第一闪速存储器接口(510)已经用于执行之前的子步骤(110、120、130、210、220、230、310、320、330),则该闪速存储器控制器(500)释放该第一闪速存储器接口(510);
其中仅如果之前的子步骤(110、120、130、210、220、230、310、320、330)不是第三处理(100、200、300)的最后子步骤(110、120、130、210、220、230、310、320、330),则执行以下步骤:
-如果对于第三处理(100、200、300)的下一子步骤(110、120、130、210、220、230、310、320、330)需要该第一闪速存储器接口(510),则该闪速存储器控制器(500)将该第一闪速存储器接口(510)标记为忙碌;
-该闪速存储器控制器(500)开始执行该第三处理(100、200、300)的该下一子步骤(110、120、130、210、220、230、310、320、330)。
16.如权利要求14所述的方法,
其中
完成第三处理(100、200、300)的执行之后,
-该闪速存储器控制器(500)从该队列(501)拉出与第一闪速存储器封装(530)有关的第四指令;
-如果取决于该第四指令的第四处理(100、200、300)的第一子步骤(110、210、310)要求使用该第一闪速存储器接口(510),则该闪速存储器控制器(500)将该第一闪速存储器接口(510)标记为忙碌;
-该闪速存储器控制器(500)开始执行该第四处理(100、200、300)的第一子步骤(110、210、310)。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP09178949.5 | 2009-12-11 | ||
EP09178949 | 2009-12-11 | ||
PCT/IB2010/055684 WO2011070526A1 (en) | 2009-12-11 | 2010-12-09 | Flash memory controller |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102652313A CN102652313A (zh) | 2012-08-29 |
CN102652313B true CN102652313B (zh) | 2015-04-15 |
Family
ID=43806796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080056012.6A Expired - Fee Related CN102652313B (zh) | 2009-12-11 | 2010-12-09 | 闪速存储器控制器及其操作方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8996794B2 (zh) |
CN (1) | CN102652313B (zh) |
DE (1) | DE112010003762B4 (zh) |
GB (1) | GB2488259A (zh) |
WO (1) | WO2011070526A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130019053A1 (en) * | 2011-07-14 | 2013-01-17 | Vinay Ashok Somanache | Flash controller hardware architecture for flash devices |
US20130019052A1 (en) * | 2011-07-14 | 2013-01-17 | Vinay Ashok Somanache | Effective utilization of flash interface |
US8806112B2 (en) | 2011-07-14 | 2014-08-12 | Lsi Corporation | Meta data handling within a flash media controller |
US9256384B2 (en) * | 2013-02-04 | 2016-02-09 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and system for reducing write latency in a data storage system by using a command-push model |
US9195406B2 (en) * | 2013-06-28 | 2015-11-24 | Micron Technology, Inc. | Operation management in a memory device |
US20160124639A1 (en) * | 2014-11-05 | 2016-05-05 | SanDisk Technologies, Inc. | Dynamic storage channel |
GB2539445A (en) | 2015-06-16 | 2016-12-21 | Nordic Semiconductor Asa | Data processing |
CN105426122B (zh) * | 2015-11-02 | 2019-09-03 | 深圳忆联信息系统有限公司 | 一种数据处理的方法、电子设备及存储装置 |
KR102509048B1 (ko) * | 2016-04-26 | 2023-03-10 | 에스케이하이닉스 주식회사 | 반도체 패키지 |
KR102430209B1 (ko) * | 2017-09-07 | 2022-08-05 | 삼성전자주식회사 | 저장 장치 및 저장 장치에 포함된 컨트롤러들 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5890193A (en) * | 1995-07-28 | 1999-03-30 | Micron Technology, Inc. | Architecture for state machine for controlling internal operations of flash memory |
WO2008070173A1 (en) * | 2006-12-06 | 2008-06-12 | Fusion Multisystems, Inc. (Dba Fusion-Io) | Apparatus, system, and method for solid-state storage as cache for high-capacity, non-volatile storage |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7702831B2 (en) * | 2000-01-06 | 2010-04-20 | Super Talent Electronics, Inc. | Flash memory controller for electronic data flash card |
US8341332B2 (en) * | 2003-12-02 | 2012-12-25 | Super Talent Electronics, Inc. | Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices |
JP2003036681A (ja) * | 2001-07-23 | 2003-02-07 | Hitachi Ltd | 不揮発性記憶装置 |
KR101437517B1 (ko) * | 2007-10-23 | 2014-09-05 | 삼성전자주식회사 | 인터리빙 기법을 이용한 메모리 시스템, 및 그 방법 |
US20090164703A1 (en) * | 2007-12-21 | 2009-06-25 | Spansion Llc | Flexible flash interface |
US8762620B2 (en) * | 2007-12-27 | 2014-06-24 | Sandisk Enterprise Ip Llc | Multiprocessor storage controller |
CN102027455A (zh) * | 2008-05-13 | 2011-04-20 | 拉姆伯斯公司 | 用于存储器器件的分式编程命令 |
TW201009577A (en) * | 2008-08-27 | 2010-03-01 | Phison Electronics Corp | Data transfer method for flash memory and flash memory storage system and controller using the same |
US8370603B2 (en) * | 2008-12-23 | 2013-02-05 | Apple Inc. | Architecture for address mapping of managed non-volatile memory |
-
2010
- 2010-12-09 DE DE112010003762T patent/DE112010003762B4/de active Active
- 2010-12-09 US US13/515,118 patent/US8996794B2/en not_active Expired - Fee Related
- 2010-12-09 GB GB1207123.9A patent/GB2488259A/en not_active Withdrawn
- 2010-12-09 CN CN201080056012.6A patent/CN102652313B/zh not_active Expired - Fee Related
- 2010-12-09 WO PCT/IB2010/055684 patent/WO2011070526A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5890193A (en) * | 1995-07-28 | 1999-03-30 | Micron Technology, Inc. | Architecture for state machine for controlling internal operations of flash memory |
WO2008070173A1 (en) * | 2006-12-06 | 2008-06-12 | Fusion Multisystems, Inc. (Dba Fusion-Io) | Apparatus, system, and method for solid-state storage as cache for high-capacity, non-volatile storage |
Also Published As
Publication number | Publication date |
---|---|
DE112010003762T5 (de) | 2012-11-15 |
DE112010003762B4 (de) | 2012-12-06 |
GB2488259A (en) | 2012-08-22 |
CN102652313A (zh) | 2012-08-29 |
US8996794B2 (en) | 2015-03-31 |
WO2011070526A1 (en) | 2011-06-16 |
US20120278544A1 (en) | 2012-11-01 |
GB201207123D0 (en) | 2012-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102652313B (zh) | 闪速存储器控制器及其操作方法 | |
US8832333B2 (en) | Memory system and data transfer method | |
US6529416B2 (en) | Parallel erase operations in memory systems | |
US20050055493A1 (en) | [method for accessing large block flash memory] | |
US8732385B2 (en) | Non-volatile memory, controller controlling next access | |
CN103559146B (zh) | 一种提高NAND flash控制器读写速度的方法 | |
CN101946286A (zh) | 用于模拟每单元单个位的nand闪存的每单元多个位的nand闪存的控制器 | |
KR20160062119A (ko) | 비휘발성 메모리 디바이스의 휘발성 메모리 구조 및 관련 컨트롤러 | |
US20100268872A1 (en) | Data storage system comprising memory controller and nonvolatile memory | |
CN106681660B (zh) | Io调度方法及io调度装置 | |
US8416657B2 (en) | Method and system for managing data from host to optical disc | |
CN102279820A (zh) | 基于spi接口的数据存储装置及控制方法 | |
JP4997798B2 (ja) | 不揮発性半導体記憶装置およびメモリシステム | |
CN112256203B (zh) | Flash存储器的写入方法、装置、设备、介质及系统 | |
CN103544076A (zh) | 一种数据备份方法及装置 | |
US8209474B1 (en) | System and method for superblock data writes | |
CN102629212A (zh) | 一种基于j-link间接烧写程序到nandflash的方法 | |
CN116578234B (zh) | 闪存访问系统及方法 | |
CN116185892B (zh) | 闪存控制器及其访问闪存颗粒的方法 | |
CN102708062A (zh) | 基于数据块的多媒体存储方法和装置 | |
CN102362263A (zh) | Ssd控制器与ssd控制器的操作方法 | |
CN109935252B (zh) | 存储器装置及其操作方法 | |
US8166228B2 (en) | Non-volatile memory system and method for reading and storing sub-data during partially overlapping periods | |
CN112052189A (zh) | 存储器装置、电子装置以及与其相关的读取方法 | |
CN110442531A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150415 Termination date: 20201209 |
|
CF01 | Termination of patent right due to non-payment of annual fee |