CN113448498B - 非易失性存储器接口 - Google Patents
非易失性存储器接口 Download PDFInfo
- Publication number
- CN113448498B CN113448498B CN202010565278.9A CN202010565278A CN113448498B CN 113448498 B CN113448498 B CN 113448498B CN 202010565278 A CN202010565278 A CN 202010565278A CN 113448498 B CN113448498 B CN 113448498B
- Authority
- CN
- China
- Prior art keywords
- command
- memory
- circuit
- decoder
- sequence
- 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.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 357
- 238000012546 transfer Methods 0.000 claims abstract description 20
- 230000004044 response Effects 0.000 claims abstract description 18
- 238000000034 method Methods 0.000 claims description 18
- 238000004891 communication Methods 0.000 description 38
- 230000006870 function Effects 0.000 description 14
- 238000012545 processing Methods 0.000 description 13
- 238000013500 data storage Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 230000002093 peripheral effect Effects 0.000 description 8
- 239000000758 substrate Substances 0.000 description 8
- 239000007787 solid Substances 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 239000010410 layer Substances 0.000 description 5
- 230000000630 rising effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000005192 partition Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 239000000872 buffer Substances 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000000835 fiber Substances 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000013481 data capture Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000000704 physical effect Effects 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 229910001218 Gallium arsenide Inorganic materials 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000005693 optoelectronics Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000000206 photolithography Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000005086 pumping Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect 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/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
- 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
- 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
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/06—Clock generators producing several clock signals
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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
-
- 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/0611—Improving I/O performance in relation to response time
-
- 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/0658—Controller construction arrangements
-
- 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/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
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)
Abstract
本发明题为“非易失性存储器接口”。一种电路,该电路包括非易失性存储器阵列、输入/输出(IO)电路、解码器电路、控制电路和读/写电路。非易失性存储器阵列耦接到地址解码器,该地址解码器识别非易失性存储器阵列内用于存储命令的位置。IO电路通过控制总线耦接到解码器电路。解码器电路从由IO电路通过数据总线接收的固定长度命令序列解码命令地址和存储命令。解码器电路可包括用于解码和并行操作的串行输入并行输出(SIPO)电路。控制电路耦接到IO电路和解码器电路并生成控制信号以执行经解码的存储命令。读/写电路耦接到非易失性存储器阵列和控制电路。读/写电路响应于存储命令在非易失性存储器阵列和IO电路之间传输数据。
Description
背景技术
低延迟闪存存储器当前处理并存储在当今数字世界中生成的大量数据。在设计低延迟闪存存储器时,检查设计和功能的各方面以获得进一步减少延迟的机会,包括读取时间、高写入读取时间、命令和地址(CA)时间、命令和地址的解码时间等。
常规CA处理方法可以是与低延迟闪存存储器中的高速读取操作一起使用的瓶颈。命令数据和地址数据的传输时间太慢,并且使用常规解码器解码命令数据和地址数据花费太长时间。这部分地是由于实现了使用可变长度的命令序列的多个协议,诸如切换模式和开放式NAND闪存接口(ONFI)。解译具有可变字节数、具有可变长度的命令需要单独的控制线来发信号通知传输的命令部分何时开始和结束以及寻址部分何时开始和结束。此外,常规协议可使用两个或更多个时钟信号。例如,在某些协议中,一个时钟信号可用于传输数据,并且单独的、可能较慢的时钟信号可用于传输命令数据(命令指令本身)和地址数据。
CA传输时间应考虑解码器锁存CA数据所需的特定建立时间和保持时间。给定解码器的建立时间和保持时间约束以及最大操作速度,如果解码器无法处理CA指令,则提供更快的CA指令是无用的。常规设备使用单个数据速率(SDR)和单独的控制线(即写入使能或WEx控制线)作为CA的时钟来发送CA。WEx时钟周期可以是10ns,导致CA传输时间在70ns至100ns的范围内。传输时间的变化归因于可变长度CA命令序列。
需要一种解决方案来改善CA数据的CA数据传输时间和解码速度,从而为低延迟闪存存储器提供额外的延迟减少。
发明内容
本公开涉及一种电路,该电路包括非易失性存储器阵列、输入/输出(IO)电路、解码器电路、控制电路和读/写电路。非易失性存储器阵列耦接到地址解码器。地址解码器识别非易失性存储器阵列内用于存储命令的位置。IO电路耦接到数据总线。解码器电路耦接到控制总线和IO电路。解码器电路从由IO电路通过数据总线接收的固定长度命令序列解码命令地址和存储命令。控制电路耦接到IO电路和解码器电路。控制电路生成控制信号以执行由解码器电路解码的存储命令。读/写电路耦接到非易失性存储器阵列和控制电路。读/写电路响应于存储命令在非易失性存储器阵列和IO电路之间传输数据。
本公开还涉及包括多个存储器管芯和存储控制器的系统。存储器管芯中的每个存储器管芯耦接到包括数据总线和控制总线的存储器接口。存储控制器通过存储器接口耦接到存储器管芯。存储控制器包括接口管理器,该接口管理器使用存储器接口将数据和固定长度命令地址序列传输到存储器管芯。存储器管芯各自包括具有管芯接口管理器的管芯控制器,该管芯接口管理器通过存储器接口与存储控制器通信。存储控制器接口管理器和管芯接口管理器使用双倍数据速率协议通过数据总线传输固定长度命令地址序列。数据总线包括时钟信号,该时钟信号被配置为以每时钟周期2纳秒的速度操作。
最后,本公开涉及可由所公开的电路和系统实现的方法。首先,响应于命令控制信号而使用双倍数据速率协议通过数据总线从存储控制器接收固定长度命令序列。命令控制信号识别数据总线是否正携带存储命令或数据。然后固定长度命令序列被解码以确定由固定长度命令序列识别的存储命令。最后,执行所识别的存储命令。
附图说明
为了容易地识别对任何特定元件或动作的讨论,参考标号中一个或多个有效数位是指首次引入该元件的附图标号。
图1例示根据一个实施方案的系统100。
图2例示根据一个实施方案的存储器设备200。
图3例示根据一个实施方案的固定长度命令序列300。
图4为根据一个实施方案的示例存储器系统400的框图。
图5例示根据一个实施方案的解码器电路500。
图6例示根据一个实施方案的管芯控制器600。
图7例示根据一个实施方案的例程700。
图8为可以用于一个实施方案的计算设备800的示例框图。
具体实施方式
本公开涉及一种用于改善由于命令序列,特别是低延迟闪存存储器中的命令地址序列(CA)解码引起的延迟的解决方案。“命令序列”是指被配置为表示命令序列的接收者的命令或指令的数据字节集。在某些实施方案中,命令序列包括应用于在命令序列中传达的命令或指令的位置或命令地址。在此类实施方案中,命令序列可被称为命令地址序列。“命令地址序列”是指包括存储命令和用于存储命令的命令地址两者的命令序列。解决方案的实施方案包括用于将命令地址序列从控制器传输到接收器的固定长度命令序列。使用固定长度命令序列来代替使用可变长度/大小命令序列。
“存储命令”是指与存储操作相关的任何命令。存储命令的示例包括但不限于读取命令、写入命令、维护命令、配置命令、管理命令、诊断命令、测试模式命令、对策命令和存储控制器可从主机接收或向另一个部件、设备或系统发出的任何其他命令。“存储操作”是指在存储器单元上执行以便改变或获得由存储器单元的状态特征表示的数据的值的操作。存储操作的示例包括但不限于从存储器单元读取数据(或感测存储器单元的状态)、将数据写入(或将数据编程到)存储器单元和/或擦除存储在存储器单元中的数据。
“存储器”是指被配置、编程、设计、布置或工程化以保留数据的任何硬件、电路、部件、模块、逻辑部件、设备或装置。某些类型的存储器需要恒定电源的可用性以存储和保留数据。当电源不可用时,其他类型的存储器保留和/或存储数据。
“非易失性存储器阵列”是指被组织成具有行和列的阵列结构的一组非易失性存储单元(也称为存储器单元或非易失性存储器单元)。存储器阵列可使用行标识符和列标识符寻址。
“存储块”是指被组织成使得可并行地在存储单元组上执行存储操作的一组存储单元。该组存储单元的组织可以在物理级别或逻辑级别上实现。因此,在一个实施方案中,存储块可包括物理页面诸如字线、包括跨越平面的物理页面和/或存储器管芯的逻辑页面、包括一组物理页面的物理擦除块、包括一组逻辑页面的逻辑擦除块(LEB)等。存储块在本文中可被称为“块”、“存储块”或LEB。
“存储单元”是指存储介质的类型,该存储介质的类型被配置为在感测、读取或检测存储介质时通过存储介质的可确定特性来表示一个或多个二进制值以确定所存储的或由存储器单元的可确定特性表示的一个或多个二进制值。存储单元和存储器单元在本文中可互换使用。
用于将数据存储在存储器单元中的可确定特性的类型可根据所使用的存储器类型或存储技术而变化。例如,在每个存储器单元包括具有源极引线、漏极引线和栅极的晶体管的闪存存储器单元中,可确定的特性是当施加到栅极时使得存储器单元在漏极引线和源极引线之间传导电流的电压电平。在该示例中,该电压电平在本文中被称为阈值电压。阈值电压也可称为控制栅极参考电压(CGRV)、读取电压或参考电压。
可确定的物理特性的示例包括但不限于晶体管的阈值电压、存储器单元的电阻水平、通过存储器单元的电流水平、磁极取向、自旋转移扭矩等。
“阈值”是指这样的水平、点、量值、强度或值,即在该水平、点、量值、强度或值之上条件为真或将发生,并且在该水平、点、量值、强度或值之下条件不为真或不会发生。(在Merriam-Webster.com上搜索“阈值”。Merriam-Webster,2019,Web.2019年11月4日编辑)
“存储介质”是指被组织和配置为存储一个或多个数据位的任何物理介质。在一个实施方案中,存储介质是指易失性存储器介质中使用的物理存储单元和/或存储器单元。在另一个实施方案中,存储介质是指在非易失性存储器介质中使用的物理存储单元和/或存储器单元。
“易失性存储器介质”是指被配置为保持用于表示零或一的二进制值的可变物理特性的任何硬件、设备、部件、元件或电路,对于该二进制值,在移除主要电源时或除非使用主要电源刷新所表示的二进制值时,可变物理特性将恢复到不再表示二进制值的默认状态。易失性存储器介质的示例包括但不限于动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、双倍数据速率随机存取存储器(DDR RAM)或其他随机存取固态存储器。
虽然易失性存储器介质在本文中被称为“存储器介质”,但在各种实施方案中,易失性存储器介质可更一般地被称为易失性存储器。
在某些实施方案中,存储在易失性存储器介质中的数据可按字节级别寻址,这意味着易失性存储器介质中的数据被组织为数据的字节(8位),每个字节具有唯一的地址,诸如逻辑地址。
在某些实施方案中,可以采用固定长度命令序列,该固定长度命令序列包括地址字段、命令字段、一个或多个命令前缀字段和一个或多个命令后缀字段,它们一起适合在固定的总大小内。“命令地址”是指非易失性存储器阵列内与存储命令相关联的地址。如果存储命令是读取命令,则命令地址是要从其读取数据的字节、逻辑页面、物理页面、数据块和/或存储块的地址。如果存储命令是写入/编程命令,则命令地址是字节、逻辑页面、物理页面、数据块和/或存储块的地址或其中的偏移量,用于写入/编程命令的数据将以该偏移量写入/存储。如果存储命令是维护命令诸如擦除命令,则命令地址是要擦除的物理擦除块、逻辑擦除块和/或存储块的地址。
“解码器”是指被配置为解译通信线路(诸如数据线和/或控制线)上的信号的任何硬件、设备、部件、元件或电路。在某些实施方案中,解码器被配置为将信号解译为被配置为表示命令诸如存储命令的数据值。另选地或除此之外,解码器可被配置为将信号解译为被配置为表示位置或地址诸如命令地址的数据值。另选地或除此之外,解码器可被配置为将信号解译为被配置为表示存储在存储介质(诸如非易失性存储介质)上或从存储介质检索的数据的数据值。“硬件”是指具体体现为模拟和/或数字电路的逻辑。
“非易失性存储介质”是指被配置为在主电源被移除之后保持用于表示零或一的二进制值的可变物理特性的任何硬件、设备、部件、元件或电路。非易失性存储介质在本文中可与术语非易失性存储器介质互换使用。
可使用双倍数据速率(DDR)协议将固定长度命令序列发送到经寻址的存储器管芯。“存储器管芯”是指在其上制造给定功能电路的小块半导体材料。通常,通过诸如光刻法的工艺在电子级硅(EGS)或其他半导体(诸如GaAs)的单个晶片上大批量生产集成电路。将晶片切割(切片)成许多片,每片包含电路的一个副本。这些片中的每个片被称为管芯。(2019年10月9日在Wikipedia.com上搜索管芯(集成电路),2019年11月18日访问)在一个实施方案中,存储器管芯是包括用于作为非易失性存储器介质和/或非易失性存储器阵列操作的功能电路的管芯。
“非易失性存储器介质”是指被配置为在主电源被移除之后保持用于表示零或一的二进制值的可变物理特性的任何硬件、设备、部件、元件或电路。
“双倍数据速率协议”是指被配置为在时钟信号或选通信号的上升沿和下降沿两者上将数据从发送器传输至接收器的通信总线协议。双倍数据速率协议可缩写为“DDRx”,其中x表示协议的生成(例如,DDR2是第2代双倍数据速率协议)。双倍数据速率协议也可被称为“双倍泵送”、“双泵送”、“双转换”协议。双倍数据速率协议也可被称为切换模式,尤其是当与存储器接口一起使用时。
双倍数据速率协议被配置为并且能够传输两倍于单倍数据速率协议(缩写为“SDR”)的数据,该单倍数据速率协议被配置为在时钟信号的上升沿或下降沿上传输数据。
固定长度命令序列大小可固定为10字节。可使用每周期2ns的时钟速度,使得每个CA命令序列花费20ns发送到接收设备。一些实施方案可使用非读取命令解码器和读取命令解码器两者,其各自被配置为生成操作存储器管芯非易失性存储器阵列的内部控制信号。
可实现串行输入并行输出(SIPO)电路以实现对固定长度命令序列的并行处理并对其进行并行操作。SIPO电路具有16位输入和80位输出。SIPO电路用于管理使用双倍数据速率协议传输固定长度命令序列与由非读取命令解码器和读取命令解码器使用的操作速度之间的速度差异。这样,由于SIPO电路是16位输入和80位输出,所以10字节固定长度命令序列(每字节8位,因此共80位)可以从串行总线移动到80位并行总线,使得固定长度命令序列的所有80位可以被并行处理以改善CA解码延迟。下文详细描述了可用于实现该解决方案的电路、系统和方法。
图1为例示根据本发明所公开的解决方案的用于改善固态存储设备性能的系统100的一个实施方案的示意性框图。系统100包括下文所述的存储器设备200、主机设备106、至少一个主机设备112和计算机网络114。
在一个实施方案中,主机设备是计算设备(例如,膝上型电脑、台式计算机、智能电话、平板电脑、数字相机),其包括一个或多个处理器、一个或多个处理器可读存储设备(RAM、ROM、闪存存储器、硬盘驱动器、固态存储器),所述一个或多个处理器可读存储设备存储用于对存储控制器102进行编程以执行本文所述的方法的处理器可读代码(例如,软件)。主机还可包括附加系统存储器、一个或多个输入/输出接口和/或与一个或多个处理器通信的一个或多个输入/输出设备、以及本领域中所熟知的其他部件。
系统100包括至少一个存储器设备200,该存储器设备包括存储控制器102和一个或多个存储器管芯104。“存储控制器”是指被配置为管理非易失性存储介质上的数据操作的任何硬件、设备、部件、元件或电路,并且可包括一个或多个处理器、可编程处理器(例如,FPGA)、ASIC、微控制器等。在一些实施方案中,存储控制器被配置为将数据存储在非易失性存储器介质上和/或从该非易失性存储器介质读取数据,以将数据传输到一个或多个非易失性存储器设备/从该一个或多个非易失性存储器设备传输数据等。
在一些实施方案中,系统100可包括两个或更多个存储器设备。每个存储器设备200可包括两个或更多个存储器管芯104,诸如闪存存储器、纳米随机存取存储器(“纳米RAM或NRAM”)、磁阻RAM(“MRAM”)、动态RAM(“DRAM”)、相变RAM(“PRAM”)等。在另外的实施方案中,数据存储器设备200可包括其他类型的非易失性和/或易失性数据存储装置,诸如动态RAM(“DRAM”)、静态RAM(“SRAM”)、磁性数据存储装置、光学数据存储装置和/或其他数据存储技术。
存储器设备200(在本文中也称为存储设备)可为如在此所描绘的主机设备106内的部件,并且可使用系统总线诸如外围部件快速互连(“PCI-e”)总线、串行高级技术附件(“串行ATA”)总线等来连接。在另一个实施方案中,存储器设备200在主机设备106的外部并且使用通用串行总线(“USB”)连接部、电气与电子工程师协会(“IEEE”)1394总线(“火线”)等被连接。在其他实施方案中,存储器设备200使用外围部件快速互连(“PCI”)总线连接到主机设备106,该外围部件快速互连总线使用外部电气或光学总线扩展或总线联网解决方案,诸如Infinband或PCI Express高级交换(“PCIe-AS”)等。
在各种实施方案中,存储器设备200可为双列直插存储器模块(“DIMM”)、子卡或微模块的形式。在另一个实施方案中,存储器设备200是机架式刀片服务器内的部件。在另一个实施方案中,存储器设备200被包含在直接集成到更高级组件(例如,母板、膝上型电脑、图形处理器)上的封装内。在另一个实施方案中,包括存储器设备200的各个部件直接集成到更高级组件上而无需中间封装。
在另一个实施方案中,数据存储器设备200可通过数据网络连接到主机设备106,而不是作为DAS直接连接到主机设备106。例如,数据存储器设备200可包括存储区域网络(“SAN”)存储设备、附网存储(“NAS”)设备、网络共享等。在一个实施方案中,系统100可包括数据网络,诸如互联网、广域网(“WAN”)、城域网(“MAN”)、局域网(“LAN”)、令牌环网、无线网络、光纤信道网络、SAN、NAS、ESCON等,或网络的任何组合。数据网络还可包括来自IEEE 802系列网络技术的网络,诸如以太网、令牌环网、Wi-Fi、Wi-Max等。数据网络可包括服务器、交换机、路由器、电缆、无线电设备和用于促进主机设备106与数据存储器设备200之间的联网的其他器材。
系统100包括连接到存储器设备200的至少一个主机设备106。可以使用多个主机设备,并且多个主机设备可以包括主机、服务器、存储区域网络(“SAN”)的存储控制器、工作站、个人计算机、膝上型计算机、手持计算机、超级计算机、计算机集群、网络交换机、路由器或装置、数据库或存储装置、数据采集或数据捕获系统、诊断系统、测试系统、机器人、便携式电子设备、无线设备等。“计算机”是指任何计算设备。计算机的示例包括但不限于个人计算机、膝上型计算机、平板电脑、台式计算机、服务器、大型主机、超级计算机、计算节点、虚拟计算机、手持设备、智能电话、蜂窝电话、片上系统、单芯片计算机等。在另一个实施方案中,主机设备106可以是客户端,并且存储器设备200自主操作以服务于从主机设备106发送的数据请求。在该实施方案中,主机设备106和存储器设备200可使用计算机网络、系统总线、直接附接存储(DAS)或适用于计算机和自主存储器设备200之间的连接的其他通信装置来连接。
所描绘的实施方案示出了与作为主机设备106的一部分的存储客户端110通信的用户应用程序108。“应用程序”是指在高于操作系统级别的设备上执行的任何软件。应用程序通常将由操作系统加载以用于执行,并且将对操作系统进行函数调用以获取较低级别的服务。应用程序通常具有用户界面,但并不总是这种情况。因此,术语“应用程序”包括以比操作系统高的级别执行的后台进程。
“操作系统”是指逻辑,通常为软件,其支持设备的基本功能,诸如调度任务、管理文件、执行应用程序以及与外围设备进行交互。在正常情况下,应用程序被称为在操作系统“之上”执行,这意味着操作系统是加载和执行应用程序所必需的,并且在大多数情况下,应用程序依赖于操作系统的模块,反之亦然。操作系统通常还介于应用程序和驱动器之间。驱动器被称为在操作系统“下方”执行,因为它们介于操作系统和硬件部件或外围设备之间。
在一个实施方案中,用户应用程序108是在存储客户端110上操作或与存储客户端110结合操作的软件应用程序。存储客户端110管理文件和数据,并利用存储控制器102和相关联的存储器管芯104的功能和特征。“文件”是指用于存储、检索和传达数据和/或指令的一体数据结构。通过使操作系统利用相关联的管理元数据来识别、表征和访问文件,将文件与其他类型的封装区分开。存储客户端的代表性示例包括但不限于服务器、文件系统、操作系统、数据库管理系统(“DBMS”)、卷管理器等。存储客户端110与存储器设备200内的存储控制器102通信。
在一个实施方案中,系统100包括通过一个或多个计算机网络连接到一个或多个主机设备106的一个或多个客户端。主机设备112可以是主机、服务器、SAN的存储控制器、工作站、个人计算机、膝上型计算机、手持计算机、超级计算机、计算机集群、网络交换机、路由器或装置、数据库或存储装置、数据采集或数据捕获系统、诊断系统、测试系统、机器人、便携式电子设备、无线设备等。计算机网络114可包括互联网、广域网(“WAN”)、城域网(“MAN”)、局域网(“LAN”)、令牌环网、无线网络、光纤通道网络、SAN、附网存储(“NAS”)、ESCON等,或网络的任何组合。计算机网络114还可包括来自IEEE 802系列网络技术的网络,诸如以太网、令牌环网、WiFi、WiMax等。
计算机网络114可包括服务器、交换机、路由器、电缆、无线电设备和用于促进主机设备106或多个主机设备以及主机设备112或客户端联网的其他器材。在一个实施方案中,系统100包括通过计算机网络114作为对等实体进行通信的多个主机设备。在另一个实施方案中,系统100包括通过计算机网络114作为对等实体进行通信的多个存储器设备200。本领域的技术人员将认识到,其他计算机网络包括一个或多个计算机网络以及在一个或多个客户端之间具有单个或冗余连接的相关设备,或者具有一个或多个存储器设备200或连接到一个或多个主机设备的一个或多个存储器设备200的其他计算机。在一个实施方案中,系统100包括通过计算机网络114连接到主机设备112的两个或更多个存储器设备200,而不具有主机设备106。
在一个实施方案中,存储客户端110通过包括输入/输出(I/O)接口的主机设备接口与存储控制器102通信。“接口”是指使得一个设备、部件或装置能够与另一个设备、部件或装置进行交互和/或通信的协议和相关联的电路、电路系统、部件、设备、系统、子系统等。例如,存储器设备200可支持ATA接口标准、ATA分组接口(“ATAPI”)标准、小型计算机系统接口(“SCSI”)标准和/或光纤信道标准,这些标准由国际信息技术标准委员会(“INCITS”)维护。
在某些实施方案中,存储器设备的存储介质被划分为卷或分区。每个卷或分区可包括多个扇区。传统上,扇区是512字节的数据。一个或多个扇区被组织成块(在本文中称为块和数据块两者,可互换)。
在一个示例性实施方案中,数据块包括八个4KB的扇区。在某些存储系统(诸如与操作系统对接的存储系统)中,数据块被称为集群。在其他存储系统(诸如与UNIX、Linux或类似操作系统对接的存储系统)中,数据块被简称为块。块或数据块或集群表示由存储管理器诸如存储控制器、存储系统、存储单元、存储设备等管理的存储介质上的最小物理量的存储空间。
在一些实施方案中,存储控制器102可被配置为将数据存储在一个或多个不对称的一次写入存储介质诸如存储器管芯104内的固态存储存储器单元上。如本文所用,“一次写入”存储介质是指每次在其上写入或编程新数据时都重新初始化(例如,擦除)的存储介质。如本文所用,“非对称”存储介质是指针对不同存储操作具有不同延迟的存储介质。许多类型的固态存储介质(例如,存储器管芯)是非对称的;例如,读取操作可比写入/编程操作快得多,并且写入/编程操作可比擦除操作快得多(例如,读取存储介质可比擦除快数百倍,并且比对存储介质进行编程快数十倍)。
存储管理器对数据块的管理包括具体针对读取操作、写入操作或维护操作对特定数据块寻址。块存储设备可将可用于跨存储介质的用户数据存储的n个块与从0到n编号的逻辑块地址相关联。在某些块存储设备中,每个卷或分区的逻辑块地址范围可为从0到n。在常规块存储设备中,逻辑地址(也称为逻辑块地址(LBA))直接映射到物理存储介质上的特定数据块。在常规的块存储设备中,每个数据块映射到物理存储介质上的一组特定物理扇区。
然而,某些存储设备不直接或必然地将逻辑地址与特定物理数据块相关联。这些存储设备可模拟常规的块存储接口以保持与块存储客户端110的兼容性。
在一个实施方案中,存储控制器102提供块I/O仿真层,该块I/O仿真层用作块设备接口或API。在该实施方案中,存储客户端110通过该块设备接口与存储设备进行通信。在一个实施方案中,根据该块设备接口,块I/O仿真层从存储客户端110接收命令和逻辑地址。因此,块I/O仿真层提供与块存储客户端110的存储设备兼容性。
在一个实施方案中,存储客户端110通过包括直接接口的主机设备接口与存储控制器102进行通信。在该实施方案中,存储设备直接交换特定于非易失性存储设备的信息。使用直接接口的存储设备可使用各种组织构造将数据存储在存储器管芯104中,所述组织构造包括但不限于块、扇区、页面、逻辑块、逻辑页面、擦除块、逻辑擦除块、ECC码字、逻辑ECC码字,或者以有利于存储器管芯104的技术特性的任何其他格式或结构。
存储控制器102从存储客户端110接收逻辑地址和命令,并执行与存储器管芯104有关的对应操作。存储控制器102可支持块I/O仿真、直接接口或两者。
图2是示例性存储器设备200的框图。存储器设备200可包括存储控制器102和包括多个存储器管芯104的存储器阵列202,存储控制器102和存储器管芯104如关于图1所述起作用。存储器阵列202中的每个存储器管芯104可包括管芯控制器204和至少一个三维阵列形式的非易失性存储器阵列206,以及读/写电路208。
在该上下文中,“存储器阵列”是指被组织成具有行和列的阵列结构的一组存储器单元(也称为存储单元)。存储器阵列可使用行标识符和列标识符来寻址,每个行标识符和列标识符表示为地址诸如命令地址的一部分。因此,非易失性存储器阵列是具有存储器单元的存储器阵列,该存储器单元被配置为使得用于表示所存储数据的存储器单元的特性(例如,阈值电压电平、电阻水平、电导率等)保持存储器单元的属性,而无需使用电源来保持该特性。
本领域的技术人员认识到,存储器阵列可包括平面内的一组存储器单元、存储器管芯内的一组存储器单元、一组平面内的一组存储器单元、一组存储器管芯内的一组存储器单元、存储器封装内的一组存储器单元、一组存储器封装内的一组存储器单元或其他已知的存储器单元组架构和配置。
存储器阵列可包括一组在存储系统或存储器系统内的多个组织级别的存储器单元。在一个实施方案中,可将平面内的存储器单元组织成存储器阵列。在一个实施方案中,可将存储器管芯的多个平面内的存储器单元组织成存储器阵列。在一个实施方案中,可将存储器设备的多个存储器管芯内的存储器单元组织成存储器阵列。在一个实施方案中,可将存储系统的多个存储器设备内的存储器单元组织成存储器阵列。
非易失性存储器阵列206能够经由行解码器210通过字线寻址,并且能够经由列解码器212通过位线寻址。读/写电路208包括多个感测块SB1、SB2、…、SBp(感测电路)并且允许并行读取或编程一页存储器单元。在某些实施方案中,跨存储器阵列的行的每个存储器单元一起形成物理页面。
“电路”是指具有至少一个分立电路的电路、具有至少一个集成电路的电路、具有至少一个专用集成电路的电路、形成由计算机程序配置的通用计算设备(例如,由至少部分地执行本文所述的过程或设备的计算机程序配置的通用计算机,或由至少部分地执行本文所述的过程或设备的计算机程序配置的微处理器)的电路、形成存储器设备(例如,随机存取存储器的形式)的电路,或形成通信设备(例如,调制解调器、通信开关、光电设备)的电路。
物理页面可包括用于单个平面或用于单个存储器管芯的沿存储器阵列的行的存储器单元。在一个实施方案中,存储器管芯包括由两个相等尺寸的平面组成的存储器阵列。平面是存储器阵列的分区,其允许使用某些物理行地址和某些物理列地址在两个地方执行某些存储操作。在一个实施方案中,存储器管芯的一个平面的物理页面包括四个数据块(例如,16KB)。在一个实施方案中,存储器管芯的物理页面(也称为“管芯页面”)包括各自具有四个数据块(例如,32KB)的两个平面。
非易失性存储器阵列206可以是二维的(2D布置在单个制造平面中)或三维的(3D布置在多个制造平面中)。非易失性存储器阵列206可包括一个或多个包括3D阵列的存储器单元阵列。在一个实施方案中,非易失性存储器阵列206可包括单片三维存储器结构(3D阵列),其中多个存储器级形成在单个基板诸如晶片的上方(不在其中),不具有中间基板。非易失性存储器阵列206可包括任何类型的非易失性存储器,该非易失性存储器一体地形成在具有设置在硅基板上方的有源区域的一个或多个物理级的存储器单元阵列中。非易失性存储器阵列206可以处于非易失性固态驱动器中,该非易失性固态驱动器具有与存储器单元的操作相关联的电路,无论该相关联的电路是在基板上方还是基板内。字线可包括包含存储器单元的层的区段,这些区段设置在基板上方的层中。可以通过沟槽或其他非导电隔离特征部在单个层上形成多条字线。
管芯控制器204与读/写电路208协作以在非易失性存储器阵列206的存储器单元上执行存储器操作,并且包括控制电路214和可包含地址解码器218的解码器电路216。控制电路214提供对存储器操作的芯片级控制。
“管芯控制器”是指被配置为管理管芯的操作的一组电路、电路系统、逻辑或部件。在一个实施方案中,管芯控制器是集成电路。在另一个实施方案中,管芯控制器是分立部件的组合。在另一个实施方案中,管芯控制器是一个或多个集成电路和一个或多个分立部件的组合。
“控制电路”是指被配置为和/或可操作以管理一个或多个其他电路的设备、部件、元件、模块、系统、子系统、电路系统、逻辑、硬件或电路。在某些实施方案中,控制电路负责确保包括控制电路的较大电路、管芯或芯片的主要特征和功能正确地执行。地址解码器218将主机或存储控制器102所使用的地址接口提供给行解码器210和列解码器212所使用的硬件地址。
命令和数据经由数据总线220在主机设备和存储控制器102之间传输,并经由存储器接口224在存储控制器102和存储器管芯104中的每个存储器管芯上的输入/输出(IO)电路222之间传输。存储器接口224可以是一种类型的通信总线,包括控制总线226和数据总线228,可以通过该通信总线传送固定长度命令序列230。“存储器接口”是指存储器管芯和存储控制器之间的接口。可结合所公开的解决方案使用的存储器接口的示例包括切换模式(“TM”)、切换NAND 2.0、开放式NAND闪存接口(ONFI)NAND、特定于供应商的接口、专有接口等。在所描绘的实施方案中,存储器接口224是被配置为传输固定长度命令序列230的专有接口。
“通信总线”是指被配置为使发送器能够向接收器发送数据的硬件、软件、固件、逻辑、一条或多条控制线以及一个或多个相关联的通信协议。通信总线可包括数据总线和/或控制总线。
“固件”是指具体体现为存储在易失性存储器介质和/或非易失性存储器介质上的处理器可执行指令的逻辑。
“数据总线”是指用于在两个电子电路、部件、芯片、管芯和/或系统之间交换数据位中的一个或多个数据位的通信总线。数据总线可包括一条或多条信号线/控制线。发送器诸如控制器可通过数据总线的一条或多条控制线并行(作为并行总线操作)或串联(作为串行总线操作)发送数据信号。数据总线可包括用于操作数据总线的硬件、一条或多条控制线、软件、固件、逻辑和/或通信协议。
示例性数据总线可包括具有8条控制线的8位总线、具有16条控制线的16位总线、具有32条控制线的32位总线、具有64条控制线的64位总线等。控制线可以专门携带通信数据、专门携带地址数据、专门携带控制数据或这些类型数据的任何组合。
在一个实施方案中,单个数据总线可由多个部件诸如存储器管芯共享。当多个芯片或存储器管芯共享数据总线时,该数据可由单个存储器管芯或由所有存储器管芯基于芯片使能控制线上的信号并行访问或传输。
数据总线可根据行业标准或基于专有协议和设计进行操作和配置。数据总线的多条控制线可并行使用,并且可根据时钟信号、数据选通信号(“DQS”)或时钟诸如选通信号将数据锁存到目标部件的锁存器中。在某些实施方案中,控制总线和数据总线一起可形成发送器和接收器之间的通信总线。
“控制总线”是指用于在两个电子电路、部件、芯片、管芯和/或系统之间交换数据、地址信息、控制信号、时钟信号等中的一者或多者的通信总线。控制总线可包括一条或多条控制线,可被配置为作为并行总线或串行总线操作,并且可包括用于操作控制总线的硬件、一条或多条控制线、软件、固件、逻辑和/或通信协议。通常,控制总线将控制信号发送到一个或多个存储器管芯,以管理该存储器管芯上的操作。
在某些实施方案中,控制总线发送控制信号,诸如例如,写入使能(“WE”或“WE#”)、芯片使能(“CE”或“CE#”)、读取使能(“RE”或“Re”)、时钟信号、选通信号(“DQS”)、命令锁存使能(“CLE”)、地址锁存使能(“ALE”)等中的一者或多者。
在某些实施方案中,控制总线可以不传输与存储操作相关的数据,诸如写入数据或读取数据。相反,写入数据和读取数据可通过数据总线传输。在某些实施方案中,控制总线和数据总线一起可形成发送器和接收器之间的通信总线。
管芯控制器204的地址解码器218可耦接到非易失性存储器阵列206,以便识别非易失性存储器阵列206内用于存储命令的位置。具体地,地址解码器218确定行标识符和列标识符,它们一起标识应用于与命令地址相关联的存储命令的非易失性存储器阵列206内的位置。存储命令和命令地址以固定长度命令序列被接收。
输入/输出(IO)电路222可通过存储器接口224和存储控制器102耦接到数据总线220,以便接收固定长度命令序列230。管芯控制器204的解码器电路216可通过输入/输出(IO)电路222耦接到控制总线226,以通过数据总线220接收固定长度命令序列230。在一个实施方案中,数据总线220可包括八条控制线,每条控制线被配置为跨数据总线220并行传输一位。
解码器电路216可以从固定长度命令序列解码命令地址和存储命令。管芯控制器204的控制电路214可耦接到输入/输出(IO)电路222和解码器电路216,并且可生成控制信号232以执行由解码器电路216解码的存储命令。“控制信号”是指从一个设备、部件、管理器或控制器发送到被配置为响应于控制信号而起作用的另一个设备、部件、管理器或控制器的电信号(有线或无线)。
读/写电路208可耦接到非易失性存储器阵列206和控制电路214,以便响应于存储命令而在非易失性存储器阵列206和输入/输出(IO)电路222之间传输数据。
在一些具体实施中,可组合部件中的一些部件。在各种设计中,除非易失性存储器阵列206之外的部件中的一个或多个部件(单独或组合)可被认为是被配置为执行本文所述的技术的至少一个控制电路或存储控制器。例如,控制电路可包括存储控制器102,管芯控制器204,读/写电路208,列解码器212,控制电路214,解码器电路216,地址解码器218,感测块SB1、SB2、…、SBp等中的任一者或它们的组合。
通常需要相关联的电路来操作存储器单元并与存储器单元通信。作为非限制性示例,存储器设备可具有用于控制并驱动存储器单元以实现诸如编程和读取等功能的电路。该相关联的电路可与存储器单元位于同一基板上和/或位于单独的基板上。例如,用于存储器读写操作的存储控制器可以被定位在单独的存储控制器芯片上和/或定位在与存储器单元相同的基板上。
本领域的技术人员将认识到,本发明所公开的技术和设备不限于所述的二维和三维示例性结构,但涵盖如本文所述的并且如本领域的技术人员所理解的本技术的实质和范围内的所有相关存储器结构。
图3例示根据一个实施方案的固定长度命令序列300。“固定长度命令序列”是指命令序列的大小被固定、设定、预先确定和/或预定义的命令序列。在某些实施方案中,固定的、设定的、预先确定的和/或预定义的大小为形成命令序列的字节数。在其他实施方案中,该大小可以是形成命令序列的固定的、设定的、预先确定的和/或预定义的数量的位、字等。在一个实施方案中,固定长度命令序列包括用于表示命令诸如存储命令的预定义字节数,以及用于表示命令地址的预定义字节数。另外或在另选的实施方案中,固定长度命令序列可包括预定义数量的前缀字节和/或预定义数量的后缀字节。在一个实施方案中,形成固定长度命令序列的字节数为10字节。在另一个实施方案中,固定长度命令序列包括20字节。在又一个实施方案中,固定长度命令序列包括5字节。
固定长度命令序列300可包括根据预定义命令序列302从存储控制器传输到IO电路的一组字节。“预定义命令序列”是指其中命令序列包括两个或更多个字段,并且字段(其可以是1字节或更多字节)的顺序和大小被定义为通信协议的一部分的命令序列。在另一个实施方案中,预定义命令序列还可限定固定长度命令序列的字段的位置和/或长度。
在一个实施方案中,固定长度命令序列300(诸如图3的示例)包括前缀字段304、命令操作码字段306、命令地址字段308和后缀字段310。存储控制器和IO电路各自被配置为使得各种存储命令适合位于固定长度命令序列的固定长度内。某些存储命令可使用每个前缀字段304、命令操作码字段306和后缀字段310的每个字节或位。其他存储命令可使用命令操作码字段306的全部或部分,并且不需要前缀字段304和后缀字段310的任何字节或位。对于此类存储命令,存储控制器可以用虚拟数据、填充数据或占位符数据填充不需要的位或字节。
其他存储命令可以使用前缀字段304、后缀字段310和命令操作码字段306中的一者或多者或其一部分。在一个实施方案中,每个存储命令发送填充命令地址字段308的命令地址。在另一个实施方案中,某些存储命令不发送命令地址,而是发送虚拟数据或者发送填充命令地址字段308的一部分的部分命令地址。
“前缀字段”是指被配置为发信号通知存储命令的不同操作模式的固定长度命令序列的字段。在某些实施方案中,前缀字段可用于指示固定长度命令序列的命令是读取命令。“命令操作码”是指被配置为向接收设备发信号通知接收设备正被要求执行一组命令中的哪个命令的数字、符号或其他值。命令操作码可存储在固定长度命令序列的命令操作码字段内。“命令地址字段”是指被配置为保持命令地址的固定长度命令序列内的字段。“后缀字段”是指被配置为提供与固定长度命令序列的存储命令有关的附加信息的固定长度命令序列的字段。在某些实施方案中,后缀字段可用于指示固定长度命令序列的命令是读取命令。
在图3的示例中,前缀字段304包括三字节,命令操作码字段306包括一字节,命令地址字段308包括5字节,并且后缀字段310包括一字节。本领域的技术人员将认识到,只要总数被固定为特定整数,固定长度命令序列就可包括任何数量的字节或位。因为固定长度命令序列具有不会从一个存储命令到另一个存储命令改变的长度/大小,所以存储器接口可以更简单,可包括更少的时钟信号,并且可以高数据传输速率操作。例如,在一个实施方案中,存储器接口224可以双倍数据速率操作。
“时钟信号”是指与同步数字电路一起使用的控制信号,该控制信号被配置为以特定的速率或频率(以时钟周期为单位)在通信接口的高状态和低状态之间振荡。常见的时钟信号操作为使得信号形成具有50%占空比的方波。电子部件依赖于以恒定的固定频率操作的时钟信号。
使用时钟信号进行同步的电路可以在时钟周期的上升沿、下降沿处或者在双倍数据速率的情况下在时钟周期的上升沿和下降沿两者中变为活动的。(2019年11月11日在Wikipedia.com上搜索时钟信号;2020年2月20日修改、访问)
在某些实施方案中,与预定义命令序列302相称的固定长度命令序列300可包括具有存储命令的命令地址。此类实施方案可将预定义的命令序列302称为命令地址序列312。命令地址序列312可包括至少一个前缀字段304、命令操作码字段306、命令地址字段308和至少一个后缀字段310。只要命令地址字段的大小固定并且不可变,则命令地址字段308可以是5字节,也可以是任意数量的字节,以将存储命令正确地寻址到存储器阵列。在某些实施方案中,命令地址序列312可包括命令操作码字段306、命令地址字段308、以及无前缀字段304和无后缀字段310。在某些实施方案中,命令地址序列312可包括固定长度命令序列和/或固定长度命令地址序列。
在某些实施方案中,双倍数据速率协议时钟信号314可用于在下降时钟沿316和上升时钟沿318两者上将固定长度命令序列300的数据锁存到诸如在图2中介绍的解码器电路216中。使用双倍数据速率协议时钟信号314使得传输的命令地址序列312的字节数是使用单倍数据速率协议传输的字节数的两倍。通过使用双倍数据速率协议时钟信号314,命令地址序列312/预定义命令序列302的传输速度加倍。本领域技术人员将理解,存储控制器102和输入/输出(IO)电路222适于支持用于双倍数据速率协议的双倍数据速率协议时钟信号314并在其下操作。
在诸如关于图2的数据总线228所描述的实施方案中,预定义命令序列302的每个字节的八位可以并行地传输和锁存。因此,固定长度命令序列300的十个字节可以在时间T0至T1的十个时钟沿内以预定义命令序列302的顺序被锁存,如图所示。在一个实施方案中,数据总线使用的双倍数据速率协议时钟信号314能够以每时钟周期2纳秒(ns)的速度操作。使用被配置为使用双倍数据速率协议从数据总线锁存数据的IO电路诸如输入/输出(IO)电路222,可以在10ns内将固定长度命令序列300锁存,这表示对常规解决方案可采用的70ns到100ns周期的改进。
图4例示根据一个实施方案的存储器系统400。存储器系统400可包括经由存储器接口224耦接到多个存储器管芯402的存储控制器102,存储器接口包括控制总线226和数据总线228。存储控制器102耦接到每个存储器管芯104,并且存储器接口224可以如关于图1和图2所描述的那样起作用。存储控制器102还可包括处理器404、RAM 406、ROM 408、驱动器410和接口管理器412。每个存储器管芯104可包括非易失性存储器414、管芯控制器416和管芯接口管理器418。
“处理器”是指被配置为接收、解译、解码和执行机器指令的任何电路、部件、芯片、管芯、封装或模块。处理器的示例可包括但不限于中央处理单元、通用处理器、专用处理器、图形处理单元(GPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、片上系统(SoC)、虚拟处理器、处理器内核等。
“驱动器”是指电路、子电路、电子部件、硬件、软件、固件、模块、逻辑、设备或装置,其被配置、编程、设计、布置或工程化为向另一个电路、子电路、电子部件、逻辑、设备或装置提供模拟或数字波形的电压。
在另一个实施方案中,驱动器可以以预定义的水平/量值向另一个电路或部件提供电流。通常,单个驱动器(在本文中也称为“驱动器电路”)被配置为基于提供给驱动器的控制信号以多个预定义水平或量值中的一个预定义水平或量值提供电压和/或电流。
接口管理器412可允许存储控制器102通过存储器接口224进行通信,以便传输数据和/或固定长度命令地址序列,诸如先前介绍的固定长度命令序列300。在一个实施方案中,接口管理器412可以响应于固定长度命令地址序列的存储命令包括读取命令而为固定长度命令地址序列的前缀字段中的一个前缀字段设定值。“固定长度命令地址序列”是指包括命令序列和命令地址的特定类型的固定长度命令序列。
每个存储器管芯104的管芯控制器416可以耦接到或包括通过存储器接口224与存储控制器102通信的管芯接口管理器418。接口管理器412和管芯接口管理器418可以使用双倍数据速率协议通过数据总线228传输固定长度命令地址序列。
数据总线228可包括被配置为以2ns/时钟周期的速度操作的双倍数据速率协议时钟信号424。控制总线226可包括芯片使能控制信号420和命令控制信号422。“命令控制信号”是指通过控制线发送并且被配置为管理电子设备诸如存储器管芯、管芯控制器等的操作的信号。命令控制信号422可识别数据总线228上的数据是表示存储命令还是数据,诸如用户数据。
在一个实施方案中,控制总线226可仅由芯片使能控制信号420和命令控制信号422组成。在某些实施方案中,使控制总线226仅由芯片使能控制信号420和命令控制信号422组成可使得存储器系统400能够被设计成具有较少的控制总线控制线和较少的相关联焊盘。例如,存储器系统400可不使用WE控制线,因为命令序列使用固定长度命令序列来传输。通过使用固定长度命令序列,存储器系统400也能够以更高的数据传输速度操作,诸如利用双倍数据速率协议。
在一个实施方案中,接口管理器412以可接受的信号完整性、误码率和数据传输速度调谐存储器接口224以确定用于传输数据的适当接口设置。“接口设置”是指用于通信接口诸如存储器接口,或涉及通信接口、与通信接口进行交互、使用通信接口、操作通信接口或管理通信接口的参数。接口设置可涉及被配置为确保在发送器和接收器之间准确地发送和接收数据和/或控制信号的设置。
对于使用一组控制线来传达数据和信号的界面,接口设置可包括调整接口的操作以改善接口的性能、保真性和信号完整性的参数、值和设置。可以是接口设置的设置的一些示例包括但不限于阻抗(ZQ)匹配设置、管芯上终端(ODT)设置,诸如延迟设置、占空比校正设置、接口时钟速度设置等。在某些实施方案中,可定义和/或调整接口设置以解决由工艺制造差异、所使用或可用的电压变化以及发送器和/或接收器操作的温度变化导致的电路或部件的差异。
接口设置可以在对被配置为使用相关联接口的发送器和/或接收器进行初始化期间通过接口发出的每个命令动态地设定一次,或者在发送器和接收器响应于触发诸如事件、时间间隔、满足阈值的条件等使用接口进行操纵期间设定一次。
“误码率”是指所处理的总位数中的错误位数的量度。在某些实施方案中,在纠错码(ECC)解码器已经做出一次或多次纠正一个或多个错误位的尝试之后计算误码率。
“数据传输速度”是指相对于时间单位(通常为秒或秒的部分)在源和目的地之间传输数据的速率的量度。可以根据通信接口(诸如数据总线)的时钟信号(诸如选通信号)的时钟周期数来表示数据传输速度。数据传输速度可以以每单位时间(诸如秒)传输的数据量(以兆字节为单位)表示。例如,一个数据传输速度可为533MB/s。
本领域的技术人员将认识到,接口管理器412可确定针对被配置为每个存储单元存储任何数量的位诸如2位、3位、4位、5位、6位、7位、8位等的存储单元的接口设置。类似地,所公开的解决方案的实施方案可基于存储操作中涉及的存储单元被配置以存储的位数而根据需要来改变接口设置。
图5例示根据一个实施方案的解码器电路500。解码器电路500可在管芯控制器内操作,或者与存储器系统400的管芯控制器结合操作。解码器电路500从IO电路通过数据总线接收的固定长度命令序列解码命令地址和存储命令。在某些实施方案中,解码器电路500可驻留在每个管芯控制器416内。
在一个实施方案中,解码器电路500可包括读取命令解码器504、非读取命令解码器506和命令地址解码器508。“读取命令解码器”是指被具体配置为解码从存储控制器到存储器管芯的读取命令的解码器。
解码器电路500可解码来自固定长度命令序列502的存储命令。解码器电路500然后可以指示读取命令解码器504或非读取命令解码器506以基于特定存储命令的存储命令类型来解码存储命令。
读取命令解码器504可以被具体配置为解码读取命令512而不解码其他类型的存储命令。非读取命令解码器506可以被具体配置为解码非读取命令510。在某些实施方案中,相比于非读取命令解码器506解码非读取命令510,读取命令解码器504可以更快地解码读取命令。解码器电路500可以路由非读取命令510。
在一个实施方案中,解码器电路500可以向读取命令解码器504提供读取命令512和非读取命令510两者。如果存储命令是读取命令,则读取命令解码器504解码存储命令。如果存储命令是非读取存储命令,则非读取命令解码器506解码存储命令。
解码器电路500可使用多种机制来确定哪个解码器用于固定长度命令序列502。在一个实施方案中,解码器电路500基于前缀字段将存储命令路由到读取命令解码器504和非读取命令解码器506中的一者。例如,在一个实施方案中,解码器电路500可以响应于固定长度命令序列502的至少一个前缀字段具有指示存储命令是读取命令的值将读取命令路由到读取命令解码器504。在一个实施方案中,指示存储命令是读取命令的值可以包括高性能读取标记。当被实现为前缀字段的一部分(或其可以是后缀字段的一部分)时,高性能读取标记可用于将固定长度命令序列路由到高性能读取命令解码器,该高性能读取命令解码器可以例如是特定目的的专用单功能读取命令解码器。
相比于非读取命令解码器506解码作为非读取命令510的存储命令,读取命令解码器504可以被设计成更快地解码读取命令512。命令地址解码器508可从固定长度命令序列502中解码命令地址514,诸如在命令地址字段308中传达的命令地址。
图6例示根据一个实施方案的管芯控制器600。管芯控制器600包括解码器电路500、SIPO电路602和输入/输出(IO)电路604。这些元件可被实现为管芯控制器600内的电路。
在诸如关于图2所述的实施方案中,存储器接口以双倍数据速率协议操作并且具有2纳秒的快速周期时间。因此,存储器接口的数据传输速度快于过去使用的数据传输速度。通过使用更快的驱动器/时钟信号、双倍数据速率协议和固定长度命令序列,使得这些更快的速度成为可能。在某些实施方案中,存储器管芯的锁存器、缓冲器、接收电路和解码器可具有一定的设置和保持时间,以便适当地解码和响应存储命令。
SIPO电路602可用作缓冲器,以便于以较高的数据传输速度处理和解码通过存储器接口接收的此类存储命令。耦接在输入/输出(IO)电路604与解码器电路500之间的串行输入并行输出(SIPO)电路或SIPO电路602可在一组输入控制线606上接受十六位。然后,SIPO电路602可并行输出八十位。因此,SIPO电路602被配置为缓冲五组固定长度命令序列,然后可以将其传递到解码器电路500以进行处理和操作。
这样,SIPO电路602可根据双倍数据速率协议将从输入/输出(IO)电路604接收的16位固定长度命令序列608转换为80位命令地址序列610。SIPO电路602然后可将80位命令地址序列610传输到解码器电路500。
图7例示根据一个实施方案的用于实现所公开的解决方案的例程700。在框702中,可以首先从存储控制器接收固定长度命令序列。可使用双倍数据速率协议通过数据总线发送固定长度命令序列。可响应于识别数据总线上的数据是存储命令还是数据的命令控制信号而接收固定长度命令序列。
在框704中,例程700可以使固定长度命令序列通过串行输入并行输出(SIPO)电路。串行输入并行输出(SIPO)电路可将五个16位固定长度命令序列转换成一个80位命令地址序列。80位命令地址序列可以是固定长度命令地址序列,其可包括5字节的命令地址字段、1字节命令操作码字段、占用3字节的最多三个前缀字段和1字节的后缀字段。在框706处,可解码固定长度命令序列以产生由固定长度命令序列识别的存储命令。
在决策框708处,可以检查80位命令地址序列的指示存储命令是读取命令还是非读取命令的值。如果命令地址序列表示读取命令,则例程700转到框710。如果80位命令地址序列是非读取命令,则例程700转到框712。
在框710处,如果80位命令地址序列包括读取命令,则将命令地址序列发送到读取命令解码器。然后,读取命令解码器可以实现读取命令。在框712处,如果80位命令地址序列是非读取命令,则可以将其发送到非读取命令解码器。然后,非读取命令解码器可以实现非读取命令。在某些实施方案中,例程700可包括在框712处绕过读取命令解码器。在框714处,例程700以执行由固定长度命令序列定义的存储命令结束。该例程700可由相对于图1至图6所述的电路和系统实现。
图8是可结合受权利要求书保护的解决方案的实施方案的计算设备800的示例框图。图8仅例示执行本文所述的技术过程各方面的机器系统,并且不限制权利要求书的范围。本领域的普通技术人员将认识到其他变型、修改和替代。在某些实施方案中,计算设备800包括图形用户界面802、数据处理系统804、通信网络806、通信网络接口808、一个或多个输入设备810、一个或多个输出设备812等。
如图8所示,数据处理系统804可包括一个或多个处理器814和存储系统816。
一个或多个处理器814经由总线子系统818与多个外围设备进行通信。这些外围设备可包括一个或多个输入设备810、一个或多个输出设备812、通信网络接口808和存储系统816。在一个实施方案中,存储系统816包括一个或多个存储设备和/或一个或多个存储器设备。术语“存储设备”是指任何硬件、系统、子系统、电路、部件、模块、非易失性存储器介质、硬盘驱动器、存储阵列、设备或装置,其被配置、编程、设计或工程化为将数据存储一段时间并在存储设备不使用来自电源的电力时将数据保留在存储设备中。存储设备的示例包括但不限于硬盘驱动器、闪存存储器、MRAM存储器、固态存储设备、磁盘束(JBOD)、闪存束(JBOF)、外部硬盘、内部硬盘等。
在一个实施方案中,存储系统816包括易失性存储器820和非易失性存储器822。术语“易失性存储器”是指易失性存储器介质的缩略名称。在某些实施方案中,易失性存储器是指易失性存储器介质和管理易失性存储器介质并提供对易失性存储器介质的访问的逻辑、控制器、一个或多个处理器、一个或多个状态机和/或其他外围电路。
术语“非易失性存储器”是指非易失性存储器介质的缩略名称。在某些实施方案中,非易失性存储器介质是指非易失性存储器介质以及管理非易失性存储器介质并提供对非易失性存储器介质的访问的逻辑、控制器、一个或多个处理器、一个或多个状态机和/或其他外围电路。易失性存储器820和/或非易失性存储器822可以存储计算机可执行指令826,计算机可执行指令单独或一起形成逻辑824,当逻辑被应用于一个或多个处理器814并由处理器执行时,实现本文所公开的过程的实施方案。术语“逻辑”是指机器存储器电路、非暂态机器可读介质和/或电路,通过该电路的材料和/或材料能量配置包括控制和/或程序信号和/或设置和值(诸如电阻、阻抗、电容、电感、电流/电压等级等),这可用于影响设备的操作。磁介质、电子电路、电存储器和光学存储器(易失性和非易失性)以及固件为逻辑的示例。逻辑具体地排除纯信号或软件本身(然而不排除包括软件并由此形成事物的配置的机器存储器)。
一个或多个输入设备810包括用于将信息输入到数据处理系统804的设备和机制。这些可以包括键盘、小键盘、结合到图形用户界面802中的触摸屏、音频输入设备诸如语音识别系统、麦克风以及其他类型的输入设备。在各种实施方案中,一个或多个输入设备810可以具体体现为计算机鼠标、轨迹球、触控板、操纵杆、无线遥控器、绘图板、语音命令系统、眼睛跟踪系统等。一个或多个输入设备810通常允许用户经由诸如单击按钮等的命令来选择出现在图形用户界面802上的对象、图标、控制区域、文本等。
一个或多个输出设备812包括用于从数据处理系统804输出信息的设备和机制。这些可以包括本领域公知的图形用户界面802、扬声器、打印机、红外LED等。在某些实施方案中,图形用户界面802通过有线连接直接耦接到总线子系统818。在其他实施方案中,图形用户界面802通过通信网络接口808耦接到数据处理系统804。例如,图形用户界面802可包括独立计算设备800(诸如台式计算机、服务器或移动设备)上的命令行界面。
通信网络接口808提供到通信网络(例如,通信网络806)和数据处理系统804外部的设备的接口。通信网络接口808可用作用于从其他系统接收数据并且向其他系统传送数据的接口。通信网络接口808的实施方案可包括以太网接口、调制解调器(电话、卫星、有线电视、ISDN)、(异步)数字订户线路(DSL)、FireWire、USB、诸如蓝牙或WiFi的无线通信接口、近场通信无线接口、蜂窝接口等。
通信网络接口808可以经由天线、电缆等耦接到通信网络806。在一些实施方案中,通信网络接口808可以物理地集成在数据处理系统804的电路板上,或者在一些情况下可以在软件或固件诸如“软调制解调器”等中实现。
计算设备800可包括使得使用协议诸如HTTP、TCP/IP、RTP/RTSP、IPX、UDP等通过网络能够通信的逻辑。
易失性存储器820和非易失性存储器822是被配置为存储计算机可读数据和指令以实现本文所述的过程的各种实施方案的有形介质的示例。其他类型的有形介质包括可移动存储器(例如,可插拔的USB存储设备、移动设备SIM卡),光学存储介质(诸如CD-ROM、DVD),半导体存储器(诸如闪存存储器),非暂态只读存储器(ROM),电池支持的易失性存储器,网络存储设备等。易失性存储器820和非易失性存储器822可以被配置为存储提供落入受权利要求书保护的接解决方案的范围内的其所公开的过程和其他实施方案的功能的基本编程和数据结构。
实现解决方案的实施方案的一个或多个部分的逻辑824可以存储在易失性存储器820和/或非易失性存储器822中。逻辑824可以从易失性存储器820和/或非易失性存储器822读取并且由一个或多个处理器814执行。易失性存储器820和非易失性存储器822还可提供用于储存由逻辑824使用的数据的存储库。
“模块”是指具有定义的入口点和出口点的计算机代码段。模块的示例是包括应用程序编程接口、驱动器、库、功能和子例程的任何软件。“软件”是指实现为机器存储器(例如,读/写易失性存储器介质或非易失性存储器介质)中的处理器可执行指令的逻辑。“计算机代码段”是指一个或多个指令。“应用程序编程接口”是指实现入口点并将值返回到模块的指令。
“指令”是指表示由设备使用处理器、微处理器、控制器、解译器或其他可编程逻辑执行的命令的符号。广义地讲,“指令”可意指源代码、目标代码和可执行代码。本文的“指令”还旨在包括具体体现在可编程只读存储器(EPROM)或硬编码成硬件(例如,“微代码”)的命令以及其中指令在设备制造时被配置到机器存储器或其他硬件部件中的类似具体实施。
“源代码”是指需要解译或编译以便由设备执行的高级文本计算机语言。
“目标代码”是指编译器输出的计算机代码或作为解译器的中间输出。目标代码通常采用机器语言或中间语言诸如寄存器传输语言(RTL)的形式。
“可执行代码”是指可编程设备以随时可执行形式的指令。例如,在未解译的执行环境中的源代码指令不是可执行代码,因为它们通常必须在具有用于执行的适当形式之前先经历操作系统的编译、链接和加载。解译的计算机代码可被认为是可执行代码,因为其可直接应用于可编程设备(解译器)以供执行,即使解译器本身可进一步将解译的计算机代码转换成机器语言指令。
“可编程设备”是指可通过指令配置其操作行为的任何逻辑(包括硬件和软件逻辑)。
“解译器”是指直接执行以源代码脚本语言编写的指令而不需要将先验指令编译成机器语言的解译器。解译器将指令转换成另一种形式,例如转换成机器语言,或转换成对内部功能的调用和/或对其他软件模块中的功能的调用。
易失性存储器820和非易失性存储器822可包括多个存储器,该多个存储器包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)和在其中存储只读非暂态指令的只读存储器(ROM)。易失性存储器820和非易失性存储器822可包括为程序和数据文件提供持久(非易失性)存储的文件存储子系统。易失性存储器820和非易失性存储器822可包括可移除的存储系统诸如可移除的闪存存储器。
总线子系统818提供用于使数据处理系统804的各种部件和子系统按预期彼此通信的机制。尽管通信网络接口808被示意性地描绘为单条总线,但总线子系统818的一些实施方案可利用多条不同的总线。
对于本领域的普通技术人员将显而易见的是,计算设备800可以是诸如智能电话、台式计算机、膝上型计算机、机架式计算机系统、计算机服务器或平板计算机设备的设备。如本领域所公知的,计算设备800可以被实现为多个联网计算设备的集合。此外,计算设备800通常将包括其类型和性质在本领域公知的操作系统逻辑(未示出)。
本文所用的术语应被赋予它们在相关领域中的普通含义,或它们在上下文中的使用所指示的含义,但是如果提供了明确的定义,则意味着控制。
在本公开中,可将不同实体(其可不同地被称为“单元”、“电路”、“其他部件”等)描述或声明为“被配置”以执行一个或多个任务或操作。该表达方式—[实体]被配置为[执行一个或多个任务]—在本文被用来指代结构(即,诸如电子电路之类的物理工具)。更具体地,该表达方式用于指示该结构被布置用于在操作期间执行所述一个或多个任务。可以说结构“被配置为”执行一些任务,即使当前未在操作该结构也可如此。被配置为将信用分配到多个处理器内核的“信用分配电路”旨在涵盖例如集成电路,该集成电路具有在操作期间执行该功能的电路,即使所考虑的该集成电路当前未被使用(例如,电源未与其连接)。因此,被描述或列举为“被配置为”执行一些任务的实体是指物理的实体,诸如存储可执行以实现任务的程序指令的设备、电路、存储器等。本文中不使用该短语来指无形的事物。
术语“被配置为”并非旨在表示“可配置为”。例如,未编程的FPGA将不被认为是“被配置为”执行一些特定功能,尽管它在编程之后可为“可配置为”执行该功能。
在所附权利要求书中指出,结构“被配置为”执行一个或多个任务,这明确地旨在不对该权利要求要素调用35U.S.C.§112(f)。因此,本申请中不以另外的方式包括用于[执行功能]构造的“装置”的权利要求不应根据35U.S.C§112(f)进行解释。
如本文所用,术语“基于”用于描述影响确定的一个或多个因素。该术语不排除其他因素可影响该确定的可能性。即,确定可仅基于指定的因素或基于指定的因素以及其他未指定的因素。参考短语“基于B确定A”该短语指定B是用于确定A或影响A的确定的因素。该短语不排除A的确定也可基于一些其他因素,诸如C。该短语也旨在涵盖其中仅基于B决定A的实施方案。如本文所用,短语“基于”与短语“至少部分地基于”同义。
如本文所用,短语“响应于”描述触发效果的一个或多个因素。该短语不排除附加因素可影响或以其他方式触发效果的可能性。即,效果可仅响应于那些因素,或可响应于指定的因素以及其他未指定的因素。参考短语“响应于B执行A”该短语指定B是触发A的性能的因素。该短语不排除执行A也可响应于一些其他因素,诸如C。该短语也旨在涵盖其中仅响应于B执行A的实施方案。
本文中,对“一个实施方案”或“实施方案”的引用不一定是指相同的实施方案,尽管它们可以是相同的。除非上下文另外清楚地要求,否则在整个说明书和权利要求书中,词语“包括(comprise)”、“包括(comprising)”等理解为包括性的含义,而不是排他性或穷尽的含义;也就是说,为“包括但不限于”的含义。使用单数或复数的词语也分别包括复数或单数,除非明确地限于单个或多个。此外,当用在本申请中时,词语“本文”、“上述”、“下文”和类似含义的词语是指整个本申请而不是本专利申请的任何特定部分。当权利要求书在关于两个或更多个项目的列表中使用词语“或”时,除非明确地限于一个或其他,否则这个词涵盖该词的以下所有解释:列表中的任何项目、列表中的所有项目以及列表中的项目的任何组合。本文中未明确地定义的任何术语具有它们的常规含义,这是相关领域的技术人员通常理解的。
本文所述的各种逻辑功能操作可以在逻辑中实现,该逻辑是指使用反映所述操作或功能的名词或名词短语。例如,关联操作可以由“关联器”或“相关器”执行。同样,切换可以由“开关”执行,选择可以由“选择器”执行,等等。
如本文所用,除非另外指明,否则术语“第一”、“第二”等用作它们前面的名词的标签,并且不意味着任何类型的排序(例如,空间的、时间的、逻辑的等)。例如,在具有八个寄存器的寄存器文件中,术语“第一寄存器”和“第二寄存器”可用于指代八个寄存器中的任两个,而不是例如仅逻辑寄存器0和1。
当用于权利要求中时,术语“或”用作包括性的或,而不是排他性的或。例如,短语“x、y或z中的至少一者”是指x、y和z中的任一个,以及它们的任何组合。
Claims (20)
1.一种用于存储器系统的电路,包括:
非易失性存储器阵列,所述非易失性存储器阵列耦接到地址解码器,所述地址解码器被配置为识别所述非易失性存储器阵列内用于存储命令的位置;
输入/输出电路,所述输入/输出电路耦接到数据总线;
解码器电路,所述解码器电路耦接到控制总线和所述输入/输出电路,所述解码器电路被配置为从由所述输入/输出电路通过所述数据总线接收的固定长度命令序列解码命令地址和所述存储命令;
控制电路,所述控制电路耦接到所述输入/输出电路和所述解码器电路,所述控制电路被配置为生成控制信号以执行由所述解码器电路解码的所述存储命令;和
读/写电路,所述读/写电路耦接到所述非易失性存储器阵列和所述控制电路,所述读/写电路被配置为响应于所述存储命令而在所述非易失性存储器阵列和所述输入/输出电路之间传输数据。
2.根据权利要求1所述的电路,其中所述数据总线包括时钟信号,所述时钟信号被配置为以每时钟周期2纳秒的速度操作,并且所述输入/输出电路被配置为使用双倍数据速率协议锁存来自所述数据总线的数据。
3.根据权利要求1所述的电路,其中所述控制总线由芯片使能控制信号和命令控制信号组成,所述命令控制信号被配置为识别所述数据总线上的数据是表示所述存储命令还是数据。
4.根据权利要求1所述的电路,其中所述数据总线包括八条控制线,每条控制线被配置为跨所述数据总线并行传输一位,并且所述固定长度命令序列包括根据预定义的命令序列从存储控制器传输到所述输入/输出电路的一组字节。
5.根据权利要求4所述的电路,其中所述预定义的命令序列包括命令地址序列。
6.根据权利要求4所述的电路,其中所述一组字节包括十字节。
7.根据权利要求1所述的电路,其中所述解码器电路被配置为:
从所述固定长度命令序列解码所述存储命令;
指示读取命令解码器和非读取命令解码器中的一者基于存储命令类型解码所述存储命令;
其中所述解码器电路还包括:
命令地址解码器,所述命令地址解码器被配置为从所述固定长度命令序列解码命令地址;并且
其中所述读取命令解码器被配置为解码读取命令,并且所述非读取命令解码器被配置为解码非所述读取命令的所述存储命令。
8.根据权利要求7所述的电路,其中所述读取命令解码器被配置为与所述非读取命令解码器解码非读取命令的所述存储命令相比更快地解码所述读取命令。
9.根据权利要求1所述的电路,还包括耦接在所述输入/输出电路和所述解码器电路之间的串行输入并行输出电路,所述串行输入并行输出电路被配置为将根据双倍数据速率协议接收的来自所述输入/输出电路的16位固定长度命令序列转换成80位命令地址序列,并且将所述80位命令地址序列传输到所述解码器电路。
10.一种存储器系统,包括:
多个存储器管芯,所述多个存储器管芯各自耦接到包括数据总线和控制总线的存储器接口;和
存储控制器,所述存储控制器通过所述存储器接口耦接到所述多个存储器管芯,所述存储控制器包括接口管理器,所述接口管理器被配置为通过所述存储器接口将数据和固定长度命令地址序列传输到所述多个存储器管芯;
其中所述多个存储器管芯中的每个存储器管芯包括管芯控制器,所述管芯控制器具有管芯接口管理器,所述管芯接口管理器被配置为通过所述存储器接口与所述存储控制器通信;并且
其中所述存储控制器的所述接口管理器和所述多个存储器管芯的所述管芯接口管理器被配置为使用双倍数据速率协议通过所述数据总线传输所述固定长度命令地址序列,并且所述数据总线包括时钟信号,所述时钟信号被配置为以每时钟周期2纳秒的速度操作。
11.根据权利要求10所述的存储器系统,其中所述多个存储器管芯的每个管芯控制器包括:
地址解码器,所述地址解码器被配置为识别非易失性存储器阵列内用于存储命令的位置;
输入/输出电路,所述输入/输出电路耦接到所述数据总线;
解码器电路,所述解码器电路耦接到所述控制总线和所述输入/输出电路,所述解码器电路被配置为从由所述输入/输出电路通过所述数据总线接收的所述固定长度命令地址序列解码命令地址和所述存储命令;
控制电路,所述控制电路耦接到所述输入/输出电路和所述解码器电路,所述控制电路被配置为生成控制信号以执行由所述解码器电路解码的所述存储命令;和
读/写电路,所述读/写电路耦接到所述非易失性存储器阵列和所述控制电路,所述读/写电路被配置为响应于所述存储命令而在所述非易失性存储器阵列和所述输入/输出电路之间传输数据。
12.根据权利要求11所述的存储器系统,其中所述解码器电路包括非读取命令解码器、读取命令解码器,以及命令地址解码器,并且其中所述解码器电路被配置为响应于所述固定长度命令序列的至少一个前缀字段具有被配置为指示所述存储命令是读取命令的值而将所述存储命令路由到读取命令解码器;其中所述读取命令解码器被配置为与所述非读取命令解码器相比更快地操作。
13.根据权利要求11所述的存储器系统,其中所述管芯控制器包括耦接在所述输入/输出电路和所述解码器电路之间的串行输入并行输出电路,所述串行输入并行输出电路被配置为在一组输入控制线上接受十六位并输出八十位命令地址序列并将所述八十位命令地址序列递送到所述解码器电路。
14.根据权利要求10所述的存储器系统,其中所述固定长度命令地址序列包括命令地址字段、命令操作码字段、一个或多个前缀字段、一个或多个后缀字段。
15.根据权利要求14所述的存储器系统,其中所述命令地址字段包括五字节,所述命令操作码字段包括一字节,所述一个或多个前缀字段包括三字节,并且所述一个或多个后缀字段包括一字节。
16.根据权利要求10所述的存储器系统,其中所述存储控制器的所述接口管理器被配置为响应于所述固定长度命令地址序列的存储命令包括读取命令而为一个或多个前缀字段中的一个前缀字段设定值。
17.一种操作存储器系统的方法,包括:
响应于命令控制信号,使用双倍数据速率协议通过数据总线从存储控制器接收固定长度命令序列,所述命令控制信号被配置为识别所述数据总线上的数据是否表示存储命令和数据中的一者;
解码所述固定长度命令序列以确定由所述固定长度命令序列识别的存储命令;以及
执行由所述固定长度命令序列定义的所述存储命令。
18.根据权利要求17所述的方法,其中解码所述固定长度命令序列包括:
通过串行出入并行输出电路传递所述固定长度命令序列,以将五个16位固定长度命令序列转换成一个八十位命令地址序列;以及
响应于所述八十位命令地址序列包括指示所述八十位命令地址序列的存储命令是读取命令的值而通过被配置为实现读取命令的读取命令解码器来路由所述一个八十位命令地址序列。
19.根据权利要求18所述的方法,还包括响应于所述八十位命令地址序列包括指示所述八十位命令地址序列的所述存储命令不是所述读取命令的所述值而通过非读取命令解码器来路由所述一个八十位命令地址序列。
20.根据权利要求18所述的方法,其中固定长度命令地址序列包括五字节命令地址字段、一字节命令操作码字段、用于三个前缀字段中的每个前缀字段的三字节,以及用于后缀字段的一字节。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/830,128 US11048443B1 (en) | 2020-03-25 | 2020-03-25 | Non-volatile memory interface |
US16/830,128 | 2020-03-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113448498A CN113448498A (zh) | 2021-09-28 |
CN113448498B true CN113448498B (zh) | 2024-04-16 |
Family
ID=76548102
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010565278.9A Active CN113448498B (zh) | 2020-03-25 | 2020-06-19 | 非易失性存储器接口 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11048443B1 (zh) |
CN (1) | CN113448498B (zh) |
DE (1) | DE102020116032A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113793635B (zh) * | 2021-11-08 | 2022-04-19 | 阿里云计算有限公司 | 存储装置和存储设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101578614A (zh) * | 2007-01-30 | 2009-11-11 | 松下电器产业株式会社 | 非易失性存储装置、非易失性存储系统及存取装置 |
CN103578555A (zh) * | 2012-07-19 | 2014-02-12 | 三星电子株式会社 | 非易失性存储器、其的读取方法和包括其的存储系统 |
CN104424045A (zh) * | 2013-09-09 | 2015-03-18 | 群联电子股份有限公司 | 解码方法、存储器储存装置与非易失性存储器模块 |
CN105023613A (zh) * | 2014-04-22 | 2015-11-04 | 群联电子股份有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
CN107402837A (zh) * | 2017-05-12 | 2017-11-28 | 威盛电子股份有限公司 | 非易失性存储器装置及其读取方法 |
CN108074593A (zh) * | 2016-11-11 | 2018-05-25 | 桑迪士克科技有限责任公司 | 用于非易失性存储器的接口 |
CN108345808A (zh) * | 2017-01-25 | 2018-07-31 | 三星电子株式会社 | 非易失性存储器件和包括非易失性存储器件的固态驱动器 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0922393A (ja) | 1995-07-06 | 1997-01-21 | Mitsubishi Electric Corp | 通信機能を有するワンチップフラッシュメモリ装置 |
US7600090B2 (en) | 2005-11-28 | 2009-10-06 | Atmel Corporation | Microcontroller based flash memory digital controller system |
US7802061B2 (en) | 2006-12-21 | 2010-09-21 | Intel Corporation | Command-based control of NAND flash memory |
KR100851545B1 (ko) | 2006-12-29 | 2008-08-11 | 삼성전자주식회사 | 커맨드 및 어드레스 핀을 갖는 낸드 플래시 메모리 및그것을 포함한 플래시 메모리 시스템 |
US7916557B2 (en) | 2007-04-25 | 2011-03-29 | Micron Technology, Inc. | NAND interface |
WO2011106049A1 (en) * | 2010-02-23 | 2011-09-01 | Rambus Inc. | Time multiplexing at different rates to access different memory types |
US8760945B2 (en) | 2011-03-28 | 2014-06-24 | Samsung Electronics Co., Ltd. | Memory devices, systems and methods employing command/address calibration |
US10381327B2 (en) * | 2016-10-06 | 2019-08-13 | Sandisk Technologies Llc | Non-volatile memory system with wide I/O memory die |
US11461527B2 (en) | 2018-02-02 | 2022-10-04 | Micron Technology, Inc. | Interface for data communication between chiplets or other integrated circuits on an interposer |
-
2020
- 2020-03-25 US US16/830,128 patent/US11048443B1/en active Active
- 2020-06-17 DE DE102020116032.1A patent/DE102020116032A1/de active Pending
- 2020-06-19 CN CN202010565278.9A patent/CN113448498B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101578614A (zh) * | 2007-01-30 | 2009-11-11 | 松下电器产业株式会社 | 非易失性存储装置、非易失性存储系统及存取装置 |
CN103578555A (zh) * | 2012-07-19 | 2014-02-12 | 三星电子株式会社 | 非易失性存储器、其的读取方法和包括其的存储系统 |
CN104424045A (zh) * | 2013-09-09 | 2015-03-18 | 群联电子股份有限公司 | 解码方法、存储器储存装置与非易失性存储器模块 |
CN105023613A (zh) * | 2014-04-22 | 2015-11-04 | 群联电子股份有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
CN108074593A (zh) * | 2016-11-11 | 2018-05-25 | 桑迪士克科技有限责任公司 | 用于非易失性存储器的接口 |
CN108345808A (zh) * | 2017-01-25 | 2018-07-31 | 三星电子株式会社 | 非易失性存储器件和包括非易失性存储器件的固态驱动器 |
CN107402837A (zh) * | 2017-05-12 | 2017-11-28 | 威盛电子股份有限公司 | 非易失性存储器装置及其读取方法 |
Also Published As
Publication number | Publication date |
---|---|
DE102020116032A1 (de) | 2021-09-30 |
US11048443B1 (en) | 2021-06-29 |
CN113448498A (zh) | 2021-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110088725B (zh) | 用于对提交队列和完成队列进行处理并做出仲裁的系统和方法 | |
CN110073322B (zh) | 用于快速执行封装体内命令的系统和方法 | |
US20190042611A1 (en) | Technologies for structured database query for finding unique element values | |
Eshghi et al. | Ssd architecture and pci express interface | |
CN110275840B (zh) | 在存储器接口上的分布式过程执行和文件系统 | |
US11720446B2 (en) | Method of demand scrubbing by placing corrected data in memory-side cache | |
KR20190102438A (ko) | 전자 장치 및 그것의 동작 방법 | |
US20190354483A1 (en) | Controller and memory system including the same | |
CN113448498B (zh) | 非易失性存储器接口 | |
EP3958132A1 (en) | System, device, and method for memory interface including reconfigurable channel | |
US20160124640A1 (en) | Memory system and method of operating the same | |
CN118069037A (zh) | 存储器控制器、电子系统和控制存储器访问的方法 | |
US12020774B2 (en) | Methods and systems for selectively enabling/disabling memory dies | |
Khalifa et al. | Memory controller architectures: A comparative study | |
US20230350606A1 (en) | Command and address sequencing in parallel with data operations | |
US20190042385A1 (en) | Dynamic device-determined storage performance | |
US10474366B2 (en) | Non-volatile storage system with in-drive data analytics | |
CN115933965A (zh) | 存储器存取控制 | |
KR102440665B1 (ko) | 계층적 메모리 장치 | |
US11429612B2 (en) | Address search circuit and method of semiconductor memory apparatus and controller therefor | |
US11221931B2 (en) | Memory system and data processing system | |
US11080059B1 (en) | Reducing firmware size and increasing firmware performance | |
EP4018329A1 (en) | Hierarchical memory systems | |
Micheloni et al. | SSD architecture and PCI express interface | |
Eshghi et al. | SSD architecture and PCI express interface |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |