CN110109851B - 具有主机和存储器控制器的电子***及其操作方法 - Google Patents
具有主机和存储器控制器的电子***及其操作方法 Download PDFInfo
- Publication number
- CN110109851B CN110109851B CN201811105628.2A CN201811105628A CN110109851B CN 110109851 B CN110109851 B CN 110109851B CN 201811105628 A CN201811105628 A CN 201811105628A CN 110109851 B CN110109851 B CN 110109851B
- Authority
- CN
- China
- Prior art keywords
- host
- die
- memory
- controller
- electronic system
- 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 188
- 238000000034 method Methods 0.000 title claims abstract description 16
- 230000004044 response Effects 0.000 claims abstract description 21
- 238000012545 processing Methods 0.000 claims abstract description 13
- 238000013507 mapping Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 24
- 230000002093 peripheral effect Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 101000711846 Homo sapiens Transcription factor SOX-9 Proteins 0.000 description 2
- 101100232371 Hordeum vulgare IAT3 gene Proteins 0.000 description 2
- 102100034204 Transcription factor SOX-9 Human genes 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000003936 working memory 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
- G06F13/1673—Details of memory controller using buffers
-
- 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
- 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/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- 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/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
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)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种电子***及其操作方法。该电子***包括:主机,其基于包括在存储装置中的管芯的状态,排队外部命令以等待或被输出;中央处理单元,其响应于从主机接收的请求或外部命令,生成用于控制存储装置的命令;以及控制器存储器缓冲器,其存储状态信息,该状态信息指示管芯是处于可访问的状态还是处于不可访问的状态,其中中央处理单元从存储装置接收管芯的状态信息,并且将与管芯的每个匹配的状态信息存储在控制器存储器缓冲器中。
Description
相关申请的交叉引用
本申请要求于2018年2月1日提交的、申请号为10-2018-0012908的韩国专利申请的优先权,其通过引用整体并入本文。
技术领域
本公开总体涉及一种具有主机和存储器控制器的电子***及其操作方法,并且更特别地,涉及一种具有主机和存储器控制器的、可以高效地管理存储器***和主机之间的命令队列的电子***以及该电子***的操作方法。
背景技术
电子***可以包括用于存储数据的存储器***和用于控制存储器***的主机。
存储器***可以包括存储装置和存储器控制器。
存储装置可以包括多个存储器装置,并且存储器装置可以存储数据或输出存储的数据。例如,存储器装置可以被配置为当电源被中断时存储的数据消失的易失性存储器装置或者被配置为即使在电源被中断时也保留存储的数据的非易失性存储器装置。
存储器控制器可以控制主机和存储装置之间的数据通信。
主机可以通过使用诸如以下的接口协议通过存储器控制器与存储装置通信:高速***组件互连(PCI-E)、高级技术附件(SATA)、串联ATA(SATA)、并联ATA(PATA)或串列SCSI(SAS)。主机和存储器***之间的接口协议不限于上述示例,并且可以包括诸如以下的各种接口协议:通用串行总线(USB)、多媒体卡(MMC)、增强型小型磁盘接口(ESDI)以及电子集成驱动器(IDE)。
发明内容
实施例提供了一种具有主机和存储器控制器的、可以高效地管理存储器***和主机之间的命令队列的电子***以及该电子***的操作方法。
根据本公开的方面,提供一种电子***,其包括:主机,其被配置为基于包括在存储装置中的管芯的状态,排队外部命令以等待或被输出;中央处理单元,其被配置为响应于从主机接收的请求或外部命令,生成用于控制存储装置的命令;以及控制器存储器缓冲器,其被配置为存储状态信息,其中状态信息指示管芯是处于可访问的状态还是处于不可访问的状态,其中中央处理单元从存储装置接收管芯的状态信息,并且将与管芯的每个匹配的状态信息存储在控制器存储器缓冲器中。
根据本公开的方面,提供一种电子***,其包括:存储装置,其被配置为包括用于存储数据的多个管芯;主机,其被配置为根据存储装置的状态输出请求或外部命令;以及存储器控制器,其被配置为响应于从主机接收的请求或外部命令来控制存储装置,其中存储器控制器包括控制器存储器缓冲器,其被配置为存储管芯的每个的状态信息并且响应于从主机接收的状态检查请求将管芯中的被选择管芯的状态信息输出到主机。
根据本公开的方面,提供一种操作电子***的方法,方法包括:当接收到状态检查请求时,将被选择管芯的状态信息存储在控制器存储器缓冲器中;将状态信息传输到主机;当存储在主机中的状态信息中包括忙碌状态数据时,主机排队外部命令以等待,直到被选择管芯处于空闲状态;当被选择管芯处于空闲状态时,从主机输出外部命令;响应于外部命令改变存储在控制器存储器缓冲器中的状态信息,并允许被选择管芯操作;并且当被选择管芯的操作完成时,重新改变存储在控制器存储器缓冲器中的状态信息。
根据本公开的方面,提供一种电子***,其包括:主机,其包括适于存储管芯状态信息的主机缓冲器,并且主机适于根据管芯状态信息选择性地提供操作请求;存储装置,其包括一个或多个管芯;以及控制器,其包括适于存储管芯状态信息的控制器缓冲器,并且控制器适于:响应于操作请求,控制存储装置对管芯中的目标管芯执行操作,同时在操作期间在控制器缓冲器中将对应于目标管芯的管芯状态信息标记为忙碌;并且响应于从主机提供的状态请求,通过控制存储装置向控制器缓冲器提供管芯状态信息而将管芯状态信息从控制器缓冲器传递到主机缓冲器。
附图说明
现在将参照附图在下文中更全面地描述示例性实施例;然而,它们可以以不同的形式体现并且不应当被解释为限于本文阐述的实施例。相反,提供这些实施例使得本公开将是彻底且完全的,并且将向本领域技术人员完全传达本示例性实施例的范围。
在附图中,为了说明的清楚起见,尺寸可能被夸大。将理解的是,当元件被称为在两个元件“之间”时,两个元件之间可以仅有一个元件,或也可存在一个或多个中间元件。相同的附图标记始终表示相同的元件。
图1是示出根据本公开的实施例的电子***的示图。
图2是详细示出图1的主机的示图。
图3是详细示出图1的存储器控制器的示图。
图4是详细示出图1的存储装置的示图。
图5是示出存储在主机存储器缓冲器中的信息的示图。
图6是示出存储在控制器存储器缓冲器中的信息的示图。
图7是示出存储器装置的示图。
图8是示出根据本公开的实施例的存储器***的操作方法的示图。
图9是示出包括如图1所示的主机和存储器***的电子***的另一实施例的示图。
图10是示出包括如图1所示的主机和存储器***的电子***的另一实施例的示图。
图11是示出包括如图1所示的主机和存储器***的电子***的另一实施例的示图。
图12是示出包括如图1所示的主机和存储器***的电子***的另一实施例的示图。
具体实施方式
在以下详细描述中,仅通过说明的方式已经仅示出并描述本公开的某些示例性实施例。如本领域技术人员将认识到的,描述的实施例可以以各种不同的方式修改,其所有均不脱离本公开的技术方案。因此,附图和描述在本质上被认为是说明性的而不是限制性的。
在整个说明书中,当元件被称为“连接”或“联接”到另一元件时,其可以直接地连接或联接到另一元件,或者可以在其间***一个或多个中间元件的情况下间接地连接或联接到另一元件。另外,当元件被称为“包括”部件时,除非存在不同的公开,否则这表示元件可以进一步包括另一部件,而不排除另一部件。
图1是示出根据本公开的实施例的电子***的示图。
参照图1,电子***10000可以包括用于存储数据的存储器***1000和用于控制存储器***1000的主机2000。
存储器***1000可以包括用于存储数据的存储装置1100、用于临时存储数据的缓冲存储器1300以及用于在主机2000的控制下控制存储装置1100和缓冲存储器1300的存储器控制器1200。
主机2000可以使用诸如以下的各种通信方式中的至少一种与存储器***1000通信:通用串行总线(USB)、串行AT附件(SATA)、高速片间(HSIC)、小型计算机***接口(SCSI)、火线、***组件互联(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和低负载DIMM(LRDIMM)等。
存储器控制器1200可以控制存储器***1000的整体操作,并且控制主机2000和存储装置1100之间的数据交换。例如,存储器控制器1200可以响应于主机2000的请求,通过控制存储装置1100来编程或读取数据。而且,存储器控制器1200可以存储关于包括在存储装置1100中的主存储块和子存储块的信息并且根据针对编程操作加载的数据量,使存储装置1100选择对主存储块或子存储块执行编程操作。在一些实施例中,存储装置1100可以包括闪速存储器。
存储器控制器1200可以控制主机2000与缓冲存储器1300之间的数据交换,或者将用于控制存储装置1100的***数据临时存储在缓冲存储器1300中。缓冲存储器1300可以用作存储器控制器1200的工作存储器、高速缓冲存储器或缓冲存储器。缓冲存储器1300可以存储由存储器控制器1200执行的代码和命令。而且,缓冲存储器1300可以存储由存储器控制器1200处理的数据。
存储器控制器1200可以将从主机200输入的数据临时存储在缓冲存储器1300中,并且随后将临时存储在缓冲存储器1300中的数据传输到存储装置1100以存储在存储装置1100中。而且,存储器控制器1200可以接收从主机2000输入的数据和逻辑地址,并且将逻辑地址转换为指示数据将被实际存储在存储装置1100中的区域的物理地址。而且,存储器控制器1200可以将逻辑到物理地址映射表存储在缓冲存储器1300中,其中逻辑到物理地址映射表建立逻辑地址与物理地址之间的映射关系。
在一些实施例中,缓冲存储器1300可以包括双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)等。
图2是详细示出图1的主机2000的示图。
参照图2,主机2000可以包括主机处理器2100、主机存储器缓冲器(HMB)2200和存储接口2300。主机处理器2100、HMB 2200和存储接口2300可以通过总线2400彼此通信。
主机处理器2100可以生成用于存储器***1000的编程操作的编程请求、用于存储器***1000的读取操作的读取请求等。例如,编程请求可以包括传输到存储器***1000的编程外部命令和物理地址。例如,读取请求可以包括传输到存储器***1000的读取外部命令和物理地址。另外,主机处理器2100可以控制将诸如擦除请求的各种操作请求、固件等传输到存储器***1000的操作。例如,主机处理器2100可以控制待被传输到存储器***1000的命令队列。例如,主机处理器2100可以基于存储在HMB 2200中的信息来控制命令队列。例如,主机处理器2100可以被配置为基于存储在HMB 2200中的信息,当存储器***1000中不存在任何空闲存储器装置时不输出外部命令而是等待,并且当存储器***1000中存在空闲存储器装置时输出外部命令。HMB 2200可以存储包括在存储器***1000中的存储装置1100的状态信息。例如,HMB 2200可以存储关于构成存储装置1100的管芯的当前状态的信息。例如,HMB 2200可以存储关于管芯是处于当前可被访问的空闲状态还是处于不可被访问的忙碌状态的信息。例如,当从存储器***1000接收到管芯的状态信息时,主机处理器2100可以更新存储在主机存储器缓冲器2200中的管芯的状态信息。
存储接口2300可以通过使用诸如以下的接口协议与存储器***1000通信:高速***组件互联(PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、串列SCSI(SAS)或高速非易失性存储器(NVMe)。存储接口2300不限于上述示例,并且可以包括诸如以下的各种接口:通用串行总线(USB)、多媒体卡(MMC)、增强型小型磁盘接口(ESDI)以及电子集成驱动器(IDE)。例如,主机2000和存储器***1000可以通过存储接口2300彼此通信。
图3是详细示出图1的存储器控制器1200的示图。
参照图3,存储器控制器1200可以包括中央处理单元(CPU)1210、内部存储器1220、NAND接口1230、控制器存储器缓冲器(CMB)1240和主机接口1250以控制主机2000和存储装置1100之间的通信。
CPU 1210可以执行用于控制存储装置1100的各种计算,生成命令和地址或执行固件。当从主机2000接收到请求时,CPU 1210可以响应于接收的请求生成命令,将包括在存储装置1100中的管芯的状态信息存储在CMB 1240中或者将状态信息传输到主机2000。而且,CPU 1210可以响应于从主机2000接收的外部命令,临时改变存储在CMB 1240中的状态信息并且允许存储装置1100执行操作。而且,当存储装置1100的操作结束时,CPU 1210可以恢复改变的状态信息。
内部存储器1220可以存储执行存储器控制器1200的操作所需的各种***信息。例如,内部存储器1220可以利用SRAM来实施。内部存储器1220可以包括用于存储执行存储器***1000的操作所需的各种***信息的表。地址映射信息可以被存储在内部存储器1220中。例如,内部存储器1220可以存储从主机2000接收的逻辑地址和存储装置1100的物理地址的映射表。
NAND接口1230可以被配置为在CPU 1210的控制下与存储装置1100通信。NAND接口1230可以通过通道与存储装置1100通信命令、地址和数据。
CMB 1240可以存储包括在存储装置1100中的管芯的地址和每个管芯的状态信息。
主机接口1250可以被配置为在CPU 1210的控制下与联接到存储器***1000的外部主机2000通信。例如,主机接口1250可以从主机2000接收编程外部命令、数据和对应于编程外部命令的逻辑地址。而且,主机接口1250可以从主机2000接收读取外部命令和与读取外部命令相对应的逻辑地址。
图4是详细示出图1的存储装置的示图。
参照图4,存储装置1100可以包括多个管芯100。例如,固态硬盘(SSD)可以包括用于存储数据的多个管芯100。管芯100可以通过通道CH1至CHk与NAND接口1230通信。例如,第一通道CH1至第k通道CHk可以联接到NAND接口1230,并且多个管芯100可以联接到第一通道CH1至第k通道CHk中的每一个。联接到相同通道的管芯100不能同时操作,但是联接到不同通道的管芯100可以同时操作。因此,命令可以沿着命令队列被顺序地传输到联接到相同通道的管芯100。
图5是示出存储在HMB 2200中的信息的示图。
参照图5,管芯的地址和每个管芯的状态信息ST可以被存储在HMB 2200中。例如,当从存储器控制器1200传输的状态信息ST被接收到主机2000时,接收的状态信息ST可以被存储在主机2000中包括的HMB 2200中。可以针对管芯Die1至Diei(‘i’是正整数)中的每一个存储状态信息ST。
例如,第一管芯Die1的地址和第一管芯Die1的状态信息ST可以被匹配并存储在HMB2200中,并且第二管芯Die2的地址和第二管芯Die2的状态信息ST可以被匹配并存储在HMB2200中。以该方式,第i管芯Diei的地址和第i管芯Diei的状态信息ST可以被匹配并存储在HMB 2200中。
另外,当从存储器控制器1200接收到特定管芯的状态信息ST时,HMB 2200的对应管芯的状态信息ST可以被更新。状态信息ST可以包括关于管芯Die的当前状态是空闲状态还是忙碌状态的信息。例如,当第一管芯Die1当前处于空闲状态时,第一管芯Die1的状态信息ST可以包括空闲状态数据Id。当第二管芯Die2当前处于操作中时,第二管芯Die2的状态信息ST可以包括忙碌状态数据Bs。
主机处理器(图2的2100)可以允许在命令队列CMD Queue中排队的外部命令CMD等待或被输出到存储器***1000。例如,在输出外部命令CMD之前,主机处理器2100可以检查存储在HMB 2200中的被选择管芯的状态信息ST,并且根据被选择管芯的状态信息ST来允许外部命令CMD在命令队列CMD Queue中等待或被输出到存储器***1000。
例如,当响应于外部命令CMD执行操作的管芯Die处于空闲状态时,主机处理器2100可以将外部命令CMD输出到存储器***1000。当执行外部命令CMD的管芯处于忙碌状态时,主机处理器2100可以允许对应的外部命令在命令队列CMD Queue中等待片刻。
例如,当响应于第一外部命令CMD1执行操作的管芯当前处于空闲状态时,主机2000可以输出第一外部命令CMD1。然而,当响应于第二外部命令CMD2执行操作的管芯当前处于忙碌状态时,主机2000可以允许第二外部命令CMD2在命令队列CMD Queue中等待,直到对应管芯的状态变为空闲状态。
为了检查被选择管芯的当前状态,主机处理器2100可以将状态检查请求输出到存储器控制器1200。当从主机处理器2100接收到状态检查请求时,存储器控制器1200可以检查被选择管芯的当前状态,并且将被选择管芯的状态信息ST传输到主机2000。
图6是示出存储在CMB 1240中的信息的示图。
参照图6,管芯的地址和管芯中的每一个的状态信息ST可以被存储在CMB 1240中。例如,当从主机2000接收到状态检查请求时,存储器控制器(图3的1200)的CPU(图3的1210)可以从存储装置1100接收被选择管芯的状态信息ST。接收的状态信息ST可以是空闲状态数据Id或忙碌状态数据Bs。
随后,CPU 1210可以将被选择管芯的状态信息传输到主机2000。传输到主机2000的状态信息ST可以与包括在主机2000中的HMB 2200的被选择管芯匹配,并且被存储在HMB2200中。
图7是示出存储器装置的示图。
参照图7,存储装置(图4的1100)包括多个管芯100。管芯100中的每一个可以配置有存储器装置。管芯100可以彼此相同地配置,并且因此,构成任何一个管芯100的存储器装置将被作为示例描述。
存储器装置可以包括用于存储数据的存储器单元阵列110、被配置为执行诸如编程操作、读取操作和擦除操作的各种操作的***电路(PERI)120以及用于控制***电路120的控制逻辑(CON)130。
存储器单元阵列110可以包括多个存储块BLK。***电路120可以在控制逻辑130的控制下对存储块BLK中的被选择存储块BLK执行编程操作、读取操作或擦除操作。NAND闪速存储器将被作为示例描述。存储块BLK中的每一个包括多个页面,并且多个存储器单元可以联接到每个页面。NAND闪速存储器装置可以在编程操作或读取操作中以页面为单位操作,并且在擦除操作中以块为单位操作。
将如下对存储装置1100、存储器控制器1200和主机2000之间的操作方法进行描述。
图8是示出根据本公开的实施例的存储器***的操作方法的示图。
参照图8,存储器控制器1200可以允许存储装置1100响应于从主机2000接收的编程请求、读取请求或擦除请求而操作。在下文中,在实施例中,读取操作将被作为示例描述。
在步骤S81处,主机2000可以生成待被传输到存储器控制器1200的读取外部命令R_CMD,并且在步骤S82处,可以将状态检查请求ST_Req传输到存储器控制器1200。
当从主机2000接收到状态检查请求ST_Req时,在步骤S83处,存储器控制器1200可以接收存储装置1100的被选择管芯的状态信息ST。例如,当在存储装置1100的被选择管芯中执行诸如擦除操作的后台操作时,在步骤S83处,存储装置1100可以输出包括忙碌状态数据Bs的状态信息ST,其中忙碌状态数据Bs指示不可访问被选择管芯。可选地,当被选择管芯处于可访问的状态时,存储装置1100可以将包括被选择管芯的空闲状态数据Id的状态信息传输到存储器控制器1200。
在步骤S84处,可以在存储器控制器1200的CMB中存储或更新从存储装置1100接收的状态信息ST。例如,可以在初始状态下存储与被选择管芯匹配的状态信息ST,初始状态为不存在与被选择管芯匹配的任何状态信息ST。当与被选择管芯匹配的状态信息已经存在于CMB中时,可以将被选择管芯的状态信息ST更新为当前接收的状态信息ST。状态信息ST可以是空闲状态数据Id或忙碌状态数据Bs。
在步骤S85处,存储器控制器1200可以将被选择管芯的状态信息ST传输到主机2000。
在步骤S86处,可以将传输到主机2000的状态信息ST存储在HMB中。例如,状态信息可以与被选择管芯匹配以被存储在HMB中。
主机处理器(图2的2100)可以根据存储在HMB中的状态信息ST,将状态检查请求ST_Req或读取外部命令R_CMD传输到存储器控制器1200。例如,在步骤S87处,当HMB中的与被选择管芯匹配的状态信息ST包括忙碌状态数据Bs时,被选择管芯当前正在操作。在该情况下,虽然下一个命令被提供至存储装置1100,但是不能响应于下一个命令执行操作。因此,主机处理器2100可以重新将状态检查请求ST_Req传输到存储器控制器1200。即,不立即输出在主机处理器2100的命令队列中等待的命令,并且可以重复步骤S82至S87,直到被选择管芯的状态信息ST包括空闲状态数据Id。
当随着被选择管芯的操作结束,被选择管芯的状态从忙碌状态变为空闲状态时,在步骤S83中,可以将包括空闲状态数据Id的状态信息ST传输到存储器控制器1200。因此,在步骤S84中,存储器控制器1200将被选择管芯的状态信息ST的忙碌状态数据Bs更新为空闲状态数据Id。
当在步骤S85中将包括空闲状态数据Id的状态信息ST传输到主机2000时,可以将主机2000的HMB的与被选择管芯匹配的状态信息ST更新为包括空闲状态数据Id的状态信息ST。当在步骤S88中,确定了空闲状态数据Id被包括在HMB的与被选择管芯匹配的状态信息ST中时,在步骤S89中主机处理器2100可以将在命令队列中等待的读取外部命令R_CMD传输到存储器控制器1200。
当接收到读取外部命令R_CMD时,存储器控制器1200可以将CMB的被选择管芯的状态信息ST临时改变为包括忙碌状态数据BS的状态信息ST。即,将在被选择管芯中执行与从主机2000接收的读取外部命令R_CMD相对应的操作,并且因此,CPU(图3的1210)可以将被选择管芯的状态信息ST临时改变为忙碌状态,使得在正在执行对应操作的同时另一命令不访问被选择管芯。即,为了当被选择管芯处于空闲状态时使被选择管芯执行从主机请求的操作,CPU 1210可以将CMB的与被选择管芯匹配的状态信息ST临时改变为忙碌状态。
随后,CPU 1210可以将命令和地址传输到被选择管芯,使得在步骤S91中存储装置100的被选择管芯响应于从主机2000接收的读取外部命令R_CMD执行读取操作。
当在被选择管芯中结束读取操作时,在步骤S92中,CPU 1210可以将CMB的与被选择管芯匹配的状态信息ST重新改变为空闲状态。
如上所述,存储装置1100的管芯中的每一个的当前状态信息ST被存储在主机2000中,并且根据存储的状态信息ST将命令输出到主机2000,使得可以高效地管理命令队列。
图9是示出包括如图1所示的主机和存储器***的电子***的另一实施例的示图。
参照图9,电子***30000可以被实施为蜂窝电话、智能电话、平板PC、个人数字助理(PDA)或无线通信装置。
电子***30000可以包括存储装置1100、能够控制存储装置1100的操作的存储器控制器1200以及能够控制存储器控制器1200的主机2000。存储器控制器1200可以在主机2000的控制下控制存储装置1100的数据访问操作,例如,编程操作、擦除操作、读取操作等。
如上所述,在主机2000向存储器控制器1200请求外部命令之前,主机2000可以接收存储装置1100的状态信息,并且基于状态信息确定存储装置1100中是否存在处于空闲状态的存储器装置。当确定不存在处于空闲状态的任何存储器装置时,主机2000可以允许外部命令等待,直到产生处于空闲状态的存储器装置。
编程在存储装置1100中的数据可以在存储器控制器1200的控制下通过显示器3200输出。
无线电收发器3300可以通过天线ANT发射/接收无线电信号。例如,无线电收发器3300可以将通过天线ANT接收的无线电信号转换为可以由主机2000处理的信号。因此,主机2000可以处理从无线电收发器3300输出的信号并且将处理后的信号传输到存储器控制器1200或显示器3200。存储器控制器1200可以将由主机2000处理的信号传输到存储装置1100。并且,无线电收发器3300可以将从主机2000输出的信号转换为无线电信号,并且通过天线ANT将转换的无线电信号输出到外部装置。输入装置3400是能够输入用于控制主机2000的操作的控制信号或待由主机2000处理的数据的装置,并且可以被实施为诸如触摸板或计算机鼠标、小键盘或键盘的定点装置。主机2000可以控制显示器3200的操作,使得从存储器控制器1200输出的数据、从无线电收发器3300输出的数据或从输入装置3400输出的数据通过显示器3200输出。
图10是示出包括如图1所示的主机和存储器***的电子***的另一实施例的示图。
参照图10,电子***40000可以被实施为个人计算机(PC)、平板PC、上网本、电子阅读器、个人数字助理(PDA)、便携式多媒体播放器(PMP)、MP3播放器或MP4播放器。
电子***40000可以包括存储装置1100、能够控制存储装置1100的数据处理操作的存储器控制器1200以及能够控制存储器控制器1200的主机2000。
如上所述,在主机2000向存储器控制器1200请求外部命令之前,主机2000可以接收存储装置1100的状态信息,并且基于状态信息确定存储装置1100中是否存在处于空闲状态的存储器装置。当确定不存在处于空闲状态的任何存储器装置时,主机2000可以允许外部命令等待,直到产生处于空闲状态的存储器装置。
主机2000可以根据通过输入装置4200输入的数据通过显示器4300输出存储在存储装置1100中的数据。例如,输入装置4200可以被实施为诸如触摸板或计算机鼠标、小键盘或键盘的定点装置。
主机2000可以控制电子***40000的全部操作并且控制存储器控制器1200的操作。
图11是示出包括如图1所示的主机和存储器***的电子***的另一实施例的示图。
参照图11,电子***50000可以被实施为图像处理装置,例如,数码相机、具有附接到其的数码相机的移动终端、具有附接到其的数码相机的智能手机、或具有附接到其的数码相机的平板PC。
电子***50000可以包括存储装置1100、能够控制存储装置1100的例如编程操作、擦除操作或读取操作的数据处理操作的存储器控制器1200以及能够控制存储器控制器1200的主机2000。
如上所述,在主机2000向存储器控制器1200请求外部命令之前,主机2000可以接收存储装置1100的状态信息,并且基于状态信息确定存储装置1100中是否存在处于空闲状态的存储器装置。当确定不存在处于空闲状态的任何存储器装置时,主机2000可以允许外部命令等待,直到产生处于空闲状态的存储器装置。
电子***50000的图像传感器5200可以将光学图像转换成数字信号,并且转换后的数字信号可以被传输到主机2000。在主机2000的控制下,转换后的数字信号可以通过显示器5300输出,或通过存储器控制器1200存储在存储装置1100中。另外,存储在存储装置1100中的数据可以在主机2000的控制下通过显示器5300输出。
图12是示出包括如图1所示的主机和存储器***的电子***的另一实施例的示图。
参照图12,电子***可以包括主机2000和存储卡70000。
在主机2000向存储器控制器1200请求外部命令之前,主机2000可以接收存储装置1100的状态信息,并且基于状态信息确定存储装置1100中是否存在处于空闲状态的存储器装置。当确定不存在处于空闲状态的任何存储器装置时,主机2000可以允许外部命令等待,直到产生处于空闲状态的存储器装置。
存储卡70000可以利用智能卡来实施。存储卡70000可以包括存储装置1100、存储器控制器1200和卡接口7100。
存储器控制器1200可以控制存储装置1100和卡接口7100之间的数据交换。在一些实施例中,卡接口7100可以是安全数字(SD)卡接口或多媒体卡(MMC)接口,但是本公开不限于此。而且,卡接口7100可以根据主机2000的协议来接口连接主机2000和存储器控制器1200之间的数据交换。在一些实施例中,卡接口7100可以支持通用串行总线(USB)协议和芯片间(IC)-USB协议。卡接口7100可以指能够支持由主机2000使用的协议的硬件、嵌入在硬件中的软件或者信号传输方案。
根据本公开,高效地管理了主机和存储器***之间的命令队列,从而改善了电子***的操作。
本文已经公开示例实施例,并且虽然采用特定术语,但是它们仅被用于和解释为通用和描述性的含义,而不是为了限制的目的。在一些情况下,如从提交本申请起对于本领域普通技术人员显而易见的是,结合特定实施例描述的特征、特性和/或元件可以单独使用或与结合其他它实施例描述的特征、特性和/或元件结合使用,除非另有具体说明。因此,本领域技术人员将理解,在不脱离如所附权利要求中阐述的本公开的技术方案的情况下,可以进行形式和细节上的各种改变。
Claims (22)
1.一种电子***,包括:
主机,基于包括在存储装置中的管芯的状态信息,排队外部命令以等待或被输出;以及
存储器控制器,在所述主机的控制下控制所述存储装置,
其中,所述存储器控制器包括:
中央处理单元,响应于从所述主机接收的请求或所述外部命令,生成用于控制所述存储装置的命令;以及
控制器存储器缓冲器,存储所述状态信息,所述状态信息指示所述管芯是处于可访问的状态还是处于不可访问的状态,并且
其中所述中央处理单元从所述存储装置接收所述管芯的状态信息,并且将与所述管芯的每个匹配的状态信息存储在所述控制器存储器缓冲器中。
2.根据权利要求1所述的电子***,其中所述控制器存储器缓冲器存储所述管芯的每个的地址和与所述管芯的每个的地址匹配的状态信息。
3.根据权利要求1所述的电子***,其中当从所述主机接收到状态信息检查请求时,所述中央处理单元:
响应于所述状态信息检查请求,从所述存储装置的被选择管芯接收所述状态信息;以及
在所述控制器存储器缓冲器中存储或更新从所述被选择管芯接收的状态信息。
4.根据权利要求1所述的电子***,其中当从所述主机接收到所述外部命令时,所述中央处理单元:
改变所述控制器存储器缓冲器中的与被选择管芯匹配的状态信息;以及
将命令和地址传输到所述存储装置,使得所述被选择管芯操作。
5.根据权利要求4所述的电子***,其中在所述控制器存储器缓冲器中,改变之前的所述状态信息包括空闲状态数据,并且改变之后的所述状态信息包括忙碌状态数据。
6.根据权利要求5所述的电子***,其中当所述被选择管芯的操作结束时,所述中央处理单元重新改变所述控制器存储器缓冲器的状态信息以包括所述空闲状态数据。
7.根据权利要求1所述的电子***,其中所述主机包括:
主机存储器缓冲器,存储所述管芯的状态信息;以及
主机处理器,根据存储在所述主机存储器缓冲器中的状态信息来确定所述管芯的状态。
8.根据权利要求7所述的电子***,其中所述主机处理器:
当所述管芯中不存在处于空闲状态的任何管芯时,不输出所述外部命令而是允许所述外部命令等待;并且
当所述管芯中存在处于所述空闲状态的管芯时,输出所述外部命令。
9.一种电子***,包括:
存储装置,包括用于存储数据的多个管芯;
主机,基于所述存储装置的状态输出请求或外部命令;以及
存储器控制器,响应于从所述主机接收的所述请求或所述外部命令来控制所述存储装置,
其中所述存储器控制器包括控制器存储器缓冲器,所述控制器存储器缓冲器存储所述管芯的每个的状态信息,并且响应于从所述主机接收的状态信息检查请求将所述管芯中的被选择管芯的状态信息输出到所述主机。
10.根据权利要求9所述的电子***,其中所述存储器控制器:
当从所述主机接收到所述状态信息检查请求时,从所述被选择管芯接收所述状态信息;并且
将所述状态信息与所述被选择管芯匹配并且将所述状态信息存储在所述控制器存储器缓冲器中。
11.根据权利要求10所述的电子***,其中在将所述状态信息存储在所述控制器存储器缓冲器中之后,所述存储器控制器将所述状态信息传输到所述主机。
12.根据权利要求9所述的电子***,其中所述存储器控制器进一步包括内部存储器,所述内部存储器存储逻辑地址和物理地址的映射表。
13.根据权利要求9所述的电子***,其中所述主机包括:
主机接口,与所述存储器控制器通信所述请求或所述外部命令;
主机存储器缓冲器,存储从所述存储器控制器接收的所述状态信息;以及
主机处理器,控制所述主机接口和所述主机存储器缓冲器。
14.根据权利要求13所述的电子***,其中所述主机处理器基于存储在所述主机存储器缓冲器中的状态信息,允许待被传输到所述存储器控制器的外部命令等待或被传输。
15.根据权利要求14所述的电子***,其中所述主机处理器:
当与所述被选择管芯匹配的状态信息包括忙碌状态数据时,允许所述外部命令等待;并且
当与所述被选择管芯匹配的状态信息包括空闲状态数据时,将所述外部命令传输到所述存储器控制器。
16.根据权利要求15所述的电子***,其中当从所述主机接收到所述外部命令时,所述存储器控制器:
改变所述控制器存储器缓冲器中的与被选择管芯匹配的状态信息;并且
将命令和地址传输到所述存储装置,使得所述被选择管芯操作。
17.根据权利要求16所述的电子***,其中当从所述主机接收到所述外部命令时,
当所述控制器存储器缓冲器中的与所述被选择管芯匹配的状态信息中包括空闲状态数据时,所述存储器控制器改变所述状态信息,使得所述状态信息中包括忙碌状态数据。
18.根据权利要求17所述的电子***,其中当所述被选择管芯的操作结束时,所述存储器控制器重新改变所述控制器存储器缓冲器的状态信息以包括所述空闲状态数据。
19.一种操作电子***的方法,所述方法包括:
当接收到管芯的状态信息检查请求时,将被选择管芯的状态信息存储在控制器存储器缓冲器中;
将所述状态信息传输到主机;
当存储在所述主机中的状态信息中包括忙碌状态数据时,所述主机排队外部命令以等待,直到所述被选择管芯处于空闲状态;
当所述被选择管芯处于所述空闲状态时,从所述主机输出所述外部命令;
响应于所述外部命令改变存储在所述控制器存储器缓冲器中的状态信息,并且允许所述被选择管芯操作;并且
当所述被选择管芯的操作完成时,重新改变存储在所述控制器存储器缓冲器中的状态信息。
20.根据权利要求19所述的方法,其中所述状态信息:
在所述被选择管芯正在操作时,包括所述忙碌状态数据;并且
在所述被选择管芯不操作时,包括空闲状态数据。
21.根据权利要求20所述的方法,其中当存储在所述控制器存储器缓冲器中的状态信息中包括所述空闲状态数据时,将所述状态信息改变为包括所述忙碌状态数据,并且所述被选择管芯操作。
22.根据权利要求20所述的方法,其中当存储在所述主机中的状态信息中包括所述空闲状态数据时,输出所述外部命令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0012908 | 2018-02-01 | ||
KR1020180012908A KR20190093361A (ko) | 2018-02-01 | 2018-02-01 | 호스트 및 메모리 컨트롤러를 포함하는 전자 시스템 및 이의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110109851A CN110109851A (zh) | 2019-08-09 |
CN110109851B true CN110109851B (zh) | 2023-12-08 |
Family
ID=67393443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811105628.2A Active CN110109851B (zh) | 2018-02-01 | 2018-09-21 | 具有主机和存储器控制器的电子***及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11061607B2 (zh) |
KR (1) | KR20190093361A (zh) |
CN (1) | CN110109851B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110737607B (zh) * | 2019-09-30 | 2021-09-14 | 深圳忆联信息***有限公司 | 管理hmb内存的方法、装置、计算机设备及存储介质 |
US11586393B2 (en) * | 2020-12-30 | 2023-02-21 | Macronix International Co., Ltd. | Control method for requesting status of flash memory, flash memory die and flash memory with the same |
US11487449B2 (en) * | 2021-02-22 | 2022-11-01 | Western Digital Technologies, Inc. | Data storage device and method for enabling higher lane utilization in run time via device hints on workload patterns |
KR20230046356A (ko) * | 2021-09-29 | 2023-04-06 | 삼성전자주식회사 | 메모리 장치, 메모리 장치의 동작 방법, 그리고 메모리 장치를 포함하는 전자 장치 |
US20240094911A1 (en) * | 2022-09-20 | 2024-03-21 | Western Digital Technologies, Inc. | Dynamic And Shared CMB And HMB Allocation |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101751344A (zh) * | 2008-12-03 | 2010-06-23 | 辉达公司 | 压缩状态位高速缓存和后备存储件 |
KR20130047578A (ko) * | 2011-10-31 | 2013-05-08 | 애플 인크. | 비휘발성 메모리 상태 정보를 획득하여 이용하기 위한 시스템들 및 방법들 |
CN106980581A (zh) * | 2016-01-18 | 2017-07-25 | 爱思开海力士有限公司 | 存储器件及操作其的方法 |
CN107622019A (zh) * | 2016-07-14 | 2018-01-23 | 爱思开海力士有限公司 | 存储器***及其操作方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7373471B2 (en) * | 2005-02-09 | 2008-05-13 | International Business Machines Corporation | Executing background writes to idle DIMMs |
KR20100115583A (ko) * | 2009-04-20 | 2010-10-28 | 삼성전자주식회사 | 데이터 저장 시스템 |
US20150058532A1 (en) | 2013-08-26 | 2015-02-26 | Kabushiki Kaisha Toshiba | Memory device, information-processing device and information-processing method |
US9507704B2 (en) * | 2014-06-13 | 2016-11-29 | Sandisk Technologies Llc | Storage module and method for determining ready/busy status of a plurality of memory dies |
US10042648B2 (en) | 2015-09-10 | 2018-08-07 | Toshiba Memory Corporation | Memory system, electric device, and information processing device |
KR20180062247A (ko) * | 2016-11-30 | 2018-06-08 | 삼성전자주식회사 | 효율적인 버퍼 할당을 수행하는 컨트롤러, 스토리지 장치 및 스토리지 장치의 동작 방법 |
US10379765B2 (en) * | 2017-06-27 | 2019-08-13 | Western Digital Technologies, Inc. | Geometry-aware command scheduling |
US10235309B1 (en) * | 2017-11-28 | 2019-03-19 | Western Digital Technologies, Inc. | Combined control for multi-die flash |
-
2018
- 2018-02-01 KR KR1020180012908A patent/KR20190093361A/ko unknown
- 2018-08-28 US US16/114,722 patent/US11061607B2/en active Active
- 2018-09-21 CN CN201811105628.2A patent/CN110109851B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101751344A (zh) * | 2008-12-03 | 2010-06-23 | 辉达公司 | 压缩状态位高速缓存和后备存储件 |
KR20130047578A (ko) * | 2011-10-31 | 2013-05-08 | 애플 인크. | 비휘발성 메모리 상태 정보를 획득하여 이용하기 위한 시스템들 및 방법들 |
CN106980581A (zh) * | 2016-01-18 | 2017-07-25 | 爱思开海力士有限公司 | 存储器件及操作其的方法 |
CN107622019A (zh) * | 2016-07-14 | 2018-01-23 | 爱思开海力士有限公司 | 存储器***及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US20190235790A1 (en) | 2019-08-01 |
US11061607B2 (en) | 2021-07-13 |
CN110109851A (zh) | 2019-08-09 |
KR20190093361A (ko) | 2019-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110109851B (zh) | 具有主机和存储器控制器的电子***及其操作方法 | |
CN110059032B (zh) | 存储器接口及具有存储器接口的存储器控制器 | |
CN110232035B (zh) | 存储器***以及存储器***的操作方法 | |
CN111324301B (zh) | 存储器控制器以及具有存储器控制器的存储器*** | |
US10684798B2 (en) | Memory controller and memory system having the same | |
CN110069426B (zh) | 存储器控制器及具有存储器控制器的存储器*** | |
US20190065102A1 (en) | Memory system and operating method thereof | |
US20220350655A1 (en) | Controller and memory system having the same | |
KR20170110810A (ko) | 데이터 처리 시스템 및 그것의 동작 방법 | |
KR20190051530A (ko) | 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법 | |
US11775211B2 (en) | Memory controller and method of operating the same | |
CN110162485B (zh) | 存储***及其操作方法 | |
CN110069427B (zh) | 存储器控制器以及存储器控制器的操作方法 | |
US20190294542A1 (en) | Memory system and operating method thereof | |
KR20190105869A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
CN111522504B (zh) | 存储器控制器以及包括存储器控制器的存储器*** | |
KR102577268B1 (ko) | 메모리 장치 및 이의 동작 방법 | |
US20190227746A1 (en) | Memory system and operating method thereof | |
US11157403B2 (en) | Controller and memory system for receiving a format request and configuring a map table | |
KR101175250B1 (ko) | 낸드 플래시 메모리 장치와 그의 컨트롤러 및 이들의 라이트 오퍼레이션 방법 | |
US20240012564A1 (en) | Memory controller and storage device including the same | |
US20230384936A1 (en) | Storage device, electronic device including storage device, and operating method thereof | |
US20240045806A1 (en) | Storage device, electronic device including the same, and operating method thereof | |
CN109933281B (zh) | 存储器***及其操作方法 | |
TW201604772A (zh) | 資料儲存裝置及操作該資料儲存裝置的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |