CN110780807A - 控制固态驱动器的性能 - Google Patents

控制固态驱动器的性能 Download PDF

Info

Publication number
CN110780807A
CN110780807A CN201910700563.4A CN201910700563A CN110780807A CN 110780807 A CN110780807 A CN 110780807A CN 201910700563 A CN201910700563 A CN 201910700563A CN 110780807 A CN110780807 A CN 110780807A
Authority
CN
China
Prior art keywords
volatile memory
duration
timer
ssd
command
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
Application number
CN201910700563.4A
Other languages
English (en)
Inventor
K-M·姜
D·V·阮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kaiwei International Co
Marvell International Ltd
Marvell Asia Pte Ltd
Original Assignee
Mawier International Trade Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mawier International Trade Co Ltd filed Critical Mawier International Trade Co Ltd
Publication of CN110780807A publication Critical patent/CN110780807A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/22Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1004Compatibility, e.g. with legacy hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies

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)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)

Abstract

接收访问固态驱动器(SSD)的存储访问请求。使用持续时间设置存储访问计时器,其中持续时间基于SSD的期望性能。向非易失性存储器发送与存储访问请求相关联的非易失性存储器命令。启动存储访问计时器。确定在存储访问计时器指示持续时间过去之后非易失性存储器是否完成了非易失性存储器命令的执行。如果非易失性存储器完成了非易失性存储器命令的执行,则向主机发送存储访问请求完成的指示。或者,如果非易失性存储器尚未完成非易失性存储器命令的执行,则使用持续时间重置存储访问计时器。

Description

