CN103995686A - 使用与低级可编程定序器结合的通用可编程处理器的非易失性存储器通道控制 - Google Patents
使用与低级可编程定序器结合的通用可编程处理器的非易失性存储器通道控制 Download PDFInfo
- Publication number
- CN103995686A CN103995686A CN201410027208.2A CN201410027208A CN103995686A CN 103995686 A CN103995686 A CN 103995686A CN 201410027208 A CN201410027208 A CN 201410027208A CN 103995686 A CN103995686 A CN 103995686A
- Authority
- CN
- China
- Prior art keywords
- volatile memory
- memory devices
- interface
- sequencer
- piece
- 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
Links
- 230000015654 memory Effects 0.000 title claims description 94
- 230000004044 response Effects 0.000 claims abstract description 23
- 230000003139 buffering effect Effects 0.000 claims description 26
- 238000000034 method Methods 0.000 claims description 13
- 230000008859 change Effects 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 description 19
- 238000012545 processing Methods 0.000 description 14
- 238000003860 storage Methods 0.000 description 12
- 238000007726 management method Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 5
- 230000008676 import Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000013481 data capture Methods 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000003032 molecular docking Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- LHMQDVIHBXWNII-UHFFFAOYSA-N 3-amino-4-methoxy-n-phenylbenzamide Chemical compound C1=C(N)C(OC)=CC=C1C(=O)NC1=CC=CC=C1 LHMQDVIHBXWNII-UHFFFAOYSA-N 0.000 description 1
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 108700007698 Genetic Terminator Regions Proteins 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 239000003638 chemical reducing agent Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000021615 conjugation Effects 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 235000003642 hunger Nutrition 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000005291 magnetic effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 125000006850 spacer group Chemical group 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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
- G06F13/1694—Configuration of memory controller to different memory types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/02—Disposition of storage elements, e.g. in the form of a matrix array
- G11C5/04—Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
-
- 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/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Microcomputers (AREA)
- Memory System (AREA)
- Advance Control (AREA)
Abstract
本公开涉及使用与低级可编程定序器结合的通用可编程处理器的非易失性存储器通道控制。系统包含控制处理器、非易失性存储器设备接口和微定序器。控制处理器可以配置为通过命令接口接收命令和发送响应。非易失性存储器设备接口可以配置为将系统耦接至一个或多个非易失性存储器设备。微定序器一般耦接至(i)控制处理器和(ii)非易失性存储器设备接口。微定序器包含可由微定序器读出并可由控制处理器写入的控制存储设备。响应于接收一个特定命令,控制处理器能够使微定序器根据特定命令在控制存储设备中的位置开始执行,微定序器能够根据耦接至非易失性存储器设备接口的一个或多个非易失性存储器设备的协议,执行特定命令的至少一部分。
Description
技术领域
本发明一般涉及存储器系统,更具体而言,涉及用于实现使用与低级可编程定序器结合的通用可编程处理器的非易失性存储器通道控制的方法和/或装置。
背景技术
常规的非易失性存储器控制系统尝试使用多个不同的协议来给予可以由系统使用的设备的范围灵活性。支持多个不同协议涉及用于每个预想类型的接口、以及用于每个要求的接口命令类型的专用的控制逻辑。依赖于用于每个接口协议的专用的控制逻辑不是非常灵活的方案,对于新的或者略改变的接口协议的版本需要昂贵的逻辑的重新设计。或者,中央处理单元(CPU)可以被用于允许非易失性存储器接口的一定灵活性的低级控制。然而,这对CPU施加了较高负担,因此导致有限的性能。
理想的是实现使用与低级可编程定序器结合的通用可编程处理器的非易失性存储器通道控制。
发明内容
本发明涉及的系统包含控制处理器、非易失性存储器设备接口和微定序器。控制处理器可以配置为通过命令接口接收命令以及发送响应。非易失性存储器设备接口可以配置为将系统耦接至一个或多个非易失性存储器设备。微定序器一般耦接至(i)控制处理器和(ii)非易失性存储器设备接口。微定序器包含可由微定序器读出并可由控制处理器写入的控制存储设备。响应于接收一个特定命令,控制处理器 能够使微定序器根据特定命令在控制存储设备中的位置开始执行,微定序器能够根据耦接至非易失性存储器设备接口的一个或多个非易失性存储器设备的协议,执行特定命令的至少一部分。
本发明包括的一个方面涉及一种系统,包括控制处理器、非易失性存储器设备接口和微定序器。控制处理器配置为通过命令接口接收命令和发送响应。非易失性存储器设备接口配置为将系统耦接至一个或多个非易失性存储器设备。微定序器耦接至(i)控制处理器和(ii)非易失性存储器设备接口。微定序器包括可由微定序器读出并可由控制处理器写入的控制存储设备。响应于接收命令中的特定命令,控制处理器能够使微定序器根据特定命令在控制存储设备中的位置开始执行,并且微定序器能够根据耦接至非易失性存储器设备接口的一个或多个非易失性存储器设备的协议,执行特定命令的至少一部分。
在上述方面的系统的一些实施方式中,非易失性存储器设备接口包括多个数据I/O引脚和多个控制I/O引脚。在实现控制I/O引脚和数据I/O引脚的一些实施方式中,微定序器能够改变控制I/O引脚和数据I/O引脚的状态,以根据协议执行特定命令。
在上述方面的系统的一些实施方式中,控制存储设备被控制处理器编程为执行与附接到非易失性存储器设备接口的一个或多个非易失性存储器设备关联的一个或多个协议。在一些实施方式中,控制处理器进一步配置为:初始使能控制处理器将控制存储设备编程为执行与多个类型的非易失性存储器设备兼容的低速协议;以及随后使能控制处理器将控制存储设备编程为执行与一个或多个非易失性存储器设备兼容的更高速协议。
在一些实施方式中,上述方面的系统还包括输出数据接口和输入数据接口。输出数据接口通过微定序器耦接至非易失性存储器设备接口,输出数据接口包括输出数据缓冲,输出数据缓冲能够接收要发送至非易失性存储器设备接口的数据。输入数据接口通过微定序器耦接至非易失性存储器设备接口,输入数据接口包括输入数据缓冲,输入数据缓冲能够接收从非易失性存储器设备接口接收的数据。在一些实 施方式中,微定序器进一步能够(i)检测输入数据缓冲的满状态(fullcondition),以及(ii)响应于检测满状态,跳至控制存储设备中的确定的位置。
在一些实施方式中,上述方面的系统是固态驱动器SSD设备的一部分。
在一些实施方式中,上述方面的系统实现为一个或多个集成电路。
本发明还包括的一个方面涉及一种控制非易失性存储器通道的方法,包括如下步骤:(i)通过耦接至控制处理器的命令接口,接收命令和发送响应;以及(ii)使用耦接至控制处理器的微定序器,开始执行在控制存储设备中的位置处的指令,其中,位置由控制处理器根据接收的命令中的特定命令确定,其中,微定序器根据通过非易失性存储器设备接口耦接至微定序器的一个或多个非易失性存储器设备的协议,执行特定命令的至少一部分。
在一些实施方式中,上述方面的方法还包括:使用控制处理器将控制存储设备编程为执行与附接到非易失性存储器设备接口的一个或多个非易失性存储器设备关联的一个或多个协议。
在一些实施方式中,上述方面的方法还包括:初始使能控制处理器将控制存储设备编程为执行与多个类型的非易失性存储器设备兼容的低速协议;以及随后使能控制处理器将控制存储设备编程为执行与一个或多个非易失性存储器设备兼容的更高速协议。
附图说明
本发明的实施例可以从下面的具体实施方式、所附的权利要求和附图得知,其中:
图1是示出依据本发明的实施例的非易失性存储器控制系统的图;
图2是示出依据本发明的实施例的接口管理处理器的图;
图3是示出图2的输出数据缓冲的示例实施方式的图;
图4是示出图2的输入数据缓冲的示例实施方式的图;
图5是示出图2的控制单元的示例实施方式的图;
图6是示出图2的低级(low-level)非易失性存储器接口的示例实施方式的图;
图7是示出图6的低级非易失性存储器接口定序器单元的示例实施方式的图;
图8是示出图6的DQ捕获块的示例实施方式的图;
图9是示出图8的DQ捕获近垫逻辑(Near pad logic,NFL)块的示例实施方式的图;
图10是示出图8的DLL块的示例实施方式;
图11是示出输出接口近垫逻辑块的示例实施方式的图;
图12是示出依据本发明的实施例的具有多个通道的非易失性存储器控制系统的图。
具体实施方式
本发明的实施例包含用于使用与低级可编程定序器结合的通用可编程处理器来实现非易失性存储器(例如闪存等)通道控制的方法和/或装置。本发明的实施例可以(i)耦接通用中央处理单元(CPU)用于高级控制,并与可编程微定序器调度用于非易失性存储器接口的低级控制;(ii)以由序列编程定义的方式,使用微定序器来提供由非易失性存储器接口的时钟周期控制的时钟周期;(iii)能使微定序器被编程为处理任何计划的非易失性存储器接口;(iv)允许还没有预想到的将来的非易失性存储器接口的编程;(v)使用微定序器来提供指令,控制非易失性存储器引脚输出,控制数据输出和数据捕获,配置接口操作模式,和/或循环经由定义的序列达配置的次数(没有招致管线延迟);(vi)使用微定序器提供能力来以可配置的方式处理数据饥饿以及数据回压情况;(vii)实现CPU与微定序器之间的共享的存储器来允许序列参数传递,以及微序列控制代码容易更改;(viii)仅当序列完成或者遇到错误情况时,向微定序器传递请求来执 行序列,并从微定序器产生响应;和/或(ix)释放CPU以执行更高级调度、管理和决策。
参考图1,示出的图例示依据本发明的实施例的非易失性存储器控制系统100。在一些实施例中,非易失性存储器控制系统100包括块101和块103。块101可以实现存储器通道控制器,还被称为接口管理处理器(IMP)。块103可以实现控制器主机。控制器101可以配置为控制一个或多个个体非易失性存储器通道。在一些实施例中,可以实现控制器101的多个实例以控制多个非易失性存储器通道。控制器101具有配置为接收命令并发送响应给主机103的命令接口。主机103可以包括例如后端处理单元(BEPU)。在实现多个非易失性存储器通道的实施例中,主机103还包含复用电路,该复用电路将控制器101的多个实例耦接至BEPU。在一些实施例中,主机103是诸如固态盘(SSD)控制器的I/O设备控制器,BEPU是控制器提供多个非易失性存储器设备(诸如NAND闪存非易失性存储器芯片)的调度和/或数据管理的部分。在此外的实施例中,BEPU包括数据缓冲和直接存储器访问(DMA)引擎(engine)来存储数据或者其他信息,并将数据或者其他信息在主机103和控制器101之间移动。
控制器101还具有配置为将系统100耦接至非易失性存储器介质105的非易失性存储器接口。非易失性存储器介质105可以包括一个或多个非易失性存储器设备107。在一些实施例中,非易失性存储器设备107具有一个或多个非易失性存储器管芯109。根据特定一个非易失性存储器设备107的类型,特定非易失性存储器设备107中的多个非易失性存储器管芯109可选地和/或选择性地并行可访问。非易失性存储器设备107一般代表能够通信地耦接至控制器101的存储设备的一个类型。然而,在各种实施例中,可用任何类型的存储设备,诸如SLC(单级单元)NAND闪存存储器、MLC(多级单元)NAND闪存存储器、TLC(三级单元)NAND闪存存储器、NOR闪存存储器、只读存储器(Rom)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、磁阻随机存取存储器(MRAM)、铁磁存 储器(例如FeRAM、F-RAM FRAM等)、相变存储器(例如PRAM、PCRAM等)、赛道(racetrack)存储器(或者畴壁存储器(DWM))、电阻随机存取存储器(RRAM或者ReRAM)、或者任何其他类型的存储器设备或者存储介质。
在一些实施例中,控制器101和非易失性存储器介质105在分离的集成电路上实现。当控制器101和非易失性存储器介质105在分离的集成电路(或者设备)上实现时,控制器101的非易失性存储器接口一般能够管理多个数据输入/输出(I/O)引脚和多个控制I/O引脚。数据I/O引脚和控制I/O引脚可以配置为将含有控制器101的设备连接至外部设备,该外部设备形成非易失性存储器介质105。
参考图2,示出的图例示依据本发明的实施例的控制器101的实施方式。在一些实施例中,控制器101实现接口管理处理器(IMP)。在一些实施例中,控制器101包括块(或者电路)110、块(或者电路)112、块(或者电路)114、块(或者电路)116、块(或者电路)118、块(或者电路)120、块(或者电路)122和块(或者电路)124。块110一般实现硅逻辑和固件,配置为以可配置、灵活和可扩展的方式控制多个非易失性存储器设备。块112实现总线接口块(BIB)。块114实现命令缓冲(CB)。块116实现输出数据缓冲(ODB)。块118实现响应缓冲(RB)。块120实现输入数据缓冲(IDB)。块122实现配置/状态寄存器(CSR)块。块124实现同步块。
总线接口块(BIB)112处理向后端处理单元(例如主机103)以及来自后端处理单元的通信。BIB112处理通过输出总线(例如OB)从BEPU接收的低级数据链接命令,将命令和数据传递给命令缓冲114和输出数据缓冲116。BIB112还通过输入总线(例如IB),将来自响应缓冲(RB)118的命令响应和来自输入数据缓冲(1DB)120的输入数据发送至后端处理单元。命令缓冲(CB)114将输出总线字积累为硬件控制端口(HCP)双字,并将HCP双字馈送至CU130。术语双字(dword,double-word)代表单个周期中的数据传输的单位(例如8个字节)。响应缓冲(RB)118从CU130获取HCP双字, 将HCP双字拆散为多个输入总线字,并将多个输入总线字发送至BIB112。在一些实施例中,HCP双字包括在BEPU与CU130之间发送的消息。例如,BEPU将消息发送至CU130,以向由CU130维持的工作的队列增加非易失性存储器设备访问操作,且CU130将表明操作完成和/或操作的状态的消息发送回BEPU。在此外的实施例中,来自BEPU的消息包括与操作的数据传输关联的各个标签,CU130能够使用标签来启动抓取要写入至非易失性存储器设备的数据,或者表明用于从非易失性存储器设备读出的数据的操作特定的目的地。
CSR块122位于系统100的CSR环上。CSR块122通过CSR块122的寄存器提供对接口管理处理器(IMP)信息的访问并配置IMP操作。例如,CSR块122的寄存器能使CU130运行,提供CU130操作的状态,启动控制器101的调试和/或诊断特性,以及其他管理访问特性。CSR环可以使用任何多个总线规范(例如PalmBus、AMBA、AHB等)来实现。在各种实施例中,多个(例如2个)优先级中断信号和停止信号(例如HALT/INTR)可以发送给后端处理单元。后端处理单元可以配置为将优先权中断信号和停止信号同步至核心域。块124可以配置为将全局停止输入(例如HALT IN)同步至控制器101的时钟域。同步的全局停止输入在CSR控制下,然后可以使控制器101停止。
块110一般包括控制单元(CU)130和低级非易失性存储器接口(LFI)132。CU130一般包括通用中央处理单元(CPU)。LFI132包括低级可编程微定序器。CU130和LFI132的低级可编程微定序器由共享的存储器(例如由块134代表)紧密耦接。CU130和LFI132的低级可编程微定序器能够控制连接至一个或多个非易失性存储器设备(例如图1的非易失性存储器介质105)的系统输出和输入(例如NVM I/O)。CU130可以从整个系统控制器接收命令,负责(i)做出将什么命令发出给LFI132的低级可编程微定序器的决定;(ii)控制进/出中心系统数据仓库的数据的流;(iii)处理潜在的错误状况;以及(iv)发送响应给整个系统控制器以表明命令的完成。
LFI132的低级可编程微定序器可以配置有程序来寻址并控制附接的特定类型的非易失性存储器设备。LFI132的低级可编程微定序器因此可以从CU130提取有关特定非易失性存储器接口协议的细节,并向CU130提供更高级的序列调用。CU130、LFI132的低级可编程微定序器和用于它们的程序一般允许整个系统控制器向高级的非易失性存储器控制器101发出命令。用于CU130的程序处理更高级命令的调度(例如对于一个或多个非易失性存储器设备而言),将更高级命令拆散为低级命令,将低级命令发出给LFI132的低级可编程微定序器。当命令完成时,程序向BEPU控制器发出响应。这免除了BEPU和/或主机103的其他处理器必须处理非易失性存储器接口的细节的操作。由于导入了新的非易失性存储器设备,通过仅仅开发用于CU130和LFI132的低级可编程微定序器的新的程序,新的设备可使用上述灵活样式的方案。
LFI132能够检测诸如由于当从非易失性存储器介质接收数据时的回压导致的数据中断,或者当发送数据给非易失性存储器介质时的数据缺失。LFI132的低级可编程微定序器还可以摆脱编程循环以进入例外状态。在例外状态下,LFI132的低级可编程微定序器可以在第一模式下,检测数据的恢复并继续操作;或者在第二模式下,中断CU130以具有操作的更高级的重新开始。在第二模式下,CU130可访问由LFI132的低级可编程微定序器传输的数据的量,并例如可以调节地址和/或长度,来从暂停了数据传输的点重新开始数据传输。
CU130解释接口管理处理器命令并提供响应。CU130还可以访问输入数据缓冲和输出数据缓冲并控制LFI132。LFI132访问并控制非易失性存储器I/O、序列命令、序列数据输出,并捕获数据返回。CU130的大部分功能以固件实现,以允许灵活性并支持将来的非易失性存储器类型。
参考图3,示出的图例示图2的输出数据缓冲(ODB)116的示例实施方式。在一些实施例中,ODB116包括块(或者电路)150、块(或者电路)152、块(或者电路)154、块(或者电路)156和块(或 者电路)158。块150一般实现控制接口。块152一般能够执行路由操作。块154实现先进先出(FIFO)缓冲。块156实现计数器。块158一般能够执行奇偶性检查。
在第一(例如通常)操作模式下,可以设置控制和路由来将传入数据直接引导至LFI132。对于调试或者其他高级功能,可以设置控制和路由来将传入数据直接引导至CU寄存器接口。对于CU固件下载,可以设置控制和路由来将传入数据直接引导至CU130的命令解释器。在一个示例中,块154可以实现为8位宽、4条(entry)深的FIFO缓冲。然而,可以实现其他深度和宽度来满足特定实施方式的设计标准。块154具有可配置的Hi(高)和Lo(低)电平(例如FIFO阈值),被用作序列控制的部分。典型而言,对于深为4、双倍数据速率(DDR)系统而言,Hi会被设定为2,Lo被设定为1。对于深为4、单倍数据速率系统而言,Hi会是1,Lo是0。块156可以实现为CU CSR可访问的计数器,配置为对由ODB116接收的字节的数量计数。块156还可由CU130写入,并在调试中可以是有用的,作为从写入数据路径接收了正确数量的字节的检查。块158能够检查数据接口奇偶性,并将奇偶性错误报告给CSR块122,对于诸如奇偶性错误的例外,能够向BEPU发出中断信号。
参考图4,示出的图例示了图2的输入数据缓冲(IDB)120的示例实施方式。在一些实施例中,IDB120包括块(或者电路)160、块(或者电路)161、块(或者电路)163、块(或者电路)165、块(或者电路)167和块(或者电路)169。块160一般实现控制接口。块161一般能够执行路由操作。块163实现先进先出(FIFO)缓冲。块165实现差异计算器。块167实现奇偶性发生器。块169实现倒数计数器。
IDB120一般通过块163从LFI接收传入数据。在一些实施例中,块163可以实现为8位宽、40条的FIFO缓冲。然而,可以实现其他深度和宽度,从而满足特定实施方式的设计标准。块163具有可配置的Hi和Lo电平(例如FIFO阈值)用于在LFI132的流控制。块163 允许系统100中的在快速传输速率下可以是显著的(例如30ns)往返延迟,并还允许当在FIFO缓冲中缓冲传入数据时,在传输的开始的时间插入来自CU130的消息头。对于双倍数据速率系统,Hi和Lo电平(例如FIFO阈值)的示例设定将为:Hi为22,Lo为21。
来自LFI132的数据一般被引导至将IDB120连接至BIB112的传出FIFO缓冲(未示出)。来自LFI132的数据还可以使用控制接口160的CU寄存器接口由CU130读出(例如,当数据由CU130消耗时,该特性可以用于非易失性存储器设备寄存器读出、状态读出等)。CU寄存器接口还可以被用于将数据从CU130发送至BIB112(例如,该特性可以用于数据头/尾)。
块165一般实现为运行差异计算器。在一些实施例中,运行差异计算器保持读出数据流中的1位相对于0位的过量的带符号的20位总运行。示例差异计算由下面的等式1示出:
差异=设定为1的总位-(总位/2)等式1
如果差异值到达最大正或者最大负的20位值,那么差异值饱和并固定。当从非易失性存储器设备读出的数据具有已知的期待的差异时,使用差异计算,至少部分确定读出数据是否有效。在第一示例中,如果从非易失性存储器设备读出的数据是加密和/或加扰的,并具有0和l的已知的统计的50-50分布,差异会预计为接近0。在第二示例中,诸如NAND闪存的一些非易失性存储器设备具有擦除的状态,都为l。如果差异计算表明实质上所有的数据位读出具有值1,那么擦除的页面可能已被读出。
当数据读出已经完成时,差异值可以由CU130读出,并包含在数据尾,或者作为响应返回给BEPU。CU130应该在数据传输的开始之前通常清除差异值。传出数据流由块167进行奇偶性保护。
块169一般实现CSR可访问的向下计数器。块169对从IDB120发送的字节的数量向下计数。这可以被设定为传输的长度,并将在传输的期待的终止时向下计数至零。块169还可以由CU130的CSR寄存器编程,以在传输的开始/终止处产生第一/最后指示(例如,侧带 信号,提供帧信息)。第二CSR寄存器被用于在计数器到达零水平后对块169进行预设。
当向BIB112的传出数据由CU130产生(例如对于数据头和尾而言)时,那么向BIB112的第一和最后输出也由CU130控制。在典型的读出中,CU130初始将IDB120置于“来自CU”模式,在LFI132开始读出命令,然后将头部传输至BIB112,然后将IDB120置于“通常”模式,使得来自LFI132并在块163中的数据被传送至BEPU。最终,如果需要,CU130会产生尾。
参考图5,示出的图例示了图2的控制单元(CU)130的示例实施方式。CU130一般实现基于微处理器的控制器101的监管控制单元。CU130从输出总线(0B)接收命令,执行命令调度和优先级。在一些实施例中,CU130包括块(或者电路)170、块(或者电路)172、块(或者电路)174、块(或者电路)176、块(或者电路)178、块(或者电路)180、块(或者电路)182和块(或者电路)184。块170一般包括中央处理单元(CPU)核心。块172一般实现命令解释器。块174实现仲裁器。块176实现用于存储数据的随机存取存储器(RAM)。块178实现本地配置/状态寄存器(CSR)块。块180实现到LFI132的接口。块182实现仲裁器。块184实现用于存储指令的随机存取存储器(RAM)。
在启动时,CPU170由块178中的CSR寄存器保持为重置。由BEPU发出IMP命令,对指令RAM184、LFI132的序列RAM和数据RAM176的初始状态编程。初始状态一般来自系统ROM(未示出)。在初始编程之后,重置被释放,CPU170开始执行其初始固件。该固件允许CPU170响应从BEPU发出的命令。在初始操作状态期间,BEPU可以从非易失性存储器设备将最终操作代码带到后端缓冲(未示出)。最终的操作代码被用于配置CPU170以及系统100上的其他CPU。在一个示例中,在该阶段,CU代码可能会重新装载以非易失性存储器上存储的固件的性能优化的版本。这一般发生作为数据传输,IMP命令被用于将传入IDB数据引导至指令RAM184、数据 RAM176和/或LFI132的序列RAM。典型而言,在加载主要操作代码期间,CU130会处于重置。
仲裁器182和仲裁器174可以用于CPU170的RAM接口,来允许IMP命令访问数据RAM176、指令RAM184和LFI132的序列RAM。在一个示例中,可以使用CPU170的延迟(stall)机构,给予IMP命令解释器172优先权。然而,可期待的是由CPU170以外访问数据RAM176、指令RAM184和LFI132的序列RAM仅在初始配置发生。
CPU170还可以包含输入和输出FIFO接口,用于从BEPU传递消息,并用于将响应提供回BEPU。输出FIFO接口还被用于将消息传递至(例如主机103的)直接存储器访问(DMA)引擎来开始数据传输操作。
CPU170的接口被用于访问本地CSR,并将命令发出给LFI132。在使用Tensilica CPU的一些实施例中,接口是Tensilica指令扩展(TIE)查找接口。全局停止信号(例如在发生功率故障或者其他例外状况时从主机103发送的信号)可以被用于触发在CPU170核心中的不可屏蔽中断(NMI)。
参考图6,示出的图例示图2的低级非易失性存储器接口(LFI)132的示例实施方式。LFI132提供非易失性存储器接口的低级控制。LFI132包括可编程序列引擎,设计为对于任何非易失性存储器接口协议是可配置的。使用的序列由CU130配置,进而,用由CU130给定的命令来执行。还存在可以由CU130编程并由序列访问的序列数据区,通过该方式,可以设置通用序列,可以给出与序列关联的数据,而不用修改序列其本身。
在一些实施例中,对于两个以上物理接口,而非仅单个的物理接口提供支持。例如,在2个物理接口(例如A和B)的情况下,LFI132可以包括块(或者电路)190、块(或者电路)192a、块(或者电路)192b、块(或者电路)194a、块(或者电路)194b、块(或者电路)196和块(或者电路)198。块190一般包括低级非易失性存储器接口 (LFI)定序器单元(LSU)。块192a和192b一般实现DQ捕获块。块194a和194b分别实现A和B非易失性存储器接口。块196实现芯片使能(CE)接口。块198实现用于在2个DQ捕获块192a与192b之间选择的复用电路。
LFI定序器单元(LSU)190执行序列并引导非易失性存储器命令的输出、写入数据传输和读出数据传输。序列RAM接口允许在序列开始之前设置LSU190的内部序列存储器,另外具有由CU130动态编程的序列。然后可以在LSU190的序列命令接口上发出序列命令。用于接口命令的接口选择(例如包括信号I/F A EN和I/F B EN)被编程,并将命令引导至适当的接口。在一些实施例和/或使用场景中,每个命令被引导至单个的接口。在其他实施例和/或使用场景中,至少一些命令(例如重置命令)被引导至多个接口。芯片使能(CE)接口(例如包括信号CEN OUTPUTS)允许CE输出的完全控制来选择附接至一个非易失性存储器接口的管芯(die)。在一些实施例中,支持具有达8个CE的配置。附接的管芯可以在任何非易失性存储器接口上。
DQ捕获块192a和192b提供使用DQS的高速数据捕获,还有用于异步模式的顺序延迟捕获。DQ镜像信号控制DQ输出和捕获的数据的镜像。镜像将位0与7、1与6、2与5,3与4互换。在一些设计中如此进行以简化板布局问题,并必须由控制器处理。在命令发出给LFI132之前,由CU130选择镜像模式。传出镜像在传出接口处执行,在DQ捕获mux(复用器)198中接着DQ捕获执行传入镜像。
LFI132一般包含可编程序列引擎、一组I/O引脚输出块和一组数据捕获块。序列引擎典型地由附接至I/O引脚的可以执行特定非易失性存储器设备的非易失性存储器协议的一组序列编程。该序列包括在序列存储器中的多个位置开始的一组指令。例如,对于LFI132被编程执行的每个操作,有相应的开始位置。在一些实施例中,序列存储器实现为512的32位位置。通过发出命令接口上的命令来启动序列的执行。命令一般包含序列RAM中要跳至的地址、以及可以由序 列中的一些指令使用的命令数据的字节,尽管一些序列不使用命令数据。
还提供了使用索引寄存器间接寻址的序列数据RAM。使用MODE指令来设定索引,典型被设定为由命令数据给定的值。通过该方式,与命令序列关联的任何数据可以设定在序列数据RAM中,而序列其本身不需要被修改。示例是具有5个字节的地址的读出命令。地址字节会置于序列数据RAM中的连续位置,将用序列RAM中的读出命令序列的地址、以及序列数据RAM中地址的第一字节的地址发出命令。序列会设定索引寄存器,进而执行要求的序列来发出地址,并对于地址的每个字节重复地址序列。指令使索引寄存器递增(在存储器终止后绕回(wrap)),尽管对于WIG指令(被用于摆动(wiggle)连接至非易失性存储器设备的I/O引脚),递增是可选的。
执行序列直至其遇到导致停止(halt)的指令。该停止终止序列执行,且LFI进入LFI等待下一命令到达的状态,并不进一步执行动作。对非易失性存储器设备的动作的执行可以包括多个序列调用。例如,可以调用序列来选择设备,然后分离的序列调用可以发出读出,最终序列可以取消选择设备。
参考图7,示出的图例示了图6的低级非易失性存储器接口(LFI)微定序器单元(LSU)190的示例实施方式。在一些实施例中,LSU190可以包括块(或者电路)200、块(或者电路)202、块(或者电路)204、块(或者电路)206、块(或者电路)208、块(或者电路)210、块(或者电路)212、块(或者电路)214、块(或者电路)216和块(或者电路)218。块200一般包括序列执行单元(SEU)。块202一般实现用于存储序列数据(例如序列数据RAM)的随机存取存储器(RAM)。在一个示例中,序列数据RAM202可以实现为双端口存储器。块204实现索引寄存器。块206实现多个输出寄存器。块208实现零开销循环(ZOL)寄存器。块210一般配置为执行下一个程序计数器(PC)计算。块212实现程序计数器(PC)寄存器。块214一般实现用于存储序列的随机存取存储器(RAM)(例如序列RAM)。 在一个示例中,序列RAM214可以实现为双端口存储器。块216实现预取寄存器。块218实现命令寄存器。
在可以执行任何命令之前,序列RAM214需要被初始化。序列RAM214的初始化典型地会在启动执行初始非易失性存储器读出时发生一次,进而,当从非易失性存储器设备加载主要执行代码时发送第二次。在一些实施例中,序列RAM214可以实现为32位宽(加ECC位)和512字深,具有双端口以当执行序列时,允许从CU130访问。在一些实施例中,序列地址是9位。然而,可以实现其他存储器规范,从而满足特定实施方式的设计标准。
序列数据RAM202允许CU130设定可以使用索引寄存器204由命令访问的各种命令值。各种命令值的设定可以用于作为设置命令/地址序列的此类操作。在一些实施例中,序列数据RAM202被寻址为来自CU130的32位字,但是由索引寄存器204设为单个的字节。在一些实施例中,序列数据RAM202实现为64字节(16字)。然而,可以实现其他存储器规范,从而满足特定实施方式的设计标准。因为数据是从序列数据RAM202预取的,所以整个序列数据RAM202应该在使用之前被初始化,以防止潜在的虚假ECC错误。
PC寄存器212含有当前序列指针。当前序列指针通常经过递增器210来抓取下一序列指令。ZOL寄存器208支持单级的零开销循环。输出寄存器206连接至非易失性存储器接口并控制非易失性存储器接口的操作。
序列RAM214和序列数据RAM202两者都被ECC保护,并存在于CU130的存储器映射中。ECC错误会使CU130中断,然后CU130可以读出寄存器来确定错误是否可校正以及哪个RAM处于错误中。任何可校正的错误通常应该导致存储器的读出清除。如果不可校正的错误在序列RAM读出期间发生,那么序列也将即时停止。
可以由CU130断言外部信号(例如HALT(停止)),以在任何时间停止序列执行单元200的操作。一般而言,停止序列执行单元200的执行会在当前位置即时终止当前序列。为了开始新的序列,需要发 出新的命令。序列执行单元200的内部状态对CU130可用。
参考图8,示出的图例示了DQ捕获块220的示例实施方式。DQ捕获块220可以被用于实现图6的DQ捕获块109a和192b。在一些实施例中,DQ捕获块220包括时钟传输块222、多个DQ近垫逻辑块224、DLL块226、以及多个匹配单元228。近垫逻辑(near pad logic,NPL)包括硅宏块,位置接近垫。NPL块允许对接口逻辑的定时的紧密控制。每个NPL块可以被置于距关联的垫固定的距离。DQS输入经由DLL块226的从模块传递。DLL块226的从模块对DQS信号插入四分之一DOS周期延迟。对每个DQ NPL块224的DOS路径延迟应该匹配对相同的NPL块的DQ延迟。DQ NPL块224在接下来的DQS沿捕获4个DQ值。4个DQ值被馈送至时钟传输块222,其中值被传送至非易失性存储器接口的时钟域。
参考图9,示出的图例示了图8的DQ捕获近垫逻辑(DQ NPL)块224的示例实施方式。在一些实施例中,DQ NPL块224包括捕获相位触发器和多个DQ捕获触发器(例如DQ0P、DQ0N、DQ1P、DQ1N)。在开始读出传输之前,信号(例如DQS EN)为LOW,这关断了任何DQS杂讯(glitch),并将捕获相位触发器保持在相位0。第一上升DQS沿将在DQ0P触发器中被捕获,第一下降沿将在DQ0N触发器中被捕获。第一下降沿还切换捕获相位和在DQ1P和DQ1N触发器中分别捕获的接下来2个DOS沿。当数据传输时,周期每4个DQS沿重复。
参考图10,示出的图例示了图8的DLL块226的示例实施方式。在一些实施例中,DLL块226包括延迟锁定环路(DLL)230和控制有限状态机(FSM)232。DLL230包括主部分和从部分。DLL230的主部分锁定至提供的参考时钟。DLL230的从部分由主参考时钟的可编程部分延迟给定的信号(例如DQS)。在一些实施例中,传入DQS信号需要被延迟四分之一DQS周期,以捕获沿对齐的DQ数据。DLL块226锁定至提供的参考周期。提供的参考周期可以是控制器101的时钟(例如CLK)或者控制器时钟的分割的版本(例如由参考时钟分 割器234产生)。典型地,参考时钟将被设定为与传出DQS相同的频率,或者2x频率。插入的延迟应该典型地被编程为约四分之一DQS频率。经由DLL230的从部分的延迟(Delay)可以根据下面的等式2计算:
Delay=Tf+Tref*((ADO+ADJoff)/MADJ)等式2
其中Tf是固定的偏移延迟,Tref是参考时钟周期,ADJ是编程的调节偏移,ADJoff是固定的代码偏移(例如34),MADJ是主调节偏移,通常设定为160(但是可以改变为76……255范围内的值)。一般而言,固定的偏移延迟Tf被用于DQ行上的匹配单元228匹配,因此可以忽略。因此,消除Tf(例如通过使用匹配单元)并求出ADJ,获得下面的等式3:
ADJ=MADJ*(Delay/Tref-ADJoff)等式3
在具有400MT/s操作条件的示例情况下,DQS频率为200MHz,控制器时钟为400MHz。在一些实施例中,400MHz时钟可以直接馈送至DLL,信号DQS可以被延迟参考时钟的半个周期(等同于DQS周期的四分之一)。在替代的实施例中,控制器时钟可以被分割为200MHz,信号DQS被延迟参考时钟周期的四分之一。
还可以以软件实现训练方案。在具有该训练方案的实施例,在已知的模式从非易失性存储器设备读出时,ADJ值从低设定扫至高设定。最终ADJ会被设定为中值,结果导致读出正确数据。参考时钟分割器或者MADJ中的任何改变或者断电会需要DLL被重置为最小lus。控制FSM232将在编程数量的时钟周期(例如,对于400MHz的lus周期默认为400)将DLL230保持为重置。在DLL230被允许运行后,断言锁定的状态500个参考时钟(refclk),在读出操作启动之前,该状态可以由固件检查。
用于DLL块226的控制寄存器可以通过CSR环(例如来自BEPU)或者本地从CU130访问并设定。本地访问用于训练类型功能(如果需要)或者精细断电控制。典型而言,DLL值由配置记录设定,并不需要在正常操作中调节。为了节省功率,可以设定与DLL控制 FSM232关联的断电请求寄存器。DLL230仅使用作读出操作,用于使用DQS输入的非易失性存储器读出模式(例如ONFI2/3的DDR模式和切换模式)。从断电退出之后,激活重置和锁定序列,因此动态断电的可能影响读出性能。在芯片重置时DLL230一般为断电模式。
参考图11,示出的图例示了输出接口近垫逻辑(NPL)块250的示例实施方式。每个传出信号通过输出接口NPL块250。NPL块250允许传出信号被重定时到时钟(例如CLK),并具有可选的增加至传出信号的上升和/或下降沿的半个周期延迟。用于每个传出信号的延迟是CSR可配置的。每个NPL块250应该位于关联的垫附近,跨来自每个控制器101实例的所有输出,从NPL块250到垫具有匹配的延迟。在一些实施例中,NPL250包括触发器260、触发器262、组合(或者合并)逻辑264、以及复用器266。在一些实施例中,触发器260和262实现为D型触发器。在一些实施例中,组合逻辑264可以包括AND(与)、OR(或)和/或NOT(非)门。在NPL250内,到复用器266的每个可能的路径应该尽可能密切匹配。
参考图12,示出的图例示了依据本发明的实施例的包括多个通道的非易失性存储器控制系统。在一些实施例中,非易失性存储器系统300可以包括主机202、非易失性存储器控制器子系统304和多个非易失性存储器介质306a-306n。主机302可以通过命令接口与非易失性存储器控制器子系统304通信,该命令接口配置为在主机302和非易失性存储器控制器子系统304之间传输命令和响应。每个非易失性存储器介质306a-306n可以连接至非易失性存储器控制器子系统304的相应通道。
在一些实施例中,非易失性存储器控制器子系统304可以包括块310、块312、块314和多个块316a-316n。块310可以包括后端处理单元(BEPU)和/或非易失性存储器控制器子系统304的其他处理器。块312可以包括直接存储器访问(DMA)引擎或者非易失性存储器控制器子系统304的引擎。块314可以实现非易失性存储器控制器子系统304的复用子系统。块314可以配置为将块316a-316n耦接至块310 和312。块316a-316n可以包括实现为类似于上述控制器101的接口管理处理器。块316a-316n可以通过CSR环和相应命令接口耦合至块314。块316a-316n还可以具有配置为将每个块316a-316n耦接至非易失性存储器介质306a-306n中的相应一个的非易失性存储器接口。
本文中使用的术语"可以"和"一般"与动词结合时传达的意图是说明是示例性的,并且认为其足够广,以涵盖本公开呈现的具体示例、以及可以基于本公开导出的替代示例。本文使用的术语"可以"和"一般"不应解释为一定隐含省略对应要素的愿望或者可能性。
由图1-12的图示出的功能可以使用一个或多个根据说明书的教导编程的常规通用处理器、数字计算机、微处理器、微控制器、RISC(精简指令集计算机)处理器、CISC(复杂指令集计算机)处理器、SIMD(单指令多数据)处理器、信号处理器、中央处理单元(CPU)、算术逻辑单元(ALU)、视频数字信号处理器(VDSP)和/或类似的计算机器实现(例如模拟),如相关领域的技术人员可以想到的那样。适当的软件、固件、编码、例程、指令、操作码、微码和/或程序模块可以容易由熟练的程序员基于本公开的教导准备,如相关领域的技术人员可以想到的那样。软件一般通过机器实施方式的一个或多个处理器从介质或者若干介质执行。
本发明的实施例还可以由准备ASIC(特定应用集成电路)、平台ASIC、FPGA(现场可编程门阵列)、PLD(可编程逻辑设备)、CPLD(复杂可编程逻辑设备)、门海、RFIC(无线电频率集成电路)、ASSP(特定应用标准产品)、一个或多个单片集成电路、布置为倒装芯片模块和/或多芯片模块的一个或多个芯片或者管芯、或者通过互连常规组件电路的适当网络来实现,如本文说明的那样,其修改对本领域的技术人员而言容易想到。
因此,本发明的实施例还可以包含计算机产品,其可以是存储介质或者媒体和/或包含可以被用于程序机器执行依据本发明的一个或多个处理或者方法的指令的传输介质或者媒体。通过机器执行含在计算机产品内的指令,连同周围电路的操作可以将输入数据转换为存储 介质上的一个或多个文件和/或代表物理对象或者物质的一个或多个输出信号,诸如音频和/或视觉描述。存储介质可以包含但是不限于任何类型的盘,包含软盘、硬盘驱动器、磁盘、光盘、CDROM、DVD和磁光盘和电路,诸如ROM(只读存储器)、RAM(随机存取存储器)、EPROM(可擦除可编程ROM)、EEPROM(电可擦除可编程ROM)、UVPROM(紫外线可擦除可编程ROM)、闪存存储器、磁卡、光学卡和/或适于存储电子指令的任何类型的介质。
本发明的要素可以形成一个或多个设备、单元、组件、系统、机器和/或装置的部分或者整体。设备可以包含但是不限于服务器、工作站、存储阵列控制器、存储系统、个人计算机、膝上型计算机、笔记本计算机、掌上计算机、个人数字助理、便携电子设备、电池供电的设备、机顶盒、编码器、解码器、转码器、压缩器、解压缩器、预处理器、后处理器、发射器、接收器、收发器、密码电路、蜂窝电话、数码照相机、定位和/或导航系统、医疗装置、头戴式显示器、无线设备、音频记录、音频存储和/或音频回放设备、视频记录、视频存储和/或视频回放设备、游戏平台、外围设备和/或多芯片模块。相关领域的技术人员应该理解本发明的要素可以以其他类型的设备实现,以满足特定应用的标准。
尽管参考其实施例已具体示出并说明了本发明的例示,本领域的技术人员可以理解,可以对形式和细节做出各种改变,而不脱离本发明的范围。
Claims (12)
1.一种系统,包括:
控制处理器,配置为通过命令接口接收命令和发送响应;
非易失性存储器设备接口,配置为将所述系统耦接至一个或多个非易失性存储器设备;以及
微定序器,耦接至(i)所述控制处理器和(ii)所述非易失性存储器设备接口,所述微定序器包括可由所述微定序器读出并可由所述控制处理器写入的控制存储设备,其中,响应于接收所述命令中的特定命令,
所述控制处理器能够使所述微定序器根据所述特定命令在所述控制存储设备中的位置开始执行,并且
所述微定序器能够根据耦接至所述非易失性存储器设备接口的所述一个或多个非易失性存储器设备的协议,执行所述特定命令的至少一部分。
2.如权利要求1所述的系统,其中,所述非易失性存储器设备接口包括多个数据I/O引脚和多个控制I/O引脚。
3.如权利要求2所述的系统,其中,所述微定序器能够改变所述控制I/O引脚和所述数据I/O引脚的状态,以根据所述协议执行所述特定命令。
4.如权利要求1所述的系统,其中,所述控制存储设备被所述控制处理器编程为执行与附接到所述非易失性存储器设备接口的所述一个或多个非易失性存储器设备关联的一个或多个协议。
5.如权利要求4所述的系统,其中所述控制处理器进一步配置为:
初始使能所述控制处理器将所述控制存储设备编程为执行与多个类型的非易失性存储器设备兼容的低速协议;以及
随后使能所述控制处理器将所述控制存储设备编程为执行与所述一个或多个非易失性存储器设备兼容的更高速协议。
6.如权利要求1所述的系统,还包括:
输出数据接口,通过所述微定序器耦接至所述非易失性存储器设备接口,所述输出数据接口包括输出数据缓冲,所述输出数据缓冲能够接收要发送至所述非易失性存储器设备接口的数据;以及
输入数据接口,通过所述微定序器耦接至所述非易失性存储器设备接口,所述输入数据接口包括输入数据缓冲,所述输入数据缓冲能够接收从所述非易失性存储器设备接口接收的数据。
7.如权利要求6所述的系统,其中,所述微定序器进一步能够(i)检测所述输入数据缓冲的满状态,以及(ii)响应于检测所述满状态,跳至所述控制存储设备中的确定的位置。
8.如权利要求1所述的系统,其中,所述系统是固态驱动器SSD设备的一部分。
9.如权利要求1所述的系统,其中,所述系统实现为一个或多个集成电路。
10.一种控制非易失性存储器通道的方法,包括如下步骤:
通过耦接至控制处理器的命令接口,接收命令和发送响应;以及
使用耦接至所述控制处理器的微定序器,开始执行在控制存储设备中的位置处的指令,其中,所述位置由所述控制处理器根据接收的所述命令中的特定命令确定,其中,所述微定序器根据通过非易失性存储器设备接口耦接至所述微定序器的一个或多个非易失性存储器设备的协议,执行所述特定命令的至少一部分。
11.如权利要求10所述的方法,还包括:
使用所述控制处理器将所述控制存储设备编程为执行与附接到所述非易失性存储器设备接口的所述一个或多个非易失性存储器设备关联的一个或多个协议。
12.如权利要求11所述的方法,还包括:
初始使能所述控制处理器将所述控制存储设备编程为执行与多个类型的非易失性存储器设备兼容的低速协议;以及
随后使能所述控制处理器将所述控制存储设备编程为执行与所述一个或多个非易失性存储器设备兼容的更高速协议。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910482476.6A CN110134442A (zh) | 2013-02-15 | 2014-01-21 | 控制非易失性存储器通道的系统及方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/768,215 | 2013-02-15 | ||
US13/768,215 US9081666B2 (en) | 2013-02-15 | 2013-02-15 | Non-volatile memory channel control using a general purpose programmable processor in combination with a low level programmable sequencer |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910482476.6A Division CN110134442A (zh) | 2013-02-15 | 2014-01-21 | 控制非易失性存储器通道的系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103995686A true CN103995686A (zh) | 2014-08-20 |
CN103995686B CN103995686B (zh) | 2019-06-28 |
Family
ID=50097556
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410027208.2A Active CN103995686B (zh) | 2013-02-15 | 2014-01-21 | 控制非易失性存储器通道的系统及方法 |
CN201910482476.6A Pending CN110134442A (zh) | 2013-02-15 | 2014-01-21 | 控制非易失性存储器通道的系统及方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910482476.6A Pending CN110134442A (zh) | 2013-02-15 | 2014-01-21 | 控制非易失性存储器通道的系统及方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US9081666B2 (zh) |
EP (1) | EP2767899A3 (zh) |
JP (1) | JP6577166B2 (zh) |
KR (1) | KR102170644B1 (zh) |
CN (2) | CN103995686B (zh) |
TW (1) | TWI633433B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106796544A (zh) * | 2014-10-03 | 2017-05-31 | 新加坡科技研究局 | 主动存储单元和阵列 |
CN108139993A (zh) * | 2016-08-29 | 2018-06-08 | 华为技术有限公司 | 内存装置、内存控制器、数据缓存装置及计算机系统 |
CN112086119A (zh) * | 2019-06-13 | 2020-12-15 | 迈来芯科技有限公司 | 存储器设备 |
CN112486516A (zh) * | 2020-06-03 | 2021-03-12 | 英韧科技(上海)有限公司 | 由nand闪存控制器实现的电镜像 |
CN112925728A (zh) * | 2019-05-05 | 2021-06-08 | 长江存储科技有限责任公司 | 具有序列处理单元的存储器控制系统 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102081588B1 (ko) * | 2013-08-08 | 2020-02-26 | 삼성전자 주식회사 | Ecc 디코더의 동작 방법 및 그것을 포함하는 메모리 컨트롤러 |
US20160179388A1 (en) * | 2014-12-18 | 2016-06-23 | CNEXLABS, Inc. | Method and apparatus for providing programmable nvm interface using sequencers |
US20170046102A1 (en) * | 2015-08-14 | 2017-02-16 | Marvell World Trade Ltd. | Flexible interface for nand flash memory |
US10175902B2 (en) * | 2016-06-27 | 2019-01-08 | Micron Technology, Inc.. | Managing host communication with a regulator in a low power mode |
SG11201900499SA (en) * | 2016-07-29 | 2019-02-27 | Razer Asia Pacific Pte Ltd | Interface devices, methods for controlling an interface device, and computer-readable media |
US10261876B2 (en) | 2016-11-08 | 2019-04-16 | Micron Technology, Inc. | Memory management |
US10430085B2 (en) * | 2016-11-08 | 2019-10-01 | Micron Technology, Inc. | Memory operations on data |
US10628049B2 (en) | 2017-07-12 | 2020-04-21 | Sandisk Technologies Llc | Systems and methods for on-die control of memory command, timing, and/or control signals |
JP2020046918A (ja) | 2018-09-19 | 2020-03-26 | キオクシア株式会社 | 記憶装置及び制御方法 |
US11200000B2 (en) | 2019-07-17 | 2021-12-14 | Samsung Electronics Co., Ltd. | Memory controller and storage device including the same |
DE102020207616A1 (de) * | 2020-06-19 | 2021-12-23 | Robert Bosch Gesellschaft mit beschränkter Haftung | Verfahren zum Betreiben einer Recheneinheit |
US11755208B2 (en) | 2021-10-12 | 2023-09-12 | Western Digital Technologies, Inc. | Hybrid memory management of non-volatile memory (NVM) devices for use with recurrent neural networks |
US11893244B2 (en) * | 2021-10-12 | 2024-02-06 | Western Digital Technologies, Inc. | Hybrid memory management of non-volatile memory (NVM) devices for use with recurrent neural networks |
WO2023091377A1 (en) * | 2021-11-22 | 2023-05-25 | Rambus Inc. | Logging burst error information of a dynamic random access memory (dram) using a buffer structure and signaling |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6336174B1 (en) * | 1999-08-09 | 2002-01-01 | Maxtor Corporation | Hardware assisted memory backup system and method |
US20060133160A1 (en) * | 2004-12-07 | 2006-06-22 | Hewlett-Packard Development Company, L.P. | Bufferless writing of data to memory |
TW200743957A (en) * | 2006-05-16 | 2007-12-01 | Ite Tech Inc | Control device and control method for memory |
CN101361038A (zh) * | 2005-11-28 | 2009-02-04 | 爱特梅尔公司 | 用于基于微控制器的闪存数字控制器系统的命令解码器 |
CN102103566A (zh) * | 2009-12-18 | 2011-06-22 | Nxp股份有限公司 | 闪存存储器接口 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1994009436A1 (en) | 1992-10-13 | 1994-04-28 | Compaq Computer Corporation | Disk array controller having advanced internal bus protocol |
US5448709A (en) | 1992-10-13 | 1995-09-05 | Compaq Computer Corporation | Disk array controller having command descriptor blocks utilized by bus master and bus slave for respectively performing data transfer operations |
US5918242A (en) * | 1994-03-14 | 1999-06-29 | International Business Machines Corporation | General-purpose customizable memory controller |
US5721860A (en) * | 1994-05-24 | 1998-02-24 | Intel Corporation | Memory controller for independently supporting synchronous and asynchronous DRAM memories |
US6505282B1 (en) * | 1994-11-30 | 2003-01-07 | Intel Corporation | Method and apparatus for determining memory types of a multi-type memory subsystem where memory of the different types are accessed using column control signals with different timing characteristics |
US5719880A (en) * | 1996-09-20 | 1998-02-17 | Texas Instruments Incorporated, A Delaware Corporation | On-chip operation for memories |
US6668308B2 (en) * | 2000-06-10 | 2003-12-23 | Hewlett-Packard Development Company, L.P. | Scalable architecture based on single-chip multiprocessing |
JP2002007200A (ja) * | 2000-06-16 | 2002-01-11 | Nec Corp | メモリ制御装置及び動作切替方法並びにインターフェース装置、半導体集積チップ、記録媒体 |
DE10031223A1 (de) * | 2000-06-27 | 2002-01-10 | Philips Corp Intellectual Pty | Mikrocontroller |
JP4722305B2 (ja) * | 2001-02-27 | 2011-07-13 | 富士通セミコンダクター株式会社 | メモリシステム |
JP2003131940A (ja) * | 2001-10-25 | 2003-05-09 | Hitachi Ltd | メモリコントローラ装置 |
JP3756818B2 (ja) * | 2002-01-09 | 2006-03-15 | 株式会社メガチップス | メモリ制御回路および制御システム |
US20040054864A1 (en) * | 2002-09-13 | 2004-03-18 | Jameson Neil Andrew | Memory controller |
US7277995B2 (en) * | 2003-10-29 | 2007-10-02 | Dot Hill Systems Corporation | Storage controller and method for performing host access control in the host interface adapter |
JP4357331B2 (ja) * | 2004-03-24 | 2009-11-04 | 東芝メモリシステムズ株式会社 | マイクロプロセッサブートアップ制御装置、及び情報処理システム |
US7308526B2 (en) * | 2004-06-02 | 2007-12-11 | Intel Corporation | Memory controller module having independent memory controllers for different memory types |
US7680967B2 (en) | 2005-01-27 | 2010-03-16 | Innovasic, Inc. | Configurable application specific standard product with configurable I/O |
US7406550B2 (en) * | 2005-01-27 | 2008-07-29 | Innovasic, Inc | Deterministic microcontroller with configurable input/output interface |
US7526579B2 (en) | 2005-01-27 | 2009-04-28 | Innovasic, Inc. | Configurable input/output interface for an application specific product |
US7673190B1 (en) * | 2005-09-14 | 2010-03-02 | Unisys Corporation | System and method for detecting and recovering from errors in an instruction stream of an electronic data processing system |
US8291295B2 (en) | 2005-09-26 | 2012-10-16 | Sandisk Il Ltd. | NAND flash memory controller exporting a NAND interface |
US8762620B2 (en) | 2007-12-27 | 2014-06-24 | Sandisk Enterprise Ip Llc | Multiprocessor storage controller |
US7808807B2 (en) | 2008-02-26 | 2010-10-05 | Ovonyx, Inc. | Method and apparatus for accessing a multi-mode programmable resistance memory |
CN102047229A (zh) * | 2008-05-29 | 2011-05-04 | 先进微装置公司 | 用于存储装置训练的嵌入式可编程元件 |
US8321647B2 (en) * | 2009-05-06 | 2012-11-27 | Apple Inc. | Multipage preparation commands for non-volatile memory systems |
US8180981B2 (en) | 2009-05-15 | 2012-05-15 | Oracle America, Inc. | Cache coherent support for flash in a memory hierarchy |
WO2011106049A1 (en) * | 2010-02-23 | 2011-09-01 | Rambus Inc. | Time multiplexing at different rates to access different memory types |
US9529712B2 (en) * | 2011-07-26 | 2016-12-27 | Nvidia Corporation | Techniques for balancing accesses to memory having different memory types |
US9348774B2 (en) * | 2013-01-25 | 2016-05-24 | Seagate Technology Llc | Controller-opaque communication with non-volatile memory devices |
-
2013
- 2013-02-15 US US13/768,215 patent/US9081666B2/en not_active Expired - Fee Related
-
2014
- 2014-01-21 CN CN201410027208.2A patent/CN103995686B/zh active Active
- 2014-01-21 CN CN201910482476.6A patent/CN110134442A/zh active Pending
- 2014-01-29 KR KR1020140011498A patent/KR102170644B1/ko active IP Right Grant
- 2014-02-06 EP EP14154095.5A patent/EP2767899A3/en not_active Withdrawn
- 2014-02-07 TW TW103104182A patent/TWI633433B/zh not_active IP Right Cessation
- 2014-02-12 JP JP2014023971A patent/JP6577166B2/ja not_active Expired - Fee Related
-
2015
- 2015-06-03 US US14/729,659 patent/US9262084B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6336174B1 (en) * | 1999-08-09 | 2002-01-01 | Maxtor Corporation | Hardware assisted memory backup system and method |
US20060133160A1 (en) * | 2004-12-07 | 2006-06-22 | Hewlett-Packard Development Company, L.P. | Bufferless writing of data to memory |
CN101361038A (zh) * | 2005-11-28 | 2009-02-04 | 爱特梅尔公司 | 用于基于微控制器的闪存数字控制器系统的命令解码器 |
TW200743957A (en) * | 2006-05-16 | 2007-12-01 | Ite Tech Inc | Control device and control method for memory |
CN102103566A (zh) * | 2009-12-18 | 2011-06-22 | Nxp股份有限公司 | 闪存存储器接口 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106796544A (zh) * | 2014-10-03 | 2017-05-31 | 新加坡科技研究局 | 主动存储单元和阵列 |
CN108139993A (zh) * | 2016-08-29 | 2018-06-08 | 华为技术有限公司 | 内存装置、内存控制器、数据缓存装置及计算机系统 |
CN108139993B (zh) * | 2016-08-29 | 2020-06-16 | 华为技术有限公司 | 内存装置、内存控制器、数据缓存装置及计算机系统 |
CN112925728A (zh) * | 2019-05-05 | 2021-06-08 | 长江存储科技有限责任公司 | 具有序列处理单元的存储器控制系统 |
CN112086119A (zh) * | 2019-06-13 | 2020-12-15 | 迈来芯科技有限公司 | 存储器设备 |
CN112486516A (zh) * | 2020-06-03 | 2021-03-12 | 英韧科技(上海)有限公司 | 由nand闪存控制器实现的电镜像 |
Also Published As
Publication number | Publication date |
---|---|
TWI633433B (zh) | 2018-08-21 |
TW201502775A (zh) | 2015-01-16 |
US9262084B2 (en) | 2016-02-16 |
US20140237162A1 (en) | 2014-08-21 |
CN103995686B (zh) | 2019-06-28 |
JP6577166B2 (ja) | 2019-09-18 |
US20150268870A1 (en) | 2015-09-24 |
KR102170644B1 (ko) | 2020-10-27 |
CN110134442A (zh) | 2019-08-16 |
JP2014157603A (ja) | 2014-08-28 |
EP2767899A3 (en) | 2016-08-17 |
KR20140103048A (ko) | 2014-08-25 |
US9081666B2 (en) | 2015-07-14 |
EP2767899A2 (en) | 2014-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103995686A (zh) | 使用与低级可编程定序器结合的通用可编程处理器的非易失性存储器通道控制 | |
JP5960517B2 (ja) | フラッシュメディアコントローラの内部のメタデータハンドリング | |
US8266369B2 (en) | Flash memory interface | |
US7822958B1 (en) | Booting mechanism for FPGA-based embedded system | |
US6157984A (en) | Integrated controller/processor for disc drive having direct memory access | |
CN103034454B (zh) | 柔性闪存命令 | |
EP2546755A2 (en) | Flash controller hardware architecture for flash devices | |
CN108121672A (zh) | 一种基于NandFlash存储器多通道的存储阵列控制方法与装置 | |
CN103117797B (zh) | 高速载荷数据模拟源 | |
US20090271536A1 (en) | Descriptor integrity checking in a dma controller | |
CN105117360A (zh) | 基于fpga的接口信号重映射方法 | |
KR100634436B1 (ko) | 멀티 칩 시스템 및 그것의 부트코드 페치 방법 | |
US11704023B2 (en) | Extensible storage system and method | |
CN104380266A (zh) | 具有复位条件跟踪能力的处理器装置 | |
CN104272271A (zh) | 具有指令跟踪能力的处理器装置 | |
EP4070204A1 (en) | Data transfers between a memory and a distributed compute array | |
CN104409099A (zh) | 基于FPGA的高速eMMC阵列控制器 | |
US20210240646A1 (en) | Master and slave processors to configure subsystems | |
Nath et al. | SD Card Interface Using FPGA for Multimedia Applications | |
US20210240485A1 (en) | Processors to configure subsystems while other processors are held in reset | |
CN109086003B (zh) | 降低集成电路功耗的方法及其介质接口控制器 | |
CN102169717A (zh) | 一种具有数据处理功能的存储器装置 | |
CN118210561A (zh) | 一种fpga快速加载方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |