CN111488304A - 接口转接电路 - Google Patents
接口转接电路 Download PDFInfo
- Publication number
- CN111488304A CN111488304A CN202010075705.5A CN202010075705A CN111488304A CN 111488304 A CN111488304 A CN 111488304A CN 202010075705 A CN202010075705 A CN 202010075705A CN 111488304 A CN111488304 A CN 111488304A
- Authority
- CN
- China
- Prior art keywords
- data
- storage space
- command
- nvme
- protocol
- 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
- 238000003860 storage Methods 0.000 claims abstract description 124
- 238000012545 processing Methods 0.000 claims abstract description 75
- 238000002360 preparation method Methods 0.000 claims abstract description 16
- 238000012546 transfer Methods 0.000 claims description 8
- 230000002093 peripheral effect Effects 0.000 claims description 3
- 230000007704 transition Effects 0.000 claims 2
- 230000005540 biological transmission Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 239000002699 waste material Substances 0.000 description 5
- 238000000034 method Methods 0.000 description 4
- 230000035484 reaction time Effects 0.000 description 4
- 101150098958 CMD1 gene Proteins 0.000 description 2
- 101100382321 Caenorhabditis elegans cal-1 gene Proteins 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000004519 manufacturing process Methods 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- 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
- 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/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- 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
- 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/0026—PCI express
-
- 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/0042—Universal serial bus [USB]
-
- 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
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)
- Information Transfer Systems (AREA)
Abstract
本发明披露了一种接口转接电路,用来连接一USB接口与一PCIe接口,相较于先前技术能够加速数据存取作业。该接口转接电路包含一UAS协议处理电路、一数据缓冲器、以及一NVMe协议处理电路。该UAS协议处理电路用来经由该USB接口接收一主机的一UAS命令,并依据该UAS命令发送一写入准备完成通知给该主机,以令该主机发送主机数据至该数据缓冲器;该UAS协议处理电路还用来提供该UAS命令给该NVMe协议处理电路。该NVMe协议处理电路用来在收到该UAS命令后,依据该UAS命令产生X个NVMe命令;该NVMe协议处理电路还用来在该主机收到该写入准备完成通知前,经由该PCIe接口开始发送X个新命令提醒给一储存装置,以令该储存装置依据该X个NVMe命令取回该数据缓冲器中的该主机数据。
Description
技术领域
本发明涉及转接电路,尤其涉及接口转接电路。
背景技术
USB(Universal Serial Bus)至PCIe(Peripheral Component InterconnectExpress)接口转接技术须结合UAS(USB Attached SCSI)协议与NVMe(Non-VolatileMemory Express)协议,此二种通讯协议的简述如下:
UAS通讯协议:规范USB主机(例如:个人计算机)与USB装置(在此为USB至PCIe转接电路扮演USB装置)之间的数据交换方式如下:
USB主机(或者UAS发起端口(UAS initiator port))发送一命令信息单元(COMMAND IU)给USB装置;
待USB装置(或UAS目标端口(UAS target port))可以处理指令时,USB装置会回复一写入/读取准备完成通知(WRITE/READ READY IU)给USB主机,从而双方开始交换数据;
等数据交换完成后,USB装置发送状态通知(SENSE IU)给USB主机,以表示完成处理该笔命令信息单元。
NVMe协定:规范NVMe主机(在此为USB至PCIe转接电路扮演NVMe主机)与NVMe控制器(例如:NVMe储存装置中的NVMe控制器)之间的数据交换方式如下:
NVMe主机准备指令,并将指令放入提交队列(Submission Queue)。
NVMe主机更新NVMe控制器的提交队列结尾提醒(Submission Queue TailDoorbell)。
NVMe控制器从NVMe主机的提交队列获取一笔或多笔指令。
NVMe控制器处理其所获取的指令。
NVMe控制器处理完这/这些指令后,将处理结果写回NVMe主机的完成队列(Completion Queue)。
通过INTx(pin-based interrupt)/MSI(message signaled interrupt)/MSI-X,通知NVMe主机这/这些指令已被执行。
NVMe主机处理完成队列内的处理结果。
更新NVMe控制器的完成队列标头提醒(Completion Queue Head Doorbell。
在USB主机写入数据至NVMe储存装置方面,目前的USB至PCIe接口转接技术的数据传输流程是在USB主机开始传输数据给USB至PCIe转接电路时,USB至PCIe转接电路才发出提醒(Doorbell)给NVMe储存装置的NVMe控制器,以令NVMe控制器从USB至PCIe转接电路获取指令并执行所获取的指令。由于目前一般的NVMe控制器在收到提醒(Doorbell)而得知有新的NVMe写入命令须被执行后,需要一段反应时间(介于5μs~50μs)方能开始获取并执行指令(亦即从USB至PCIe转接电路取回USB主机的数据),且在该反应时间的期间,USB至PCIe转接电路可能已备好至少一部分的数据供NVMe控制器存取,因此,若NVMe控制器能提早从USB至PCIe转接电路获取并执行指令,或说NVMe主机在USB主机尚未完成传输第一笔数据至USB至PCIe转接电路前就开始发送提醒给NVMe控制器,就能减少该反应时间所造成的USB传输带宽与PCIe传输带宽的浪费。
发明内容
本发明的一目的在于提供一种接口转接电路,相较于先前技术能够加速数据存取作业,以避免传输带宽的浪费。
本发明的接口转接电路的一实施例用来连接一USB接口与一PCIe接口,包含一UAS协议处理电路、一数据缓冲器、以及一NVMe协议处理电路。该UAS协议处理电路用来经由该USB接口接收一主机的一UAS命令,并依据该UAS命令发送一写入准备完成通知给该主机,以令该主机发送主机数据至一数据缓冲器;该UAS协议处理电路还用来提供该UAS命令给该NVMe协议处理电路。该数据缓冲器用来储存该主机数据。该NVMe协议处理电路用来在收到该UAS命令后,依据该UAS命令产生X个NVMe命令;该NVMe协议处理电路还用来在该主机收到该写入准备完成通知前,经由该PCIe接口开始发送X个新命令提醒给一储存装置,以令该储存装置依据该X个NVMe命令取回该数据缓冲器中的该主机数据,其中该X个NVMe命令分别对应该X个新命令提醒,该X为正整数。
本发明的接口转接电路的另一实施例用来连接一第一接口与一第二接口,包含一第一协议处理电路、一数据缓冲器、以及一第二协议处理电路。该第一协议处理电路用来经由该第一接口接收一第一装置的一第一协议命令,并依据该第一协议命令发送一写入准备完成通知给该第一装置,以令该第一装置发送第一装置数据至一数据缓冲器;该第一协议处理电路还用来提供该第一协议命令给一第二协议处理电路。该数据缓冲器用来储存该第一装置数据。该第二协议处理电路用来在收到该第一协议命令后,依据该第一协议命令产生X个第二协议命令;该第二协议处理电路还用来在该第一装置收到该写入准备完成通知前,经由该第二接口开始发送至少一新命令提醒给一第二装置,以令该第二装置依据该X个第二协议命令取回该数据缓冲器中的该第一装置数据,其中该X为正整数。
有关本发明的特征、实际操作与效果,配合图式作优选实施例详细说明如下。
附图说明
[图1]显示本发明的接口转接电路的一实施例;
[图2]为图1的接口转接电路的通讯的示意图;
[图3a]显示图1的数据缓冲器的一实施例;
[图3b]显示图3a的数据缓冲器的一实际操作范例;
[图4]显示图1的UAS协议处理电路所执行的步骤;
[图5]显示图1的NVMe协议处理电路的一实施例;以及
[图6]显示图5的NVMe命令控制电路所执行的步骤。
具体实施方式
本发明的接口转接电路相较于先前技术能够加速数据存取作业,以避免传输带宽的浪费。
图1显示本发明的接口转接电路的一实施例;图2为图1的接口转接电路100的通讯的示意图。接口转接电路100用来实体地以及电性地连接一第一接口102与一第二接口104,包含一第一协议处理电路110、一数据缓冲器120、以及一第二协议处理电路130。第一协议处理电路110用来经由第一接口102接收一第一装置12的一第一协议命令(CMD IU),并依据该第一协议命令发送一写入准备完成通知(Write Ready IU)给第一装置12,以令第一装置12发送第一装置数据(Host Data)经由第一协议处理电路110至数据缓冲器120;第一协议处理电路110还用来提供该第一协议命令给第二协议处理电路130。数据缓冲器120用来储存该第一装置数据。第二协议处理电路130用来在收到该第一协议命令后,依据该第一协议命令产生X个第二协议命令(例如:分割(split)该第一协议命令以产生多个第二协议命令),其中该X为正整数;第二协议处理电路130还用来在第一装置12收到该写入准备完成通知前,经由第二接口104开始发送至少一新命令提醒(Doorbell)给一第二装置14,以令第二装置14提早依据该X个第二协议命令取回数据缓冲器120中的该第一装置数据,从而减少第二装置14的反应时间所造成的传输带宽的浪费。
承上所述,在一实际操作范例中,每个第二协议命令对应一个新命令提醒,因此该X个第二协议命令分别对应X个新命令提醒;第二协议处理电路130依据一个第二协议命令发送一个新命令提醒给第二装置14,使第二装置14依据该新命令提醒从接口转接电路100获取该第二协议命令并执行,从而取回该第一装置数据的至少一部分(例如:图2的HostData_1/Host Data_2)。在一实际操作范例中,在接口转接电路100与第二装置14之间的通讯协议的支持下,该X个第二协议命令对应M个新命令提醒,该M为不大于X的正整数;因此,一个新命令提醒对应一个或多个第二协议命令。在一实际操作范例中,在第一协议处理电路110发送该写入准备完成通知前,第二协议处理电路130就开始发送该至少一新命令提醒给第二装置14。在一实际操作范例中,第二协议处理电路130在收到该第一协议命令后,无视第一协议处理电路110是否已发送该写入准备完成通知,立即开始发送该至少一新命令提醒给第二装置14。为帮助了解,下面说明中,第一接口102为USB(Universal Serial Bus)接口102、第二接口104为PCIe(Peripheral Component;Interconnect Express)接口104、第一装置12为主机12(例如:个人计算机)、第一装置数据为主机数据、第二装置14为储存装置14(例如:固态硬盘(solid-state drive))、第一协议处理电路110为UAS(USB AttachedSCSI)协议处理电路110、第二协议处理电路130为NVMe(Non-Volatile Memory Express)协议处理电路130、第一协议命令为UAS命令、第二协议命令为NVMe命令;然而,本发明的实施不以此为限。
图3a显示图1的数据缓冲器120的一实施例。图3a的数据缓冲器120包含N个储存空间(Buffer 1~Buffer N),UAS协议处理电路110及NVMe协议处理电路130可判断每个储存空间的使用状态以利用,其中该N为大于一的整数;举例而言,如图3b与下面的表1所示,每个储存空间对应一有效标志(VK,其中K为不大于该N的正整数,因此VK为V1~VN的其中之一)与一传送标志(SK,其中K为不大于该N的正整数,因此SK为S1~SN的其中之一)用来标示该储存空间的使用状态;VK的第一值(例如:0)代表该N个储存空间的一第K个储存空间未储存待存取数据(亦即该主机数据的至少一部分);VK的第二值(例如:1)代表该第K个储存空间已储存待存取数据;SK的第一值(例如:0)代表该第K个储存空间被标示为无存取指示,亦即未关联该X个NVMe命令的任一个或者对应该命令的一新命令提醒已被发送至储存装置14;SK的第二值(例如:1)代表该第K个储存空间被标示为有存取指示,亦即关联该X个NVMe命令的其中之一,且对应该命令的一新命令提醒尚未被发送至储存装置14;该N个储存空间中的X个储存空间分别关联该X个NVMe命令。
表1
VK的值 | SK的值 | 使用状态 |
0 | 0 | 未储存待存取数据、无存取指示 |
0 | 1 | 未储存待存取数据、有存取指示 |
1 | 0 | 已储存待存取数据、无存取指示 |
0 | 0 | 未储存待存取数据、无存取指示 |
请参阅图1~图3b。在一实际操作范例中,UAS协议处理电路110在发送该写入准备完成通知后,执行至少下列步骤(如图4所示)以将该主机数据放入数据缓冲器120:
步骤S410:检查数据缓冲器120的一第K个储存空间是否已储存待存取数据。
步骤S420:当该第K个储存空间未储存待存取数据且该主机数据的数据量不大于该第K个储存空间的储存量,将该主机数据放入该第K个储存空间。
步骤S430:当该第K个储存空间未储存待存取数据且该主机数据的数据量大于该第K个储存空间的储存量,依据一地址顺序将该主机数据放入该第K个储存空间以及接续的一个或多个储存空间(例如:若K=3,该接续的储存空间为第4个储存空间、第5个储存空间…;若K=N,该接续的储存空间为第1个储存空间、第2个储存空间…),直到该主机数据全部被放入数据缓冲器120。在一实际操作范例中,当UAS协议处理电路110将该主机数据的至少一部分放入该第K个储存空间后,UAS协议处理电路110更改该第K个有效标志(VK)的值,以将该第K个储存空间标示为已储存待存取数据。在一实际操作范例中,该地址顺序的一最高位(highest ranking)与一最低位相接(linked),以形成一循环顺序,从而让该N个储存空间被循环使用。
步骤S440:当该第K个储存空间已储存待存取数据,依据该地址顺序检查该第K个储存空间之后的一个或多个储存空间是否已储存待存取数据,直到有至少一个未储存待存取数据的储存空间可用于该主机数据的储存。
步骤S450:在该主机数据全部被放入数据缓冲器120后,UAS协议处理电路110发送一状态通知给USB主机12。在一实际操作范例中,UAS协议处理电路110依据来自储存装置14的一操作完成通知,发送该状态通知给该主机,该操作完成通知详述于后。
图5显示图1的NVMe协议处理电路130的一实施例。图5的NVMe协议处理电路130包含一NVMe命令控制电路(NVMe CMD Ctrl)510、一NVMe直接内存访问控制电路(NVMe DMA)520、以及一NVMe结束控制(NVMe Completion Ctrl)电路530。在一实际操作范例中,NVMe命令控制电路510用来执行至少下列步骤:依据该UAS命令产生该X个NVMe命令(例如:图2的NVMe CMD_1、NVMe CMD_2、…);以及发送该X个新命令提醒给储存装置14,以令储存装置14依据该X个新命令提醒分别从NVMe协议处理电路130获取该X个NVMe命令,再据此以产生X个读取信号。在一实际操作范例中,NVMe命令控制电路510通过执行下列步骤(如图6所示)以令储存装置14产生该X个读取信号:
步骤S610:检查数据缓冲器120的一第K个储存空间是否被标示为无存取指示。
步骤S620:当该第K个储存空间被标示为无存取指示时,令该第K个储存空间关联该X个NVMe命令中的一命令包含该第K个储存空间的地址信息(例如:指标(pointer)),并发送该X个新命令提醒中的一提醒给储存装置14,使得储存装置14依据该提醒获取该命令以产生该X个读取信号中的一信号包含该地址信息,该信号是用来读取该第K个储存空间的数据。在一实际操作范例中,在该第K个储存空间关联该命令后,NVMe命令控制电路510将该第K个储存空间标示为有存取指示。
请参阅图5,在一实际操作范例中,NVMe直接内存访问控制电路520用来依据前述X个读取信号输出数据缓冲器120中的该主机数据至储存装置14。在一实际操作范例中,NVMe结束控制电路530用来在一储存空间中的数据输出至储存装置14后,重设该储存空间的使用状态;举例而言,当前述第K个储存空间中的数据被输出至储存装置14后,NVMe结束控制电路530就将该第K个储存空间标示为未储存待存取数据以及无存取指示。
请参阅图5,在一实际操作范例中,当储存装置14完成执行该X个NVMe命令的每一个后(或说数据缓冲器120中的该主机数据全部输出至储存装置14后),储存装置14会发送一操作完成通知(亦即图2的Write Completion及/或Interrupt)给NVMe协议处理电路110,因此,NVMe结束控制电路530依据该操作完成通知重设数据缓冲器120的至少一部分的使用状态,并发送一使用权释放提醒(Release Doorbell)给储存装置14。举例而言,当储存装置14完成执行关联该第K个储存空间的NVMe命令后,会发送一操作完成通知给NVMe协议处理电路110,接着,NVMe结束控制电路530依据该操作完成通知重设该第K个储存空间的使用状态,并发送一使用权释放提醒给储存装置14,以开始或等待下一次的通讯作业。
由于接口转接电路100为一数字电路,本领域人士能够基于本说明书的披露以及UAS协议与NVMe协议的标准规范来实现接口转接电路100的各电路的数字设计与电路制作,因此,多余的说明在此省略。
请注意,在实施为可能的前提下,本技术领域具有通常知识者可选择性地实施前述任一实施例中部分或全部技术特征,或选择性地实施前述多个实施例中部分或全部技术特征的组合,由此增加本发明实施时的弹性。
综上所述,本发明通过提早发送新命令提醒以加速数据存取作业,从而避免传输带宽的浪费。
虽然本发明的实施例如上所述,然而这些实施例并非用来限定本发明,本技术领域具有通常知识者可依据本发明的明示或隐含的内容对本发明的技术特征施以变化,凡此种种变化均可能属于本发明所寻求的专利保护范畴,换言之,本发明的专利保护范围须视本说明书的权利要求范围所界定者为准。
【符号说明】
100接口转接电路
102第一接口(USB接口)
104第二接口(PCIe接口)
110第一协议处理电路(UAS协议处理电路)
120数据缓冲器
130第二协议处理电路(NVMe协议处理电路)
12第一装置(主机)
14第二装置(储存装置)
CMD IU第一协议命令(UAS命令)
Doorbell新命令提醒
Write Ready IU写入准备完成通知
Host Data第一装置数据(主机数据)
Host Data_1、Host Data_2第一装置数据的一部分(主机数据的一部分)
NVMe CMD_1、NVMe CMD_2NVMe命令
Write Completion/Interrupt操作完成通知
Release Doorbell使用权释放提醒
SENSE IU状态通知
Buffer 1~Buffer N N个储存空间
V1~VN有效标志
S1~SN传送标志
S410~S450步骤
510NVMe CMD Ctrl(NVMe命令控制电路)
520NVMe DMA(NVMe直接内存访问控制电路)
530NVMe Completion Ctrl(NVMe结束控制电路)
S610~S620步骤。
Claims (10)
1.一种接口转接电路,用来连接一通用串行总线USB接口与一外围组件快速互连PCIe接口,该接口转接电路包含:
一UAS协议处理电路,用来经由该USB接口接收一主机的一UAS命令,并依据该UAS命令发送一写入准备完成通知给该主机,以令该主机发送主机数据至一数据缓冲器,该UAS协议处理电路还用来提供该UAS命令给一NVMe协议处理电路;
该数据缓冲器,用来储存该主机数据;以及
该NVMe协议处理电路,用来在收到该UAS命令后,依据该UAS命令产生X个NVMe命令,该NVMe协议处理电路还用来在该主机收到该写入准备完成通知前,经由该PCIe接口开始发送X个新命令提醒给一储存装置,以令该储存装置依据该X个NVMe命令取回该数据缓冲器中的该主机数据,其中该X个NVMe命令分别对应该X个新命令提醒,该X为正整数。
2.根据权利要求1所述的接口转接电路,其中,在该UAS协议处理电路发送该写入准备完成通知前,该NVMe协议处理电路开始发送该X个新命令提醒给该储存装置。
3.根据权利要求1所述的接口转接电路,其中,该数据缓冲器包含N个储存空间,该UAS协议处理电路执行至少下列步骤以将该主机数据放入该数据缓冲器:
检查该数据缓冲器的一第K个储存空间是否已储存待存取数据;
当该第K个储存空间未储存该待存取数据且该主机数据的数据量不大于该第K个储存空间的储存量,将该主机数据放入该第K个储存空间;
当该第K个储存空间未储存该待存取数据且该主机数据的数据量大于该第K个储存空间的储存量,依据一地址顺序将该主机数据放入该第K个储存空间以及接续的一个或多个储存空间,直到该主机数据全部被放入该数据缓冲器;以及
当该第K个储存空间已储存该待存取数据,依据该地址顺序检查该第K个储存空间之后的一个或多个储存空间是否已储存该待存取数据,直到有至少一个未储存该待存取数据的储存空间可用于该主机数据的储存,
其中该N为大于一的整数,该K为不大于该N的正整数。
4.根据权利要求1所述的接口转接电路,其中,该NVMe协议处理电路包含:
一NVMe命令控制电路,用来执行至少下列步骤:
依据该UAS命令产生该X个NVMe命令;以及
发送该X个新命令提醒给该储存装置,以令该储存装置从该NVMe协议处理电路获取该X个NVMe命令并据以产生X个读取信号;
一NVMe直接内存访问控制电路,用来依据该X个读取信号输出该数据缓冲器中的该主机数据至该储存装置;以及
一NVMe结束控制电路,用来在该数据缓冲器中的该主机数据被输出至该储存装置后,重设该数据缓冲器的至少一部分的使用状态。
5.根据权利要求4所述的接口转接电路,其中,该数据缓冲器包含N个储存空间,该NVMe命令控制电路进一步执行下列步骤:
检查该数据缓冲器的一第K个储存空间是否被标示为无存取指示;以及
当该第K个储存空间被标示为无存取指示时,令该第K个储存空间关联该X个NVMe命令中的一第一命令,并发送该X个新命令提醒中的一第一提醒给该储存装置,使得该储存装置获取该第一命令以产生该X个读取信号中的一第一信号,该第一信号是用来读取该第K个储存空间的数据。
6.根据权利要求5所述的接口转接电路,其中,该NVMe结束控制电路依据来自该储存装置的一操作完成通知重设第K个储存空间的使用状态,并发送一使用权释放提醒给该储存装置。
7.一种接口转接电路,用来连接一第一接口与一第二接口,该接口转接电路包含:
一第一协议处理电路,用来经由该第一接口接收一第一装置的一第一协议命令,并依据该第一协议命令发送一写入准备完成通知给该第一装置,以令该第一装置发送第一装置数据至一数据缓冲器,该第一协议处理电路还用来提供该第一协议命令给一第二协议处理电路;
该数据缓冲器,用来储存该第一装置数据;以及
该第二协议处理电路,用来在收到该第一协议命令后,依据该第一协议命令产生X个第二协议命令,该第二协议处理电路还用来在该第一装置收到该写入准备完成通知前,经由该第二接口开始发送至少一新命令提醒给一第二装置,以令该第二装置依据该X个第二协议命令取回该数据缓冲器中的该第一装置数据,其中该X为正整数。
8.根据权利要求7所述的接口转接电路,其中,该数据缓冲器包含N个储存空间,该第一协议处理电路执行至少下列步骤以将该第一装置数据放入该数据缓冲器:
检查该数据缓冲器的一第K个储存空间是否已储存待存取数据;
当该第K个储存空间未储存该待存取数据且该第一装置数据的数据量不大于该第K个储存空间的储存量,将该第一装置数据放入该第K个储存空间;
当该第K个储存空间未储存该待存取数据且该第一装置数据的数据量大于该第K个储存空间的储存量,依据一地址顺序将该第一装置数据放入该第K个储存空间以及接续的一个或多个储存空间,直到该第一装置数据全部被放入该数据缓冲器;以及
当该第K个储存空间已储存该待存取数据,依据该地址顺序检查该第K个储存空间之后的一个或多个储存空间是否已储存待该存取数据,直到有至少一个未储存该待存取数据的储存空间可用于该第一装置数据的储存,
其中该N为大于一的整数,该K为不大于该N的正整数。
9.根据权利要求7所述的接口转接电路,其中,该第二协议处理电路包含:
一第二协议命令控制电路,用来执行至少下列步骤:
依据该第一协议命令产生该X个第二协议命令;
发送该至少一新命令提醒给该第二装置,以令该第二装置从该第二协议处理电路获取该X个第二协议命令并据以产生X个读取信号;
一第二协议直接内存访问控制电路,用来依据该X个读取信号输出该数据缓冲器中的该第一装置数据至该第二装置;以及
一第二协议结束控制电路,用来在该数据缓冲器中的该第一装置数据全部输出至该第二装置后,重设该数据缓冲器的至少一部分的使用状态。
10.根据权利要求9所述的接口转接电路,其中,该数据缓冲器包含N个储存空间,该第二协议命令控制电路进一步执行下列步骤:
检查该数据缓冲器的一第K个储存空间是否被标示为无存取指示;以及
当该第K个储存空间被标示为无存取指示时,令该第K个储存空间关联该X个第二协议命令中的一命令,并发送该至少一新命令提醒的一提醒给该第二装置,使得该第二装置获取该命令并据以产生该X个读取信号中的一信号,该信号是用来读取该第K个储存空间的数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108103173 | 2019-01-28 | ||
TW108103173A TWI700590B (zh) | 2019-01-28 | 2019-01-28 | 介面轉接電路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111488304A true CN111488304A (zh) | 2020-08-04 |
CN111488304B CN111488304B (zh) | 2022-04-15 |
Family
ID=71733776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010075705.5A Active CN111488304B (zh) | 2019-01-28 | 2020-01-22 | 接口转接电路 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11138142B2 (zh) |
CN (1) | CN111488304B (zh) |
TW (1) | TWI700590B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579001A (zh) * | 2020-12-11 | 2021-03-30 | 卓曜(北京)科技有限公司 | 存储装置及数据处理系统 |
CN115643321A (zh) * | 2022-09-29 | 2023-01-24 | 中科驭数(北京)科技有限公司 | 数据处理方法、装置、设备及计算机可读存储介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3116146B1 (fr) * | 2020-11-12 | 2023-12-01 | St Microelectronics Rousset | Procédé de gestion d’une opération de modification du contenu mémorisé d’un dispositif de mémoire, et dispositif de mémoire correspondant |
US11907587B2 (en) * | 2021-06-09 | 2024-02-20 | Western Digital Technologies, Inc. | Managing persistent memory regions across multiple protocols |
TWI831536B (zh) * | 2022-12-22 | 2024-02-01 | 瑞昱半導體股份有限公司 | 在有限的記憶體條件下的轉接器及資料傳輸方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104951402A (zh) * | 2014-03-26 | 2015-09-30 | 三星电子株式会社 | 存储装置及其操作方法和计算系统 |
CN107785044A (zh) * | 2016-08-26 | 2018-03-09 | 闪迪技术有限公司 | 电缓冲nv‑dimm和其使用方法 |
US9946681B1 (en) * | 2015-06-29 | 2018-04-17 | Western Digital Technologies, Inc. | Host configured multi serial interface device |
CN108021334A (zh) * | 2016-10-31 | 2018-05-11 | 三星电子株式会社 | 存储设备及其操作方法 |
US20180335971A1 (en) * | 2017-05-16 | 2018-11-22 | Cisco Technology, Inc. | Configurable virtualized non-volatile memory express storage |
US20180349026A1 (en) * | 2017-03-24 | 2018-12-06 | Western Digital Technologies, Inc. | System and method for adaptive command fetch aggregation |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104111907B (zh) * | 2014-06-27 | 2018-01-02 | 华为技术有限公司 | 一种访问NVMe存储设备的方法和NVMe存储设备 |
US9792048B2 (en) * | 2015-06-22 | 2017-10-17 | Western Digital Technologies, Inc. | Identifying disk drives and processing data access requests |
TWM528476U (zh) * | 2016-04-26 | 2016-09-11 | 宏碁股份有限公司 | 控制裝置及其相關電腦系統 |
KR102573921B1 (ko) * | 2016-09-13 | 2023-09-04 | 삼성전자주식회사 | 바이러스/멀웨어로부터 안전한 저장 장치, 그것을 포함한 컴퓨팅 시스템 및 그것의 방법 |
CN106775504B (zh) * | 2017-03-16 | 2020-06-12 | 北京飞杰信息技术有限公司 | 双控磁盘阵列系统及其数据存取方法 |
CN208384003U (zh) * | 2018-05-03 | 2019-01-15 | 中山市江波龙电子有限公司 | 一种测试装置及系统 |
-
2019
- 2019-01-28 TW TW108103173A patent/TWI700590B/zh active
-
2020
- 2020-01-21 US US16/747,746 patent/US11138142B2/en active Active
- 2020-01-22 CN CN202010075705.5A patent/CN111488304B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104951402A (zh) * | 2014-03-26 | 2015-09-30 | 三星电子株式会社 | 存储装置及其操作方法和计算系统 |
US9946681B1 (en) * | 2015-06-29 | 2018-04-17 | Western Digital Technologies, Inc. | Host configured multi serial interface device |
CN107785044A (zh) * | 2016-08-26 | 2018-03-09 | 闪迪技术有限公司 | 电缓冲nv‑dimm和其使用方法 |
CN108021334A (zh) * | 2016-10-31 | 2018-05-11 | 三星电子株式会社 | 存储设备及其操作方法 |
US20180349026A1 (en) * | 2017-03-24 | 2018-12-06 | Western Digital Technologies, Inc. | System and method for adaptive command fetch aggregation |
US20180335971A1 (en) * | 2017-05-16 | 2018-11-22 | Cisco Technology, Inc. | Configurable virtualized non-volatile memory express storage |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579001A (zh) * | 2020-12-11 | 2021-03-30 | 卓曜(北京)科技有限公司 | 存储装置及数据处理系统 |
CN112579001B (zh) * | 2020-12-11 | 2024-05-24 | 卓曜(北京)科技有限公司 | 存储装置及数据处理系统 |
CN115643321A (zh) * | 2022-09-29 | 2023-01-24 | 中科驭数(北京)科技有限公司 | 数据处理方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
TW202029000A (zh) | 2020-08-01 |
US11138142B2 (en) | 2021-10-05 |
US20200242069A1 (en) | 2020-07-30 |
TWI700590B (zh) | 2020-08-01 |
CN111488304B (zh) | 2022-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111488304B (zh) | 接口转接电路 | |
US10969983B2 (en) | Method for implementing NVME over fabrics, terminal, server, and system | |
US20170249281A1 (en) | Techniques for Use of Vendor Defined Messages to Execute a Command to Access a Storage Device | |
CN112579509B (zh) | 单线通讯方法、装置、电子设备及可读存储介质 | |
US10866736B2 (en) | Memory controller and data processing circuit with improved system efficiency | |
JP2008059554A (ja) | システム管理バス実装のためのプロトコル埋め込み方法 | |
CN105468548B (zh) | 串行外围接口的通信 | |
US20200278806A1 (en) | Universal flash storage memory module, controller and electronic device with advanced turbo write buffer and method for operating the memory module | |
CN111488303B (zh) | 接口转接电路 | |
KR101662729B1 (ko) | 시리얼 인터페이스 프로토콜을 사용하여 호스트와 인터페이스하는 비휘발성 메모리 기반 저장 장치의 커맨드 처리 방법 및 상기 방법을 수행하기 위한 메모리 컨트롤러 | |
US8458367B2 (en) | Method and device for handling SMBus messages | |
JP4001511B2 (ja) | Icカード及びその制御方法 | |
KR20180081236A (ko) | 데이터 저장 장치 및 그것을 포함하는 데이터 처리 시스템 | |
US11144305B2 (en) | Method for updating IC firmware | |
US10095643B2 (en) | Direct memory access control device for at least one computing unit having a working memory | |
CN111831214B (zh) | 输入输出延迟最佳化的方法、应用其的系统及存储器装置 | |
CN116340217A (zh) | 数据处理方法及相关装置 | |
CN106919487B (zh) | NVMe门铃处理方法及其装置 | |
CN107526686B (zh) | 数据处理电路与数据处理方法 | |
CN107957969B (zh) | 判定设备连接状态及设备类型的方法 | |
CN117435534B (zh) | 基于外围总线的数据传输电路、方法及处理器 | |
US20050144331A1 (en) | On-chip serialized peripheral bus system and operating method thereof | |
TWI799258B (zh) | 處理程式語言函數的裝置及方法 | |
CN112613081B (zh) | 一种存储芯片序列码生成方法、装置、电子设备及存储介质 | |
CN117472819A (zh) | 基于PXIe的DMA数据传输处理方法、系统及设备 |
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 |