CN112703481A - 混合式存储器系统接口 - Google Patents
混合式存储器系统接口 Download PDFInfo
- Publication number
- CN112703481A CN112703481A CN201980059561.XA CN201980059561A CN112703481A CN 112703481 A CN112703481 A CN 112703481A CN 201980059561 A CN201980059561 A CN 201980059561A CN 112703481 A CN112703481 A CN 112703481A
- Authority
- CN
- China
- Prior art keywords
- block
- storage
- memory
- sub
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 178
- 238000012545 processing Methods 0.000 claims abstract description 65
- 238000000034 method Methods 0.000 claims abstract description 34
- 230000002093 peripheral effect Effects 0.000 claims description 31
- 238000012546 transfer Methods 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 5
- 230000004931 aggregating effect Effects 0.000 claims description 2
- 230000002776 aggregation Effects 0.000 claims description 2
- 238000004220 aggregation Methods 0.000 claims description 2
- 230000000977 initiatory effect Effects 0.000 claims 1
- 230000005055 memory storage Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 238000003491 array Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000014616 translation Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44568—Immediately runnable code
- G06F9/44584—Portable applications, i.e. making applications self-contained, e.g. U3 standard
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/28—DMA
-
- 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/0661—Format or protocol conversion arrangements
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)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明包含与混合式存储器系统接口有关的设备及方法。实例计算系统包含处理资源及经由混合式接口耦合到所述处理资源的存储系统。所述混合式接口可提供到所述存储系统的输入/输出I/O存取路径,其支持块级存储I/O存取请求及子块级存储I/O存取请求两者。
Description
技术领域
本发明大体上涉及半导体存储器及方法,且更特定来说,涉及与混合式存储器系统接口有关的设备及方法。
背景技术
可在例如计算机、移动电话、手持式电子装置等的电子系统中实施例如存储系统的存储器系统。例如固态磁盘(SSD)、嵌入式多媒体控制器(eMMC)装置、通用闪存(UFS)装置及类似者的各种电子器件可包含用于存储可由若干处理资源(例如,主处理器、外围装置的处理器等)存取的数据的非易失性存储组件。非易失性存储组件通过在未供电时留存所存储数据而提供持久性数据且可包含NAND闪存、NOR闪存、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、可擦除可编程ROM(EPROM)、及电阻可变存储器(例如相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM)、铁电随机存取存储器(FeRAM)、磁阻式随机存取存储器(MRAM)及可编程导电存储器)以及其它类型的存储器。存储器系统还可包含需要电力来维护数据的易失性存储组件。易失性存储器组件通常用于主系统存储器及/或用于临时存储器。易失性存储器的实例包含动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)及晶闸管随机存取存储器(TRAM)以及其它存储器。
附图说明
图1是根据本发明的若干实施例的呈包含包括主存储器的主机及存储器系统的计算系统的形式的设备的框图。
图2是根据一些方法的设备的框图。
图3说明根据本发明的若干实施例的表示计算系统的一部分的系统/应用程序级框图。
图4说明根据本发明的若干实施例的包含中央处理单元(CPU)的计算系统的一部分的示意图。
图5说明说明根据本发明的若干实施例的用于操作计算系统的方法的实例的实例流程图。
具体实施方式
本发明包含与混合式存储器系统接口有关的设备及方法。实例计算系统包含处理资源及经由混合式接口耦合到所述处理资源的存储系统。混合式接口可提供到存储系统的输入/输出(I/O)存取路径,其支持块级存储I/O存取请求及子块级存储I/O存取请求两者。
例如个人计算机、膝上型计算机、平板计算机、平板手机、智能电话、启用物联网(IoT)的装置等的计算系统可包含用以存储与计算系统相关联的数据及/或指令的一或多个存储器资源。如本文中使用,“启用IoT的装置”包含物理装置、运载工具、家用电器、及嵌入有电子器件、软件、传感器、致动器、及/或使此类对象能够连接并交换数据的网络连接能力的其它装置。启用IoT的装置的实例包含可穿戴技术、智能型家用装置、智能购物系统、及监测装置以及其它网络物理系统。另外,计算系统可包含一或多个处理资源以执行例如操作系统的系统软件以为计算系统上运行的应用程序提供共同服务。操作系统的实例包含等。
在操作期间,例如计算系统的中央处理单元(CPU)的处理器可执行例如固件、计算机程序码、元程序代码、数据库文件等的指令以提供功能性到计算系统。为执行指令,可通过执行若干相应存取操作而从存储系统存取与指令相关联的若干数据请求、及与若干数据请求相关联的数据及/或指令。在一些方法中,CPU与存储系统之间的I/O总线可仅具有特定大小,且CPU本端的存储器(例如,例如计算系统的主存储器内部及/或外部的高速缓存)可充当中间装置,其中可修改若干数据请求的大小以符合I/O总线的大小要求。举例来说,具有比特定大小更小的大小的若干数据请求可在主存储器处汇总。接着,可基于汇总数据请求来产生I/O存取请求(例如,具有等于特定大小的大小的请求)且经由特定大小的I/O总线将所述I/O存取请求传送到存储系统。因此,缺乏支持各种大小的请求或与请求相关联的数据及/或指令的灵活性可能消耗计算系统的资源。
相比之下,本文中的本发明的若干实施例可通过利用混合式存储器系统接口而减少结合执行指令所消耗的资源量。举例来说,与请求(例如子块级存储I/O请求)相关联的数据及/或指令可由处理资源(例如,CPU)从存储数据及/或指令的存储系统直接存取。相应地,在一些实施例中,根据若干实施例的主存储器不一定用作中间装置,这可减少与通过主存储器传送数据及/或指令相关联的延时。
在本发明的以下详细描述中,参考形成本发明的一部分且其中通过图解展示可如何实践本发明的一或多个实施例的附图。足够详细地描述这些实施例以使所属领域的一般技术人员能够实践本发明的实施例,且应了解,可利用其它实施例且可进行过程、电气及结构改变而不脱离本发明的范围。如本文中使用,标示符(例如“N”等,尤其关于图式中的元件符号)指示可包含如此标示的若干特定特征。如本文中使用,“若干”特定事项指代此类事项中的一或多者(例如,若干存储器阵列可指代一或多个存储器阵列)。“多个”希望指代一个以上此类事项。
本文中的图遵循编号惯例,其中首位数字或前几位数字对应于图式图号且其余数字识别图式中的元件或组件。可通过使用类似数字识别不同图之间的类似元件或组件。举例来说,104可指涉图1中的元件“04”,且类似元件在图3中可称为304。应了解,可添加、交换及/或消除本文中的各个实施例中展示的元件以便提供本发明的若干额外实施例。另外,应了解,图中提供的元件的比例及相对尺度希望说明本发明的特定实施例,且不应被视为限制意义。
图1是根据本发明的若干实施例的呈包含包括主存储器109的主机102及存储系统104的计算系统100的形式的设备的框图。如本文中使用,主机102及/或存储系统104还可单独视为“设备”。
计算系统100(例如,移动系统)可为计算装置,例如移动装置。如本文中使用,“移动装置”指代便携式、利用便携式电力供应器且小到足以在手上固持并操作的装置。然而,实施例并不限于此。作为实例,主机102可包含个人膝上型计算机、桌上型计算机、数字相机、智能电话、记忆卡读取器、启用IoT的装置以及各种其它类型的主机。
系统100包含经由I/O存取路径耦合(例如,连接)到包含一或多个存储器资源的存储系统104的主机102,如本文中说明。系统100可包含单独集成电路或主机102及存储系统104两者可处于相同集成电路上。系统100可为(例如)服务器系统及/或高性能计算(HPC)系统及/或其的一部分。
主机102可包含系统母板及/或背板且可包含若干处理资源(例如,一或多个处理器、微处理器、或一些其它类型的控制电路),例如处理资源103。处理资源103可响应于接收到可结合执行指令所产生的数据请求而存取存储于存储器资源108-1、…、108-N中的数据及/或指令。举例来说,响应于接收到起始应用程序的请求,处理资源103可存取存储器资源108-1、…、108-N以检索与启动所述应用程序相关联的指令。举例来说,处理资源103可存取存储器资源108-1、…、108-N以检索与执行指令相关联的数据。如本文中进一步描述,提供I/O存取路径173的混合式接口(未展示)可基于数据请求的大小来适应各种类型的存储I/O存取请求。
主机102包含高速缓存101(例如,CPU高速缓存),高速缓存101可包含存储处理资源103本端的数据的硬件及/或软件装置。可将从存储系统104检索的数据及/或指令集(例如,可由处理资源103执行的指令集)复制到高速缓存101使得处理资源103可从高速缓存101存取数据及/或指令集。
主机102包含存储器管理单元105。存储器管理单元105可为执行虚拟存储器地址与物理存储器地址之间的转译的硬件组件。存储器管理单元105可进一步定义可需要匹配数据请求的大小的平台存储器管理模型。在若干实施例中,存储器管理单元105可灵活地定义平台存储器管理模型使得块大小及子块大小数据请求两者可在未相互转换的情况下(例如,尚未将子块大小数据请求汇总到块大小数据请求)被服务。
主机102包含主存储器109。在若干实施例中,主存储器109可为可用于存储与计算系统100的操作相关联的一或多页数据的易失性存储器(例如RAM、DRAM、SRAM等)。实施例不限于易失性存储器;然而,且除易失性存储器以外或代替易失性存储器,主存储器还可包含非易失性存储器。
如图1中说明,存储系统104可包含控制器106及存储器资源108-1、…、108-N。如本文中使用,主机102、存储系统104、控制器106及/或存储器资源108-1、…、108-N还可单独视为“设备”。
控制器106可为状态机、序列发生器或某一其它类型的控制器,且包含呈特定应用集成电路(ASIC)、场可编程门阵列等的形式的硬件及/或固件(例如,微程序代码指令)。控制器106可控制(举例来说)执行以促成计算系统100的操作的指令的存取型样。
如图1中展示,控制器106经由相应通信信道107-1、…、107-N通信耦合到存储器资源108-1、…、108-N。通信信道107-1、…、107-N可允许在控制器106与存储器资源108-1、…、108-N之间传送请求、数据及/或指令。
如图1中说明,存储系统104可包含耦合到控制器106的一或多个存储器资源108-1、…、108-N。在一些实施例中,存储系统104可为混合式存储系统且存储器资源108-1、…、108-N可为不同种类的存储器资源。举例来说,存储器资源108-1可为新兴非易失性存储器资源(例如3D Xpoint存储器资源、铁电RAM(FeRAM)等),而存储器资源108-N可为NAND存储器资源。实施例不限于这些特定实例,且存储器资源108-1、…、108-N可为相同种类的存储器资源,例如新兴非易失性存储器资源。
不同种类的存储器资源108-1、…、108-N可支持(例如,用于执行)展示各种特性的存储I/O存取请求。举例来说,各种特性可包含特定存储I/O请求的执行频率、请求的大小、执行请求所消耗的资源(例如,存储器资源及/或处理资源)量、可执行请求的速度、或其它合适特性。此外,不同种类的存储器资源108-1、…、108N可支持具有不同大小的存储I/O存取请求,如本文中描述。举例来说,例如NAND闪存资源的一些存储器资源可仅支持块级存储I/O请求,而其它存储器资源可支持子块级存储I/O请求。
主机102可经由提供到存储系统104的I/O存取路径173的混合物接口(未展示)通信耦合到存储系统104。I/O存取路径173可支持块级存储I/O存取请求及子块级存储I/O请求两者。在各个实施例中,块级存储I/O请求可指代具有大于主机高速缓存线大小的大小(例如,4千字节)的存储I/O请求,而子块级存储I/O请求可指代具有不大于主机高速缓存线大小的大小(例如,32、64及/或128个字节)的存储I/O请求。
由于I/O存取路径173可支持块级及子块级I/O存取请求两者,故混合式接口可基于(例如,结合执行应用程序所产生的)数据请求的大小来产生各种类型的存储I/O存取请求。举例来说,当所接收数据请求是块大小数据请求时,混合式接口可产生块级存储I/O存取请求。举例来说,当所接收数据请求是子块大小数据请求时,混合式接口可产生子块级存储I/O存取请求。相应地,多个子块大小数据请求在尚未经汇总以传送到存储系统104/从存储系统104传送的情况下可经由多个单独子块级存储I/O存取请求被服务。换句话说,混合式接口可经配置以防止多个子块大小数据请求汇总到块大小数据请求以传送到存储系统104/从存储系统104传送。
多个子块大小数据请求可在尚未汇总以供传送的情况下被服务使得处理资源103能够针对子块大小数据请求直接存取存储器资源108-1、…、108-N。举例来说,如果数据请求是子块大小数据请求,那么混合式接口可将对具有子块级可存取性的存储器资源108-1、…、108-N(例如,存储与数据请求相关联的数据及/或指令集)中的特定者的直接存取提供到处理资源103。如本文中使用,支持块级存储I/O存取请求的存储器资源可被称为具有块级可存取性的存储器资源,且支持子块级存储I/O存取请求的存储器资源可被称为具有子块级可存取性的存储器资源。举例来说,第一类型的存储器资源108-1、…、108-N(例如新兴非易失性存储器资源)可支持子块级存取请求,而第二类型的存储器资源108-1、…、108-N(例如NAND)可支持块级存取请求但可不支持子块级存取请求。尽管实施例并不限于此,但仅第一类型及第二类型的非易失性存储器资源中的一者可支持子块级存储I/O存取请求。相较于具有块级可存取性的存储器资源108-1、…、108-N的其它部分,具有子块级可存取性的存储器资源108-1、…、108-N的一部分可具有更低存取时间及/或更高耐久性。
可以多种方式利用在未使用主存储器(例如,109)作为中间机构的情况下实现对存储系统104的存储器资源108的直接存取。通常,在主机102与存储系统104之间传递请求、数据、及/或指令时,主存储器109可充当中间装置,通过所述中间装置传送请求、数据及/或指令。作为实例,执行存储于存储系统104中的数据及/或指令的读取操作可能涉及将数据及/或指令集复制到主存储器109使得处理资源103可从主存储器109存取数据及/或指令集。
然而,根据若干实施例的混合式接口可提供对存储系统104的直接存取。作为实例,混合式接口可消除(例如,通过提供还支持子块级I/O存取请求的I/O存取路径)对于将多个子块大小数据请求汇总到块大小请求的需求;因此,存储I/O存取请求、数据及/或指令集还可在未通过主存储器109传送的情况下在处理资源103与存储器资源108-1、…、108-N之间直接传递。因而,可保留主存储器109的资源以用于其它操作。在若干实施例中,直接存取请求的大小可限于小于或等于CPU高速缓存线大小的请求,举例来说;然而,实施例并不限于此。结合图3、4及5描述可利用如何实现与子块大小数据请求相关联的直接存取的进一步细节。
图2是根据一些方法的表示计算系统210的一部分的系统/应用程序级框图。计算系统210的部分可包含负责计算系统的操作的软件堆叠(例如用户空间212及系统空间214(例如,核心空间))及包含存储系统232的硬件部分。
用户空间212及系统空间214可为操作系统的一部分。举例来说,用户空间212及系统空间214的操作系统可分别表示用户及与其相关联的核心的操作系统。在此类实施例中,计算系统210的一部分可被视为“软件存储堆叠”(例如,计算系统210的一部分可表示操作系统的基于软件的核心实施方案)。
作为执行与用户空间212的应用程序216相关联的指令的一部分,可向链接库组件218发出执行操作(例如,读取及/或写入)以存取存储系统232中的数据/指令(例如,组织为文件)的命令(例如,请求)。可从用户空间212(例如,用户空间212的应用程序216)发出的命令可包含fread()及/或fwrite()以分别对存储系统232执行读取操作及写入操作,举例来说。
用户空间212的链接库组件218可存储可由用户空间212使用以将命令投送到核心空间214的若干指令。举例来说,用户空间212可寻找对应于与执行应用程序216相关联的命令的指令(例如,基于C的指令),且可将从链接库组件218检索的指令投送到核心空间(例如,页面高速缓存224)。所检索指令可将原始字节级(例如,子块级)命令转译为块级(例如,块级)命令,例如4kB命令。链接库组件218可为包含呈包括至少基于C的语言的多种语言的指令的标准功能的链接库。
除写入及/或读取命令以外,链接库组件还可向(举例来说)页面高速缓存224发出其它命令。其它命令可包含:映射命令(例如,mmap),其将文件映射到特定存储器位置;及分配命令(例如,malloc),其将文件分配到存储器位置及/或将指标传回到其中分配文件的存储器位置。
虚拟文件系统组件220可包含可由处理资源(例如,与主机相关联的处理资源)执行的指令及/或可供应有硬件资源,最终可在所述硬件资源上执行指令以在文件系统组件222的顶部上提供抽象层。举例来说,虚拟文件系统组件220可包含可经执行以存取本端及/或网络存储装置的指令。在一些实施例中,虚拟文件系统220可包含可经执行以透明地(例如,无客户端应用程序互动)存取本端及/或网络存储装置的指令。与虚拟文件系统组件220相关联的指令可指定核心空间与文件系统组件222之间的接口。
文件系统组件222可包含可由处理资源(例如,与主机相关联的处理资源)执行的指令及/或可供应有硬件资源,最终可在所述硬件资源上执行指令以控制如何存储及/或检索与计算系统210相关联的数据。举例来说,文件系统组件222可包含可执行以存储及/或检索来自存储系统104的数据的指令。
装置映射器组件226可包含可由处理资源(例如,与主机相关联的处理资源)执行的指令及/或可供应有硬件资源,最终可在所述硬件资源上执行指令以将物理块装置映射到较高级虚拟块装置上。装置映射器组件226形成逻辑卷管理(LVM)、独立磁盘软件冗余阵列(RAID)及/或dm-crypt磁盘加密(例如,核心空间214中的透明磁盘加密子系统)的基础,且提供例如文件系统快照的额外特征。
页面高速缓存组件224可包含可由处理资源(例如,与主机相关联的处理资源)执行的指令及/或可供应有硬件资源,最终可在所述硬件资源上执行指令以缓冲从虚拟文件系统组件220投送的命令。页面高速缓存组件224可被称为“磁盘高速缓存区”且可定位于存储系统(例如,图1中展示的存储系统104)上且与特定存储系统存储器资源(例如,存储器资源108-1到108-N)a的存取请求相关联。
在待修改存储于若干装置中的一者(例如,计算系统210的存储系统232)上的数据时,计算系统210可首先修改页面高速缓存组件223中的页面的高速缓存版本且将页面标记为“已变更(dirty)”页面。稍后,可将“已变更”页面的新内容从页面高速缓存复制到驱动程序组件230中以减少在相同页面在短时段中更新两次的情况下存储装置232上所需的写入操作次数。
当在页面高速缓存组件224处缓冲命令时,经缓冲命令可经汇总以形成具有较大大小(例如,子块级到块级)的个别命令以匹配由存储器管理单元(MMU)定义的平台存储器管理模型,存储器管理单元是执行虚拟存储器地址与物理存储器地址之间的转译的硬件组件。
块层228可存储可由处理资源(例如,与主机相关联的处理资源)执行的指令及/或可供应有硬件资源,最终可在所述硬件资源上执行指令以组织并调度从页面高速缓存组件224投送的命令且进一步投送到存储系统232(例如,经由驱动程序组件230)。块层228可将缓冲存取提供到存储系统232以最终将所投送命令重新排序、变更优先级及/或合并。
驱动程序组件230可包含可由处理资源(例如,与主机相关联的处理资源)执行的指令及/或可供应有硬件资源,最终可在所述硬件资源上执行指令以为与计算系统210相关联的各种组件提供驱动程序支持。举例来说,驱动程序组件230可经配置以执行指令以加载及/或更新与主机、存储器系统、及/或可与计算系统200相关联的其它外围装置(未展示)相关联的驱动程序。从块层228投送的命令可经由驱动程序组件230投送到包含(举例来说)控制器及存储装置的存储系统232。可由存储装置上的控制器(例如,图1中展示的控制器106)执行汇总到块级命令且在存储系统232处接收的字节级命令。
在一些方法中,计算系统232的部分可能缺少可提供支持块级存储I/O存取请求及子块级存储I/O存取请求两者的I/O存取路径的混合式接口;借此,缺乏子块级可存取性。因此,可要求多个字节级命令(例如,多个子块大小数据请求)在页面高速缓存组件224处汇总到块级命令(例如,块大小数据请求)以经由缺乏子块级可存取性的I/O存取路径进行传送。相比之下,在若干实施例中,无需通过页面高速缓存组件224投送多个子块大小数据请求,此是因为可通过混合式接口的I/O存取路径传送对应子块级存储I/O存取请求。相应地,在本发明的一些实施例中,存储系统104的一部分可在不具有例如页面高速缓存组件224的单独组件的情况下分配为用于提供原本将由页面高速缓存组件224提供的功能的页面高速缓存。
图3说明根据本发明的若干实施例的表示计算系统300的一部分的系统/应用程序级框图。计算系统300的部分及存储系统304可分别类似于计算系统100的至少一部分及存储系统104,如结合图1描述。此外,混合式接口340可类似于具有I/O存取路径173的混合式接口,如结合图1描述。
计算系统300的部分可包含负责计算系统的操作的软件堆叠(例如用户空间334(例如,“用户区”)及核心336(例如,系统空间)及包含存储系统304的硬件部分。如本文中使用,“系统空间”或“核心空间”是与计算系统300的部分相关联的存储器位置,其中可存储由与计算系统300相关联的硬件处理器执行以控制计算系统的指令。相比之下,如本文中使用,“用户空间”是与计算系统300的部分相关联的存储器位置,其中存储由计算系统执行对应于应用程序338的指令。可由硬件处理器(例如,如结合图1描述的处理资源103)执行对应于应用程序338的指令以针对用户的益处执行群组的协调功能、任务或活动。
在一些实施例中,用户空间334及系统空间336可为操作系统的一部分。举例来说,用户空间334及系统空间336的操作系统可分别表示用户及与其相关联的核心的操作系统。在此类实施例中,计算系统300的一部分可被视为“软件存储堆叠”(例如,计算系统300的一部分可表示操作系统的基于软件的核心实施方案)。
文件系统342可包含于混合式接口430中。文件系统342可具有各自耦合到相应驱动程序(例如,驱动程序344-1及344-2)的第一部分342-1及第二部分342-2。文件系统342的部分342-1及342-2可为虚拟文件系统且包含可经执行以存取本端及/或网络存储装置(例如存储系统304)的指令。包含于虚拟文件系统中的指令可指定文件系统340的部分342-1及342-2中的一者以用于将数据及/或其它指令传递到存储系统304及/或从存储系统304传递数据及/或其它指令。驱动程序344-1及344-2可为用以与相关联于计算系统(例如,计算系统100)的各种硬件组件(例如,处理器、存储器装置、外围装置等)介接的虚拟(例如,软件)驱动程序。
在若干实施例中,文件系统342可经配置以管理块级存储I/O存取请求及子块级存储I/O存取请求两者。可利用文件系统342的每一部分以管理不同类型的存储I/O存取请求。举例来说,第一部分可经配置以管理块级存储I/O存取请求,而第二部分可经配置以管理子块级存储I/O存取请求。
相应地,对应于子块级存储I/O存取请求的子块大小数据请求可在尚未汇总到块级大小数据请求的情况下被服务。作为实例,处理资源(例如,如结合图1描述的处理资源103)可经配置以响应于子块大小数据请求的接收而经由混合式接口340直接存取存储系统304(例如,其的具有子块级可存取性的存储器资源),且从存储系统304直接执行与子块大小数据请求相关联的指令集。所述指令集可导致处理资源启动移动应用程序。
在各个实施例中,混合式接口340的文件系统342可包含具备直接存取(DAX)能力的文件系统部分。具备DAX能力的文件系统指代能够对存储系统304(例如,来自用户空间334)直接执行读取及/或写入操作的文件系统。换句话说,数据、命令、指令及/或请求在未通过主存储器(例如,主存储器109)投送、传送及/或复制的情况下可直接投送、传送及/或复制到存储系统304且从存储系统304直接投送、传送及/或复制。因而,在一些实施例中,存储系统304可直接映射到用户空间334以直接存取存储系统304(例如,执行读取/写入)。
在一些实施例中,请求、数据及/或指令可经由共享总线传递到存储系统304及/或从存储系统304传递。举例来说,无论请求、数据及/或指令是否对应于块级或子块级,可经由相同共享总线从存储系统304传递请求、数据及/或指令。然而,实施例并不限于此。举例来说,块级及子块级请求、数据及/或指令可经由不同相应总线传递到存储系统304及/或从存储系统304传递。举例来说,可经由不同于用于传递块级存储I/O存取的总线的总线传递子块级存储I/O存取请求。
在一些实施例中,可由处理资源(例如,处理资源103)经由文件系统342的第二部分342-2直接存取子块大小数据库文件(例如与数据库管理系统(DBMS)相关联的数据、文件元数据、及/或文件系统340的元数据)。举例来说,可通过由处理资源同时执行的程序同时存取多个子块大小数据库文件(例如与DBMS相关联的数据、文件元数据、及/或文件系统340的元数据)。DBMS(例如NoSQL、SQLite、基于云端的DBMS、或其它合适DBMS)可为在用户空间334中执行的数据库系统程序及/或应用程序。DBMS可允许终端用户建立、读取、更新及/或删除与计算系统300的部分相关联的数据库中的数据。
图4说明根据本发明的若干实施例的包含中央处理单元(CPU)452的计算系统450的一部分的示意图。主存储器409及存储系统404可类似于如结合图1描述的主存储器109及存储系统104。
如图4中说明,CPU 452经由I/O存取路径471耦合到计算系统450的部分的其它组件(例如,主存储器409、无线电458、外围组件460及/或存储系统404)。可由混合式接口(例如,混合式接口340)提供I/O存取路径471,主机102可经由所述混合式接口耦合到存储系统404,如本文中描述。I/O存取路径可支持块级存储I/O存取请求及子块级存储I/O存取请求两者,其可由文件系统管理使得子块级存储存取请求可在尚未汇总以传送到存储系统/从存储系统传送的情况下被服务。I/O存取路径471可包含:系统总线,其连接计算系统的主要组件,从而组合数据总线的功能以传递数据;地址总线,其用以确定数据的目的地;及控制总线,其用以确定与数据相关联的操作。
无线电组件458可为计算系统450的部分的收发器。作为实例,收发器可为包含计算系统450的部分的传输器及接收器两者的装置。计算系统450的部分可利用无线电组件458与其它装置无线地通信。
外围组件460(例如,外围I/O装置)可包含可执行以将信息放入计算系统(例如,计算系统450的部分)中且从所述计算系统获取信息的指令。作为实例,外围组件460可包含计算系统450的各种组件,例如输入设备(例如,鼠标及/或键盘)、输出装置(例如,监测器及/或打印机)及/或存储装置(例如,硬盘机(HDD)及/或固态硬盘(SDD))。此外,其它计算系统(例如数字手表、智能电话及/或平板计算机)还可包含允许所述装置用作外围装置的特定接口。外围组件460还可为容置于计算系统的主要容器内的集成外围装置。作为实例,与作为(举例来说)膝上型计算机及/或桌上型计算机的外部外围装置的键盘、鼠标及/或打印机相比,移动装置的数字相机可为集成外围装置。
外围组件460(例如,集成外围装置)可进一步包含图像信号处理器(ISP),可利用所述图像信号处理器来执行各种操作,包含色彩校正操作(例如缺陷校正)、去马赛克(色彩内插)、白平衡、色彩调整、用于亮度及/或对比度增强的伽玛调整、色彩转换、及/或减少取样。包含图像信号处理器的外围组件460可包含计算装置的数字相机(例如,移动装置的数字相机)。
主存储器409可为可用于存储与计算系统450的部分的操作相关联的一或多页数据的易失性存储器(例如RAM、DRAM、SRAM等)。实施例不限于易失性存储器;然而,且除易失性存储器以外或代替易失性存储器,主存储器还可包含非易失性存储器。
在一些方法中,主存储器可充当中间装置,通过所述中间装置传送请求、数据、及/或指令。作为实例,可将从存储系统检索的数据及/或指令集复制到主存储器使得例如CPU452的处理资源可从主存储器存取数据及/或指令集。作为另一实例,子块大小数据请求可在执行之前在主存储器处缓冲,使得子块大小数据请求可汇总到块大小数据请求。在这些方法中,请求、数据及/或指令的传送可能引起可使主存储器处于压力下的额外操作。特定来说,移动系统的主存储器的资源可能相对稀少且施加到主存储器的压力可能引起与操作移动系统相关联的严重延时。
相应地,在若干实施例中,主存储器409可通过在计算系统(例如,移动系统)的装置之间直接传送请求、数据及/或指令且未通过主存储器409传送数据而卸除执行额外操作的负担,如下文进一步描述。
举例来说,CPU 452可从存储系统404(例如,其的具有子块级可存取性的存储器资源)直接执行对应于子块大小数据请求的数据集。换句话说,相对于其中将指令集复制到主存储器且CPU从主存储器存取指令集的所述方法,CPU 452可经配置以在未首先将指令集传送到主存储器的情况下从(例如,存储系统404的)具有子块级可存取性的存储器资源执行指令集。
举例来说,可在未通过主存储器传送与DMA相关联的数据的情况下执行直接存储器存取(DMA)传送。如本文中使用,DMA传送指代独立于CPU(例如,CPU 452)的源装置与目标装置之间的数据传送。通过执行DMA传送,而非由CPU引导的操作,CPU可从引导整个过程无需由CPU供应的操作的负担卸除。在一些方法中,DMA传送已与利用主存储器相关联,使得待在源装置与目标装置(例如,组件458、460及/或462中的一者)之间传送的数据在目标装置处接收之前已通过主存储器传送。
相比之下,混合式接口可经配置以允许来自外围组件460(例如,外围I/O装置)的数据在未首先从外围组件460传送到主存储器409的情况下直接存储到存储系统的存储器资源。换句话说,外围组件460(例如,存储系统404经由I/O存取路径471的总线耦合到其)的处理器(例如,ISP)可经配置以经由混合式接口直接存取存储系统404,使得(举例来说)具有子块级可存取性的存储器资源可由处理器直接存取。
图5说明说明根据本发明的若干实施例的用于操作计算系统(例如,移动系统)的方法570的实例的实例流程图。除非明确规定,否则本文中描述的方法的元件不限于特定顺序或序列。此外,可在相同时间点或在大体上相同时间点执行本文中描述的若干方法实施例或其元件。
在框572,方法570可包含经由处理资源执行指令集,其导致对存储系统的具有特定大小的数据请求。存储系统可分别类似于结合图1、3及/或4描述的存储系统104、304及/或404。存储系统可经由可提供到存储系统的输入/输出(I/O)存取路径的混合式接口耦合到处理资源(例如,如结合图1描述的处理资源103)。I/O存取路径可支持块级存储I/O存取请求及子块级存储I/O存取请求两者,如本文中描述。
在框574,方法570可包含在对存储系统执行对应于数据请求的数据的I/O传送之前,确定数据请求是对应于块级存储I/O存取请求还是子块级存储I/O存取请求。在框576,方法570可包含响应于确定数据请求对应于块级存储I/O存取请求,经由与汇总其大小小于块大小的数据请求相关联的第一文件系统部分管理数据请求。在框578,方法570可包含响应于确定数据请求对应于子块级存储I/O存取请求,经由与防止汇总其大小小于块大小的数据请求相关联的第二文件系统部分管理数据请求。第一文件系统部分及第二文件系统部分可分别类似于文件系统342的第一部分342-1及第二部分342-2,如结合图3描述。在一些实施例中,由第二文件系统部分管理的数据可包含数据库管理系统(DBMS)、文件元数据、及/或文件系统的元数据。
在一些实施例中,方法570可进一步包含在执行指令集之前,通过处理资源直接存取存储指令集的存储系统的存储器资源。方法570可进一步包含在未将所存储指令集传送到移动系统的主存储器的情况下从存储器资源直接执行指令集。
在一些实施例中,存储系统可包含存储多个子块大小数据库文件的存储器资源。在此实例中,方法570可进一步包含通过由处理资源同时执行过程而提供对多个子块大小数据库文件的同时存取。
在一些实施例中,移动系统可包含外围I/O装置(例如,外围组件460)及主存储器。在此实例中,方法570可进一步包含通过允许来自外围(I/O)装置的子块大小数据在未首先从外围I/O装置传送到主存储器的情况下直接存储到具有子块级可存取性的存储系统的存储器资源而执行DMA。如结合图4描述,DMA传送指代独立于处理资源(例如CPU)的源装置与目标装置之间的数据传送。
尽管本文中已说明且描述特定实施例,但所属领域的一般技术人员将明白,经计算以实现相同结果的布置可取代所展示的特定实施例。本发明希望涵盖本发明的一或多个实施例的调适或变化。应了解,已以阐释性方式而非限制性方式进行上文描述。所属领域的一般技术人员在检视上文描述后将明白上述实施例及本文中未明确描述的其它实施例的组合。本发明的一或多个实施例的范围包含其中使用上述结构及方法的其它应用。因此,应参考所附权利要求书以及此类权利要求书所授权的等效物的完整范围来确定本发明的一或多个实施例的范围。
在前述具体实施方式中,为简化本发明的目的,将一些特征在一起群组于单一实施例中。本发明的此方法不应解释为反映本发明的所揭示实施例必须使用比每一权利要求中明确叙述更多的特征的意图。而是,如所附权利要求书反映,本发明目标在于少于单一所揭示实施例的全部特征。因此,以下权利要求书特此并入到具体实施方式中,其中每一权利要求独立作为单独实施例。
Claims (20)
1.一种用于存储器操作的计算系统,其包括:
处理资源;及
存储系统,其经由混合式接口耦合到所述处理资源;
其中所述混合式接口提供到所述存储系统的输入/输出I/O存取路径,其支持块级存储I/O存取请求及子块级存储I/O存取请求两者。
2.根据权利要求1所述的计算系统,其中所述混合式接口包括文件系统,所述文件系统包含:
第一部分,其经配置以管理所述块级存储I/O存取请求;及
第二部分,其经配置以管理所述子块级存储I/O存取请求,其中所述第二部分是具备直接存取能力的文件系统部分。
3.根据权利要求1所述的计算系统,其中所述存储系统是混合式存储器存储系统,其包括:
第一类型的非易失性存储器资源;及
第二类型的非易失性存储器资源;
其中仅所述第一类型及所述第二类型的非易失性存储器资源中的一者支持子块级存储I/O存取请求。
4.根据权利要求1到3中任一权利要求所述的计算系统,其中块级存储I/O请求对应于具有大于主机高速缓存线大小的大小的存储I/O请求,且其中子块级存储I/O请求对应于具有不大于所述主机高速缓存线大小的大小的存储I/O请求。
5.根据权利要求1到3中任一权利要求所述的计算系统,其中所述混合式接口经配置以响应于结合执行应用程序产生的子块大小数据请求而防止所述子块大小数据请求汇总到块大小数据请求以传送到所述存储系统/从所述存储系统传送。
6.根据权利要求1到3中任一权利要求所述的计算系统,其中所述混合式接口经配置以响应于接收到结合执行若干应用程序产生的多个子块大小数据请求而产生相应多个单独子块大小存储I/O存取请求,使得在尚未汇总以传送到所述存储系统/从所述存储系统传送的情况下服务所述相应子块大小数据请求。
7.根据权利要求1到3中任一权利要求所述的计算系统,其中所述存储系统包括存储多个子块大小数据库文件的存储器资源,且其中所述混合式接口经配置以通过由所述处理资源同时执行过程而提供对所述多个子块大小数据库文件的同时存取。
8.根据权利要求1到3中任一权利要求所述的计算系统,其中所述计算系统是移动系统,且其中:
所述存储系统经配置以存储可结合起始相应应用程序而由所述处理资源执行的指令集;且
其中所述混合式接口经配置以响应于起始特定应用程序的请求而在未将所述所存储指令集传送到所述移动系统的主存储器的情况下通过所述处理资源提供对对应于所述请求的所述所存储指令集的直接存取。
9.根据权利要求1到3中任一权利要求所述的计算系统,其进一步包括:
外围I/O装置;及
主存储器;
其中所述外围I/O装置及所述主存储器经由总线耦合到所述处理资源及所述存储系统;且
其中所述混合式接口经配置以允许来自所述外围I/O装置的数据在未首先从所述外围I/O装置传送到所述主存储器的情况下直接存储到所述存储系统的存储器资源。
10.一种用于存储器操作的计算系统,其包括:
存储系统,其包括:
第一存储器资源,其具有块级可存取性;
第二存储器资源,其具有子块级可存取性;
混合式接口,其经配置以管理块级及子块级存储输入/输出I/O存取请求两者;及
处理资源,其经由所述混合式接口耦合到所述存储系统且经配置以:
响应于子块大小数据请求的接收而经由所述混合式接口直接存取所述第二存储器资源;及
从所述第二存储器资源直接执行与所述子块大小数据请求相关联的指令集。
11.根据权利要求10所述的计算系统,其进一步包括经由总线耦合到所述存储系统及所述处理资源的主存储器,其中所述处理资源是中央处理单元CPU,且其中所述处理资源经配置以在未首先将所述指令集传送到所述主存储器的情况下从所述第二存储器资源执行所述指令集。
12.根据权利要求10所述的计算系统,其中所述处理资源是所述存储系统经由总线耦合到的外围I/O装置的处理器。
13.根据权利要求10到12中任一权利要求所述的计算系统,其中所述计算系统是移动系统,且其中所述指令集导致所述CPU启动移动应用程序。
14.根据权利要求10到12中任一权利要求所述的计算系统,其中具有所述块级可存取性的所述第一存储器资源是NAND闪存资源。
15.根据权利要求10到12中任一权利要求所述的计算系统,其中具有所述字节级可存取性的所述第二存储器资源包含新兴非易失性存储器资源。
16.一种用于操作计算系统的方法,其包括:
经由处理资源执行指令集,其导致对存储系统的具有特定大小的数据请求;
其中所述存储系统经由提供到所述存储系统的输入/输出I/O存取路径的混合式接口耦合到所述处理资源,所述I/O存取路径支持块级存储I/O存取请求及子块级存储I/O存取请求两者;
在对所述存储系统执行对应于所述数据请求的所述数据的I/O传送之前,确定所述数据请求是否对应于块级存储I/O存取请求或子块级存储I/O存取请求;
响应于确定所述数据请求对应于块级存储I/O存取请求,经由与汇总其大小小于块大小的数据请求相关联的第一文件系统部分来管理所述数据请求;及
响应于确定所述数据请求对应于子块级存储I/O存取请求,经由与防止汇总其大小小于所述块大小的数据请求相关联的第二文件系统部分来管理所述数据请求。
17.根据权利要求16所述的方法,其中通过所述第二文件系统部分管理的所述数据包含与数据库管理系统DBMS相关联的数据。
18.根据权利要求16所述的方法,其中所述计算系统是移动系统,且其中所述方法进一步包括:
在执行所述指令集之前,通过所述处理资源直接存取存储所述指令集的所述存储系统的存储器资源;及
在未将所述所存储指令集传送到所述移动系统的主存储器的情况下从所述存储器资源直接执行所述指令集。
19.根据权利要求16所述的方法,其中:
所述存储系统包括存储多个子块大小数据库文件的存储器资源;且
所述方法进一步包括通过由所述处理资源同时执行过程而提供对所述多个子块大小数据库文件的同时存取。
20.根据权利要求16所述的方法,其中:
所述计算系统是移动系统,其进一步包括外围输入/输出I/O装置及主存储器;且
所述方法进一步包括通过允许来自所述外围I/O装置的子块大小数据在未首先从所述外围I/O装置传送到所述主存储器的情况下直接存储到具有子块级可存取性的所述存储系统的存储器资源而执行直接存储器存取DMA。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/128,882 US10977198B2 (en) | 2018-09-12 | 2018-09-12 | Hybrid memory system interface |
US16/128,882 | 2018-09-12 | ||
PCT/US2019/046454 WO2020055534A1 (en) | 2018-09-12 | 2019-08-14 | Hybrid memory system interface |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112703481A true CN112703481A (zh) | 2021-04-23 |
CN112703481B CN112703481B (zh) | 2024-08-13 |
Family
ID=69720771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980059561.XA Active CN112703481B (zh) | 2018-09-12 | 2019-08-14 | 混合式存储器系统接口 |
Country Status (7)
Country | Link |
---|---|
US (2) | US10977198B2 (zh) |
EP (1) | EP3850474A4 (zh) |
JP (1) | JP2021536643A (zh) |
KR (1) | KR20210043001A (zh) |
CN (1) | CN112703481B (zh) |
TW (1) | TWI741357B (zh) |
WO (1) | WO2020055534A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022213736A1 (zh) * | 2021-04-08 | 2022-10-13 | 华为技术有限公司 | 一种将数据写入固态硬盘的方法 |
EP4231163A1 (en) * | 2022-02-16 | 2023-08-23 | Infineon Technologies AG | Direct memory access system, system for processing sensor data and method for direct memory access |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5712976A (en) * | 1994-09-08 | 1998-01-27 | International Business Machines Corporation | Video data streamer for simultaneously conveying same one or different ones of data blocks stored in storage node to each of plurality of communication nodes |
US6463507B1 (en) * | 1999-06-25 | 2002-10-08 | International Business Machines Corporation | Layered local cache with lower level cache updating upper and lower level cache directories |
US20100037024A1 (en) * | 2008-08-05 | 2010-02-11 | Convey Computer | Memory interleave for heterogeneous computing |
US20100122031A1 (en) * | 2008-11-13 | 2010-05-13 | International Business Machines Corporation | Spiral cache power management, adaptive sizing and interface operations |
CN102064987A (zh) * | 2010-12-17 | 2011-05-18 | 天津曙光计算机产业有限公司 | 一种混合模式高速前端网络接入处理方法 |
US20120079175A1 (en) * | 2010-09-28 | 2012-03-29 | Fusion-Io, Inc. | Apparatus, system, and method for data transformations within a data storage device |
US20130111182A1 (en) * | 2011-10-26 | 2013-05-02 | International Business Machines Corporation | Storing a small file with a reduced storage and memory footprint |
US20130159726A1 (en) * | 2009-12-22 | 2013-06-20 | Francis X. McKeen | Method and apparatus to provide secure application execution |
US20140359044A1 (en) * | 2009-10-30 | 2014-12-04 | Iii Holdings 2, Llc | Remote memory access functionality in a cluster of data processing nodes |
CN105103144A (zh) * | 2013-03-15 | 2015-11-25 | 美光科技公司 | 用于存储器的自适应控制的设备及方法 |
CN105474319A (zh) * | 2013-08-12 | 2016-04-06 | 美光科技公司 | 用于配置混合存储器模块的存储器的i/o的设备及方法 |
JP2016062406A (ja) * | 2014-09-19 | 2016-04-25 | 国立大学法人 筑波大学 | メモリシステム、メモリシステムの制御方法及びプログラム |
US20160328169A1 (en) * | 2015-05-05 | 2016-11-10 | Sap Se | Managed energy-efficient hybrid main memory systems |
US20160342341A1 (en) * | 2014-02-28 | 2016-11-24 | Hewlett-Packard Development Company, L.P. | Mapping mode shift |
CN106462501A (zh) * | 2014-05-08 | 2017-02-22 | 美光科技公司 | 基于混合存储器立方体系统互连目录的高速缓冲存储器一致性方法 |
US20170206166A1 (en) * | 2016-01-14 | 2017-07-20 | Seagate Technology Llc | Cache bypass utilizing a binary tree |
US20170344506A1 (en) * | 2016-05-25 | 2017-11-30 | Samsung Electronics Co., Ltd. | Qos-aware io management for pcie storage system with reconfigurable multi-ports |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3516963B2 (ja) * | 1993-03-12 | 2004-04-05 | 株式会社東芝 | メモリアクセス制御装置 |
US6128669A (en) * | 1997-09-30 | 2000-10-03 | Compaq Computer Corporation | System having a bridge with distributed burst engine to decouple input/output task from a processor |
US7103357B2 (en) * | 1999-11-05 | 2006-09-05 | Lightsurf Technologies, Inc. | Media spooler system and methodology providing efficient transmission of media content from wireless devices |
US6785767B2 (en) | 2000-12-26 | 2004-08-31 | Intel Corporation | Hybrid mass storage system and method with two different types of storage medium |
US6480939B2 (en) * | 2000-12-29 | 2002-11-12 | Intel Corporation | Method and apparatus for filtering prefetches to provide high prefetch accuracy using less hardware |
JP2003330871A (ja) * | 2002-05-13 | 2003-11-21 | Nec Engineering Ltd | データ転送装置 |
US7376755B2 (en) * | 2002-06-11 | 2008-05-20 | Pandya Ashish A | TCP/IP processor and engine using RDMA |
US20050195975A1 (en) * | 2003-01-21 | 2005-09-08 | Kevin Kawakita | Digital media distribution cryptography using media ticket smart cards |
US7660306B1 (en) * | 2006-01-12 | 2010-02-09 | Chelsio Communications, Inc. | Virtualizing the operation of intelligent network interface circuitry |
US7716411B2 (en) | 2006-06-07 | 2010-05-11 | Microsoft Corporation | Hybrid memory device with single interface |
US8332575B2 (en) * | 2007-06-20 | 2012-12-11 | Samsung Electronics Co., Ltd. | Data management systems, methods and computer program products using a phase-change random access memory for selective data maintenance |
US20090055157A1 (en) * | 2007-08-23 | 2009-02-26 | Beyond Blades Ltd. | Server Having Remotely Manageable Emulated Functions |
US8170062B2 (en) * | 2009-04-29 | 2012-05-01 | Intel Corporation | Packetized interface for coupling agents |
US9123409B2 (en) | 2009-06-11 | 2015-09-01 | Micron Technology, Inc. | Memory device for a hierarchical memory architecture |
US8832403B2 (en) * | 2009-11-13 | 2014-09-09 | International Business Machines Corporation | Generation-based memory synchronization in a multiprocessor system with weakly consistent memory accesses |
US8713294B2 (en) * | 2009-11-13 | 2014-04-29 | International Business Machines Corporation | Heap/stack guard pages using a wakeup unit |
US8892844B2 (en) | 2011-03-07 | 2014-11-18 | Micron Technology, Inc. | Methods of accessing memory cells, methods of distributing memory requests, systems, and memory controllers |
US9432298B1 (en) | 2011-12-09 | 2016-08-30 | P4tents1, LLC | System, method, and computer program product for improving memory systems |
US9875204B2 (en) * | 2012-05-18 | 2018-01-23 | Dell Products, Lp | System and method for providing a processing node with input/output functionality provided by an I/O complex switch |
US9602437B1 (en) * | 2012-10-03 | 2017-03-21 | Tracey M. Bernath | System and method for accelerating network applications using an enhanced network interface and massively parallel distributed processing |
KR20150098649A (ko) * | 2012-12-22 | 2015-08-28 | 퀄컴 인코포레이티드 | 비-휘발성 메모리의 이용을 통한 휘발성 메모리의 전력 소비 감소 |
US9910675B2 (en) * | 2013-08-08 | 2018-03-06 | Linear Algebra Technologies Limited | Apparatus, systems, and methods for low power computational imaging |
US9648148B2 (en) * | 2013-12-24 | 2017-05-09 | Intel Corporation | Method, apparatus, and system for QoS within high performance fabrics |
US9460019B2 (en) * | 2014-06-26 | 2016-10-04 | Intel Corporation | Sending packets using optimized PIO write sequences without SFENCEs |
US10685042B2 (en) | 2014-12-22 | 2020-06-16 | Amazon Technologies, Inc. | Identifying join relationships based on transactional access patterns |
US9495303B2 (en) * | 2015-02-03 | 2016-11-15 | Intel Corporation | Fine grained address remapping for virtualization |
WO2016183028A2 (en) * | 2015-05-10 | 2016-11-17 | Apl Software Inc. | Methods and architecture for enhanced computer performance |
US20170060434A1 (en) * | 2015-08-27 | 2017-03-02 | Samsung Electronics Co., Ltd. | Transaction-based hybrid memory module |
EP3353659A4 (en) * | 2015-09-25 | 2019-05-01 | Intel Corporation | SYSTEMS AND METHODS FOR CONTROLLING INPUT / OUTPUT COMPUTER RESOURCES |
US9620201B1 (en) | 2016-04-26 | 2017-04-11 | Sandisk Technologies Llc | Storage system and method for using hybrid blocks with sub-block erase operations |
US10762030B2 (en) * | 2016-05-25 | 2020-09-01 | Samsung Electronics Co., Ltd. | Storage system, method, and apparatus for fast IO on PCIE devices |
US10521118B2 (en) * | 2016-07-13 | 2019-12-31 | Sandisk Technologies Llc | Methods, systems, and computer readable media for write classification and aggregation using host memory buffer (HMB) |
US9927975B2 (en) * | 2016-08-03 | 2018-03-27 | Micron Technology, Inc. | Hybrid memory drives, computer system, and related method for operating a multi-mode hybrid drive |
EP4089531B1 (en) * | 2016-12-31 | 2024-06-26 | Intel Corporation | Systems, methods, and apparatuses for heterogeneous computing |
US10402335B2 (en) * | 2017-03-31 | 2019-09-03 | Intel Corporation | Method and apparatus for persistently caching storage data in a page cache |
US10261708B1 (en) * | 2017-04-26 | 2019-04-16 | EMC IP Holding Company LLC | Host data replication allocating single memory buffers to store multiple buffers of received host data and to internally process the received host data |
US11379411B2 (en) * | 2019-01-07 | 2022-07-05 | Vast Data Ltd. | System and method for replicating file systems in remote object storages |
CN113490835A (zh) * | 2019-02-25 | 2021-10-08 | 御眼视觉技术有限公司 | 用于车辆导航的系统和方法 |
US11127167B2 (en) * | 2019-04-29 | 2021-09-21 | Nvidia Corporation | Efficient matrix format suitable for neural networks |
CN117053814A (zh) * | 2020-03-30 | 2023-11-14 | 御眼视觉技术有限公司 | 使用电子地平线导航交通工具 |
US20220027379A1 (en) * | 2020-07-21 | 2022-01-27 | Observe, Inc. | Data capture and visualization system providing temporal data relationships |
-
2018
- 2018-09-12 US US16/128,882 patent/US10977198B2/en active Active
-
2019
- 2019-08-14 EP EP19859606.6A patent/EP3850474A4/en active Pending
- 2019-08-14 CN CN201980059561.XA patent/CN112703481B/zh active Active
- 2019-08-14 JP JP2021513846A patent/JP2021536643A/ja not_active Ceased
- 2019-08-14 KR KR1020217010374A patent/KR20210043001A/ko not_active Application Discontinuation
- 2019-08-14 WO PCT/US2019/046454 patent/WO2020055534A1/en unknown
- 2019-08-30 TW TW108131228A patent/TWI741357B/zh active
-
2021
- 2021-03-04 US US17/192,602 patent/US11835992B2/en active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5712976A (en) * | 1994-09-08 | 1998-01-27 | International Business Machines Corporation | Video data streamer for simultaneously conveying same one or different ones of data blocks stored in storage node to each of plurality of communication nodes |
US6463507B1 (en) * | 1999-06-25 | 2002-10-08 | International Business Machines Corporation | Layered local cache with lower level cache updating upper and lower level cache directories |
US20100037024A1 (en) * | 2008-08-05 | 2010-02-11 | Convey Computer | Memory interleave for heterogeneous computing |
US20100122031A1 (en) * | 2008-11-13 | 2010-05-13 | International Business Machines Corporation | Spiral cache power management, adaptive sizing and interface operations |
US20140359044A1 (en) * | 2009-10-30 | 2014-12-04 | Iii Holdings 2, Llc | Remote memory access functionality in a cluster of data processing nodes |
US20130159726A1 (en) * | 2009-12-22 | 2013-06-20 | Francis X. McKeen | Method and apparatus to provide secure application execution |
US20120079175A1 (en) * | 2010-09-28 | 2012-03-29 | Fusion-Io, Inc. | Apparatus, system, and method for data transformations within a data storage device |
CN102064987A (zh) * | 2010-12-17 | 2011-05-18 | 天津曙光计算机产业有限公司 | 一种混合模式高速前端网络接入处理方法 |
US20130111182A1 (en) * | 2011-10-26 | 2013-05-02 | International Business Machines Corporation | Storing a small file with a reduced storage and memory footprint |
CN105103144A (zh) * | 2013-03-15 | 2015-11-25 | 美光科技公司 | 用于存储器的自适应控制的设备及方法 |
CN105474319A (zh) * | 2013-08-12 | 2016-04-06 | 美光科技公司 | 用于配置混合存储器模块的存储器的i/o的设备及方法 |
US20160342341A1 (en) * | 2014-02-28 | 2016-11-24 | Hewlett-Packard Development Company, L.P. | Mapping mode shift |
CN106462501A (zh) * | 2014-05-08 | 2017-02-22 | 美光科技公司 | 基于混合存储器立方体系统互连目录的高速缓冲存储器一致性方法 |
JP2016062406A (ja) * | 2014-09-19 | 2016-04-25 | 国立大学法人 筑波大学 | メモリシステム、メモリシステムの制御方法及びプログラム |
US20160328169A1 (en) * | 2015-05-05 | 2016-11-10 | Sap Se | Managed energy-efficient hybrid main memory systems |
US20170206166A1 (en) * | 2016-01-14 | 2017-07-20 | Seagate Technology Llc | Cache bypass utilizing a binary tree |
US20170344506A1 (en) * | 2016-05-25 | 2017-11-30 | Samsung Electronics Co., Ltd. | Qos-aware io management for pcie storage system with reconfigurable multi-ports |
Also Published As
Publication number | Publication date |
---|---|
EP3850474A4 (en) | 2022-06-29 |
JP2021536643A (ja) | 2021-12-27 |
KR20210043001A (ko) | 2021-04-20 |
US20210191887A1 (en) | 2021-06-24 |
US10977198B2 (en) | 2021-04-13 |
EP3850474A1 (en) | 2021-07-21 |
US20200081853A1 (en) | 2020-03-12 |
WO2020055534A1 (en) | 2020-03-19 |
TW202030594A (zh) | 2020-08-16 |
US11835992B2 (en) | 2023-12-05 |
TWI741357B (zh) | 2021-10-01 |
CN112703481B (zh) | 2024-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3647932B1 (en) | Storage device processing stream data, system including the same, and operation method thereof | |
WO2016082196A1 (zh) | 文件访问方法、装置及存储设备 | |
TWI764265B (zh) | 用於將資料連結至記憶體命名空間的記憶體系統 | |
TWI696188B (zh) | 混合式記憶體系統 | |
JP2019057151A (ja) | メモリシステムおよび制御方法 | |
US10705747B2 (en) | Latency-based storage in a hybrid memory system | |
US10769074B2 (en) | Computer memory content movement | |
US10459662B1 (en) | Write failure handling for a memory controller to non-volatile memory | |
US20240078187A1 (en) | Per-process re-configurable caches | |
US11151064B2 (en) | Information processing apparatus and storage device access control method | |
US11835992B2 (en) | Hybrid memory system interface | |
KR102443593B1 (ko) | 하이브리드 메모리 시스템 | |
KR20180041037A (ko) | 멀티 코어 솔리드 스테이트 드라이브의 공유 분산 메모리 관리 방법 | |
US20240053917A1 (en) | Storage device, operation method of storage device, and storage system using the same | |
US20230333989A1 (en) | Heterogenous-latency memory optimization | |
US10572382B2 (en) | Method of operating data storage device and method of operating data processing system including the same | |
KR102444562B1 (ko) | 계층적 메모리 시스템 | |
JP7204020B2 (ja) | 制御方法 | |
US11163475B2 (en) | Block input/output (I/O) accesses in the presence of a storage class memory | |
JP2023021450A (ja) | メモリシステム |
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 |