CN110059032B - 存储器接口及具有存储器接口的存储器控制器 - Google Patents
存储器接口及具有存储器接口的存储器控制器 Download PDFInfo
- Publication number
- CN110059032B CN110059032B CN201811109225.5A CN201811109225A CN110059032B CN 110059032 B CN110059032 B CN 110059032B CN 201811109225 A CN201811109225 A CN 201811109225A CN 110059032 B CN110059032 B CN 110059032B
- Authority
- CN
- China
- Prior art keywords
- command
- normal
- time
- memory
- controller
- 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
- 230000004044 response Effects 0.000 claims description 8
- 230000003111 delayed effect Effects 0.000 claims description 2
- 230000001934 delay Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 26
- 238000000034 method Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000000725 suspension Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised 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
-
- 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/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
-
- 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/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1621—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by maintaining request order
-
- 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
- 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
- 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/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- 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/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/0673—Single storage device
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)
- Debugging And Monitoring (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种存储器接口,该存储器接口包括:命令队列控制器,其被配置为确定正常命令和挂起命令的执行顺序;命令时间控制器,其被配置为接收正常命令,并通过向正常命令中的每一个提供对应的附加操作时间来输出命令和时间信息;命令时间管理器,其被配置为将命令和时间信息与待被存储在命令时间管理器中的正常命令中的每一个相匹配,并输出结束信号;以及输入/输出接口,其被配置为接收正常命令和挂起命令,并通过通道将正常命令和挂起命令传输到存储器装置。
Description
相关申请的交叉引用
本申请要求于2018年1月19日提交的、申请号为10-2018-0007195的韩国专利申请的优先权,其通过引用整体并入本文。
技术领域
本公开的各个实施例总体涉及一种存储器接口、具有存储器接口的存储器控制器以及具有存储器控制器的存储器***。特别地,本公开的实施例涉及一种用于管理命令的存储器接口、具有存储器接口的存储器控制器以及具有存储器控制器的存储器***。
背景技术
通常,存储器***可以包括存储器装置和存储器控制器。
存储器装置可以存储数据或输出存储的数据。例如,存储器装置可以被配置为当电源掉电时其内存储的数据丢失的易失性存储器装置或者被配置为即使在电源掉电时其内也保留存储的数据的非易失性存储器装置。
存储器控制器可以控制主机和存储器装置之间的数据通信。
主机可以通过使用诸如以下的接口协议通过存储器控制器与存储器装置通信:高速***组件互连(PCI-E)、高级技术附件(ATA)、串联ATA(SATA)、并联ATA(PATA)或串列SCSI(SAS)。主机和存储器***之间的接口协议不限于上述示例,并且可以包括诸如以下的各种接口协议:通用串行总线(USB)、多媒体卡(MMC)、增强型小型磁盘接口(ESDI)以及电子集成驱动器(IDE)。
发明内容
本公开的实施例提供一种用于管理诸如正常命令和挂起(suspend)命令的命令的存储器接口、具有存储器接口的存储器控制器以及具有存储器控制器的存储器***。
根据本公开的方面,提供一种存储器接口,其包括:命令队列控制器,其被配置为确定正常命令和挂起命令的执行顺序;命令时间控制器,其被配置为接收正常命令,并通过向正常命令中的每一个提供对应的附加操作时间来输出命令和时间信息;命令时间管理器,其被配置为将命令和时间信息与待被存储在命令时间管理器中的正常命令中的每一个相匹配,并输出结束信号;以及输入/输出接口,其被配置为接收正常命令和挂起命令,并通过通道将正常命令和挂起命令传输到存储器装置。
根据本公开的方面,提供一种存储器控制器,其包括:中央处理单元,其被配置为响应于来自主机的请求生成正常命令和挂起命令;以及存储器接口,其被配置为将正常命令或挂起命令传输到存储器装置,其中存储器接口:如果接收到正常命令,则向正常命令提供附加操作时间,并将正常命令传输到存储器装置;并且如果接收到挂起命令,则在附加操作时间内执行正常命令,并将挂起命令传输到存储器装置。
根据本公开的方面,提供一种存储器***,其包括:存储器装置,其被配置为存储数据;以及存储器控制器,其被配置为响应于来自主机的请求生成正常命令或挂起命令,并且通过通道将正常命令或挂起命令传输到存储器装置,其中存储器控制器:如果生成正常命令,则向正常命令提供附加操作时间,然后将正常命令传输到存储器装置;并且如果生成挂起命令,则对挂起命令延迟附加操作时间,然后将挂起命令传输到存储器装置。
根据本公开的方面,提供一种存储器***,其包括:存储器装置;以及存储器控制器,其被配置为基于来自主机的正常命令和挂起命令来操作存储器装置,其中存储器控制器被配置为:如果在响应于正常命令对存储器装置执行操作的同时接收到挂起命令,则对挂起命令延迟预定操作时间,并且在预定操作时间内附加地执行针对正常命令的操作。
附图说明
现在将参照附图在下文中更全面地描述示例性实施例;然而,它们可以以不同的形式体现并且不应当被解释为限于本文阐述的实施例。相反,提供这些实施例使得本公开将是彻底且完全的,并且将向本领域技术人员完全传达本示例性实施例的范围。注意到,对“实施例”的参考不一定意味着仅仅一个实施例,并且对“实施例”的不同参考不一定针对相同的实施例。
在附图中,为了清楚说明起见,附图的尺寸可能被夸大。将理解的是,当元件被称为在两个元件“之间”时,两个元件之间可以仅有一个元件,或也可存在一个或多个中间元件。相同的附图标记始终表示相同的元件。
图1是示出根据本公开的实施例的存储器***的示图。
图2是示出根据本公开的实施例的存储器控制器的示图。
图3是示出根据本公开的实施例的存储器接口的示图。
图4是示出根据本公开的实施例的命令队列控制器的示图。
图5是示出根据本公开的实施例的命令时间控制器的示图。
图6和图7是示出根据本公开的实施例的命令时间管理器的实施例的示图。
图8是示出根据本公开的实施例的执行正常命令的方法的示图。
图9是示出根据本公开的实施例的执行挂起命令的方法的示图。
图10是示出根据本公开的实施例的包括存储器控制器和存储器装置的存储器***的示图。
图11是示出根据本公开的实施例的包括存储器控制器和存储器装置的存储器***的示图。
图12是示出根据本公开的实施例的包括存储器控制器和存储器装置的存储器***的示图。
图13是示出根据本公开的实施例的包括存储器控制器和存储器装置的存储器***的示图。
具体实施方式
在以下详细描述中,仅通过说明的方式已经仅示出并描述本公开的某些示例性实施例。如本领域技术人员将认识到的,描述的实施例可以以各种不同的方式修改,其所有均不脱离本公开的精神或范围。因此,附图和描述在本质上被认为是说明性的而不是限制性的。
在整个说明书中,当元件被称为“连接”或“联接”到另一元件时,其可以直接地连接或联接到另一元件,或者可以在其间***一个或多个中间元件的情况下间接地连接或联接到另一元件。另外,当元件被称为“包括”部件时,除非存在不同的公开,否则这表示元件可以进一步包括另一部件,而不排除另一部件。
图1是示出根据本公开的实施例的存储器***1000的示图。
参照图1,存储器***1000可以包括用于存储数据的存储器装置1100以及在主机2000的控制下用于控制存储器装置1100的存储器控制器1200。
主机2000可以通过使用诸如以下的接口协议与存储器***1000通信:高速***组件互连(PCI-E)、高级技术附件(ATA)、串联ATA(SATA)、并联ATA(PATA)或串列SCSI(SAS)。主机2000和存储器***1000之间的接口协议不限于上述示例,并且可以进一步包括诸如以下的接口协议:通用串行总线(USB)、多媒体卡(MMC)、增强型小型磁盘接口(ESDI)和电子集成驱动器(IDE)。
存储器控制器1200可以控制存储器***1000的整体操作,并且控制主机2000和存储器装置1100之间的数据交换。例如,存储器控制器1200可以修改接收的信息,使得命令、地址和数据可以在主机2000和存储器装置1100之间通信,并且存储并输出修改的信息。例如,存储器控制器1200可以控制存储器装置1100执行编程操作、读取操作或擦除操作。作为示例而非限制,存储器装置1100可以包括诸如双倍数据速率同步动态随机存取存储器(DDRSDRAM)、低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)的易失性存储器以及诸如闪速存储器的非易失性存储器。
存储器控制器1200可以顺序地执行通常根据命令队列执行的正常命令。并且,存储器控制器1200可以使用挂起命令来控制存储器装置1100,使得在正常命令之前执行特定操作。因此,不管正常命令的队列如何,都优先地执行挂起命令。存储器控制器1200可以为正常命令中的每一个提供附加操作时间,并且控制正常命令,使得在执行挂起命令时的附加操作时间期间进一步执行对应于正常命令中的每一个的操作。
图2是示出根据本公开的实施例的例如图1的存储器控制器1200的存储器控制器的示图。
参照图2,存储器控制器1200可以包括缓冲存储器1210、中央处理单元(CPU)1220、内部存储器1230、主机接口1240、错误校正码(ECC)电路1250以及控制主机2000和存储器装置1100之间的通信的存储器接口1260。缓冲存储器1210、CPU 1220、内部存储器1230、主机接口1240、ECC电路1250和存储器接口1260可以通过总线1270彼此通信。存储器接口1260可以通过通道1280与存储器装置1100通信。
缓冲存储器1210可以临时存储在存储器控制器1200和存储器装置1100之间通信的数据。例如,在编程操作中,在数据被传输到存储器装置1100之前,待被编程的数据可以被临时存储在缓冲存储器1210中。此时,当编程操作在存储器装置1100中失败时,可以重新使用存储的数据。在读取操作中,从存储器装置1100读取的数据可以被临时存储在缓冲存储器1210中。例如,如果具有固定大小的读取数据被临时存储在缓冲存储器1210中,则读取数据可以通过主机接口1240输出到主机2000。
CPU 1220可以执行用于控制存储器装置1100的各种操作或固件。CPU 1220可以响应于从主机2000接收的正常请求生成正常命令,或者响应于从主机2000接收的挂起请求生成挂起命令。
内部存储器1230可以被用作能够存储执行存储器控制器1200的操作所需的各种***信息的存储装置。例如,内部存储器1230可以利用静态随机存取存储器(SRAM)来实施。内部存储器1230可以包括存储执行存储器***1000的操作所需的各种***信息的表。
主机接口1240可以在CPU 1220的控制下与联接到存储器***1000的主机2000通信。例如,主机接口1240可以从主机2000接收写入命令、数据和对应于写入命令的逻辑地址。又例如,主机接口1240可以从主机2000接收读取命令和对应于读取命令的逻辑地址。
ECC电路1250可以检测或校正包括在从存储器装置1100读取的数据中的错误。例如,ECC电路1250可以通过存储器接口1260基于待被写入存储器装置1100中的数据来执行错误校正码(ECC)编码操作。对其执行ECC编码操作的数据可以通过存储器接口1260被传递到存储器装置1100。ECC电路1250可以通过存储器接口1260对从存储器装置1100接收的数据执行ECC解码。ECC电路1250可以基于博斯、查德胡里和霍昆格姆(Bose,Chaudhri,andHocquenghem,BCH)码或低密度奇偶校验(LDPC)码来执行ECC操作。
存储器接口1260可以在CPU 1220的控制下与存储器装置1100通信。在该实施例中,存储器接口1260可以排列命令,例如,从CPU 1220接收的正常命令。并且,存储器接口1260可以为正常命令中的每一个设置附加操作时间。可以设置附加操作时间以保证即使在接收到挂起命令时也在某个时间内执行对应的正常命令所需的时间。
图3是示出根据本公开的实施例的例如图2的存储器接口1260的存储器接口的示图。
参照图3,存储器接口1260可以包括命令(CMD)队列控制器61、CMD时间控制器62、CMD时间管理器63和输入/输出(I/O)接口64。
CMD队列控制器61可以通过总线1270接收正常命令或挂起命令。CMD队列控制器61可以顺序地接收多个正常命令,并根据执行顺序排列正常命令。CMD队列控制器61可以将排列的正常命令顺序地输出到CMD时间控制器62。如果接收到挂起命令,则不管正常命令的排列顺序如何,CMD队列控制器61都可以将挂起命令立即输出到CMD时间管理器63。
CMD时间控制器62可以向从CMD队列控制器61接收的正常命令中的每一个提供附加操作时间,并且将包括正常命令和对应的附加操作时间的信息传输到CMD时间管理器63。在下文中,信息被称为‘命令和时间信息’。
CMD时间管理器63可以从CMD时间控制器62接收命令和时间信息,并存储与正常命令中的每一个相匹配的附加操作时间。CMD时间管理器63可以存储关于正常命令中的每一个的命令和时间信息,并且然后将结束信号输出到CMD队列控制器61。如果从CMD队列控制器61接收到挂起命令,则CMD时间管理器63可以根据存储在CMD时间管理器63中的命令和时间信息在经过附加操作时间之后将结束信号输出到CMD队列控制器61。
如果接收到结束信号,则CMD队列控制器61可以将对应于结束信号的正常命令或挂起命令传输到I/O接口64。例如,每当接收到结束信号时,CMD队列控制器61可以将正常命令顺序地输出到I/O接口64,或者将挂起命令输出到I/O接口64。
如果在存储器装置1100中结束针对正常命令的操作,则可以删除存储在CMD时间管理器63中的附加操作时间和与该附加操作时间相匹配的正常命令。
如果从CMD队列控制器61接收到正常命令或挂起命令,则I/O接口64可以通过通道1280将正常命令或挂起命令输出到存储器装置1100。
存储器装置1100可以通过通道1280从I/O接口64接收正常命令或挂起命令,并且可以执行对应的命令。
下面将更详细地描述存储器接口1260的上述部件。
图4是示出根据本公开的实施例的例如图3的CMD队列控制器61的命令队列控制器的示图。
参照图4,CMD队列控制器61可以管理通过图3的总线1270接收的正常命令1N_CMD至aN_CMD(其中a是正整数)的队列。例如,可以根据排列顺序顺序地输出通过总线1270接收的第一正常命令1N_CMD至第a正常命令aN_CMD(T41)。
如果在顺序地输出第一正常命令1N_CMD至第a正常命令aN_CMD时接收到具有相对较高重要性的挂起命令S_CMD,则CMD队列控制器61不输出下一个正常命令,而是可以输出挂起命令S_CMD(T42)。例如,通过总线1270接收的正常命令可以输出到图3的CMD时间控制器62。如果接收到结束信号,则可以将输出到CMD时间控制器62的相同正常命令输出到图3的I/O接口64。另外,如果通过总线1270接收到挂起命令S_CMD,则CMD队列控制器61可以将挂起命令S_CMD输出到图3的CMD时间管理器63,而不是CMD时间控制器62。如果在挂起命令S_CMD被输出到CMD时间管理器63之后接收到结束信号,则CMD队列控制器61可以将挂起命令S_CMD输出到I/O接口64。
图5是示出根据本公开的实施例的例如图3的CMD时间控制器62的命令时间控制器的示图。
参照图5,如果从图3的CMD队列控制器61接收到第一正常命令1N_CMD至第a正常命令aN_CMD,CMD时间控制器62可以分别向第一正常命令1N_CMD至第a正常命令aN_CMD提供附加操作时间1Min_T至aMin_T。附加操作时间1Min_T至aMin_T中的每一个指的是当接收到挂起命令时附加地执行当前执行的正常命令的时间。
例如,CMD时间控制器62可以分别向第一正常命令1N_CMD至第a正常命令aN_CMD提供第一附加操作时间1Min_T至第a附加操作时间aMin_T。然后,CMD时间控制器62可以顺序地输出提供有附加操作时间1Min_T至aMin_T的命令和时间信息(1N_CMD+1Min_T)至(aN_CMD+aMin_T)。即,如果在存储器装置1100中正在执行正常命令1N_CMD至aN_CMD中的每一个时接收到挂起命令S_CMD,则提供给正常命令的附加操作时间可以用于允许正在被执行的正常命令不立即停止,而是进一步执行设置的附加操作时间。
可以根据存储器***1000不同地设置附加操作时间1Min_T至aMin_T。例如,可以将附加操作时间1Min_T到aMin_T对第一正常命令1N_CMD至第a正常命令aN_CMD全部设置为相同的时间,或者设置为不同的时间。例如,附加操作时间1Min_T到aMin_T可以分别根据第一正常命令1N_CMD至第a正常命令aN_CMD的特性来设置。例如,附加操作时间1Min_T到aMin_T可以根据第一正常命令1N_CMD至第a正常命令aN_CMD的重要度来不同地设置。例如,附加操作时间1Min_T到aMin_T可以根据第一正常命令1N_CMD至第a正常命令aN_CMD被设置为某些正常命令,并且可以不被设置为其它正常命令。可以根据存储器***1000改变第一正常命令1N_CMD至第a正常命令aN_CMD的特性或重要度。
图6和图7是示出根据本公开的实施例的例如图3的CMD时间管理器63的命令时间管理器的实施例的示图。图6是示出根据本公开的实施例的CMD时间管理器63a的示图,并且图7是示出根据本公开的另一实施例的CMD时间管理器63b的示图。
参照图6,CMD时间管理器63a可以包括信息表31a和结束信号(E_SG)发生器32。
CMD信息和时间信息彼此匹配的数据可以被存储在信息表31a中。例如,第一正常命令1N_CMD和第一附加操作时间1Min_T彼此匹配的数据可以被存储在信息表31a中,并且第二正常命令2N_CMD和第二附加操作时间2Min_T彼此匹配的数据可以被存储在信息表31a中。以该方式,第a正常命令aN_CMD和第a附加操作时间aMin_T彼此匹配的数据可以被存储在信息表31a中。
如果输入到CMD时间管理器63a的信息被存储在信息表31a中,则E_SG发生器32可以输出通知信息已经被存储在信息表31a中的结束信号。
参照图7,CMD时间管理器63b可以包括信息表31b和结束信号(E_SG)发生器32。在CMD时间管理器63b中,存储在信息表31b中的信息不同于存储在图6的信息表31a中的信息,并且其它部件类似于图6的CMD时间管理器63a的部件。
管芯信息、CMD信息和时间信息彼此匹配的数据可以被存储在图7的CMD时间管理器63b中。例如,当图2的存储器控制器1200控制多个存储器装置1100时,多个通道1280可以联接到存储器接口1260,并且多个存储器装置1100可以联接到各个通道1280。如果存储器装置1100中的每一个是管芯,则在每个管芯中正在被执行的命令可以是各种各样的。
因此,在具有上述结构的存储器***1000中,关于管芯DIE的信息可以被存储在CMD时间管理器63b中。例如,第一管芯1DIE、第一正常命令1N_CMD和第一附加操作时间1Min_T彼此匹配的数据可以被存储在信息表31b中。当在第一管芯1DIE中正在被执行的命令CMD是第一正常命令1N_CMD时,第一附加操作时间1Min_T可以被提供并存储在第一正常命令1N_CMD中。在该情况下,如果接收到针对第一管芯1DIE的挂起命令,则第一正常命令1N_CMD不被立即结束,而是可以在进一步执行第一正常命令1N_CMD第一附加操作时间1Min_T之后结束。以该方式,当在第a管芯aDIE中正在执行的命令CMD是第a正常命令aN_CMD时,第a附加操作时间aN_CMD可以被提供并存储在第a正常命令aN_CMD中。
如果输入到CMD时间管理器63b的信息被存储在信息表31b中,则E_SG发生器32可以输出通知信息已经被存储在信息表31b中的结束信号。
图8是示出根据本公开的实施例的执行正常命令的方法的示图。
参照图8,如果存储器接口1260通过总线1270接收第一正常命令1N_CMD,则CMD队列控制器61可以在其中临时存储第一正常命令1N_CMD。随后,CMD队列控制器61可以将第一正常命令1N_CMD传输到CMD时间控制器62。
CMD时间控制器62可以向第一正常命令1N_CMD提供第一附加操作时间1Min_T,并且输出第一命令和关于第一正常命令1N_CMD的时间信息(1N_CMD+1Min_T)。
从CMD时间控制器62输出的第一命令和时间信息(1N_CMD+1Min_T)可以被输入到CMD时间管理器63。如果第一命令和时间信息(1N_CMD+1Min_T)被存储在CMD时间管理器63中,则CMD时间管理器63可以将结束信号E_SG输出到CMD队列控制器61。
如果接收到结束信号E_SG,则CMD队列控制器61可以将临时存储的第一正常命令1N_CMD传输到I/O接口64。
I/O接口64可以通过通道1280将从CMD队列控制器61接收的第一正常命令1N_CMD传输到图2的存储器装置1100。
如果通过通道1280接收到第一正常命令1N_CMD,则存储器装置1100可以执行第一正常命令1N_CMD。
下面将描述在存储器装置1100正在执行第一正常命令1N_CMD的同时生成挂起命令的情况。
图9是示出根据本公开的实施例的执行挂起命令的方法的示图。
参照图9,如果存储器接口1260通过总线1270接收挂起命令S_CMD,则CMD队列控制器61可以在其中临时存储挂起命令S_CMD。随后,CMD队列控制器61可以搜索当前在存储器装置1100中正在被执行的正常命令,并且将搜索到的挂起命令S_CMD传输到CMD时间管理器63。
如果CMD时间管理器63接收挂起命令S_CMD,则可以确定在正常命令信息中是否存在与正常命令相匹配的附加操作时间。
如果不存在关于附加操作时间的信息,则CMD时间管理器63可以立即输出结束信号E_SG。如果确实存在关于附加操作时间的信息,则CMD时间管理器63可以在将时间延迟对应的附加操作时间之后输出结束信号E_SG。例如,当存储器装置1100执行第一正常命令1N_CMD,并且第一附加操作时间1Min_T与第一正常命令1N_CMD匹配时,CMD时间管理器63可以在经过第一附加操作时间1Min_T之后输出结束信号E_SG。
因此,虽然生成挂起命令S_CMD,存储器装置1100不立即结束当前正在执行的第一正常命令1N_CMD的操作,而是可以进一步执行对应操作第一附加操作时间1Min_T。
如果CMD时间管理器63输出结束信号E_SG,则输出结束信号E_SG可以被输入到CMD队列控制器61。
如果接收到结束信号E_SG,则CMD队列控制器61可以将临时存储的挂起命令S_CMD传输到I/O接口64。
I/O接口64可以通过通道1280将从CMD队列控制器61接收的挂起命令S_CMD传输到存储器装置1100。
根据上述实施例,向正常命令提供附加操作时间,使得即使在生成挂起命令时也可以保证可以附加地执行正常命令的最小时间。因此,可以防止正常命令无限延迟的现象。
图10是示出存储器***,例如,包括如图2所示的存储器控制器1200和存储器装置1100的存储器***30000的实施例的示图。
参照图10,存储器***30000可以被实施为蜂窝电话、智能电话、平板个人计算机(PC)、个人数字助理(PDA)或无线通信装置。存储器***30000可以包括存储器装置1100和能够控制存储器装置1100的操作的存储器控制器1200。存储器控制器1200可以在处理器3100的控制下控制存储器装置1100的数据存取操作,例如,编程操作、擦除操作、读取操作等。
在存储器装置1100中编程的数据可以在存储器控制器1200的控制下通过显示器3200输出。
无线电收发器3300可以通过天线ANT传输和/或接收无线电信号。例如,无线电收发器3300可以将通过天线ANT接收的无线电信号转换为可以由处理器3100处理的信号。因此,处理器3100可以处理从无线电收发器3300输出的信号并且将处理的信号传输到存储器控制器1200或显示器3200。存储器控制器1200可以将由处理器3100处理的信号传输到存储器装置1100。并且,无线电收发器3300可以将从处理器3100输出的信号转换为无线电信号,并且通过天线ANT将转换的无线电信号输出到外部装置。输入装置3400是能够输入用于控制处理器3100的操作的控制信号或待由处理器3100处理的数据的装置,并且可以被实施为诸如触摸板或计算机鼠标、小键盘或键盘的定点装置。处理器3100可以控制显示器3200的操作,使得从存储器控制器1200输出的数据、从无线电收发器3300输出的数据或从输入装置3400输出的数据能够通过显示器3200输出。
在各个实施例中,能够控制存储器装置1100的操作的存储器控制器1200可以被实施为处理器3100的部分或被实施为独立于处理器3100的芯片。
图11是示出根据本公开的实施例的存储器***,例如,包括如图2所示的存储器控制器1200和存储器装置1100的存储器***40000的实施例的示图。
参照图11,存储器***40000可以被实施为个人计算机(PC)、平板PC、上网本、电子阅读器、个人数字助理(PDA)、便携式多媒体播放器(PMP)、MP3播放器或MP4播放器。
存储器***40000可以包括存储器装置1100和能够控制存储器装置1100的数据处理操作的存储器控制器1200。
处理器4100可以根据通过输入装置4200输入的数据通过显示器4300输出存储在存储器装置1100中的数据。例如,输入装置4200可以被实施为诸如触摸板或计算机鼠标、小键盘或键盘的定点装置。
处理器4100可以控制存储器***40000的整体操作并且控制存储器控制器1200的操作。在各个实施例中,能够控制存储器装置1100的操作的存储器控制器1200可以被实施为处理器4100的部分或被实施为独立于处理器4100的芯片。
图12是示出根据本公开的实施例的存储器***,例如,包括如图2所示的存储器控制器1200和存储器装置1100的存储器***50000的实施例的示图。
参照图12,存储器***50000可以被实施为图像处理装置,例如,数码相机、具有附接到其上的数码相机的移动终端、具有附接到其上的数码相机的智能手机、或具有附接到其上的数码相机的平板PC。
存储器***50000可以包括存储器装置1100和能够控制存储器装置1100的例如编程操作、擦除操作或读取操作的数据处理操作的存储器控制器1200。
存储器***50000的图像传感器5200可以将光学图像转换为数字信号。转换的数字信号可以被传输到处理器5100或存储器控制器1200。在处理器5100的控制下,转换的数字信号可以通过显示器5300输出,或通过存储器控制器1200存储在存储器装置1100中。另外,存储在存储器装置1100中的数据可以在处理器5100或存储器控制器1200的控制下通过显示器5300输出。
在各个实施例中,能够控制存储器装置1100的操作的存储器控制器1200可以被实施为处理器5100的部分或被实施为独立于处理器5100的芯片。
图13是示出根据本公开的实施例的存储器***,例如,包括如图2所示的存储器控制器1200和存储器装置1100的存储器***70000的实施例的示图。
参照图13,存储器***70000可以被实施为存储卡或智能卡。存储器***70000可以包括存储器装置1100、存储器控制器1200和卡接口7100。
存储器控制器1200可以控制存储器装置1100和卡接口7100之间的数据交换。在各个实施例中,卡接口7100可以是安全数字(SD)卡接口或多媒体卡(MMC)接口,但是本公开不限于此。
卡接口7100可以根据主机60000的协议来接口连接主机60000和存储器控制器1200之间的数据交换。在各个实施例中,卡接口7100可以支持通用串行总线(USB)协议和芯片间(IC)-USB协议。此处,卡接口7100可以指能够支持由主机60000使用的协议的硬件、嵌入在硬件中的软件或者信号传输方案。
当存储器***70000联接到诸如个人计算机(PC)、平板PC、数码相机、数字音频播放器、蜂窝电话、控制台视频游戏硬件或数字机顶盒的主机60000的主机接口6200时,主机接口6200可以在微处理器(μP)6100的控制下通过卡接口7100和存储器控制器1200执行与存储器装置1100的数据通信。
根据本公开,当待执行挂起命令时,在预设的操作时间附加执行当前执行的正常命令之后执行挂起命令,使得可以防止由于挂起命令而不断延迟执行正常命令的现象。
本文已经公开示例性实施例,并且虽然采用特定术语,但是它们仅被用于和解释为通用和描述性的含义,而不是为了限制的目的。在一些情况下,如从提交本申请起对于本领域普通技术人员显而易见的是,结合特定实施例描述的特征、特性和/或元件可以单独使用或与结合其他它实施例描述的特征、特性和/或元件结合使用,除非另有具体说明。因此,本领域技术人员将理解,在不脱离如所附权利要求中阐述的本公开的技术方案的情况下,可以进行形式和细节上的各种改变。
Claims (20)
1.一种存储器接口,包括:
命令队列控制器,其确定正常命令和挂起命令的执行顺序;
命令时间控制器,其接收所述正常命令,并通过向所述正常命令中的每一个提供对应的附加操作时间来输出命令和时间信息;
命令时间管理器,其将所述命令和时间信息与待被存储在所述命令时间管理器中的所述正常命令中的每一个相匹配,并在接收到所述挂起命令时,将正在被执行的正常命令进一步执行对应的附加操作时间之后输出结束信号;以及
输入/输出接口,其接收所述正常命令和所述挂起命令,并通过通道将所述正常命令和所述挂起命令传输到存储器装置。
2.根据权利要求1所述的存储器接口,其中所述命令队列控制器:
如果接收到所述正常命令,则临时存储所述正常命令;
将所述正常命令顺序地传输到所述命令时间控制器;并且
响应于所述结束信号,将所述正常命令顺序地传输到所述输入/输出接口。
3.根据权利要求1所述的存储器接口,其中所述命令队列控制器:
将所述正常命令顺序地输出到所述命令时间控制器;并且
然后,每当接收到所述结束信号时,将所述正常命令顺序地传输到所述输入/输出接口。
4.根据权利要求1所述的存储器接口,其中,如果接收到所述挂起命令,则不管所述正常命令的输出顺序如何,所述命令队列控制器首先输出所述挂起命令。
5.根据权利要求1所述的存储器接口,其中所述命令队列控制器:
如果接收到所述正常命令,则将所述正常命令顺序地传输到所述命令时间控制器;并且
如果接收到所述挂起命令,则将所述挂起命令传输到所述命令时间管理器。
6.根据权利要求1所述的存储器接口,其中所述命令时间控制器根据所述正常命令的特性或重要度分别提供所述附加操作时间。
7.根据权利要求6所述的存储器接口,其中所述命令时间控制器:
向所有所述正常命令提供相同的附加操作时间;或者
向所述正常命令中的一些提供所述附加操作时间,并且不向其它正常命令提供所述附加操作时间。
8.根据权利要求7所述的存储器接口,其中所述命令时间控制器根据所述正常命令的特性或重要度提供或不提供所述附加操作时间。
9.根据权利要求1所述的存储器接口,其中所述命令时间管理器包括:
信息表,其存储所述附加操作时间分别与所述正常命令匹配的命令和时间信息;以及
结束信号发生器,每当所述命令和时间信息被存储在所述信息表中时,其输出所述结束信号。
10.根据权利要求1所述的存储器接口,其中,如果接收到所述挂起命令,则所述命令时间管理器在经过与所述正常命令中的每一个匹配的所述附加操作时间之后输出所述结束信号。
11.一种存储器控制器,包括:
中央处理单元,其响应于来自主机的请求生成正常命令和挂起命令;以及
存储器接口,其将所述正常命令或所述挂起命令传输到存储器装置,
其中所述存储器接口:
如果接收到所述正常命令,则向所述正常命令提供附加操作时间,并将所述正常命令传输到所述存储器装置;并且
如果接收到所述挂起命令,则在被提供给所述正常命令的所述附加操作时间内执行所述正常命令,并将所述挂起命令传输到所述存储器装置。
12.根据权利要求11所述的存储器控制器,其中所述存储器接口包括:
命令队列控制器,其控制所述正常命令和所述挂起命令的输出顺序;
命令时间控制器,其根据所述正常命令提供所述附加操作时间;
命令时间管理器,其存储所述附加操作时间与所述正常命令匹配的信息,如果接收到所述挂起命令,则将所述挂起命令延迟所述附加操作时间;以及
输入/输出接口,其将从所述命令队列控制器接收的所述正常命令或所述挂起命令传输到所述存储器装置。
13.根据权利要求12所述的存储器控制器,其中所述命令队列控制器:
如果接收到所述正常命令,则存储所述正常命令并将所存储的正常命令传输到所述命令时间控制器;并且
如果接收到所述挂起命令,则存储所述挂起命令并将所存储的挂起命令传输到所述命令时间管理器。
14.根据权利要求12所述的存储器控制器,其中所述命令时间控制器根据所述正常命令的特性或重要度提供所述附加操作时间。
15.根据权利要求12所述的存储器控制器,其中所述命令时间控制器根据所述正常命令的特性或重要度提供或不提供所述附加操作时间。
16.根据权利要求12所述的存储器控制器,其中所述命令时间管理器包括:
信息表,其存储所述附加操作时间与所述正常命令匹配的命令和时间信息;以及
结束命令发生器,每当所述命令和时间信息被存储时,输出结束信号。
17.根据权利要求12所述的存储器控制器,其中,如果接收到所述挂起命令,则所述命令时间管理器将所述挂起命令延迟与所述正常命令匹配的所述附加操作时间,并在经过所述附加操作时间之后输出结束信号。
18.一种存储器***,包括:
存储器装置,其存储数据;以及
存储器控制器,其响应于来自主机的请求生成正常命令或挂起命令,并且通过通道将所述正常命令或所述挂起命令传输到所述存储器装置,
其中所述存储器控制器:
如果生成所述正常命令,则向所述正常命令提供附加操作时间,然后将所述正常命令传输到所述存储器装置;并且
如果生成所述挂起命令,则将所述挂起命令延迟被提供给所述正常命令的所述附加操作时间,然后将所述挂起命令传输到所述存储器装置。
19.根据权利要求18所述的存储器***,其中所述存储器控制器根据所述正常命令的特性或重要度提供所述附加操作时间。
20.根据权利要求18所述的存储器***,其中所述存储器控制器:
如果在所述存储器装置中正在执行所述正常命令时生成所述挂起命令,则延迟所述挂起命令的输出,使得在所述存储器装置中进一步执行所述正常命令所述附加操作时间;并且
如果经过所述附加操作时间,则将所述挂起命令传输到所述存储器装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180007195A KR20190088734A (ko) | 2018-01-19 | 2018-01-19 | 메모리 인터페이스와, 이를 포함하는 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
KR10-2018-0007195 | 2018-01-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110059032A CN110059032A (zh) | 2019-07-26 |
CN110059032B true CN110059032B (zh) | 2023-11-03 |
Family
ID=67299205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811109225.5A Active CN110059032B (zh) | 2018-01-19 | 2018-09-21 | 存储器接口及具有存储器接口的存储器控制器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10705757B2 (zh) |
KR (1) | KR20190088734A (zh) |
CN (1) | CN110059032B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102680273B1 (ko) * | 2019-02-12 | 2024-07-01 | 삼성전자주식회사 | 서스펜드 모드를 제어하는 방법 및 이를 포함하는 메모리 컨트롤러 |
US10871923B2 (en) * | 2019-03-06 | 2020-12-22 | Micron Technology, Inc. | Management of program suspend and resume operations of a memory sub-system |
KR20210061171A (ko) * | 2019-11-19 | 2021-05-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
KR20220055717A (ko) | 2020-10-27 | 2022-05-04 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR20220073998A (ko) * | 2020-11-27 | 2022-06-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR20220165563A (ko) | 2021-06-08 | 2022-12-15 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
CN116830076A (zh) | 2022-01-28 | 2023-09-29 | 辉达公司 | 用于高效模除法和模求逆的技术、设备和指令集架构 |
WO2023141935A1 (en) | 2022-01-28 | 2023-08-03 | Nvidia Corporation | Techniques, devices, and instruction set architecture for balanced and secure ladder computations |
WO2023141934A1 (en) | 2022-01-28 | 2023-08-03 | Nvidia Corporation | Efficient masking of secure data in ladder-type cryptographic computations |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103366801A (zh) * | 2012-03-29 | 2013-10-23 | 三星电子株式会社 | 存储器装置及其操作方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7797468B2 (en) | 2006-10-31 | 2010-09-14 | Hewlett-Packard Development Company | Method and system for achieving fair command processing in storage systems that implement command-associated priority queuing |
KR101662824B1 (ko) * | 2009-07-08 | 2016-10-06 | 삼성전자주식회사 | 고체 상태 드라이브 장치 및 그것의 구동 방법 |
KR101962874B1 (ko) * | 2012-04-24 | 2019-03-27 | 삼성전자주식회사 | 메모리 장치, 메모리 컨트롤러, 메모리 시스템 및 이의 동작 방법 |
KR20150017526A (ko) | 2013-08-07 | 2015-02-17 | 삼성전자주식회사 | 메모리 명령 스케줄러 및 메모리 명령 스케줄링 방법 |
KR102226367B1 (ko) * | 2014-01-02 | 2021-03-12 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것을 포함하는 불휘발성 메모리 시스템 |
KR102624606B1 (ko) * | 2016-07-04 | 2024-01-15 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그 동작 방법 |
US10528268B2 (en) * | 2017-09-12 | 2020-01-07 | Toshiba Memory Corporation | System and method for channel time management in solid state memory drives |
-
2018
- 2018-01-19 KR KR1020180007195A patent/KR20190088734A/ko unknown
- 2018-08-31 US US16/119,575 patent/US10705757B2/en active Active
- 2018-09-21 CN CN201811109225.5A patent/CN110059032B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103366801A (zh) * | 2012-03-29 | 2013-10-23 | 三星电子株式会社 | 存储器装置及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US20190227736A1 (en) | 2019-07-25 |
CN110059032A (zh) | 2019-07-26 |
US10705757B2 (en) | 2020-07-07 |
KR20190088734A (ko) | 2019-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110059032B (zh) | 存储器接口及具有存储器接口的存储器控制器 | |
US9563368B2 (en) | Embedded multimedia card and method of operating the same | |
US10108373B2 (en) | Host, system, and methods for transmitting commands to non-volatile memory card | |
US8615702B2 (en) | Method and apparatus for correcting errors in memory device | |
US9619175B2 (en) | Embedded multimedia card (eMMC), host for controlling the eMMC, and methods of operating the eMMC and the host | |
US9110786B2 (en) | Read operation prior to retrieval of scatter gather list | |
CN110069426B (zh) | 存储器控制器及具有存储器控制器的存储器*** | |
US11061607B2 (en) | Electronic system having host and memory controller, and operating method thereof | |
US11309050B2 (en) | Memory controller and memory system having the same | |
KR20120090194A (ko) | 데이터 처리 장치 및 이를 포함하는 데이터 처리 시스템 | |
CN109753457B (zh) | 数据处理***及其操作方法 | |
US10692585B2 (en) | Memory system for error test | |
US10649937B2 (en) | Universal asynchronous receiver/transmitter unit, and memory controller and memory system including the same | |
US9652403B2 (en) | Memory control unit and data storage device including the same | |
KR20190105869A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
US8856423B1 (en) | Dual-purpose nonvolatile memory for code and data storage | |
US11157403B2 (en) | Controller and memory system for receiving a format request and configuring a map table | |
US20160034192A1 (en) | Data storage device and operation method thereof |
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 |