CN109284241A - 存储等待时间信息的存储设备、处理器和计算系统 - Google Patents
存储等待时间信息的存储设备、处理器和计算系统 Download PDFInfo
- Publication number
- CN109284241A CN109284241A CN201810237644.0A CN201810237644A CN109284241A CN 109284241 A CN109284241 A CN 109284241A CN 201810237644 A CN201810237644 A CN 201810237644A CN 109284241 A CN109284241 A CN 109284241A
- Authority
- CN
- China
- Prior art keywords
- processor
- storage equipment
- delay time
- waiting time
- time information
- 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.)
- Pending
Links
- 238000003860 storage Methods 0.000 title claims abstract description 168
- 230000015654 memory Effects 0.000 title description 33
- 239000004065 semiconductor Substances 0.000 claims abstract description 27
- 238000000034 method Methods 0.000 claims description 59
- 230000002093 peripheral effect Effects 0.000 claims description 7
- 230000036578 sleeping time Effects 0.000 claims description 6
- 238000004519 manufacturing process Methods 0.000 claims description 2
- 210000004027 cell Anatomy 0.000 description 22
- 238000012545 processing Methods 0.000 description 19
- 239000000872 buffer Substances 0.000 description 18
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000013507 mapping Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000006399 behavior Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 239000000758 substrate Substances 0.000 description 3
- 101100058970 Arabidopsis thaliana CALS11 gene Proteins 0.000 description 2
- 101100058961 Arabidopsis thaliana CALS2 gene Proteins 0.000 description 2
- 101100058964 Arabidopsis thaliana CALS5 gene Proteins 0.000 description 2
- 102100031885 General transcription and DNA repair factor IIH helicase subunit XPB Human genes 0.000 description 2
- 101000920748 Homo sapiens General transcription and DNA repair factor IIH helicase subunit XPB Proteins 0.000 description 2
- 101100049574 Human herpesvirus 6A (strain Uganda-1102) U5 gene Proteins 0.000 description 2
- 101100287040 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) ARG82 gene Proteins 0.000 description 2
- 101100341076 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) IPK1 gene Proteins 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 101150064834 ssl1 gene Proteins 0.000 description 2
- 101150062870 ssl3 gene Proteins 0.000 description 2
- 210000000352 storage cell Anatomy 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 210000003205 muscle Anatomy 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/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
-
- 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/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/22—Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling
-
- 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/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle 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/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
- 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
- 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
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0028—Serial attached SCSI [SAS]
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)
- Memory System (AREA)
- Read Only Memory (AREA)
Abstract
公开了一种包括存储设备和处理器的计算系统。存储设备包括多个非易失性存储器件,并且将用户数据和等待时间信息存储在所述多个非易失性存储器件中。处理器从所述存储设备接收等待时间信息,基于所述等待时间信息确定轮询延迟时间,向所述存储设备发送存储设备命令,并且在所述轮询延迟时间期满后发起用于检查所述存储设备的状态的轮询,所述轮询延迟时间的期满是自发送所述存储设备命令的时间起确定的。
Description
相关申请的交叉引用
本申请要求2017年7月21日向韩国知识产权局(KIPO)递交的韩国专利申请10-2017-0092989的优先权和权益,其全部内容通过引用合并于此。
技术领域
本发明构思的示例性实施例涉及计算系统,并且更具体地涉及存储等待时间信息的存储设备、使用存储设备中存储的等待时间信息的处理器、以及包括存储设备和处理器的计算系统。
背景技术
当处理器对存储设备执行输入/输出操作时,处理器将与输入/输出操作对应的命令(例如写入命令或读取命令)发送到存储设备,并且在检查存储设备已经完成了命令所请求的处理之后执行后续操作。处理器可以通过中断请求(IRQ)方法或通过轮询来检查处理的完成。在IRQ方法中,处理器通过在存储设备已经完成命令所请求的处理之后从存储设备接收中断来检查处理的完成。在轮询中,为了检查处理的完成,处理器在将命令发送到存储设备之后周期性地检查存储设备的状态。轮询可以通过减少或消除中断传送延迟来快速执行输入/输出操作,并且可以减少或消除与中断相关联的任何上下文切换开销。但是,由于处理器周期性地地执行轮询操作,所以轮询增加了处理器负载或处理器使用。
发明内容
一些示例性实施例提供了一种计算系统,能够通过使用存储设备中存储的等待时间信息,来减少由轮询引起的处理器使用。
一些示例性实施例提供了一种处理器,能够通过使用存储设备中存储的等待时间信息,来减少由轮询引起的处理器使用。
一些示例性实施例提供了一种存储设备,能够存储用于减少由轮询引起的处理器使用的等待时间信息。
根据示例性实施例,一种计算系统包括存储设备和处理器。所述存储设备包括用于存储用户数据和等待时间信息的多个非易失性存储器件。所述处理器从所述存储设备接收所述等待时间信息,基于所述等待时间信息确定轮询延迟时间,向所述存储设备发送存储设备命令,并且在所述轮询延迟时间期满后发起用于检查所述存储设备的状态的轮询操作,所述轮询延迟时间的期满是自发送所述存储设备命令的时间起确定的。
根据示例性实施例,处理器执行指令以执行用于操作存储设备的方法步骤。所述方法步骤包括:从所述存储设备接收等待时间信息,基于所述等待时间信息确定轮询延迟时间,向所述存储设备发送存储设备命令,并且在所述轮询延迟时间期满后发起检查所述存储设备的状态的轮询操作,所述轮询延迟时间的期满是自发送所述存储没备命令的时间起确定的。所述处理器连接到所述存储设备。
根据示例性实施例,存储设备包括多个非易失性存储器件。所述存储设备将用户数据存储在所述多个非易失性存储器件中,并且存储用于确定存储设备命令的轮询延迟时间的等待时间信息。
如上所述,在根据示例性实施例的存储设备、处理器和计算系统中,等待时间信息存储在存储设备中,轮询延迟时间基于存储设备中存储的等待时间信息来确定,并且自存储设备命令传送的时间点起,在轮询延迟时间之后发起轮询。因此,为每个存储设备确定合适的轮询延迟时间,并减少由轮询引起的处理器使用。
附图说明
图1是示出根据示例性实施例的计算系统的框图。
图2是根据示例性实施例的存储设备的示例的框图。
图3示出了包括在图2的存储设备中的非易失性存储器件的示例。
图4是图3的非易失性存储器件中包括的存储单元阵列的示例的电路图。
图5示出了虚拟产品数据(VPD)页的示例。
图6是中断请求(IRQ)方法中的输入/输出操作、轮询方法中的输入/输出操作、基于处理器或基于用户的混合轮询方法中的第一输入/输出操作、基于处理器或基于用户的混合轮询方法中的第二输入/输出操作、以及根据示例性实施例的基于设备的混合轮询方法中的输入/输出操作的时序图。
图7是根据示例性实施例的计算系统的框图。
具体实施方式
图1是根据示例性实施例的计算系统的框图,图2是根据示例性实施例的存储设备的示例的框图,图3示出了包括在图2的存储设备中的非易失性存储器件的示例,图4是图3的非易失性存储器件中包括的存储单元阵列的示例的电路图,以及图5示出了虚拟产品数据(VPD)页的示例。
参考图1,根据示例性实施例,计算系统100包括执行特定计算或任务的处理器110以及以文件格式存储诸如用户数据之类的数据的存储设备140。计算系统100还包括存储器件190,作为存储计算系统100的操作所需的数据的主存储器。计算系统100可以是任何电子设备,例如个人计算机、膝上型计算机、服务器计算机、蜂窝电话、智能电话、MP3播放器、个人数字助理(PDA)、便携式多媒体播放器(PMP)、数字电视、数码相机、便携式游戏机等。
根据示例性实施例,处理器110控制计算系统100的整体操作。在一些示例性实施例中,处理器110是中央处理单元(CPU)、微处理器等。处理器110执行操作计算系统100的操作系统(OS)130。OS 130包括处理来自用户应用120的输入/输出请求并控制外围设备的内核。在一些示例性实施例中,OS 130还包括管理与输入/输出请求相关联的数据块的块层、控制外围设备的设备驱动器等。此外,处理器110执行用户应用120以提供各种服务。例如,用户应用120可以是视频应用、游戏应用、web浏览器应用等。
根据示例性实施例,存储器件190存储由处理器110执行和处理的指令和数据。例如,存储器件190可以用易失性存储器设备(例如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM))来实现,但实施例不限于此。
根据示例性实施例,如图1所示,存储设备140直接连接到处理器110。在这种情况下,处理器110和存储设备140使用外围组件互连快速(PCIe)接口协议彼此通信,但是实施例不限于此。存储设备140可以是辅助或副存储设备。例如,存储设备140可以是固态驱动器(SSD)、非易失性存储器快速(NVMe)SSD、基于多级单元(MLC)的SSD、基于三级单元(TLC)的SSD、硬盘驱动器(HDD)等。
在一些示例性实施例中,存储设备140是包括多个非易失性存储器件(例如NAND闪存)的SSD。例如,如图2所示,存储设备140包括:存储诸如用户数据之类的数据的多个150非易失性存储器件155、控制多个150非易失性存储器件155的设备控制器141、以及临时存储在处理器110与多个150非易失性存储器件155之间传送的数据(例如用户数据)的缓冲存储器143。虽然图2示出缓冲存储器143位于设备控制器141外部的示例,但在其他示例性实施例中,缓冲存储器143位于设备控制器141内部。
在一些示例性实施例中,如图3所示,多个150非易失性存储器件155中的每一个包括存储单元阵列210、地址解码器220、页缓冲器电路230、数据输入/输出(I/O)电路240、电压产生器250和控制电路260。
根据示例性实施例,存储单元阵列210通过串选择线SSL、多个字线WL和地选择线GSL耦接到地址解码器220。存储单元阵列210还通过多个位线BL耦接至页缓冲器电路230。存储单元阵列210包括耦接到多个字线WL和多个位线BL的多个非易失性存储单元。
在一些示例性实施例中,存储单元阵列210是以三维结构或竖直结构形成在基板上的三维存储单元阵列。在这种情况下,存储单元阵列210包括竖直存储单元串,每个竖直存储单元串具有多个堆叠的存储单元。例如,存储器单元阵列210可以以如图4所示的三维结构形成。在图4的示例中,包括在存储单元阵列210中的多个存储单元串相对于基板竖直地形成。
参考图4,根据示例性实施例,存储单元阵列210包括耦接在位线BL1、BL2和BL3与公共源极线CSL之间的多个存储器单元串NS11至NS33。每个存储单元串NS11至NS33包括串选择晶体管SST、多个存储单元MC1至MC8和地选择晶体管GST。尽管图4示出了每个存储器单元串NS11至NS33包括八个存储单元MC1至MC8的示例,但是本发明构思的实施例不限于此。
根据示例性实施例,串选择晶体管SST耦接到串选择线SSL1、SSL2和SSL3中对应的一个。存储单元MC1至MC8分别耦接到对应的字线WL1至WL8。地选择晶体管GST耦接到地选择线GSL1、GSL2和GSL3中对应的一个。串选择晶体管SST还耦接到位线BL1、BL2和BL3中对应的一个,并且地选择晶体管GST还耦接到公共源极线CSL。处于相同级别的字线彼此耦接,并且串选择线SSL1、SSL2和SSL3以及地选择线GSL1、GSL2和GSL3彼此分离。虽然图4示出了存储单元阵列210耦接到八个字线WL1至WL8及三个位线BL1、BL2和BL3的示例,但本发明构思的实施例不限于此。
在其他示例性实施例中,存储单元阵列210是以二维结构或水平结构形成在基板上的二维存储单元阵列。
再次参考图3,根据示例性实施例,控制电路260从设备控制器141接收命令信号CMD和地址信号ADDR,并且基于该命令信号CMD和地址信号ADDR来控制非易失性存储器件150的编程操作、读取操作和擦除操作。例如,控制电路260基于控制电压产生器250的命令信号CMD来产生控制信号CON,并基于地址信号ADDR来产生行地址R_ADDR和列地址C_ADDR。控制电路260将行地址R_ADDR提供给地址解码器220,将列地址C_ADDR提供给数据I/O电路240。
根据示例性实施例,地址解码器220通过串选择线SSL、多个字线WL和地选择线GSL耦接到存储单元阵列210。对于写入或编程操作、或读取操作,地址解码器220基于从控制电路260接收的行地址R_ADDR,从多个字线WL中选择一个字线。
根据示例性实施例,电压产生器250基于从控制电路260接收的控制信号CON,产生字线电压VWL以操作非易失性存储器件150。由电压产生器250产生的字线电压VWL经由地址解码器220被施加到多个字线WL。对于写入或编程操作,电压产生器250产生编程电压和编程通过电压(pass voltage)。编程电压经由地址解码器220施加到选定字线,并且编程通过电压经由地址解码器220施加到未选字线。对于读取操作,电压产生器250产生读取电压和读取通过电压。读取电压经由地址解码器220施加到选定字线,并且读取通过电压经由地址解码器220施加到未选字线。
根据示例性实施例,页缓冲器电路230通过多个位线BL耦接到存储单元阵列210。页缓冲器电路230包括多个页缓冲器。在一些示例性实施例中,每个页缓冲器耦接到一个位线。在其他示例性实施例中,每个页缓冲器耦接到两个或更多个位线。页缓冲器电路230在写入或编程操作期间暂时存储要写入到选定页的数据,并且在读取操作期间暂时存储从所选定页读取的数据。
根据示例性实施例,数据I/O电路240通过数据线DL耦接到页缓冲器电路230。在写入或编程操作期间,数据I/O电路240从设备控制器141接收编程数据DATA,并且基于从控制电路260接收的列地址C_ADDR将编程数据DATA提供给页缓冲器电路230。在读取操作期间,数据I/O电路240基于从控制电路260接收的列地址C_ADDR,将页缓冲器电路230中存储的读取数据DATA提供给设备控制器141。
再次参考图2,根据示例性实施例,设备控制器141基于从处理器110接收的命令和数据来控制非易失性存储器件150的操作(例如写入操作或读取操作)。例如,设备控制器141能够接收请求写入操作的写入命令作为存储命令,并且响应于该写入命令控制非易失性存储器件150执行写入操作。在另一示例中,设备控制器141能够接收请求读取操作的读取命令作为存储命令,并且响应于该读取命令控制非易失性存储器件150执行读取操作。在一些示例性实施例中,设备控制器141包括控制设备控制器141的操作的CPU、存储由CPU执行和处理的指令和数据的内部存储器、与处理器110接口连接的主机接口、与非易失性存储器件150接口连接的存储器接口、以及控制缓冲存储器143的写入和读取操作的缓冲器管理器,但是实施例不限于此。在一些示例性实施例中,设备控制器141还包括用于纠错的纠错码(ECC)块、用于随机化数据的随机化块等。
再次参考图1,根据示例性实施例,存储设备140存储与根据每个存储设备的规范等确定的等待时间(例如写入或读取等待时间)有关的等待时间信息LINFO 165。在一些示例性实施例中,当制造存储设备140时,由制造商或供应商将等待时间信息165写入存储设备140。
在一些示例性实施例中,如图2所示,等待时间信息165存储在多个150非易失性存储器件155中的至少一个非易失性存储器件NVM 155的存储单元阵列中。此外,在一些示例性实施例中,如图2所示,等待时间信息165存储在非易失性存储器件155中包括的重要产品数据(VPD)页160中。
根据示例性实施例,VPD页160存储与逻辑单元和目标设备有关的供应商特定产品信息。例如,如图5所示,VPD页160包括:与连接到逻辑单元的外围设备有关的外围限定符和外围设备类型字段;指示VPD页(例如ASCII信息VPD页、数据代码页、设备行为等)的类型的页代码字段;指示VPD页数据的长度的页长度字段;指示写相同命令的逻辑块的数量的字段是否支持值0的写相同非零(write same non-zero,WSNZ)位;指示比较和写入命令的逻辑块的数量的字段的最大值的最大比较和写入长度字段;指示单个命令的逻辑块的最优传送长度粒度大小的最优传送长度粒度字段;指示单个命令的逻辑块的最大传送长度的最大传送长度字段;指示单个命令的逻辑块的最优传送长度的最优传送长度字段;指示单个预取命令的逻辑块的最大预取长度的最大预取长度字段;指示可以由非映射命令取消映射的逻辑块寻址(LBA)的最大数量的最大非映射LBA计数字段;指示非映射块描述符的最大数量的最大非映射块描述符计数字段;指示非映射请求的最优粒度的最优非映射粒度字段;指示非映射粒度对齐字段是否有效的非映射粒度对齐有效(UGAVALID)位;指示应用了最优非映射粒度字段的第一逻辑块的LBA的非映射粒度对齐字段;指示写相同命令的逻辑块的数目的字段的最大值的最大写相同长度字段;以及当前未使用的保留字段。在一些示例性实施例中,等待时间信息165存储在当前未使用的保留字段中,例如VPD页160的字节[44]至字节[63]的保留字段170中。
根据示例性实施例,处理器110或由处理器110执行的OS 130从存储设备140接收等待时间信息LINFO 165。在一些示例性实施例中,处理器110或OS 130通过向存储设备140发送供应商独有命令(VUC)来接收等待时间信息165。在其它示例性实施例中,处理器110通过发送在存储设备140的标准中预先定义的命令(例如询问命令)或者是新添加到标准中的命令来接收等待时间信息165。
根据示例性实施例,处理器110基于等待时间信息165确定轮询延迟时间,该轮询延迟时间是从处理器110发送存储设备命令DEV_CMD的时间到处理器110发起轮询的时间的时间段。在一些示例性实施例中,存储设备命令DEV_CMD包括用于将用户数据写入存储设备140的写入命令或者用于从存储设备140读取用户数据的读取命令。此外,等待时间信息165包括:写入命令轮询延迟时间(处理器110在发送写入命令之后的睡眠时间);以及读取命令轮询延迟时间(处理器110在发送读取命令之后的睡眠时间)。当从处理器110接收到写入命令时,存储设备140具有写入等待时间,该写入等待时间包括用于接受写入命令的时间、用于将来自处理器110的用户数据存储在缓冲存储器143中的时间、用于将用户数据从缓冲存储器143写入非易失性存储器件150的时间、以及用于通知写入操作的结果的时间,并且写入命令轮询延迟时间对应于存储设备140的写入等待时间。此外,当从处理器110接收到读取命令时,存储设备140具有读取等待时间,该读取等待时间包括用于接受读取命令的时间、用于通过从非易失性存储器件150读取用户数据而将用户数据存储在缓冲存储器143中的时间、用于将缓冲存储器143中存储的用户数据输出到处理器110的时间、以及用于通知读取操作的结果的时间,并且读取命令轮询延迟时间对应于存储设备140的读取等待时间。
根据示例性实施例,处理器110将等待时间信息165中包括的写入命令轮询延迟时间确定为写入命令的轮询延迟时间,并且将等待时间信息165中包括的读取命令轮询延迟时间确定为读取命令的轮询延迟时间。因此,在发送存储设备命令(例如写入命令或读取命令)DEV_CMD之后,处理器110在基于等待时间信息165确定的轮询延迟时间(例如,写入命令轮询延迟时间或读取命令轮询延迟时间)的持续时间内在睡眠或待机状态下等待。在从发送存储设备命令DEV_CMD的时间起确定的轮询延迟时间已经期满之后,处理器110发起检查存储设备140的状态的轮询。
例如,根据示例性实施例,当用户应用调用(SYS_CALL)诸如写入功能或读取功能之类的系统功能时,OS 130将诸如写入命令或读取命令之类的存储设备命令DEV_CMD发送到存储设备140。存储设备140执行180由存储设备命令DEV_CMD请求的处理。此时,处理器110在基于等待时间信息165确定的轮询延迟时间期间进入睡眠状态。在轮询延迟时间期满之后,处理器110的OS 130发起轮询以检查存储设备140的状态。一旦存储设备140的命令处理完成,OS 130通过轮询操作得知命令处理的完成。
根据示例性实施例,在处理器110从存储设备140接收指示命令处理完成的中断的中断请求(IRQ)方法中,可能发生例如由于处理来自存储设备140的中断的中断处理器的中断传送延迟而引起的延迟、或者上下文切换延迟,因此与存储设备命令对应的操作可能不会被快速执行。另一方面,当处理器110在发送存储设备命令之后立即周期性地执行轮询时,处理器负载或处理器使用增加。根据示例性实施例,为了减少处理器负载或使用,可以考虑混合轮询方法。在根据实施例的混合轮询方法中,处理器110基于存储设备140的命令队列来预测存储设备140的写入/读取等待时间,并且在与预测的写入/读取等待时间对应的轮询延迟时间之后发起轮询。或者,在根据另一实施例的混合轮询方法中,处理器110从用户或用户应用120接收轮询延迟时间,并且在从用户接收的轮询延迟时间期满之后发起轮询。然而,处理器110的这种预测或来自用户的输入可能不能正确地反映每个存储设备140基于其规范的特性。
然而,根据示例性实施例,在包括存储设备140的计算系统100中,等待时间信息165存储在存储设备140中。另外,在发送存储设备命令DEV_CMD之后,处理器110在根据从存储设备140接收到的等待时间信息165确定的轮询延迟时间期间进入睡眠状态,并且在轮询延迟时间期满之后发起轮询。即,轮询延迟时间(从发送存储设备命令DEV_CMD的时间到发起轮询的时间点的时间段)是基于等待时间信息165来确定的,等待时间信息165对应于每个存储设备140的基于它们相应规范的写入/读取等待时间,因此处理器110能够在针对每个存储设备140的轮询延迟时间的持续时间内进入睡眠状态。此外,由于处理器110在轮询延迟时间的持续期间处于睡眠状态,所以可以减少由周期性地轮询引起的处理器负载。
图6是中断请求(IRQ)方法中的输入/输出操作、轮询方法中的输入/输出操作、基于处理器或基于用户的混合轮询方法中的第一输入/输出操作、基于处理器或基于用户的混合轮询方法中的第二输入/输出操作、以及根据示例性实施例的基于设备的混合轮询方法中的输入/输出操作的时序图。
在图6中,附图标记300表示IRQ方法中的输入/输出操作,附图标记320表示轮询方法中的输入/输出操作,附图标记340表示基于处理器或基于用户的混合轮询方法中的第一输入/输出操作,附图标记360表示基于处理器或基于用户的混合轮询方法中的第二输入/输出操作,附图标记380表示根据示例性实施例的基于设备的混合轮询方法中的输入/输出操作。
参考图1和图6,根据示例性实施例,参考附图标记300,当用户应用120请求针对存储设备140的输入或写入操作、或针对存储设备140的输出或读取操作时,用户应用120执行系统功能调用301,OS 130执行基本输入/输出(BIO)栈处理302,然后存储设备140的设备驱动器执行将存储设备命令发送到存储设备140的设备驱动器处理303。存储设备140执行由存储设备命令请求的处理310。系统功能调用301、BIO栈处理302、设备驱动器处理303和命令处理310不仅在IRQ方法中执行,而且在轮询方法、基于处理器或基于用户的混合轮询方法和基于设备的混合轮询方法中执行,并且这些处理301、302、303和310在这些方法中需要基本上相同的时间。在IRQ方法中,处理器110进入睡眠或待机状态305,直到处理器110从存储设备140接收到中断为止。当处理器110进入或退出睡眠状态305时,执行上下文切换(CS)304和306。例如,一旦存储设备140完成命令处理310的执行,存储设备140会产生中断。中断处理器执行中断服务例程(ISR)315,该例程将中断从存储设备140传送到OS 130。当执行ISR 315时,执行CS 314。当OS 130从中断处理器接收到中断时,处理器110退出睡眠状态302,并且在CS 306之后执行BIO栈处理307,并且返回308系统功能调用301的结果。BIO栈处理307和系统功能调用结果返回308不仅在IRQ方法中执行,而且在轮询方法、基于处理器或基于用户的混合轮询方法和基于设备的混合轮询方法中执行,并且这些处理307和308在这些方法中需要基本上相同的时间。在这种IRQ方法中,由于需要用于CS 314和306以及ISR315的额外时间,所以输入/输出操作不会被快速地执行。
参考附图标记320,根据实施例,在轮询方法中,处理器110(例如处理器110的OS130中包括的设备驱动器)在将存储设备命令发送到存储设备140之后,执行轮询操作325,该操作检查存储没备140的状态,或者存储设备140是否已经执行了命令处理310。与IRQ方法相比,这种轮询方法通过消除用于CS 314和306以及ISR 315的时间而更快地执行输入/输出操作,但是会增加处理器负载或使用。
根据示例性实施例,为了避免轮询的增加的处理器负载或使用,基于处理器的混合轮询方法可以基于例如命令队列中包括的命令的数量来预测存储设备的写入/读取等待时间,并且在与预测的等待时间对应的轮询延迟时间的持续时间内待机之后执行轮询。或者,为了避免轮询的增加的处理器负载或使用,基于用户的混合轮询方法可以从用户或用户应用120接收轮询延迟时间,在从用户接收的轮询延迟时间的持续时间内待机之后执行轮询。然而,这种基于处理器或基于用户的混合轮询方法可能无法基于每个存储设备140的规范正确地反映它们的特性,因此由处理器110或用户确定的轮询延迟时间可能与存储设备140的实际写入/读取等待时间不匹配。
例如,根据一个实施例,参考附图标记340,在基于处理器或基于用户的混合轮询方法中,在发送存储设备命令之后,处理器110在第一预测时间TPREDICT1的持续时间内进入睡眠或待机状态345。当处理器110进入或退出睡眠状态345时,执行CS 344和346。然而,第一预测时间TPREDICT1可以长于存储设备140的实际写入/读取等待时间或执行命令处理310的时间。如果第一预测时间TPREDICT1长于命令处理310的执行时间,则处理器或设备驱动器110在命令处理310已经完成执行之后在不希望的持续时间内执行轮询350,这会增加输入/输出操作的时间。
在另一个示例中,根据一个实施例,参考附图标记360,在基于处理器或基于用户的混合轮询方法中,在发送存储设备命令之后,处理器110在第二预测时间TPREDICT2的持续时间内进入睡眠或待机状态365。当处理器110进入或退出睡眠状态365时,执行CS 364和366。然而,第二预测时间TPREDICT2可以短于存储设备140的实际写入/读取等待时间或执行命令处理310的时间。如果第二预测时间TPREDICT2短于命令处理310的执行时间,则处理器或设备驱动器110执行比所需更长的轮询操作370,这增加了处理器负载或使用。
然而,在根据示例性实施例的基于设备的混合轮询方法中,处理器110基于存储设备140中存储的等待时间信息165来确定轮询延迟时间TLINFO,该等待时间信息165基于每个存储设备140的规范等来确定。因此,轮询延迟时间TLINFO对应于存储设备140的实际写入/读取等待时间。也就是说,轮询延迟时间TLINFO不会长于或短于执行命令处理310的时间。
例如,参考附图标记380,在根据示例性实施例的基于设备的混合轮询方法中,在发送存储设备命令之后,处理器110在根据存储设备140中存储的等待时间信息165确定的轮询延迟时间TLINFO的持续时间内进入睡眠或待机状态385。当处理器110进入或退出睡眠状态385时,执行CS 384和386。根据存储设备140中存储的等待时间信息165确定的轮询延迟时间TLINFO对应于命令处理310的执行时间。因此,处理器110在命令处理310已经完成执行时在适当的时间点发起轮询390,这可以减少处理器负载或使用,同时减少输入/输出操作的时间。
图7是根据示例性实施例的计算系统的框图。
参考图7,根据示例性实施例的计算系统400包括处理器410、存储设备440、以及连接到处理器410和存储设备440的主机总线适配器(HBA)420。在一些示例性实施例中,计算系统400还包括作为主存储器操作的存储器件490。除了计算系统400还包括HBA 420之外,图7的计算系统400具有与图1的计算系统100类似的操作和配置。
根据示例性实施例,HBA 420提供处理器410和存储设备440之间的物理连接。在一些示例性实施例中,处理器410和HBA 420使用PCIe接口协议彼此通信,但是实施例不限于此,并且HBA 420和存储设备440可以使用串行连接小型计算机系统接口(SAS)协议彼此通信,但是实施例不限于此。
本发明构思的实施例可以合并到任何存储设备和包括该存储设备的任何计算系统中。例如,本发明构思的实施例可以合并到存储设备(例如SSD、NVMe SSD、基于MLC的SSD、基于TLC的SSD、HDD等)以及包括该存储设备的计算系统中。
前述是对示例性实施例的说明,不应被解释为对其的限制。尽管描述了一些示例性实施例,然而本领域技术人员将容易理解,在不实质上脱离本发明构思的新颖教义和特征的前提下,可以在示例性实施例中进行多种修改。因此,所有这种修改旨在被包括在如权利要求中限定的本发明构思的范围内。因此,将理解到,上述是各个示例性实施例的说明,不是要解释成限制为所公开的具体示例性实施例,期望将对所公开的实施例以及其他示例性实施例的修改包含在所附的权利要求的范围内。
Claims (20)
1.一种计算系统,包括:
存储设备,包括多个非易失性存储器件,其中所述存储设备将用户数据和等待时间信息存储在所述多个非易失性存储器件中;以及
处理器,从所述存储设备接收所述等待时间信息,基于所述等待时间信息确定轮询延迟时间,向所述存储设备发送存储设备命令,并且在所述轮询延迟时间期满后发起用于检查所述存储设备的状态的轮询,所述轮询延迟时间的期满是自发送所述存储设备命令的时间起确定的。
2.根据权利要求1所述的计算系统,其中所述存储设备命令包括将所述用户数据写入所述存储设备的写入命令或者从所述存储设备读取所述用户数据的读取命令,以及
其中所述等待时间信息包括写入命令轮询延迟时间和读取命令轮询延迟时间,所述写入命令轮询延迟时间是所述处理器在发送所述写入命令之后的睡眠时间,所述读取命令轮询延迟时间是所述处理器在发送所述读取命令之后的睡眠时间。
3.根据权利要求1所述的计算系统,其中所述等待时间信息存储在所述多个非易失性存储器件中的至少一个中。
4.根据权利要求1所述的计算系统,其中所述等待时间信息存储在所述多个非易失性存储器件之一中包括的重要产品数据“VPD”页中。
5.根据权利要求4所述的计算系统,其中所述等待时间信息存储在所述VPD页的保留字段中。
6.根据权利要求1所述的计算系统,其中所述等待时间信息是在制造所述存储设备时被写入所述存储设备的。
7.根据权利要求1所述的计算系统,其中所述处理器在发送所述存储设备命令之后在所述轮询延迟时间的持续时间内进入睡眠状态。
8.根据权利要求1所述的计算系统,其中所述存储设备直接连接到所述处理器。
9.根据权利要求8所述的计算系统,其中所述处理器和所述存储设备使用外围组件互连快速“PCIe”接口协议彼此通信。
10.根据权利要求1所述的计算系统,还包括:
连接到所述处理器和所述存储设备的主机总线适配器“HBA”。
11.根据权利要求10所述的计算系统,其中所述处理器和所述HBA使用PCIe接口协议彼此通信,并且
其中所述HBA和所述存储设备使用串行连接小型计算机系统接口“SAS”协议彼此通信。
12.一种处理器,执行指令以执行用于操作存储设备的方法步骤,所述方法步骤包括:
从所述存储设备接收等待时间信息;
基于所述等待时间信息确定轮询延迟时间;
向所述存储设备发送存储设备命令;以及
在所述轮询延迟时间期满之后发起用于检查所述存储设备的状态的轮询操作,所述轮询延迟时间的期满是自发送所述存储设备命令的时间起确定的,
其中所述处理器连接到所述存储设备。
13.根据权利要求12所述的处理器,其中所述存储设备命令包括将用户数据写入所述存储设备的写入命令和从所述存储设备读取所述用户数据的读取命令,以及
其中所述等待时间信息包括写入命令轮询延迟时间和读取命令轮询延迟时间,所述写入命令轮询延迟时间是所述处理器在发送所述写入命令之后的睡眠时间,所述读取命令轮询延迟时间是所述处理器在发送所述读取命令之后的睡眠时间。
14.根据权利要求12所述的处理器,其中所述处理器在发送所述存储设备命令之后在所述轮询延迟时间的持续时间内进入睡眠状态。
15.根据权利要求12所述的处理器,其中所述处理器使用PCIe接口协议直接与所述存储设备通信。
16.根据权利要求12所述的处理器,其中所述处理器使用HBA与所述存储设备通信。
17.一种存储设备,包括:
多个非易失性存储器件,
其中所述存储设备将用户数据存储在所述多个非易失性存储器件中;并且存储用于确定存储设备命令的轮询延迟时间的等待时间信息。
18.根据权利要求17所述的存储设备,其中所述存储设备将所述等待时间信息存储在所述多个非易失性存储器件中的至少一个中。
19.根据权利要求17所述的存储设备,其中所述存储设备将所述等待时间信息存储在所述多个非易失性存储器件之一中包括的VPD页中。
20.根据权利要求19所述的存储设备,其中所述等待时间信息存储在所述VPD页的保留字段中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2017-0092989 | 2017-07-21 | ||
KR1020170092989A KR20190010335A (ko) | 2017-07-21 | 2017-07-21 | 레이턴시 정보를 저장하는 저장 장치, 프로세서 및 컴퓨팅 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109284241A true CN109284241A (zh) | 2019-01-29 |
Family
ID=65018963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810237644.0A Pending CN109284241A (zh) | 2017-07-21 | 2018-03-21 | 存储等待时间信息的存储设备、处理器和计算系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20190026220A1 (zh) |
KR (1) | KR20190010335A (zh) |
CN (1) | CN109284241A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112130753A (zh) * | 2019-06-24 | 2020-12-25 | 西部数据技术公司 | 快闪存储器轮询 |
CN112634963A (zh) * | 2019-10-08 | 2021-04-09 | 爱思开海力士有限公司 | 存储器系统、存储器控制器及其操作方法 |
TWI798033B (zh) * | 2021-07-14 | 2023-04-01 | 慧榮科技股份有限公司 | 借助彈性延遲時間控制來進行在預定通訊架構中的記憶體裝置的存取管理的方法、記憶體裝置、電子裝置以及記憶體裝置的控制器 |
CN117956014A (zh) * | 2024-03-27 | 2024-04-30 | 四川省建筑设计研究院有限公司 | 一种提高物联网设备控制与反馈实时性的方法及系统 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10942677B2 (en) * | 2019-01-24 | 2021-03-09 | Silicon Motion, Inc. | Method for performing access management of memory device, associated memory device and controller thereof, associated host device and associated electronic device |
CN110337139B (zh) * | 2019-07-18 | 2022-03-08 | 河南兵峰电子科技有限公司 | 一种基于无线传感器的低功耗控制方法及无线传感器 |
JP2021111259A (ja) | 2020-01-15 | 2021-08-02 | キオクシア株式会社 | メモリシステムとその制御方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040205298A1 (en) * | 2003-04-14 | 2004-10-14 | Bearden Brian S. | Method of adaptive read cache pre-fetching to increase host read throughput |
US20120278819A1 (en) * | 2011-04-26 | 2012-11-01 | Byungcheol Cho | Polling-driven device driver interface |
CN104036825A (zh) * | 2013-03-07 | 2014-09-10 | 三星电子株式会社 | 存储器控制器和包括存储器控制器的存储器系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012095892A1 (en) * | 2011-01-14 | 2012-07-19 | Hitachi, Ltd. | Storage apparatus and response time control method |
US10215804B2 (en) * | 2016-07-27 | 2019-02-26 | International Business Machines Corporation | Semiconductor power and performance optimization |
-
2017
- 2017-07-21 KR KR1020170092989A patent/KR20190010335A/ko unknown
-
2018
- 2018-01-03 US US15/861,326 patent/US20190026220A1/en not_active Abandoned
- 2018-03-21 CN CN201810237644.0A patent/CN109284241A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040205298A1 (en) * | 2003-04-14 | 2004-10-14 | Bearden Brian S. | Method of adaptive read cache pre-fetching to increase host read throughput |
US20120278819A1 (en) * | 2011-04-26 | 2012-11-01 | Byungcheol Cho | Polling-driven device driver interface |
CN104036825A (zh) * | 2013-03-07 | 2014-09-10 | 三星电子株式会社 | 存储器控制器和包括存储器控制器的存储器系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112130753A (zh) * | 2019-06-24 | 2020-12-25 | 西部数据技术公司 | 快闪存储器轮询 |
CN112634963A (zh) * | 2019-10-08 | 2021-04-09 | 爱思开海力士有限公司 | 存储器系统、存储器控制器及其操作方法 |
CN112634963B (zh) * | 2019-10-08 | 2023-10-24 | 爱思开海力士有限公司 | 存储器系统、存储器控制器及其操作方法 |
TWI798033B (zh) * | 2021-07-14 | 2023-04-01 | 慧榮科技股份有限公司 | 借助彈性延遲時間控制來進行在預定通訊架構中的記憶體裝置的存取管理的方法、記憶體裝置、電子裝置以及記憶體裝置的控制器 |
US11636055B2 (en) | 2021-07-14 | 2023-04-25 | Silicon Motion, Inc. | Method and apparatus for performing access management of memory device in predetermined communications architecture with aid of flexible delay time control |
CN117956014A (zh) * | 2024-03-27 | 2024-04-30 | 四川省建筑设计研究院有限公司 | 一种提高物联网设备控制与反馈实时性的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20190026220A1 (en) | 2019-01-24 |
KR20190010335A (ko) | 2019-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11151027B2 (en) | Methods and apparatuses for requesting ready status information from a memory | |
US11487434B2 (en) | Data storage device and method for adaptive command completion posting | |
CN109284241A (zh) | 存储等待时间信息的存储设备、处理器和计算系统 | |
US10466903B2 (en) | System and method for dynamic and adaptive interrupt coalescing | |
US9229655B2 (en) | Controller and method for performing background operations | |
US9021178B2 (en) | High performance path for command processing | |
JP6134453B2 (ja) | コマンドキューイング | |
US10108372B2 (en) | Methods and apparatuses for executing a plurality of queued tasks in a memory | |
KR102336443B1 (ko) | 가상화 기능을 지원하는 스토리지 장치 및 사용자 장치 | |
US10079048B2 (en) | Adjusting access of non-volatile semiconductor memory based on access time | |
US20210133096A1 (en) | Memory system and operating method thereof | |
KR20190079831A (ko) | 비동기적 동작 수행이 가능한 비휘발성 메모리 장치와 이를 포함하는 메모리 시스템, 그리고 이의 동작 수행 방법 | |
JP2011118469A (ja) | メモリ管理装置およびメモリ管理方法 | |
US11081187B2 (en) | Erase suspend scheme in a storage device | |
US10585822B2 (en) | Operation method of host system including storage device and operation method of storage device controller | |
US20100169546A1 (en) | Flash memory access circuit | |
KR20210098717A (ko) | 컨트롤러, 컨트롤러의 동작 방법 및 이를 포함하는 저장 장치 | |
KR102558947B1 (ko) | 데이터 저장 장치 | |
KR20200001208A (ko) | 융합형 반도체 장치 및 동작 방법, 이를 포함하는 적층형 메모리 장치 | |
US20180203813A1 (en) | Methods for processing return entities associated with multiple requests in single interrupt service routine thread and apparatuses using the same | |
KR20210060253A (ko) | 메모리 컨트롤러, 메모리 시스템 및 이의 동작 방법 | |
US20200159439A1 (en) | Multi host controller and semiconductor device including the same | |
KR102254101B1 (ko) | 데이터 처리 시스템 및 이의 동작 방법 | |
US11138102B2 (en) | Read quality of service for non-volatile memory | |
US10628322B2 (en) | Memory system and operating 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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190129 |