控制固态驱动器的性能
相关申请的交叉引用
本公开要求于2018年7月31日递交的名称为“METHOD TO CONTROL THEPERFORMANCE OF A SOLID STATE DRIVE(SSD)BY ADJUSTING NAND WAITING AND POLLINGTIME”的美国临时申请序列号62/712,804的优先权以及2019年7月29日提交的名称为“CONTROLLING PERFORMANCE OF A SOLID STATE DRIVE”的美国专利申请序列号16/525,105的优先权,它们的全部内容通过引用并入本文。
技术领域
本公开涉及控制固态驱动器(SSD)的性能,即控制SSD的等待时间和吞吐量。
背景技术
固态驱动器(SSD)是一种数据存储设备,其使用非易失性存储器(诸如NAND(Not-And)或NOR(Not-Or)的非易失性存储器等)来存储持久的数字编码数据。SSD被配置为模拟硬盘驱动器,即,在快速旋转盘片的磁性表面上存储持久的数字编码数据并且在很多应用中替换硬盘驱动器(HDD)的设备。
主机通常耦合到SSD以从SSD读取数据、向SSD写入数据、以及从SSD擦除数据。为了便于读取数据、写入数据和擦除数据,SSD具有SSD控制器,SSD控制器具有用于与主机通信的主机接口和用于管理非易失性存储器的非易失性存储器接口。主机接口包含寻址、数据总线和用于与主机通信的控件,并且主机接口符合诸如串行高级技术附件(SATA)、串行连接小型计算机系统接口(SAS)、非易失性存储器(NVMe)或通用串行总线(USB)等数据通信协议,而非易失性存储器接口包含寻址、数据总线和用于管理非易失性存储器的控件,并且非易失性存储器接口符合诸如用于NAND非易失性存储器的开放式NAND闪存接口(ONFI)等数据通信协议。
主机分别发布写入请求、读取请求和擦除请求用以对SSD执行写入操作、读取操作和擦除操作。为了执行写入操作,主机向SSD发送写入请求。写入请求指示要写入的数据以及将数据写入哪里的数据地址。写入请求在SSD的主机接口处接收。然后,SSD控制器执行硬件和/或固件以经由非易失性存储器接口基于数据地址将数据写入非易失性存储器中。为了执行读取操作,主机向SSD发送读取请求。读取请求指示要读取的数据地址。读取请求在SSD的主机接口处接收。SSD控制器执行硬件和/或固件以基于数据地址读取非易失性存储器中的数据。SSD控制器接收经由非易失性存储器接口从非易失性存储器读取的数据,并且经由主机接口将读取数据提供给主机。为了执行擦除操作,主机向SSD发送擦除请求。擦除请求指示要擦除的数据地址。擦除请求在SSD的主机接口处接收。SSD控制器执行硬件和/或固件以基于数据地址在非易失性存储器中执行擦除操作。
SSD具有取决于由SSD使用的非易失性存储器的类型的等待时间和吞吐量。例如,NOR非易失性存储器可以比NAND非易失性存储器更快地读取和/或写入数据。SSD还具有取决于SSD控制器实现的等待时间和吞吐量。SSD控制器可以被设计为具有与读取和/或写入数据相关联的不同的固件参数,具有不同的非易失性存储器接口速度,以及具有不同的主机接口速度。在这方面,使用不同控制器或不同类型的非易失性存储器的SSD将以不同方式执行。
制造商取决于成本和/或组件可用性来构建具有不同SSD控制器和非易失性存储器类型的SSD。在这方面,来自同一制造商的SSD将根据SSD中的组件执行不同的操作。由于SSD使用不同的组件,因此制造商无法保证SSD的等待时间和吞吐量级别相同,即使在一些情况下客户可能期望获取相同级别的性能。
发明内容
本公开涉及控制固态驱动器(SSD)的性能,即通过调节与读取、写入和/或擦除SSD的非易失性存储器中的数据相关联的等待持续时间和/或轮询持续时间来控制SSD的等待时间和吞吐量。即使SSD使用不同的SSD控制器实现或非易失性存储器类型,等待持续时间和/或轮询持续时间的调节也允许控制SSD的性能。
根据所描述的系统和技术的一方面,一种方法包括接收访问固态驱动器(SSD)的存储访问请求;使用持续时间设置非易失性存储器访问计时器,其中持续时间基于SSD的期望性能;向非易失性存储器发送与存储访问请求相关联的非易失性存储器命令;启动非易失性存储器访问计时器;确定在非易失性存储器访问计时器指示持续时间过去之后非易失性存储器是否完成了非易失性存储器命令的执行;如果非易失性存储器完成了非易失性存储器命令的执行,则提供存储访问请求完成的指示;而如果非易失性存储器尚未完成非易失性存储器命令的执行,则基于持续时间重置非易失性存储器访问计时器。
根据所描述的系统和技术的另一方面,一种存储指令的非瞬态计算机可读介质,这些指令在由一个或多个处理器执行时使得一个或多个处理器至少:接收访问固态驱动器(SSD)的存储访问请求;使用持续时间设置非易失性存储器访问计时器,其中持续时间基于SSD的期望性能;向非易失性存储器发送与存储访问请求相关联的非易失性存储器命令;启动非易失性存储器访问计时器;确定在非易失性存储器访问计时器指示持续时间过去之后非易失性存储器是否完成了非易失性存储器命令的执行;如果非易失性存储器完成了非易失性存储器命令的执行,则提供存储访问请求完成的指示;而如果非易失性存储器尚未完成非易失性存储器命令的执行,则基于持续时间重置非易失性存储器访问计时器。
根据所述系统和技术的又一方面,一种SSD包括:具有非易失性存储器访问计时器的SSD控制器;非易失性存储器;存储在SSD控制器的存储器中的指令,这些指令在由SSD控制器的一个或多个处理器执行时使得SSD控制器至少:接收访问SSD的存储访问请求;使用持续时间设置非易失性存储器访问计时器,其中持续时间基于SSD的期望性能;向非易失性存储器发送与存储访问请求相关联的非易失性存储器命令;启动非易失性存储器访问计时器;确定在非易失性存储器访问计时器指示持续时间过去之后非易失性存储器是否完成了非易失性存储器命令的执行;如果非易失性存储器完成了非易失性存储器命令的执行,则提供存储访问请求完成的指示;而如果非易失性存储器尚未完成非易失性存储器命令的执行,则基于持续时间重置非易失性存储器访问计时器。
在这方面,提供了用于控制SSD的性能的机制。
附图说明
图1是布置有控制SSD性能的功能的示例固态驱动器(SSD);
图2是与使用持续时间设置非易失性存储器计时器以控制SSD的性能相关联的示例功能的流程图;
图3是定义持续时间的配置命令的示例;
图4是与控制SSD的性能相关联的示例功能的流程图;
图5和6示出了使用等待持续时间来设置等待计时器形式的示例非易失性存储器计时器如何改变SSD的等待时间和吞吐量;以及
图7是用于控制SSD的性能的示例SSD控制器的框图。
附图是为了说明示例实施例的目的,但是应当理解,实施例不限于附图中所示的布置和工具。
具体实施方式
本公开提供了用于控制固态驱动器(SSD)的性能的示例和细节,即通过控制与SSD的非易失性存储器相关联的等待持续时间和轮询持续时间来控制与对SSD的读取操作、写入操作和擦除操作相关联的等待时间和吞吐量。等待时间可以指示完成读取操作、写入操作或擦除操作的延迟,并且吞吐量可以指示操作完成的速率。通过控制等待持续时间和轮询持续时间,使用不同SSD控制器实现或非易失性存储器类型的SSD可以被布置为具有类似的性能。本文中描述的原理可以应用于控制其他类型的存储设备的性能,诸如访问存储介质的硬盘驱动器(HDD)或混合SSD/HDD驱动器。
图1示出了布置有控制SSD的等待时间和吞吐量的功能的示例SSD。SSD 100包括SSD控制器102和非易失性存储器(NVM)阵列104。SSD 100耦合到诸如计算机系统等主机106以对SSD 100执行读取、写入和擦除操作。
SSD控制器102具有主机接口108和非易失性存储器接口110。主机接口108促进与主机106的通信。主机接口108可以包括寻址、数据总线和用于与主机106通信的控件,并且符合诸如串行高级技术附件(SATA)、串行连接小型计算机系统接口(SAS)、非易失性存储器快速(NVMe)或通用串行总线(USB)等数据通信协议。例如,主机接口108从主机106接收要存储在SSD 100上的数据,并且将存储在SSD 100上的数据传输到主机106。非易失性存储器接口110促进对非易失性存储器阵列104的管理。非易失性存储器接口110可以包括寻址、数据总线和用于管理非易失性存储器阵列104的控制,并且符合诸如用于NAND闪存的开放式NAND(“Not-And”)闪存接口(ONFI)等数据通信协议。SSD控制器102可以促进对非易失性存储器阵列104执行读取操作、写入操作和擦除操作。
在写入操作期间,主机106可能想要向SSD 100写入数据。SSD控制器102经由写入请求从主机106接收该数据,该写入请求还可以标识用于在何处写入数据的逻辑块地址(LBA)。SSD控制器102可以将LBA映射到非易失性存储器阵列104中的物理地址,并且使得非易失性存储器阵列104将数据写入对应的物理地址。SSD 100可以具有易失性存储器120、非易失性存储器122或其他存储器(例如,SSD控制器内的存储器)中的一个或多个,以存储将LBA与物理地址相关联的映射信息。
在读取操作期间,主机106可能想要从SSD 100读取数据。例如,主机106可以使用用于在何处读取数据的逻辑块地址(LBA)来向SSD控制器102发送读取请求。SSD控制器102从主机106接收读取请求。SSD控制器102可以将LBA映射到非易失性存储器阵列104中的物理地址,并且使得非易失性存储器阵列104从相应的物理地址读取数据并且将其提供给SDD控制器102。然后,SSD控制器102可以经由主机接口108将读取数据提供给主机106。
在擦除操作期间,主机106可能想要从SSD 100擦除数据。例如,主机可以使用用于在何处擦除数据的LBA向SSD控制器102发送擦除请求。SSD控制器102从主机106接收擦除请求。SSD控制器102可以将LBA映射到非易失性存储器阵列104中的物理地址,并且使得非易失性存储器阵列104从非易失性存储器阵列104中的相应物理地址擦除数据。
非易失性存储器阵列104可以包括一个或多个非易失性存储器112-1、112-2、112-3、......、112-n,统称为非易失性存储器104或非易失性存储器阵列104。在一些示例中,每个非易失性存储器112-1、......、112-n可以在多个块中存储数据,并且每个块包括多个可寻址页面。每个可寻址页面是与物理地址相对应的物理存储器位置,该物理地址又与LBA相关联。因此,写入主机106或由主机106读取的每个LBA对应于根据可寻址页面中的一个可寻址页面访问的非易失性存储器112-1、......、112-n中的一个非易失性存储器的物理位置。非易失性存储器阵列104可以实现NAND非易失性存储器、NOR(“Not-Or”)非易失性存储器、NAND和NOR非易失性存储器的组合、或其他类型的存储介质。
SSD控制器102还可以具有一个或多个非易失性存储器计时器,示出为等待计时器114和状态轮询计时器116。非易失性存储器计时器可以使用给定持续时间来设置,并且在启动非易失性存储器计时器之后已经经过了给定持续时间时提供指示。例如,可以使用给定持续时间(例如,80微秒)设置非易失性存储器计时器,并且启动非易失性存储器计时器。非易失性存储器计时器可以具有用于确定自非易失性存储器计时器启动以来经过的给定持续时间的计数器或计时器。在持续时间过去之后,非易失性存储器计时器提供指示。
等待计时器114和状态轮询计时器116形式的非易失性存储器计时器被用于促进非易失性存储器阵列104中的读取操作、写入操作和/或擦除操作。等待计时器114和状态轮询计时器116可以被设置为相应的持续时间,并且等待计时器114和状态轮询计时器116作为读取、写入或擦除操作的一部分当向非易失性存储器阵列104发出读取命令、写入命令或擦除命令时开始。等待计时器114和状态轮询计时器116可以在相应的持续时间已经过去时提供相应的指示。在等待计时器114和/或状态轮询计时器116的持续时间过去之后,SSD控制器102可以执行状态轮询以确定非易失性存储器阵列104对读取命令、写入命令或擦除命令的完成。如果SSD控制器102确定读取命令、写入命令或擦除命令完成,则SSD经由主机接口108向主机106提供读取操作、写入操作或擦除操作完成的指示。否则,可以重置等待计时器114和状态轮询计时器116,并且SSD控制器102可以基于等待计时器114和状态轮询计时器116执行附加状态轮询请求,直到读取命令、写入命令或擦除命令完成。
在示例中,SSD控制器102可以具有计时器控制器124,以促进使用持续时间设置等待计时器114和/或状态轮询计时器116以在诸如读取操作、写入操作或擦除操作等存储操作期间控制SSD 100的性能,诸如等待时间和/或吞吐量。等待时间可以指示完成读取、写入或擦除操作的延迟,并且吞吐量可以指示完成读取、写入或擦除操作的速率。使用较长持续时间设置等待计时器114和/或状态轮询计时器116导致SSD 100的等待时间较长和/或吞吐量较少。使用较短持续时间设置等待计时器114和/或状态轮询计时器116导致SSD 100的等待时间较短和/或吞吐量更多。SSD控制器102被示出为具有等待计时器114和状态轮询计时器116两者,但是在一些示例中,SSD控制器102可以具有等待计时器114和状态轮询计时器116中的一个计时器或另一计时器或者其他计时器。在其他示例中,等待计时器114和状态轮询计时器116可以位于SSD 100的其他系统上。
示例操作
使用给定持续时间设置非易失性存储器访问计时器允许人为地调节SSD以满足诸如SSD的等待时间和/或吞吐量等性能标准。给定持续时间可以以很多方式设置,其示例在下面提供。
在各种示例中,可以基于SSD的配置(诸如SSD或SSD控制器实现中的非易失性存储器)来设置非易失性存储器访问计时器的给定持续时间。例如,具有NOR非易失性存储器的SSD可能比具有NAND非易失性存储器的SSD更快地读取和/或写入数据。如果SSD具有NAND非易失性存储器,则持续时间可以被设置为存储在SSD控制器102中的一个时间值,而如果SSD具有NOR非易失性存储器,则持续时间可以被设置为存储在SSD控制器102中的另一时间值以针对SSD的配置实现SSD的期望性能。作为另一示例,SSD控制器可以被设计为具有与读取和/或写入数据相关联的不同固件参数、具有不同的非易失性存储器接口速度、以及具有不同的主机接口速度。等待计时器和/或轮询计时器可以使用相应的持续时间来设置以针对SSD控制器的配置实现SSD的期望性能。
例如,SSD控制器可以存储SSD的不同的主机接口速度、非易失性存储器接口速度和/或固件参数到不同的持续时间的映射。基于SSD的当前主机接口速度、非易失性存储器接口速度和/或固件参数,SSD控制器可以标识所映射的持续时间并且使用持续时间设置等待计时器和/或状态轮询计时器。可以增加轮询持续时间和/或等待持续时间以增加等待时间并且降低吞吐量,而可以减少轮询持续时间和/或等待持续时间以减少等待时间并且增加吞吐量,以针对SSD的配置实现SSD的期望性能。在这方面,可以通过改变轮询持续时间和等待持续时间中的一项或多项来人为地控制SSD的等待时间和/或吞吐量。此外,通过控制等待持续时间和轮询持续时间,使用不同SSD控制器实现的SSD或非易失性存储器可以被布置为具有类似的性能。例如,如果一个SSD具有与另一SSD不同的组件,则可以设置每个SSD的轮询持续时间和等待持续时间中的一项或多项,使得尽管使用不同的组件,但是每个SSD的性能也是类似的。
在各种示例中,可以基于存储访问请求来设置等待持续时间和/或轮询持续时间。例如,存储访问请求可以是读取存储在SSD中的数据的读取请求、向SSD写入数据的写入请求、或者擦除SSD中的数据的擦除请求。可以设置持续时间以使得SSD能够满足与SSD相关联的性能标准。
图2是与基于存储访问请求设置等待持续时间和/或轮询持续时间以控制SSD的性能相关联的示例功能的流程图。这些功能可以由SSD控制器用硬件、固件和/或硬件和固件的组合来实现。
在202,接收存储访问请求。存储访问请求可以在SSD控制器的主机接口处从主机接收。
在204,作出对于所接收的存储访问请求的类型的确定。存储访问请求可以是读取请求、写入请求或擦除请求。每种类型的存储访问请求可以与给定持续时间(诸如存储在SSD控制器中的相应等待持续时间和轮询持续时间)相关联,给定持续时间与等待计时器和状态轮询计时器相关联。
在206,基于存储访问请求的类型使用持续时间设置非易失性存储器访问计时器。例如,如果存储访问请求的类型是写入请求并且非易失性存储器访问计时器是状态轮询计时器,则状态轮询计时器可以被设置为存储在SSD控制器中的与写入请求相关联的轮询持续时间。作为另一示例,如果存储访问请求的类型是写入请求并且非易失性存储器访问计时器是等待计时器,则等待计时器可以被设置为存储在SSD控制器中的与写入请求相关联的等待持续时间。如果存储访问请求是读取请求或擦除请求,则等待计时器和状态轮询计时器可以类似地设置为与读取请求或擦除请求相关联的相应的等待持续时间和轮询持续时间。在一些示例中,等待持续时间对于每个请求可以是相同的,并且轮询持续时间可以不同。
在各种示例中,等待持续时间和/或轮询持续时间可以由配置命令定义。配置命令可以指示SSD的期望性能。
图3是可以被用于设置持续时间的配置命令的示例。配置命令300可以被从主机发送或者由SSD控制器生成。配置命令300可以包括类型字段302和计时器字段310。类型字段302可以通过诸如比特串等唯一代码来指示该命令是配置命令。计时器字段310可以定义一个或多个持续时间。如图所示,计时器字段310可以采用等待持续时间字段304和轮询持续时间字段306中的一个或多个的形式,等待持续时间字段304和轮询持续时间字段306两者都在配置命令300中示出。等待持续时间字段304和轮询持续时间字段306可以分别指示与等待计时器和状态轮询计时器相关联的等待持续时间和轮询持续时间。基于类型字段对配置命令的标识,SSD控制器可以使用计时器字段310中的持续时间设置相应非易失性存储器计时器。例如,等待计时器可以使用等待持续时间字段304中的等待持续时间来设置,并且状态轮询计时器可以使用轮询持续时间字段306中的轮询持续时间来设置。
在一些示例中,SSD控制器可以将预设轮询持续时间和预设等待持续时间的指示存储在存储器中,然后该存储器被访问并且分别与状态轮询计时器和等待计时器相关联。配置命令可以提供从存储在SSD控制器上的多个选项中选择特定的预设轮询持续时间和预设等待持续时间的指示,而不是在配置命令本身中指定实际的轮询持续时间和等待持续时间。以此方式,由于持续时间已经存储在本地,例如,在SSD控制器的寄存器中,因此减少了用于获取等待持续时间或轮询持续时间的固件开销。
图4是与通过设置与存储操作相关联的等待计时器和/或状态轮询计时器来控制SSD的性能相关联的示例功能的示例流程图400。这些功能可以在SSD控制器上用固件、硬件或固件和硬件的组合来实现。使用给定持续时间设置等待计时器和/或状态轮询计时器允许人为地调节SSD以满足诸如SSD的等待时间和/或吞吐量等性能标准。
在402,SSD控制器从主机接收存储访问请求。SSD控制器的主机接口可以接收存储访问请求。存储访问请求可以采用多种形式。例如,存储访问请求可以是具有与要读取的数据相关联的逻辑地址的指示的读取请求。作为另一示例,存储访问操作可以是具有要写入SSD的数据的指示和要写入数据的逻辑地址的写入请求。作为另一示例,存储访问操作可以是擦除请求,该擦除请求具有逻辑地址的指示的该逻辑地址具有要擦除的数据。存储访问请求也可以采用其他形式。
在404,SSD控制器使用给定持续时间设置非易失性存储器访问计时器,其中给定持续时间基于SSD的期望性能。非易失性存储器访问计时器可以采用等待计时器和/或状态轮询计时器的形式。等待计时器和状态轮询计时器可以使用相应的等待持续时间和轮询持续时间来设置以控制SSD的性能。如上所述,相应的等待持续时间和轮询持续时间可以以很多方式确定。使用相应的等待持续时间和轮询持续时间来设置等待计时器和状态轮询计时器可以人为地调节SSD以满足诸如SSD的等待时间和/或吞吐量等性能标准。
在406,SSD控制器基于存储访问请求向非易失性存储器阵列发送非易失性存储器命令。例如,读取命令可以标识要读取的非易失性存储器中的物理地址,该物理地址对应于由读取请求所指示的要读取的逻辑地址。作为另一示例,写入命令可以标识要写入的非易失性存储器中的物理地址,该物理地址对应于由写入请求所指示的要写入的逻辑地址和要写入的数据。在又一示例中,擦除命令可以标识要擦除的非易失性存储器中的物理地址,该物理地址对应于由擦除请求所指示的要擦除的逻辑地址。在发送非易失性存储器命令之后,在408,SSD控制器可以启动等待计时器,并且在执行非易失性存储器阵列的状态轮询以确定非易失性存储器阵列是否完成非易失性存储器命令的执行之前等待等待持续时间。建议在检查命令的执行是否完成之前等待一定时间段,因为如果发出太多的状态轮询,则不能有效地利用非易失性存储器阵列的带宽。在这方面,等待计时器可以指示是否应当执行状态轮询。例如,等待计时器可以被设置为等于等待持续时间的持续时间并且被开启。等待计时器可以指示与等待持续时间相关联的时间已经过去,此时应当执行状态轮询,否则不执行。
在410,SSD控制器在等待持续时间过去之后执行状态轮询。状态轮询是检查非易失性存储器阵列是否已经完成非易失性存储器命令的执行的状态。状态轮询可以采取检查非易失性存储器中的寄存器的形式,该寄存器指示执行是否完成。作为另一示例,状态轮询可以采取向非易失性存储器发送状态消息的形式,该状态消息请求执行是否完成的指示。
在412,接收对状态轮询的响应,并且在414,检查对状态轮询的响应。响应可以是来自非易失性存储器的指示执行是否完成的消息,或者是检查指示执行是否完成的寄存器的结果。如果响应指示非易失性存储器命令的执行完成,则在416,向主机提供存储访问请求完成的指示。例如,如果非易失性存储器命令是读取命令,则当要读取的数据可用于SSD控制器时,执行完成。作为另一示例,如果非易失性存储器命令是写入命令,则当数据被写入非易失性存储器时,执行完成。在又一示例中,如果非易失性存储器命令是擦除命令,则当要擦除的数据被非易失性存储器擦除时,执行完成。如果非易失性存储器命令是读取命令,则SSD控制器可以从提供给SSD控制器的非易失性存储器请求读取数据。对主机的指示可以是所读取的数据。对于写入或擦除请求,该指示可以是已经执行相应写入或擦除请求的消息或状态指示。
在一些示例中,即使在SSD控制器执行初始状态轮询之后,非易失性存储器阵列也可能尚未完成非易失性存储器命令的执行。在这种情况下,SSD控制器执行附加的状态轮询请求。状态轮询计时器控制控制器发出附加状态轮询请求的频率。
状态轮询计时器可以被设置为等于404处的轮询持续时间的持续时间。在418,SSD控制器可以启动状态轮询计时器并且等待轮询持续时间过去。在420,状态轮询计时器可以指示轮询持续时间已经过去,此时执行状态轮询,否则不执行。在执行状态轮询之后,处理可以继续到412。执行框412、414、418和420,直到在框416处向主机提供存储访问请求完成的指示。
在一些示例中,框418可以包括如果状态轮询计时器未在启动之前使用轮询持续时间进行404,则在启动状态轮询计时器之前使用轮询持续时间设置状态轮询计时器。在一些示例中,SSD控制器可以在针对存储访问操作重置状态轮询计时器一次或多次之后改变轮询持续时间。例如,SSD控制器可以具有计数器,该计数器对已经针对存储访问请求而执行状态轮询的次数进行计数。可以基于计数来增加和/或减少状态轮询计时器持续时间,以便能够满足性能标准并且微调SSD的等待时间和/或吞吐量。
用于设置等待计时器和状态轮询计时器的持续时间允许控制SSD的等待时间和吞吐量。例如,将等待计时器设置为较长的等待持续时间和/或将状态轮询计时器设置为较长的轮询持续时间可以增加执行存储访问操作的时间。作为另一示例,将等待计时器设置为较短的等待持续时间和/或将状态轮询计时器设置为较短的轮询持续时间可以减少执行存储访问操作的时间。这样,可以针对各种SSD控制器和/或非易失性存储器配置来调节SSD的性能,使得跨多个SSD的性能可以相同或不同。
图5以图形方式示出了等待计时器的等待持续时间的设置如何改变SSD的等待时间和/或吞吐量性能。示出了两个消息流530和550,作为发出读取命令502的结果。横轴500指示时间。
消息流530与第一等待持续时间相关联。在502,接收读取请求,并且在504,接收与要读取的数据相关联的地址。等待计时器可以使用等待持续时间来设置。读取命令被发出到非易失性存储器阵列,并且在506,在等待计时器指示等待持续时间已经过去之后在T1执行状态轮询。对在T1执行的状态轮询的响应可以指示读取命令已经完成。如果读取操作的执行完成,则SSD控制器可以请求非易失性存储器阵列提供在T2接收的要读取的数据。该请求的一个示例示出为“05h,地址,E0h”,这导致数据508被接收。
如果等待持续时间增加,则SSD的等待持续时间和性能增加。消息流550与长于第一等待持续时间的第二等待持续时间相关联。在510,接收读取请求,并且在512,接收与要读取的数据相关联的地址。等待计时器可以使用长于在流程530中描述的等待持续时间的等待持续时间来设置。读取命令被发出到非易失性存储器阵列,并且在514,在等待计时器指示等待持续时间已经过去之后在T3执行状态轮询。T3在T1之后,表明等待持续时间较长。对在T3执行的状态轮询的响应可以指示读取命令已经完成。如果读取操作的执行完成,则SSD控制器可以请求非易失性存储器阵列提供在T4接收的要读取的数据。该请求的一个示例示出为“05h,地址,E0h”,这导致数据516被接收。
在消息流550中,直到长于T2的T4才接收数据,因为与等待持续时间相关联的时间更长。在这方面,与等待计时器相关联的等待持续时间可以与读取时间(tRead)和从SSD读取数据的等待时间和/或吞吐量直接相关。类似地,与状态轮询计时器相关联的轮询持续时间(未示出)可以与从SSD读取数据的等待时间和吞吐量直接相关。例如,可以将一个或多个状态轮询请求发送到非易失性存储器,每个状态轮询请求由轮询持续时间分开,直到读取操作完成。此外,等待持续时间和轮询持续时间与在SSD中写入和擦除数据的等待时间和吞吐量直接相关。
图6示出了SSD的性能如何随着等待持续时间的改变而改变的示例。横轴602示出了对于读取命令被设置为在24.5微秒到109.5微秒的范围内的不同等待持续时间的等待计时器。轴604示出了与128K顺序读取相关联的数据速率方面的等待时间如何随着等待持续时间(也称为“对第一状态检查的延迟”)的增加而减小。轴606示出了千位输入输出操作(kIOPS)方面的吞吐量如何随着等待持续时间的增加而降低。在等待持续时间超过84.5微秒之后,这种减少通常变得很明显。在这方面,调节等待持续时间允许配置SSD的等待时间和/或吞吐量。通过将状态轮询计时器设置为不同的轮询持续时间,SSD的性能可以类似地改变。
示例装置
图7是用于控制SSD的性能的示例SSD控制器102的框图。SSD控制器102包括处理器702(可能包括多个处理器、多个核、多个节点和/或实现多线程等)。SSD控制器102包括存储器704。存储器704可以是系统存储器(例如,高速缓存、随机存取存储器(RAM)、同步RAM(SRAM)、动态RAM(DRAM)、零电容器RAM、双晶体管RAM、嵌入式DRAM(eDRAM)、扩展数据输出RAM(EDO RAM)、双倍数据速率RAM(DDR RAM)、电可擦除可编程只读存储器(EEPROM)、Nano-RAM(NRAM)、电阻RAM(RRAM)、硅氧化物氮化物氧化物硅存储器(SONOS)、参数随机存取存储器(PRAM)等中的一个或多个)或者非瞬态机器可读介质的任何一个或多个其他可能的实现。在示例中,存储器704可以存储用于设置非易失性存储器计时器的计时器持续时间。在示例中,所存储的计时器持续时间可以与不同的SSD配置和/或不同的存储命令相关联。该关联促进标识与正在执行的SSD或存储访问请求的当前配置相关联的计时器持续时间,并且促进使用所标识的计时器持续时间来设置非易失性存储器计时器。在一些示例中,存储器704可以包括用于存储用于设置等待计时器和状态轮询计时器的等待持续时间和/或轮询持续时间的指示的寄存器。
SSD控制器102还包括总线706(例如,外围组件互连(PCI)、工业标准架构(ISA)、PCI-Express、新总线(NuBus)等)。耦合到总线706的是接口708,接口708促进与SSD的非易失性存储器阵列和主机的通信。在这方面,接口708可以包括主机接口和非易失性存储器接口。SSD控制器102可以具有等待计时器710和状态轮询计时器712。
SSD控制器102的计时器控件714可以实现先前描述的用于设置计时器以部分地(或完全地)用硬件和/或存储在非瞬态机器可读介质上的软件(例如,计算机代码、程序指令、程序代码、计算机指令)来控制SSD的性能功能中的任何一个。在一些情况下,代替或者除了计时器控件714之外,处理器702和存储器704可以实现或促进实现其他功能。此外,实现可以包括与图7中所示的相比更少的或附加的组件(例如,视频卡、声卡、附加的网络接口、外围设备等)。处理器702和存储器704耦合到总线706。虽然示出为耦合到总线706,但是存储器704可以耦合到处理器702。
上面已经详细描述了一些实现,并且可以进行各种修改。所公开的主题(包括本说明书中描述的功能操作)可以在电子电路、计算机硬件、固件、软件或其组合中实现,诸如本说明书中公开的结构装置及其结构等同物:可能包括可操作以使得诸如处理器等一个或多个数据处理装置执行所描述的操作的程序(诸如在非瞬态计算机可读介质中编码的程序,非瞬态计算机可读介质可以是存储器设备、存储设备、机器可读存储基板、或其他物理或机器可读介质、或上述的一个或多个的组合)。
程序(也称为计算机程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言、或声明或过程语言,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其他单元。程序不一定对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中,存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。可以部署程序以在一个计算机上执行,或者在位于一个站点处或分布在多个站点上并且由通信网络互连的多个计算机上执行。
虽然本说明书包含很多细节,但是这些细节不应当被解释为对可以要求保护的内容的范围的限制,而是作为可以特定于具体的实现的特征的描述。在本说明书中在单独实现的上下文中描述的某些特征也可以在单个实现中组合实现。相反,在单个实现的上下文中描述的各种特征也可以在多个实现中单独地或以任何合适的子组合实现。此外,尽管特征在上面可以描述为以某些组合起作用并且甚至最初如此声明,但是在某些情况下,可以从组合中排除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以涉及子组合或子组合的变化。
类似地,尽管在附图中以特定顺序描绘了操作,但是这不应当被理解为要求以所示的特定顺序或按顺序执行这样的操作,或者执行所有示出的操作,以实现期望的结果。在某些情况下,多任务处理和并行处理可能是有利的。此外,上述实现中的各种系统组件的分离不应当被理解为在所有实现中都需要这种分离。
在具有连词“和”的列表之前使用短语“至少一个”不应当被视为排他性列表,并且不应当被解释为具有来自每个类别的一个项目的类别列表,除非另外明确说明。陈述“A、B和C中的至少一个”的条款只能被所列项目中的一个、所列项目中的多个、以及列表中的一个或多个项目以及未列出的另一项目侵犯。
其他实现落入所附权利要求的范围内。

Claims (20)

1.一种方法,包括:
接收访问固态驱动器(SSD)的存储访问请求;
使用持续时间设置非易失性存储器访问计时器,其中所述持续时间基于所述SSD的期望性能;
向非易失性存储器发送与所述存储访问请求相关联的非易失性存储器命令;
启动所述非易失性存储器访问计时器;
确定在所述非易失性存储器访问计时器指示所述持续时间过去之后,所述非易失性存储器是否完成了所述非易失性存储器命令的执行;
如果所述非易失性存储器完成了所述非易失性存储器命令的执行,则提供所述存储访问请求完成的指示;以及
如果所述非易失性存储器尚未完成所述非易失性存储器命令的执行,则基于所述持续时间重置所述非易失性存储器访问计时器。
2.根据权利要求1所述的方法,其中所述非易失性存储器命令是读取操作、写入操作或擦除操作,并且所接收的所述存储访问请求的类型是读取请求、写入请求或擦除请求。
3.根据权利要求1所述的方法,其中所述非易失性存储器访问计时器包括等待计时器和状态轮询计时器,其中重置所述非易失性存储器访问计时器包括:使用与所述状态轮询计时器相关联的轮询持续时间重置所述状态轮询计时器,其中每次所述状态轮询计时器被重置时,所述轮询持续时间被调节。
4.根据权利要求1所述的方法,其中所述持续时间是直到状态轮询被发送到所述非易失性存储器以确定所述非易失性存储器命令的执行是否完成的等待持续时间,或者所述持续时间是直到另一状态轮询被发送到所述非易失性存储器以确定所述非易失性存储器命令的执行是否完成的轮询持续时间,其中所述轮询持续时间针对不同类型的非易失性存储器命令而被调节。
5.根据权利要求1所述的方法,其中使用持续时间设置所述非易失性存储器访问计时器包括:接收配置命令,其中所述配置命令包括持续时间字段;以及基于所述持续时间字段中的给定持续时间设置所述持续时间。
6.根据权利要求1所述的方法,其中持续时间还基于所接收的所述存储访问请求的类型和所述SSD的配置中的一项或多项。
7.根据权利要求1所述的方法,其中使用所述持续时间设置所述非易失性存储器访问计时器包括:将所述持续时间从先前设置的持续时间增加到用以执行所述存储请求的增加时间。
8.一种存储指令的非瞬态计算机可读介质,所述指令在由一个或多个处理器执行时,使得所述一个或多个处理器至少:
接收访问固态驱动器(SSD)的存储访问请求;
使用持续时间设置非易失性存储器访问计时器,其中所述持续时间基于所述SSD的期望性能;
向非易失性存储器发送与所述存储访问请求相关联的非易失性存储器命令;
启动所述非易失性存储器访问计时器;
确定在所述非易失性存储器访问计时器指示所述持续时间过去之后,所述非易失性存储器是否完成了所述非易失性存储器命令的执行;
如果所述非易失性存储器完成了所述非易失性存储器命令的执行,则提供所述存储访问请求完成的指示;以及
如果所述非易失性存储器尚未完成所述非易失性存储器命令的执行,则基于所述持续时间重置所述非易失性存储器访问计时器。
9.根据权利要求8所述的非瞬态计算机可读介质,其中所述非易失性存储器命令是读取操作、写入操作或擦除操作,并且所接收的所述存储访问请求的类型是读取请求、写入请求或擦除请求。
10.根据权利要求8所述的非瞬态计算机可读介质,其中所述非易失性存储器访问计时器包括等待计时器和状态轮询计时器,其中用于重置所述非易失性存储器访问计时器的所述指令包括:用于使用与所述状态轮询计时器相关联的轮询持续时间重置所述状态轮询计时器的指令,其中每次所述状态轮询计时器被重置时,所述轮询持续时间被调节。
11.根据权利要求8所述的非瞬态计算机可读介质,其中所述持续时间是直到状态轮询被发送到所述非易失性存储器以确定所述非易失性存储器命令的执行是否完成的等待持续时间,或者所述持续时间是直到另一状态轮询被发送到所述非易失性存储器以确定所述非易失性存储器命令的执行是否完成的轮询持续时间,其中所述轮询持续时间针对不同类型的非易失性存储器命令而被调节。
12.根据权利要求8所述的非瞬态计算机可读介质,其中用于使用持续时间设置所述非易失性存储器访问计时器的所述指令包括用于进行以下的指令:接收配置命令,其中所述配置命令包括持续时间字段;以及基于所述持续时间字段中的给定持续时间设置所述持续时间。
13.根据权利要求8所述的非瞬态计算机可读介质,其中所述持续时间还基于所接收的所述存储访问请求的类型和所述SSD的配置中的一项或多项。
14.根据权利要求8所述的非瞬态计算机可读介质,其中用于使用所述持续时间设置所述非易失性存储器访问计时器的所述指令包括:用于将所述持续时间从先前设置的持续时间增加到用以执行所述存储请求的增加时间的指令。
15.一种SSD,包括:
SSD控制器,所述SSD控制器具有非易失性存储器访问计时器;
非易失性存储器;
存储在所述SSD控制器的存储器中的指令,所述指令在由所述SSD控制器的一个或多个处理器执行时,使得所述SSD控制器至少:
接收访问所述SSD的存储访问请求;
使用持续时间设置所述非易失性存储器访问计时器,其中所述持续时间基于所述SSD的期望性能;
向所述非易失性存储器发送与所述存储访问请求相关联的非易失性存储器命令;
启动所述非易失性存储器访问计时器;
确定在所述非易失性存储器访问计时器指示所述持续时间过去之后,所述非易失性存储器是否完成了所述非易失性存储器命令的执行;
如果所述非易失性存储器完成了所述非易失性存储器命令的执行,则提供所述存储访问请求完成的指示;以及
如果所述非易失性存储器尚未完成所述非易失性存储器命令的执行,则基于所述持续时间重置所述非易失性存储器访问计时器。
16.根据权利要求15所述的SSD,其中所述非易失性存储器命令是读取操作、写入操作或擦除操作,并且所接收的所述存储访问请求的类型是读取请求、写入请求或擦除请求。
17.根据权利要求15所述的SSD,其中所述非易失性存储器访问计时器包括等待计时器和状态轮询计时器,其中用于重置所述非易失性存储器访问计时器的所述指令包括:用于使用与所述状态轮询计时器相关联的轮询持续时间重置所述状态轮询计时器的指令,其中每次所述状态轮询计时器被重置时,所述轮询持续时间被调节。
18.根据权利要求15所述的SSD,其中所述持续时间是直到状态轮询被发送到所述非易失性存储器以确定所述非易失性存储器命令的执行是否完成的等待持续时间,或者所述持续时间是直到另一状态轮询被发送到所述非易失性存储器以确定所述非易失性存储器命令的执行是否完成的轮询持续时间,其中所述轮询持续时间针对不同类型的非易失性存储器命令而被调节。
19.根据权利要求15所述的SSD,其中所述持续时间基于所接收的所述存储访问请求的类型和所述SSD的配置中的一项或多项。
20.根据权利要求15所述的固态硬盘,其中用于使用所述持续时间设置所述非易失性存储器访问计时器的所述指令包括:用于将所述持续时间从先前设置的持续时间增加到用以执行所述存储请求的增加时间的指令。
CN201910700563.4A 2018-07-31 2019-07-31 控制固态驱动器的性能 Pending CN110780807A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862712804P 2018-07-31 2018-07-31
US62/712,804 2018-07-31
US16/525,105 2019-07-29
US16/525,105 US11366753B2 (en) 2018-07-31 2019-07-29 Controlling performance of a solid state drive

Publications (1)

Publication Number Publication Date
CN110780807A true CN110780807A (zh) 2020-02-11

Family

ID=67658331

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910700563.4A Pending CN110780807A (zh) 2018-07-31 2019-07-31 控制固态驱动器的性能

Country Status (4)

Country Link
US (1) US11366753B2 (zh)
EP (1) EP3605341A1 (zh)
KR (1) KR20200014241A (zh)
CN (1) CN110780807A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113625939A (zh) * 2020-05-06 2021-11-09 爱思开海力士有限公司 保持非易失性存储器装置中的一致写入延迟

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11366753B2 (en) * 2018-07-31 2022-06-21 Marvell Asia Pte Ltd Controlling performance of a solid state drive
US11249536B2 (en) * 2018-12-17 2022-02-15 Qualcomm Incorporated Reducing power consumption of communication interfaces by clock frequency scaling and adaptive interleaving of polling
US11243804B2 (en) 2019-11-19 2022-02-08 Micron Technology, Inc. Time to live for memory access by processors
US11199995B2 (en) * 2019-11-19 2021-12-14 Micron Technology, Inc. Time to live for load commands
CN111078146B (zh) * 2019-12-13 2023-11-14 合肥兆芯电子有限公司 存储器管理方法、存储器存储装置及存储器控制电路单元
CN114385082A (zh) * 2021-12-31 2022-04-22 北京得瑞领新科技有限公司 Nor闪存的数据处理方法、存储介质及ssd设备
US20240004582A1 (en) * 2022-06-29 2024-01-04 Micron Technology, Inc. Monitoring and exporting command execution times in a semiconductor device

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005204295A (ja) * 2003-12-19 2005-07-28 Internatl Business Mach Corp <Ibm> サーバがモバイル・クライアントの資産情報にリモート・アクセスできるようにするデータ処理システムおよびサービス
US20100169536A1 (en) * 2008-12-29 2010-07-01 Microsoft Corporation Dynamic virtual machine memory management
CN101866692A (zh) * 2009-04-14 2010-10-20 J·鲁德利克 用于写入和擦除非易失性存储器的方法
CN101872320A (zh) * 2010-04-16 2010-10-27 浪潮电子信息产业股份有限公司 一种关于ssd硬盘可靠性及性能的测试及统计方法
US20120278819A1 (en) * 2011-04-26 2012-11-01 Byungcheol Cho Polling-driven device driver interface
US20130007344A1 (en) * 2011-07-01 2013-01-03 Belgal Hanmant P Apparatus, System, and Method for Refreshing Non-volatile Memory
US20160179373A1 (en) * 2014-12-18 2016-06-23 Apple Inc. Hardware-based performance equalization for storage devices
US20160321006A1 (en) * 2015-04-30 2016-11-03 Fujitsu Limited Storage control device, storage system and method of controlling a storage device

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8438356B2 (en) * 2007-10-01 2013-05-07 Marvell World Trade Ltd. Flash memory controller
US20090172213A1 (en) * 2007-12-31 2009-07-02 Sowmiya Jayachandran Command completion detection in a mass storage device
US9582222B2 (en) * 2009-04-30 2017-02-28 Western Digital Technologies, Inc. Pre-cache similarity-based delta compression for use in a data storage system
US20160029402A1 (en) * 2010-11-22 2016-01-28 Seven Networks, Llc Optimization of resource polling intervals to satisfy mobile device requests
JP5722264B2 (ja) * 2012-03-23 2015-05-20 株式会社日立ハイテクノロジーズ データ処理装置、データ容量増加抑制方法
US9519590B1 (en) * 2012-06-26 2016-12-13 EMC IP Holding Company LLC Managing global caches in data storage systems
US9575536B2 (en) * 2014-08-22 2017-02-21 Intel Corporation Methods and apparatus to estimate power performance of a job that runs on multiple nodes of a distributed computer system
KR102306804B1 (ko) * 2015-01-21 2021-09-30 삼성전자주식회사 전자 장치의 소모 전력 감소 방법 및 장치
US9924406B2 (en) * 2015-03-02 2018-03-20 Verizon Patent And Licensing Inc. Blended data transmission network for machine type communications
US10664257B2 (en) * 2015-05-06 2020-05-26 Apple Inc. Secure element activities
US9760392B1 (en) * 2015-08-31 2017-09-12 Veritas Technologies Llc Adaptive throttling in hybrid storage environments
US10547559B2 (en) * 2015-12-26 2020-01-28 Intel Corporation Application-level network queueing
US10360099B2 (en) * 2017-04-28 2019-07-23 Netapp Inc. Object format resilient to remote object store errors
US10909051B2 (en) * 2017-06-01 2021-02-02 Seagate Technology Llc NAND flash reset control
US10909040B2 (en) * 2018-04-19 2021-02-02 Intel Corporation Adaptive calibration of nonvolatile memory channel based on platform power management state
US11366753B2 (en) * 2018-07-31 2022-06-21 Marvell Asia Pte Ltd Controlling performance of a solid state drive

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005204295A (ja) * 2003-12-19 2005-07-28 Internatl Business Mach Corp <Ibm> サーバがモバイル・クライアントの資産情報にリモート・アクセスできるようにするデータ処理システムおよびサービス
US20100169536A1 (en) * 2008-12-29 2010-07-01 Microsoft Corporation Dynamic virtual machine memory management
CN101866692A (zh) * 2009-04-14 2010-10-20 J·鲁德利克 用于写入和擦除非易失性存储器的方法
CN101872320A (zh) * 2010-04-16 2010-10-27 浪潮电子信息产业股份有限公司 一种关于ssd硬盘可靠性及性能的测试及统计方法
US20120278819A1 (en) * 2011-04-26 2012-11-01 Byungcheol Cho Polling-driven device driver interface
US20130007344A1 (en) * 2011-07-01 2013-01-03 Belgal Hanmant P Apparatus, System, and Method for Refreshing Non-volatile Memory
US20160179373A1 (en) * 2014-12-18 2016-06-23 Apple Inc. Hardware-based performance equalization for storage devices
US20160321006A1 (en) * 2015-04-30 2016-11-03 Fujitsu Limited Storage control device, storage system and method of controlling a storage device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113625939A (zh) * 2020-05-06 2021-11-09 爱思开海力士有限公司 保持非易失性存储器装置中的一致写入延迟
CN113625939B (zh) * 2020-05-06 2023-10-20 爱思开海力士有限公司 保持非易失性存储器装置中的一致写入延迟

Also Published As

Publication number Publication date
EP3605341A1 (en) 2020-02-05
US20200042443A1 (en) 2020-02-06
KR20200014241A (ko) 2020-02-10
US11366753B2 (en) 2022-06-21

Similar Documents

Publication Publication Date Title
US11366753B2 (en) Controlling performance of a solid state drive
US10817218B2 (en) Storage device having storage area divided into isolated physical spaces that are independently controllable, host device controlling such storage device, and operation method of such storage device
US9741436B2 (en) Dynamically controlling an operation execution time for a storage device
US10430331B2 (en) Reconstruct drive for dynamic resizing
US20190179569A1 (en) Data storage device and data storage method
EP3506117B1 (en) Stream classification based on logical regions
KR102211868B1 (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
US11875056B2 (en) Controller for managing commands with zone identifications and memory system having the same
KR20160147509A (ko) 저장 장치의 온도별 데이터 관리 방법
CN112783433A (zh) 存储装置及其操作方法
US11269559B2 (en) Data processing device
US11237766B2 (en) Storage device and method of operating of the storage device
US20160188233A1 (en) Method for interrupting cleaning procedure of flash memory
US9886399B2 (en) Storage control device, storage device, information processing system, and storage control method therefor
KR102634776B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20190118016A (ko) 리커버리 성능이 최적화된 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
KR20220103166A (ko) 메모리 디바이스에서 소거 일시중단 및 재개 동작의 관리
DE102022213293A1 (de) Speichersteuerung und verfahren zum betreiben derselben
US11954041B2 (en) Controller including map cache and memory system including controller
US20220229595A1 (en) Controller and operation method thereof
US11538518B2 (en) Memory device to suspend ROM operation and a method of operating the memory device
US12008249B2 (en) Memory system and method of performing background operation
US20230051018A1 (en) Memory system and method of operating the same
US20240028231A1 (en) Random Storage Access and Data Erasure for Improved Performance and Reduced Write Amplification
US20240028230A1 (en) Storage Access Communications and Data Placement for Improved Performance and Reduced Write Amplification

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
TA01 Transfer of patent application right

Effective date of registration: 20200528

Address after: Singapore City

Applicant after: Marvell Asia Pte. Ltd.

Address before: Ford street, Grand Cayman, Cayman Islands

Applicant before: Kaiwei international Co.

Effective date of registration: 20200528

Address after: Ford street, Grand Cayman, Cayman Islands

Applicant after: Kaiwei international Co.

Address before: Hamilton, Bermuda

Applicant before: Marvell International Ltd.

Effective date of registration: 20200528

Address after: Hamilton, Bermuda

Applicant after: Marvell International Ltd.

Address before: Saint Michael

Applicant before: MARVELL WORLD TRADE Ltd.

TA01 Transfer of patent application right
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination