CN113051206A - 桥接电路与计算机系统 - Google Patents

桥接电路与计算机系统 Download PDF

Info

Publication number
CN113051206A
CN113051206A CN202110325479.6A CN202110325479A CN113051206A CN 113051206 A CN113051206 A CN 113051206A CN 202110325479 A CN202110325479 A CN 202110325479A CN 113051206 A CN113051206 A CN 113051206A
Authority
CN
China
Prior art keywords
nvme
tcp
data
circuit
linked list
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
Application number
CN202110325479.6A
Other languages
English (en)
Other versions
CN113051206B (zh
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.)
Via Technologies Inc
Original Assignee
Via Technologies Inc
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
Priority claimed from TW110107558A external-priority patent/TWI774255B/zh
Application filed by Via Technologies Inc filed Critical Via Technologies Inc
Publication of CN113051206A publication Critical patent/CN113051206A/zh
Application granted granted Critical
Publication of CN113051206B publication Critical patent/CN113051206B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/168Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP] specially adapted for link layer protocols, e.g. asynchronous transfer mode [ATM], synchronous optical network [SONET] or point-to-point protocol [PPP]
    • 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 Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Bus Control (AREA)

Abstract

本发明提供一种桥接电路与计算机系统。该桥接电路包含有NVMe装置控制器、网络子系统以及数据转送电路。该NVMe装置控制器用以通过PCIe总线来与计算机主机进行沟通。该网络子系统用以通过网络来与NVMe‑TCP装置进行沟通。该数据转送电路耦接在该NVMe装置控制器与该网络子系统之间,并用以在无须该计算机主机的介入之下,处理有关该NVMe‑TCP装置的数据转送。

Description

桥接电路与计算机系统
技术领域
本发明涉及数据处理,尤其涉及一种可在PCIe-NVMe协议与NVMe-TCP协议之间提供转换的桥接电路与采用此桥接电路的计算机系统。
背景技术
NVMe(Non-Volatile Memory Express)是一种非易失性存储器的主机控制接口规格,专门搭配使用PCIe(Peripheral Component Interconnect Express)总线的快闪存储器装置而设计的通信协议,例如计算机主机可通过PCIe-NVMe协议来将数据写入具有PCIe接口的固态硬盘(solid-state drive,SSD),以及可通过PCIe-NVMe协议来读取具有PCIe接口的固态硬盘中所存储的数据,相较于采用其它输入/输出接口的固态硬盘,具有PCIe接口的固态硬盘可藉由PCIe-NVMe协议而具备更快的读写速度。然而,由于计算机主机需要通过PCIe总线来存取固态硬盘,因此标准的PCIe-NVMe协议无法适用于远端存储设备的数据存取,故近年来出现了NVMe-oF(NVMe-over-Fabrics)方案以支持数据中心的网络存储,其中NVMe-TCP(NVMe-over-TCP)协议可以在现有的网络基础设施上运作,不需要特殊的交换机、路由器与网络卡,因此通过NVMe-TCP协议可简单实现远端存储设备的部署。
然而,对于主机端而言,NVMe-TCP协议本身的复杂度会大幅增加中央处理器的运算负载,此外,为了存取NVMe-TCP装置(例如连接至局域网络的固态硬盘),主机端另需要安装新的驱动程序,由于需要不同的驱动程序来分别处理PCIe-NVMe协议以及NVMe-TCP协议,也必然会增加系统复杂度。
发明内容
因此,本发明的目的之一在于提出一种可在PCIe-NVMe协议与NVMe-TCP协议之间提供转换的桥接电路与采用此桥接电路的计算机系统。
在本发明的一个实施例中,公开一种桥接电路。该桥接电路包含有一NVMe装置控制器、一网络子系统以及一数据转送电路。该NVMe装置控制器用以通过一PCIe总线来与一计算机主机进行沟通。该网络子系统用以通过一网络来与一NVMe-TCP装置进行沟通。该数据转送电路耦接在该NVMe装置控制器与该网络子系统之间,并用以在无须该计算机主机的介入之下,处理有关该NVMe-TCP装置的数据转送。
在本发明的另一个实施例中,公开一种计算机系统。该计算机系统包含有一计算机主机以及一桥接电路。该桥接电路包含有一NVMe装置控制器、一网络子系统以及一数据转送电路。该NVMe装置控制器用以通过一PCIe总线来与该计算机主机进行沟通。该网络子系统用以通过一网络来与一NVMe-TCP装置进行沟通。该数据转送电路耦接在该NVMe装置控制器与该网络子系统之间,并用以处理有关该NVMe-TCP装置的数据转送。该桥接电路会让该NVMe-TCP装置被该计算机主机视为一PCIe-NVMe装置来进行存取。
在本发明的另一个实施例中,公开一种计算机系统。该计算机系统包含有一计算机主机以及一桥接电路。该桥接电路包含有一NVMe装置控制器、一网络子系统以及一数据转送电路。该NVMe装置控制器用以通过一PCIe总线来与该计算机主机进行沟通。该网络子系统用以通过一网络来与一NVMe-TCP装置进行沟通。该数据转送电路耦接在该NVMe装置控制器与该网络子系统之间,并用以处理有关该NVMe-TCP装置的数据转送。该计算机主机载入并执行PCIe-NVMe驱动程序来控制该计算机主机与该NVMe装置控制器之间的沟通,且无须具备NVMe-TCP驱动程序。
本发明所揭示的桥接电路可将NVMe-TCP的处理自主机端处理器卸载出来,因而大幅降低主机端处理器的运算负载,另外,主机端处理器仅需执行PCIe-NVMe驱动程序即可藉由本发明所揭示的桥接电路来完成NVMe-TCP装置的数据存取,无须安装并执行NVMe-TCP驱动程序,故可降低系统复杂度。
附图说明
图1为本发明采用桥接电路的计算机系统的示意图。
图2为根据本发明一实施例的桥接电路的示意图。
图3为根据本发明一实施例的NVMe装置控制器的示意图。
图4为根据本发明一实施例的数据转送电路的示意图。
图5为根据本发明一实施例的网络子系统的示意图。
【符号说明】
100:计算机系统
102:计算机主机
103:PCIe总线
104:PCIe接口卡
105:网络
106:NVMe-TCP装置
112:中央处理器
114:系统存储装置
116:提交队列
118:完成队列
122,200:桥接电路
124:本地存储装置
132:非易失性存储器
201:芯片
202,300:NVMe装置控制器
204,400:数据转送电路
206,500:网络子系统
302:PCIe控制器
304:主机控制器
306:提交队列处理电路
308:完成队列处理电路
310:存储地址处理电路
312,314,316,318:功能区块
402:数据存取电路
404,406,408:存储元件
410:查找表
412,414:链接串列
502:卸载引擎
504:NVMe-TCP控制器
具体实施方式
图1为本发明采用桥接电路的计算机系统的示意图。计算机系统100包含计算机主机102、PCIe接口卡104以及至少一NVMe-TCP装置106,为了简洁起见,图1仅绘示出一个NVMe-TCP装置106,然而,在实际应用时,计算机系统100可根据应用需求而设置多个NVMe-TCP装置106。计算机主机102包含中央处理器112与系统存储装置114,例如系统存储装置114可以是存储器。另外,系统存储装置114中设置有提交队列(submission queue,SQ)116与完成队列(completion queue,CQ)118,其中提交队列116用以存储计算机主机102所发出的命令,而完成队列118会与提交队列116配对,用来存储该命令的完成信息。PCIe接口卡104上设置有桥接电路122与可供桥接电路122使用的本地存储装置124,例如本地存储装置124可以是存储器。PCIe接口卡104可安装在计算机主机102上的PCIe插槽,因此,桥接电路122便可通过PCIe总线103来跟计算机主机102进行沟通。本实施例中,桥接电路122与NVMe-TCP装置106均连接至网络105,例如网络105为局域网络。NVMe-TCP装置106包含非易失性存储器132,例如NVMe-TCP装置106为采用NVMe-TCP协议的固态硬盘。本实施例中,桥接电路122可在PCIe-NVMe协议与NVMe-TCP协议之间提供转换,换句话说,桥接电路122通过PCIe-NVMe协议来跟计算机主机102沟通,并通过NVMe-TCP协议来跟NVMe-TCP装置106进行沟通,因此,计算机主机102本身无须处理NVMe-TCP协议堆迭(stack),故计算机主机102仅需载入并执行PCIe-NVMe驱动程序DRV_NVMe来控制计算机主机102与桥接电路122之间的沟通,实际上无须具备NVMe-TCP驱动程序,进一步来说,桥接电路104可让NVMe-TCP装置106被计算机主机102视为PCIe-NVMe装置来进行存取。
图2为根据本发明一实施例的桥接电路的示意图。图1所示的桥接电路122可由图2所示的桥接电路200来实现。如图2所示,桥接电路200包含NVMe装置控制器202、数据转送电路204以及网络子系统206。本实施例中,NVMe装置控制器202、数据转送电路204以及网络子系统206均设置在同一芯片201中。NVMe装置控制器202用以通过PCIe总线103来与计算机主机102进行沟通。网络子系统206用以通过网络(例如局域网络)105来与NVMe-TCP装置106进行沟通。数据转送电路204具备直接存储器存取(direct memory access,DMA)的能力,并耦接在NVMe装置控制器202与网络子系统206之间,用以在无须计算机主机102的介入之下,处理有关NVMe-TCP装置106的数据转送(包含通过NVMe装置控制器202与网络子系统206来将计算机主机102的数据转送至NVMe-TCP装置106中的非易失性存储器132,以及通过NVMe装置控制器202与网络子系统206来将NVMe-TCP装置106的非易失性存储器132所存储的数据转送至计算机主机102)。
图3为根据本发明一实施例的NVMe装置控制器的示意图。图2所示的NVMe装置控制器202可由图3所示的NVMe装置控制器300来实现。如图3所示,NVMe装置控制器300包含PCIe控制器302、主机控制器304、提交队列处理电路306、完成队列处理电路308以及存储地址处理电路310。PCIe控制器302用以存取PCIe总线103。主机控制器304包含多个功能区块,其中功能区块(标示为DNTRFC)312用以控制PCIe总线103的下行数据处理(downstreamtransaction),功能区块(标示为UPTRFC)314用以控制PCIe总线103的上行数据处理(upstream transaction),功能区块(标示为PCIe_cfg)316包含有暂存器以存储PCIe配置设定,以及功能区块(标示为NVMe_cfg)318包含有暂存器以存储NVMe配置设定。
提交队列处理电路306用以读取并处理计算机主机102的提交队列116中的命令(例如写入命令或读取命令),例如,当计算机主机102将命令(例如写入命令或读取命令)写入提交队列116之后,计算机主机102会通知NVMe装置控制器300,而提交队列处理电路306后续便会将此命令(例如写入命令或读取命令)自提交队列116中提取出来。完成队列处理电路308用以将该命令(例如写入命令或读取命令)的完成信息写入计算机主机102的完成队列118中,例如,当数据转送电路204已经将写入命令所指示的主机端数据传送至NVMe-TCP装置106中的非易失性存储器132,则完成队列处理电路308会将此写入命令的完成信息写入至完成队列118中;同样地,当数据转送电路204已经将读取命令所指示的装置端数据传送至主机装置102中的系统存储装置114,则完成队列处理电路308会将此读取命令的完成信息写入至完成队列118中。
存储地址处理电路310用以提取该命令(例如写入命令或读取命令)所附带的存储地址信息,并可根据该存储地址信息来设定数据转送电路204,例如该存储地址信息会指定系统存储装置114中的存储地址,当提交队列116中所要处理的命令是写入命令时,要被写入至NVMe-TCP装置106中非易失性存储器132的主机端数据会位于该存储地址信息所指定的存储地址,另外,当提交队列116中所要处理的命令是读取命令时,要从NVMe-TCP装置106中非易失性存储器132读取出来的装置端数据会写入至该存储地址信息所指定的存储地址。本实施例中,该存储地址信息可利用分散聚合表(Scatter Gather List,SGL)的数据结构来记录,然而,本发明并不以此为限,在其它实施例中,该存储地址信息也可利用物理区域页(Physical Region Page,PRP)的数据结构来记录。由于NVMe命令(例如写入命令或读取命令)所附带的该存储地址信息会指定系统存储装置114中的存储地址,因此,存储地址处理电路310可据此来设定数据转送电路204,以使数据转送电路204可正确处理有关NVMe-TCP装置106的数据转送操作。
图4为根据本发明一实施例的数据转送电路的示意图。图2所示的数据转送电路204可由图4所示的数据转送电路400来实现。如图4所示,数据转送电路400包含数据存取电路402与多个存储元件(例如存储器)404、406、408。存储元件406用以存储一链接串列(linked list)412,其中链接串列412中的每一节点会记录系统存储装置114中的一存储地址,例如链接串列412的多个节点分别记录系统存储装置114中的多个存储地址ADDR_A1、ADDR_A2、ADDR_A3、ADDR_A4。存储元件408则用以存储另一链接串列414,其中链接串列414中的每一节点会记录本地存储装置124中的一存储地址,例如链接串列414的多个节点分别记录本地存储装置124中的多个存储地址ADDR_B1、ADDR_B2、ADDR_B3、ADDR_B4。存储元件404则用以存储一查找表410,其中查找表410会记录链接串列412中第一节点(本实施例为记录存储地址ADDR_A1的节点)在存储元件406中的存储地址PTR_1以及链接串列414中第一节点(本实施例为记录存储地址ADDR_B1的节点)在存储元件408中的存储地址PTR_2。数据存取电路402用以依据查找表410来读取链接串列412及链接串列414,以处理计算机主机102与NVMe-TCP装置106之间的数据转送操作。
当计算机主机102将NVMe命令(例如写入命令或读取命令)写入至提交队列116,该NVMe命令会具有相对应的NVMe命令识别码HID,此外,通过网络105,桥接电路122会藉由TCP连线识别码(TCP session ID)SID来与NVMe-TCP装置106进行沟通,并会基于该PCIe-NVMe命令来产生并传送NVMe-TCP命令(例如写入命令或读取命令)至NVMe-TCP装置106,而该NVMe-TCP命令同样会具有相对应的命令识别码CID,本实施例中,NVMe命令识别码HID会绑定相对应的一对TCP连线识别码SID与NVMe-TCP命令识别码CID来作为查找表410的索引,如图4所示,查找表410会将一组NVMe命令识别码HID、TCP连线识别码SID与NVMe-TCP命令识别码CID映射至链接串列412中第一节点在存储元件406中的存储地址PTR_1以及链接串列414中第一节点在存储元件408中的存储地址,因此,数据存取电路402便可依据该组NVMe命令识别码HID、TCP连线识别码SID与NVMe-TCP命令识别码CID来自查找表410读取出有关链接串列起始点的指标(包含链接串列412中第一节点在存储元件406中的存储地址PTR_1以及链接串列414中第一节点在存储元件408中的存储地址PTR_2)。
根据计算机主机102所发出的NVMe命令(例如写入命令或读取命令),数据存取电路402可以参照所要存取的命名空间(namespace)来决定网络105上哪个NVMe-TCP装置要被存取,假若所要存取的是NVMe-TCP装置106,则数据存取电路402会将桥接电路122与NVMe-TCP装置106之间的TCP连线跟NVMe-TCP装置106的命名空间进行绑定,而当桥接电路122将NVMe-TCP命令传送至NVMe-TCP装置106时,数据存取电路402便会建立对照表410并根据存储地址处理电路310所提供的信息(亦即NVMe命令所附带的存储地址信息)来设定存储元件406中的链接串列412与存储元件408中的链接串列414。
假如计算机主机102所发出的NVMe命令是写入命令,则数据存取电路402依据链接串列412中第一节点在存储元件406中的存储地址PTR_1来开始读取链接串列412所记录的存储地址ADDR_A1~ADDR_A4,以从系统存储装置114读取一笔数据(从存储地址ADDR_A1~ADDR_A4读取),并依据链接串列414中第一节点在存储元件408中的存储地址PTR_2来开始读取链接串列414所记录的存储地址ADDR_B1~ADDR_B4,来将该笔数据写入至本地存储装置124(写入至存储地址ADDR_B1~ADDR_B4)。之后,数据存取电路402再依据链接串列414中第一节点在存储元件408中的存储地址PTR_2来开始读取链接串列414所记录的存储地址ADDR_B1~ADDR_B4,以自本地存储装置124读取该笔数据(从存储地址ADDR_B1~ADDR_B4读取),并通过网络子系统206来将该笔数据传送至NVMe-TCP装置106以写入至非易失性存储器132。
假如计算机主机102所发出的NVMe命令是读取命令,则网络子系统206会自NVMe-TCP装置106接收一笔数据,另外,数据存取电路402便依据链接串列414中第一节点在存储元件408中的存储地址PTR_2来开始读取链接串列414所记录的存储地址ADDR_B1~ADDR_B4,以将该笔数据写入至本地存储装置124(写入至存储地址ADDR_B1~ADDR_B4)。之后,数据存取电路402会再依据链接串列414中第一节点在存储元件408中的存储地址PTR_2来开始读取链接串列414所记录的存储地址ADDR_B1~ADDR_B4,以自本地存储装置124读取该笔数据(从存储地址ADDR_B1~ADDR_B4读取),并且会依据链接串列412中第一节点在存储元件406中的存储地址PTR_1来开始读取链接串列412所记录的存储地址ADDR_A1~ADDR_A4,以将该笔数据写入至系统存储装置114(写入至存储地址ADDR_A1~ADDR_A4)。
如前所述,网络子系统206会通过网络(例如局域网络)105来与NVMe-TCP装置106进行沟通,例如,网络子系统206通过网络105来将命令传递至NVMe-TCP装置106、将写入数据传递至NVMe-TCP装置106,以及自NVMe-TCP装置106接收读取数据。图5为根据本发明一实施例的网络子系统的示意图。图2所示的网络子系统206可由图5所示的网络子系统500来实现。如图5所示,网络子系统500包含卸载引擎502以及NVMe-TCP控制器504。卸载引擎502是专门用以处理网络子系统500与NVMe-TCP装置106之间的传输控制协议/互联网协议堆迭(TCP/IP stack)的硬件,因此,桥接电路122/200无须处理器介入传输控制协议/互联网协议堆迭的处理。NVMe-TCP控制器504用以触发数据转送电路204/400来自计算机主机102读取数据以通过卸载引擎502传送至NVMe-TCP装置106,以及触发数据转送电路204/400来将卸载引擎502自NVMe-TCP装置106所接收的数据传送至计算机主机102。另外,NVMe-TCP控制器504也可根据NVMe命令识别码HID来将TCP连线识别码SID与NVMe-TCP命令识别码CID编码至网络分组中,以及另对NVMe-TCP数据(包含写入命令或读取指令)进行编码并加入相对应循环冗余校验(Cyclic Redundancy Check)数据至网络分组;以及NVMe-TCP控制器504也可对网络分组进行解码来得到NVMe-TCP数据(包含写入命令的完成信息或读取命令的完成信息),并根据相对应循环冗余校验数据来进行数据正确性检查与错误更正。
综上所述,本发明所揭示的桥接电路可将NVMe-TCP的处理自主机端处理器卸载出来,因而大幅降低主机端处理器的运算负载,另外,主机端处理器仅需执行PCIe-NVMe驱动程序即可藉由本发明所揭示的桥接电路来完成NVMe-TCP装置的数据存取,无须安装并执行NVMe-TCP驱动程序,故可降低系统复杂度。
以上所述仅为本发明的优选实施例,凡依本发明权利要求书所做的均等变化与修饰,皆应属本发明的涵盖范围。

Claims (13)

1.一种桥接电路,包含有:
NVMe装置控制器,用以通过PCIe总线来与计算机主机进行沟通;
网络子系统,用以通过网络来与NVMe-TCP装置进行沟通;以及
数据转送电路,耦接在该NVMe装置控制器与该网络子系统之间,用以在无须该计算机主机的介入之下,处理有关该NVMe-TCP装置的数据转送。
2.如权利要求1所述的桥接电路,其中该NVMe装置控制器包含有:
PCIe控制器,用以存取该PCIe总线;
主机控制器,耦接在该PCIe控制器,用以控制该PCIe总线的上行数据处理与下行数据处理、NVMe配置设定以及PCIe配置设定;
提交队列处理电路,耦接在该主机控制器,用以读取并处理该计算机主机的提交队列中的命令;
完成队列处理电路,耦接在该主机控制器,用以将该命令的完成信息写入该计算机主机的完成队列中;以及
存储地址处理电路,耦接在该主机控制器,用以提取该命令所附带的存储地址信息,并根据该存储地址信息来设定该数据转送电路。
3.如权利要求1所述的桥接电路,其中该网络子系统包含有:
卸载引擎,用以处理该网络子系统与该NVMe-TCP装置之间的传输控制协议/互联网协议堆迭;以及
NVMe-TCP控制器,用以触发该数据转送电路来自该计算机主机读取数据以通过该卸载引擎传送至该NVMe-TCP装置,以及触发该数据转送电路来将该卸载引擎自该NVMe-TCP装置所接收的数据传送至该计算机主机。
4.如权利要求1所述的桥接电路,其中该数据转送电路包含有:
第一存储元件,用以存储第一链接串列,该第一链接串列中的每一节点记录该计算机主机的系统存储装置中的存储地址;
第二存储元件,用以存储第二链接串列,该第二链接串列中的每一节点记录可供该桥接电路使用的本地存储装置中的存储地址;
第三存储元件,用以存储查找表,该查找表记录该第一链接串列中第一节点在该第一存储元件中的存储地址以及该第二链接串列中第一节点在该第二存储元件中的存储地址;以及
数据存取电路,用以依据该查找表来读取该第一链接串列以及该第二链接串列,以处理该计算机主机与该NVMe-TCP装置之间的数据转送。
5.如权利要求4所述的桥接电路,其中该查找表另记录一组NVMe命令识别码、TCP连线识别码与NVMe-TCP命令识别码映射至该第一链接串列中第一节点在该第一存储元件中的存储地址以及该第二链接串列中第一节点在该第二存储元件中的存储地址;以及该数据存取电路另用以依据该组NVMe命令识别码、TCP连线识别码与NVMe-TCP命令识别码来自该查找表读取出该第一链接串列中第一节点在该第一存储元件中的存储地址以及该第二链接串列中第一节点在该第二存储元件中的存储地址。
6.如权利要求4所述的桥接电路,其中该数据存取电路依据该第一链接串列中第一节点在该第一存储元件中的存储地址来开始读取该第一链接串列,以自该系统存储装置读取一笔数据,并依据该第二链接串列中第一节点在该第二存储元件中的存储地址来开始读取该第二链接串列,以将该笔数据写入至该本地存储装置。
7.如权利要求6所述的桥接电路,其中该数据存取电路另依据该第二链接串列中第一节点在该第二存储元件中的存储地址来开始读取该第二链接串列,以自该本地存储装置读取该笔数据,并通过该网络子系统来将该笔数据传送至该NVMe-TCP装置。
8.如权利要求4所述的桥接电路,其中该网络子系统自该NVMe-TCP装置接收一笔数据;以及该数据存取电路依据该第二链接串列中第一节点在该第二存储元件中的存储地址来开始读取该第二链接串列,以将该笔数据写入至该本地存储装置。
9.如权利要求8所述的桥接电路,其中该数据存取电路另依据该第二链接串列中第一节点在该第二存储元件中的存储地址来开始读取该第二链接串列,以自至该本地存储装置读取该笔数据,并依据该第一链接串列中第一节点在该第一存储元件中的存储地址来开始读取该第一链接串列,以将该笔数据写入至该系统存储装置。
10.如权利要求1所述的桥接电路,其中该NVMe装置控制器、该网络子系统以及该数据转送电路均设置在同一芯片。
11.如权利要求1所述的桥接电路,其中该桥接电路设置在PCIe接口卡。
12.一种计算机系统,包含有:
计算机主机;以及
桥接电路,包含有:
NVMe装置控制器,用以通过PCIe总线来与该计算机主机进行沟通;
网络子系统,用以通过网络来与NVMe-TCP装置进行沟通;以及
数据转送电路,耦接在该NVMe装置控制器与该网络子系统之间,用以处理有关该NVMe-TCP装置的数据转送;
其中该桥接电路会让该NVMe-TCP装置被该计算机主机视为PCIe-NVMe装置来进行存取。
13.一种计算机系统,包含有:
计算机主机;以及
桥接电路,包含有:
NVMe装置控制器,用以通过PCIe总线来与该计算机主机进行沟通;
网络子系统,用以通过网络来与NVMe-TCP装置进行沟通;以及
数据转送电路,耦接在该NVMe装置控制器与该网络子系统之间,用以处理有关该NVMe-TCP装置的数据转送;
其中该计算机主机载入并执行PCIe-NVMe驱动程序来控制该计算机主机与该NVMe装置控制器之间的沟通,且无须具备NVMe-TCP驱动程序。
CN202110325479.6A 2020-05-04 2021-03-26 桥接电路与计算机系统 Active CN113051206B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063019435P 2020-05-04 2020-05-04
US63/019,435 2020-05-04
TW110107558A TWI774255B (zh) 2020-05-04 2021-03-03 橋接電路與電腦系統
TW110107558 2021-03-03

Publications (2)

Publication Number Publication Date
CN113051206A true CN113051206A (zh) 2021-06-29
CN113051206B CN113051206B (zh) 2024-10-18

Family

ID=76515425

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110325479.6A Active CN113051206B (zh) 2020-05-04 2021-03-26 桥接电路与计算机系统

Country Status (2)

Country Link
US (1) US11442882B2 (zh)
CN (1) CN113051206B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104348902A (zh) * 2013-07-23 2015-02-11 英特尔公司 用于在网络输入/输出设备和存储设备之间移动数据的技术
CN106569736A (zh) * 2015-10-10 2017-04-19 北京忆芯科技有限公司 NVMe协议处理器及其处理方法
US10075524B1 (en) * 2015-09-29 2018-09-11 Amazon Technologies, Inc. Storage bridge device for communicating with network storage
CN108733601A (zh) * 2017-04-25 2018-11-02 三星电子株式会社 NVMe-oF以太网SSD中的低延迟直接访问块存储
CN109656473A (zh) * 2017-10-11 2019-04-19 三星电子株式会社 桥接装置及提供接近存储计算的方法
CN110147335A (zh) * 2018-02-09 2019-08-20 三星电子株式会社 用于ssd储存器中nvme命令间关联的系统和方法
CN110941576A (zh) * 2018-09-21 2020-03-31 苏州库瀚信息科技有限公司 具有多模pcie功能的存储控制器的系统、方法和设备

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8572306B2 (en) * 2010-12-02 2013-10-29 Via Technologies, Inc. USB transaction translator and USB transaction translation method
US9785356B2 (en) * 2013-06-26 2017-10-10 Cnex Labs, Inc. NVM express controller for remote access of memory and I/O over ethernet-type networks
US9430268B2 (en) * 2014-05-02 2016-08-30 Cavium, Inc. Systems and methods for supporting migration of virtual machines accessing remote storage devices over network via NVMe controllers
US9990313B2 (en) * 2014-06-19 2018-06-05 Hitachi, Ltd. Storage apparatus and interface apparatus
US10769081B2 (en) * 2016-12-30 2020-09-08 Intel Corporation Computer program product, system, and method to allow a host and a storage device to communicate between different fabrics
US10282094B2 (en) * 2017-03-31 2019-05-07 Samsung Electronics Co., Ltd. Method for aggregated NVME-over-fabrics ESSD
US11086813B1 (en) * 2017-06-02 2021-08-10 Sanmina Corporation Modular non-volatile memory express storage appliance and method therefor
US20190266111A1 (en) 2018-02-27 2019-08-29 Goke Us Research Laboratory Method and apparatus for high speed data processing
US11132133B2 (en) 2018-03-08 2021-09-28 Toshiba Memory Corporation Workload-adaptive overprovisioning in solid state storage drive arrays
US11204819B2 (en) * 2018-12-21 2021-12-21 Samsung Electronics Co., Ltd. System and method for offloading application functions to a device
US11748278B2 (en) * 2019-06-20 2023-09-05 Intel Corporation Multi-protocol support for transactions
US11216696B2 (en) * 2020-02-06 2022-01-04 Western Digital Technologies, Inc. Training data sample selection for use with non-volatile memory and machine learning processor

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104348902A (zh) * 2013-07-23 2015-02-11 英特尔公司 用于在网络输入/输出设备和存储设备之间移动数据的技术
US10075524B1 (en) * 2015-09-29 2018-09-11 Amazon Technologies, Inc. Storage bridge device for communicating with network storage
CN106569736A (zh) * 2015-10-10 2017-04-19 北京忆芯科技有限公司 NVMe协议处理器及其处理方法
CN108733601A (zh) * 2017-04-25 2018-11-02 三星电子株式会社 NVMe-oF以太网SSD中的低延迟直接访问块存储
CN109656473A (zh) * 2017-10-11 2019-04-19 三星电子株式会社 桥接装置及提供接近存储计算的方法
CN110147335A (zh) * 2018-02-09 2019-08-20 三星电子株式会社 用于ssd储存器中nvme命令间关联的系统和方法
CN110941576A (zh) * 2018-09-21 2020-03-31 苏州库瀚信息科技有限公司 具有多模pcie功能的存储控制器的系统、方法和设备

