CN102193885B - 支持虚拟信道的非挥发性存储器控制器 - Google Patents

支持虚拟信道的非挥发性存储器控制器 Download PDF

Info

Publication number
CN102193885B
CN102193885B CN201110049852.6A CN201110049852A CN102193885B CN 102193885 B CN102193885 B CN 102193885B CN 201110049852 A CN201110049852 A CN 201110049852A CN 102193885 B CN102193885 B CN 102193885B
Authority
CN
China
Prior art keywords
nvm
volatility memorizer
volatility
interface
several
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
Application number
CN201110049852.6A
Other languages
English (en)
Other versions
CN102193885A (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.)
Pioneer Chip Technology Ltd
Original Assignee
Pioneer Chip Technology 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 Pioneer Chip Technology Ltd filed Critical Pioneer Chip Technology Ltd
Publication of CN102193885A publication Critical patent/CN102193885A/zh
Application granted granted Critical
Publication of CN102193885B publication Critical patent/CN102193885B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/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/0688Non-volatile semiconductor memory arrays

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)
  • Read Only Memory (AREA)
  • Bus Control (AREA)
  • Memory System (AREA)

Abstract

非挥发性存储器控制器及控制方法,其使用N个专属埠口以从N个相互独立的非挥发性存储器接收N个信号,并通过时间共享的方式使用总线,以对于N个非挥发性存储器进行数据传入及传出,控制器从一处理器接收多个操作以执行数据传输并储存操作,且通过处理器对于操作所伴随的有效位进行激活设定,若一非挥发性存储器传送出一激活的待命信号且其对应操作具有一激活的有效位,则控制器开始执行此对应操作,若待命信号成为非激活,则控制器内部将暂停目前的操作且在另一具有激活的待命信号的非挥发性存储器上开始执行另一有效性的操作,之后先前暂停的操作也可在对应的待命信号变成激活时于任何时间重新恢复,并在操作完成时对于有效位设定为非激活。

Description

