CN108959108B - 固态硬盘访问方法以及使用该方法的装置 - Google Patents
固态硬盘访问方法以及使用该方法的装置 Download PDFInfo
- Publication number
- CN108959108B CN108959108B CN201710384048.0A CN201710384048A CN108959108B CN 108959108 B CN108959108 B CN 108959108B CN 201710384048 A CN201710384048 A CN 201710384048A CN 108959108 B CN108959108 B CN 108959108B
- Authority
- CN
- China
- Prior art keywords
- namespace
- solid state
- processing unit
- state disk
- data access
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Abstract
本发明的实施例提出一种固态硬盘访问方法,由处理单元于加载并执行驱动程序时实施,包含:取得数据存取命令,包含命名空间、命令类型及逻辑位置的信息;依据命名空间决定多个实体储存对照表中的一者;从决定的实体储存对照表读取相应于逻辑位置的实体位置;以及产生并发送数据存取请求给固态硬盘,包含请求类型及实体位置的信息。
Description
技术领域
本发明关连于一种储存装置,特别是一种固态硬盘访问方法以及使用该方法的装置。
背景技术
固态硬盘中通常设置NAND快闪装置。NAND快闪装置并非随机存取,而是序列存取。NAND快闪装置无法像NOR快闪装置一样,可以存取任何随机地址,主装置反而需要写入序列字节(bytes)的值到NAND快闪装置中,并定义请求命令(command)的类型(如,读取、写入、抹除等),以及用在此命令上的地址。地址可指向一个页面(在闪存中的一个写入作业的最小数据块)或一个区块(在闪存中的一个抹除作业的最小数据块)。实际上,为了提升写入及读取的速度,一段连续逻辑位置的数据可能被散布放置于数个实体的储存单元中,并且使用实体储存对应表来指出被写入到实体储存单元中的何处。为因应NAND快闪装置的存取特性,本发明提出一种固态硬盘访问方法以及使用该方法的装置,用以提升存取效能。
发明内容
本发明的实施例提出一种固态硬盘访问方法,由处理单元于加载并执行驱动程序时实施,包含:取得数据存取命令,包含命名空间、命令类型及逻辑位置的信息;依据命名空间决定多个实体储存对照表中的一者;从决定的实体储存对照表读取相应于逻辑位置的实体位置;以及产生并发送数据存取请求给固态硬盘,包含请求类型及实体位置的信息。
本发明的实施例提出一种固态硬盘存取装置,包含:存储器;及处理单元。存储器储存多个实体储存对照表。处理单元耦接于存储器,用以于加载并执行驱动程序时取得数据存取命令,包含命名空间、命令类型及逻辑位置的信息;依据命名空间决定实体储存对照表中的一者;从存储器中的决定的实体储存对照表读取相应于逻辑位置的实体位置;以及产生并发送数据存取请求给固态硬盘,包含请求类型及实体位置的信息。
附图说明
图1系依据本发明实施例的计算机装置的系统架构图。
图2系依据本发明实施例的固态硬盘的系统架构示意图。
图3系依据本发明实施例的存取接口与储存单元的方块图。
图4系依据本发明实施例的一个存取子接口与多个储存子单元的连接示意图。
图5A系依据本发明实施例的存储器配置示意图。
图5B系依据本发明实施例的实体储存对照示意图。
图6系依据本发明实施例的快速周边组件互联的阶层示意图。
图7系依据本发明实施例的固态硬盘访问方法的流程图。
符号说明
110 处理单元(主装置);
120 显示单元;
130 输入设备;
140 固态硬盘;
150 存储器;
160 通讯接口;
210 处理单元;
220 动态随机存取存储器;
250 存取接口;
270 存取接口;
280 储存单元;
270_0、…、270_j 存取子接口;
280_0_0、…、280_j_i 储存子单元;
410_0 数据线;
420_0_1、…、420_0_i 芯片致能控制信号;
500 命名空间对照表;
510、530、550 H2F表;
LBA0、LBA1、…、LBA131071 逻辑区块地址;
511、531、551 实体位置信息;
511a、531a、551a 区块编号;
511b、531b、551b 单元编号;
610 应用程序;
620 操作系统;
630 驱动程序;
640 传输层;
650 数据链结层;
660 物理层;
S710~S770 方法步骤。
具体实施方式
以下说明系为完成发明的较佳实现方式,其目的在于描述本发明的基本精神,但并不用以限定本发明。实际的发明内容必须参考之后的权利要求范围。
必须了解的是,使用于本说明书中的”包含”、”包括”等词,系用以表示存在特定的技术特征、数值、方法步骤、作业处理、组件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、组件、组件,或以上的任意组合。
于权利要求中使用如“第一”、“第二”、“第三”等词系用来修饰权利要求中的组件,并非用来表示之间具有优先权顺序,先行关系,或者是一个组件先于另一个组件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的组件。
图1系依据本发明实施例的计算机装置的系统架构图。此系统架构可实施于桌面计算机、笔记本电脑、平板计算机、手机计算机或其他具备运算能力的电子装置。处理单元110可使用多种方式实施,例如以专用硬件电路或通用硬件(例如,单处理器、具平行处理能力的多处理器、图形处理器或其他具运算能力的处理器),并且在执行程序代码或软件时,提供之后所描述的功能。处理单元110可包含运算逻辑单元(ALU,Arithmetic and LogicUnit)以及位移器(bit shifter)。运算逻辑单元负责执行布尔运算(如AND、OR、NOT、NAND、NOR、XOR、XNOR等),而位移器负责位移运算及位旋转。系统架构另包含存储器150用以储存执行过程中需要的数据,例如,变量、数据表等,以及固态硬盘(SSD,Solid State Disk)140,用以储存各式各样的电子档案,例如,网页、文件、音频文件、视讯文件等。系统架构另包含通讯接口160,让处理单元110可藉以跟其他电子装置进行沟通。通讯接口160可以是局域网络通讯模块、无线局域网络通讯模块、蓝芽通讯模块或无线电信通讯模块。输入设备130可包含键盘、鼠标、触控面板等。用户可按压键盘上的硬键来输入字符,藉由操作鼠标来控制鼠标,或者是在触控面板制造手势来控制执行中的应用程序。手势可包含单击、双击、单指拖曳、多指拖曳等,但不限定于此。显示单元320可包含显示面板(例如,薄膜液晶显示面板、有机发光二极管面板或其他具显示能力的面板),用以显示输入的字符、数字、符号、拖曳鼠标的移动轨迹、绘制的图案或应用程序所提供的画面,提供给用户观看。
图2系依据本发明实施例的固态硬盘的系统架构示意图。固态硬盘140的系统架构中包含处理单元210,用以写入数据到储存单元280中的指定地址,以及从储存单元280中的指定地址读取数据。详细来说,处理单元210透过存取接口270写入数据到储存单元280中的指定地址,以及从储存单元280中的指定地址读取数据。系统架构使用数个电子信号来协调处理单元210与储存单元280间的数据与命令传递,包含数据线(data line)、频率信号(clock signal)与控制信号(control signal)。数据线可用以传递命令、地址、读出及写入的数据;控制信号线可用以传递芯片致能(chip enable,CE)、地址提取致能(addresslatch enable,ALE)、命令提取致能(command latch enable,CLE)、写入致能(writeenable,WE)等控制信号。存取接口270可采用双倍数据率(double data rate,DDR)通讯协议与储存单元280沟通,例如,开放NAND快闪(open NAND flash interface,ONFI)、双倍数据率开关(DDR toggle)或其他接口。处理单元210另可使用存取接口250透过指定通讯协议与处理单元110(又可称为主装置host)进行沟通,例如,通用串行总线(universal serialbus,USB)、先进技术附着(advanced technology attachment,ATA)、序列先进技术附着(serial advanced technology attachment,SATA)、快速周边组件互联(peripheralcomponent interconnect express,PCI-E)或其他接口。
储存单元280可包含多个储存子单元,每一个储存子单元实施于一个晶粒(die)上,各自使用关联的存取子接口与处理单元210进行沟通。图3系依据本发明实施例的存取接口与储存单元的方块图。固态硬盘140可包含j+1个存取子接口270_0至270_j,存取子接口又可称为通道(channel),每一个存取子接口连接i+1个储存子单元。换句话说,i+1个储存子单元共享一个存取子接口。例如,当固态硬盘140包含4个通道(j=3)且每一个通道连接4个储存子单元(i=3)时,固态硬盘140一共拥有16个储存子单元280_0_0至280_j_i。处理单元110可驱动存取子接口270_0至270_j中的一者,从指定的储存子单元读取数据。每个储存子单元拥有独立的芯片致能(CE)控制信号。换句话说,当欲对指定的储存子单元进行数据读取时,需要驱动关联的存取子接口致能此储存子单元的芯片致能控制信号。图4系依据本发明实施例的一个存取子接口与多个储存子单元的连接示意图。处理单元210可透过存取子接口270_0使用独立的芯片致能控制信号420_0_0至420_0_i来从连接的储存子单元280_0_0至280_0_i中选择出其中一者,接着,透过共享的数据线410_0从选择出的储存子单元的指定位置读取数据。
于一些实施方式中,主装置110可透过存取接口250提供逻辑区块地址(LBA,Logical Block Address)给处理单元210,用以指示写入或读取特定区域的数据。为优化数据写入的效率,存取接口270将一段具有连续逻辑区块地址的数据分散地摆放在储存单元280中的不同实体区域。因此,固态硬盘140需要于动态随机存取存储器220中储存一个实体储存对照表(storage mapping table,又称为H2F Host-to-Flash表),用以指出每个逻辑区块地址的数据实际储存于储存单元280中的哪个位置。然而,因为不具有主装置110中执行应用程序的知识,存取接口270对数据实体摆放的优化不一定符合主装置110的需求。
透过本发明实施例的固态硬盘访问方法,可实现将实体数据摆放的优化逻辑放置于主装置110的目的。主装置可于存储器150中储存多个H2F表,其中每一个H2F表关联于一个命名空间(namespace)。主装置110透过H2F表为不同命名空间定义固态硬盘140中的不同可视实体范围。命名空间可为64位或128位的标识符(ID,identifier),例如通用唯一标识符(UUID,Universally Unique Identifier)、全球唯一标识符(GUID,Globally UniqueIdentifier)等,或者是自定义长度的用户标识符(user ID)。主装置110可依据不同命名空间制定不同的服务质量(QoS,Quality of Service),并依据服务质量排程相应于不同命名空间的数据存取命令。服务质量描述存取相应于命名空间中的数据的需求条件,例如通过量(throughput)、等待时间等。主装置110可记录相应不同命名空间的执行历史,例如于特定时间点执行特定命名空间的数据存取命令。不同命名空间的服务质量及执行历史可使用特定数据结构实施,例如数据阵列、数据库数据表、档案纪录等,并储存于存储器150。存储器150储存命名空间对照表,包含每一命名空间所关联的H2F表的储存地址的信息。范例的命名空间对照表如表1所示:
表1
命名空间 | 起始地址 |
123e4567-e89b-12d3-a456-426655440000 | 0x10000 |
123e4567-e89b-12d3-a456-665544000042 | 0x20000 |
123e4567-e89b-12d3-a456-554400004266 | 0x30000 |
命名空间对照表包含三笔纪录,用以描述命名空间”123e4567-e89b-12d3-a456-426655440000”的H2F表从存储器150的地址0x10000开始储存,命名空间”123e4567-e89b-12d3-a456-665544000042”的H2F表从存储器150的地址0x20000开始储存及命名空间”123e4567-e89b-12d3-a456-554400004266”的H2F表从存储器150的地址0x30000开始储存。
图5A系依据本发明实施例的存储器配置示意图。存储器150可储存命名空间对照表500、命名空间”123e4567-e89b-12d3-a456-426655440000”的H2F表510、命名空间”123e4567-e89b-12d3-a456-665544000042”的H2F表530及命名空间”123e4567-e89b-12d3-a456-554400004266”的H2F表550。H2F表510、530及550中的每一者按照逻辑位置的顺序,储存每一逻辑位置的数据实际储存于储存单元280中的哪个实体位置的信息。逻辑位置可以逻辑区块地址(LBA,Logical Block Address)表示,每一个逻辑区块地址对应到储存单元280中一个固定大小的实体储存空间,例如256K、512K或1024K字节(Bytes)。例如,H2F表510依序储存由LBA0至LBA65535的实体位置信息;H2F表530依序储存由LBA0至LBA32767的实体位置信息;H2F表550依序储存由LBA0至LBA131071的实体位置信息。图5B系依据本发明实施例的实体储存对照示意图。每个逻辑区块的实体位置信息可以4个字节表示。例如,H2F表510、530及550分别包含LBA0的实体位置信息511、531及551。实体位置信息511以2个字节511a纪录区块编号(block number)及2个字节511b纪录单元编号(unit number),类似地,实体位置信息531以2个字节531a纪录区块编号及2个字节531b纪录单元编号,实体位置信息551以2个字节551a纪录区块编号及2个字节551b纪录单元编号,用以指向储存单元280中不同的实体位置。须注意的是,因为传统主装置中不储存H2F表的信息,无法实现实体数据摆放的优化,更遑论不同命名空间的实体数据摆放的优化。
图6系依据本发明实施例的快速周边组件互联的阶层示意图。应用程序(application)610可透过操作系统(OS,operating system)620读取固态硬盘140中特定地址的数据,或写入数据到固态硬盘140的特定地址。操作系统620发出命令给驱动程序630,使得驱动程序630可产生并传送相应的读取与写入请求给传输层(transaction layer)640。传输层(transaction layer)640使用封包架构的分割交易(split-transaction)协议,将读取与写入请求经由数据链结层(data link layer)650及物理层(physical layer)660传送至固态硬盘140。
驱动程序630可从上层取得数据存取命令,并将数据存取命令依据先后顺序推入一至多的先进先出队列。上层可为应用程序610或操作系统620。例如,存储器150可配置空间给三个先进先出队列,分别关联于命名空间“123e4567-e89b-12d3-a456-426655440000”、“123e4567-e89b-12d3-a456-665544000042”及“123e4567-e89b-12d3-a456-554400004266”。图7系依据本发明实施例的固态硬盘访问方法的流程图。此方法于处理单元110加载并执行驱动程序630时实施。此方法反复执行一个循环(步骤S710至S770),用以处理应用程序610发出的数据存取命令。于每一回合中,依据服务质量及执行历史从多个命名空间选择出一者(步骤S710),从相应于选择出的命名空间的队列中取得最早进入的数据存取命令,至少包含命名空间、命令类型及逻辑位置的信息(步骤S730),藉由搜寻命名空间对照表500来依据命名空间决定多个H2F表中的一者(S750),从决定的H2F表读取相应于逻辑位置的实体位置(步骤S770),以及产生并发送数据存取请求给固态硬盘140,其中至少包含请求类型及实体位置的信息(步骤S790)。数据存取命令的命令类型可为数据读取、数据写入等。举例来说,数据存取命令可指示为命名空间”123e4567-e89b-12d3-a456-426655440000”读取LBA0至LBA10的数据。或者,数据存取命令可指示为命名空间”123e4567-e89b-12d3-a456-426655440000”写入数据至LBA0至LBA10。于此须注意的是,当固态硬盘140中的处理单元210收到数据存取请求时,不需要做逻辑及实体位置转换,可直接驱动存取接口270从实体位置读取数据,或者是写入数据到实体位置。
虽然图1至图4中包含了以上描述的组件,但不排除在不违反发明的精神下,使用更多其他的附加组件,已达成更佳的技术效果。此外,虽然图7的流程图采用指定的顺序来执行,但是在不违反发明精神的情况下,本领域技术人员可以在达到相同效果的前提下,修改这些步骤间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。此外,本领域技术人员亦可以将若干步骤整合为一个步骤,或者是除了这些步骤外,循序或平行地执行更多步骤,本发明亦不因此而局限。
虽然本发明使用以上实施例进行说明,但需要注意的是,这些描述并非用以限缩本发明。相反地,此发明涵盖了本领域技术人员显而易见的修改与相似设置。所以,申请权利要求范围须以最宽广的方式解释来包含所有显而易见的修改与相似设置。
Claims (18)
1.一种固态硬盘访问方法,由一主装置的一第一处理单元于加载并执行一驱动程序时实施,包含:
透过上述主装置的上述第一处理单元,取得一数据存取命令,包含一命名空间、一命令类型及一逻辑位置的信息,其中上述命名空间依据多个服务质量及多个执行历史决定,上述多个执行历史包含于特定时间点执行特定命名空间的上述数据存取命令,上述命名空间为标识符;
透过上述主装置的上述第一处理单元,依据上述命名空间决定多个实体储存对照表中的一者;
透过上述主装置的上述第一处理单元,从上述决定的实体储存对照表读取相应于上述逻辑位置的一实体位置;
透过上述主装置的上述第一处理单元,产生一数据存取请求,包含一请求类型及上述实体位置的信息;以及
透过上述主装置的上述第一处理单元,发送上述数据存取请求给一固态硬盘的一第二处理单元;
其中,上述主装置包含一存储器,上述存储器用以储存一命名空间对照表,上述命名空间对照表包含关于用以储存上述多个实体储存对照表的上述存储器的多个位置的信息,其中上述多个实体储存对照表中的一者用以储存一逻辑区块地址的一实体位置信息,且上述实体位置信息用以以2个字节纪录一区块编号及2个字节纪录一单元编号。
2.如权利要求1所述的固态硬盘访问方法,其特征在于,上述决定的实体储存对照表按照逻辑位置的顺序储存关联于上述命名空间的每一逻辑位置的数据实际储存于上述固态硬盘中的一储存单元中的哪个实体位置的信息。
3.如权利要求1所述的固态硬盘访问方法,其特征在于,于透过上述主装置的上述第一处理单元依据上述命名空间决定多个实体储存对照表中的一者的步骤中,更包含:
透过上述主装置的上述第一处理单元,藉由搜寻一命名空间对照表来依据上述命名空间决定上述多个实体储存对照表中的一者。
4.如权利要求3所述的固态硬盘访问方法,其特征在于,上述命名空间对照表包含上述命名空间所关联的上述实体储存对照表的一储存地址的信息。
5.如权利要求4所述的固态硬盘访问方法,其特征在于,上述命名空间对照表包含每一上述实体储存对照表储存于一存储器的一起始地址的信息。
6.如权利要求1所述的固态硬盘访问方法,其特征在于,上述数据存取命令从一上层取得。
7.如权利要求6所述的固态硬盘访问方法,其特征在于,上述上层为一应用程序或一操作系统。
8.如权利要求1所述的固态硬盘访问方法,其特征在于,上述第一处理单元设置于上述固态硬盘之外。
9.如权利要求1所述的固态硬盘访问方法,其特征在于,更包含:
依据一服务质量及一执行历史从多个命名空间选择出上述命名空间,
其中,上述数据存取命令从相应于上述命名空间的一队列中取得。
10.一种固态硬盘存取装置,包含:
一存储器,储存多个实体储存对照表;以及
一第一处理单元,耦接于上述存储器,上述第一处理单元,用以于加载并执行一驱动程序时取得一数据存取命令,包含一命名空间、一命令类型及一逻辑位置的信息,其中上述命名空间依据多个服务质量及多个执行历史决定,上述多个执行历史包含于特定时间点执行特定命名空间的上述数据存取命令,上述命名空间为标识符;依据上述命名空间决定上述实体储存对照表中的一者;从上述存储器中的上述决定的实体储存对照表读取相应于上述逻辑位置的一实体位置;产生一数据存取请求,包含一请求类型及上述实体位置的信息;以及发送上述数据存取请求给一固态硬盘的一第二处理单元;其中,上述存储器用以储存一命名空间对照表,上述命名空间对照表包含关于用以储存上述多个实体储存对照表的上述存储器的多个位置的信息,其中上述多个实体储存对照表中的一者用以储存一逻辑区块地址的一实体位置信息,且上述实体位置信息用以以2个字节纪录一区块编号及2个字节纪录一单元编号。
11.如权利要求10所述的固态硬盘存取装置,其特征在于,上述决定的实体储存对照表按照逻辑位置的顺序储存关联于上述命名空间的每一逻辑位置的数据实际储存于上述固态硬盘中的一储存单元中的哪个实体位置的信息。
12.如权利要求10所述的固态硬盘存取装置,其特征在于,上述第一处理单元藉由搜寻上述命名空间对照表来依据上述命名空间决定上述多个实体储存对照表中的一者。
13.如权利要求12所述的固态硬盘存取装置,其特征在于,上述命名空间对照表包含上述命名空间所关联的上述实体储存对照表的一储存地址的信息。
14.如权利要求13所述的固态硬盘存取装置,其特征在于,上述命名空间对照表包含每一上述实体储存对照表储存于上述存储器的一起始地址的信息。
15.如权利要求10所述的固态硬盘存取装置,其特征在于,上述数据存取命令从一上层取得。
16.如权利要求15所述的固态硬盘存取装置,其特征在于,上述上层为一应用程序或一操作系统。
17.如权利要求10所述的固态硬盘存取装置,其特征在于,上述第一处理单元设置于上述固态硬盘之外。
18.如权利要求10所述的固态硬盘存取装置,其特征在于,上述第一处理单元依据一服务质量及一执行历史从多个命名空间选择出上述命名空间,以及上述数据存取命令从相应于上述命名空间的一队列中取得。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710384048.0A CN108959108B (zh) | 2017-05-26 | 2017-05-26 | 固态硬盘访问方法以及使用该方法的装置 |
TW106123462A TWI645330B (zh) | 2017-05-26 | 2017-07-13 | 固態硬碟存取方法以及使用該方法的裝置 |
US15/865,469 US10936482B2 (en) | 2017-05-26 | 2018-01-09 | Methods for controlling SSD (solid state disk) and apparatuses using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710384048.0A CN108959108B (zh) | 2017-05-26 | 2017-05-26 | 固态硬盘访问方法以及使用该方法的装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108959108A CN108959108A (zh) | 2018-12-07 |
CN108959108B true CN108959108B (zh) | 2021-08-24 |
Family
ID=64401376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710384048.0A Active CN108959108B (zh) | 2017-05-26 | 2017-05-26 | 固态硬盘访问方法以及使用该方法的装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10936482B2 (zh) |
CN (1) | CN108959108B (zh) |
TW (1) | TWI645330B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109597577A (zh) * | 2018-12-03 | 2019-04-09 | 郑州云海信息技术有限公司 | 一种处理nvme协议读写命令的方法、系统及相关装置 |
CN111399750B (zh) * | 2019-01-03 | 2023-05-26 | 慧荣科技股份有限公司 | 闪存数据写入方法及计算机可读取存储介质 |
CN109902033B (zh) * | 2019-02-13 | 2023-03-14 | 山东华芯半导体有限公司 | 应用于NVMe SSD控制器的namespace的LBA分配方法和映射方法 |
US11068165B2 (en) | 2019-06-27 | 2021-07-20 | Western Digital Technologies, Inc. | Non-volatile memory data write management |
US11656795B2 (en) * | 2021-01-21 | 2023-05-23 | EMC IP Holding Company LLC | Indicating optimized and non-optimized paths to hosts using NVMe-oF in a metro cluster storage system |
CN115963977A (zh) * | 2021-10-08 | 2023-04-14 | 中山市江波龙电子有限公司 | 一种固态硬盘及其数据操作方法、装置及电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104407813A (zh) * | 2014-11-20 | 2015-03-11 | 上海宝存信息科技有限公司 | 一种基于固态存储介质的raid系统及方法 |
US9213632B1 (en) * | 2012-02-29 | 2015-12-15 | Marvell International Ltd. | Systems and methods for data storage devices to use external resources |
CN105426315A (zh) * | 2014-09-02 | 2016-03-23 | 慧荣科技股份有限公司 | 实体储存对照表维护方法以及使用该方法的装置 |
CN105528299A (zh) * | 2014-09-05 | 2016-04-27 | 慧荣科技股份有限公司 | 读取命令排程方法以及使用该方法的装置 |
CN106201335A (zh) * | 2015-05-29 | 2016-12-07 | 株式会社东芝 | 存储系统 |
CN106682003A (zh) * | 2015-11-06 | 2017-05-17 | 中国电信股份有限公司 | 分布式存储命名空间的路径分割映射方法和装置 |
CN106708423A (zh) * | 2015-11-13 | 2017-05-24 | 三星电子株式会社 | 多模存储管理系统 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI368223B (en) * | 2007-12-07 | 2012-07-11 | Phison Electronics Corp | Flash memory data writing method and controller using the same |
US20180107591A1 (en) * | 2011-04-06 | 2018-04-19 | P4tents1, LLC | System, method and computer program product for fetching data between an execution of a plurality of threads |
US9285991B2 (en) * | 2011-04-29 | 2016-03-15 | International Business Machines Corporation | System, method and program product to schedule transfer of data |
CN102799534B (zh) * | 2012-07-18 | 2015-11-25 | 上海宝存信息科技有限公司 | 基于固态存储介质的存储系统及方法、冷热数据识别方法 |
CN102866956B (zh) * | 2012-09-14 | 2015-02-18 | 上海宝存信息科技有限公司 | 基于固态存储介质的数据实时跟踪存储系统及方法 |
US9195594B2 (en) * | 2013-01-22 | 2015-11-24 | Seagate Technology Llc | Locating data in non-volatile memory |
TWI584117B (zh) * | 2013-06-20 | 2017-05-21 | 慧榮科技股份有限公司 | 資料儲存裝置及用於快閃記憶體之資料讀取方法 |
US9208074B2 (en) * | 2013-08-30 | 2015-12-08 | Silicon Motion, Inc. | Updating address mapping in sub-intervals in a flash memory data storage device |
US9535628B2 (en) * | 2013-10-10 | 2017-01-03 | Apple Inc. | Memory system with shared file system |
US9645896B2 (en) * | 2013-12-26 | 2017-05-09 | Silicon Motion, Inc. | Data storage device and flash memory control method |
US11042300B2 (en) * | 2015-03-31 | 2021-06-22 | Toshiba Memory Corporation | Command load balancing for NVME dual port operations |
US9696935B2 (en) * | 2015-04-24 | 2017-07-04 | Kabushiki Kaisha Toshiba | Storage device that secures a block for a stream or namespace and system having the storage device |
WO2017033287A1 (ja) * | 2015-08-25 | 2017-03-02 | 株式会社 東芝 | 階層化ストレージシステム、階層化ストレージ装置を利用するコンピュータ、及びファイルへのアクセスのカウントを補正する方法 |
US20180203813A1 (en) * | 2015-09-29 | 2018-07-19 | Shannon Systems Ltd. | Methods for processing return entities associated with multiple requests in single interrupt service routine thread and apparatuses using the same |
KR102450555B1 (ko) * | 2015-11-09 | 2022-10-05 | 삼성전자주식회사 | 스토리지 장치 및 그것의 동작 방법 |
US10235198B2 (en) * | 2016-02-24 | 2019-03-19 | Samsung Electronics Co., Ltd. | VM-aware FTL design for SR-IOV NVME SSD |
JP6523193B2 (ja) * | 2016-03-08 | 2019-05-29 | 東芝メモリ株式会社 | ストレージシステム、情報処理システムおよび制御方法 |
US10296250B2 (en) * | 2016-06-08 | 2019-05-21 | Intel Corporation | Method and apparatus for improving performance of sequential logging in a storage device |
US10229048B2 (en) * | 2016-06-29 | 2019-03-12 | Western Digital Technologies, Inc. | Unified paging scheme for dense and sparse translation tables on flash storage systems |
US10200376B2 (en) * | 2016-08-24 | 2019-02-05 | Intel Corporation | Computer product, method, and system to dynamically provide discovery services for host nodes of target systems and storage resources in a network |
US10225271B2 (en) * | 2016-09-09 | 2019-03-05 | International Business Machines Corporation | Distributed storage network with enhanced security monitoring |
US10146684B2 (en) * | 2016-10-24 | 2018-12-04 | Datrium, Inc. | Distributed data parallel method for reclaiming space |
KR20180047402A (ko) * | 2016-10-31 | 2018-05-10 | 삼성전자주식회사 | 멀티 네임스페이스를 관리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
CN106527987B (zh) * | 2016-11-04 | 2019-06-04 | 湖南国科微电子股份有限公司 | 一种不带dram的ssd主控可靠性提升系统及方法 |
US10062429B1 (en) * | 2017-04-17 | 2018-08-28 | Intel Corporation | System, apparatus and method for segmenting a memory array |
-
2017
- 2017-05-26 CN CN201710384048.0A patent/CN108959108B/zh active Active
- 2017-07-13 TW TW106123462A patent/TWI645330B/zh active
-
2018
- 2018-01-09 US US15/865,469 patent/US10936482B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9213632B1 (en) * | 2012-02-29 | 2015-12-15 | Marvell International Ltd. | Systems and methods for data storage devices to use external resources |
CN105426315A (zh) * | 2014-09-02 | 2016-03-23 | 慧荣科技股份有限公司 | 实体储存对照表维护方法以及使用该方法的装置 |
CN105528299A (zh) * | 2014-09-05 | 2016-04-27 | 慧荣科技股份有限公司 | 读取命令排程方法以及使用该方法的装置 |
CN104407813A (zh) * | 2014-11-20 | 2015-03-11 | 上海宝存信息科技有限公司 | 一种基于固态存储介质的raid系统及方法 |
CN106201335A (zh) * | 2015-05-29 | 2016-12-07 | 株式会社东芝 | 存储系统 |
CN106682003A (zh) * | 2015-11-06 | 2017-05-17 | 中国电信股份有限公司 | 分布式存储命名空间的路径分割映射方法和装置 |
CN106708423A (zh) * | 2015-11-13 | 2017-05-24 | 三星电子株式会社 | 多模存储管理系统 |
Also Published As
Publication number | Publication date |
---|---|
US20180341579A1 (en) | 2018-11-29 |
TW201901405A (zh) | 2019-01-01 |
CN108959108A (zh) | 2018-12-07 |
US10936482B2 (en) | 2021-03-02 |
TWI645330B (zh) | 2018-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108959108B (zh) | 固态硬盘访问方法以及使用该方法的装置 | |
US20220197818A1 (en) | Method and apparatus for performing operations to namespaces of a flash memory device | |
KR101482285B1 (ko) | 복수의 이종의 솔리드 스테이트 저장 위치들의 선택적 이용 | |
CN108932106B (zh) | 固态硬盘访问方法以及使用该方法的装置 | |
TWI719654B (zh) | 閃存實體資源集合管理裝置及方法以及電腦程式產品 | |
US9697111B2 (en) | Method of managing dynamic memory reallocation and device performing the method | |
US6901500B1 (en) | Method and apparatus for prefetching information and storing the information in a stream buffer | |
CN107918613B (zh) | 因应服务质量的固态硬盘访问方法以及使用该方法的装置 | |
CN113641597B (zh) | 管理数据存储的方法及装置以及计算机可读取存储介质 | |
KR20190082652A (ko) | 데이터베이스에서 이터레이터 연산을 수행하기 위한 장치 | |
TWI835027B (zh) | 更新主機與閃存位址對照表的方法及電腦程式產品及裝置 | |
TWI810876B (zh) | 因應主機丟棄命令的資料存取方法及產品電腦程式及裝置 | |
TW202416108A (zh) | 排程和執行主機資料更新命令的方法及電腦程式產品及裝置 | |
Chen et al. | Read and Write Performance Research and Optimization for eMMC Device Driver | |
CN117909251A (zh) | 存储介质、调度和执行主机数据更新命令的方法及装置 | |
CN117909252A (zh) | 存储介质、调度和执行主机数据更新命令的方法及装置 | |
TW202416120A (zh) | 排程和執行主機資料更新命令的方法及電腦程式產品及裝置 | |
CN116149540A (zh) | 更新主机与闪存地址对照表的方法和计算机可读取存储介质和装置 | |
CN116931812A (zh) | 因应主机丢弃命令的数据存取方法和存储介质和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |