CN115617262A - 用于文件读取等待时间减少的方法和设备 - Google Patents

用于文件读取等待时间减少的方法和设备 Download PDF

Info

Publication number
CN115617262A
CN115617262A CN202210836000.XA CN202210836000A CN115617262A CN 115617262 A CN115617262 A CN 115617262A CN 202210836000 A CN202210836000 A CN 202210836000A CN 115617262 A CN115617262 A CN 115617262A
Authority
CN
China
Prior art keywords
file
controller
read
data
oft
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
CN202210836000.XA
Other languages
English (en)
Inventor
R.P.卡查尔
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN115617262A publication Critical patent/CN115617262A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/0611Improving I/O performance in relation to response time
    • 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
    • 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
    • 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0643Management of files
    • 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/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/0656Data buffering arrangements
    • 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/0658Controller construction arrangements
    • 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
    • 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
    • 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/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提供了方法和设备,其中,存储设备的控制器从主机设备处的应用接收至少包括文件的文件指针的读取命令。控制器使用文件指针从在控制器处维持的表中检索与文件数据相关联的物理块地址(PBA)列表。控制器使用PBA列表从存储器读取数据,并将文件数据提供到主机设备处的应用。

Description

用于文件读取等待时间减少的方法和设备
对相关申请的交叉引用
本申请基于并要求于2021年7月16日提交的第63/222,694号美国临时专利申请的优先权,其全部内容通过引用被合并于此。
技术领域
本公开总体涉及存储文件数据的存储设备,并且更具体地涉及以减少的等待时间读取存储数据的方法和设备。
背景技术
文件是一种由应用用来管理用户数据的数据结构。因此,数据的有效处理、存储、安全性和一般管理对于信息技术(IT)系统是重要的。应用使用并依赖于文件系统、操作系统(OS)和用于文件管理和访问相关操作的其他这样的系统软件。
随着大量数据正由各种应用生成,诸如例如物联网(IOT)、社交网络、自主车辆等,固态驱动器(SSD)是现代IT基础设施的持久数据存储的组件。基于NAND闪存介质的SSD存储设备也是IT基础设施的组件。
当应用需要数据时,从SSD存储设备取回所存储文件的期望数据部分。由于SSD提供高性能持久存储,因此一些系统性能瓶颈已经转移到系统软件层。此类操作的文件读取等待时间是应用(例如,游戏和在线购物应用)的性能和终端用户体验中的重要因素。
发明内容
根据实施例,提供了一种存储设备的方法。存储设备的控制器从主机设备处的应用接收至少包括文件的文件指针的读取命令。控制器使用文件指针在控制器处从维持的表中检索与文件数据相关联的物理块地址(PBA)列表。控制器使用PBA列表从存储器读取数据,并将文件数据提供到主机设备处的应用。
根据实施例,提供了一种存储设备,其包括控制器和存储介质。所述控制器被配置为从主机设备处的应用接收读取命令,所述读取命令至少包括文件的文件指针。所述控制器还被配置为使用文件指针从在控制器处维持的表检索与文件数据相关联的PBA列表。所述控制器进一步被配置为使用PBA列表从存储介质读取数据,并将文件数据提供到主机设备处的应用。
根据实施例,提供了一种主机设备的方法。主机设备处的应用将读取命令发送到存储设备的控制器,所述读取命令至少包括文件的文件指针,所述文件包括应用的文件数据。应用从控制器接收由控制器使用在控制器处维持的将文件指针与文件的PBA列表相关联的表检索的文件数据。
附图说明
根据以下结合附图的详细描述,本公开的某些实施例的上述和其他方面、特征和优点将更加明显,其中:
图1是示出根据实施例的文件读取操作的流程图;
图2是示出根据实施例的主机设备处的fopen_OFT()调用的流程图;
图3是示出根据实施例的用于在SSD控制器处更新卸载文件表(OFT)的PBA列的方法的流程图;
图4是示出根据实施例的在主机设备处的fread_OFT()函数调用的流程图;
图5是示出根据实施例的在SSD控制器处的fread_OFT()函数调用的流程图;
图6是示出根据实施例的网络环境中的电子设备的框图;以及
图7是示出根据实施例的存储系统的示图。
具体实施方式
在下文中,参考附图详细描述本公开的实施例。应当注意,相同的元件将由相同的附图标记表示,尽管它们在不同的附图中示出。在以下描述中,仅提供诸如详细配置和组件的具体细节以帮助全面理解本公开的实施例。因此,对于本领域技术人员显而易见的是,在不脱离本公开的范围的情况下,可以对本文描述的实施例进行各种改变和修改。此外,为了清楚和简明,省略了对众所周知的功能和结构的描述。下面描述的术语是考虑到本公开中的功能而定义的术语,并且可以根据用户、用户的意图或习惯而不同。因此,术语的定义应基于贯穿本说明书的内容来确定。
本公开可以具有各种修改和各种实施例,其中,下面参考附图详细描述实施例。然而,应当理解,本公开不限于实施例,而是包括在本公开的范围内的所有修改、等同物和替代方案。
尽管可以使用包括诸如第一、第二等序数的术语来描述各种元件,但是结构元件不受这些术语的限制。这些术语仅用于将一个元件与另一个元件区分开。例如,在不脱离本公开的范围的情况下,第一结构元件可以被称为第二结构元件。类似地,第二结构元件也可以被称为第一结构元件。如本文所使用的,术语“和/或”包括一个或更多个相关项目的任何和所有组合。
本文使用的术语仅用于描述本公开的各种实施例,而不旨在限制本公开。除非上下文另有明确说明,否则单数形式旨在包括复数形式。在本公开中,应当理解,术语“包括”或“具有”指示存在特征、数字、步骤、操作、结构元件、部件或其组合,并且不排除存在一个或更多个其他特征、数字、步骤、操作、结构元件、部分或其组合或添加一个或更多个其他特征、数字、步骤、操作、结构元件、部分或其组合的可能性。
除非不同地定义,否则本文使用的所有术语具有与本公开所属领域的技术人员所理解的含义相同的含义。诸如在通常使用的字典中定义的那些术语将被解释为具有与相关领域中的上下文含义相同的含义,并且不应被解释为具有理想或过于正式的含义,除非在本公开中明确定义。
根据一个实施例的电子设备可以是利用存储设备和/或非易失性存储器快速(NVMe)的各种类型的电子设备之一。电子设备可以包括例如便携式通信设备(例如,智能电话)、计算机、便携式多媒体设备、便携式医疗设备、相机、可穿戴设备或家用电器。根据本公开的一个实施例,电子设备不限于上述那些。
本公开中使用的术语不旨在限制本公开,而是旨在包括对应实施例的各种改变、等同物或替换。关于附图的描述,类似的附图标记可以用于指代类似或相关的元件。除非相关上下文另有明确表示,否则对应于项目的名词的单数形式可以包括一个或更多个事物。如本文所使用的,诸如“A或B”、“A和B中的至少一个”、“A或B中的至少一个”、“A、B或C”、“A、B和C中的至少一个”和“A、B或C中的至少一个”的短语中的每一个可以包括在短语中的对应一个短语中一起列举的项目的所有可能组合。如本文所使用的,诸如“第1”、“第2”、“第一”和“第二”的术语可以用于将对应的组件与另一组件区分开,但不旨在在其他方面(例如,重要性或顺序)限制组件。如果元件(例如,第一元件)在有或没有术语“可操作地”或“通信地”的情况下被称为“与另一元件(例如,第二元件)耦接”、“耦接到另一元件(例如,第二元件)”、“与另一元件(例如,第二元件)连接”或“连接到另一元件(例如,第二元件)”,则旨在表示该元件可以直接(例如,有线)、无线地或经由第三元件与另一元件耦接。
如本文所使用的,术语“模块”可以包括以硬件、软件、固件或其组合实现的单元,并且可以与例如“逻辑”、“逻辑块”、“部分”和“电路”的其他术语互换使用。模块可以是适于执行一个或更多个功能的单个集成组件或其最小单元或部分。例如,根据一个实施例,模块可以以专用集成电路(ASIC)的形式实现。
应用使用文件数据结构来组织和管理用户数据。应用处理大量且变化量的用户数据作为其运行的一部分。应用可以生成新数据和/或访问由其他应用生成的数据。应用通常处理数据并转换该数据以生成新的数据项。应用的终端用户体验通常取决于有效的数据处理和共享。
在基本级别,文件名能够表示唯一用户数据块。用户数据可以具有唯一且不同的格式、组织、布局和含义。处理该数据的应用可以理解这样的数据的语义。然而,除了语义之外,这样的数据必须持久地保存在存储介质中。此外,能够保护这样的数据免受各种物理降级效应,能够在需要时使其可用于应用,能够保护安全和隐私,并且有时能够与其他数据处理过程共享。数据管理的这些方面对于数据的语义能够是不可知的。
文件是用于管理用户数据的这些数据语义不可知方面的数据结构,并且用户应用依赖于诸如文件系统的其他系统软件层来管理这些方面。文件系统本身使用许多其他软件和硬件组件的服务以及帮助来实现期望的数据管理功能。这样的软件组件的一些示例是操作系统(OS)、应用编程接口(API)库和各种驱动。硬件组件的一些示例是存储设备、独立磁盘冗余阵列(RAID)控制器、网络接口卡等。
应用可以使用文件系统API来创建文件,将数据存储到那些文件中,并从文件读取数据以进行处理。文件系统实现能够由应用使用以执行上述功能的API。为此目的实现的文件系统以及软件和硬件组件非常复杂。
例如,能够使用相对复杂的算法来实现期望的数据管理功能。这种复杂性会导致应用的数据读取和写入操作的更长执行时间。数据读取操作等待时间可以是应用的相关因素。更长的数据读取时间可以表现为用户体验迟缓或用户界面冻结或感知到挂起。因此,可能期望减少和优化数据读取等待时间。
例如,更新游戏场景的更长等待时间会使游戏体验对于玩家来说不太愉快,并且玩家会失去对该游戏系统的兴趣。类似地,缓慢的在线购物系统会导致有价值的潜在客户的流失。
根据本公开的一个方面,提供了一种通过避免遍历一些系统软件层并预先执行一些查找功能来改善文件读取等待时间的系统和方法。也就是说,应用可以直接向存储设备发送文件读取请求,而不是通过文件系统。通过将文件读取请求直接发送到存储设备,绕过了系统软件栈中的一些开销。具体地,指向逻辑块地址(LBA)的文件指针查找步骤在系统软件中被绕过,并且在附接的存储设备中被有效地执行。
为了实现这种有效的文件读取操作,可以修改一些文件系统功能以监视指向LBA映射表的文件指针并将其镜像到SSD控制器。SSD控制器架构可以被优化以维护和使用OFT来保持文件指针、LBA和PBA映射。SSD控制器接受直接文件读取请求,然后从OFT获得PBA。可以使用诸如NVMe或类似协议的存储协议将由应用发出的文件读取调用直接发送到SSD控制器。在识别出期望的PBA之后,SSD控制器直接将用户数据存储到应用缓冲器中,从而显著改善文件数据读取等待时间。
OFT可以包括文件指针列、LBA列表列、PBA列表列和文件读取偏移列中的至少一个。可以使用文件读取偏移列将文件数据提供给应用。文件读取调用可以包括要从存储器读取的数据量和文件读取偏移,并且可以使用文件读取调用的文件读取偏移来更新文件读取偏移列。可以从主机设备接收用于OFT的条目的更新后文件指针-LBA列表映射,且可以用基于该映射检索的PBA列表信息来更新OFT的条目。
虽然本文描述了基于LBA的系统架构,但是实施例不限于此,并且同样适用于基于键/值或其他对象的存储系统架构。
根据实施例,提供了一种系统和方法,其中,文件读取操作被拦截并直接发送到SSD控制器,而不是通过文件系统,以便改善等待时间。下面在表1中示出了应用的文件读取操作的示例。
表1
#include<stdio.h>
int main(){
file*fp1;//文件指针
char*data_buffer;//用于存储从SSD读取的数据的缓冲器
int data_size;//数据结构或记录的大小
int num_data;//从SSD取回的记录的数量
file_handle=fopen(file_name.txt,“r”);//打开文件以读取数据用于处理
data_size=64;
num_data=1000;
data_buffer=malloc(data_size*num_data);//分配主机存储器缓冲器以存储数据
fread(file_handle,data_buffer,data_size,num_data);//对文件系统的文件读取请求
process_data(data_buffer);//数据处理
fclose(file_handle);//关闭文件
}
图1是示出文件读取操作的流程图。当执行fread()函数调用102时,在106,文件系统层104使用文件指针(文件句柄或文件描述符)来查找与该文件相关联的文件系统块。在110,在存储块层108处文件系统块被转换为对应的存储块或扇区,称为LBA。在114,存储块层108和存储设备驱动层112向SSD发送存储输入/输出(I/O)读取命令。在118,在SSD控制器(闪存转换层116)中,LBA被转换为NAND闪存介质PBA。用户数据被从NAND闪存介质120读取并被返回到应用。
如图1所示,文件读取操作遍历多个系统软件层以取回用户数据。通过系统软件层的这些转换和遍历增加了等待时间。
根据实施例,可以预先执行上述转换步骤中的一些,以避免等待时间。
SSD控制器在SSD设备中维持表2。文件指针和LBA列表列由下面详细描述的新文件系统函数调用来更新。PBA列表列由SSD控制器初始化和维持。文件读取偏移列可以由主机和SSD控制器来更新。
表2
Figure BDA0003748203530000071
根据实施例,一组新的文件操作函数调用包括:
·fopen_OFT()
·fread_OFT()
·fwrite_OFT(),fsync_OFT(),fflush_OFT()
·fclose_OFT()
·fseek_OFT()
也能够以类似的方式修改其他文件系统API以有助于所提出的机制。SSD控制器架构被优化,以创建、更新、维持和使用OFT来以加快的方式返回用户数据
在下面的表3中示出使用新的文件操作函数调用的表1的应用代码示例。
表3
#include<stdio.h>
int main(){
file*fp;//文件指针
char*data_buffer;//用于存储从SSD读取的数据的缓冲器
int data_size;//数据结构或记录的大小
int num_data;//从SSD取回的记录的数量
file_handle=fopen_OFT(file_name.txt,“r”);//设备中的程序文件指针和关 联的LBA
data_size=64;
num_data=1000;
data_buffer=malloc(data_size*num_data);//分配主机存储器缓冲器以存储 数据
fread_OFT(file_handle,data_buffer,data_size,num_data);//对SSD控制器的 文件读取请求
process_data(data_buffer);//数据处理
fclose_OFT(file_handle);//关闭文件,必要时重置文件偏移
}
图2是示出根据实施例的主机设备处的fopen_oft()调用的流程图。图6和图7中描述的任何组件或组件的任何组合能够用于执行流程图中的一个或更多个操作。操作是示例性的,并且可以涉及未明确描述的各种附加步骤。操作的时间顺序可以变化。
应用使用表3的fopen_OFT()函数调用202来代替表1的fopen()函数调用。在204处,该函数调用利用文件系统在内部打开指定文件以获得文件指针。在206处,函数调用使用文件系统软件利用文件指针来查询文件系统,并且在208处获得相关联的文件系统块。然后,在210处,函数调用使用存储块层系统软件利用文件系统块查询存储块层,并且在212处,获得文件系统块的相关联的LBA映射。一旦获得文件的LBA映射,在214处,fopen_OFT()函数调用就在相关联的SSD控制器中对文件指针和LBA映射进行编程。该编程可以通过SSD驱动软件(诸如例如NVMe设备驱动)来实现,并且可以使用厂商定义的NVMe命令。在映射被提供给SSD控制器之后,函数调用返回。
也可以使用fopen_OFT()将偏移列值初始化为零(或另一值)。
如上所述,fopen_OFT()函数调用将文件指针和LBA映射传递给SSD控制器。SSD控制器可以以厂商定义的NVMe命令的形式接收该信息。SSD控制器在OFT中分配空闲条目并记录文件指针、LBA映射。SSD控制器也更新OFT中的相关联LBA、PBA映射。PBA地址可以包括闪存通道标识符、NAND裸片索引、平面、块ID、页号等。PBA地址用于从闪存介质读取用户数据并将读取的用户数据发送回主机设备。
SSD控制器也可以在垃圾收集(GC)过程期间更新OFT的PBA列。有时,存储在NAND闪存介质中的用户数据由于诸如保留、坏块管理、再循环等原因而被移动到不同的物理位置。因此,如果并且当这样的事件发生时,SSD控制器应当更新LBA、PBA映射。
图3是示出根据实施例的用于在SSD控制器处更新OFT的PBA列的方法的流程图。图6和图7中描述的任何组件或组件的任何组合能够用于执行流程图中的一个或更多个操作。操作是示例性的,并且可以涉及未明确描述的各种附加步骤。操作的时间顺序可以变化。
基于update_PBA_OFT()函数调用302,在304处,SSD控制器检测由于GC引起的PBA-LBA映射改变。SSD控制器在306处从OFT检索LBA,并且在308处基于LBA-PBA闪存转换层(FTL)表更新OFT条目中的PBA信息,之后函数调用返回。替代地,响应于update_PBA_OFT()函数调用302,在310处,SSD控制器从主机设备接收文件指针(或多个)、LBA元组。在312处,SSD控制器确定是否更新了所有接收到的条目。在未更新所有接收到的条目的情况下,在314处,SSD控制器查找LBA-PBA闪存转换层(FTL)表,并且在316处,SSD控制器更新OFT条目中的PBA信息。当所有接收的条目都被更新时,函数调用返回。
因此,主机软件和SSD控制器FTL固件使OFT保持最新,使得其能够在数据读取期间由应用使用。应用使用新的优化的文件读取函数调用,如表3所示。
图4是示出根据实施例的在主机设备处的fread_OFT()函数调用的流程图。图6和图7中描述的任何组件或组件的任何组合能够用于执行流程图中的一个或更多个操作。操作是示例性的,并且可以涉及未明确描述的各种附加步骤。操作的时间顺序可以变化。
在406处,主机设备402的fread_OFT()函数调用404直接与SSD控制器通信并发送文件指针、要读取的数据量和可选地,要读取的偏移。fread_OFT()函数调用可以使用厂商定义的NVMe命令将该信息发送到SSD控制器。然后,在408处,该函数调用等待SSD控制器经由直接存储器访问(DMA)提供数据。在410处,函数返回。
图5是示出根据实施例的在SSD控制器处的fread_OFT()函数调用的流程图。图6和图7中描述的任何组件或组件的任何组合能够用于执行流程图中的一个或更多个操作。操作是示例性的,并且可以涉及未明确描述的各种附加步骤。操作的时间顺序可以变化。
在506处,SSD控制器502接收具有由fread_OFT()函数调用504提供的信息的厂商定义的NVMe命令。在接收到命令之后,在508处,SSD控制器502在OFT中查找文件指针条目,并且获得与该文件相关联的PBA的列表。然后,在510处,SSD控制器502使用PBA从NAND闪存介质读取适当的用户数据。在512处,SSD控制器502经由DMA将读取的用户数据发送回用户应用(例如,主机存储器缓冲器),并且在514处完成NVMe命令。
如果命令指示任何特定偏移读取地址,则SSD控制器在返回数据的同时使用该特定偏移读取地址。如果命令没有指定任何读取偏移,则SSD控制器可以使用来自OFT的偏移来返回数据。在返回数据之后,在516处,SSD控制器可以针对文件指针条目更新OFT中的新文件偏移值。默认情况下,当创建条目时,偏移的OFT条目为零。
根据实施例,当数据被写入文件时,fwrite_OFT()函数调用能够被用于更新OFT中的文件指针和相关联的LBA。尽管文件写入操作可能不在读取等待时间关键路径中,但一些用例和应用会受益于在数据写入之后更新OFT。可替代地,能够用类似的系统和方法支持其他数据写入相关文件系统调用,诸如fflush()和fsync()。
主机软件可以使用另一函数调用,诸如fseek_OFT(),来重置或改变OFT中的读取偏移值。当SSD控制器从主机设备接收到关于给定文件指针的新偏移值时,其可以更新对应的OFT条目。一旦OFT条目被更新,新的偏移值就可以被用于该文件的后续用户数据读取操作。
fclose_OFT()函数调用可以在文件被关闭时重置偏移条目。它也可以指示(或请求)SSD控制器从OFT中移除文件指针条目。从主机软件接收请求的SSD控制器可以根据请求更新OFT。
图6示出根据一个实施例的网络环境600中的电子设备601的框图。参考图6,网络环境600中的电子设备601可以经由第一网络698(例如,短距离无线通信网络)与电子设备602通信,或者经由第二网络699(例如,长距离无线通信网络)与电子设备604或服务器608通信。电子设备601可以经由服务器608与电子设备604通信。电子设备601可以包括处理器620、存储器630、输入设备650、声音输出设备655、显示设备660、音频模块670、传感器模块676、接口677、触觉模块679、相机模块680、功率管理模块688、电池689、通信模块690、用户识别模块(SIM)696或天线模块697。在一个实施例中,可以从电子设备601中省略组件中的至少一个(例如,显示设备660或相机模块680),或者可以将一个或更多个其他组件添加到电子设备601。在一个实施例中,一些组件可以被实现为单个集成电路(IC)。例如,传感器模块676(例如,指纹传感器、虹膜传感器或照度传感器)可以嵌入在显示设备660(例如,显示器)中。
处理器620可以执行例如软件(例如,程序640)以控制与处理器620耦接的电子设备601的至少一个其他组件(例如,硬件或软件组件),并且可以执行各种数据处理或计算。作为数据处理或计算的至少一部分,处理器620可以将从另一组件(例如,传感器模块676或通信模块690)接收的命令或数据加载到易失性存储器632中,处理存储在易失性存储器632中的命令或数据,并将结果数据存储在非易失性存储器634中。处理器620可以包括主处理器621(例如,CPU或应用处理器(AP))和可独立于主处理器621操作或与主处理器621结合操作的辅助处理器623(例如,图形处理单元(GPU)、图像信号处理器(ISP)、传感器集线器处理器或通信处理器(CP))。附加地或替代地,辅助处理器623可以适于消耗比主处理器621更少的功率,或者执行特定功能。辅助处理器623可以被实现为与主处理器621分离或者是主处理器621的一部分。
辅助处理器623可以控制与电子设备601的组件中的至少一个组件(例如,显示设备660、传感器模块676或通信模块690)相关的至少一些功能或状态,而不是在主处理器621处于非活动(例如,睡眠)状态时控制主处理器621,或者在主处理器621处于活动状态(例如,执行应用)时与主处理器621一起控制与电子设备601的组件中的至少一个组件(例如,显示设备660、传感器模块676或通信模块690)相关的至少一些功能或状态。根据一个实施例,辅助处理器623(例如,图像信号处理器或通信处理器)可以被实现为在功能上与辅助处理器623相关的另一组件(例如,相机模块680或通信模块690)的一部分。
存储器630可以存储由电子设备601的至少一个组件(例如,处理器620或传感器模块676)使用的各种数据。各种数据可以包括例如软件(例如,程序640)和用于与其相关的命令的输入数据或输出数据。存储器630可以包括易失性存储器632或非易失性存储器634。
程序640可以作为软件被存储在存储器630中,并且可以包括例如操作系统(OS)642、中间件644或应用646。
输入设备650可以从电子设备601的外部(例如,用户)接收要由电子设备601的另一组件(例如,处理器620)使用的命令或数据。输入设备650可以包括例如麦克风、鼠标或键盘。
声音输出设备655可以将声音信号输出到电子设备601的外部。声音输出设备655可以包括例如扬声器或接收器。扬声器可以用于一般目的,诸如播放多媒体或记录,并且接收器可以用于接收传入呼叫。根据一个实施例,接收器可以被实现为与扬声器分离或者是扬声器的一部分。
显示设备660可以在视觉上向电子设备601的外部(例如,用户)提供信息。显示设备660可以包括例如显示器、全息设备或投影仪以及用于控制显示器、全息设备和投影仪中的对应一个的控制电路。根据一个实施例,显示设备660可以包括适于检测触摸的触摸电路,或适于测量由触摸引起的力的强度的传感器电路(例如,压力传感器)。
音频模块670可以将声音转换为电信号,反之亦然。根据一个实施例,音频模块670可以经由输入设备650获得声音,或者经由与电子设备601直接(例如,有线)或无线耦接的外部电子设备602的声音输出设备655或耳机输出声音。
传感器模块676可以检测电子设备601的操作状态(例如,功率或温度)或电子设备601外部的环境状态(例如,用户的状态),然后生成与检测到的状态相对应的电信号或数据值。传感器模块676可以包括例如手势传感器、陀螺仪传感器、大气压传感器、磁传感器、加速度传感器、握持传感器、接近传感器、颜色传感器、红外(IR)传感器、生物传感器、温度传感器、湿度传感器或照度传感器。
接口677可以支持用于电子设备601直接(例如,有线)或无线地与外部电子设备602耦接的一个或更多个指定协议。根据一个实施例,接口677可以包括例如高清晰度多媒体接口(HDMI)、通用串行总线(USB)接口、安全数字(SD)卡接口或音频接口。
连接端子678可以包括连接器,电子设备601可以经由该连接器与外部电子设备602物理连接。根据一个实施例,连接端子678可以包括例如HDMI连接器、USB连接器、SD卡连接器或音频连接器(例如,耳机连接器)。
触觉模块679可以将电信号转换为可以由用户经由触感或动觉识别的机械刺激(例如,振动或运动)或电刺激。根据一个实施例,触觉模块679可以包括例如马达、压电元件或电刺激器。
相机模块680可以捕获静止图像或运动图像。根据一个实施例,相机模块680可以包括一个或更多个透镜、图像传感器、图像信号处理器或闪光灯。
功率管理模块688可以管理供应给电子设备601的功率。功率管理模块688可以被实现为例如功率管理集成电路(PMIC)的至少一部分。
电池689可以向电子设备601的至少一个组件供电。根据一个实施例,电池689可以包括例如不可再充电的原电池、可再充电的二次电池或燃料电池。
通信模块690可以支持在电子设备601和外部电子设备(例如,电子设备602、电子设备604或服务器608)之间建立直接(例如,有线)通信信道或无线通信信道,并且经由所建立的通信信道执行通信。通信模块690可以包括可独立于处理器620(例如,AP)操作并且支持直接(例如,有线)通信或无线通信的一个或更多个通信处理器。根据一个实施例,通信模块690可以包括无线通信模块692(例如,蜂窝通信模块、短距离无线通信模块或全球导航卫星系统(GNSS)通信模块)或有线通信模块694(例如,局域网(LAN)通信模块或电力线通信(PLC)模块)。这些通信模块中的对应通信模块可以经由第一网络698(例如,短程通信网络,诸如蓝牙(BluetoothTM)、无线保真(Wi-Fi)直连或红外数据协会(IrDA)标准)或第二网络699(例如,远程通信网络,诸如蜂窝网络、互联网或计算机网络(例如,LAN或广域网(WAN)))与外部电子设备通信。这些各种类型的通信模块可以被实现为单个组件(例如,单个IC),或者可以被实现为彼此分离的多个组件(例如,多个IC)。无线通信模块692可以使用存储在订户识别模块696中的订户信息(例如,国际移动订户身份(IMSI))来识别和认证通信网络(诸如第一网络698或第二网络699)中的电子设备601。
天线模块697可以向电子设备601的外部(例如,外部电子设备)发送信号或功率或者从电子设备601的外部(例如,外部电子设备)接收信号或功率。根据一个实施例,天线模块697可以包括一个或更多个天线,并且由此可以例如由通信模块690(例如,无线通信模块692)选择适合于在诸如第一网络698或第二网络699的通信网络中使用的通信方案的至少一个天线。然后可以经由所选择的至少一个天线在通信模块690和外部电子设备之间发送或接收信号或功率。
上述组件中的至少一些可以相互耦接并且经由外围通信方案(例如,总线、通用输入和输出(GPIO)、串行外围接口(SPI)或移动工业处理器接口(MIPI))在它们之间传送信号(例如,命令或数据)。
根据一个实施例,可以经由与第二网络699耦接的服务器608在电子设备601和外部电子设备604之间发送或接收命令或数据。电子设备602和604中的每一个可以是与电子设备601相同类型或不同类型的设备。可以在外部电子设备602、604或608中的一个或更多个处执行要在电子设备601处执行的所有或一些操作。例如,如果电子设备601应该自动执行功能或服务,或者响应于来自用户或另一设备的请求,则电子设备601可以请求一个或更多个外部电子设备执行功能或服务的至少一部分,而不是执行功能或服务;或者除了执行功能或服务之外,还可以请求一个或更多个外部电子设备执行功能或服务的至少一部分。接收请求的一个或更多个外部电子设备可以执行所请求的功能或服务的至少一部分,或者与请求相关的附加功能或附加服务,并将执行的结果传送到电子设备601。电子设备601可以在对结果进行进一步处理或不进行进一步处理的情况下提供结果,作为对请求的回复的至少一部分。为此,例如,可以使用云计算、分布式计算或客户端-服务器计算技术。
一个实施例可以被实现为包括存储在可由机器(例如,电子设备601)读取的存储介质(例如,内部存储器636或外部存储器638)中的一个或更多个指令的软件(例如,程序640)。例如,电子设备601的处理器可以调用存储在存储介质中的一个或更多个指令中的至少一个,并且在处理器的控制下在使用或不使用一个或更多个其他组件的情况下执行它。因此,可以操作机器以根据所调用的至少一个指令来执行至少一个功能。一个或更多个指令可以包括由编译器生成的代码或可由解释器执行的代码。可以以非暂时性存储介质的形式提供机器可读存储介质。术语“非暂时性”指示存储介质是有形设备,并且不包括信号(例如,电磁波),但是该术语不区分数据半永久地存储在存储介质中的位置和数据临时存储在存储介质中的位置。
根据一个实施例,可以在计算机程序产品中包括和提供本公开的方法。计算机程序产品可以作为产品在卖方和买方之间交易。计算机程序产品可以以机器可读存储介质(例如,压缩盘只读存储器(CD-ROM))的形式分发,或者经由应用商店(例如,Play StoreTM)在线分发(例如,下载或上传),或者直接在两个用户设备(例如,智能电话)之间分发。如果在线分发,则计算机程序产品的至少一部分可以临时生成或至少临时存储在机器可读存储介质中,诸如制造商的服务器的存储器、应用商店的服务器或中继服务器。
根据一个实施例,上述组件的每个组件(例如,模块或程序)可以包括单个实体或多个实体。可以省略上述组件中的一个或更多个,或者可以添加一个或更多个其他组件。可替代地或另外地,多个组件(例如,模块或程序)可以集成到单个组件中。在这种情况下,集成组件仍然可以以与在集成之前由多个组件中的对应一个执行的方式相同或相似方式执行多个组件中的每一个的一个或更多个功能。由模块、程序或另一组件执行的操作可以顺序地、并行地、重复地或启发式地执行,或者一个或更多个操作可以以不同的顺序执行或省略,或者可以添加一个或更多个其他操作。
图7示出了根据实施例的存储系统700的图。存储系统700包括主机702和存储设备704。尽管描绘了一个主机和一个存储设备,但是存储系统700可以包括多个主机和/或多个存储设备。存储设备704可以是固态设备(SSD)、通用闪存存储(UFS)等。存储设备704包括控制器706和连接到控制器706的存储介质708。控制器706可以是SSD控制器、UFS控制器等。存储介质708可以包括易失性存储器、非易失性存储器、或这两者,并且可以包括一个或更多个闪存存储器芯片(或其他存储介质)。控制器706可以包括一个或更多个处理器、一个或更多个纠错电路、一个或更多个现场可编程门阵列(FPGAs)、一个或更多个主机接口、一个或更多个闪存总线接口等,或其组合。控制器706可以被配置为促进主机702与存储介质708之间的数据/命令的传送。主机702将数据/命令发送到存储设备704,以由控制器706接收并结合存储介质708进行处理。如本文所述,方法、过程和算法可以在诸如控制器706的存储设备控制器上实现。仲裁器、命令提取器和命令处理器可以在存储设备704的控制器706中实现,并且处理器和缓冲器可以在主机702中实现。
尽管已经在本公开的详细说明中描述了本公开的某些实施例,但是在不脱离本公开的范围的情况下,可以以各种形式修改本公开。因此,本公开的范围不应仅基于所描述的实施例来确定,而是基于所附权利要求及其等同物来确定。