支持虚拟信道的非挥发性存储器控制器
技术领域
本发明有关于一种支持虚拟信道的非挥发性存储器控制器,尤指一种应用于非挥发性存储器上的控制器。
背景技术
现有闪存芯片#1、#2(也可简称为闪存)其内部包括有至少一数组晶胞,该数组晶胞为与非门(NAND)、或非门(NOR)或两者的组合所构成。闪存芯片#1、#2主要连接至一逻辑接口104A(也可称为处理器或快闪控制器),如图1A所示。闪存芯片#1、#2及逻辑接口104A的构件组合主要使用在一现有装置100A的硬件中,借以使得装置100A可利用快闪的方式储存数据,例如:装置100A也可为一音乐播放器、一行动电话、一个人数字助理器(PDA)或一计算机。在装置100A的逻辑接口104A中包括有一直接存储器存取(direct memory access;DMA)控制器105,因此装置100A的逻辑接口104A的执行速度是比未设置有DMA控制器的逻辑接口104B还要快,再者,该逻辑接口104B是使用于一装置100B中,如图1B所示。
装置100A包括有一双向总线103I(也可称为输入输出总线或I/O总线),该双向总线103I是可用以逻辑接口104A与任一闪存芯片#1、#2间的数据及/或地址信号的传送(例如:每次传送8位)。装置100A尚包括有数个控制总线103C1、103C2,在逻辑接口104A与任一闪存芯片#1、#2的数据/地址传送期间,控制总线103C1、103C2将同时在逻辑接口104A与所对应的闪存芯片#1、#2间传送控制信号。当逻辑接口104A通过双向总线103I是与闪存芯片#1间进行命令、地址及/或数据的传送,则另一闪存芯片#2将无法使用双向总线103I,换言之,同一时间中,双向总线103I只能被其中一闪存芯片#1/#2所使用,在此,闪存芯片#2与逻辑接口104A间的联系必须等待逻辑接口104A与闪存芯片#1沟通完毕才能继续执行。
逻辑接口104A经由执行一现有操作方法110(如图1C所示),以将数据储存于闪存芯片#1中。具体的操作方法110如下所述,执行动作111,逻辑接口104A发布一写入命令至闪存芯片#1,以通过控制总线103C向闪存芯片#1驱动激活一芯片使能(CE)线路及一命令闩锁使能(CLE)线路,并触发一次一写入使能(WE)线路,且同时通过双向总线103I驱动命令信号。接着,经由触发写入使能(WE)线路以驱动芯片使能(CE)线路及一地址使能(ALE)线路进行激活,以及同时驱动双向总线103I上的地址信号,将会执行动作112,逻辑接口104A将通过双向总线103I写入一地址至闪存芯片#1中。继续,触发控制总线103C上的写入使能(WE)信号及驱动芯片使能(CE)线路进行激活,并同时保持芯片使能(CE)线路及地址使能(ALE)线路为非激活状态,则执行动作113,逻辑接口104A将通过双向总线103I写入数据至闪存芯片#1中。总结,数据通过共享的双向总线103I进行传输并利用一快闪方式储存至闪存芯片#1,且数据会暂存于一缓冲器(也可称为页面缓冲器)中。
当在控制总线103C上触发写入使能(WE)信号且同时驱动激活芯片使能(CE)信号及地址使能(ALE)信号时,将会执行动作114,逻辑接口104A将发布一程序命令至闪存芯片#1,以根据动作112所指定的地址(通过双向总线103I接收该地址)而将数据从页面缓冲器写入至闪存芯片#1的内部数组晶胞中。闪存芯片#1完成数据的写入后,将对于逻辑接口104A所发布的程序命令进行响应,之后,读回储存于所指定地址的数据并与页面缓冲器所暂存的数据相互比较。比较结果将借助闪存芯片#1储存于一准备就绪的寄存器中,且该寄存器将通过双向总线103I存取逻辑接口104A。
再者,熟悉该项技术领域者是可得知,逻辑接口104A会进入一检查循环,以检查闪存芯片#1是否待命,如执行动作116,而进入这特定检查循环的期间会根据于现有装置100A的设计而定。此外,在执行动作116之前,会先执行动作115,逻辑接口104A在闪存芯片#1中取得一待命寄存器或一状态寄存器的数值,然后,执行动作116,以检查刚刚从闪存芯片#1中所取得的数值,其数值将用以表示闪存芯片#1是否待命。反之,若闪存芯片#1尚未待命,如图1C所示的分支162,逻辑接口104A会监控在控制总线103C上的一待命/忙碌线路,其待命/忙碌线路为闪存芯片#1所驱动。
闪存芯片#1进行完先前发布的命令(如动作114的程序命令)后,闪存芯片#1的一待命信号会转换为激活状态。因此,当程序命令进行完毕,闪存芯片#1的待命信号将成为一激活状态,接着,执行动作117,逻辑接口104A将对于闪存芯片#1检查复制回写,检查所指示出的比较数据(存储器芯片#1的数组晶胞中的数据与页面缓冲器中的数据其两者间的比较)是否为一匹配的情况。若两者数据为匹配的,则代表对于闪存芯片#1的写入命令是顺利完成的,逻辑接口104A将离开或结束操作方法110。
承上,再度参阅操作方法110,在动作117中,若程序命令执行失败,则执行动作118,逻辑接口104A将执行一错误处理程序,例如:在闪存芯片#1中,以先前指定的地址映像出一区块,并对于另一不同地址的区块发布另一程序命令,该另一程序命令是为了重写相同数据至此另一区块中,之后离开方法110。在离开操作方法110后,逻辑接口104A会再度执行操作方法110,其将执行一个新的操作。例如:新的操作可能会储存新的数据于闪存芯片#1或闪存芯片#2中,或者,新的操作可能会从闪存芯片#1或闪存芯片#2的其中一取回先前储存的数据。再者,逻辑接口104A于任何特定时间,仅对于闪存芯片#1及闪存芯片#2中的其中一执行操作方法110。
三星电子有限公司于公元2005年时公开一份数据规格书,其标题为“1G×8Bit/2G×8Bit/4G×8Bit NAND Flash Memory”。该数据规格书是揭露有两K9F4G08U0M芯片间的一页面数据程序化的交替方法,两K9F4G08U0M芯片为相同结构且包含于单一K9K8G08U0M封装组件中。数据规格书的交替方法用以一页面程序化操作,其阐述于图1D的时序图中。如数据规格书所述,在状态A的时候,一主机能够发布一页面程序命令至芯片#2,且芯片#1已经执行一页面程序化操作。在状态C时,系统应发布一“F1h”命令,以检测芯片#1的状态。假如芯片#1为待命状态,状态寄存器的第6位将设定为“1”,系统将发布另一页面程序化命令至芯片#1。虽然图1D中仅阐述一写入的操作,然而数据规格书中尚可包括有其它交替的操作,例如:区块抹除及两平面的页面程序化。在此,该份数据规格书是可进一步详细阅览。
承上所述目前发明专利的现有交替方法,皆具有某些的限制及约束。首先,同一类型的操作是交替执行于芯片#1与芯片#2间,如图1D中,两个芯片#1、#2都会执行一写入操作,而上述数据规格书表明在交替操作期间,“70h”命令(用以读取状态寄存器的命令)是被禁止的,此即为目前现有技术上一明显的限制。其次,图1D中所描述的方法只能使用在两芯片共享待命/忙碌线的特定现有技术的设计上(例如:该特定现有技术的设计也可使用于放置在相同封装构件中的四个芯片上),两个芯片一起共享一芯片使能(CE)线路及一待命忙碌(RB)线路,在此,当封装构件中两芯片为待命状态,则共享的待命忙碌(RB)线路将成为激活。再者,必须使用一特定命令来检查一封装构件中的一特定芯片的准备状态,借以使用单一待命忙碌(RB)线路以信号传递多个芯片的状态。又,上述现有技术的数据规格书是指出在状态C的时候,需要一主机发布该“F1h”命令以检测芯片的状态,并要求主机在发布另一命令之前必须已轮询过每一芯片才能进行,在此,其也为限制条件之一。因此,发明人相信改善上述现有技术的方法及其装置是有其必要性的。
发明内容
为解决上述问题,本发明提供一控制器,其包括有至少一非挥发性存储器存储器接口,非挥发性存储器存储器接口连接一对应的非挥发性存储器存储器群组。各非挥发性存储器存储器群组通过一双向共享总线连接其对应的非挥发性存储器存储器接口。各非挥发性存储器存储器接口从一处理器接收多个欲执行的NVM操作,且各NVM操作将被非挥发性存储器存储器群组中的个别对应的非挥发性存储器存储器所执行。各NVM接口根据对应接收的各NVM操作以从非挥发性存储器存储器群组中识别出一唯一的NVM。
各NVM操作切分成数个阶段,各阶段根据彼此间的一预定顺序依序执行,例如:先执行一命令阶段,接着执行至少一数据阶段。本发明对于MVN操作的具体切分方法将可根据于MVN操作的类型进行不同的切分。一NVM接口在接收NVM操作后,将使用双向总线(NVM接口通过一副双向输入输出接脚连接双向总线)通知其对应的非挥发性存储器存储器群组中的一NVM,并对于所接收到的NVM操作的一阶段开始执行(如一命令阶段)。
当刚刚描述的NVM(“第一NVM”)其内部因为执行刚刚描述的阶段(“第一阶段”)而呈现为忙碌的状态,则NVM接口使用相同的双向总线(NVM接口通过同一副双向输入输出接脚连接双向总线)与另一NVM(“第二NVM”)进行联系,以开始执行另一命令阶段。当第二NVM内部呈现忙碌的状态,NVM接口尚可使用双向总线而与对应的非挥发性存储器群组中的另一待命的NVM进行联系。再者,假如第一NVM已经执行完命令阶段,NVM接口也可使用双向总线恢复第一NVM操作的执行,例如:继续对于第一NVM进行一数据阶段的执行。
各NVM操作切分成数个阶段,并通过上述不同的NVM对于不同操作的阶段交替进行执行,借以增加NVM所共享的双向总线的使用率,在此,先前任何的现有的发明中并未达到此技术水准。具体而言,如上所述,NVM接口重复使用共享的双向总线以对于其它NVM开始执行其它NVM操作的阶段。再者,在本发明的方法中,本发明的NVM接口将可实现于一具有多个虚拟通道且被多个NVM所共享的单一总线上。
附图说明
图1A及图1B:分别为现有闪存#1、#2连接至逻辑接口(也可称为处理器或快闪控制器)的电路装置方块图。
图1C:为现有执行图1A的快闪控制器(ASIC)而在闪存中储存数据的高层次方法流程图。
图1D:为现有快闪控制器利用一输入输出总线传送一特殊的命令信号至图1A的两闪存(其被一共同待命忙碌线所控制)以在一控制总线上产生响应的信号的时序图。
图2A:为本发明一非挥发性存储器接口200对于非挥发性存储器253A-253N进行数据的传入传出以及交替使用连接在非挥发性存储器接口200与非挥发性存储器253A-253N间的一共享双向总线的方法流程图。
图2B:为本发明NVM操作231、232分别切分成两个阶段及三个阶段的结构示意图。
图2C:为本发明于一操作231的阶段231A(一非挥发性存储器通过虚拟信道0执行)其等待完成期间可借助一虚拟化的共享总线对于另一操作233(另一非挥发性存储器通过虚拟信道1执行)进行执行的时序图。
图2D:为本发明在单总线上制造出三个虚拟信道并于一操作234、235的各个阶段(其分别被相关的非挥发性存储器所执行)其多个等待完成期间可借助一共享总线对于两操作235、236进行执行的时序图。
图2E:为本发明非挥发性存储器接口200的端口口采用两种方式(第一种方式:一单一共享埠口包括接脚220,以通过接脚220双向传输数据至全部的NVM存储器253A-253N;第二种方式:多个专属埠口254A-254N分别连接至其对应的NVM存储器253A-253N,以分别利用专属的连接方式分别从NVM存储器253A-253N接收待命信号及传送使能信号至NVM存储器253A-253N)连接至图2A的NVM存储器253A-253N的高层次方块结构示意图。
图3A及图3B:为本发明第2A-2E图的NVM接口200其专属端口口及一共享埠口上的各个信号的时序图。
图4A:为本发明一包括有数个NVM接口200、401A-401N、一处理器413及一存储器414的NVM控制器的电路结构方块示意图。
图4B:为本发明图4A的处理器413的操作流程示意图。
图4C:为本发明图4A中在处理器413与NVM接口200、401A、401I、401N之间的总线405上所传递的各个信号及其在总线221至NVM253A-253N上所对应事件的时序图。
图5A:为本发明第2A-2C图中的非挥发性存储器接口200的一中层次电路结构方块示意图。
图5B:为本发明图5A的非挥发性存储器接口200的一状态机510的多个状态及转换示意图。
图5C:为本发明图5A中的一排程器520的一低层级的电路结构方块示意图。
【主要组件符号说明】
100A    装置            100B    装置
#1      闪存芯片        #2      闪存芯片
103C    控制总线        103I    双向总线
104A    逻辑接口        104B    逻辑接口
105     DMA控制器       200     NVM接口
220     输入输出接脚    221     双向总线
221C    输入输出线路    221D    输入输出线路
230     多阶段操作      231     NVM操作
231A    阶段            231B    等待期间
232C    阶段            232     NVM操作
232A    阶段            232B    等待期间
232C    阶段            232D    等待期间
232E    阶段            233     NVM操作
234     NVM操作         234A    阶段
234C    阶段            235     NVM操作
235A    阶段            235C    阶段
236     NVM操作         236A    阶段
236C    阶段            240     多阶段操作
241     多阶段操作           253     存储器群组
253A-N  非挥发性存储器(NVM)  254A-N  连接埠口
255A-N  专属总线             260     处理器
291     待命忙碌寄存器       292     有效寄存器
400     主机                 410     NVM控制器
411     主机接口             412     DMA控制器
413     处理器               414     存储器
420     固态硬盘             401A-N  NVM接口
403A-N  非挥发性存储器(NVM)  405     局部总线
511     线路                 512     总线
513     线路                 514     线路
515     线路                 516     线路
521     线路                 522     多任务器
523     线路                 530     存储器
531A-M  储存位置             539     线路
541     线路                 542     线路
543     线路                 544     线路
545     处理器总线接口       546     线路
547     线路                 548     DMA控制器
549     错误更正码及缓冲器   591     循环选择器
592     高优先权有效寄存器   593     或门
594     低优先权有效寄存器   595     与非门
596     与非门               597     多任务器
598     多任务器             599     多任务器
具体实施方式
请参阅图2A,为本发明一非挥发性存储器(NVM)接口一实施例的操作流程图。在该流程图中包括有一NVM接口200的电路,其包括有一输入输出接脚220,该输入输出接脚220连接一包括有数个NVMS253A-253N的存储器群组253,NVM接口200通过一双向总线221使用NVMS253A-253N。双向总线221为共享的,在任何时刻中,当NVM253I与NVM接口200间相互传递数据,则在存储器群组253中其它NVMS将无法使用双向总线221。因此,只要NVM 253I不再使用双向总线221,NVM接口200即可指示其它任一NVM使用该双向总线221,以改善NVM 253I忙碌期间,双向总线221的使用率,再者,其详细内容如下所述。
继续参阅图2A,NVM接口200从一处理器260接收一欲执行的NVM操作,如动作201所示。并且,通过分支202,本发明NVM接口200是可重复执行动作201,因而可从处理器260接收多次NVM的操作。执行动作201时,NVM接口200储存各NVM操作于一局部存储器中(如操作存储器)。NVM接口200接收各NVM操作时,该NVM操作可从存储器群组253中识别出唯一的NVM 253I,且NVM接口200通过双向总线221连接存储器群组253。
在动作201时所接收的各NVM操作,其已根据一预定的方法切分(分割)成多个阶段,该多个阶段会根据一NVM的一等待期间进行区隔,而令NVM内部完成每一阶段的执行。其中每个阶段包括有至少一从NVM接口200至唯一识别的NVM 253I的传输,以及至少一从NVM 253I回传至NVM接口200的响应。如图2B所示,NVM操作231包括两个阶段231A、231C,第一阶段231A包括有从NVM接口200至NVM 253I的第一传输(例如:命令、地址及选用数据、另一命令),而在第一阶段231A之后将为一等待期间231B。一旦等待期间231B开始,并且另一命令233(如图2C所示)于该等待期间231B进行启动,则本发明NVM接口200将置换出操作231的执行,改由执行另一命令233。当完成命令233(或命令233中的其中一个阶段)及等待期间231B结束,第二阶段231C将开始执行(在NVM接口200与NVM 253I间传送信息)。
每次在结束对于NVM 253I的传输时,本实施例的NVM接口200将等待从NVM 253I传送而至的一忙碌信号,之后置换出目前执行的NVM操作231。本发明操作于NVM接口200上的方法,各NVM操作231的最初阶段231A包括有至少一传输至特定NVM 253I的命令,其次传送数据至特定NVM 253I或从特定NVM 253I接收数据,接着,从特定NVM253I接收忙碌信号,因而完成最初阶段231A的任务。最初阶段231A完成后,NVM接口200必须等待该特定的NVM 253I完成其内部执行并以一待命信号作为指示。本发明实施例中,NVM 253A-253N将被NVM接口200驱使操作,于此,在NVM 253I指示出其内部已完成阶段的执行后,NVM接口200即可等待与NVM 253I间进行联系。
本发明一实施例中,NVM 253I完成一内部阶段的执行,则NVM 253I会利用一专属线路(未分享于其它NVM使用)是以异步通知的方式传送一待命信号至NVM接口200,或者,另一实施例中,NVM接口200借助双向总线221自己主动从NVM 253I的一待命寄存器中读取信号。承上第一例子的第二阶段231C中,NVM接口200将进行一命令的传送,之后传送数据至NVM 253I及/或从NVM 253I接收数据。而在第二个例子的第二阶段231C中,NVM接口200仅仅从NVM 253I接收数据,并未传送另一命令至该内部执行当中的NVM 253I,并且NVM接口200传送一控制信号至NVM 253I,以从NVM 253I取得资料。再者,本发明实施例中,也可借助不同的技术方式指示该控制信号,例如:驱动控制信号至一激活电平(该激活电平可为一低电平或一高电平),或者,触发控制信号的电平往上或往下到一预定比率。
在此,使用一个范例进行解说,一NVM操作231从特定的NVM 253I读取数据,其最初开始时间为T0(如图2C所示),NVM接口200利用双向总线221传送下面信号:一命令0×00、一地址、另一命令0×30。然后,NVM接口200等待从NVM 253I传来的一待命信号,并于时间T1时进行接收,因而最初阶段231A的完成时间为T1。NVM操作231切割成两个阶段231A、231C(如图2C所示),在NVM 253I执行完阶段231A的命令后,阶段231C可在任何时间进行实行。此外,NVM接口200于T1时间会置换出操作231的执行,改由执行另一NVM操作233,且NVM接口200将使用双向总线221与另一NVM 253J进行联系。
在T1-T2时间之间(如图2C所示),双向总线221同时执行两个操作231、233,操作231用以执行NVM 253I而操作233用以执行NVM 253J。本发明虽只存在一实体双向总线221,然而可重叠使用双向总线221执行两个操作231、233,并创造出两个通道0、1(虚拟信道),信道0用以NVM接口200与NVM 253I间,而信道1用以NVM接口200与NVM 253J间,两通道0、1皆运作在T1至T2时间之间(如图2C所示)。在本发明中,虚拟通道为一非挥发性存储器控制器所提供,该虚拟信道在单一个实体双向总线221上也可为数个通道数量(其对应于NVMs数量),而该数个虚拟通道于特定的时间交替运作在双向总线221中。
当操作233在T1-T2时间之间仍在执行时,即使NVM 253I内部已执行完阶段231A的所有命令,NVM接口200也不会通过双向总线221向NVM 253I进行任何事情,直到NVM操作233已完成目前阶段后,NVM接口200才会将NVM操作231重新置换回执行,后续,以使用双向总线221实行NVM操作231的最后阶段231C。再者,T2-T1时间将区隔开操作231的阶段231A及阶段231C,且T2-T1时间的长短将取决于执行操作233的一阶段所需的时间量,此时间量往往会大于NVM 253I其内部执行完阶段231A的等待期间。在本发明几个实施例中,当双向总线211不能够立即完成目前通道0的阶段操作(例如:若双向总线221同时用以提供于另一信道),则信道0的潜伏期间将会因此跟着增加。
在通道1中操作233的其中一阶段(或全部阶段)即使在刚刚描述的等待期间(如T1-T2间)之前完成,然,NVM 253I内部若未完成执行阶段231A,则NVM接口200不会向NVM 253I进行任何事情。再者,在本发明一实施例中,阶段231A与阶段231C间的等待期间(如T1-T2间)是预定好的,此时NVM接口200被设计(或安排)只用以执行另一操作233(或操作233中的其中一阶段),并且为了减少通道0的潜伏期间,操作233的执行时间将会短于该等待期间。此外,请参阅图2C,δT233及δT231B中的最大值即预定为T2-T1时间,其中δT233为完成操作233所需的时间量,而δT231B为NVM 253I的等待期间,且NVM 253I于等待期间需执行完成阶段231A的各项命令。
如图2B所示,尚包括有一操作232,该操作232为一写入操作,其切分成三个阶段。第一阶段232A时,通过NVM接口200开始写入数据至该具有多个平面的NVM 253I的第一平面中,第二阶段232C时,地址及其它数据写入至该NVM 253I(具有一选用命令)的另一平面中,第三阶段232E时,读取NVM 253I的状态及确认数据是否成功写入该具有多个平面的NVM 253I中。又,除了第三阶段232E(第三阶段232E后将结束操作232的执行)外,在完成每一个刚刚所描述的阶段232A及232C时,对于NVM 253I的操作232执行将进行暂停(置换出)。图2B虽揭示有一两阶段的操作231及一三阶段的操作232,然本发明操作一MVN的特定方法也可根据于MVN的操作类型及NVM本身的设计进行各种不同阶段的切分。
再者,本发明一实施例中,执行该NVM的操作也可只有单一阶段而不需进行切分的动作,例如:图2B所示的操作233。操作233用以读取NVM 253I的一识别符(如制造商、页面大小及时序),且只需执行单一个阶段。具体而言,在传送一命令及一地址之后,刚才所描述的操作233中将包括选用该待命的NVM 253I,接着读取NVM 253I内部数据,上述操作进行完毕后,由于操作233未进行切分的动作,因此NVM接口200不需再对于操作233进行一置换出的动作。
再度参阅图2A,NVM接口200在接收动作201后,接着执行动作212。在动作212中,NVM接口200可在存储器群组253的NVMS253A-253N中得知一待命的NVM,并因此选择任一操作的其中一阶段,其选择操作的阶段为目前NVM接口200欲对于待命的NVM准备进行的操作功能。另,在动作203中,NVM接口200将从其中一NVM(例如:NVM 253I)中接收一异步的待命信号,且,如分支204所示,动作203是可重复多次激活。再者,除了待命的NVM外,NVM接口200也可根据其它因素进行动作212的阶段选择,例如:对于每个阶段预定优先权及/或一阶段可使用该双向总线221的预定时间。再者,优先权的范例也可参考于附录C,并对于每一NVM反复试验借以决定优先权的分配。
NVM接口200是可从所有准备要执行的阶段中自动选择出一使用双向总线221时间量最少的阶段。每一阶段使用双向总线221的时间量(“期间”)是预先程序化在NVM接口200内(例如:NVM接口的硬件内),致使以在指定的期间分别执行各操作的各个阶段。
本发明对于每一个准备执行的阶段进行优先权的分配,因此NVM接口200基于比较各阶段的优先权以选择其中一阶段,该选择的阶段相对于其它阶段将会优先在NVM接口200中进行执行。例如:一操作234(图2D所示)为一多页面的写入程序,其具有一低优先权的最初命令阶段234A及数个高优先权的数据阶段234C、234E、234G,或者,同一操作234为一多页面的读取程序,其具有一高优先权的最初命令阶段234A及数个低优先权的数据阶段234C、234E、234G。在NVM操作(例如:NVM接口200所接收的每一NVM操作)中的每一阶段的优先权也可事先预定或动态指定。以附录C为例,其揭示有各种操作的各种阶段的优先权分配。当一高优先权阶段准备执行,则此阶段是首先选择。若同时有多个阶段皆为相同的优先权(例如:两个以上具有高优先权的阶段)并准备执行,本发明将利用一循环架构对于这些阶段进行选择的动作。
承上,在动作212中识别出一阶段后,NVM接口200将执行该被识别出的阶段,接着,进行动作213,对应于所识别出的阶段以使用该共享的双向总线221(连接NVM接口200的输入输出接脚220,如图2A所示)传入资料至NVM 253I或从NVM 253I传出资料。在阶段1开始执行之后,NVM 253I根据操作的类型(例如:读取或写入)执行动作213,其内部也可转变为忙碌且待命信号成为一非激活状态,而该待命信号并响应于NVM接口200(如分支228),以转换到动作214(其详细内容于后进行讨论)。再者,本发明又一实施例中,NVM 253I执行动作213完成目前操作(如图2B所示的操作233)的阶段,其内部并不会进入忙碌,而NVM接口200对于该操作(操作233)将会从动作213转换为动作218,且不会进行任何暂停的动作(如分支229)。
当NVM 253I根据动作213接收一操作(“第一操作”)的一最初阶段而令内部成为忙碌,则NVM 253I将不会使用双向总线221。在此,为了改善双向总线221的使用率,本发明NVM接口200并不会完全等待在动作213中的NVM 253I成为待命的状态,反而进入动作214暂停目前本身的操作(如第一操作)运行,此外,为了日后恢复目前所暂停的操作,其状态信息必须储存于一局部存储器中。在暂停第一操作后,NVM接口200返回动作212(如分支215),选择一第二操作的其中一阶段,以执行另一NVM,借以增加双向总线221的使用率。
承上,NVM接口200返回动作212,于存储器群组253的NVMS253A-253N中另选择任一个NVM,且该选择的NVM非忙碌的。具体而言,被动作212所选择的第二操作为一新的操作,其操作的最初阶段尚未开始(其对应于NVM 253A,且该NVM 253A为待命的状态),之后,NVM界面200进入动作213(如上所述),以对于另选择的NVM进行第二操作的阶段执行。此外,在执行动作212时,NVM接口200也可选择该第二操作进行执行,然,先前已启动的操作的阶段所对应的NVM(如NVM253J)若为待命的状态,则此时该第二操作将进行暂停,而NVM接口200会进入动作216。在动作216中(如图2A所示),NVM接口200从局部存储器接收之前所暂停的操作的状态信号(在动作214时储存于局部存储器中),之后,使用该共享的双向总线221(通过输入输出接脚220)重新对于NVM 253J进行操作的阶段执行。
因此,在动作213时,NVM 253I开始执行一第一操作的阶段1,而在动作216时,NVM接口200使用双向总线221(通过同一副双向输入输出接脚220)与NVM 253J进行联系,以开始执行第二操作的阶段J。在此,NVM接口200通过相同的双向总线221以对于NVM 253I及NVM253J分别执行其对应的操作以令两NVM进入忙碌状态。如上所述,NVM接口200不仅可对于两NVM 253I&253J交替执行其对应的操作的阶段,当然,也可使用双向总线221对于存储器群组253中任何非忙碌状态的NVMS开始准备其它操作(例如:读取、写入、抹除、重置等等)的阶段执行。
在此,当NVM 253I及253J皆为忙碌状态时,NVM接口200尚可使用双向总线221传送又一操作的另一阶段至存储器群组253中待命的NVM 253N。此外,若NVM 253A已完成目前阶段的执行,则NVM接口200可使用双向总线221与NVM 253A进一步联系,以执行另一阶段。例如:图2D所示,三个阶段234、235、236交替执行,其中操作235的最初阶段235A启动于操作234的最初阶段234A后及中间阶段234C之前。而另一操作236交替执行于操作234及操作235间,其最初阶段236A启动于操作234及235的阶段235A及234C之后及阶段234E及235C之前。
再度参阅图2A,动作216后,若对于一个NVM的操作程序进行完毕,则NVM接口200进入动作218。目前执行的一操作其全部阶段皆以进行完毕时,NVM接口200将执行动作218,此时,NVM接口200重新设定一旗标(例如:在NVM接口200内对于一有效寄存器设定一位)及激活一信号(例如:驱动一中断信号至处理器260,以通知处理器260其先前提供于NVM接口200的操作目前已经执行完毕)。在动作218后,NVM接口200通过分支219重回动作212。
承上,如图2B所示,在本发明中,对于NVM的操作是切分成数个阶段,各阶段交替执行于所建立出的虚拟通道中,借以增加双向总线221的使用率,其呈现出的功效从未出现于先前技术中。具体而言,上述NVM接口200接收多个操作以通过双向总线221传输数据至NVMS253A-253N或从NVMS 253A-253N接收数据,NVM接口200可同时重叠执行多个所接收的操作,并依照各操作的各阶段的指定时间共享该双向总线221,借助各阶段的行使以令NVM接口200交替使用该共享的双向总线221,此外,NVM接口200也可使用该共享的双向总线221不间断地执行一无切分的操作(如操作233),直到该单一阶段的操作执行完毕为止。在此,NVM接口200实现多个虚拟通道(例如:8个信道)于双向总线221上,致使以同时对于存储器群组253中的多个NVMS253A-253N(例如:8个NVMS)进行操作。
如上所述,NVM接口200从NVM 253I接收一状态信号,其作用类似于一异步的中断方法或NVM接口200的一轮询的回应。再者,NVM接口200是通过多个连接端口接收该状态信号,各连接端口专属连接至其对应的NVM(例如:N个连接埠分别连接至N个对应的NVMS,如图2E所示),以接收全部的状态信号,例如:对于每一NVM分别轮询。
在图2E中,NVM接口200除了利用输入输出接脚220并通过双向总线221连接至存储器群组253的各NVM 253A-253N外,也可使用各连接埠口254A-254N分别通过专属的总线255A-255N连接至存储器群组253的各NVM 253A-253N(一对一连接),在此,连接埠254A-254N称为“专属”端口口,而总线255A-255N称为“专属”总线。
各连接埠口254A-254N包括有至少一输入接脚及输出接脚,各输入接脚分别可承载有一待命忙碌信号,该待命忙碌信号分别为各NVM253A-253N所产生,用以指示各连接埠254A-254N所对应连接的各NVM253A-253N为待命或忙碌的状态,而输出接脚可承载有一芯片使能信号,该芯片使能信号为NVM接口200所产生,并传送至各NVM 253A-253N,该芯片使能信号用以使能各NVM 253A-253N进行激活。NVM接口200包括有一待命忙碌寄存器291,其用以栓锁储存各连接埠254A-254N所接收到的该待命忙碌信号,在动作212时,NVM接口200将会检查该待命忙碌寄存器291所储存的该待命忙碌信号,借以找出待命中的NVM,之后,于动作213时,通过双向总线221以对于该待命中的NVM进行一操作的执行。
NVM接口200除了产生及传输该芯片使能信号外,也可产生及传输其它控制信号并通过双向总线221传输至各NVM 253A-253N。NVM接口200的输入输出接脚220包括有I/O接脚其用以承载字组数据、地址或命令。又,输入输出接脚220除包括有I/O接脚外,进一步尚包括有一命令栓锁使能(CLE)接脚、一地址栓锁使能(ALE)接脚、一写入使能(#WE)接脚及一读取使能(#RE)接脚。
又,如图2E所示,连接NVM接口200的NVM 253A-253N也可为相同类型或不同类型。若NVM 253A-253N分别为不同的类型,其不同处也可为不同尺寸、不同速度及/或不同逻辑闸(例如:NAND闸、NOR闸或及其组合式),且NVM 253A-253N也可从不同供货商或制造商所提供。
为了接收各操作,在动作201中(如图2A),NVM接口200对于一有效寄存器292(如图2E)中的一有效位设定为激活状态,例如:有效位设定为高电平(1)。当有效位设定为高电平时,将指示出NVM操作尚未完成,而在NVM操作完成后,有效位(也可为如上图2A所述的旗标)将被NVM接口200重新设定(在动作218时)。当然,本发明另一实施例中,NVM接口200并未对于一有效位进行设定,也可选择使用四个位来指示该操作的16个状态的其中之一者。在动作218时(如图2A),NVM操作执行完毕,NVM接口200将有效位设定为非激活状态,例如:有效位设定为低电平(0),并中断处理器260。
再者,MVN接口200进一步使用待命忙碌寄存器291及有效寄存器292的程序,如下所述:在待命忙碌寄存器291中储存有用以指示待命信号的个别位,而在有效寄存器292中储存有用以指示操作有效性之位,在动作212时,NVM接口200是将有效寄存器292中的用以指示操作有效性之位比对于待命忙碌寄存器291中的用以指示待命信号的个别位,以从待命忙碌寄存器291及有效寄存器292中找出有效的操作及待命中的NVM,并且本实施例中,NVM接口200会优先重新开始之前所暂停的操作,之后才会继续执行其它新的操作(之前未开始过的操作)。在本发明中,各操作的各阶段会分别选择配置一高优先权或一低优先权,NVM接口200依照阶段所配置的优先权高低而决定执行的先后,换言之,NVM接口200不管操作是否为一新的操作或者之前暂停的操作,皆会优先执行高优先权的阶段,其后才会执行低优先权的阶段。然而,假如新的操作的最初阶段及之前所暂停的操作的下一阶段皆为相同优先权(例如:皆为高优先权),则NVM接口200将会利用如上所述的循环架构对于这些阶段进行选择并依序对于所对应的NVM进行执行。在此,本发明NVM接口200在实行动作212时,是可执行多个操作任务,并且各操作的个别阶段将可交替使用该共享的双向总线221。
请参阅图3A及图3B,为本发明NVM接口操作时的各个信号的时序图。如图所示,在ΔT1期间,NVM接口200开始进行一操作C,以传送数据至NVM 253C或从NVM 253C接收数据,且在这期间若该操作C暂停运作,则NVM接口200将会收到新的操作A及操作B。NVM 253A及NVM 253B两者分别具有的待命忙碌线RB1#及RB2#其上的待命信号皆为激活状态(高电平),并且待命忙碌线RB1#及RB2#分别连接至NVM接口200上所对应的连接埠254A及254B,如图2E所示。再者,三个闪存MVN在ΔT1期间开始时的有效性及待命信号的状态,如下状态表所示。
Figure BSA00000442600200211
在ΔT1期间,NVM接口200在双向总线221上借助驱动芯片使能CE1#线路,以开始进行一读取操作A。在ΔT1期间结束时,NVM 253A内部成为忙碌状态(其正在提取需求数据),且双向总线221为闲置状态。再者,在ΔT1期间结束时,NVM 253A在RB1#线路上驱动待命信号为未激活状态(例如:低电平)。此刻,NVM接口200内部储存该读取操作A的目前状态,并且在ΔT2期间,改换一个新的写入操作B进行执行。再者,三个闪存MVN在ΔT2期间开始时的有效性及待命信号的状态,如下状态表所示。
在ΔT2期间,除了NVM 253B被使用外,NVM接口200使用双向总线221的方式是相似于ΔT1期间。在ΔT2期间结束时,当欲写入的资料已转移至NVM 253B后,NVM 253B成为忙碌状态(正在储存所接收到的数据),且双向总线221再度成为闲置状态。再者,在ΔT2期间结束时,NVM 253B驱动RB2#线路上的待命信号为未激活状态(例如:低电平)。此刻,NVM接口200储存该读取操作B的目前状态。再者,三个闪存MVN在ΔT3期间开始时的有效性及待命信号的状态,如下状态表所示。
Figure BSA00000442600200213
Figure BSA00000442600200221
在ΔT3期间,NVM接口200重新开始的前所暂停的操作C,且在ΔT2期间结束时,NVM 253A及NVM 253B皆为忙碌的状态,不能使用双向总线221传输任何数据。在ΔT3期间,除了NVM 253C被使用外,NVM接口200使用双向总线221的方式是相似于ΔT1期间及ΔT2期间。在ΔT3期间结束时,操作C将执行完毕并且NVM接口200中断处理器260。再者,三个闪存MVN在ΔT4期间开始时的有效性及待命信号的状态,如下状态表所示。
Figure BSA00000442600200222
在ΔT4期间开始时,NVM接口200重新开始执行该读取操作A,以令从NVM 253A中所提取需求数据并通过双向总线221传输至NVM接口200。在ΔT4期间结束时,操作A将执行完毕并且NVM接口200中断处理器260。再者,三个闪存MVN在ΔT5期间开始时的有效性及待命信号的状态,如下状态表所示。
Figure BSA00000442600200223
在ΔT5期间开始时,NVM接口200重新开始执行该写入操作B。具体而言,在ΔT5期间,NVM接口200借助使用双向总线221以对于NVM253B完成操作B的执行,例如:对于NVM 253B进行状态读取,其内容于后叙述。在ΔT5期间结束时,操作B将会执行完毕并且NVM接口200中断处理器260。再者,三个闪存MVN在ΔT5期间结束时的有效性及待命信号的状态,如下状态表所示。
Figure BSA00000442600200231
为了方便于说明,操作C的第一阶段(在NVM成为忙碌状态之前)未显示于图3A中,且该第一阶段的命令可为读取或写入的命令。在每次写入操作进行完毕后,执行NVM(例如:NVM 253B)的状态读取,以确认写入操作是否成功。再者,对于NVM的状态读取也可由操作本身直接进行执行,如此NVM接口200执行该对应的操作时,从开始到完成都不需进行暂停的动作(如图2A的分支229)。
请参阅图4A,为本发明一单芯片非挥发性存储器(NVM)控制器的电路结构示意图。本发明NVM控制器410可设置于一固态硬盘“SSD”420上(也可称为一印刷电路板),该固态硬盘420包括有数个NVMS,如上所述的存储器群组253(具有数个NVMS)通过双向总线221连接至NVM接口200,该NVM接口200设置于NVM控制器410内部。除了NVM接口200外,NVM控制器410尚包括NVM接口401A-401N,NVM接口401A-401N借助各双向总线403A-403N以分别连接至其对应的存储器群组402A-402N的NVMS。在NVM控制器410中,NVM接口200及NVM接口401A-401N借助总线405连接至一存储器414。存储器414用以缓冲局部数据(例如:在NVM控制器410内部数据),该数据是传输在NVMS253A-253N及一主机400间,且该主机400是连接NVM控制器410,在此,总线405也可称为一“局部总线”。总线405尚连接一处理器413(同样设置于NVM控制器410内部),以及连接至NVM接口200、401A-401N。
处理器413提供数个操作(其分别具有数个阶段)至各NVM界面200、401A-401N,以令各NVM接口200、401A-401N分别对应连接的NVMS可执行各个操作。本发明处理器413可实现在执行单一线程的单一核心、执行多个线程的单一核心或执行多个线程的多个核心上。本发明一实施例中,处理器413中是可包括有两个独立的核心,其中一核心(在此称为“主机管理核心”)与主机400进行接合,另一核心是将各操作切分为数个阶段并传送至NVM界面200及401A-401N,且两核心是可通过处理器413中的一共享存储器进行联系。
各NVM接口200、401A-401N是从处理器413接收多阶段的操作,并根据所接收的操作,负责执行相对应的任务。如上所述,各NVM接口200、401A-401N接收多个操作,则各NVM接口200、401A-401N其分别对应的存储器群组453、402A-402N将执行这些操作,且根据各自NVM的待命或忙碌状态、阶段的优先权及/或阶段使用总线的预定时间等等条件,以在操作中选择出个别的阶段而对于NVM进行执行。
NVM接口200、401A-401N实现于一硬件中,以便NVM控制器410可提升至最大功效。在本发明一实施例中,NVM接口200借助一可程序化的状态机进行实现,且一硬件的循环架构通过NVMS连接至NVM接口200,并于NVM接口200所接收的各操作的各阶段中识别出其中一欲执行阶段,然后利用该阶段以对于其对应的NVM进行执行。再者,本发明的循环架构是实现在一硬件上,因此,它可以对于一改变为待命状态的NVM立即进行反应,相较于实现在一软件上,其可更快速地及更有效地安排下一个欲执行的NVM。
又,本发明的NVM接口200、401A-401N是可提升至最大功效,若目前的NVM核心/芯片进入忙碌状态时(例如:在储存现在的状态后),即可快速地选择另一NVM核心/芯片且可立即执行其对应的阶段。本发明中,各NVM接口200、401A-401N分别用以支持8个NVM核心/芯片,然,实际应用时也可进一步支持更多数量的NVM核心/芯片,而处理器413可同时与8个NVM接口进行工作,再者,实际应用时也可进一步与更多数量的NVM接口进行配合。本发明NVM控制器410具有8个实体信道及64个虚拟信道,致使以使能一固态硬盘420而使用64个NVM核心。
本发明处理器413在解除提供操作功能至NVM接口200、401A-401N的负担后,将可因此支持更多调度、更多通道、更高阶的调度、平均耗损的机制上等等。再者,NVM接口200、401A-401N与处理器413的结合将可提高一双向总线221的使用率,这高使用率的双向总线221对于目前其它技术而言为无法达到的瓶颈,在此,本发明将可提供使用者一高效能及/或一价格便宜的固态硬盘420。
操作(例如:多阶段的写入操作)根据其本来已知的时间延迟而切分成数个阶段,例如:当一NVM根据于接收一最初阶段的一读取命令或一写入命令而指示为忙碌状态时,将得知已经过一第一时间TB的时间量。而NVM成为待命状态时,将得知已经过一第二时间TR(接续于第一时间TB后)的时间量。当TB-TR的时间差是足够置换为另一阶段并对于另一NVM进行执行时,此时,目前的操作将会切分成数个阶段,例如:第一阶段执行至第一时间TB而第二阶段接着第二时间TR进行执行,致使NVM接口200在TB-TR期间中的至少一部分时间仍可使用双向总线221执行另一阶段,借以避免双向总线221的闲置。在此,本发明实施例中,若出现TB-TR>TS的情况,此时操作将会切分成数个阶段,其中,TS为NVM接口进行操作的一置换程序所需的时间,而TB-TR为NVM内部执行第一阶段所需的时间。
本发明一实施例中,处理器413是将一写入操作切分成N个阶段,执行中的各阶段是可写入数据至一NVM 253I(具有N个平面)中一单一平面内。写入操作是具有N个部份数据,各部份数据于对应的各阶段进行执行时分别写入至同一地址中,例如:NVM 253I的每一平面是使用相同地址A。具体而言,处理器413将根据于本发明不同的操作类型及实施方式是将一操作切分成多个不同的阶段,且各操作的切分程序是预先设定(例如:硬件编码)在处理器413中,在此,熟悉该技术的技术领域者也可轻易理解本发明所揭示的各操作的切分动作。
又,如图4A所示,NVM控制器410包括一存储器414,其用以保持一NVM操作执行时传输至NVM的数据或从NVM中传送而来的数据。此外,本发明所述的存储器414可实现在NVM控制器410上,例如:设置在固态硬盘420上的SRAM芯片内或DRAM芯片外。从NVM 253I所读取的数据将通过NVM接口200以及NVM控制器410上的局部总线405传送至存储器414,同样地,存储器414中的数据将通过NVM接口200以及NVM控制器410上的局部总线405写入至NVM 253I中。在此,存储器414在NVM控制器410上也可作为一数据缓冲器。
控制器410包括有一主机接口411,其用以传输数据至一外部的主机400(例如:个人计算机)或从主机400接收数据。主机400也可通过一DMA控制器412(其包括于NVM控制器410中)而与存储器414进行数据传输。主机400可发布一写入命令至处理器413,接着通过DMA控制器412写入数据至存储器414。本发明的实施例中,主机400利用一工业标准规格发布命令至NVM控制器410,该工业标准规格可为ATA8-ACS标准规格(美国国家标准工作草案计划书T13/1699-D,公元2008年9月6号第6A修订版)及/或ACS-2标准规格(美国国家标准工作草案计划书T13/2015-D,公元2009年3月2号第1A修订版),两者标准规格都纳入本案参考引用。
主机接口411符合上述所提及的工业标准,以便顺利地从主机400接收命令。主机接口411可实现于一串行ATA(SATA)接口上并接收符合原生指令排序(Native Command Queuing;NCQ)的SATA命令,其技术方式已普遍设计于硬盘装置上并被该领域技术者所熟知。虽然一些说明刚刚已经过过描述,但,本发明实施例中为了操作上的需要,任何其它预设的命令皆可使用于主机400与处理器413间。
请参阅图4B,为本发明非挥发性存储器(NVM)控制器410的操作流程图。在动作451中,处理器413从主机400接收及储存一命令。在动作452中,若命令为一写入命令,主机400通过DMA控制器412传送数据至存储器414。在动作453中,处理器413决定使用那个NVM,并决定一特定地址,以执行动作451所接收到的命令。例如:若要进行数据的读取,处理器413将识别出保持有需求数据的NVMS,反之,若要进行数据的写入,处理器413将识别出具有足够容量可以保持数据的NVMS。此外,在决定NVMS的动作453中,处理器413也会对于快闪芯片执行传统正常形式的功能(例如:平均耗损)。
接续,在动作454中,处理器413可基于从主机400所接收到的一命令而制造出至少一上述讨论过的NVM操作,并确认每一NVM操作所要执行的NVM及NVM的地址。又,在动作454中,各NVM操作是具有一足够大的时间延迟存在于NVM进入忙碌及重回待命之间,处理器413也可根据各NVM的时间延迟而将各NVM操作切分成数个阶段。此外,在动作453中,假如来自于主机400的命令其命令所需的数据早已存在于存储器414中,则处理器413不需制作出一NVM操作,也可直接开始传送需求数据至主机400。
接着,动作455,处理器413提供动作454所制造出的NVM操作至NVM接口200/253A-253N,该NVM接口200/253A-253N将连接至动作454所确认出的NVM。如图4C所示,在T0-T1时间之间,处理器413通过局部总线405以将一虚拟通道0的一多平面4阶段写入操作传输至NVM接口200(如气泡b1,工作时间为100ns),接着,在NVM接口200中对于一有效位(valid 0)进行设定(如气泡b2,工作时间为10ns)。在T1时间,NVM接口200于局部总线405上开始进行一DMA(直接存储器存取)操作,并放置一命令及一地址于NVM总线221上,详细内容于后讨论。
在T1-T2时间之间,处理器413通过局部总线405以将另一虚拟通道1的一两阶段读取操作传输至NVM接口200(如气泡b3),接着,在NVM接口200中对于另一有效位(valid 1)进行设定(如气泡b4)。在此,在T1-T2时间之间,NVM接口200将使用NVM总线221而与NVM 253A进行联系,并向NVM 253A传输一写入命令及地址,以使得NVM 253I内部开始执行该多平面4阶段写入操作的第一阶段。再度参阅图4B,处理器413根据于各NVM接口中可储存的操作数量而多次执行动作455,借以保持操作的执行,例如:在此所描述的某些NVM接口类型也可储存有8个操作。
在动作456中,各NVM接口200接收及执行各NVM操作,并在操作完成后中断处理器413。例如:在T2-T3时间之间,NVM接口200接收一虚拟信道0的一多平面4阶段写入操作,通过局部总线405的传输以将存储器414中的数据传送至NVM 253I,并写入至NVM 253I的第一平面中(如气泡b5)。之后,直到T4时间之前,局部总线405皆未使用,而在T4时间之后,NVM接口200通过局部总线405传输存储器414中的数据,并将数据写入至NVM 253I的第二平面中(如气泡b6)。再者,如图4C所示,在T2时间后的短暂δT2时间,NVM接口200使用双向总线221传输数据并将数据写入至NVM 253I的第一平面中,该短暂δT2时间(例如:在100MHz频率周期中的50奈秒)为NVM接口200通过DMA(直接存储器存取)以从存储器414移动数据至双向总线221的数据接脚所需的时间。在此,(T2时间(DMA存取时间)非常短的,假使十倍(T2时间仍比在T1-T2时间中转移数据至NVM 253I所需时间还要短。
在T3-T4时间之间,虽然局部总线405并未使用,但NVM接口200仍可最大限度地使用双向总线221,例如:对应于虚拟信道1的地址,NVM接口200仍可使用双向总线221立即传输一指令至另一NVM253A,以开始执行上述两阶段读取指令中的第一阶段。具体而言,在T3时间后的(T2时间,对于虚拟通道0的第一平面完成数据的记忆存取,因此,在T3+(T2时间,NVM接口200开始进行置换出虚拟通道0的操作及置换入虚拟通道1的操作,在(T3时间,置换出及置换入的程序将一起进行,使得虚拟通道1的操作于T3+(T2+(T3时间开始执行。如此,从T3+(T2+(T3时间,虚拟通道1的操作将开始使用双向总线221,并于T4-(T3时间结束使用,其中(T3时间为置换出目前操作并置换入另一操作所需的时间。
在T4及T5时间之间,NVM接口200通过局部总线405以将存储器414中的数据传送至NVM 253I,并写入至NVM 253I的第二平面中(如图4C中的气泡b6所示)。在T4时间,双向总线221用以传输该虚拟通道0的写入操作的第二阶段之一写入命令及地址,致使以在短暂δT4时间后,刚刚描述的数据将从双向总线221传输至NVM 253I。又,(T4时间包括有第一时间(a)及第二时间(b),第一时间(a)其为传输第二阶段的命令及地址以将数据写入至NVM 253I的第二平面中的时间,而第二时间(b)其为从存储器414得到数据并传送至闪存(NVM)的时间,例如:(T2时间。上述双向总线221的数据传输将结束于T5+δT2时间,接着,T6+δT6时间,由于NVM接口200中并未有任何操作的阶段待命执行,因此,双向总线221将维持未使用的状态。
在T5-T6时间之间,处理器413通过局部总线405以将另一NVM253N欲执行的另一虚拟通道2的两阶段的NVM操作传送至NVM接口200(如气泡b7),接着,在NVM接口200中设定另一有效位(valid 2)(如气泡b8)。于是,在T6时间将会有三个操作为有效的。之后,在T6及T7时间之间,局部总线405(其连接至存储器414)为闲置的,而双向总线221(其连接至NVMS存储器群组253)于T6时间后的(T6时间再次开始使用,并且该(T6时间为NVM接口200置换入另一新操作的时间(如上所述该具有单一阶段的操作)。具体而言,在T6+δT6时间之间,NVM总线221将开始执行虚拟通道2的MVN操作,并于T7-δT3结束。
在T7及T8时间之间,NVM接口200通过局部总线405的传输,以将存储器414中的数据传送至NVM 253I,并写入至NVM 253I的第三平面中(如图4C中的气泡b9)。一短暂时间后,欲传送及写入至NVM 253I的数据将会在双向总线221上进行传送,其传送的时间开始于T7+δT2时间至T8+δT2时间为止。之后,于T8+δT2+δT3+δT8时间,虚拟通道1从NVM 253A所取得的数据将通过局部总线405传送至存储器414(如图4C所示的气泡b10)。
T9时间完成数据的传输,NVM接口200会产生一中断并传送至处理器413。双向总线221的使用将结束于T9时间前的一δT8短暂时间,其中该δT8时间为双向总线221传送数据至局部总线405所需要的时间。具体而言,处理器413被NVM接口200所中断,借以指示虚拟通道1的操作以进行完毕。虚拟通道1的操作进行完毕后,在T9+δT6时间,NVM接口200开始执行虚拟信道2操作的第二阶段。又,在T9+δT6时间及T10-δT8时间,双向总线221用以传送NVM 253N中的数据(根据虚拟信道2的第二阶段中的命令),以及在T9+δT6+δT8开始时间,双向总线221上所传送的数据将通过局部总线405进一步传送至存储器414(如气泡b11),并在完成数据的传输后,于T10时间时,NVM接口200再产生另一中断传送至处理器413。
在T10+δT3时间,置换入虚拟通道0的写入操作,进而双向总线221根据该写入操作的最后一阶段以撷取NVM 253I的状态数据,再者,该状态数据也会通过局部总线405进一步传送至存储器414(如气泡b12),NVM接口200再产生又一中断传送至处理器413。
再度参阅图4B,执行动作457,处理器413检查从NVM 200及253A-253N传送而至的中断。例如:在T10时间后(如图4C),处理器413与NVM接口200进行联系,以取得在虚拟通道0上写入操作的状态。最后,动作458,假如主机发布一读取数据的命令,DMA控制器412将会通过主机接口411移动存储器414中所暂存的数据至主机400。再者,本发明图4B所述的流程操作也可重复进行处理,例如:NVM控制器410将从动作458跳回动作451。
请参阅第5A-5C图,分别为本发明非挥发性存储器(NVM)接口的电路示意图、NVM状态机的状态示意图及排程器的电路示意图。NVM接口包括有一NVM状态机510,其用以执行一排程器520所识别的一操作。具体而言,基于识别出的操作,NVM状态机510从NVM接口200中的一存储器530(操作存储器)读取一对应的命令。存储器530包括有数个储存位置531A-531M,其用以保持可对于NVMS253A-253N进行执行的有效操作,以及保持相关信息以对于操作进行暂停及恢复执行。在此,各储存位置531I包括有至少一用以识别该操作230的NVM命令的字节及至少一用以识别该操作230的NVM命令欲执行地址(例如:NVM的行列地址)的字节。
此外,各储存位置531I尚包括有至少一预定优先权编号之位,例如:4位或一半字节保持一对应阶段欲执行的特定顺序。各优先权位分别用以指示各对应的阶段是否为一高优先权或一低优先权。是以一读取操作为例,该读取操作的四个依序的阶段其优先权顺序分别为高、低、低、低。而,另一写入操作为例,该写入操作的四个依序的阶段其优先权顺序分别为低、高、高、高。各储存位置531I尚包括有一中断使能位,其用以指示在操作完成时NVM状态机510(其被线路539上的一激活信号所驱动)是否要中断处理器413。又,各储存位置531I尚包括有一计数器,其用以从操作的多个阶段中识别出下一个要执行的阶段,例如:操作被暂停,而后恢复操作则需识别出该操作欲要执行的下一个阶段。再者,在该NVM接口200中的有效操作其保持于储存位置531A-531M中的指定信息也可根据于不同类型的操作而有所改变。
如上所述,被识别在储存位置531A-531M中的各操作其有效性的指示将记录于有效寄存器292中。有效寄存器292包括有数个储存单元,该储存单元将等于储存位置531A-531M的数量,例如:M数量。此外,各NVMS253A-253N的待命指示将记录于待命/忙碌寄存器291中。待命/忙碌寄存器291包括有数个储存单元,该储存单元将等于NVMS253A-253N的数量,例如:N数量。又,在本发明实施例的说明中,其M虽相等于N,但,实际而言,待命/忙碌寄存器291的储存单元的数量(N)不须相等于有效寄存器292的储存单元的数量(M),只要各NVMS253A-253N也可一对一分别对应至所属的储存位置531A-531M即可。
NVM接口200尚包括有一处理器总线接口545,其通过线路546连接至局部总线405,以接收欲执行的操作,且通过线路543以将操作的相关信息储存在储存位置531A-531M中,并使用线路544对于有效寄存器292中的对应位进行更新。处理器总线接口545通过线路539连接NVM状态机510,以接收中断处理器413的中断信号,该中断信号用以指示操作完成。又,处理器总线接口545尚通过线路542连接NVM状态机510,以提供NVM状态机510写入寄存器的数据及其写入地址。
NVM接口200尚包括有一DMA控制器548,其通过线路547及局部总线405是将NVM 253I中的数据传送至存储器414(其运行于NVM状态机510执行一读取操作的数据阶段的期间)。数据完成传送之后,DMA控制器548通过线路514通知NVM状态机510已经完成数据的传送,致使NVM状态机510开始执行下一阶段。同理,当NVM状态机510执行一写入操作的数据阶段,DMA控制器548也可从存储器414读取数据。又,NVM接口200尚包括有一错误更正码(Error Correction Code;ECC)区块549,其包括有一内部缓冲器。ECC区块549连接DMA控制器548及双向总线221。假如双向总线221上所传输的数据是检查出一错误,ECC区块549会在线路513(其连接NVM状态机510)上驱动有一激活信号,以通知NVM状态机510也有错误数据的情况发生。
又,NVM状态机510其运作的状态是呈现于图5B的图示上,而图5B所示的状态转移仅为本发明一实施例而已,其可根据不同厂商所制作出不同快闪记忆装置使用不同的状态转移。再者,每当NVM进入忙碌时,本发明的NVM状态机510将可对于NVM进行状态储存以及对于另一NVM操作进行工作。又,如图5B所示仅为部份说明而已,更多状态(例如:一多平面操作的后来阶段的命令及指令)的对应实现对于熟悉该项技术者也可通过揭示的内容而轻易推知。具体而言,图5B的状态运作如下所述:NVM状态机510开始一闲置状态551,且等待一操作被进行识别,例如:图5A的排程器520通过线路523以将操作的识别码传送至NVM状态机510。NVM状态机510转变为状态552,以通过线路516从操作存储器530取得被识别出的操作,而操作存储器530借助线路541以将该被识别出的操作输入至NVM状态机510中。接着,NVM状态机510根据于线路541所接收到的操作,转换为另一状态,例如:状态553、562、571、581或591。
具体而言,在接收到一多平面写入操作并且准备对于NVM 253I进行执行,则NVM状态机510从状态552转换为状态553,并启动DMA控制器548的操作,以开始将存储器414中的数据利用一DMA传送至NVM总线221,而在这时期启动DMA传送的原因主要是因为存储器414及局部总线405开始进行该DMA传送通常需要一大量的时间。在此期间,只要DMA控制器548的操作进行启动,NVM状态机510将转换为状态554并通过双向总线221传送一多平面写入命令,例如:NVM状态机510产生使能信号CLE、WE#并通过双向总线221中的控制线路221C传送。NVM状态机510于状态554时,同时也会通过一包含在总线512中的专用芯片使能线驱动一激活信号至NVM 253I。
之后,经过一预定的时间量,例如:进入状态554之后的15奈秒,(其预定的时间量也可借助延迟单元制定实行),NVM状态机510转换为状态555。于状态555时,将通过一输入输出线路(I/O)221D(包含于双向总线221中)传送NVM 253I的地址及数据,并将数据写入至NVM 253I(其被目前操作所识别出)。为了实现状态555中的地址传输,将需要多条行地址(例如:8个最低标示位,其次8个最高标示位)以及多条列地址(例如:3个地址组)。在线路221D上的数据信号为ECC区块549所提供,该数据信号为ECC区块549从DMA控制器549接收数据后所对应产生。在经过一预定的时间量后,例如:进入状态555之后的15奈秒,假如有更多的平面在目前操作中,则NVM状态机510转换为状态557,或者,假如现在的阶段为目前操作的最后阶段,则NVM状态机510转换为状态558。
状态557时,NVM状态机510通过总线221D传送一目前平面进行命令至NVM 253I,之后在经过一预定的时间量,例如:进入状态557之后的15奈秒,NVM状态机510转换为状态559。状态558相似于状态557,其差异性在于NVM状态机510此时通过总线221D是传送最后平面进行命令至NVM 253I。在进入状态559,NVM状态机510储存下一状态于闩锁器中,然后通过一包括于总线255中的一专用待命/忙碌线等待接收从NVM 253I传送来的一忙碌信号。在接收忙碌信号后,NVM状态机510转换为闲置状态551,以使得双向总线221可使用于其它有效的操作,并且其有效的操作所对应的NVM将为待命状态。
当一多平面读取操作为有效的且它的NVM 253J为待命状态,NVM状态机510从状态551转换为状态552以从操作存储器530取得操作230(如上所述)。之后,NVM状态机510转换为状态562,以通过双向总线221提供一多平面读取命令。接着,经过一预定的时间量,例如:进入状态562之后的15奈秒,NVM状态机510转换为状态563。在状态563,NVM 253I的地址将通过输入输出线路221D进行传送。同样的,为了实现在状态563中的地址传输,将需要多条行地址及多条列地址。然后,假如目前阶段为最后阶段,NVM状态机510转换为状态558,否则转换为状态564。
在状态564,NVM状态机510通过总线221D传送一目前平面进行命令至NVM 253J,之后,经过一预定的时间量,例如:进入状态564之后的15奈秒,NVM状态机510转换为状态559。
当一单页面读取操作为有效的且它的NVM 253A为待命状态,NVM状态机510从状态551转换为状态552以从操作存储器530取得操作230。之后,NVM状态机510转换为状态571,以通过双向总线221提供一页面读取命令至NVM 253A。接着,经过一预定的时间量,例如:进入状态571之后的15奈秒,NVM状态机510转换为状态572。在状态572,NVM 253A的地址将通过输入输出线路221D进行传送。同样的,为了实现状态572中的地址传输,将需要多条行地址及多条列地址。然后,NVM状态机510转换为状态573,并通过总线221D传送一页面读取地址进行命令至NVM 253A,之后,经过一预定的时间量,例如:进入状态573之后的15奈秒,NVM状态机510转换为状态559。
假如一结束页面读取信号指示页面已完成读取,NVM状态机510将从状态552转换为状态591。在状态591中,NVM状态机510提供一存储器414的地址,其地址数据将借助DMA控制器548在双向总线221上进行传送。接着,NVM状态机510进入状态592。状态592,NVM状态机510开始DMA数据传送,以将数据从双向总线221传送至存储器414。之后,假如操作存储器530通过总线541所传送的中断位被使能,NVM状态机510将转换为状态582,反之,中断位未使能,NVM状态机510将转换为状态551。在状态582时,NVM状态机510发布一中断信号并转换为状态551。
同理,假如一多平面写入信号指示多平面已完成写入,NVM状态机510将从状态552转换为状态581。在状态581,NVM状态机510在输入输出线路221D上发布一命令,借以读取已完成多平面写入操作的NVM253A的状态。之后,假如中断位被使能,NVM状态机510将转换为状态582,反之,中断位未使能,NVM状态机510将转换为状态551。
又,图5A中的排程器520将闩锁在待命/忙碌寄存器291的各待命信号(其个别对应于各NVMS)与闩锁在有效寄存器292的各有效位进行匹配比对,以使得NVM状态机510可识别出下一个欲执行的操作。又,本发明NVM状态机510在实际操作时,也可将阶段的层级优先权考虑其中,例如:分配每阶段为一高优先权或一低优先权。因此,排程器520将各待命信号(其个别对应于各NVMS)与各高优先权阶段的有效位进行匹配比对。再者,假如未有任何高优先权阶段的有效位被设定为激活状态及其对应的NVM指示为待命状态时,则排程器520将会选择一有效位被设定为激活状态及其对应NVM指示为待命状态的低优先权阶段。
请参阅图5C,为本发明排程器的电路结构示意图。储存位置531A-531N中目前被识别出具有高优先权的N个阶段的有效信号也可暂存于一高优先权有效寄存器592中,并将高优先权的N个阶段的有效信号提供至NAN D闸(与非门)595。同样地,那些N个相同阶段的待命信号暂存于一待命/忙碌寄存器291中,也提供至NAND闸595。NAND闸595输出一N位并提供至一多任务器597。一循环选择器591驱动一选择信号至多任务器597,借以利用一循环方式对于输入于多任务器597中的各个N位进行选择。相似于高优先权有效寄存器592,另一低优先权有效寄存器592中也可暂存具有低优先权的N个阶段的有效信号,并将低优先权的N个阶段的有效信号提供至NAND闸596。NAND闸596输出N位并提供至一多任务器598。多任务器597、598分别输出N位并提供至一多任务器599的两个输入端。
在本发明一实施例中,NVM状态机510也可通过一算术逻辑单元(ALU)进行实现,并连接一任务存储器及一微码存储器。任务存储器包括许多区段,各区段包括有数个不同的任务指令,例如:读取命令00h、行地址、列地址、命令30h、一等待状态、读出数据。微码存储器包括有各指令的执行步骤,例如:命令00h用以宣告CLE、nWE,并将16进制的00值驱动至快闪I/O总线上,接着,经过一段时间后解除宣告nWE,然后再经过一段时间解除宣告CLE。在此,指令的类型揭示于下列的附录A中,且附录A并提供处理器413传送指令至NVM状态机510(是由ALU执行)的一些具体说明。
揭示于附录A中的各操作指令是借助ALU中的解译器进行执行,并通过执行各指令所对应的步骤(其揭示于附录B中)以解译出在任务存储器中的各指令。如附录A及C所示,各操作借助ALU执行一指令串流的嵌入以切分成数个阶段,并且若遇到TB-TR>TS的情况,将执行至少一“WaitBsySwap”指令。假如未遇到TB-TR>TS的情况(例如:一多平面操作处在假忙碌),将会接连使用两个指令“WaitBsyNoSwap”及“WaitReady”,则操作不需执行切分程序。两个“WaitBsy”指令都会导致ALU进行等待,直到NVM传送出为激活状态的待命/忙碌信号(其用以指示NVM忙碌情况)后等待才会结束。然后,“WaitBsySwap”指令激活排程器520,以检查另一操作的一阶段是否为待命状态。“WaitBsyNoSwap”指令有效地将两个阶段合并成一个阶段。“WaitBsySwap”指令的数量也可用以界定阶段的数量,阶段数量=“WaitBsySwap”指令数量+1。一被执行的NVM操作是局部性地储存在NVM接口200内的操作存储器530中而作为一工作单,且其工作单也被使用于登记NVM操作的执行过程,以简化置换入及置换出操作的程序,详细内容于后叙述。附录A、B及C为本专利应用上不可缺少的部分,在此纳入参考。
工作单用以8字组(单平面/两平面快闪芯片)或11字组(四平面快闪芯片)的范例中。工作单的领域包括登记对应的NVM操作。在操作执行期间,字组0/1将进行修改,在操作置换出期间,字组0/1将进行保留。对于在局部总线405上传送数据的那些NVM操作而言,当工作单呈现一操作为置换出时,字组1将会保留在操作存储器530的工作单区域中,例如:若字组1在存储器414的数据缓冲器中指定一地址。再者,在字组0中的一预定位将用以识别在置换出时是否只有字组0或两字组0/1需要保留。在NVM接口200不需储存字组1只储存字组0的情况,将可减少置换出所需的时间量(例如:其至少一周期进行实现)。本发明所述的工作单包括下列字组:
字组0包括程序计数器,当NVM操作被置换入时,程序计数器于NVM操作储存过程中识别出NVM操作开始执行的一指令;字组0也可识别出至少一变量,该变量用以指示NVM操作中一指令的执行次数;字组0在各平面(平面0、平面1、平面2、平面3)的一页面中分别包括有一区段(最多16个区段);字组0尚包括至少一芯片使能位,该芯片使能位用以通知NVM接口200目前工作单是属于哪一个虚拟通道(定义各工作单属于一对应的虚拟通道,例如:工作单0用以虚拟通道0,而工作单1用以虚拟通道1)。
字组1包括有一在存储器414中的一数据缓冲器的地址,本发明具体实施例是用以支持16G以上的随机存取存储器(其可包括至少34位地址),一列表用以记录目前NVM操作的对应阶段的优先权。在字组1中的一预设位将用以识别在工作单中是否只有8个字或11个字为有效的。若通过NVM接口200只取回一工作单的8个字的情况下,则不需取回11个字,借以减少在工作单中置换程序所需的时间量(其实现至少需要3个循环)。
字组2包括有一平面0的列地址及至少两用以中断使能屏蔽识别位,中断使能屏蔽识别位用以中断已使能的NVM操作。
字组3包括有一平面1的列地址及一ECC门坎值,若多于N个位存在缺陷(已超过ECC门坎值的限制)且需要进行修正(只使用于数据的读取状况),此时将会触发一中断。
字组4包括有一平面0及一平面1的列地址。
字组5包括有一指标,该指针用以识别一逻辑页面号码,一旦发生内部管理数据损坏时,该逻辑页面号码将可使用于重新计算逻辑实体表。
字组6包括有错误更正信息(ECC码)以及每区段多少字节进行转移的信息。
字组7包括有使用目前NVM操作存取一NVM的时间信息(例如:选通CLE及ALE信号多久时间),并且该时间信息将会根据不同的NVM制造商而有所不同。
字组8、字组9及字组10包括平面2及平面3的行列地址。再者,字组8、字组9及字组10不用通过NVM接口取回单平面或两平面的NVM操作,借此将可减少工作单的置换程序所需的时间量。
以上所述者,仅为本发明的一较佳实施例而已,并非用来限定本发明实施的范围,即凡依本发明申请专利范围所述的形状、构造、特征及精神所为的均等变化与修饰,均应包括于本发明的申请专利范围内。
附录A
三星电子有限公司于公元2005年时公开一份数据规格书,其标题为“1G×8Bit/2G×8Bit/4G×8Bit NAND Flash Memory”,规格书中的各命令如下所示:
Figure BSA00000442600200401
Figure BSA00000442600200411
Figure BSA00000442600200421
Figure BSA00000442600200431
附录B
经由算术逻辑单元(ALU)的微编码存储器中的解译器进行指令的执行范例,如下所示:
Figure BSA00000442600200432
Figure BSA00000442600200441
附录C
用以说明各NVM操作的优先权列表的范例,如下所示;
Figure BSA00000442600200442

Claims (12)

1.一种操作非挥发性存储器控制器的方法,该非挥发性存储器控制器包括有一个处理器及数个非挥发性存储器接口,其特征在于,其步骤包括有:
在数个非挥发性存储器接口中的各非挥发性存储器接口从该处理器接收多个欲执行的非挥发性记忆体操作;
其中各非挥发性存储器接口连接至对应的非挥发性存储器群组;
其中各非挥发性记忆体操作从该非挥发性存储器群组中识别出唯一的一个非挥发性存储器;
其中该各非挥发性记忆体操作包括有数个已预定顺序的阶段;
在数个非挥发性存储器接口中的一个第一非挥发性存储器接口使用一个第一副双向输入输出接脚与在一个第一非挥发性存储器群组中的一个第一非挥发性存储器进行连接,以开始执行一个第一非挥发性记忆体操作的一个第一阶段;
在该第一非挥发性记忆体操作中,一个第二阶段被指定于该第一阶段之后执行;
该第一非挥发性存储器接口是使用该第一副双向输入输出接脚进一步与该第一非挥发性存储器进行连接,以开始执行该第一非挥发性记忆体操作的第二阶段,之后,从该第一非挥发性存储器接收一个第一状态信号以指示出该第一非挥发性存储器的待命状态;及
在该第一阶段的执行与该第二阶段的执行之间,该第一非挥发性存储器接口使用该第一副双向输入输出接脚与在该第一非挥发性存储器群组中的一第二非挥发性存储器进行连接,以开始执行在多个非挥发性记忆体操作中的另一非挥发性记忆体操作的另一阶段,且基于从该第二非挥发性存储器所接收的一第二状态信号以指示出该第二非挥发性存储器的待命状态。
2.根据权利要求1所述的方法,其特征在于,尚包括下列步骤:
在该多个非挥发性记忆体操作中,该第一非挥发性存储器接口基于该另一阶段使用该第一副输入输出接脚的至少一部分预定期间选择该另一阶段,且相对于其它阶段所预定的期间,该另一阶段将进行执行。
3.根据权利要求1所述的方法,其特征在于:
各非挥发性存储器操作对于该数个已预定顺序的阶段指定出相对应的数个优先权;及
该方法尚包括该第一非挥发性存储器接口基于该各阶段所指定的一优先权,而从该多个非挥发性记忆体操作的各阶段中选择其中一阶段进行执行。
4.根据权利要求1所述的方法,其特征在于:
该第一非挥发性存储器接口利用第一输入接脚以从该第一非挥发性存储器接收该第一状态信号,该第一输入接脚以专属的方式连接至该第一非挥发性存储器;及
该第一非挥发性存储器接口利用第二输入接脚以从该第二非挥发性存储器接收该第二状态信号,该第二输入接脚以专属的方式连接至该第二非挥发性存储器。
5.根据权利要求1所述的方法,其特征在于:
各非挥发性存储器接口包括有数个缓冲器,各缓冲器包括一组储存位置,各缓冲器用以储存从该处理器所接收到的非挥发性记忆体操作,且该处理器将在该组储存位置中的有效储存位置进行写入以指示出传送至该各非挥发性存储器接口的该非挥发性记忆体操作的有效性。
6.根据权利要求5所述的方法,其特征在于:
该第一非挥发性存储器接口根据于该处理器在该第一非挥发性存储器接口的数个有效储存位置中所对应储存的数个有效信号,而从该多个非挥发性记忆体操作之中选择出该另一非挥发性记忆体操作的该另一阶段;及
该数个有效储存位置包括至少一个该有效储存位置。
7.根据权利要求1所述的方法,其特征在于:
该第一非挥发性存储器接口包括数个输入接脚,分别连接至在该第一非挥发性存储器群组中的各非挥发性存储器;
该第一非挥发性存储器接口通过该数个输入接脚接收数个状态信号,该状态信号包括有至少一个该第一状态信号及至少一个该第二状态信号;
该第一非挥发性存储器接口尚包括数个输出接脚,该输出接脚使用共享的方式连接至该第一非挥发性存储器群组;
该第一非挥发性存储器接口在该输出接脚上传输地址栓锁使能信号、命令栓锁使能信号、读取使能信号、写入使能信号及写入保护信号;
该第一非挥发性存储器接口尚包括数个增设的输出接脚,分别连接至在该第一非挥发性存储器群组中的各非挥发性存储器;及
在该数个输出接脚上同步传输数个信号,且该第一非挥发性存储器接口于其中一个增设的输出接脚上传输芯片使能信号。
8.根据权利要求1所述的方法,其特征在于:
各非挥发性记忆体操作指定一个唯一的地址;
该第一阶段开始执行于该第一非挥发性存储器的第一平面中的该唯一的地址;及
该第二阶段开始执行于该第一非挥发性存储器的第二平面中的该唯一的地址。
9.一种非挥发性存储器控制器,用以控制数据传入至数个非挥发性存储器以及控制从数个非挥发性存储器传出数据,其特征在于,该非挥发性存储器控制器包括:
数个控制埠口群组,与该数个非挥发性存储器分别一对一进行联系;
其中在该数个控制埠口群组中的各控制埠口分别包括有至少一个输入接脚,通过各输入接脚以从该数个非挥发性存储器中的一个对应的非挥发性存储器分别接收一个待命信号,该控制埠口尚包括有至少一个输出接脚,通过各输出接脚以传送一个使能信号至所对应的非挥发性存储器;
数个储存单元,其与该数个控制埠口群组分别一对一进行联系;
其中在该数个储存单元中的各储存单元分别储存至少一个操作的有效性位,且各操作分别在所对应的非挥发性存储器上进行执行;
一个电路连接至该数个储存单元,以从各储存单元接收至少一个该有效性位,该电路尚连接该数个控制埠口群组,以从各控制埠口接收至少一个待命信号;
其中该电路通过该控制埠口的输出接脚传输至少一个使能信号至该对应的非挥发性存储器,以同时地对于用以指示该至少一个对应操作有效性的激活的位以及对于来自于该对应的非挥发性存储器的该激活的待命信号进行反应。
10.根据权利要求9所述的非挥发性存储器控制器,其特征在于:
各储存单元尚保持一个第二位,该第二位用以指示至少一个第二对应操作的有效性,且该第二对应操作执行在该对应的非挥发性存储器上。
11.根据权利要求9所述的非挥发性存储器控制器,其特征在于:
数个增设储存单元,其与该数个控制埠口群组分别一对一进行联系;
其中各增设储存单元用以保持一个第三位,该第三位用以指示至少一个该对应操作的优先权;及
其中该电路尚连接该数个增设储存单元。
12.根据权利要求9所述的非挥发性存储器控制器,其特征在于,该电路包括:
一个逻辑器,其用以产生至少一个该使能信号;及
一个存储器,其连接该逻辑器,其中该存储器包括数个指令,借助该逻辑器执行各指令以开始执行至少一个该对应的操作。
CN201110049852.6A 2010-03-05 2011-03-02 支持虚拟信道的非挥发性存储器控制器 Expired - Fee Related CN102193885B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/718,944 US8310880B2 (en) 2010-03-05 2010-03-05 Virtual channel support in a nonvolatile memory controller
US12/718,944 2010-03-05

Publications (2)

Publication Number Publication Date
CN102193885A CN102193885A (zh) 2011-09-21
CN102193885B true CN102193885B (zh) 2014-04-23

Family

ID=44532281

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110049852.6A Expired - Fee Related CN102193885B (zh) 2010-03-05 2011-03-02 支持虚拟信道的非挥发性存储器控制器

Country Status (3)

Country Link
US (1) US8310880B2 (zh)
CN (1) CN102193885B (zh)
TW (1) TW201133239A (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI425364B (zh) * 2010-06-22 2014-02-01 Mstar Semiconductor Inc 記憶體共享系統及方法
US20120226949A1 (en) * 2011-03-02 2012-09-06 Texas Instruments Incorporated Multi-Channel Bus Protection
KR101366960B1 (ko) * 2011-12-23 2014-02-25 한양대학교 산학협력단 입출력 핀을 이용한 다중 웨이 낸드 플래시 제어 장치 및 방법
DE102013010719A1 (de) * 2012-07-30 2014-01-30 Heidelberger Druckmaschinen Ag Maschinenzustandsbasierte Anzeige von Dokumentationen
US9146857B2 (en) * 2012-08-18 2015-09-29 Storart Technology Co. Ltd. Method for mapping management
CN104240756B (zh) 2013-06-20 2018-08-21 慧荣科技股份有限公司 控制装置及存取系统
BR112015032519B1 (pt) * 2013-07-26 2021-11-09 Intel Corporation Método e aparelho para interface de memória não volátil
KR102251809B1 (ko) 2014-05-28 2021-05-13 삼성전자주식회사 메모리 시스템, 메모리 인터페이스 장치 및 메모리 시스템에서의 인터페이싱 방법
KR102450556B1 (ko) * 2015-04-17 2022-10-04 삼성전자주식회사 불휘발성 메모리 장치들을 제어할 수 있는 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
CN106201932B (zh) * 2015-05-07 2019-03-05 群联电子股份有限公司 数据写入方法、存储器控制电路单元与存储器存储装置
KR102417182B1 (ko) * 2015-06-22 2022-07-05 삼성전자주식회사 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
JP2017045388A (ja) 2015-08-28 2017-03-02 株式会社東芝 メモリシステム
CN109348730B (zh) * 2015-09-18 2022-05-24 株式会社日立制作所 存储器控制器、存储器控制方法以及半导体存储装置
US10096366B2 (en) 2016-01-28 2018-10-09 Toshiba Memory Corporation Memory system including multi-plane flash memory and controller
TWI641988B (zh) 2017-07-21 2018-11-21 慧榮科技股份有限公司 用來於一記憶裝置中進行編程管理之方法以及記憶裝置及其控制器
TWI646546B (zh) * 2017-08-11 2019-01-01 慧榮科技股份有限公司 資料儲存裝置以及記憶體讀取方法
TWI658363B (zh) 2017-10-20 2019-05-01 慧榮科技股份有限公司 儲存裝置以及其介面晶片
US10283175B1 (en) * 2017-12-24 2019-05-07 Gigadevice Semiconductor (Shanghai) Inc. NAND flash memory and status output method in NAND flash memory
KR102588143B1 (ko) * 2018-11-07 2023-10-13 삼성전자주식회사 메모리 컨트롤러를 포함하는 스토리지 장치 및 메모리를 포함하는 전자 시스템을 동작시키는 방법
US20230046535A1 (en) * 2021-08-12 2023-02-16 Micron Technology, Inc. Completion flag for memory operations
US11935595B2 (en) * 2022-02-24 2024-03-19 Silicon Motion, Inc. Flash memory device, controller, and method capable of performing access operation upon data unit(s) of multiple planes of flash memory device in response one simplified command sequence
US11989458B2 (en) * 2022-09-12 2024-05-21 Western Digital Technologies, Inc. Splitting sequential read commands

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7185162B1 (en) * 2000-10-26 2007-02-27 Cypress Semiconductor Corporation Method and apparatus for programming a flash memory
CN101034382A (zh) * 2006-03-09 2007-09-12 联发科技股份有限公司 用于嵌入式系统的命令控制器及预取模块及其控制方法
US7589799B2 (en) * 2007-03-06 2009-09-15 Au Optronics Corp. Active array substrate for a liquid crystal display
US7653778B2 (en) * 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6754765B1 (en) * 2001-05-14 2004-06-22 Integrated Memory Logic, Inc. Flash memory controller with updateable microcode
KR100754226B1 (ko) * 2006-08-22 2007-09-03 삼성전자주식회사 비휘발성 데이터 저장장치의 프로그래밍 방법 및 그 장치
KR101354152B1 (ko) * 2006-12-18 2014-01-27 삼성전자주식회사 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의작업 스케줄링 방법 및 장치
US8078918B2 (en) * 2008-02-07 2011-12-13 Siliconsystems, Inc. Solid state storage subsystem that maintains and provides access to data reflective of a failure risk

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7185162B1 (en) * 2000-10-26 2007-02-27 Cypress Semiconductor Corporation Method and apparatus for programming a flash memory
CN101034382A (zh) * 2006-03-09 2007-09-12 联发科技股份有限公司 用于嵌入式系统的命令控制器及预取模块及其控制方法
US7653778B2 (en) * 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices
US7589799B2 (en) * 2007-03-06 2009-09-15 Au Optronics Corp. Active array substrate for a liquid crystal display

Also Published As

Publication number Publication date
US8310880B2 (en) 2012-11-13
TW201133239A (en) 2011-10-01
US20110219171A1 (en) 2011-09-08
CN102193885A (zh) 2011-09-21

Similar Documents

Publication Publication Date Title
CN102193885B (zh) 支持虚拟信道的非挥发性存储器控制器
JP5272019B2 (ja) プロセッサを内部メモリに接続するクロスバー・スイッチを含むフラッシュメモリ用ストレージコントローラ
CN102317928B (zh) 修改命令
US20150186068A1 (en) Command queuing using linked list queues
CN103116551B (zh) 应用于CLB总线的NorFLASH存储接口模块
US8996788B2 (en) Configurable flash interface
TW200928736A (en) A controller for one type of NAND flash memory for emulating another type of NAND flash memory
US20160179388A1 (en) Method and apparatus for providing programmable nvm interface using sequencers
JP2009517742A (ja) マイクロコントローラに基づくフラッシュメモリデジタルコントローラシステムのためのコマンドデコーダ
CN103235760B (zh) 基于CLB总线的高利用率NorFLASH存储接口芯片
US10152275B1 (en) Reverse order submission for pointer rings
CN106557442B (zh) 一种芯片系统
CN102999453B (zh) 用于系统芯片集成的通用非易失性存储器控制装置
US10776042B2 (en) Methods for garbage collection and apparatuses using the same
CN107480081A (zh) 具有可中断指令序列的存储器及其操作方法
US8914587B2 (en) Multi-threaded memory operation using block write interruption after a number or threshold of pages have been written in order to service another request
CN101206614B (zh) 仿真特殊功能寄存器的仿真器
US20140237170A1 (en) Storage device, and read command executing method
CN113377695A (zh) 读写分离的固态存储设备的数据分布方法
KR20210035910A (ko) 비-결정적 커맨드를 지원하는 메모리 서브-시스템
JP2021043814A (ja) メモリシステム
EP1760580A1 (en) Processing operation information transfer control system and method
CN101421705B (zh) 具有高储存容量的多媒体卡
CN207008602U (zh) 一种基于NandFlash存储器多通道的存储阵列控制装置
JP2012043031A (ja) 共有キャッシュメモリ装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: JINGXIANFENG TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: 248 SOLID STATE INC.

Effective date: 20131230

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; TO: TAIWAN, CHINA

TA01 Transfer of patent application right

Effective date of registration: 20131230

Address after: ZTE in the two street Hsinchu County Taiwan Richwood China jhubei City, a 5 floor No. 158

Applicant after: Pioneer Chip Technology Ltd.

Address before: California Santa Clara Scarlett Road No. 3375 room 128

Applicant before: 248 Solid State, Inc.

C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: ZTE in the two street Hsinchu County Taiwan Richwood China jhubei City, a 5 floor No. 158

Patentee after: PIONEER CHIP TECHNOLOGY, LTD.

Address before: ZTE in the two street Hsinchu County Taiwan Richwood China jhubei City, a 5 floor No. 158

Patentee before: Pioneer Chip Technology Ltd.

CP01 Change in the name or title of a patent holder
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140423