Also Published As

Publication number Publication date
CN113051206B (zh) 2024-10-18
US11442882B2 (en) 2022-09-13
US20210342287A1 (en) 2021-11-04

Similar Documents

Publication Publication Date Title
US7895396B2 (en) Virtual path storage system and control method for the same
US7007142B2 (en) Network data storage-related operations
US6754765B1 (en) Flash memory controller with updateable microcode
US7849242B2 (en) PCI express-compatible controller and interface that provides PCI express functionality and flash memory operations to host device
US11874922B2 (en) System and method for detecting malicious software in NVMe over fabrics devices
WO2007135967A1 (ja) データ記憶装置およびデータ記憶方法
US11726666B2 (en) Network adapter with efficient storage-protocol emulation
JP2017076398A (ja) インタフェイス制御メカニズムを有する電子システム及びその動作方法
US11003614B2 (en) Embedding protocol parameters in data streams between host devices and storage devices
JP2013068992A (ja) メモリ・デバイス、ホスト・デバイス
TWI774255B (zh) 橋接電路與電腦系統
CN113051206B (zh) 桥接电路与计算机系统
CN116486868A (zh) 计算高速链路(CXL)上的高速非易失性存储器(NVMe)
US9331954B2 (en) Functional device, access system, and communication establishing method
CN112579328A (zh) 处理编程出错的方法与存储设备
CN114518838B (zh) 通过PCIe TLP合并的有效PCIe利用
TWI715294B (zh) 基於系統管理匯流排界面對i2c記憶體進行讀寫的方法
EP4394610A1 (en) Computer device, method for processing data, and computer system
US20230236742A1 (en) NONVOLATILE MEMORY EXPRESS (NVMe) OVER COMPUTE EXPRESS LINK (CXL)
CN114816234A (zh) 存取管理的方法、存储器装置、电子装置以及控制器
US7761635B1 (en) Bridge device access system
CN117220861A (zh) 秘钥烧录系统、方法、智能网卡以及可读存储介质
WO2014006731A1 (ja) データバックアップ方法、及びインタフェースカード
JPH1021152A (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