CN109542814A - 通过pci-express的p2p连接在存储设备之间传输数据的方法和系统 - Google Patents

通过pci-express的p2p连接在存储设备之间传输数据的方法和系统 Download PDF

Info

Publication number
CN109542814A
CN109542814A CN201811066376.7A CN201811066376A CN109542814A CN 109542814 A CN109542814 A CN 109542814A CN 201811066376 A CN201811066376 A CN 201811066376A CN 109542814 A CN109542814 A CN 109542814A
Authority
CN
China
Prior art keywords
data
storage equipment
storage
host
speed
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.)
Withdrawn
Application number
CN201811066376.7A
Other languages
English (en)
Inventor
李柱坪
黄住渶
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 CN109542814A publication Critical patent/CN109542814A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • G06F12/127Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • G06F12/1018Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • G06F13/4278Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using an embedded synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

提供一种用于通过外围组件互连‑高速(PCIe)的对等(P2P)连接在存储设备之间传输数据的方法和系统。当第一存储设备从主机接收数据请求时执行的方法包括响应于数据请求经由PCIe连接高速缓存另一存储设备的数据,并且将高速缓存的数据传输到主机。第一存储设备被配置为:将与数据请求一起接收的逻辑地址转换为第二存储设备的存储器区域的物理地址;根据转换后的物理地址将经由PCIe连接从第二存储设备传输的数据存储在第二数据高速缓存中;以及执行用于存储在第二数据高速缓存中的数据的高速缓存替换方案。

Description

通过PCI-EXPRESS的P2P连接在存储设备之间传输数据的方法 和系统
相关申请的交叉引用
本申请要求于2017年9月21日在韩国知识产权局提交的韩国专利申请第10-2017-0121874号的权益,其主题通过引用整体被并入本文。
技术领域
本发明构思涉及在存储系统中的对等设备之间传输数据的存储系统和方法。更具体地,本发明构思涉及能够通过外围组件互连-高速(Peripheral ComponentInterconnect-Express,PCIe)的对等(P2P)连接在存储设备之间传输数据的方法和系统。
背景技术
固态驱动器(Solid State Drive,SSD)是将数据存储在非易失性存储器中的高性能、高速存储设备。与存储设备通信的计算机、以及诸如智能电话和智能平板电脑(smartpad)的各种主机设备(在下文中称为“主机”)的操作速度已经普遍地增加了。此外,包括存储设备和主机的存储系统的内容容量也已经增加了。因此,继续需要以更高的速度操作的存储设备。
发明内容
本发明构思提供一种存储设备之间的数据传输方法以及相关的存储设备和存储系统,该数据传输方法通过经由外围组件互连-高速(PCIe)的对等(P2P)连接提供改进的速度。
一方面,本发明构思提供一种由第一存储设备执行的数据检索方法。该方法包括:从连接到第一存储设备的第一主机接收数据请求;响应于数据请求将存储在第一数据高速缓存中的数据提供给第一主机;响应于数据请求向经由外围组件互连-高速(PCIe)连接而连接到第一存储设备的第二存储设备请求数据传输;将从第二存储设备传输的数据存储在第二数据高速缓存中;将存储在第二数据高速缓存中的数据提供给第一主机;以及更新用于存储在第二数据高速缓存中的数据的高速缓存替换方案。
另一方面,本发明构思提供一种连接到第一主机的第一存储设备,其中第一存储设备包括:第一存储器区域,其包括第一存储器单元;第一数据高速缓存,其被配置为响应于从第一主机接收的输入/输出(Input/Output,I/O)请求,存储从第一存储器区域检索的读取数据;第二数据高速缓存,其被配置为响应于从第一主机接收的I/O请求,存储从包括第二存储器区域并且经由外围组件互连-高速(PCIe)连接而连接到第一存储设备的第二存储设备接收的数据;以及高速缓存替换管理器,其被配置为执行用于存储在第二数据高速缓存中的数据的高速缓存替换方案,其中存储在第一数据高速缓存或第二数据高速缓存中的至少一个中的数据被传输到第一主机。
另一方面,本发明构思提供一种存储系统,其包括:第一主机,其经由第一信道连接到第一存储设备;和第二主机,其经由第二信道连接到第二存储设备,其中第一存储设备和第二存储设备经由外围组件互连-高速(PCIe)连接而连接,并且第一存储设备被配置为:响应于来自第一主机的输入/输出(I/O)请求从第二存储设备接收数据,将接收的数据存储在具有对应的高速缓存替换信息的数据高速缓存中,以及将存储在数据高速缓存中的数据传输到第一主机。
另一方面,本发明构思提供一种操作存储系统的方法,该存储系统包括:第一主机,其连接到第一存储设备;和第二主机,其连接到第二存储设备,其中第一存储设备和第二存储设备经由外围组件互连-高速(PCIe)连接而连接。该方法包括:在第一存储设备中接收由第一主机提供的逻辑地址;参考第一存储设备的第一映射表以确定由逻辑地址标识的数据是否存在于第一存储设备的第一存储器区域中;在确定由逻辑地址标识的数据不存在于第一存储器区域中时,参考第一存储设备的第二映射表以确定由逻辑地址标识的数据是否存在于第二存储设备的第二存储器区域中;在确定由逻辑地址标识的数据存在于第二存储器区域中时,经由PCIe连接从第二存储器区域检索数据,并将数据与对应的高速缓存替换信息一起存储在第一存储设备中,以及将数据从第一个存储设备传输到第一主机。
附图说明
从以下结合附图的详细描述中将更清楚地理解本发明构思的实施例,在附图中:
图1是示出根据本发明构思的实施例的存储系统的框图;
图2是示出根据本发明构思的实施例的存储设备的框图;
图3是用于解释根据本发明构思的实施例的存储设备的操作的图;
图4是概述操作图1的存储系统的方法的流程图;
图5是用于解释根据本发明构思的实施例的操作存储设备的方法的图;
图6A、图6B和图6C是示出根据本发明构思的实施例的根据存储设备的操作的存储系统的性能的各自的曲线图;
图7是示出根据本发明构思的实施例的可应用存储设备的服务器系统的框图;和
图8是示出根据本发明构思的实施例的可应用存储设备的存储群集(storagecluster)的框图。
具体实施方式
图1是示出根据本发明构思的实施例的存储系统100的框图。
参考图1所示的实施例,存储系统100包括分别地经由第一信道131连接到第一存储设备121的第一主机(HOST1)111、经由第二信道132连接到第二存储设备122的第二主机(HOST2)112和经由第三信道133连接第三存储设备123第三主机(HOST3)113。第一存储设备121、第二存储设备122和第三存储设备123被连接到PCIe连接140。
信道131、信道132和信道133可以不同地实施为有线(例如,电缆连接)和/或无线(例如,网络连接的)链路。例如,信道131、信道132和信道133可以是本领域技术人员通常理解的网络。在这一点上,可以使用一个或多个无线链路(例如,私人或公共链路)完全地或部分地实施信道131、信道132和信道133。根据这种无线链路的性质,信道131、信道132和信道133可以使用诸如因特网和万维网的(多个)全球网络、广域网(Wide Area Network,WAN)和/或局域网(Local Area Network,LAN))。
主机111、主机112和主机113中的每一个可以是包括例如个人计算机(PersonalComputer,PC)、服务器计算机、工作站、膝上型计算机、移动电话、智能电话、个人数字助理(Personal Digital Assistant,PDA)、便携式多媒体播放器(Portable MultimediaPlayer,PMP)、数字相机、数字电视、机顶盒、音乐播放器、便携式游戏机以及导航系统中的一个或多个的任意的计算系统。
主机111、主机112和主机113可以发布分别地指向存储设备121、存储设备122和存储设备123的各种(多个)输入/输出(I/O)请求。因此,主机111、主机112和主机113到对应的存储设备121、存储设备122和存储设备123的数据访问(例如,读取、写入(或编程)和/或擦除)基本上是专一的(exclusive)。例如,来自第一主机111的I/O请求可以经由第一信道131仅发布给第一存储设备121。其他存储设备122和存储设备123可以不发布请求指向第一存储设备121的I/O。类似地,来自第二主机112和第三主机113的I/O请求可以分别经由第二信道132和第三信道133发布到对应的第二存储设备122和第三存储设备123。在下文中,为了描述的简洁,从第一主机111向第一存储设备121发布的I/O请求将被假定为“数据请求”,该数据请求识别可以从存储系统100中的任何主机连接做出的类似的I/O请求。
在图1所示的实施例中,存储设备121、存储设备122和存储设备123可以包括非易失性存储器-高速(Non-Volatile Memory-Express,Nvme)固态驱动器(Solid StateDrive,SSD)和/或外围组件互连-高速(Pcie)SSD。Nvme可以是可扩展的主机控制器接口,其被设计为处理使用SSD的企业、数据中心和/或客户端系统的数据处理要求。Nvme可以被用作SSD设备接口,以将存储实体接口提供给主机。
Pcie连接140包括Pcie。并且如本领域技术人员将理解的那样,PCIE是高速-串行计算机扩展总线标准,其被设计为替换外围组件互连(Peripheral ComponentInterconnect,PCI)标准、外围组件互连-扩展(The Peripheral ComponentInterconnect-Extended,PCI-X)标准和加速图形端口(Accelerated Graphics Port,AGP)总线标准中的至少一个。PCIe基于对等(P2P)协议,并且提供更高的最大系统总线吞吐量、减少的I/O引脚数、更小的物理占用(footprint)、更好的总线设备性能扩展(performance-scaling)以及更稳健的错误检测和报告机制。在图1建议的系统架构中,NVMe将处于为PCIeSSD定义最佳的寄存器接口、命令集和特征集,以及通过使用PCIe SSD的功能来标准化PCIeSSD接口的位置。因此,为了本描述的目的,存储设备121、存储设备122和存储设备123可以分别地被认为具有NVMe接口的PCIe SSD。
存储设备121、存储设备122和存储设备123可以经由使用插接(plugging)的PCIe连接140互连。也就是说,PCIe连接140可以包括双向并发传输串行消息交换链路。根据PCIe接口规范的基于分组的通信协议可以由PCIe连接140来实施。例如,PCIe连接140可以优化指定的端点之间的诸如(多个)通道、(多个)链路速度和/或(多个)最大有效载荷大小的链路参数。
如图1进一步所示,可以在第一主机111和第一存储设备121之间建立第一I/O路径200,并且可以经由第一存储设备121,在第一主机111和第二存储设备122之间建立第二I/O路径300。选择图1所示实施例中的第一I/O路径200和第二I/O路径300的表达仅仅是为了更好地描述本发明构思的某些技术方面。可以在存储系统100中的主机和/或存储设备之中定义或建立许多不同的I/O路径。
第一I/O路径200提供第一主机111与第一存储设备121之间的信息传输。这样的“信息传输”(或“传输信息”)可以包括由第一主机111向第一存储设备121发布的一个或多个(多个)I/O请求、来自第一存储设备121的响应于I/O请求的答复以及来自第一存储设备121的响应于I/O请求的数据传输。这里,I/O请求可以包括标识作为I/O请求的主题的数据的一个或多个地址(例如逻辑地址)。因此,信息传输可以发生在从第一主机111经由第一I/O路径200到第一存储设备121的方向上和/或从第一存储设备121到第一主机111的方向上。
因此,第一I/O路径200可以被理解为在由从第一主机111接收(多个)I/O请求并且响应(或解析)接收的(多个)I/O请求的第一存储设备121定义的第一环境中操作。可替代地,第一存储设备121可以被放置在其中第一存储设备121不能够解析从第一主机111接收的(多个)I/O请求的第二环境中。然而,在该第二操作环境中,第一存储设备121可以提供高速缓存解决方案,该高速缓存解决方案能够将高速缓存的数据刷新(flush)到第二存储设备122和第三存储设备123。
例如,在响应于从第一主机111接收的对应的I/O请求而运行的数据检索操作(例如,读取操作)中,可以确定对应的数据(即,由I/O请求提供的地址标识的数据)被存储在(或“存在”于)第二存储设备122中。在这种情况中,第一存储设备121可以建立在图1中显示的、经由PCIe连接140将第一存储设备121与第二存储设备122连接的第二I/O路径300。一旦第二I/O路径300被建立,第二I/O路径300可以经由第一信道131、第一存储设备121和PCIe连接140在第一主机111到第二存储设备122之间传输信息。
图2是进一步示出根据本发明构思的实施例的图1的第一存储设备121的一个示例中的框图。
参考图1和图2,第一存储设备121包括第一映射表210_1、第一数据高速缓存220_1、非-且(Negative-And,NAND)系统230_1、第二映射表240_1、第二数据高速缓存250_1、高速缓存替换管理器260_1和I/O转发逻辑单元270_1。另外,第一存储设备121还可以包括支持网络接口卡的网络接口控制器、网络适配器和/或远程直接存储器访问(Remote DirectMemory Access,RDMA)。
合格的(Competent)RDMA协议可以被用于定义用于数据传输的RDMA消息(例如,发送、写入、读取消息等)。第一存储设备121可以执行某些(多个)管理操作,诸如分配和/或解除分配第一存储设备121的资源。第一存储设备121也可以“公布(Post)”工作请求(WorkRequest,WR)。例如,由第一存储设备121执行的一个管理操作可以包括分配和解除分配队列对(Queue Pair,QP)、分配和解除分配完成队列(Completion Queue,CQ)、和/或分配和解除分配存储器。
第一存储设备121可以分配向其公布WR的QP。QP可以包括工作队列的对(例如,发送/接收),并且还可以包括用于每个队列的公布机制。第一存储设备121可以将WR公布到用于运行公布的WR的工作队列,其中每个工作队列可以是工作队列元素(Work QueueElement,WQE)的列表。WQE可以具有描述WR的一些控制信息,并且可以参考(或指向)在第一存储设备121内提供的缓冲器。由WQE保留的信息可以是例如WR类型和用于传输数据的缓冲区的描述或用于接收的数据的位置信息。
WR的类型可以被分类为发送WR和接收WR,发送WR可以是RDMA发送、RDMA写入、RDMA读取等,接收WR可以是RDMA接收。WQE可以被描述为/对应于单个RDMA消息。当公布RDMA写入类型的发送WR时,第一存储设备121可以通过使用RDMA写入消息在发送队列(Send Queue,SQ)中建立描述其中需要获得数据并从NAND系统230_1收发数据的缓冲器(或第一数据高速缓存210_1)的WQE。作为另一示例,当公布接收WR时,第一存储设备121可以将WQE添加到具有缓冲器(或第二数据高速缓存250_1)的接收队列(Receive Queue,RQ)以被用于布置接收的发送消息的有效载荷。
每当WQE被添加到SQ或RQ时,可以通过门铃响铃操作来通知第一存储设备121。这里,门铃操作可以是写入第一存储设备121的存储器空间并且由第一存储设备121的硬件检测和解码的操作。因此,门铃响铃操作可以通知第一存储设备121存在需要解决的、关于某个SQ/RQ的新工作。
第一映射表210_1可以接收与从第一主机111接收的、用于数据传输的I/O请求一起提供的逻辑地址。第一映射表210_1可以将接收的逻辑地址转换为对应的物理地址,该对应的物理地址标识与第一映射表210_1相关联的NAND系统230_1中将被访问的存储器单元的物理位置。因此,第一映射表210_1可以存储从第一主机111接收的(多个)逻辑地址与NAND系统230_1的对应的(多个)物理地址之间的映射信息。可以通过参考第一映射表210_1的映射信息将逻辑地址转换为物理地址,并且可以将转换后的物理地址提供给NAND系统230_1。NAND系统230_1然后可以访问由(多个)物理地址标识的存储器单元。
第一数据高速缓存220_1可以用于从与物理地址相对应的NAND系统230_1的存储器单元读取数据并存储得到的读取数据。存储在第一数据高速缓存220_1中的读取数据可以经由第一信道131被传输到第一主机111。可替代地,第一数据高速缓存220_1可以存储要被写入到由NAND系统230_1的(多个)物理地址标识的存储器单元的写入数据。因此,第一数据高速缓存220_1可以用作专用于第一存储设备121的数据缓冲器。
作为第一存储设备121的存储器区域的NAND系统230_1可以包括快闪存储阵列,该快闪存储阵列包括NAND快闪存储器单元。说明性地,NAND系统230_1可以被实施为扩展到能够以大规模并行方式通信的结构(fabric)的NVMe-over结构(NVMe-over Fabric,NVMe-oF)。
NAND系统230_1可以在第一数据高速缓存220_1中存储从与转换后的(多个)物理地址相对应的存储器单元检索的读取数据。可替代地,NAND系统230_1可以将存储在第一数据高速缓存220_1中的写入数据写入(或编程)到由转换后的(多个)物理地址标识的存储器单元。
图1中显示的第一I/O路径200可以包括(或能够访问)第一映射表210_1、NAND系统230_1以及桥接到第一数据高速缓存220_1或与第一数据高速缓存220_1相关的路径。第一I/O路径200因此可以满足第一主机111和第一存储设备121之间的请求和响应。
然而,第一存储设备121可能无法解析从第一主机111发布并由第一存储设备121接收的I/O请求是可能的。例如,由第一存储设备121接收的、作为来自第一主机111的I/O请求的一部分的逻辑地址可以标识与第二存储设备122和/或第三存储设备123相关联的物理地址(或与第二存储设备122和/或第三存储设备123相关联的物理地址相关)。在这样的情况中,第一存储设备121可以运行高速缓存解决方案,该高速缓存解决方案使高速缓存的数据能够被刷新到第二存储设备122和/或第三存储设备123。在这一点上,第一存储设备121可以使用第二映射表240_1、第二数据高速缓存250_1、高速缓存替换管理器260_1和I/O转发逻辑270_1来提供改进的数据可用性、性能能力和准备的可扩展性。
第二映射表240_1可以用于将寻址第二存储设备122和第三存储设备123的逻辑地址转换为对应的物理地址,该对应的物理地址标识第二存储设备122和/或第三存储设备123中的NAND系统中将被访问的存储器单元的物理位置。因此,第二映射表240_1可以用于存储来自第一主机111的逻辑地址与对应的第二存储设备122和/或第三存储设备123中的NAND系统的物理地址之间的映射信息。
可以通过参考第二映射表240_1的映射信息将来自第一主机111的逻辑地址转换为第二存储设备122和/或第三存储设备123中的NAND系统的物理地址,并且可以将转换后的物理地址提供给I/O转发逻辑单元270_1。I/O转发逻辑单元270_1可以经由PCIe连接140连接到与来自第一主机111的逻辑地址相对应的第二存储设备122和/或第三存储设备123。
第二数据高速缓存250_1可以响应于来自第一主机111的逻辑地址,根据第二存储设备122和第三存储设备123的访问来存储从对应的第二存储设备122和/或第三存储设备123读取的数据。根据本发明构思的某些实施例,第二数据高速缓存250_1可以存储将被写入到与来自第一主机111的逻辑地址相对应的第二存储设备122和/或第三存储设备123的数据。
在这一点上,第二数据高速缓存250_1可以被理解为基于源自第一主机111的I/O请求执行指向第二存储设备122和/或第三存储设备123的数据的预加载操作,或者被理解为执行从第二存储设备122和/或第三存储设备123检索的、将由第一主机111处理的数据的读取操作。因此,第二数据高速缓存250_1可以用作包括高速缓冲存储器或存储从第二存储设备122和第三存储设备123接收的数据的多个高速缓存行(cache line)的高速缓存。
高速缓存替换管理器260_1可以被用于确定存储在第二数据高速缓存250_1中的数据中的哪个数据将被替换。例如,数据的替换可以以高速缓存行单元或以块单元来执行。
第一主机111尽可能地减少第二数据高速缓存250_1的访问时间是重要的。并且高速缓存替换管理器260_1可以使用高速缓存替换方案来增加与第二数据高速缓存250_1的使用相关联的访问成功率。因此,高速缓存替换方案可以包括最近最少使用(LeastRecently Used,LRU)方法、最不常使用(Least Frequently Used、LFU)方法、随机方法、先进先出(First In First Out,FIFO)方法等。
LRU方法可以替换(或终止)LRU高速缓存行或块。例如,每次访问第二数据高速缓存250-1时,用于有效高速缓存行的LRU位可以被更新。表示最近访问的序列的LRU位可以被用作在发生高速缓存行替换时通知LRU块(或最旧的块)的信息。LFU方法可以替换在已经存储在第二数据高速缓存250_1中之后最少使用的块。随机方法可以选择并替换第二数据高速缓存250_1的任何块。FIFO方法可以替换存储在第二数据高速缓存250_1中的最旧的块。
第二数据高速缓存250_1可以将从第二存储设备122和/或第三存储设备123接收的数据连同高速缓存替换信息一起存储。高速缓存替换信息可以是指示由LRU方法、LFU方法、随机方法和FIFO方法中的任何一个实施的数据替换的信息。
I/O转发逻辑单元270_1可以用于确定第一存储设备121与知道将被填充到第二数据高速缓存250_1的高速缓存行中的数据存在于其中的第二存储设备122和第三存储设备123之间的连接。例如,当根据第二映射表240_1确定来自第一主机111的逻辑地址访问第二存储设备122时,I/O转发逻辑部分270_1可以经由PCIe140为第二存储设备122提供连接性,以便用第二存储设备122的数据填充第二数据高速缓存250_1。
图1中显示的第二I/O路径300可以包括第二映射表240_1、第二数据高速缓存250_1、高速缓存替换管理器260_1、和桥接到I/O转发逻辑单元270_1或与I/O转发逻辑单元270_1相关的路径的部分或全部。将参考图3在一些附加细节中描述第二I/O路径300的建立和使用的一个示例。
图3是进一步示出根据本发明构思的实施例的第一存储设备121和第二存储设备122之间的第二I/O路径300的建立的图。
参考图3,如参考图2所描述,第一存储设备121可以包括第一映射表210_1、第一数据高速缓存220_1、NAND系统230_1、第二映射表240_1、第二数据高速缓存250_1、高速缓存替换管理器260_1和I/O转发逻辑单元270_1。类似于第一存储设备121,第二存储设备122还可以包括第一映射表210_2、第一数据高速缓存220_2、NAND系统230_2、第二映射表240_2、第二数据高速缓存250_2、高速缓存替换管理器260_2和I/O转发逻辑单元270_2。尽管在本实施例中第一存储设备121和第二存储设备122被描述为是相同的类型,但是在其他实施例中,第一存储设备121和第二存储设备122可以是不同的类型。
第一存储设备121可以接收与从第一主机111接收的、关于数据传输的I/O请求一起提供的逻辑地址,并且可以通过参考第二映射表240_1确定来自第一主机111的逻辑地址是否寻址第二存储设备122。第一存储设备121可以使用第二映射表(图3中的240_1)的映射信息来确定与I/O请求一起提供的逻辑地址是否与第二存储设备122的NAND系统230_2的物理地址相对应。
第一存储设备121可以通过使用高速缓存替换管理器260_1确定是否需要从第二存储设备122高速缓存到第二数据高速缓存250_1。当第一存储设备121确定有必要根据来自第一主机111的I/O请求将第二存储设备122的数据高速缓存到第二数据高速缓存250_1时,第一存储设备121可以请求第二存储设备122发送数据。此时,第一存储设备121可以通过使用I/O转发逻辑单元270_1经由PCIe连接140连接到第二存储设备122。
第二存储设备122可以响应于来自第一存储设备121的数据请求,通过参考第一存储设备121的第二映射表240_1的映射信息将来自第一主机111的逻辑地址转换为物理地址,并访问与转换后的物理地址相对应的NAND系统230_2。第二存储设备122可以从与转换后的物理地址相对应的NAND系统230_2的存储器单元读取数据,并将读取的数据写入第一存储设备121的第二数据高速缓存250_1。根据本发明构思的某些实施例,从第二存储设备122的NAND系统230_2读取的数据可以被存储(或缓冲)在第二存储设备122的第一数据高速缓存220_2中。
第一存储设备121可以包括第二映射表240_1、高速缓存替换管理器260_1、I/O转发逻辑单元270_1、PCIe连接140、第二存储设备122的NAND系统230_2和桥接到第二数据高速缓存250_1或与第二数据高速缓存250_1相关联的第二I/O路径。第一存储设备121可以将高速缓存在第二数据高速缓存250_1中的第二存储设备122的数据经由第二I/O路径300传输到第一主机111。
第一存储设备121可以通过使用高速缓存替换管理器260_1确定不需要从第二存储设备122高速缓存到第二数据高速缓存250_1。第一存储设备121可以根据来自第一主机111的I/O请求标识第二存储设备122的数据在第二数据高速缓存250_1的高速缓存行中是否处于有效状态,即“高速缓存命中(cache hit)”。第一存储设备121可以通过第二I/O路径300的部分将第二数据高速缓存250_1(或高速缓存命中)的数据传输到第一主机111。
在图3中,第一存储设备121可以用作提供能够将高速缓存的数据刷新到第二存储设备122以便数据检索的高速缓存解决方案的高速缓存存储设备。另外,第二存储设备122可以用作数据存储设备。
图4是在一个实施例中概述操作图1的存储系统100的方法的流程图。
参考图1、图2、图3和图4,第一主机111经由存储系统100中的第一存储设备121检索数据的方法可以包括由第一存储设备121从主机111接收I/O请求(在下文中,称为“数据请求”)(S410)。可以发布来自第一主机111的数据请求以便存储和检索服务。第一存储设备121可以响应第一主机111以运行接收的数据请求。
第一存储设备121然后可以确定是否存在与接收的数据请求相对应的数据(S420)。第一存储设备121可以使用第一映射表(图2中的210_1)的映射信息来确定与数据请求一起提供的逻辑地址是否与第一存储设备121的NAND系统(图2中的230_1)的物理地址相对应。当来自第一主机111的逻辑地址与第一存储设备121的NAND系统(图2中的230_1)的物理地址相对应时,第一存储设备121可以确定存在与接收的数据请求相对应的数据。当确定在第一存储设备121中存在数据时,操作可以前进到步骤S430。
第一存储设备121可以通过参考第一映射表210_1的映射信息将逻辑地址转换为物理地址,从与转换后的物理地址相对应的NAND系统230_1的存储器单元读取数据,并且将读取的数据存储在第一数据高速缓存(图2中的220_1)中(S430)。第一存储设备121可以关于数据请求通过第一映射表210_1、NAND系统230_1和桥接到第一数据高速缓存220_1或与第一数据高速缓存220_1相关的第一I/O路径(图2中的200)来响应第一主机111。
当作为步骤S420的结果确定在第一存储设备121中不存在数据时,操作可以前进到步骤S440。第一存储设备121可以通过使用第二映射表(图3中的240_1)来确定与数据请求一起提供的逻辑地址是否与第二存储设备122的NAND系统(图3中的230_2)的物理地址相对应(S440)。当来自第一主机111的逻辑地址与第二存储设备122的NAND系统(图2中的230_2)的物理地址相对应时,第一存储设备121可以确定在第二存储设备122中存在与接收的数据请求相对应的数据。
第一存储设备121可以更新高速缓存替换管理器(图3中的260_1)的高速缓存替换方案以便刷新第二存储设备122(S450)。第一存储设备121可以确定存储在第二数据高速缓存(图3中的250_1)中的数据中的哪个数据将被替换。
说明性地,当由LRU方法来实施高速缓存替换方案时,每次第二数据高速缓存(图3中的250_1)被访问时,第一存储设备121可以更新有效高速缓存行的LRU位。当发生第二数据高速缓存250_1的高速缓存行替换时,LRU位可以指示最近访问的序列。根据实施例,高速缓存替换方案可以使用LFU方案、随机方案、FIFO方案等。
第一存储设备121可以根据来自第一主机111的数据请求确定第二存储设备122的数据是否需要被高速缓存到第二数据高速缓存250_1(S460)。当确定有必要高速缓存到第二数据高速缓存250_1时,操作可以前进到步骤S470。
第一存储设备121可以通过使用I/O转发逻辑单元270_1经由PCIe连接140连接到第二存储设备122,并且请求第二存储设备122传输数据(S470)。
第一存储设备121可以通过参考第二映射表240_1的映射信息将逻辑地址转换为物理地址,从与转换后的物理地址相对应的第二存储设备122的NAND系统230_2的存储器单元读取数据,并将读取的数据存储在第二数据高速缓存250_1中(S480)。第一存储设备121可以关于数据请求,通过第二映射表240_1、高速缓存替换管理器260_1、IO转发逻辑单元270_1、PCIe连接140、第二存储设备122的NAND系统230_2和第一数据高速缓存220_2、以及桥接到第一主机111或与第一主机111相关的第二IO路径300响应第一主机。
当在步骤S460中不需要高速缓存到第二数据高速缓存250_1时,操作可以前进到步骤S490。第一存储设备121可以标识根据来自第一主机111的数据请求的第二存储设备122的数据在第二数据高速缓存250_1的高速缓存行中处于有效状态,即,高速缓存命中,并且可以经由信道131利用具有高速缓存命中的第二数据高速缓存250_1的数据响应与数据请求相关的第一主机111。
如图4所描述的第一存储设备121用作高速缓存存储设备的操作的方法可以以以下形式来实现:永久地存储在诸如ROM设备的不可写存储介质上的程序代码,存储在诸如软盘、磁带、光盘(Compact Disc,CD)、RAM设备和/或其他磁性和光学介质的非易失性可记录存储介质上的可改变程序代码,或由计算机经由诸如因特网或电话调制解调器线的像电子网络的通信介质传输的程序代码。
根据实施例,第一存储设备121用作高速缓存存储设备的操作的方法可以被提供为软件可运行介质或计算机程序产品,该软件可运行介质或计算机程序产品被实施为编码以由处理器响应于指令而运行的指令的集合。
根据实施例,第一存储设备121用作高速缓存存储设备的操作的方法可以通过使用专用集成电路(Application Specific Integrated Circuit,ASIC),现场可编程门阵列(Field Programmable Gate Array,FPGA),状态机,控制器或其他硬件设备,或者软件、硬件和固件组件的组合来部分地或完全地实施。
图5是示出根据本发明构思的实施例的第一存储设备121至第五存储设备125的布置和连接的图。
参考图5,第一存储设备121可以接收与从第一主机111接收的、关于数据传输的I/O请求一起提供的逻辑地址。第一存储设备121可以参考将被实施为散列表510的第二映射表240_1,并且将来自第一主机111的逻辑地址转换为第二存储设备122至第五存储设备125的物理地址。
散列表510可以准备相联阵列,使得来自第一主机111的逻辑地址被映射到第二存储设备122至第五存储设备125中的NAND系统的物理地址。散列表510可以具有可直接地访问的、其中通过使用散列函数将索引计算为桶或槽的阵列的表类型的数据结构。第二映射表240_1可以散列来自第一主机111的逻辑地址,并且可以在散列表510中探测从散列函数获得的地址。
当通过参考第二映射表240_1的映射信息将来自第一主机111的逻辑地址转换为物理地址时,第一存储设备121可以向与转换后的物理地址相对应的第二存储设备122至第五存储设备125请求数据传输。
第一存储设备121可以通过使用高速缓存替换管理器260_1确定是否需要从第二存储设备122至第五存储设备125高速缓存到第二数据高速缓存250_1,并且当确定需要高速缓存到第二数据高速缓存250_1时,第一存储设备121可以向第二存储设备122至第五存储设备125请求数据传输。
第二存储设备122可以响应于来自第一存储设备121的数据请求,参考第一存储设备121的第二映射表240_1的映射信息以便访问与转换后的物理地址相对应的NAND系统(图2中的230_2)。第二存储设备122可以从与转换后的物理地址相对应的NAND系统230_2的存储器单元读取数据,并且将读取的数据写入或缓冲到第二存储设备122的第一数据高速缓存220_2。
第三存储设备123至第五存储设备125中的每一个可以响应于来自第一存储设备121的数据请求,参考第一存储设备121的第二映射表240_1的映射信息以便访问与转换后的物理地址相对应的NAND系统。第三存储设备123至第五存储设备125中的每一个可以从与转换后的物理地址相对应的相关存储设备的NAND系统的存储器单元读取数据,并且可以将读取的数据写入到对应的存储设备的第一数据高速缓存220_3至220_5。
说明性地,第一存储设备121可以参考第二映射表240_1以利用存储在第二存储设备122的第一数据高速缓存220_2中的数据1填充第二数据高速缓存250_1的高速缓存行520。高速缓存行520可以是由高速缓存替换管理器(图2中的260_1)的LRU方法、LFU方法、随机方法或FIFO方法选择为需要高速缓存替换的目标高速缓存行。
第一存储设备121可以参考第二映射表240_1以用存储在第三存储设备123的第一数据高速缓存220_3中的数据2来填充第二数据高速缓存250_1的高速缓存行520或替换目标。第一存储设备121可以参考第二映射表240_1以便分别地用存储在第四存储设备124和第五存储设备125的第一数据高速缓存220_4和220_5中的数据3和数据4来填充第二数据高速缓存250_1的高速缓存行520或替换目标。
根据实施例,经由第一存储设备121与第二存储设备122至第五存储设备125之间的连接路径500填充在高速缓存行520中的数据可以被提供为对来自第一主机111的I/O请求的响应。另外,高速缓存策略管理器260_1可以将填充在高速缓存行520中的数据管理为更新的数据。
图6A、图6B和图6C是示出根据本发明构思的实施例的根据第一存储设备121的操作的存储系统100的性能的各自的曲线图。如图6A、图6B和图6C所示,当第一存储设备121用作提供刷新第二存储设备122至第五存储设备125(参考图5)的高速缓存解决方案的高速缓存设备时,根据第一存储设备121中公布的工作队列的数量或者I/O队列深度来确定第一存储设备121的性能。图6A、图6B和图6C的横轴指示第一存储设备121处理来自第一主机111的WR的速率。图6A、图6B和图6C的左纵轴指示在第一存储设备121中每秒处理的I/O操作的数量(I/O operations processed per second,IOPS),并且图6A、图6B和图6C的右纵轴指示在第一存储设备121中处理的I/O操作的延迟。
参考图6A,在第一存储设备121中处理的I/O操作的数量(IOPS)和延迟是针对在第一存储设备121中公布的4的I/O深度而显示的。当由第一存储设备121处理的来自第一主机111的WR的比例高时,或者当第一存储设备121的处理速率说明性地大约为10时,在第一存储设备121中处理的I/O操作的数量(IOPS)可能相对大,大约为51000,并且延迟可能相对短,大约为78μs。
另一方面,当由第一主机111处理的WR的比例低时,或者当第一存储设备121的处理速率说明性地大约为1时,在第一存储设备121中处理的I/O操作的数量(IOPS)可能相对小,大约为47000,并且延迟可能相对长,大约为84μs。
作为这样的实验的结果,当关于在第一存储设备121中公布的4的I/O深度,比较第一存储设备121的大的处理速率和小的处理速率的情况下的I/O操作(IOPS)的数量时,可以理解存在约10%的差异。
参考图6B,在第一存储设备121中处理的I/O操作的数量(IOPS)和延迟是针对在第一存储设备121中公布的8的I/O深度而显示的。当由第一存储设备121处理的来自第一主机111的WR的比例高时,或者当第一存储设备121的处理速率说明性地大约为10时,在第一存储设备121中处理的I/O操作的数量(IOPS)可能相对大,大约为98000,并且延迟可能相对短,大约为80μs。
另一方面,当由第一主机111处理的WR的比例低时,或者当第一存储设备121的处理速率说明性地大约为1时,在第一存储设备121中处理的I/O操作的数量(IOPS)可能相对小,大约为92000,并且延迟可能相对长,大约为88μs。
作为这样的实验的结果,当关于在第一存储设备121中公布的8的I/O深度,比较第一存储设备121的大的处理速率和小的处理速率的情况下的I/O操作(IOPS)的数量时,可以理解存在约10%的差异。
参考图6C,在第一存储设备121中处理的I/O操作的数量(IOPS)和延迟是针对在第一存储设备121中公布的16的I/O深度而显示的。当由第一存储设备121处理的来自第一主机111的WR的比例高时,或者当第一存储设备121的处理速率说明性地大约为10时,在第一存储设备121中处理的I/O操作的数量(IOPS)可能相对大,大约为180000,并且延迟可能相对短,大约为90μs。
另一方面,当由第一主机111处理的WR的比例低时,或者当第一存储设备121的处理速率说明性地大约为1时,在第一存储设备121中处理的I/O操作的数量(IOPS)可能相对小,大约为140000,并且延迟可能相对长,大约为130μs。
作为这样的实验的结果,当关于在第一存储设备121中公布的16的I/O深度,比较第一存储设备121的大的处理速率和小的处理速率的情况下的I/O操作(IOPS)的数量时,可以理解存在约10%的差异。
在图6A、图6B和图6C所示的示例中,可以理解,关于在第一存储设备121中公布的4、8和16的I/O深度,在第一存储设备121的处理速率小时的I/O操作的数量(IOPS)显示出比在第一存储设备121的处理速率大时的I/O操作(IOPS)的数量少约10%的差异。这可以指示即使处理速率由于经由PCIe连接140来高速缓存其他存储设备的数据而降低,存储系统(图1的100)的性能也受影响较小。另外,由于高速缓存的数据的利用率由于高速缓存替换方案关于在第一存储设备121中高速缓存的数据被更新而增加,因此存储系统100的数据传输速度可以被改进。
图7是示出可以将根据本发明构思的实施例的存储设备并入其中的服务器系统700的框图。
参考图7,服务器系统700可以包括多个服务器110_1、110_2、...、110_N,其中“N”是整数。多个服务器110_1、110_2、...、110_N可以被连接到管理器710。多个服务器110_1、110_2、...、110_N可以与图1至图5描述的第一存储设备121相同或相似。接收管理器710的请求的多个服务器110_1、110_2、...、110_N中的任何一个可以响应于管理器710的请求经由PCIe连接140来高速缓存其他服务器的数据、将高速缓存的数据传输到管理器710、以及应用用于高速缓存的数据的高速缓存替换方案。多个服务器110_1、110_2、...、110_N可以通过使用P2P协议彼此通信。
多个服务器110_1、110_2、...、110_N中的每一个可以包括:存储器区域,其包括多个存储器单元;第一数据高速缓存,其响应于来自管理器710的请求存储从存储器区域读取的数据;第二数据高速缓存,其响应于来自管理器710的请求存储将从经由PCIe连接而连接的其他服务器传输的数据;以及高速缓存替换管理器,其执行用于存储在第二数据高速缓存中的数据的高速缓存替换方案,其中存储在第一数据高速缓存或第二数据高速缓存中的数据被传输到管理器710。多个服务器110_1、110_2、...、110_N中的每一个还可以包括第一映射表,其将连同管理器710的请求一起接收的逻辑地址转换为对应的服务器的存储器区域的物理地址;和第二映射表,其将逻辑地址转换为其他服务器的存储器区域的物理地址。
可以取决于以下方法中的任何一个来更新或高速缓存替换存储在第二数据高速缓存中的数据:在每次访问第二数据高速缓存时更新用于有效高速缓存行的LRU位的LRU方法、替换在已经存储在第二数据高速缓存中之后最近最少使用的块的LFU方法、选择并替换第二数据高速缓存中的任意块的随机方法、和替换存储在第二数据高速缓存中的最旧的块的FIFO方法。
图8是示出可以将根据本发明构思的实施例的存储设备并入其中的存储集群800的框图。
参考图8,存储集群800可以被认为是能够快速计算大数据和人工智能(Artificial Intelligence,AI)时代中的大量数据的高性能计算基础设施。存储集群800可以通过大规模集群(large-scale clustering)配置并行计算环境来提高计算性能。取决于存储存储器的量和物理组件的灵活性和可重构(reconfigurable)布置,存储群集800可以提供网络连接的存储或存储区域网络。
存储群集800可以包括由多个服务器系统700_1、700_2、...、700_N实施的数据中心805。多个服务器系统700_1、700_2、...、700_N中的每一个可以与图7中显示的服务器系统700相似或相同。
多个服务器系统700_1、700_2、...、700_N可以经由诸如计算机网络(例如,LAN或WAN)或因特网的网络810与各种存储节点820_1、820_2、...、820_M(其中“M”是整数)通信。根据一些实施例,存储节点820_1、820_2、...、820_M可以不需要彼此有顺序或彼此相邻。例如,存储节点820_1、820_2、...、820_M可以是客户端计算机、其他服务器、远程数据中心和存储系统中的任何一个。
从多个服务器系统700_1、700_2、...、700_N中的存储节点820_1、820_2、...、820_M接收请求的服务器系统中的每一个可以响应于存储节点820_1、820_2、...、820_M的请求,经由PCIe连接140高速缓存其他服务器系统的数据,将高速缓存的数据传输到存储节点820_2、...、820_M,并将高速缓存替换方案应用到高速缓存的数据。多个服务器系统700_1、700_2、...、700_N可以通过使用P2P协议彼此通信。
多个服务器系统700_1、700_2、...、700_N中的每一个可以包括多个服务器。多个服务器中的每一个包括存储器区域,该存储器区域包括多个存储器单元;第一映射表,其将连同存储节点820_1、820_2、...、820_M的请求一起接收的逻辑地址转换为对应的服务器的存储器区域的物理地址;第二映射表,其将逻辑地址转换为其他服务器的存储器区域的物理地址、将逻辑地址转换为另一服务器的存储器区域的物理地址;第一数据高速缓存,其响应于来自存储节点820_1、820_2、...、820_M的请求存储从对应的服务器的存储器区域读取的数据;第二数据高速缓存,其响应于来自存储节点820_1、820_2、...、820_M的请求存储从经由PCIe连接140连接的其他服务器传输的数据;和高速缓存替换管理器,其执行用于存储在第二数据高速缓存中的数据的高速缓存替换方案。存储在第一数据高速缓存或第二数据高速缓存中的数据可以被传输到存储节点820_1、820_2、...、820_M。
尽管已经参考本发明构思的示例实施例具体地显示和描述了本发明构思,但是本领域普通技术人员将理解,在不脱离由以下权利要求限定的本发明构思的范围的情况下,可以在其中进行形式和细节上的各种改变。

Claims (20)

1.一种由第一存储设备执行的数据检索方法,所述方法包括:
从连接到所述第一存储设备的第一主机接收数据请求;
响应于数据请求将存储在第一数据高速缓存中的数据提供给所述第一主机;
响应于数据请求,经由外围组件互连-高速PCIe连接向连接到所述第一存储设备的第二存储设备请求数据传输;
将从所述第二存储设备传输的数据存储在第二数据高速缓存中;
将存储在所述第二数据高速缓存中的数据提供给第一主机;以及
更新用于存储在所述第二数据高速缓存中的数据的高速缓存替换方案。
2.如权利要求1所述的方法,其中,响应于数据请求将存储在所述第一数据高速缓存中的数据提供给所述第一主机包括:
将与数据请求一起接收的逻辑地址转换为所述第一存储设备的存储器区域的物理地址;
从由物理地址标识的存储器区域的存储器单元读取数据;以及
将读取的数据存储在所述第一数据高速缓存中。
3.如权利要求1所述的方法,其中,响应于数据请求向连接到所述第一存储设备的第二存储设备请求数据传输包括:
将与数据请求一起接收的逻辑地址转换为所述第二存储设备的存储器区域的物理地址;以及
经由PCIe连接来连接所述第一存储设备和所述第二存储设备。
4.如权利要求3所述的方法,其中,将从所述第二存储设备传输的数据存储到所述第二数据高速缓存中包括:
从由物理地址标识的所述第二存储设备的存储器区域的存储器单元读取数据;以及
经由PCIe连接将读取的数据存储在所述第一存储设备的第二数据高速缓存中。
5.如权利要求3所述的方法,其中,将从所述第二存储设备传输的数据存储到所述第二数据高速缓存中还包括:
从由物理地址标识的所述第二存储设备的存储器区域的存储器单元读取数据;
将读取的数据存储在所述第二存储设备的第一数据高速缓存中;以及
经由PCIe连接将所述第二存储设备的第一数据高速缓存的数据存储在所述第一存储设备的第二数据高速缓存中。
6.如权利要求1所述的方法,其中,用于存储在所述第二数据高速缓存中的数据的高速缓存替换方案的更新包括执行最近最少使用LRU方法,在所述最近最少使用LRU方法中,每次访问所述第二数据高速缓存时更新用于有效高速缓存行的LRU位。
7.如权利要求1所述的方法,其中,用于存储在所述第二数据高速缓存中的数据的高速缓存替换方案的更新包括执行最少使用LFU方法,在所述最少使用LFU方法中,替换在已经被存储在所述第二数据高速缓存中之后的LFU块。
8.如权利要求1所述的方法,其中,用于存储在所述第二数据高速缓存中的数据的高速缓存替换方案的更新包括执行随机方法,在所述随机方法中,选择并替换所述第二数据高速缓存的任意块。
9.如权利要求1所述的方法,其中,用于存储在所述第二数据高速缓存中的数据的高速缓存替换方案的更新包括执行先进先出FIFO方法,在所述先进先出FIFO方法中,替换在已经被存储在所述第二数据高速缓存中之后的最旧的块。
10.如权利要求1所述的方法,其中使用对等P2P协议经由PCIe连接来执行所述第一存储设备与所述第二存储设备之间的通信。
11.一种连接到第一主机的第一存储设备,所述第一存储设备包括:
第一存储器区域,其包括存储器单元;
第一数据高速缓存,其被配置为响应于从第一主机接收的输入/输出I/O请求,存储从所述第一存储器区域检索的读取数据;
第二数据高速缓存,其被配置为响应于从第一主机接收的I/O请求,存储从包括第二存储器区域并且经由外围组件互连-高速PCIe连接而连接到所述第一存储设备的第二存储设备接收的数据;和
高速缓存替换管理器,其被配置为执行用于存储在所述第二数据高速缓存中的数据的高速缓存替换方案,
其中存储在所述第一数据高速缓存或所述第二数据高速缓存中的至少一个中的数据被传输到第一主机。
12.如权利要求11所述的存储设备,还包括:
第一映射表,其被配置为从第一主机接收与I/O请求一起提供的逻辑地址,并且将逻辑地址转换为所述第一存储器区域的物理地址;和
第二映射表,其被配置为将逻辑地址转换为所述第二存储设备的第二存储器区域的物理地址。
13.如权利要求11所述的存储设备,其中,所述第二映射表被配置为:散列逻辑地址、探测散列表中从散列函数获得的地址、并且将探测的地址转换为物理地址。
14.如权利要求11所述的存储设备,其中,所述高速缓存替换管理器被配置为通过使用LRU方法、LFU方法、随机方法和FIFO方法中的任何一个来替换所述第二数据高速缓存的数据。
15.一种操作存储系统的方法,所述存储系统包括连接到第一存储设备的第一主机和连接到第二存储设备的第二主机,其中所述第一存储设备和所述第二存储设备经由外围组件互连-高速PCIe连接而连接,所述方法包括:
在所述第一存储设备中接收由第一主机提供的逻辑地址;
参考所述第一存储设备的第一映射表以确定由逻辑地址标识的数据是否存在于所述第一存储设备的第一存储器区域中;
在确定由逻辑地址标识的数据不存在于所述第一存储器区域中时,参考所述第一存储设备的第二映射表以确定由逻辑地址标识的数据是否存在于所述第二存储设备的第二存储器区域中;
在确定由逻辑地址标识的数据确实存在于所述第二存储器区域中时,经由PCIe连接从所述第二存储器区域检索数据,并将数据与对应的高速缓存替换信息一起存储在所述第一存储设备中;以及
将数据从所述第一存储设备传输到所述第一主机。
16.如权利要求15所述的方法,其中,所述高速缓存替换信息由LRU方法、LFU方法、随机方法和FIFO方法中的任何一个来实施,并且表示所述数据高速缓存的数据替换。
17.如权利要求15所述的方法,其中,所述第一存储设备和所述第二存储设备使用P2P协议经由PCIe连接彼此通信。
18.如权利要求15所述的方法,其中,所述第一存储设备和所述第二存储设备中的每一个包括PCIe固态驱动器SSD、非易失性存储器-高速NVMe SSD和基于快闪或NAND的介质中的一个。
19.如权利要求15所述的方法,还包括:
使用散列表将逻辑地址转换为所述第二存储器区域的对应的物理地址。
20.如权利要求15所述的方法,还包括:
从第一主机向第一存储设备发布包括逻辑地址的输入/输出I/O请求,其中,参考所述第一存储设备的第一映射表以确定由逻辑地址标识的数据是否存在于所述第一存储设备的第一存储器区域中,参考所述第一存储设备的第二映射表以确定由逻辑地址标识的数据是否存在于所述第二存储设备的第二存储器区域中,经由PCIe连接从所述第二存储器区域检索数据并且将数据与对应的高速缓存替换信息一起存储在所述第一存储设备中,以及响应于I/O请求执行从所述第一存储设备到第一主机的数据传输。
CN201811066376.7A 2017-09-21 2018-09-13 通过pci-express的p2p连接在存储设备之间传输数据的方法和系统 Withdrawn CN109542814A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2017-0121874 2017-09-21
KR1020170121874A KR20190033284A (ko) 2017-09-21 2017-09-21 PCIe P2P 접속된 스토리지 장치들 사이의 데이터 전송 방법 및 시스템

