TWI824658B - Super speed universal serial bus control method and computer system therefor - Google Patents

Super speed universal serial bus control method and computer system therefor Download PDF

Info

Publication number
TWI824658B
TWI824658B TW111130008A TW111130008A TWI824658B TW I824658 B TWI824658 B TW I824658B TW 111130008 A TW111130008 A TW 111130008A TW 111130008 A TW111130008 A TW 111130008A TW I824658 B TWI824658 B TW I824658B
Authority
TW
Taiwan
Prior art keywords
endpoint
streaming
state
list
transmission
Prior art date
Application number
TW111130008A
Other languages
Chinese (zh)
Other versions
TW202407554A (en
Inventor
鍾健平
Original Assignee
威盛電子股份有限公司
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 威盛電子股份有限公司 filed Critical 威盛電子股份有限公司
Priority to TW111130008A priority Critical patent/TWI824658B/en
Priority to CN202211030883.1A priority patent/CN115422113A/en
Application granted granted Critical
Publication of TWI824658B publication Critical patent/TWI824658B/en
Publication of TW202407554A publication Critical patent/TW202407554A/en

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/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
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4498Finite state machines

Abstract

An interface controller having a memory space for storage of an endpoint list, and running a logic to dynamically add or delete the items in the endpoint list. The interface controller adds a first stream endpoint into the endpoint list when receiving a Not-Ready Packet from the first stream endpoint. A first stream state machine of the first stream endpoint switches to an idle state along with the sending of the Not-Ready Packet, waiting to enter a start-stream state. When the first stream endpoint has been recorded in the endpoint list, the interface controller skips switching the first stream state machine from the idle state to a prime-pipe state. The interface controller deletes the first stream endpoint from the endpoint list after all target transmissions of the first stream endpoint are completed.

Description

超高速通用序列匯流排控制方法與其實現之電腦系統Ultra-high-speed universal serial bus control method and computer system for its implementation

本發明是關於超高速通用序列匯流排(USB 3.0)之控制技術,支援UASP(通用序列匯流排附加小型計算機系統接口協定,即USB Attached SCSI Protocol)裝置。The present invention relates to ultra-high-speed Universal Serial Bus (USB 3.0) control technology and supports UASP (Universal Serial Bus Attached Small Computer System Interface Protocol, USB Attached SCSI Protocol) devices.

USB 3.0支援UASP裝置,所採用的面向流協定(stream protocol,或稱流式協定)允許裝置進行批量傳輸,系統效能大幅提升。USB 3.0 supports UASP devices, and the stream protocol (stream protocol) used allows the device to perform batch transfers, greatly improving system performance.

然而,為了優化如此批量傳輸能力,裝置端各端點(endpoint)的操作狀態需要相當資源進行管理。如何耗費最少資源達到最高效能,為本技術領域重要課題。However, in order to optimize such batch transmission capabilities, considerable resources are required to manage the operating status of each endpoint on the device side. How to consume the least resources to achieve the highest performance is an important issue in this technical field.

本案提供一種超高速通用序列匯流排控制技術。This case provides an ultra-high-speed universal serial bus control technology.

根據本案一種實施方式實現的一電腦系統包括一接口控制器。該一接口控制器具有一緩存空間儲存一端點列表,並運行一邏輯,動態增刪該端點列表。該接口控制器在接收到一第一流式端點發出的一未就緒數據包時,將該第一流式端點記錄於該端點列表。該第一流式端點的一第一流式狀態機係隨著該未就緒數據包之發出,切換到一閒置狀態,等待進入一預備傳輸狀態。該端點列表記錄有該第一流式端點時,該接口控制器略過將該第一流式狀態機自該閒置狀態切換為一總管線狀態。該接口控制器在該第一流式端點的所有目標傳輸完成後,將該第一流式端點自該端點列表刪除。A computer system implemented according to an embodiment of the present invention includes an interface controller. The interface controller has a cache space to store an endpoint list, and runs a logic to dynamically add and delete the endpoint list. When receiving a not-ready data packet sent by a first streaming endpoint, the interface controller records the first streaming endpoint in the endpoint list. A first streaming state machine of the first streaming endpoint switches to an idle state as the not-ready data packet is sent, waiting to enter a ready transmission state. When the endpoint list records the first streaming endpoint, the interface controller skips switching the first streaming state machine from the idle state to a total pipeline state. The interface controller deletes the first streaming endpoint from the endpoint list after all target transmissions of the first streaming endpoint are completed.

一種實施方式中,該接口控制器是在接收到對準該第一流式端點的端點操作門鈴時,檢查該端點列表。在檢查到該端點列表尚未記錄該第一流式端點時,該接口控制器提供一通知封包給該第一流式端點,使該第一流式狀態機進入該總管線狀態,發出該未就緒數據包給該接口控制器。In one implementation, the interface controller checks the endpoint list when receiving an endpoint operation doorbell aimed at the first streaming endpoint. When it is detected that the first streaming endpoint has not been recorded in the endpoint list, the interface controller provides a notification packet to the first streaming endpoint, causing the first streaming state machine to enter the total pipeline state and issue the not ready packet to the interface controller.

一種實施方式中,對準該第一流式端點的複數個端點操作門鈴載有複數個標籤值,標示該第一流式端點的複數段目標傳輸。該閒置狀態的該第一流式狀態機,係根據該第一流式端點對應一目標標籤值所發出的一就緒數據包,切換為該預備傳輸狀態,以更切換為一傳輸狀態,使該目標標籤值所代表的一段目標傳輸在該第一流式端點與該接口控制器互動下完成,致使該第一流式狀態機切換回該閒置狀態。該接口控制器是在該第一流式端點告知該目標標籤值所代表的該段目標傳輸完成時,判斷與該第一流式端點是否有任何標籤值的目標傳輸未完成。若都完成,該接口控制器將該第一流式端點自該端點列表刪除。In one implementation, the plurality of endpoint operation doorbells directed at the first streaming endpoint carry a plurality of tag values, indicating the target transmission of a plurality of segments of the first streaming endpoint. The first streaming state machine in the idle state switches to the ready transmission state according to a ready data packet sent by the first streaming endpoint corresponding to a target tag value, and further switches to a transmission state so that the target A segment of target transmission represented by the tag value is completed when the first streaming endpoint interacts with the interface controller, causing the first streaming state machine to switch back to the idle state. The interface controller determines whether any target transmission with a tag value associated with the first streaming endpoint has not been completed when the first streaming endpoint notifies that the segment of target transmission represented by the target tag value is completed. If all are completed, the interface controller deletes the first streaming endpoint from the endpoint list.

一種實施方式中,該接口控制器更在該緩存空間儲存一任務狀態註記,為該第一流式端點提供對應複數個標籤值的第一組位元。各位元常態為一第一狀態,在對應之標籤值配置標示一段目標傳輸時,經該接口控制器切換為一第二狀態,直至該段目標傳輸完成才切回該第一狀態。該接口控制器係根據都為該第一狀態的第一組位元,判定該第一流式端點的所有目標傳輸完成。In one implementation, the interface controller further stores a task status note in the cache space to provide the first streaming endpoint with a first set of bits corresponding to a plurality of tag values. Each bit is normally in a first state. When the corresponding tag value is configured to mark a segment of target transmission, it is switched to a second state through the interface controller. It is not switched back to the first state until the segment of target transmission is completed. The interface controller determines that all target transmissions of the first streaming endpoint are completed based on the first group of bits that are in the first state.

更有實施方式將本案概念實現為超高速通用序列匯流排控制方法。There is also an implementation method to implement the concept of this project into an ultra-high-speed universal serial bus control method.

下文特舉實施例,並配合附圖,詳細說明本發明內容。The following is a detailed description of the present invention with examples and accompanying drawings.

以下敘述列舉本發明的多種實施例。以下敘述介紹本發明的基本概念,且並非意圖限制本發明內容。實際發明範圍應依照申請專利範圍來界定。The following description sets forth various embodiments of the invention. The following description introduces the basic concepts of the invention and is not intended to limit the scope of the invention. The actual scope of the invention should be defined according to the scope of the patent application.

第1圖為方塊圖,根據本案一種實施方式圖解一電腦系統,支援UASP裝置(USB 3.0裝置)。如圖所示,一主機100可連結複數個UASP裝置。Figure 1 is a block diagram illustrating a computer system supporting UASP devices (USB 3.0 devices) according to an embodiment of the present invention. As shown in the figure, a host 100 can connect to multiple UASP devices.

以USAP裝置102為例,其中具有一指令端點(command endpoint)104、一資料輸出端點(data-out endpoint)106、一資料輸入端點(data-in endpoint)108、以及一狀態端點(status endpoint)110。指令端點104供主機100實現指令之非流式批量輸出(bulk-out and non-streaming)。不同於指令端點104的非流式設計,資料輸出端點106供主機100實現寫入資料的流式批量輸出(bulk-out and streaming),而資料輸入端點108、以及狀態端點110供主機100實現讀取資料、與裝置狀態的流式批量輸入(bulk-in and streaming)。流式端點106、108、以及110大幅提升主機100讀寫UASP裝置102的速度。Taking the USAP device 102 as an example, it has a command endpoint 104, a data-out endpoint 106, a data-in endpoint 108, and a status endpoint. (status endpoint)110. The command endpoint 104 allows the host 100 to implement bulk-out and non-streaming of commands. Different from the non-streaming design of the command endpoint 104, the data output endpoint 106 allows the host 100 to implement bulk-out and streaming of written data, while the data input endpoint 108 and the status endpoint 110 provide The host 100 implements bulk-in and streaming of reading data and device status. Streaming endpoints 106, 108, and 110 greatly increase the speed at which the host 100 reads and writes to the UASP device 102.

主機100係運行一作業系統(Operating System)112操作一協定驅動器(UAS driver)114,使驅動一接口驅動器(xHCI driver)116,繼而驅動一接口控制器(xHCI controller)118,控制所有UASP裝置上的端點,使各端點的狀態機運作。本案特別介紹流式端點(包括資料輸出端點106、資料輸入端點108、以及一狀態端點110)的控制;所介紹的接口控制器118可實現於晶片組(chipset)中。所述電腦系統解讀為該接口控制器118、或包括接口控制器118的一晶片組、或包括該晶片組的該主機100、或整個第1圖架構。The host 100 runs an operating system (Operating System) 112 and operates a protocol driver (UAS driver) 114 to drive an interface driver (xHCI driver) 116, which in turn drives an interface controller (xHCI controller) 118 to control all UASP devices. The endpoints enable the state machine of each endpoint to operate. This case specifically introduces the control of streaming endpoints (including data output endpoint 106, data input endpoint 108, and a status endpoint 110); the interface controller 118 introduced can be implemented in a chipset. The computer system is interpreted as the interface controller 118, or a chipset including the interface controller 118, or the host 100 including the chipset, or the entire architecture of Figure 1.

各流式端點(資料輸出端點106、資料輸入端點108、以及狀態端點110)設有特殊的流式狀態機(stream state machine)。傳統流式端點進行多段目標傳輸前,其流式狀態機可能反覆在總管線狀態PrimePipe以及閒置狀態Idle間切換,耗時許久才回歸閒置狀態Idle,等待進入一預備傳輸狀態StartStream。本案接口控制器118在一緩存空間119管理一端點列表120,直接標註已啟用之流式端點(一切入閒置狀態Idle即記載),使其流式狀態機不再耗費時間於總管線狀態PrimePipe以及閒置狀態Idle間切換。特別是,接口控制器118所運行的邏輯122具有動態增刪列表之能力。邏輯122可由電路或/以及程式碼實現。邏輯122不只會將新啟用的流式端點增添至端點列表120,還會將完成所有目標傳輸的流式端點自該端點列表120刪除。如此一來,端點列表120尺寸適中,可以節省緩存空間。Each streaming endpoint (data output endpoint 106, data input endpoint 108, and status endpoint 110) is equipped with a special stream state machine. Before a traditional streaming endpoint performs multi-segment target transmission, its streaming state machine may repeatedly switch between the main pipeline state PrimePipe and the idle state Idle. It takes a long time to return to the idle state Idle and wait to enter a preparatory transmission state StartStream. The interface controller 118 of this case manages an endpoint list 120 in a cache space 119, and directly marks the enabled streaming endpoint (recorded when it enters the idle state Idle), so that its streaming state machine no longer spends time in the total pipeline state PrimePipe And switch between idle states. In particular, the logic 122 run by the interface controller 118 has the ability to dynamically add and delete lists. Logic 122 may be implemented by circuitry and/or program code. Logic 122 not only adds newly enabled streaming endpoints to the endpoint list 120, but also removes streaming endpoints that complete all target transmissions from the endpoint list 120. In this way, the endpoint list 120 is moderately sized and cache space can be saved.

端點列表120可儲存在複數個暫存器(registers)中。一種實施方式中,一流式端點是以4B資料註記在端點列表120,其中可包括裝置編號Slot#、以及裝置上端點編號EP#。The endpoint list 120 may be stored in a plurality of registers. In one implementation, the first-class endpoint is recorded in the endpoint list 120 with 4B data, which may include the device number Slot# and the endpoint number EP# on the device.

一種實施方式中,接口控制器118更在緩存空間119管理一任務狀態註記124。邏輯122可參考該任務狀態註記124得知目標之流式端點是否完成其所有目標傳輸,得以自該端點列表120刪除。任務狀態註記124也可以暫存器儲存。In one implementation, the interface controller 118 further manages a task status note 124 in the cache space 119 . Logic 122 may refer to the task status annotation 124 to determine whether the target's streaming endpoint has completed all of its target transfers and can be removed from the endpoint list 120 . Task status notes 124 can also be stored in a temporary register.

第2圖為資料輸入端點108的流式狀態機,包括一除能狀態Disabled、一總管線狀態PrimePipe、一閒置狀態Idle、一預備傳輸狀態StartStream、以及一傳輸狀態MoveData。同採流式傳輸的資料輸出端點106、以及狀態端點110也有類似的流式狀態機。Figure 2 shows the streaming state machine of the data input endpoint 108, including a disable state Disabled, a total pipeline state PrimePipe, an idle state Idle, a preparation transmission state StartStream, and a transmission state MoveData. The streaming data output endpoint 106 and the state endpoint 110 also have similar streaming state machines.

傳統技術相應複數段目標傳輸,會反覆將流式狀態機在總管線狀態PrimePipe、以及閒置狀態Idle間切換。本案以低硬件成本,成功降低流式狀態機在總管線狀態PrimePipe以及閒置狀態Idle間切換的機會。Traditional technology will repeatedly switch the streaming state machine between the total pipeline state PrimePipe and the idle state Idle when transmitting multiple segments of targets. With low hardware cost, this case successfully reduces the chance of the streaming state machine switching between the total pipeline state PrimePipe and the idle state Idle.

根據本案設計,流式端點發出一未就緒數據包NRDY後,此流式端點就被記錄下來,以控管其流式狀態機盡量維持在閒置狀態Idle,等待為各段目標傳輸所發出的就緒數據包ERDY。就緒數據包ERDY會使得流式狀態機切入預備傳輸狀態StartStream與傳輸狀態MoveData,完成相應的一段目標傳輸。待此流式端點的所有目標傳輸完成,此流式端點的控管即結束,使得控管成本合理。According to the design of this case, after the streaming endpoint sends a not-ready data packet NRDY, the streaming endpoint is recorded to control its streaming state machine to remain in the idle state as much as possible, waiting for the transmission of each target segment. Ready packet ERDY. The ready data packet ERDY will cause the streaming state machine to switch to the preparatory transmission state StartStream and the transmission state MoveData to complete the corresponding target transmission. When all target transmissions of this streaming endpoint are completed, the control of this streaming endpoint ends, making the control cost reasonable.

以下以讀取操作為例進行說明。第3圖圖解操作時序。The following description takes the read operation as an example. Figure 3 illustrates the sequence of operations.

作業系統112要求讀取UASP裝置102時,會發出一讀取指令(Data-in Transfer Command)300,告知該協定驅動器114一讀取地址、以及一讀取尺寸。協定驅動器114會發出要求Itr(Stat)、Itr(Data-in)、以及Otr(Cmd, CIU)給接口驅動器116,使接口驅動器116驅動該接口控制器118。要求Itr(Stat)、以及Itr(Data-in)係用來設定主機硬件,準備好接收UASP裝置102回應的狀態(如,感測信息單元SIU)、以及讀取資料。要求Otr(Cmd, CIU)是最後發送,用於傳送命令信息單元(CIU)。When the operating system 112 requests to read the UASP device 102, it will issue a read command (Data-in Transfer Command) 300 to inform the protocol driver 114 of a read address and a read size. The protocol driver 114 will send requests Itr(Stat), Itr(Data-in), and Otr(Cmd, CIU) to the interface driver 116, so that the interface driver 116 drives the interface controller 118. The requirements Itr (Stat) and Itr (Data-in) are used to set the host hardware, prepare to receive the status of the UASP device 102 response (eg, sensing information unit SIU), and read data. The requirement Otr(Cmd, CIU) is sent last and is used to transmit the command information unit (CIU).

以下討論資料輸入端點108、以及狀態端點110的流式狀態機如何回應該讀取指令300。How the data input endpoint 108 and the streaming state machine of the state endpoint 110 respond to the read command 300 are discussed below.

首先討論資料輸入端點108。根據要求Itr(Data-in),接口控制器118產生一通知封包InAck(Data-in, Prime),使資料輸入管線(Data-in pipe)的流式狀態機(第2圖)進入總管線狀態PrimePipe,通知UASP裝置102該主機100已經準備妥當,預備接收UASP裝置102回應的讀取資料。響應該通知封包InAck(Data-in, Prime),UASP裝置102是回應一未就緒數據包NRDY(Data-in, Prime), 使流式狀態機從總管線狀態PrimePipe切入閒置狀態Idle,以方便切入預備傳輸狀態StartStream。參閱第1圖,接口控制器118便是在此時,以邏輯122,將資料輸入端點108增添至端點列表120,表示資料輸入端點108之流式狀態機已作過總管線狀態PrimePipe、再閒置狀態Idle之設定。Data input endpoint 108 is discussed first. According to the request Itr(Data-in), the interface controller 118 generates a notification packet InAck(Data-in, Prime), causing the streaming state machine (Figure 2) of the data input pipeline (Data-in pipe) to enter the general pipeline state. PrimePipe notifies the UASP device 102 that the host 100 is ready to receive the read data responded by the UASP device 102. In response to the notification packet InAck (Data-in, Prime), the UASP device 102 responds with a not-ready data packet NRDY (Data-in, Prime), causing the streaming state machine to switch from the total pipeline state PrimePipe to the idle state Idle to facilitate switching. Prepare transmission status StartStream. Referring to Figure 1, the interface controller 118 uses logic 122 to add the data input endpoint 108 to the endpoint list 120 at this time, indicating that the streaming state machine of the data input endpoint 108 has passed the total pipeline state PrimePipe , and then set the idle state Idle.

此段討論狀態端點110。根據要求Itr(Stat),接口控制器118產生一通知封包InAck(Stat, Prime),使狀態管線(status pipe)的流式狀態機(類似第2圖)進入總管線狀態PrimePipe,通知UASP裝置102該主機100已經準備妥當,預備接收UASP裝置102回應的狀態(如,感測信息單元SIU)。響應該通知封包InAck(Stat, Prime),UASP裝置102是回應一未就緒數據包NRDY(Stat, Prime),使流式狀態機從總管線狀態PrimePipe切入閒置狀態Idle,方便切入預備傳輸狀態StartStream。參閱第1圖,接口控制器118便是在此時,以邏輯122,將狀態端點110增添至端點列表120,表示狀態端點110之流式狀態機已作過總管線狀態PrimePipe、再閒置狀態Idle之設定。This section discusses status endpoint 110. According to the request Itr(Stat), the interface controller 118 generates a notification packet InAck(Stat, Prime), causing the streaming state machine of the status pipe (similar to Figure 2) to enter the total pipeline state PrimePipe, and notifies the UASP device 102 The host 100 is ready to receive the status of the response from the UASP device 102 (eg, sensing information unit SIU). In response to the notification packet InAck(Stat, Prime), the UASP device 102 responds with a not-ready data packet NRDY(Stat, Prime), causing the streaming state machine to switch from the main pipeline state PrimePipe to the idle state Idle to facilitate switching to the ready transmission state StartStream. Referring to Figure 1, the interface controller 118 uses logic 122 to add the status endpoint 110 to the endpoint list 120 at this time, indicating that the streaming state machine of the status endpoint 110 has been processed by the total pipeline status PrimePipe, and then The setting of idle state Idle.

資料輸入管線、以及狀態管線的流式狀態機都確實在閒置狀態Idle後,根據要求Otr(Cmd, CIU),接口控制器118產生一指令封包DP(Cmd, CIU),做命令信息單元CIU傳輸。UASP裝置102收到該指令封包DP(Cmd, CIU)後,回應一通知封包ACK(Cmd),表示成功接收命令信息單元CIU。接口控制器118以要求OTc(Cmd)一路回報接口驅動器116以及協定驅動器114。由於接口控制器118非流式端點,故無需填入端點列表120。After the data input pipeline and the streaming state machine of the status pipeline are indeed in the idle state, according to the request Otr (Cmd, CIU), the interface controller 118 generates a command packet DP (Cmd, CIU) for transmission of the command information unit CIU. . After receiving the command packet DP (Cmd, CIU), the UASP device 102 responds with a notification packet ACK (Cmd), indicating that the command information unit CIU is successfully received. The interface controller 118 reports back to the interface driver 116 and the protocol driver 114 with a request OTc(Cmd). Since interface controller 118 is not a streaming endpoint, there is no need to populate endpoint list 120.

特別是,讀取指令300要求讀取的資料可分為數段讀取。例如,讀取指令300要求的10K讀取資料,可分10段各讀出1K。In particular, the data required to be read by the read instruction 300 can be divided into several sections for reading. For example, the 10K read data required by the read command 300 can be divided into 10 segments to read 1K each.

傳統設計中,用於資料輸入端點108以及狀態端點110初始設定的封包組302將重複10次,接著,指令傳輸之封包組304也重複10次。不同段讀取的封包組302/304以不同標籤值(tag values)區別。一種實施方式是令封包帶有一流式編碼(SID),其值設定為對應的標籤值。特別是,關於流式端點,重複執行的封包組302將令資料輸入管線、以及狀態管線的流式狀態機頻繁在總管線狀態PrimePipe以及閒置狀態Idle間切換。In the traditional design, the packet group 302 used for initial setting of the data input endpoint 108 and the status endpoint 110 will be repeated 10 times, and then the packet group 304 for command transmission will also be repeated 10 times. Packet groups 302/304 read in different segments are distinguished by different tag values. One implementation is to have the packet carry a stream ID (SID) whose value is set to the corresponding tag value. In particular, regarding the streaming endpoint, the repeatedly executed packet group 302 will cause the data input pipeline and the streaming state machine of the status pipeline to frequently switch between the total pipeline state PrimePipe and the idle state Idle.

然而,應用本案技術,封包組302第一次進行,端點列表120就會標有資料輸入端點108以及狀態端點110,表示資料輸入端點108以及狀態端點110之流式狀態機已作過總管線狀態PrimePipe、再閒置狀態Idle之設定。接口控制器118藉由查詢該端點列表120,可避免再次將資料輸入端點108以及狀態端點110的流式狀態機從閒置狀態Idle切換成總管線狀態PrimePipe。因此,本案封包組302不會重複進行,其封包也無需載有標籤值。唯非流式端點通信的封包組304重複進行。系統效能大幅提升。However, using the technology of this case, the first time the packet group 302 is processed, the endpoint list 120 will be marked with the data input endpoint 108 and the status endpoint 110, indicating that the streaming state machine of the data input endpoint 108 and the status endpoint 110 has been completed. The setting of PrimePipe state and Idle state after passing through the pipeline. By querying the endpoint list 120, the interface controller 118 can avoid switching the streaming state machine of the data input endpoint 108 and the status endpoint 110 from the idle state Idle to the total pipeline state PrimePipe again. Therefore, the packet group 302 in this case will not be repeated, and its packets do not need to carry tag values. Only packet groups 304 for non-streaming endpoint communications are repeated. System performance is greatly improved.

經前述步驟,各端點完成讀取資料的前置步驟。以下開始進行讀取資料之傳輸。After the above steps, each endpoint completes the pre-steps of reading data. The transmission of read data begins below.

UASP裝置102產生一就緒數據包ERDY(Data_in),通知接口控制器118,該UASP裝置102已準備好傳送某標籤值的讀取資料。根據就緒數據包ERDY(Data_in),資料輸入管線之流式狀態機自閒置狀態Idle切入預備傳輸狀態StartStream。The UASP device 102 generates a ready data packet ERDY (Data_in) to notify the interface controller 118 that the UASP device 102 is ready to transmit the read data of a certain tag value. According to the ready data packet ERDY (Data_in), the streaming state machine of the data input pipeline switches from the idle state Idle to the ready transmission state StartStream.

相應就緒數據包ERDY(Data_in),接口控制器118傳送一通知封包InAck(Data-in)給UASP裝置102。根據通知封包InAck(Data-in),資料輸入管線之流式狀態機自預備傳輸狀態StartStream切入傳輸狀態MoveData,開始傳送讀取資料,UASP裝置102發出資料封包DP(Data-in)。In response to the ready data packet ERDY (Data_in), the interface controller 118 sends a notification packet InAck (Data-in) to the UASP device 102 . According to the notification packet InAck (Data-in), the streaming state machine of the data input pipeline switches from the preparation transmission state StartStream to the transmission state MoveData and starts transmitting the read data. The UASP device 102 sends the data packet DP (Data-in).

相應資料封包DP(Data-in),接口控制器118傳送一通知封包InAck(Data-in)給UASP裝置102,表示成功接收到讀取資料之封包。封包DP(Data-in)、InAck(Data-in)多對互動後,其標籤值代表的該段讀取資料傳輸完成,接口控制器118以要求ITc(Data-in),一路回報接口驅動器116以及協定驅動器114。資料輸入管線之流式狀態機回到閒置狀態Idle。Corresponding to the data packet DP (Data-in), the interface controller 118 sends a notification packet InAck (Data-in) to the UASP device 102, indicating that the packet for reading data is successfully received. After multiple pairs of packets DP (Data-in) and InAck (Data-in) interact, the read data transmission of the segment represented by the tag value is completed, and the interface controller 118 requests ITc (Data-in) and reports all the way to the interface driver 116 and protocol driver 114. The streaming state machine of the data input pipeline returns to the idle state Idle.

以前述10次各1K分段讀取為例,封包組306會重複10次,各自對應一標籤值。各封包是以流式編碼(SID)標示標籤值。Taking the aforementioned 10 times of 1K segment reading as an example, the packet group 306 will be repeated 10 times, each corresponding to a tag value. Each packet is marked with a streaming code (SID) tag value.

特別是,所有分段之讀取資料傳送完後(重複封包組306後),接口控制器118會以邏輯122將資料輸入端點108自端點列表120刪除,使緩存空間119利用最佳化。一種實施方式中,任務狀態註記124有32位元內容是為資料輸入端點108提供,分別對應一標籤值之讀取資料之傳輸。各位元常態為1。0值代表該標籤值讀取資料尚未完成傳輸。若此32位元皆為1,則接口控制器118認定資料輸入端點108所有分段之讀取資料傳送完畢,將資料輸入端點108自端點列表120刪除。In particular, after the read data of all segments has been transmitted (after the repeated packet group 306), the interface controller 118 will use logic 122 to delete the data input endpoint 108 from the endpoint list 120 to optimize the use of the cache space 119 . In one implementation, the 32-bit contents of the task status annotation 124 are provided for the data input endpoint 108, respectively corresponding to the transmission of read data of a tag value. The normal value of each bit is 1. A value of 0 means that the data read by the tag value has not yet been transmitted. If these 32 bits are all 1, the interface controller 118 determines that the read data of all segments of the data input endpoint 108 has been transmitted, and deletes the data input endpoint 108 from the endpoint list 120 .

所有分段之讀取資料傳輸完畢後,UASP裝置102發出就緒數據包ERDY(Stat),通知接口控制器118,該UASP裝置102已準備好透過狀態管線傳送感測信息單元SIU。就緒數據包ERDY(Stat)也有標示標籤值。根據該就緒數據包ERDY(Stat),狀態管線之流式狀態機自閒置狀態Idle切入預備傳輸狀態StartStream。After the read data transmission of all segments is completed, the UASP device 102 sends a ready data packet ERDY (Stat) to notify the interface controller 118 that the UASP device 102 is ready to transmit the sensing information unit SIU through the status pipeline. The ready data packet ERDY (Stat) also has a tag value. According to the ready data packet ERDY(Stat), the streaming state machine of the status pipeline switches from the idle state Idle to the ready transmission state StartStream.

相應該就緒數據包ERDY(Stat),接口控制器118傳送一通知封包InAck(Stat)給UASP裝置102。根據通知封包InAck(Stat),狀態管線之流式狀態機自預備傳輸狀態StartStream切入傳輸狀態MoveData,產生狀態封包DP(Stat, SIU)傳送感測信息單元SIU。相應狀態封包DP(Stat, SIU),接口控制器118產生通知封包ACK(Stat),表示成功接收感測信息單元SIU。狀態管線之流式狀態機回到閒置狀態Idle。Corresponding to the ready packet ERDY(Stat), the interface controller 118 sends a notification packet InAck(Stat) to the UASP device 102. According to the notification packet InAck(Stat), the streaming state machine of the status pipeline switches from the prepared transmission state StartStream to the transmission state MoveData, and generates a status packet DP(Stat, SIU) to transmit the sensing information unit SIU. Corresponding to the status packet DP(Stat, SIU), the interface controller 118 generates a notification packet ACK(Stat), indicating successful reception of the sensing information unit SIU. The streaming state machine of the state pipeline returns to the idle state Idle.

以前述10次各段1K讀取為例,封包組308會重複10次,各自對應一標籤值。各封包是以流式編碼(SID)標示標籤值。Taking the above-mentioned 10 times of reading 1K in each segment as an example, the packet group 308 will be repeated 10 times, each corresponding to a tag value. Each packet is marked with a streaming code (SID) tag value.

特別是,所有分段讀取之裝置狀態傳送完後(重複封包組308後),接口控制器118會以邏輯122將狀態端點110自端點列表120刪除,使緩存空間119利用最佳化。一種實施方式中,任務狀態註記124有32位元內容是為狀態端點110提供,分別對應一標籤值之狀態傳輸。各位元常態為1。0值代表該標籤值狀態尚未完成傳輸。若此32位元皆為1,則接口控制器118認定狀態端點110所有分段之狀態傳輸完成,將狀態端點110自端點列表120刪除。In particular, after all segmented device statuses have been transmitted (after repeating the packet group 308), the interface controller 118 will use logic 122 to delete the status endpoint 110 from the endpoint list 120 to optimize cache space 119 utilization. . In one implementation, the 32-bit contents of the task status annotation 124 are provided for the status endpoint 110, respectively corresponding to the status transmission of a tag value. Each bit is normally 1. A value of 0 indicates that the tag value status has not yet completed transmission. If these 32 bits are all 1, the interface controller 118 determines that the status transmission of all segments of the status endpoint 110 is completed, and deletes the status endpoint 110 from the endpoint list 120 .

作業系統112以一寫入指令(Data-out Transfer Command)發起的寫入操作之時序,類似第3圖之讀取操作時序。同樣以小尺寸緩存空間119,實現流式端點(包括資料輸出端點106以及狀態端點110)的高效運作。The timing of the write operation initiated by the operating system 112 with a write command (Data-out Transfer Command) is similar to the timing of the read operation in Figure 3 . The small size cache space 119 is also used to achieve efficient operation of streaming endpoints (including the data output endpoint 106 and the status endpoint 110).

以上流式端點操作概念可應用在各式各樣流式端點,不限定於資料輸出端點106、資料輸入端點108、狀態端點110。The above streaming endpoint operation concepts can be applied to various streaming endpoints, and are not limited to the data output endpoint 106, the data input endpoint 108, and the status endpoint 110.

第4圖為流程圖,根據本案一種實施方式圖解接口控制器118的一操作流程,其中涉及邏輯122之運作,說明該接口控制器118如何建立該端點列表120。Figure 4 is a flow chart illustrating an operation process of the interface controller 118 according to an embodiment of the present invention, which involves the operation of the logic 122 and explains how the interface controller 118 creates the endpoint list 120.

步驟S402,接口控制器118收到端點操作門鈴(EP doorbell,ITr、或Otr),其中包括裝置編號Slot#、裝置上端點編號EP#、以及標籤值Stream#(#代表編號)。一種實施方式中,接口控制器118可將任務狀態註記124裡,對應裝置編號Slot#、裝置上端點編號EP#的暫存器,其中對應標籤值Stream#的位元設0,代表待完成的一段目標傳輸。Step S402, the interface controller 118 receives the endpoint operation doorbell (EP doorbell, ITr, or Otr), which includes the device number Slot#, the endpoint number EP# on the device, and the tag value Stream# (# represents the number). In one implementation, the interface controller 118 can record the task status in the register 124 corresponding to the device number Slot# and the endpoint number EP# on the device, where the bit corresponding to the tag value Stream# is set to 0, representing the task to be completed. A segment of target transmission.

步驟S404,根據裝置編號Slot#、以及裝置上端點編號EP#,接口控制器118查詢端點列表120,判斷此流式端點是否已啟用(已作過總管線狀態PrimePipe、閒置狀態Idle設定)。Step S404: According to the device number Slot# and the endpoint number EP# on the device, the interface controller 118 queries the endpoint list 120 to determine whether the streaming endpoint has been enabled (the total pipeline state PrimePipe and idle state Idle settings have been made) .

若目前要求操作的流式端點尚未啟用,並未列在端點列表120,接口控制器118循步驟S406發出一通知封包,使該流式端點的流式狀態機切換到總管線狀態PrimePipe,再循步驟S408,接收該流式端點回應的未就緒數據包NRDY。此時,該流式狀態機自總管線狀態PrimePipe切換成閒置狀態Idle。接口控制器118循步驟S410將此流式端點的資訊(包括裝置編號Slot#、以及裝置上端點編號EP#)載入該端點列表120,記錄為已啟用端點。流程結束。If the streaming endpoint currently required to operate has not been enabled and is not listed in the endpoint list 120, the interface controller 118 sends a notification packet in step S406 to switch the streaming state machine of the streaming endpoint to the main pipeline state PrimePipe. , then follow step S408 to receive the not-ready data packet NRDY responded by the streaming endpoint. At this time, the streaming state machine switches from the total pipeline state PrimePipe to the idle state Idle. The interface controller 118 loads the information of the streaming endpoint (including the device number Slot# and the endpoint number EP# on the device) into the endpoint list 120 in step S410, and records it as an enabled endpoint. The process ends.

反之,若目前要求操作的流式端點早已啟用,已列在端點列表120,接口控制器118跳過步驟S406以及S408,該流式狀態機不會再作總管線狀態PrimePipe、閒置狀態Idle切換。流式狀態機原本早已處在閒置狀態Idle。On the contrary, if the streaming endpoint currently required to operate has been enabled and is listed in the endpoint list 120, the interface controller 118 skips steps S406 and S408, and the streaming state machine will no longer perform the pipeline state PrimePipe and the idle state Idle. switch. The streaming state machine was already in the idle state.

第5圖為流程圖,根據本案一種實施方式圖解接口控制器118的一操作流程,其中涉及邏輯122之運作,說明該接口控制器118如何應用該端點列表120,並動態刪減該端點列表120內容。Figure 5 is a flow chart illustrating an operation process of the interface controller 118 according to an embodiment of the present case, which involves the operation of the logic 122 and explains how the interface controller 118 applies the endpoint list 120 and dynamically deletes the endpoints. List 120 content.

步驟S502,接口控制器118接收到一流式端點(由裝置編號Slot#、以及裝置上端點編號EP#標註)傳來的一就緒數據包ERDY,其中帶有一標籤值Stream#。該流式狀態機隨著該就緒數據包ERDY進入該預備傳輸狀態StartStream、以及該傳輸狀態MoveData,進行該標籤值Stream#所標示的一段目標傳輸。此時,接口控制器118以步驟S504自該流式端點接收封包DP。步驟S506,接口控制器118獲知該流式端點完成標籤值Stream#之目標傳輸,將任務狀態註記124中,對應該流式端點的暫存器,其中對應標籤值Stream#的位元設1。步驟S508,接口控制器118判斷該暫存器是否全重置為預設值1。若是,表示該流式端點所有目標傳輸都完成,接口控制器118循步驟S510將該流式端點自該端點列表120刪除。若否,流程不調整該端點列表120即結束。In step S502, the interface controller 118 receives a ready data packet ERDY from the streaming endpoint (labeled by the device number Slot# and the endpoint number EP# on the device), which contains a tag value Stream#. The streaming state machine enters the preparation transmission state StartStream and the transmission state MoveData along with the ready data packet ERDY, and performs a target transmission indicated by the tag value Stream#. At this time, the interface controller 118 receives the packet DP from the streaming endpoint in step S504. Step S506, the interface controller 118 learns that the streaming endpoint has completed the target transmission of the tag value Stream#, and records the task status 124 in the temporary register corresponding to the streaming endpoint, in which the bit settings corresponding to the tag value Stream# are set. 1. In step S508, the interface controller 118 determines whether the registers are all reset to the default value 1. If yes, it means that all target transmissions of the streaming endpoint are completed, and the interface controller 118 deletes the streaming endpoint from the endpoint list 120 in step S510. If not, the process ends without adjusting the endpoint list 120 .

整理之,本案令完成所有目標傳輸的流式端點,得以自端點列表120刪除。如此一來,端點列表120使用的暫存器數量可以大幅減少。以UASP裝置102為例,資料輸出端點106與資料輸入端點108不會同時啟用。端點列表120至多只需要為UASP裝置102提供兩個條目:標示資料輸出端點106與狀態端點110;或者,標示資料輸入端點108與狀態端點110。相較於為三個流式端點(資料輸出端點106、資料輸入端點108、狀態端點110)各備妥暫存器記錄目標傳輸之傳輸進度,本案動態增、刪該端點列表120的技術,更是節省緩存空間119。In summary, this case allows streaming endpoints that have completed all target transmissions to be deleted from the endpoint list 120. In this way, the number of registers used by the endpoint list 120 can be greatly reduced. Taking the UASP device 102 as an example, the data output endpoint 106 and the data input endpoint 108 are not enabled at the same time. The endpoint list 120 only needs to provide at most two entries for the UASP device 102: the identification data output endpoint 106 and the status endpoint 110; or the identification data input endpoint 108 and the status endpoint 110. Compared with preparing buffers for each of the three streaming endpoints (data output endpoint 106, data input endpoint 108, and status endpoint 110) to record the transmission progress of the target transmission, this case dynamically adds and deletes the endpoint list. 120’s technology saves cache space by 119%.

另外,以支援32個UASP裝置的電腦系統為例,通常不會同時使用32個UASP裝置。例如,大部分應用只會使用到15個UASP裝置。端點列表120設計上可以應付20個UASP裝置為目標,即具有20*2*4B(160B)儲存能力即可。相較於為所有裝置的所有流式端點備妥32*3*4B (=384B)空間,160B的端點列表120在緩存空間利用上更好。In addition, taking a computer system that supports 32 UASP devices as an example, 32 UASP devices are usually not used at the same time. For example, most applications will only use 15 UASP devices. The endpoint list 120 is designed to handle 20 UASP devices, that is, it has a storage capacity of 20*2*4B (160B). Compared to preparing 32*3*4B (=384B) space for all streaming endpoints of all devices, the 160B endpoint list 120 is better in cache space utilization.

以下表格1舉例說明端點列表120的增刪。 步驟 要求/封包 Slot# EP# Stream# 端點列表120 1 端點操作門鈴 0x0E 0x04 0x02 2 InAck(Data-out, Prime) 0x0E 0x04 - 3 NRDY(Data-out, Prime) 0x0E 0x04 - (E,4) 4 端點操作門鈴 0x0E 0x07 0x02 (E,4) 5 InAck(Stat, Prime) 0x0E 0x07 - (E,4) 6 NRDY(Stat, Prime) 0x0E 0x07 - (E,4), (E,7) 7 端點操作門鈴 0x0E 0x04 0x04 (E,4), (E,7) 8 端點操作門鈴 0x0E 0x07 0x04 (E,4), (E,7) 9 端點操作門鈴 0x0E 0x08   (E,4), (E,7) 10 傳輸寫入資料 0x0E 0x04 0x02 (E,4), (E,7) 11 端點操作門鈴 0x0E 0x08   (E,4), (E,7) 12 端點操作門鈴 0x0E 0x04 0x09 (E,4), (E,7) 13 傳輸狀態 0x0E 0x07 0x02 (E,4), (E,7) 14 端點操作門鈴 0x0E 0x07 0x09 (E,4), (E,7) 15 傳輸寫入資料 0x0E 0x04 0x04 (E,4), (E,7) 16 傳輸狀態 0x0E 0x07 0x04 (E,4), (E,7) 17 端點操作門鈴 0x0E 0x08   (E,4), (E,7) 18 端點操作門鈴 0x0C 0x03 0x02 (E,4), (E,7) 19 InAck(Data-in, Prime) 0x0C 0x03 - (E,4), (E,7) 20 NRDY(Data-in, Prime) 0x0C 0x03 - (E,4), (E,7), (C,3) 21 端點操作門鈴 0x0C 0x07 0x02 (E,4), (E,7), (C,3) 22 InAck(Stat, Prime) 0x0C 0x07 - (E,4), (E,7), (C,3) 23 NRDY(Stat, Prime) 0x0C 0x07 - (E,4), (E,7), (C,3), (C,7) 24 端點操作門鈴 0x0C 0x03 0x05 (E,4), (E,7), (C,3), (C,7) 25 傳輸寫入資料 0x0E 0x04 0x09 (E,7), (C,3) , (C,7) 26 端點操作門鈴 0x0C 0x07 0x05 (E,7), (C,3) , (C,7) 27 傳輸狀態 0x0E 0x07 0x09 (C,3) , (C,7) 28 端點操作門鈴 0x0C 0x03 0x09 (C,3) , (C,7) 29 端點操作門鈴 0x0C 0x07 0x09 (C,3) , (C,7) 30 端點操作門鈴 0x0C 0x08   (C,3) , (C,7) 31 端點操作門鈴 0x0C 0x08   (C,3) , (C,7) 32 端點操作門鈴 0x0C 0x08   (C,3) , (C,7) 33 傳輸讀取資料 0x0C 0x03 0x02 (C,3) , (C,7) 34 傳輸狀態 0x0C 0x07 0x02 (C,3) , (C,7) 35 傳輸讀取資料 0x0C 0x03 0x05 (C,3) , (C,7) 36 傳輸狀態 0x0C 0x07 0x05 (C,3) , (C,7) 37 傳輸讀取資料 0x0C 0x03 0x09 (C,7) 38 傳輸狀態 0x0C 0x07 0x09 表格1 Table 1 below illustrates additions and deletions to the endpoint list 120. steps request/packet Slot# EP# Stream# Endpoint list 120 1 Endpoint operated doorbell 0x0E 0x04 0x02 null 2 InAck(Data-out, Prime) 0x0E 0x04 - null 3 NRDY(Data-out, Prime) 0x0E 0x04 - (E,4) 4 Endpoint operated doorbell 0x0E 0x07 0x02 (E,4) 5 InAck(Stat, Prime) 0x0E 0x07 - (E,4) 6 NRDY(Stat, Prime) 0x0E 0x07 - (E,4), (E,7) 7 Endpoint operated doorbell 0x0E 0x04 0x04 (E,4), (E,7) 8 Endpoint operated doorbell 0x0E 0x07 0x04 (E,4), (E,7) 9 Endpoint operated doorbell 0x0E 0x08 (E,4), (E,7) 10 Transfer writing data 0x0E 0x04 0x02 (E,4), (E,7) 11 Endpoint operated doorbell 0x0E 0x08 (E,4), (E,7) 12 Endpoint operated doorbell 0x0E 0x04 0x09 (E,4), (E,7) 13 Transmission status 0x0E 0x07 0x02 (E,4), (E,7) 14 Endpoint operated doorbell 0x0E 0x07 0x09 (E,4), (E,7) 15 Transfer and write data 0x0E 0x04 0x04 (E,4), (E,7) 16 Transmission status 0x0E 0x07 0x04 (E,4), (E,7) 17 Endpoint operated doorbell 0x0E 0x08 (E,4), (E,7) 18 Endpoint operated doorbell 0x0C 0x03 0x02 (E,4), (E,7) 19 InAck(Data-in, Prime) 0x0C 0x03 - (E,4), (E,7) 20 NRDY(Data-in, Prime) 0x0C 0x03 - (E,4), (E,7), (C,3) twenty one Endpoint operated doorbell 0x0C 0x07 0x02 (E,4), (E,7), (C,3) twenty two InAck(Stat, Prime) 0x0C 0x07 - (E,4), (E,7), (C,3) twenty three NRDY(Stat, Prime) 0x0C 0x07 - (E,4), (E,7), (C,3), (C,7) twenty four Endpoint operated doorbell 0x0C 0x03 0x05 (E,4), (E,7), (C,3), (C,7) 25 Transfer and write data 0x0E 0x04 0x09 (E,7), (C,3) , (C,7) 26 Endpoint operated doorbell 0x0C 0x07 0x05 (E,7), (C,3) , (C,7) 27 Transmission status 0x0E 0x07 0x09 (C,3) , (C,7) 28 Endpoint operated doorbell 0x0C 0x03 0x09 (C,3) , (C,7) 29 Endpoint operated doorbell 0x0C 0x07 0x09 (C,3) , (C,7) 30 Endpoint operated doorbell 0x0C 0x08 (C,3) , (C,7) 31 Endpoint operated doorbell 0x0C 0x08 (C,3) , (C,7) 32 Endpoint operated doorbell 0x0C 0x08 (C,3) , (C,7) 33 Transfer read data 0x0C 0x03 0x02 (C,3) , (C,7) 34 Transmission status 0x0C 0x07 0x02 (C,3) , (C,7) 35 Transfer read data 0x0C 0x03 0x05 (C,3) , (C,7) 36 Transmission status 0x0C 0x07 0x05 (C,3) , (C,7) 37 Transfer read data 0x0C 0x03 0x09 (C,7) 38 Transmission status 0x0C 0x07 0x09 null Table 1

步驟3,裝置0x0E上、編號0x04流式端點(資料輸出端點)添入該端點列表120,為(E,4);除了代表該流式端點(E,4)已為標籤值0x02的傳輸作好準備(Idle狀態),也代表該流式端點(E,4)有能力應付標籤值0x04(步驟7)、以及0x09(步驟12)之傳輸要求。步驟7以及步驟12之要求,都沒有再觸發流式狀態機的總管線狀態PrimePipe、閒置狀態Idle切換。Step 3. The streaming endpoint numbered 0x04 (data output endpoint) on device 0x0E is added to the endpoint list 120, which is (E, 4); in addition, it means that the streaming endpoint (E, 4) has a tag value The transmission of 0x02 is ready (Idle state), which also means that the streaming endpoint (E,4) is capable of handling the transmission requirements of tag values 0x04 (step 7) and 0x09 (step 12). The requirements of step 7 and step 12 do not trigger the switching of the total pipeline state PrimePipe and idle state Idle of the streaming state machine.

步驟6,裝置0x0E上編號0x07的流式端點(狀態端點) 添入該端點列表120,為(E,7);除了代表流式端點(E,7)已為標籤值0x02的傳輸作好準備(Idle狀態),也代表該流式端點(E,7)有能力應付標籤值0x04(步驟8)、以及0x09(步驟14)之傳輸要求。步驟8以及步驟14之要求,都沒有再觸發流式狀態機的總管線狀態PrimePipe、閒置狀態Idle切換。Step 6. The streaming endpoint (status endpoint) numbered 0x07 on device 0x0E is added to the endpoint list 120, which is (E,7); except that the streaming endpoint (E,7) has a tag value of 0x02 Being ready for transmission (Idle state) also means that the streaming endpoint (E,7) is capable of handling the transmission requirements of tag values 0x04 (step 8) and 0x09 (step 14). The requirements of step 8 and step 14 do not trigger the switching of the total pipeline state PrimePipe and idle state Idle of the streaming state machine.

步驟20,裝置0x0C上編號0x03的流式端點(資料輸入端點) 添入該端點列表120,為(C,3);除了代表該流式端點(C,3)已為標籤值0x02的傳輸作好準備(Idle狀態),也代表該流式端點(C,3)有能力應付標籤值0x05(步驟24)、以及0x09(步驟28)之傳輸要求。步驟24以及步驟28之要求,都沒有再觸發流式狀態機的總管線狀態PrimePipe、閒置狀態Idle切換。Step 20, the streaming endpoint numbered 0x03 (data input endpoint) on device 0x0C is added to the endpoint list 120, which is (C, 3); in addition, it means that the streaming endpoint (C, 3) has a tag value The transmission of 0x02 is ready (Idle state), which also means that the streaming endpoint (C,3) is capable of handling the transmission requirements of tag values 0x05 (step 24) and 0x09 (step 28). The requirements of step 24 and step 28 do not trigger the switching of the total pipeline state PrimePipe and the idle state Idle of the streaming state machine.

步驟23,裝置0x0C上編號0x07的流式端點(狀態端點)添入該端點列表120,為(C,7);除了代表該流式端點(C,7)已為標籤值0x02的傳輸作好準備(Idle狀態),也代表該流式端點(C,7)有能力應付標籤值0x05(步驟26)、以及0x09(步驟29)之傳輸要求。步驟26以及步驟29之要求,都沒有再觸發流式狀態機的總管線狀態PrimePipe、閒置狀態Idle切換。Step 23, the streaming endpoint (status endpoint) numbered 0x07 on device 0x0C is added to the endpoint list 120, which is (C,7); in addition, it means that the streaming endpoint (C,7) has a label value of 0x02 The transmission is ready (Idle state), which also means that the streaming endpoint (C, 7) is capable of handling the transmission requirements of tag values 0x05 (step 26) and 0x09 (step 29). The requirements of step 26 and step 29 do not trigger the switching of the total pipeline state PrimePipe and the idle state Idle of the streaming state machine.

特別是,步驟25,隨著標籤值0x09的資料輸出傳輸完成,裝置0x0E上編號0x04的資料輸出端點完成所有任務(標籤值0x02、0x04、以及0x09所標示的三段資料輸出傳輸都完成),記錄(E,4)自端點列表120刪除。In particular, step 25, as the data output transmission with tag value 0x09 is completed, the data output endpoint numbered 0x04 on device 0x0E completes all tasks (the three data output transmissions marked with tag values 0x02, 0x04, and 0x09 are all completed) , record (E,4) is deleted from endpoint list 120 .

步驟27,隨著標籤值0x09的狀態傳輸完成,裝置0x0E上編號0x07的狀態端點完成所有任務(標籤值0x02、0x04、以及0x09所標示的三段狀態傳輸都完成),記錄(E,7)自端點列表120刪除。Step 27, as the status transmission of tag value 0x09 is completed, the status endpoint numbered 0x07 on device 0x0E completes all tasks (the three status transmissions marked by tag values 0x02, 0x04, and 0x09 are completed), and records (E,7 ) is removed from the endpoint list 120.

步驟37,隨著標籤值0x09的資料輸入傳輸完成,裝置0x0C上編號0x03的資料輸入端點完成所有任務(標籤值0x02、0x05、以及0x09所標示的三段資料輸入傳輸都完成),記錄(C,3)自端點列表120刪除。Step 37, as the data input and transmission of tag value 0x09 is completed, the data input endpoint numbered 0x03 on device 0x0C completes all tasks (the three data input and transmission segments marked by tag values 0x02, 0x05, and 0x09 are all completed), and records ( C,3) Delete from endpoint list 120 .

步驟38,隨著標籤值0x09的狀態傳輸完成,裝置0x0C上編號0x07的狀態端點完成所有任務(標籤值0x02、0x05、以及0x09所標示的三段狀態傳輸都完成),記錄(C,7)自端點列表120刪除。Step 38, as the status transmission of tag value 0x09 is completed, the status endpoint numbered 0x07 on device 0x0C completes all tasks (the three status transmissions marked by tag values 0x02, 0x05, and 0x09 are completed), and records (C,7 ) is removed from the endpoint list 120.

表格1顯示端點列表120之動態增刪。本案接口控制器118明顯優化端點列表120所佔用的緩存空間119。Table 1 shows the dynamic addition and deletion of the endpoint list 120. The interface controller 118 in this case obviously optimizes the cache space 119 occupied by the endpoint list 120.

本案為超高速通用序列匯流排(USB 3.0)提出高效的接口控制器118。This project proposes an efficient interface controller 118 for the ultra-high-speed Universal Serial Bus (USB 3.0).

以上概念更可實現為超高速通用序列匯流排(USB 3.0)控制方法,包括:在一緩存空間119儲存一端點列表120,並運行一邏輯122,動態增刪該端點列表120;相應一第一流式端點發出的一未就緒數據包NRDY,將該第一流式端點記錄於該端點列表120,其中,該第一流式端點的一第一流式狀態機係隨著該未就緒數據包NRDY之發出,切換到一閒置狀態Idle,等待進入一預備傳輸狀態StartStream;在該端點列表120記錄有該第一流式端點時,略過將該第一流式狀態機自該閒置狀態Idle切換為一總管線狀態PipePrime;且在該第一流式端點的所有目標傳輸完成後,將該第一流式端點自該端點列表120刪除。The above concept can be implemented as an ultra-high-speed universal serial bus (USB 3.0) control method, including: storing an endpoint list 120 in a cache space 119, and running a logic 122 to dynamically add or delete the endpoint list 120; corresponding to a first stream A not-ready data packet NRDY is sent by the streaming endpoint, and the first streaming endpoint is recorded in the endpoint list 120, wherein a first streaming state machine of the first streaming endpoint is followed by the not-ready data packet After NRDY is issued, switch to an idle state Idle and wait to enter a preparatory transmission state StartStream; when the endpoint list 120 records the first streaming endpoint, skip switching the first streaming state machine from the idle state Idle. is a total pipeline state PipePrime; and after all target transmissions of the first streaming endpoint are completed, the first streaming endpoint is deleted from the endpoint list 120 .

一種實施方式中,所述控制方法更包括:相應對準該第一流式端點的端點操作門鈴,檢查該端點列表120;且在檢查到該端點列表120尚未記錄該第一流式端點時,提供一通知封包InAck給該第一流式端點,使該第一流式狀態機進入該總管線狀態PrimePipe,發出該未就緒數據包NRDY。該第一流式狀態機係切換到該閒置狀態Idle,且該第一流式端點增添入該端點列表120。In one embodiment, the control method further includes: operating a doorbell corresponding to the endpoint of the first streaming endpoint, checking the endpoint list 120; and after checking that the first streaming endpoint has not been recorded in the endpoint list 120. point, a notification packet InAck is provided to the first streaming endpoint, so that the first streaming state machine enters the total pipeline state PrimePipe and sends the not-ready data packet NRDY. The first streaming state machine is switched to the idle state Idle, and the first streaming endpoint is added to the endpoint list 120 .

一種實施方式中,對準該第一流式端點的複數個端點操作門鈴載有複數個標籤值,標示該第一流式端點的複數段目標傳輸。該閒置狀態Idle的該第一流式狀態機,係根據該第一流式端點對應一目標標籤值所發出的一就緒數據包ERDY,切換為該預備傳輸狀態StartStream,以更切換為一傳輸狀態MoveData,完成該目標標籤值所代表的一段目標傳輸,致使該第一流式狀態機切換回該閒置狀態Idle。所述控制方法更在該第一流式端點完成該目標標籤值所代表的該段目標傳輸時,判斷與該第一流式端點是否有任何標籤值的目標傳輸未完成;若都完成,將該第一流式端點自該端點列表120刪除。In one implementation, the plurality of endpoint operation doorbells directed at the first streaming endpoint carry a plurality of tag values, indicating the target transmission of a plurality of segments of the first streaming endpoint. The first streaming state machine of the idle state Idle switches to the preparatory transmission state StartStream according to a ready data packet ERDY sent by the first streaming endpoint corresponding to a target tag value, and further switches to a transmission state MoveData. , completing a segment of target transmission represented by the target tag value, causing the first streaming state machine to switch back to the idle state Idle. The control method further determines whether any target transmission with a tag value associated with the first streaming endpoint has not been completed when the first streaming endpoint completes the target transmission represented by the target tag value; if all are completed, the The first streaming endpoint is deleted from the endpoint list 120 .

雖然本發明已以較佳實施例揭示如上,然其並非用以限定本發明,任何熟悉本技術領域者,在不脫離本發明的精神和範圍內,當可做些許更動與潤飾,因此本發明的保護範圍以權利要求書界定為準。Although the present invention has been disclosed above in terms of preferred embodiments, they are not intended to limit the present invention. Anyone familiar with the technical field can make some changes and modifications without departing from the spirit and scope of the present invention. Therefore, the present invention The scope of protection shall be determined by the claims.

100:主機 102:UASP(通用序列匯流排附加小型計算機系統接口協定)裝置 104:指令端點 106:資料輸出端點 108:資料輸入端點 110:狀態端點 112:作業系統(OS) 114:協定驅動器(UAS driver) 116:接口驅動器(xHCI driver) 118:接口控制器(xHCI controller) 119:緩存空間 120:端點列表 122:動態增刪列表的邏輯 124:任務狀態註記 300:讀取指令 302、304、306、308:封包組 Disabled:除能狀態 DP(Cmd, CIU)、DP(Data-in)、DP(Stat, SIU):指令、資料、狀態封包 ERDY、ERDY(Data-in)、ERDY(Stat):就緒數據包 Idle:閒置狀態 ITr(Stat)、ITr(Data-in)、OTr(Cmd, CIU)、OTc(Cmd)、ITc(Data-in)、ITc(Stat, SIU):要求 InACK(Data-in, Prime)、InACK(Stat, Prime)、ACK(Cmd)、InACK(Data-in)、InACK(Stat)、ACK(Stat):通知封包 MoveData:傳輸狀態 NRDY、NRDY(Data-in, Prime)、NRDY(Stat, Prime):未就緒數據包 PrimePipe:總管線狀態 S402…S410、S502…S510:步驟 StartStream:預備傳輸狀態 100:Host 102: UASP (Universal Serial Bus Attached Small Computer System Interface Protocol) device 104:Command endpoint 106: Data output endpoint 108: Data input endpoint 110: Status endpoint 112: Operating system (OS) 114: Protocol driver (UAS driver) 116:Interface driver (xHCI driver) 118: Interface controller (xHCI controller) 119: Cache space 120: Endpoint list 122: Logic of dynamic addition and deletion of lists 124:Task status notes 300: Read instructions 302, 304, 306, 308: Packet group Disabled: disabled state DP(Cmd, CIU), DP(Data-in), DP(Stat, SIU): command, data, status packet ERDY, ERDY(Data-in), ERDY(Stat): ready data packet Idle: idle state ITr(Stat), ITr(Data-in), OTr(Cmd, CIU), OTc(Cmd), ITc(Data-in), ITc(Stat, SIU): Requirements InACK(Data-in, Prime), InACK(Stat, Prime), ACK(Cmd), InACK(Data-in), InACK(Stat), ACK(Stat): notification packet MoveData:transmission status NRDY, NRDY(Data-in, Prime), NRDY(Stat, Prime): Not ready data packet PrimePipe:Total pipeline status S402…S410, S502…S510: steps StartStream: Preparatory transmission status

第1圖為方塊圖,根據本案一種實施方式圖解一電腦系統,支援UASP裝置(USB 3.0裝置); 第2圖為資料輸入端點108的流式狀態機; 第3圖以讀取操作為例圖解操作時序; 第4圖為流程圖,根據本案一種實施方式圖解接口控制器118的一操作流程,其中涉及邏輯122之運作,說明該接口控制器118如何建立該端點列表120;且 第5圖為流程圖,根據本案一種實施方式圖解接口控制器118的一操作流程,其中涉及邏輯122之運作,說明該接口控制器118如何應用該端點列表120,並動態刪減該端點列表120內容。 Figure 1 is a block diagram illustrating a computer system that supports UASP devices (USB 3.0 devices) according to an embodiment of the present invention; Figure 2 shows the streaming state machine of the data input endpoint 108; Figure 3 takes the read operation as an example to illustrate the operation sequence; Figure 4 is a flow chart illustrating an operation process of the interface controller 118 according to an embodiment of the present case, which involves the operation of the logic 122 and explains how the interface controller 118 creates the endpoint list 120; and Figure 5 is a flow chart illustrating an operation process of the interface controller 118 according to an embodiment of the present case, which involves the operation of the logic 122 and explains how the interface controller 118 applies the endpoint list 120 and dynamically deletes the endpoints. List 120 content.

without

100:主機 100:Host

102:UASP(通用序列匯流排附加小型計算機系統接口協定)裝置 102: UASP (Universal Serial Bus Attached Small Computer System Interface Protocol) device

104:指令端點 104:Command endpoint

106:資料輸出端點 106: Data output endpoint

108:資料輸入端點 108: Data input endpoint

110:狀態端點 110: Status endpoint

112:作業系統(OS) 112: Operating system (OS)

114:協定驅動器(UAS driver) 114: Protocol driver (UAS driver)

116:接口驅動器(xHCI driver) 116:Interface driver (xHCI driver)

118:接口控制器(xHCI controller) 118: Interface controller (xHCI controller)

119:緩存空間 119: Cache space

120:端點列表 120: Endpoint list

122:動態增刪列表的邏輯 122: Logic of dynamic addition and deletion of lists

124:任務狀態註記 124:Task status notes

Claims (20)

一種實現超高速通用序列匯流排通信的電腦系統,包括:一接口控制器,具有一緩存空間儲存一端點列表,並運行一邏輯,動態增刪該端點列表,其中:該接口控制器在接收到一第一流式端點發出的一第一未就緒數據包時,將該第一流式端點記錄於該端點列表;該第一流式端點的一第一流式狀態機係隨著該第一未就緒數據包之發出,切換到一閒置狀態,等待進入一預備傳輸狀態;該端點列表記錄有該第一流式端點時,該接口控制器略過將該第一流式狀態機自該閒置狀態切換為一總管線狀態;該接口控制器在該第一流式端點的所有目標傳輸完成後,將該第一流式端點自該端點列表刪除;且該接口控制器是在接收到各對應一段目標傳輸的端點操作門鈴時,檢查該端點列表,以略過將已載於該端點列表的該第一流式狀態機自該閒置狀態切換為該總管線狀態,而是令該第一流式狀態機處於該閒置狀態等待進入該預備傳輸狀態,以更切換為一傳輸狀態完成對應的該段目標傳輸。 A computer system that realizes ultra-high-speed universal serial bus communication, including: an interface controller, which has a cache space to store an endpoint list, and runs a logic to dynamically add and delete the endpoint list, wherein: the interface controller receives When a first streaming endpoint sends a first not-ready data packet, the first streaming endpoint is recorded in the endpoint list; a first streaming state machine of the first streaming endpoint follows the first streaming endpoint. When the unready data packet is sent, it switches to an idle state and waits to enter a ready transmission state; when the endpoint list records the first streaming endpoint, the interface controller skips the first streaming state machine from the idle state. The state switches to a total pipeline state; the interface controller deletes the first streaming endpoint from the endpoint list after all target transmissions of the first streaming endpoint are completed; and the interface controller deletes the first streaming endpoint from the endpoint list after receiving each When the endpoint corresponding to a target transmission operates the doorbell, the endpoint list is checked to skip switching the first streaming state machine already contained in the endpoint list from the idle state to the total pipeline state, and instead causes the first streaming state machine to be switched to the general pipeline state. The first streaming state machine is in the idle state and waits to enter the preparatory transmission state, so as to switch to a transmission state to complete the corresponding target transmission of the segment. 如請求項1之實現超高速通用序列匯流排通信的電腦系統,其中: 該接口控制器是在接收到對準該第一流式端點的端點操作門鈴時,檢查該端點列表,且在檢查到該端點列表尚未記錄該第一流式端點時,該接口控制器提供一通知封包給該第一流式端點,使該第一流式狀態機進入該總管線狀態,發出該第一未就緒數據包給該接口控制器。 For example, request item 1 is a computer system for realizing ultra-high-speed universal serial bus communication, wherein: The interface controller checks the endpoint list when receiving the endpoint operation doorbell aimed at the first streaming endpoint, and when checking that the endpoint list has not recorded the first streaming endpoint, the interface controller The controller provides a notification packet to the first streaming endpoint, causing the first streaming state machine to enter the total pipeline state and send the first not-ready data packet to the interface controller. 如請求項1之實現超高速通用序列匯流排通信的電腦系統,其中:對準該第一流式端點的複數個端點操作門鈴載有複數個標籤值,標示該第一流式端點的複數段目標傳輸;該閒置狀態的該第一流式狀態機,係根據該第一流式端點對應一目標標籤值所發出的一就緒數據包,切換為該預備傳輸狀態,以更切換為該傳輸狀態,使該目標標籤值所代表的一段目標傳輸在該第一流式端點與該接口控制器互動下完成,致使該第一流式狀態機切換回該閒置狀態;且該接口控制器是在該第一流式端點告知該目標標籤值所代表的該段目標傳輸完成時,判斷與該第一流式端點是否有任何標籤值的目標傳輸未完成,若都完成,該接口控制器將該第一流式端點自該端點列表刪除。 Such as claim 1, a computer system for realizing ultra-high-speed universal serial bus communication, wherein: operating a doorbell directed at a plurality of endpoints of the first streaming endpoint contains a plurality of tag values, indicating a plurality of the first streaming endpoints. Segment target transmission; the first streaming state machine in the idle state switches to the ready transmission state according to a ready data packet sent by the first streaming endpoint corresponding to a target tag value to further switch to the transmission state. , so that a segment of target transmission represented by the target tag value is completed under the interaction between the first streaming endpoint and the interface controller, causing the first streaming state machine to switch back to the idle state; and the interface controller is in the third When the first-stream streaming endpoint notifies the target segment represented by the target tag value that the transmission is completed, it determines whether any target transmission with the tag value associated with the first streaming endpoint is not completed. If all are completed, the interface controller transfers the first stream The endpoint is removed from the endpoint list. 如請求項1之實現超高速通用序列匯流排通信的電腦系統,其中:該接口控制器更在該緩存空間儲存一任務狀態註記,為該第一流 式端點提供對應複數個標籤值的第一組位元,各位元常態為一第一狀態,在對應之標籤值配置標示一段目標傳輸時,經該接口控制器切換為一第二狀態,直至該段目標傳輸完成才切回該第一狀態;且該接口控制器係根據都為該第一狀態的第一組位元,判定該第一流式端點的所有目標傳輸完成。 For example, in claim 1, the computer system for realizing ultra-high-speed Universal Serial Bus communication, wherein: the interface controller further stores a task status note in the cache space for the first stream. The endpoint provides a first group of bits corresponding to a plurality of tag values. Each bit is normally in a first state. When the corresponding tag value is configured to mark a target transmission, the interface controller switches to a second state until The segment of target transmission is completed before switching back to the first state; and the interface controller determines that all target transmissions of the first streaming endpoint are completed based on the first group of bits in the first state. 如請求項1之實現超高速通用序列匯流排通信的電腦系統,其中:接收到對準該第一流式端點的一第一端點操作門鈴時,該接口控制器檢查到該端點列表尚未記錄該第一流式端點,故提供一通知封包給該第一流式端點,使該第一流式狀態機進入該總管線狀態,發出該第一未就緒數據包給該接口控制器,使該接口控制器將該第一流式端點記錄於該端點列表,且使該第一流式狀態機切換到該閒置狀態;且對準該第一流式端點的該第一端點操作門鈴載有一第一標籤值,標示該第一流式端點的一第一目標傳輸。 For example, the computer system for realizing ultra-high-speed Universal Serial Bus communication in request item 1, wherein: when receiving a first endpoint operating the doorbell aimed at the first streaming endpoint, the interface controller checks that the endpoint list has not yet been Record the first streaming endpoint, so provide a notification packet to the first streaming endpoint, so that the first streaming state machine enters the total pipeline state, and sends the first not-ready data packet to the interface controller, so that the first streaming endpoint The interface controller records the first streaming endpoint in the endpoint list, and switches the first streaming state machine to the idle state; and aligns the first endpoint of the first streaming endpoint to operate the doorbell carrying a The first tag value indicates a first target transmission of the first streaming endpoint. 如請求項5之實現超高速通用序列匯流排通信的電腦系統,其中:接收到對準該第一流式端點的一第二端點操作門鈴時,該接口控制器檢查到該端點列表記錄有該第一流式端點,該接口控制器略過將該第一流式狀態機自該閒置狀態切換為該總管線狀態;且 對準該第一流式端點的該第二端點操作門鈴載有一第二標籤值,標示該第一流式端點的一第二目標傳輸。 For example, the computer system for realizing ultra-high-speed Universal Serial Bus communication in claim 5, wherein: when receiving a doorbell operation from a second endpoint aimed at the first streaming endpoint, the interface controller checks the endpoint list record With the first streaming endpoint, the interface controller skips switching the first streaming state machine from the idle state to the total pipeline state; and The second endpoint operating doorbell aligned with the first streaming endpoint carries a second tag value indicating a second target transmission of the first streaming endpoint. 如請求項6之實現超高速通用序列匯流排通信的電腦系統,其中:隨著該第一流式端點相應該第一標籤值發出的一就緒數據包,該第一流式狀態機自該閒置狀態進入該預備傳輸狀態;該接口控制器發出另一通知封包回應該第一標籤值的該就緒數據包,令該第一流式狀態機自該預備傳輸狀態切換到該傳輸狀態,使該第一流式端點與該接口控制器互動,完成該第一目標傳輸;且完成該第一目標傳輸後,該第一流式狀態機回到該閒置狀態,且該接口控制器判斷該第一流式端點尚有該第二目標傳輸未實現,令該端點列表維持記錄該第一流式端點。 As claimed in claim 6, the computer system for realizing ultra-high-speed Universal Serial Bus communication, wherein: as the first streaming endpoint sends a ready data packet corresponding to the first tag value, the first streaming state machine changes from the idle state Entering the preparatory transmission state; the interface controller sends another notification packet in response to the ready data packet of the first tag value, causing the first streaming state machine to switch from the preparatory transmission state to the transmission state, causing the first streaming The endpoint interacts with the interface controller to complete the first target transmission; and after completing the first target transmission, the first streaming state machine returns to the idle state, and the interface controller determines that the first streaming endpoint is still in the idle state. If the second target transmission is not realized, the endpoint list maintains the record of the first streaming endpoint. 如請求項7之實現超高速通用序列匯流排通信的電腦系統,其中:隨著該第一流式端點相應該第二標籤值發出的一就緒數據包,該第一流式狀態機自該閒置狀態進入該預備傳輸狀態;該接口控制器發出另一通知封包回應該第二標籤值的該就緒數據包,令該第一流式狀態機自該預備傳輸狀態切換到該傳輸狀態,使該第一流式端點與該接口控制器互動,完成該第二目標傳輸;且 完成該第二目標傳輸後,該第一流式狀態機回到該閒置狀態,且該接口控制器判斷該第一流式端點已無目標傳輸未完成,將該第一流式端點自該端點列表刪除。 As claimed in claim 7, the computer system for realizing ultra-high-speed universal serial bus communication, wherein: as the first streaming endpoint sends a ready data packet corresponding to the second tag value, the first streaming state machine changes from the idle state Entering the preparatory transmission state; the interface controller sends another notification packet in response to the ready data packet of the second tag value, causing the first streaming state machine to switch from the preparatory transmission state to the transmission state, causing the first streaming The endpoint interacts with the interface controller to complete the second target transmission; and After completing the second target transmission, the first streaming state machine returns to the idle state, and the interface controller determines that the first streaming endpoint has no target transmission to complete, and removes the first streaming endpoint from the endpoint. List delete. 如請求項6之實現超高速通用序列匯流排通信的電腦系統,其中:接收到對準一第二流式端點的一第三端點操作門鈴時,該接口控制器檢查到該端點列表尚未記錄該第二流式端點,提供另一通知封包給該第二流式端點,使該第二流式端點的一第二流式狀態機進入該總管線狀態,發出一第二未就緒數據包給該接口控制器,使該接口控制器將該第二流式端點記錄於該端點列表,且使該第二流式狀態機隨著該第二未就緒數據包之發出,切換到該閒置狀態,等待進入該預備傳輸狀態。 For example, the computer system for realizing ultra-high-speed Universal Serial Bus communication of claim 6, wherein: when receiving a third endpoint operating the doorbell aimed at a second streaming endpoint, the interface controller checks the endpoint list The second streaming endpoint has not yet been recorded, and another notification packet is provided to the second streaming endpoint, so that a second streaming state machine of the second streaming endpoint enters the total pipeline state and issues a second The not-ready data packet is sent to the interface controller, causing the interface controller to record the second streaming endpoint in the endpoint list, and causing the second streaming state machine to send out the second not-ready data packet. , switch to the idle state, and wait to enter the preparatory transmission state. 如請求項9之實現超高速通用序列匯流排通信的電腦系統,其中:該端點列表記錄有該第二流式端點時,該接口控制器略過將該第二流式狀態機自該閒置狀態切換為該總管線狀態;且該接口控制器在該第二流式端點的所有目標傳輸完成後,將該第二流式端點自該端點列表刪除。 For example, the computer system for realizing ultra-high-speed Universal Serial Bus communication in request item 9, wherein: when the endpoint list records the second streaming endpoint, the interface controller skips switching the second streaming state machine from the The idle state is switched to the total pipeline state; and the interface controller deletes the second streaming endpoint from the endpoint list after all target transmissions of the second streaming endpoint are completed. 一種超高速通用序列匯流排控制方法,包括:在一緩存空間儲存一端點列表,並運行一邏輯,動態增刪該端點列表; 相應一第一流式端點發出的一第一未就緒數據包,將該第一流式端點記錄於該端點列表,其中,該第一流式端點的一第一流式狀態機係隨著該第一未就緒數據包之發出,切換到一閒置狀態,等待進入一預備傳輸狀態;在該端點列表記錄有該第一流式端點時,略過將該第一流式狀態機自該閒置狀態切換為一總管線狀態;且在該第一流式端點的所有目標傳輸完成後,將該第一流式端點自該端點列表刪除;其中,該超高速通用序列匯流排控制方法是在接收到各對應一段目標傳輸的端點操作門鈴時,檢查該端點列表,以略過將已載於該端點列表的該第一流式狀態機自該閒置狀態切換為該總管線狀態,而是令該第一流式狀態機處於該閒置狀態等待進入該預備傳輸狀態,以更切換為一傳輸狀態完成對應的該段目標傳輸。 An ultra-high-speed universal serial bus control method includes: storing an endpoint list in a cache space, and running a logic to dynamically add and delete the endpoint list; Corresponding to a first not-ready data packet sent by a first streaming endpoint, the first streaming endpoint is recorded in the endpoint list, wherein a first streaming state machine of the first streaming endpoint follows the After the first unready data packet is sent, it switches to an idle state and waits to enter a ready transmission state; when the first streaming endpoint is recorded in the endpoint list, the first streaming state machine is skipped from the idle state. Switch to a total pipeline state; and after all target transmissions of the first streaming endpoint are completed, delete the first streaming endpoint from the endpoint list; wherein the ultra-high-speed universal serial bus control method is received When operating the doorbell on each endpoint corresponding to a segment of target transmission, the endpoint list is checked to skip switching the first streaming state machine already contained in the endpoint list from the idle state to the total pipeline state, and instead The first streaming state machine is placed in the idle state and waits to enter the preparatory transmission state, so as to switch to a transmission state to complete the corresponding target transmission. 如請求項11之超高速通用序列匯流排控制方法,更包括:相應對準該第一流式端點的端點操作門鈴,檢查該端點列表,且在檢查到該端點列表尚未記錄該第一流式端點時,提供一通知封包給該第一流式端點,使該第一流式狀態機進入該總管線狀態,發出該第一未就緒數據包。 For example, the ultra-high-speed universal serial bus control method of claim 11 further includes: operating a doorbell corresponding to the endpoint of the first streaming endpoint, checking the endpoint list, and checking that the endpoint list has not recorded the third When a streaming endpoint is provided, a notification packet is provided to the first streaming endpoint, so that the first streaming state machine enters the total pipeline state and sends the first not-ready data packet. 如請求項11之超高速通用序列匯流排控制方法,其中: 對準該第一流式端點的複數個端點操作門鈴載有複數個標籤值,標示該第一流式端點的複數段目標傳輸;該閒置狀態的該第一流式狀態機,係根據該第一流式端點對應一目標標籤值所發出的一就緒數據包,切換為該預備傳輸狀態,以更切換為該傳輸狀態,完成該目標標籤值所代表的一段目標傳輸,致使該第一流式狀態機切換回該閒置狀態;且該超高速通用序列匯流排控制方法更在該第一流式端點完成該目標標籤值所代表的該段目標傳輸時,判斷與該第一流式端點是否有任何標籤值的目標傳輸未完成,若都完成,將該第一流式端點自該端點列表刪除。 Such as the ultra-high-speed universal serial bus control method in request item 11, wherein: A plurality of endpoint operation doorbells directed at the first streaming endpoint carry a plurality of tag values, indicating a plurality of segment target transmissions of the first streaming endpoint; the first streaming state machine in the idle state is based on the first streaming endpoint. A ready data packet sent by the streaming endpoint corresponding to a target tag value switches to the ready transmission state, and then switches to the transmission state to complete a target transmission represented by the target tag value, resulting in the first streaming state The machine switches back to the idle state; and the ultra-high-speed universal serial bus control method further determines whether there is any connection with the first streaming endpoint when the first streaming endpoint completes the target transmission represented by the target tag value. The target transmission of the tag value is not completed. If it is completed, the first streaming endpoint is deleted from the endpoint list. 如請求項11之超高速通用序列匯流排控制方法,更包括:在該緩存空間儲存一任務狀態註記,為該第一流式端點提供對應複數個標籤值的第一組位元,其中,各位元常態為一第一狀態,在對應之標籤值配置標示一段目標傳輸時切換為一第二狀態,直至該段目標傳輸完成才切回該第一狀態;且根據都為該第一狀態的第一組位元,判定該第一流式端點的所有目標傳輸完成。 For example, the ultra-high-speed Universal Serial Bus control method of request item 11 further includes: storing a task status note in the cache space, and providing the first stream endpoint with a first group of bits corresponding to a plurality of tag values, wherein: The metanormal state is a first state. When the corresponding tag value is configured to mark a segment of target transmission, it switches to a second state. It does not switch back to the first state until the segment of target transmission is completed; and the basis is the third state of the first state. A set of bits that determines the completion of all target transfers for the first streaming endpoint. 如請求項11之超高速通用序列匯流排控制方法,更包括:相應對準該第一流式端點的一第一端點操作門鈴,檢查到該端點 列表尚未記錄該第一流式端點,提供一通知封包給該第一流式端點,使該第一流式狀態機進入該總管線狀態,發出該第一未就緒數據包,使該第一流式端點記錄於該端點列表,且使該第一流式狀態機切換到該閒置狀態;其中,對準該第一流式端點的該第一端點操作門鈴載有一第一標籤值,標示該第一流式端點的一第一目標傳輸。 For example, the ultra-high-speed universal serial bus control method of claim 11 further includes: operating a doorbell corresponding to a first endpoint of the first streaming endpoint, and checking that the endpoint The first streaming endpoint has not been recorded in the list, and a notification packet is provided to the first streaming endpoint, so that the first streaming state machine enters the total pipeline state, and the first not-ready data packet is sent out, so that the first streaming endpoint The point is recorded in the endpoint list, and the first streaming state machine is switched to the idle state; wherein, the first endpoint operating doorbell aimed at the first streaming endpoint carries a first tag value, indicating the first A first target transport for streaming endpoints. 如請求項15之超高速通用序列匯流排控制方法,更包括:相應對準該第一流式端點的一第二端點操作門鈴,檢查到該端點列表記錄有該第一流式端點,略過將該第一流式狀態機自該閒置狀態切換為該總管線狀態;其中,對準該第一流式端點的該第二端點操作門鈴載有一第二標籤值,標示該第一流式端點的一第二目標傳輸。 For example, the ultra-high-speed universal serial bus control method of claim 15 further includes: operating a doorbell corresponding to a second endpoint of the first streaming endpoint, and checking that the endpoint list records the first streaming endpoint, Skipping the switching of the first streaming state machine from the idle state to the total pipeline state; wherein, the second endpoint operation doorbell aligned with the first streaming endpoint carries a second tag value, indicating that the first streaming endpoint A second destination transport for the endpoint. 如請求項16之超高速通用序列匯流排控制方法,更包括:隨著該第一流式端點相應該第一標籤值發出的一就緒數據包,令該第一流式狀態機自該閒置狀態進入該預備傳輸狀態;發出另一通知封包回應該第一標籤值的該就緒數據包,令該第一流式狀態機自該預備傳輸狀態切換到該傳輸狀態,使該第一流式端點的該第一目標傳輸完成;且完成該第一目標傳輸後,令該第一流式狀態機回到該閒置狀態, 且判斷出該第一流式端點尚有該第二目標傳輸未實現,令該端點列表維持記錄該第一流式端點。 For example, the ultra-high-speed universal serial bus control method of claim 16 further includes: following a ready data packet sent by the first streaming endpoint corresponding to the first tag value, causing the first streaming state machine to enter from the idle state. The preparation transmission state; sending another notification packet in response to the ready data packet of the first tag value, causing the first streaming state machine to switch from the preparation transmission state to the transmission state, causing the first streaming endpoint to A target transmission is completed; and after completing the first target transmission, the first streaming state machine is returned to the idle state, And it is determined that the second target transmission of the first streaming endpoint has not been realized, so that the endpoint list keeps recording the first streaming endpoint. 如請求項17之超高速通用序列匯流排控制方法,更包括:隨著該第一流式端點相應該第二標籤值發出的一就緒數據包,令該第一流式狀態機自該閒置狀態進入該預備傳輸狀態;發出另一通知封包回應該第二標籤值的該就緒數據包,令該第一流式狀態機自該預備傳輸狀態切換到該傳輸狀態,使該第一流式端點的該第二目標傳輸完成;且完成該第二目標傳輸後,令該第一流式狀態機回到該閒置狀態,且判斷出該第一流式端點已無目標傳輸未完成,將該第一流式端點自該端點列表刪除。 For example, the ultra-high-speed universal serial bus control method of claim 17 further includes: following a ready data packet sent by the first streaming endpoint corresponding to the second tag value, causing the first streaming state machine to enter from the idle state. The preparation transmission state; sending another notification packet in response to the ready data packet of the second tag value, causing the first streaming state machine to switch from the preparation transmission state to the transmission state, causing the first streaming endpoint to The second target transmission is completed; and after completing the second target transmission, the first streaming state machine is returned to the idle state, and it is determined that the first streaming endpoint has no target transmission that has not been completed, and the first streaming endpoint is Removed from this endpoint list. 如請求項16之超高速通用序列匯流排控制方法,更包括:相應對準一第二流式端點的一第三端點操作門鈴時,檢查到該端點列表尚未記錄該第二流式端點,提供另一通知封包給該第二流式端點,使該第二流式端點的一第二流式狀態機進入該總管線狀態,發出一第二未就緒數據包,使該第二流式端點記錄於該端點列表,且使該第二流式狀態機隨著該第二未就緒數據包之發出,切換到該閒置狀態,等待進入該預備傳輸狀態。 For example, the ultra-high-speed universal serial bus control method of claim 16 further includes: when operating the doorbell on a third endpoint corresponding to a second streaming endpoint, it is checked that the endpoint list has not yet recorded the second streaming endpoint. The endpoint provides another notification packet to the second streaming endpoint, causing a second streaming state machine of the second streaming endpoint to enter the total pipeline state, and sends a second not ready data packet, causing the second streaming endpoint to enter the total pipeline state. The second streaming endpoint is recorded in the endpoint list, and the second streaming state machine is switched to the idle state as the second unready data packet is sent, waiting to enter the ready transmission state. 如請求項19之超高速通用序列匯流排控制方法, 更包括:該端點列表記錄有該第二流式端點時,略過將該第二流式狀態機自該閒置狀態切換為該總管線狀態;且在該第二流式端點的所有目標傳輸完成後,將該第二流式端點自該端點列表刪除。 For example, the ultra-high-speed universal serial bus control method of request 19, It further includes: when the endpoint list records the second streaming endpoint, skip switching the second streaming state machine from the idle state to the total pipeline state; and in all the second streaming endpoints After the target transmission is completed, the second streaming endpoint is deleted from the endpoint list.
TW111130008A 2022-08-10 2022-08-10 Super speed universal serial bus control method and computer system therefor TWI824658B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW111130008A TWI824658B (en) 2022-08-10 2022-08-10 Super speed universal serial bus control method and computer system therefor
CN202211030883.1A CN115422113A (en) 2022-08-10 2022-08-26 Super-high speed universal serial bus control method and computer system for realizing same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW111130008A TWI824658B (en) 2022-08-10 2022-08-10 Super speed universal serial bus control method and computer system therefor

Publications (2)

Publication Number Publication Date
TWI824658B true TWI824658B (en) 2023-12-01
TW202407554A TW202407554A (en) 2024-02-16

Family

ID=84200021

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111130008A TWI824658B (en) 2022-08-10 2022-08-10 Super speed universal serial bus control method and computer system therefor

Country Status (2)

Country Link
CN (1) CN115422113A (en)
TW (1) TWI824658B (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200820003A (en) * 2006-06-07 2008-05-01 Standard Microsyst Smc Low power and low pin count bi-directional dual data rate device interconnect interface
TW201437800A (en) * 2013-03-29 2014-10-01 Silicon Motion Inc Status switching method
CN105630718A (en) * 2014-09-12 2016-06-01 亚信电子股份有限公司 Electronic device for providing instant switching and sharing of universal serial bus electronic equipment by host
US20180285308A1 (en) * 2017-04-03 2018-10-04 Futurewei Technologies, Inc. Universal serial bus network switch
US20200174956A1 (en) * 2015-08-14 2020-06-04 Icron Technologies Corporation Systems for enhancing boardroom tables to include usb type-c power and connectivity functionality
CN113778918A (en) * 2020-12-14 2021-12-10 西安网虫信息科技有限公司 USB device management system and management method

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200820003A (en) * 2006-06-07 2008-05-01 Standard Microsyst Smc Low power and low pin count bi-directional dual data rate device interconnect interface
TW201437800A (en) * 2013-03-29 2014-10-01 Silicon Motion Inc Status switching method
CN105630718A (en) * 2014-09-12 2016-06-01 亚信电子股份有限公司 Electronic device for providing instant switching and sharing of universal serial bus electronic equipment by host
US20200174956A1 (en) * 2015-08-14 2020-06-04 Icron Technologies Corporation Systems for enhancing boardroom tables to include usb type-c power and connectivity functionality
US20180285308A1 (en) * 2017-04-03 2018-10-04 Futurewei Technologies, Inc. Universal serial bus network switch
CN113778918A (en) * 2020-12-14 2021-12-10 西安网虫信息科技有限公司 USB device management system and management method

Also Published As

Publication number Publication date
CN115422113A (en) 2022-12-02
TW202407554A (en) 2024-02-16

Similar Documents

Publication Publication Date Title
US9696942B2 (en) Accessing remote storage devices using a local bus protocol
US9727503B2 (en) Storage system and server
US9292224B2 (en) Providing indirect data addressing for a control block at a channel subsystem of an I/O processing system
EP1899830B1 (en) Automated serial protocol target port transport layer retry mechanism
US20050060479A1 (en) High speed and flexible control for bridge controllers
JP5185289B2 (en) Content end type DMA
EP2028595B1 (en) Hierarchical cache memory system
WO2018232736A1 (en) Memory access technology and computer system
CA2511046A1 (en) Multi-node system, internodal crossbar switch, node and medium embodying program
CN111159075A (en) Data transmission method and data transmission device
US10929332B2 (en) USB transmission device and transmission method
CN102843435A (en) Access and response method and access and response system of storing medium in cluster system
TWI824658B (en) Super speed universal serial bus control method and computer system therefor
TW202244725A (en) Accelerating method of executing comparison functions and accelerating system of executing comparison functions
US7127530B2 (en) Command issuing apparatus for high-speed serial interface
US7818472B2 (en) Repeat CCW count argument for device command word processing
JPH10334037A (en) Communication dma device
JP2007004710A (en) Storage access system, data transfer device, storage accessing method and program
US7430634B2 (en) Data transfer apparatus and data transfer method
JP2001222396A (en) Printer controller and printer language switching method
JP2000132507A (en) Command processing method for scsi protocol and device used for the processing method
JPH11252150A (en) Network connection device and network connection control method
JP2853607B2 (en) Communication system between jobs
US7028131B1 (en) Reverse message writes and reads
JPH0955070A (en) Magnetic disk device