Claims (20)

1.一种存储设备的方法,包括:
在存储设备的控制器处从主机设备处的应用接收读取命令,所述读取命令至少包括文件的文件指针;
在控制器处使用文件指针从在控制器处维持的表中检索与文件数据相关联的物理块地址(PBA)列表;以及
由控制器使用PBA列表从存储器读取文件数据,并将文件数据从控制器提供到主机设备处的应用。
2.根据权利要求1所述的方法,其中,所述读取命令包括非易失性存储器快速(NVMe)命令。
3.根据权利要求1所述的方法,其中,所述表包括卸载文件表(OFT),该卸载文件表包括文件指针列、逻辑块地址(LBA)列表列、PBA列表列和文件读取偏移列中的至少一个。
4.根据权利要求3所述的方法,其中,使用所述文件读取偏移列将文件数据提供到应用。
5.根据权利要求3所述的方法,其中,所述读取命令还包括要从存储器读取的数据量和文件读取偏移。
6.根据权利要求5所述的方法,其中,使用读取命令的文件读取偏移来向应用提供文件数据,并且文件读取偏移列使用读取命令的文件读取偏移被更新。
7.根据权利要求3所述的方法,还包括:
在控制器处从主机设备接收针对OFT的条目的更新后文件指针-LBA列表映射;
由控制器基于更新后文件指针-LBA列表映射从闪存转换层(FTL)表中检索PBA列表信息;以及
由控制器用检索到的PBA列表信息更新OFT的条目。
8.根据权利要求3所述的方法,还包括:
由控制器检测由于垃圾收集过程引起的OFT的条目中的PBA-LBA映射的变化;
从OFT的条目检索LBA列表信息;
由控制器基于检索到的LBA列表信息从FTL表中检索PBA列表信息;以及
由控制器用检索到的PBA列表信息更新OFT的条目。
9.一种存储设备,包括:
控制器;以及
存储介质,
其中,所述控制器被配置为:
从主机设备处的应用接收读取命令,所述读取命令至少包括文件的文件指针;
使用文件指针从在控制器处维持的表中检索与文件数据相关联的物理块地址(PBA)列表;和
使用PBA列表从存储介质读取文件数据,并将文件数据提供到主机设备处的应用。
10.根据权利要求9所述的存储设备,其中,所述读取命令是非易失性存储器快速(NVMe)命令。
11.根据权利要求9所述的存储设备,其中,所述表是卸载文件表(OFT),该卸载文件表包括文件指针列、逻辑块地址(LBA)列表列、PBA列表列和文件读取偏移列中的至少一个。
12.根据权利要求11所述的存储设备,其中,使用所述文件读取偏移列将文件数据提供到应用。
13.根据权利要求11所述的存储设备,其中,所述读取命令还包括要从存储介质读取的文件数据量和文件读取偏移。
14.根据权利要求13所述的存储设备,其中,使用读取命令的文件读取偏移将文件数据提供给应用,并且文件读取偏移列使用读取命令的文件读取偏移被更新。
15.根据权利要求11所述的存储设备,其中,所述控制器还被配置为:
从主机设备接收针对OFT的条目的更新后文件指针-LBA列表映射;
基于更新后文件指针-LBA列表映射从闪存转换层(FTL)表中检索PBA列表信息;以及
用检索到的PBA列表信息更新OFT的条目。
16.根据权利要求11所述的存储设备,还包括:
检测由于垃圾收集过程引起的OFT的条目中的PBA-LBA映射的变化;
从OFT的条目检索LBA列表信息;
基于检索到的LBA列表信息从FTL表中检索PBA列表信息;以及
用检索到的PBA列表信息更新OFT的条目。
17.一种主机设备的方法,包括:
从主机设备处的应用向存储设备的控制器发送读取命令,所述读取命令至少包括文件的文件指针,所述文件包括应用的文件数据;以及
在应用处从控制器接收由控制器使用在控制器处维持的表来检索的文件数据,所述表将文件指针与文件数据的物理块地址(PBA)列表相关联。
18.根据权利要求17所述的方法,其中,所述读取命令是非易失性存储器快速(NVMe)命令,其还包括要从存储器读取的文件数据量和文件读取偏移。
19.根据权利要求17所述的方法,其中,所述表是卸载文件表(OFT),该卸载文件表包括文件指针列、逻辑块地址(LBA)列表列、PBA列表列和文件读取偏移列中的至少一个。
20.根据权利要求19所述的方法,还包括:
获得给定文件的给定文件指针;
使用文件系统和存储块层获得对应于所述给定文件指针的LBA列表;以及
将给定文件指针和LBA列表的映射发送到控制器以更新控制器处的OFT的条目。
CN202210836000.XA 2021-07-16 2022-07-15 用于文件读取等待时间减少的方法和设备 Pending CN115617262A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163222694P 2021-07-16 2021-07-16
US63/222,694 2021-07-16
US17/504,006 2021-10-18
US17/504,006 US20230024420A1 (en) 2021-07-16 2021-10-18 Methods and devices for file read latency reduction

