CN111488303A - 接口转接电路 - Google Patents
接口转接电路 Download PDFInfo
- Publication number
- CN111488303A CN111488303A CN202010074683.0A CN202010074683A CN111488303A CN 111488303 A CN111488303 A CN 111488303A CN 202010074683 A CN202010074683 A CN 202010074683A CN 111488303 A CN111488303 A CN 111488303A
- Authority
- CN
- China
- Prior art keywords
- data
- protocol
- command
- commands
- storage
- 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
- 238000012545 processing Methods 0.000 claims abstract description 90
- 238000003860 storage Methods 0.000 claims description 145
- 230000005540 biological transmission Effects 0.000 claims description 11
- 238000002360 preparation method Methods 0.000 claims description 8
- 238000012546 transfer Methods 0.000 claims description 8
- 238000004891 communication Methods 0.000 description 11
- 239000002699 waste material Substances 0.000 description 7
- 238000000034 method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004044 response 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/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/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/387—Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
-
- 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/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
- G06F13/1684—Details of memory controller using multiple buses
-
- 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/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- 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)
- Mathematical Physics (AREA)
- Information Transfer Systems (AREA)
Abstract
一种接口转接电路包含:一第一协议处理电路,接收一第一装置的包含一第一命令与一第二命令的多个第一协议命令,以储存该第一与第二命令于一指令寄存器,该第一协议处理电路分别依据该第一与第二命令输出储存于一数据缓冲器的第一数据与第二数据至该第一装置;该指令寄存器,提供该第一与第二命令给一第二协议处理电路;该数据缓冲器,储存来自一第二装置的该第一与第二数据;以及该第二协议处理电路,依据该第一命令产生X个第二协议命令使该第二装置输出该第一数据至该数据缓冲器,并于该第一协议处理电路完成输出该第一数据至该第一装置前,依据该第二命令产生Y个第二协议命令使该第二装置输出该第二数据至该数据缓冲器。
Description
技术领域
本发明是关于转接电路,尤其是关于接口转接电路。
背景技术
USB(Universal Serial Bus)至PCIe(Peripheral Component InterconnectExpress)接口转接技术须结合UAS(USB Attached SCSI)通信协议与NVMe(Non-VolatileMemory Express)通信协议,此二种通信协议之简述如下:
UAS通信协议:规范USB主机(例如:个人计算机)与USB装置(在此为USB至PCIe转接电路扮演USB装置)之间的数据交换方式如下:
(1)USB主机(或者UAS发起端口(UAS initiator port))发送一命令信息单元(COMMAND IU)给USB装置;
(2)待USB装置(或UAS目标端口(UAS target port))可以处理指令时,USB装置会回复一写入/读取准备完成通知(WRITE/READ READY IU)给USB主机,从而双方开始交换数据;
(3)等数据交换完成后,USB装置发送状态通知(SENSE IU)给USB主机,以表示完成处理该笔命令信息单元。
NVMe通信协议:规范NVMe主机(在此为USB至PCIe转接电路扮演NVMe主机)与NVMe控制器(例如:NVMe储存装置中的NVMe控制器)之间的数据交换方式如下:
(1)NVMe主机准备指令,并将指令放入提交队列(Submission Queue)。
(2)NVMe主机更新NVMe控制器的提交队列结尾提醒(Submission Queue TailDoorbell)。
(3)NVMe控制器从NVMe主机的提交队列获取一笔或多笔指令。
(4)NVMe控制器处理其所获取的指令。
(5)NVMe控制器处理完该/该些指令后,将处理结果写回NVMe主机的完成队列(Completion Queue)。
(6)通过INTx(pin-based interrupt)/MSI(message signaled interrupt)/MSI-X,通知NVMe主机该/该些指令已被执行。
(7)NVMe主机处理完成队列内的处理结果。
(8)更新NVMe控制器的完成队列标头提醒(Completion Queue Head Doorbell。
在USB主机读取NVMe储存装置之数据方面,依据UAS通信协议,USB装置(在此为USB至PCIe转接电路扮演USB装置)须于处理完第一笔读取命令信息单元(READ COMMAND IU)后,才能处理第二笔读取命令信息单元,因此,NVMe主机(在此为USB至PCIe转接电路扮演NVMe主机)是在USB装置发送状态通知以告知USB主机该第一笔读取命令信息单元所要求的数据(后称第一数据)已被输出完毕后,才因应该第二笔读取命令信息单元发送一提醒(后称第二提醒)给NVMe储存装置,以令NVMe储存装置提供该第二笔读取命令信息单元所要求的数据(后称第二数据)给NVMe主机。由于PCIe接口的传输速度高于USB接口,在NVMe储存装置完成输出该第一数据至NVMe主机时,USB装置通常尚未完成输出该第一数据给USB主机,因此,NVMe主机会等上一段时间才会发送该第二提醒给NVMe储存装置,这会造成PCIe传输带宽的浪费。此外,NVMe储存装置在收到该第二提醒后,需要一段反应时间(介于5μs~50μs)方能开始获取NVMe主机中的指令并执行之(亦即输出该第二数据至NVMe主机),因此,在NVMe主机收到该第二数据前,USB装置没有数据可以输出给USB主机而会闲置,这会造成USB传输带宽的浪费。
发明内容
本发明之一目的在于提供一种接口转接电路,相较于现有技术能够加速数据存取操作,以避免传输带宽的浪费。
本发明之接口转接电路的一实施例用来连接一USB接口与一PCIe接口,包含一UAS协议处理电路、一指令寄存器、一数据缓冲器、以及一NVMe协议处理电路。该UAS协议处理电路用来执行至少下列步骤:经由该USB接口接收一主机的包含一第一UAS命令与一第二UAS命令的多个UAS命令,其中该第一UAS命令与该第二UAS命令分别用来读取第一储存数据与第二储存数据;将该多个UAS命令储存于一指令寄存器;依据该第一UAS命令,发送一第一读出准备完成通知给该主机;输出储存于一数据缓冲器的该第一储存数据至该主机,并于完成输出该第一储存数据至该主机后,发送一第一状态通知给该主机;依据该第二UAS命令,发送一第二读出准备完成通知给该主机;以及输出储存于该数据缓冲器的该第二储存数据至该主机,并于完成输出该第二储存数据至该主机后,发送一第二状态通知给该主机。该指令寄存器用来提供该多个UAS命令给该NVMe协议处理电路。该数据缓冲器用来储存来自一储存装置的该第一储存数据与该第二储存数据。该NVMe协议处理电路用来至少执行下列步骤:依据该第一UAS命令产生X个NVMe命令,其中该X为正整数;经由该PCIe接口开始发送X个新命令提醒给该储存装置,以令该储存装置依据该X个NVMe命令输出该第一储存数据经由该NVMe协议处理电路至该数据缓冲器;依据该第二UAS命令产生Y个NVMe命令,其中该Y为正整数;以及于发送该第二读出准备完成通知前,经由该PCIe接口开始发送Y个新命令提醒给该储存装置,以令该储存装置依据该Y个NVMe命令输出该第二储存数据经由该NVMe协议处理电路至该数据缓冲器。
本发明之接口转接电路的另一实施例用来连接一第一接口与一第二接口,包含一第一协议处理电路、一指令寄存器、一数据缓冲器、以及一第二协议处理电路。该第一协议处理电路用来经由该第一接口接收一第一装置的包含一第一命令与一第二命令的多个第一协议命令,以将该多个第一协议命令储存于一指令寄存器,并依据该第一命令与该第二命令分别输出储存于一数据缓冲器的第一数据与第二数据至该第一装置。该指令寄存器用来提供该多个第一协议命令给一第二协议处理电路。该数据缓冲器用来储存来自一第二装置的该第一数据与该第二数据。该第二协议处理电路用来依据该第一命令产生X个第二协议命令使该第二装置输出该第一数据经由该第二协议处理电路至该数据缓冲器,并于该第一协议处理电路通知该第一装置该第一数据已被输出完毕前,依据该第二命令产生Y个第二协议命令使该第二装置输出该第二数据经由该第二协议处理电路至该数据缓冲器,其中该X为正整数,该Y为正整数。
有关本发明的特征、实践与效果,兹配合图式作优选实施例详细说明如下。
附图说明
图1显示本发明之接口转接电路的一实施例;
图2为图1之接口转接电路之通信的示意图;
图3a显示图1之数据缓冲器的一实施例;
图3b显示图3a之数据缓冲器的一实作范例;
图4显示图1之NVMe协议处理电路的一实施例;以及
图5显示图4之NVMe命令控制电路所执行的步骤。
具体实施方式
本发明之接口转接电路相较于现有技术能够加速数据存取操作,以避免传输带宽的浪费。
图1显示本发明之接口转接电路的一实施例;图2为图1之接口转接电路100之通信的示意图。接口转接电路100用来实体地以及电性地连接一第一接口102与一第二接口104,包含一第一协议处理电路110、一指令寄存器120、一数据缓冲器130、以及一第二协议处理电路140。第一协议处理电路110用来经由第一接口102接收一第一装置12的包含一第一命令(CMD IU_1)与一第二命令(CMD IU_2)的多个第一协议命令,并将该多个第一协议命令储存于指令寄存器120,其中该第一命令与该第二命令分别用来读取第一数据(Device Data_1)与第二数据(Device Data_2);第一协议处理电路110另外用来依据该第一命令与该第二命令分别输出储存于数据缓冲器130中的该第一数据与该第二数据至第一装置12。指令寄存器120用来提供该多个第一协议命令给第二协议处理电路140;举例而言,第二协议处理电路140检查指令寄存器120中是否有待处理的一或多个第一协议命令,以获取该/这些第一协议命令。数据缓冲器130用来储存来自第二装置14的该第一数据与该第二数据。第二协议处理电路140用来依据该第一命令产生X个第二协议命令以及依据该第二命令产生Y个第二协议命令(例如:第二协议处理电路140分别分割该第一命令与该第二命令以分别产生该X个第二协议命令以及该Y个第二协议命令),该X个第二协议命令用来使第二装置14输出该第一数据经由第二协议处理电路140至数据缓冲器130,该Y个第二协议命令用来于第一协议处理电路110通知第一装置12该第一数据已被输出完毕前,使第二装置14输出该第二数据经由第二协议处理电路140至数据缓冲器130,其中该X与该Y均为正整数(例如:大于一的正整数)。值得注意的是,本实施例中,第二协议处理电路140是在完成接收来自第二装置14的该第一数据后,再产生该Y个第二协议命令以及进行后续操作,然此并非本发明之实施限制。另值得注意的是,图2之通信中该X与该Y均为一以避免图面复杂,然此并非本发明之实施限制。
承上所述。第一协议处理电路110依据第一/第二命令,发送一第一/第二读出准备完成通知(Read Ready IU_1/Read Ready IU_2),以通知第一装置12从接口转接电路100接收该第一/第二数据;另外,第一协议处理电路110通过发送一第一/第二状态通知(SENSEIU_1/SENSE IU_2),以通知第一装置12该第一/第二数据的读取操作已完成;于一实作范例中,第一协议处理电路110依据来自第二装置14的一第一/第二操作完成通知(亦即图2之Read Completion及/或Interrupt),发送该第一/第二状态通知给第一装置12。第二协议处理电路140经由第二接口104发送一新命令提醒(Doorbell)给第二装置14,以通知第二装置14从第二协议处理电路140获取至少一第二协议命令并执行之,从而使第二装置14输出数据经由第二协议处理电路140至数据缓冲器130。于一实作范例中,每个第二协议命令对应一个新命令提醒,因此该X/Y个第二协议命令分别对应X/Y个新命令提醒;基于上述,第二协议处理电路140依据单一个第二协议命令发送单一个新命令提醒给第二装置14,使第二装置14依据该新命令提醒输出该第二协议命令所要求的数据经由第二协议处理电路140至数据缓冲器130。于一实作范例中,在接口转接电路100与第二装置14之间的通信协议的支持下,该X个第二协议命令对应M个新命令提醒,该M为不大于该X的正整数;因此,一个新命令提醒对应一或多个第二协议命令。于一实作范例中,在第一协议处理电路110发送该第二读出准备完成通知或该第二状态通知前,第二协议处理电路140就开始经由第二接口104发送一新命令提醒给第二装置14,以提早通知第二装置14开始从接口转接电路100获取该Y个第二协议命令并据以输出该第二数据经由第二协议处理电路140至数据缓冲器130,从而减少等待及闲置所造成的传输带宽的浪费(如本说明书之现有技术的章节所述)。
为帮助了解,底下说明中,第一接口102为USB(Universal Serial Bus)接口102、第二接口104为PCIe(Peripheral Component;Interconnect Express)接口104、第一装置12为主机12、第二装置14为储存装置14、第一数据与第二数据分别为储存于储存装置14中的第一储存数据与第二储存数据、第一协议处理电路110为UAS(USB Attached SCSI)协议处理电路110、第二协议处理电路140为NVMe(Non-Volatile Memory Express)协议处理电路140、第一协议命令为UAS命令、第二协议命令为NVMe命令;然而,本发明之实施不以此为限。
图3a显示图1之数据缓冲器130的一实施例。图3a之数据缓冲器130包含N个储存空间(Buffer 1~Buffer N),UAS协议处理电路110及NVMe协议处理电路140可判断每个储存空间的使用状态以利用之,其中该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/Y个NVMe命令的任一个或者对应该命令的一新命令提醒已被发送至储存装置14;SK的第二值(例如:1)代表该第K个储存空间被标示为有存取指示,亦即关联该X/Y个NVMe命令的其中之一,且对应该命令的一新命令提醒尚未被发送至储存装置14;该N个储存空间中的X/Y个储存空间分别关联该X/Y个NVMe命令。
表1
VK的值 | SK的值 | 储存空间的使用状态 |
0 | 0 | 未储存待存取数据、无存取指示 |
0 | 1 | 未储存待存取数据、有存取指示 |
1 | 0 | 已储存待存取数据、无存取指示 |
0 | 0 | 未储存待存取数据、无存取指示 |
图4显示图1之NVMe协议处理电路140的一实施例。图4之NVMe协议处理电路140包含一NVMe命令控制电路(NVMe CMD Ctrl)410、一NVMe直接存储器存取控制电路(NVMe DMA)420、以及一NVMe结束控制电路(NVMe Completion Ctrl)430。请参阅图1~图4,于一实施范例中,NVMe命令控制电路410用来执行至少下列步骤(如图5所示):
步骤S510:依据该第一UAS命令产生该X个NVMe命令,并将该X个NVMe命令分别关联该N个储存空间中的X个储存空间。举例而言,该X个储存空间在关联该X个NVMe命令之前,未储存待存取数据也未关联任何NVMe命令;因此,NVMe命令控制电路410得以依据该X个储存空间的使用状态(例如:依据该X个储存空间的每一个所对应的有效旗标之值与传送旗标之值来确认该X个储存空间的使用状态),将该X个NVMe命令关联该X个储存空间。
步骤S520:发送该X个新命令提醒给储存装置14,以令储存装置14从NVMe协议处理电路140获取该X个NVMe命令并据以输出该第一储存数据经由NVMe协议处理电路140至该X个储存空间。举例而言,该X个NVMe命令分别包含该X个储存空间的地址信息(例如:指针(pointer)),使得储存装置14据以产生X个讯号分别包含该X个储存空间的地址信息,从而NVMe直接存储器存取控制电路420得以依据该X个讯号将该第一储存数据放入该X个储存空间。
步骤S530:依据该第二UAS命令产生该Y个NVMe命令,并将该Y个NVMe命令分别关联该N个储存空间中的Y个储存空间。举例而言,该Y个储存空间在关联该Y个NVMe命令之前,未储存待存取数据也未关联任何NVMe命令;因此,NVMe命令控制电路410得以依据该Y个储存空间的使用状态(例如:依据该Y个储存空间的每一个所对应的有效旗标之值与传送旗标之值来确认该Y个储存空间的使用状态),将该Y个NVMe命令关联该Y个储存空间。
步骤S540:发送该Y个新命令提醒给储存装置14,以令储存装置14从NVMe协议处理电路140获取该Y个NVMe命令并据以输出该第二储存数据经由NVMe协议处理电路140至该Y个储存空间。举例而言,该Y个NVMe命令分别包含该Y个储存空间的地址信息,使得储存装置14据以产生Y个讯号分别包含该Y个储存空间的地址信息,从而NVMe直接存储器存取控制电路420得以依据该Y个讯号将该第二储存数据放入该Y个储存空间。
承上所述。于一实作范例中,NVMe结束控制电路430用来于该第一/第二储存数据被放入该X/Y个储存空间后,重设该X/Y个储存空间的使用状态;举例而言,NVMe结束控制电路430将该X/Y个储存空间的有效旗标与传送旗标均设为0。于一实作范例中,NVMe结束控制电路430依据来自储存装置14的一操作完成通知重设一储存空间的使用状态,并发送一使用权释放提醒(Release Doorbell)给储存装置14,以开始或等待下一次的通信操作。于一实作范例中,NVMe结束控制电路430在结束接收该第一储存数据并发送一使用权释放提醒给储存装置14后,NVMe命令控制电路430无视UAS协议处理电路110传送该第一储存数据的情形,就开始发送该Y个新命令提醒,以提早要求储存装置14输出该第二储存数据;由于USB接口的数据传输速度比PCIe接口的数据传输速度慢,在UAS协议处理电路110尚未完成将该第一储存数据输出至主机12前,NVMe协议处理电路140就能开始发送该Y个新命令提醒而不等待该第一数据之传输完成,以提早要求第二装置14提供该第二储存数据,从而避免等待与闲置所造成的带宽浪费。
由于接口转接电路100为一数字电路,本领域人士能够基于本说明书之揭露以及UAS协议与NVMe协议之标准规范来实现接口转接电路100之各电路的数字设计与电路制作,因此,冗余之说明在此节略。
请注意,在实施为可能的前提下,本技术领域具有通常知识者可选择性地实施前述任一实施例中部分或全部技术特征,或选择性地实施前述多个实施例中部分或全部技术特征的组合,藉此增加本发明实施时的弹性。
综上所述,本发明通过提早发送新命令提醒以加速数据存取操作,从而避免传输带宽的浪费。
虽然本发明之实施例如上所述,然而这些实施例并非用来限定本发明,本技术领域具有通常知识者可依据本发明之明示或隐含之内容对本发明之技术特征施以变化,凡此种种变化均可能属于本发明所寻求之专利保护范畴,换言之,本发明之专利保护范围须视本说明书之申请专利范围所界定者为准。
【符号说明】
100 接口转接电路
102 第一接口(USB接口)
104 第二接口(PCIe接口)
110 第一协议处理电路(UAS协议处理电路)
120 指令寄存器
130 数据缓冲器
140 第二协议处理电路(NVMe协议处理电路)
12 第一装置(主机)
14 第二装置(储存装置)
CMD IU_1 第一命令
CMD IU_2 第二命令
Device Data_1 第一数据(第一储存数据)
Device Data_2 第二数据(第二储存数据)
Read Ready IU_1/Read Ready IU_2 第一/第二读出准备完成通知
SENSE IU_1/SENSE IU_2 第一/第二状态通知
Read Completion/Interrupt 操作完成通知
Doorbell 新命令提醒
Release Doorbell 使用权释放提醒
Buffer 1~Buffer N N个储存空间
V1~VN 有效旗标
S1~SN 传送旗标
410 NVMe CMD Ctrl(NVMe命令控制电路)
420 NVMe DMA(NVMe直接存储器存取控制电路)
430 NVMe Completion Ctrl(NVMe结束控制电路)
S510~S540 步骤。
Claims (10)
1.一种接口转接电路,用来连接一USB接口与一PCIe接口,该接口转接电路包含:
一UAS协议处理电路,用来执行至少下列步骤:
经由该USB接口接收一主机的包含一第一UAS命令与一第二UAS命令的多个UAS命令,其中该第一UAS命令与该第二UAS命令分别用来读取第一储存数据与第二储存数据;
将该多个UAS命令储存于一指令寄存器;
依据该第一UAS命令,发送一第一读出准备完成通知给该主机;
输出储存于一数据缓冲器的该第一储存数据至该主机,并于完成输出该第一储存数据至该主机后,发送一第一状态通知给该主机;
依据该第二UAS命令,发送一第二读出准备完成通知给该主机;以及
输出储存于该数据缓冲器的该第二储存数据至该主机,并于完成输出该第二储存数据至该主机后,发送一第二状态通知给该主机;
该指令寄存器,用来提供该多个UAS命令给一NVMe协议处理电路;
该数据缓冲器,用来储存来自一储存装置的该第一储存数据与该第二储存数据;以及
该NVMe协议处理电路,用来至少执行下列步骤:
依据该第一UAS命令产生X个NVMe命令,其中该X为正整数;
经由该PCIe接口开始发送X个新命令提醒给该储存装置,以令该储存装置依据该X个NVMe命令输出该第一储存数据经由该NVMe协议处理电路至该数据缓冲器;
依据该第二UAS命令产生Y个NVMe命令,其中该Y为正整数;以及
于发送该第二读出准备完成通知前,经由该PCIe接口开始发送Y个新命令提醒给该储存装置,以令该储存装置依据该Y个NVMe命令输出该第二储存数据经由该NVMe协议处理电路至该数据缓冲器。
2.如权利要求1所述的接口转接电路,其中该数据缓冲器包含N个储存空间,该NVMe协议处理电路包含:
一NVMe命令控制电路,用来执行至少下列步骤:
依据该第一UAS命令产生该X个NVMe命令,并将该X个NVMe命令分别关联该N个储存空间中的X个储存空间;
发送该X个新命令提醒给该储存装置,以令该储存装置从该NVMe协议处理电路获取该X个NVMe命令并据以输出该第一储存数据;
依据该第二UAS命令产生该Y个NVMe命令,并将该Y个NVMe命令分别关联该N个储存空间中的Y个储存空间;以及
发送该Y个新命令提醒给该储存装置,以令该储存装置从该NVMe协议处理电路获取该Y个NVMe命令并据以输出该第二储存数据;
一NVMe直接存储器存取控制电路,用来将该第一储存数据放入该X个储存空间,以及将该第二储存数据放入该Y个储存空间;以及
一NVMe结束控制电路,用来于该第一储存数据被放入该X个储存空间后,重设该X个储存空间的使用状态,该NVMe结束控制电路另外用来于该第二储存数据被放入该Y个储存空间后,重设该Y个储存空间的使用状态。
3.一种接口转接电路,用来连接一第一接口与一第二接口,该接口转接电路包含:
一第一协议处理电路,用来经由该第一接口接收一第一装置的包含一第一命令与一第二命令的多个第一协议命令,以将该多个第一协议命令储存于一指令寄存器,并依据该第一命令与该第二命令分别输出储存于一数据缓冲器的第一数据与第二数据至该第一装置;
该指令寄存器,用来提供该多个第一协议命令给一第二协议处理电路;
该数据缓冲器,用来储存来自一第二装置的该第一数据与该第二数据;以及
该第二协议处理电路,经由该第二接口电性连接该第二装置,用来依据该第一命令产生X个第二协议命令使该第二装置输出该第一数据经由该第二协议处理电路至该数据缓冲器,该第二协议处理电路另外用来于该第一协议处理电路通知该第一装置该第一数据已被输出完毕前,依据该第二命令产生Y个第二协议命令使该第二装置输出该第二数据经由该第二协议处理电路至该数据缓冲器,其中该X为正整数,该Y为正整数。
4.如权利要求3所述的接口转接电路,其中该第二协议处理电路检查该指令寄存器以获取该多个第一协议命令。
5.如权利要求3所述的接口转接电路,其中该第二协议处理电路分割该第一命令以产生该X个第二协议命令,该X为大于一的整数;该第二协议处理电路分割该第二命令以产生该Y个第二协议命令,该Y为大于一的整数;该第二协议处理电路通过该X个第二协议命令使该第二装置输出该第一数据;该第二协议处理电路通过该Y个第二协议命令使该第二装置输出该第二数据。
6.如权利要求3所述的接口转接电路,其中该数据缓冲器包含N个储存空间,该第二协议处理电路包含:
一第二协议命令控制电路,用来执行至少下列步骤:
依据该第一命令产生该X个第二协议命令,并将该X个第二协议命令关联该N个储存空间中的X个储存空间;
通过该X个第二协议命令使该第二装置输出该第一数据经由一第二协议直接存储器存取控制电路至该X个储存空间;
依据该第二命令产生该Y个第二协议命令,并将该Y个第二协议命令关联该N个储存空间中的Y个储存空间;以及
通过该Y个第二协议命令使该第二装置输出该第二数据经由该第二协议直接存储器存取控制电路至该Y个储存空间;
该第二协议直接存储器存取控制电路,用来将该第一数据放入该X个储存空间,以及将该第二数据放入该Y个储存空间;以及
一第二协议结束控制电路,用来于该第一数据被放入该X个储存空间后,重设该X个储存空间的使用状态,该第二协议结束控制电路另外用来于该第二数据被放入该Y个储存空间后,重设该Y个储存空间的使用状态。
7.如权利要求6所述的接口转接电路,其中该第二协议命令控制电路依据该X个储存空间的该使用状态,将该X个第二协议命令关联该X个储存空间;该第二协议命令控制电路依据该Y个储存空间的该使用状态,将该Y个第二协议命令关联该Y个储存空间。
8.如权利要求7所述的接口转接电路,其中该N个储存空间的每一个对应一有效旗标与一传送旗标;该第二协议命令控制电路依据该X个储存空间的每一个的该有效旗标的值与该传送旗标的值,确认该X个储存空间的每一个的使用状态;该第二协议命令控制电路依据该Y个储存空间的每一个的该有效旗标的值与该传送旗标的值,确认该Y个储存空间的每一个的使用状态。
9.如权利要求6所述的接口转接电路,其中于该第一数据被放入该X个储存空间后,该第二协议命令控制电路无视该第一协议处理电路传送该第一数据的情形,要求该第二装置输出该第二数据经由该第二协议处理电路至该数据缓冲器。
10.如权利要求3所述的接口转接电路,其中该第一接口的数据传输速度比该第二接口的数据传输速度慢。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108103208 | 2019-01-29 | ||
TW108103208A TWI703446B (zh) | 2019-01-29 | 2019-01-29 | 介面轉接電路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111488303A true CN111488303A (zh) | 2020-08-04 |
CN111488303B CN111488303B (zh) | 2022-04-15 |
Family
ID=71733780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010074683.0A Active CN111488303B (zh) | 2019-01-29 | 2020-01-22 | 接口转接电路 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10970244B2 (zh) |
CN (1) | CN111488303B (zh) |
TW (1) | TWI703446B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11907587B2 (en) * | 2021-06-09 | 2024-02-20 | Western Digital Technologies, Inc. | Managing persistent memory regions across multiple protocols |
US20230297520A1 (en) * | 2022-03-21 | 2023-09-21 | Micron Technology, Inc. | Compute express link memory and storage module |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140019661A1 (en) * | 2012-05-18 | 2014-01-16 | Dell Products, Lp | System and Method for Providing Network Access for a Processing Node |
WO2017054002A1 (en) * | 2015-09-25 | 2017-03-30 | Intel Corporation | Techniques to couple with a storage device via multiple communication ports |
US20170199830A1 (en) * | 2016-01-11 | 2017-07-13 | Intel Corporation | Techniques to Access or Operate a Dual In-Line Memory Module via Multiple Data Channels |
CN108021334A (zh) * | 2016-10-31 | 2018-05-11 | 三星电子株式会社 | 存储设备及其操作方法 |
CN109117092A (zh) * | 2015-10-10 | 2019-01-01 | 北京忆芯科技有限公司 | NVMe协议处理器及其处理方法 |
CN109154924A (zh) * | 2016-07-01 | 2019-01-04 | 英特尔公司 | 多个上行链路端口设备 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6256687B1 (en) * | 1998-08-04 | 2001-07-03 | Intel Corporation | Managing data flow between a serial bus device and a parallel port |
US7657692B2 (en) * | 1999-08-04 | 2010-02-02 | Super Talent Electronics, Inc. | High-level bridge from PCIE to extended USB |
US8180931B2 (en) * | 2004-01-20 | 2012-05-15 | Super Talent Electronics, Inc. | USB-attached-SCSI flash-memory system with additional command, status, and control pipes to a smart-storage switch |
TW201027351A (en) * | 2009-01-08 | 2010-07-16 | Innostor Technology Corp | Signal converter of all-in-one USB connector |
TWI418991B (zh) * | 2010-06-03 | 2013-12-11 | Super Talent Electronics Inc | 針對智慧型儲存交換器所設計的快閃記憶體系統 |
EP2630565B1 (en) * | 2010-10-21 | 2018-12-12 | Marvell World Trade Ltd. | Usb-to-sata high-speed bridge |
JP5822567B2 (ja) * | 2011-07-06 | 2015-11-24 | ルネサスエレクトロニクス株式会社 | コントローラ及び転送スピード制御方法 |
EP2699030B1 (en) * | 2011-11-18 | 2016-05-18 | Huawei Technologies Co., Ltd. | Route switching device, network switching system and route switching method |
US8838869B1 (en) * | 2012-06-22 | 2014-09-16 | Xilinx, Inc. | Multi-protocol data bus interface |
US9804824B1 (en) * | 2013-06-18 | 2017-10-31 | Marvell International Ltd. | System and method for controlling flow of data through a buffer to increase time a bridge is in a low power state |
TWI493455B (zh) * | 2013-07-02 | 2015-07-21 | Phison Electronics Corp | 命令佇列管理方法、記憶體控制器及記憶體儲存裝置 |
CN104111907B (zh) * | 2014-06-27 | 2018-01-02 | 华为技术有限公司 | 一种访问NVMe存储设备的方法和NVMe存储设备 |
US9934177B2 (en) * | 2014-11-04 | 2018-04-03 | Cavium, Inc. | Methods and systems for accessing storage using a network interface card |
US9836417B2 (en) * | 2015-04-20 | 2017-12-05 | Western Digital Technologies, Inc. | Bridge configuration in computing devices |
US9792048B2 (en) * | 2015-06-22 | 2017-10-17 | Western Digital Technologies, Inc. | Identifying disk drives and processing data access requests |
US9760524B2 (en) * | 2015-09-03 | 2017-09-12 | Dell Products L.P. | System and method to redirect UASP mass storage devices to an unsupported operating system in a VDI environment |
US10055142B1 (en) * | 2015-10-13 | 2018-08-21 | Maxlinear Asia Singapore Pte Ltd. | Apparatus and method for command processing for a fast block input/output device |
TWM528476U (zh) * | 2016-04-26 | 2016-09-11 | 宏碁股份有限公司 | 控制裝置及其相關電腦系統 |
CN208384003U (zh) * | 2018-05-03 | 2019-01-15 | 中山市江波龙电子有限公司 | 一种测试装置及*** |
-
2019
- 2019-01-29 TW TW108103208A patent/TWI703446B/zh active
-
2020
- 2020-01-21 US US16/747,709 patent/US10970244B2/en active Active
- 2020-01-22 CN CN202010074683.0A patent/CN111488303B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140019661A1 (en) * | 2012-05-18 | 2014-01-16 | Dell Products, Lp | System and Method for Providing Network Access for a Processing Node |
WO2017054002A1 (en) * | 2015-09-25 | 2017-03-30 | Intel Corporation | Techniques to couple with a storage device via multiple communication ports |
CN109117092A (zh) * | 2015-10-10 | 2019-01-01 | 北京忆芯科技有限公司 | NVMe协议处理器及其处理方法 |
US20170199830A1 (en) * | 2016-01-11 | 2017-07-13 | Intel Corporation | Techniques to Access or Operate a Dual In-Line Memory Module via Multiple Data Channels |
CN109154924A (zh) * | 2016-07-01 | 2019-01-04 | 英特尔公司 | 多个上行链路端口设备 |
CN108021334A (zh) * | 2016-10-31 | 2018-05-11 | 三星电子株式会社 | 存储设备及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US10970244B2 (en) | 2021-04-06 |
US20200242068A1 (en) | 2020-07-30 |
CN111488303B (zh) | 2022-04-15 |
TWI703446B (zh) | 2020-09-01 |
TW202029001A (zh) | 2020-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111488304B (zh) | 接口转接电路 | |
US7234004B2 (en) | Method, apparatus and program product for low latency I/O adapter queuing in a computer system | |
EP0458304A1 (en) | Direct memory access transfer controller | |
WO2018120780A1 (zh) | PCIe中断方法和*** | |
CN111488303B (zh) | 接口转接电路 | |
US6766386B2 (en) | Method and interface for improved efficiency in performing bus-to-bus read data transfers | |
EP1063594B1 (en) | An interrupt controller and a microcomputer incorporating this controller | |
KR20220151116A (ko) | 융합된 커맨드들의 원자적 프로세싱 방법 및 메모리 장치 | |
CN114817965A (zh) | 基于多算法ip核实现msi中断处理的高速加解密***及方法 | |
US8756356B2 (en) | Pipe arbitration using an arbitration circuit to select a control circuit among a plurality of control circuits and by updating state information with a data transfer of a predetermined size | |
CN113031863B (zh) | Ssd命令相关性管理方法、装置、计算机设备及存储介质 | |
CN109992560B (zh) | 一种通信方法及通信*** | |
US8151015B2 (en) | Systems and methods for effecting DMA data transfers | |
JPH08314854A (ja) | データ転送システムおよびこれに関連する装置 | |
US9146776B1 (en) | Systems and methods for controlling flow of message signaled interrupts | |
US9110856B2 (en) | Interface control apparatus, data storage apparatus and method for interface control | |
US7076585B2 (en) | System bus controller and the method thereof | |
CN107526686B (zh) | 数据处理电路与数据处理方法 | |
US20100153610A1 (en) | Bus arbiter and bus system | |
CN100414523C (zh) | 具有dma能力的usb主机控制器 | |
JP2013235464A (ja) | 計算機及び計算機における入出力制御方法 | |
EP1193605B1 (en) | Apparatus and method for the transfer of signal groups between digital signal processors in a digital signal processing unit | |
JPH0934726A (ja) | 割り込み制御方法 | |
JP2017187909A (ja) | マイクロコンピュータ及び電子制御装置 | |
JP2014081952A (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 |