Publications (1)

Publication Number Publication Date
CN109542814A true CN109542814A (zh) 2019-03-29

Family

ID=65720267

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811066376.7A Withdrawn CN109542814A (zh) 2017-09-21 2018-09-13 通过pci-express的p2p连接在存储设备之间传输数据的方法和系统

Country Status (3)

Country Link
US (1) US20190087352A1 (zh)
KR (1) KR20190033284A (zh)
CN (1) CN109542814A (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10733137B2 (en) * 2017-04-25 2020-08-04 Samsung Electronics Co., Ltd. Low latency direct access block storage in NVME-of ethernet SSD
FR3087066B1 (fr) * 2018-10-05 2022-01-14 Commissariat Energie Atomique Methode de transchiffrement a faible latence de calcul
US10585827B1 (en) 2019-02-05 2020-03-10 Liqid Inc. PCIe fabric enabled peer-to-peer communications
CN110209606B (zh) * 2019-04-30 2021-01-22 杭州电子科技大学 一种基于PCIe的多接口存储设备的控制方法
US11750534B2 (en) * 2019-12-27 2023-09-05 Texas Instruments Incorporated Packet storage based on packet properties
US11476928B2 (en) 2020-03-18 2022-10-18 Mellanox Technologies, Ltd. TDMA networking using commodity NIC/switch
US11388263B2 (en) * 2020-10-11 2022-07-12 Mellanox Technologies, Ltd. Packet transmission using scheduled prefetching
US11711158B2 (en) 2021-06-28 2023-07-25 Mellanox Technologies, Ltd. Accurate time-stamping of outbound packets
US20230110067A1 (en) 2021-10-07 2023-04-13 Samsung Electronics Co., Ltd. Systems, methods, and devices for near storage elasticity

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5893144A (en) * 1995-12-22 1999-04-06 Sun Microsystems, Inc. Hybrid NUMA COMA caching system and methods for selecting between the caching modes
CN102576333A (zh) * 2009-10-05 2012-07-11 马维尔国际贸易有限公司 非易失性存储器中的数据高速缓存
US20160127191A1 (en) * 2014-11-03 2016-05-05 Intel Corporation Method, Apparatus And System For Automatically Discovering Nodes And Resources In A Multi-Node System
US20160337426A1 (en) * 2015-05-14 2016-11-17 Hola Networks Ltd. System and Method for Streaming Content from Multiple Servers

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7454592B1 (en) * 2006-02-16 2008-11-18 Symantec Operating Corporation Block-level and hash-based single-instance storage
US20110320720A1 (en) * 2010-06-23 2011-12-29 International Business Machines Corporation Cache Line Replacement In A Symmetric Multiprocessing Computer
US9304690B2 (en) * 2014-05-07 2016-04-05 HGST Netherlands B.V. System and method for peer-to-peer PCIe storage transfers
US10402327B2 (en) * 2016-11-22 2019-09-03 Advanced Micro Devices, Inc. Network-aware cache coherence protocol enhancement

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5893144A (en) * 1995-12-22 1999-04-06 Sun Microsystems, Inc. Hybrid NUMA COMA caching system and methods for selecting between the caching modes
CN102576333A (zh) * 2009-10-05 2012-07-11 马维尔国际贸易有限公司 非易失性存储器中的数据高速缓存
US20160127191A1 (en) * 2014-11-03 2016-05-05 Intel Corporation Method, Apparatus And System For Automatically Discovering Nodes And Resources In A Multi-Node System
US20160337426A1 (en) * 2015-05-14 2016-11-17 Hola Networks Ltd. System and Method for Streaming Content from Multiple Servers

Also Published As

Publication number Publication date
US20190087352A1 (en) 2019-03-21
KR20190033284A (ko) 2019-03-29

Similar Documents

Publication Publication Date Title
CN109542814A (zh) 通过pci-express的p2p连接在存储设备之间传输数据的方法和系统
US11416295B2 (en) Technologies for providing efficient access to data in an edge infrastructure
US11929927B2 (en) Network interface for data transport in heterogeneous computing environments
US20160132541A1 (en) Efficient implementations for mapreduce systems
US10805392B2 (en) Distributed gather/scatter operations across a network of memory nodes
CN109791522A (zh) 数据迁移的方法、系统及智能网卡
KR20110028211A (ko) 자율 메모리 아키텍처
CN112052100B (zh) 基于共享内存的虚拟机通信方法及设备
CN104536702A (zh) 一种存储阵列系统及数据写请求处理方法
WO2022039863A1 (en) Adaptive routing for pooled and tiered data architectures
US20210117131A1 (en) Memory system
US20210329354A1 (en) Telemetry collection technologies
US20210334143A1 (en) System for cooperation of disaggregated computing resources interconnected through optical circuit, and method for cooperation of disaggregated resources
CA3173088A1 (en) Utilizing coherently attached interfaces in a network stack framework
US20210326270A1 (en) Address translation at a target network interface device
CN105045729A (zh) 一种远端代理带目录的缓存一致性处理方法与系统
CN108062279B (zh) 用于处理数据的方法和设备
US10255184B2 (en) Memory access architecture with coherence
US20090132765A1 (en) Dual controller storage apparatus and cache memory mirror method thereof
US20220004330A1 (en) Memory pool data placement technologies
CN111382099A (zh) 一种基于rdma技术的分布式高性能计算方法
US11281612B2 (en) Switch-based inter-device notational data movement system
WO2024098232A1 (en) Adaptive live migration of a virtual machine for a physical storage device controller
US20230195528A1 (en) Method and apparatus to perform workload management in a disaggregated computing system
US20230019974A1 (en) Method and apparatus to detect network idleness in a network device to provide power savings in a data center

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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20190329