Publications (1)

Publication Number Publication Date
CN115617262A true CN115617262A (zh) 2023-01-17

Family

ID=82608717

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210836000.XA Pending CN115617262A (zh) 2021-07-16 2022-07-15 用于文件读取等待时间减少的方法和设备

Country Status (5)

Country Link
US (1) US20230024420A1 (zh)
EP (1) EP4120059A1 (zh)
KR (1) KR20230012992A (zh)
CN (1) CN115617262A (zh)
TW (1) TW202311968A (zh)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7953919B2 (en) * 2007-12-21 2011-05-31 Spansion Llc Physical block addressing of electronic memory devices
US8452930B2 (en) * 2009-03-27 2013-05-28 Hitachi, Ltd. Methods and apparatus for backup and restore of thin provisioning volume
US9678966B2 (en) * 2013-11-08 2017-06-13 Samsung Electronics Co., Ltd. Swat command and API for atomic swap and trim of LBAs
US9720596B1 (en) * 2014-12-19 2017-08-01 EMC IP Holding Company LLC Coalescing writes for improved storage utilization
WO2017033287A1 (ja) * 2015-08-25 2017-03-02 株式会社 東芝 階層化ストレージシステム、階層化ストレージ装置を利用するコンピュータ、及びファイルへのアクセスのカウントを補正する方法
US10402112B1 (en) * 2018-02-14 2019-09-03 Alibaba Group Holding Limited Method and system for chunk-wide data organization and placement with real-time calculation
US11175850B2 (en) * 2019-01-03 2021-11-16 Toshiba Memory Corporation Selective erasure of data in a SSD
KR20210068699A (ko) * 2019-12-02 2021-06-10 삼성전자주식회사 스토리지 장치, 스토리지 시스템 및 스토리지 장치의 동작 방법

Also Published As

Publication number Publication date
US20230024420A1 (en) 2023-01-26
KR20230012992A (ko) 2023-01-26
EP4120059A1 (en) 2023-01-18
TW202311968A (zh) 2023-03-16

Similar Documents

Publication Publication Date Title
US11507299B2 (en) Method for processing data and electronic device supporting same
US11656999B2 (en) Electronic device and method for determining and managing a partial region of mapping information in volatile memory
EP4296841A1 (en) Method and system for solid state drive (ssd)-based redundant array of independent disks (raid)
US11379458B2 (en) Electronic device and data management method thereof
CN111666224B (zh) 电子装置和用于利用电子装置的存储器空间的方法
US11086538B2 (en) Method and electronic device for initializing storage
EP4325363A1 (en) Device for managing cache corruption, and operation method thereof
TW202344977A (zh) 記憶體裝置及其方法
US11586564B2 (en) Head of line entry processing in a buffer memory device
US20230024420A1 (en) Methods and devices for file read latency reduction
US11341095B2 (en) Electronic device for searching for file information stored in external device and operation method thereof
US11237741B2 (en) Electronic device and control method for controlling memory
KR20210101693A (ko) 스토리지를 포함하는 전자 장치 및 이를 이용한 스토리지로 파일 시스템의 디스카드 커맨드 전달 방법
CN110442569B (zh) 在键值固态设备中进行数据分析的装置和方法
EP4357928A1 (en) Methods and system for efficient access to solid state drive
US20240134801A1 (en) Methods and system for efficient access to solid state drive
US11892951B2 (en) Key packing for flash key value store operations
CN117271396A (zh) 用于基于固态驱动器的独立磁盘冗余阵列的方法和系统
US20230393906A1 (en) Method and system for accelerating application performance in solid state drive
CN117908766A (zh) 用于高效访问固态驱动器的方法和系统
KR20240074597A (ko) 전자 장치 및 전자 장치의 파일 시스템 운영 방법
KR20220079212A (ko) 가비지 컬렉션을 수행하기 위한 전자 장치 및 방법
CN117194004A (zh) 存储器装置及其操作方法
CN117687567A (zh) 存储器系统、存储器系统的方法和电子装置
CN117909966A (zh) 计算存储装置以及在计算存储装置中检测攻击者的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication