TWI343529B - Method and apparatus for performing full transfer automation in a usb controller - Google Patents
Method and apparatus for performing full transfer automation in a usb controller Download PDFInfo
- Publication number
- TWI343529B TWI343529B TW96151485A TW96151485A TWI343529B TW I343529 B TWI343529 B TW I343529B TW 96151485 A TW96151485 A TW 96151485A TW 96151485 A TW96151485 A TW 96151485A TW I343529 B TWI343529 B TW I343529B
- Authority
- TW
- Taiwan
- Prior art keywords
- buffer
- usb
- logic signal
- data
- hardware logic
- Prior art date
Links
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/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- 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/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Systems (AREA)
Description
1343529 九、發明說明: * 【發明所屬之技術領域】 . 本申請案係關於通用串列匯流排(USB)資料傳送架構及 方法。更具體言之,本申請案係關於用於增加刪周邊設 _ 備中之資料輸送量的USB資料傳送架構及方法。 【先前技術】 諸如含有非揮發性記憶體之資料儲存設備的usb周邊設 備通常在家庭及商務計算環境中被用於緊密及攜帶型封裝 • 巾的可靠資料儲存。此類型之⑽周邊設備可包括利用協 定處理f式與USB實體層(PHY)設備建立介面之⑽控制 器及與快閃記憶體通信之後端電路。當經由USB設備之 USB連接器連接之主機希望向該USB設備寫入或自其讀取 '‘ 資料時,藉由適當USB協定且以根據一約定標準之適當格 式來呈現命令及資料。該等USB標準以理論上最大資料傳 送速率而設計。雖然USB標準理論上將支援此等最大資料 速率,但歸因於儲存媒體及相關聯電路的限制,usb資料 ^ 儲存設備之效能實際上可能不能達成最大資料速率。 USB資料儲存設備中之USB控制器管理資料傳送至及傳 , 送自該USB資料儲存設備。通常,以已知長度之批量來傳 ^ 送資料並在主機與U S B設備之間交換交握訊息以管理資料 傳送期間的時序及錯誤檢查。一處理USB周邊設備令之資 料交換的方法為USB控制器回應於隨著每一批量之資料移 動至或移動自緩衝器所產生之處理器中斷而執行一内部微 處理器上的多個韌體指令。然而,涉及韌體可顯著影響資 127934.doc 1343529 料傳送效能。每一中斷將延遲内部微處理器可能參與之其 他動作,或將微處理器自任何臨時睡眠或閒置模式唤醒, 且很可能需要時間來識別、解譯及作用於關於該中斷之勒 體指令。因此’ USB控制器中之微處理器動作可減慢可達 成之資料傳送速率且增加USB設備中的功率消耗。 【發明内容】1343529 IX. Description of the invention: * [Technical field to which the invention pertains] This application relates to a general serial bus (USB) data transfer architecture and method. More specifically, the present application relates to a USB data transfer architecture and method for increasing the amount of data transferred in a peripheral device. [Prior Art] USB peripheral devices such as data storage devices containing non-volatile memory are commonly used in home and business computing environments for reliable data storage of compact and portable packages. The (10) peripheral device of this type may include a (10) controller that establishes an interface with a USB physical layer (PHY) device using a protocol f and a back-end circuit that communicates with the flash memory. When a host connected via a USB connector of a USB device wishes to write to or read from the USB device, the command and data are presented by an appropriate USB protocol and in an appropriate format according to an agreed standard. These USB standards are designed with a theoretical maximum data transfer rate. Although the USB standard will theoretically support these maximum data rates, due to limitations of the storage media and associated circuitry, the performance of the usb data storage device may not actually achieve the maximum data rate. The USB controller management data in the USB data storage device is transmitted to and from the USB data storage device. Typically, data is sent in batches of known length and exchanged messages are exchanged between the host and the U S B device to manage timing and error checking during data transfer. A method of processing USB peripheral devices for data exchange is to execute a plurality of firmware on an internal microprocessor in response to a processor interrupt generated by moving or moving the data from the buffer with each batch of data. instruction. However, the involvement of the firmware can significantly affect the throughput of the 127934.doc 1343529 material. Each interrupt will delay other actions that the internal microprocessor may participate in, or wake the microprocessor from any temporary sleep or idle mode, and will likely take time to identify, interpret, and act on the instruction for the interrupt. Therefore, the microprocessor operation in the USB controller can slow down the data transfer rate and increase the power consumption in the USB device. [Summary of the Invention]
為解決對經改良之USB控制器架構及傳送資料之方法的 需要,提出可在某些資料傳送功能期間減少或避免使用韌 體及微處理器額外耗用的具有完全傳送自動化之刪控制 器。To address the need for an improved USB controller architecture and method of transferring data, it is proposed to have a full transfer automation decommissioner that can reduce or avoid the use of firmware and microprocessors during certain data transfer functions.
根據-第-態樣,揭示—種在_通用串列匯流排⑽B) 控制器中實施完全傳送自動化之方法。該方法包括在該 USB控制器處自—主機接收—咖大量資料傳送起始訊息 及在-USB大量資料傳送操作期間傳送資料封包。在該大 量資料傳送操作之一資料傳送階段期間,在該刪控制器 =一主機介面模組與—後端模組之間交換關於該刪控制 器内之一資料傳送狀態的硬體產生邏輯信號。在—實施 中,父換硬體產生邏輯信號可包括在該刪大量資料傳送 操作期間在該USB控制器之一後端模組中產生指示一緩衝 記憶體準備就緒將資料傳送人或傳送出大㈣存媒體之至 少―後端硬體邏輯信號。另夕卜,交換硬體產生邏輯信號可 i括在„亥USB控制器之一主機介面模組中產生至少一主機 介面模組硬體邏輯信號,使得在一刪大量資料傳送讀取 或寫入操作期間’該後端模組及主機介面模組可經組態以 127934.doc 1343529 ,彼此進行關於該USB控制器内之資㈣送狀態的㈣。 在另-態樣巾,-種在_通料龍流排_)控制器 中實施:全傳送自動化之方法包括在該刪控制器處接收 USB大里傳送寫入操作之_Usb大量資料傳送起始訊息, 及在該刪控制器内初始化—完全傳送自動化模式。在該 刪大量傳送寫入操作期間,於該⑽控制器處,自主機 接收資料封包,並在接收該等資料封包的同時,於該刪 =二之一主機介面模組與一後端模組之間,交換關於該 控制器内之-資料傳送狀態的硬體產生邏輯信號。 在又#代實施中,揭示—種在一通 卿)控制器Μ施完全傳送自動化之方法,盆中在t =!器處’自-主機接收,b大量傳送讀取操作: ㈣傳送起始訊息’且該咖控制器在該咖控 制㈣起始一完全傳送自動化模式。在該大量傳送讀取操 :乍期間’該完全傳送自動化模式可包括自該咖控制器向 Μ主機傳輸資料封包,及在傳輸該等資料封包的同時, 於該USB控制益之—主機介面模组與一後端模組之間,交 =關於該⑽控制器内之資料傳送狀態的硬體產生邏輯信 根據另—態樣’揭示—種用於—聰周邊設備中之通用 •列匯流排(USB)控制器。該刪控制器可包括一具 衝§己憶體之後端模組,該緩衝記憶體經組態以將資料傳送 二或傳送出諸如非揮發性記憶體之大量儲存媒體。另外, 機’|面模組與該後端模組通信H组態以與—主機 127934.doc 1343529 通信。後端模組及主機介面模組亦經組態以在―湖大量 資料傳送讀取或寫人操作期間,經由硬體邏輯信號而彼此 進行關於該腦控制器内之_f料傳送狀態的通信。 在另一 ‘4樣中,描述一種通用串列匯流排(USB)周邊設 備。該USB周邊設備可包括諸如非揮發性記憶體之大量儲 存媒體,該大量儲存媒體經調適用於自一主機及— USB控 制器接收資料或向該主機及該uSB控制器提供資料。該According to the -th aspect, a method of implementing full transfer automation in the _universal serial bus (10) B) controller is disclosed. The method includes receiving, at the USB controller, a data transfer start message from the host and transmitting the data packet during the -USB mass data transfer operation. During a data transfer phase of the mass data transfer operation, a hardware generated logic signal is exchanged between the delete controller=a host interface module and the backend module for a data transfer state in the delete controller. . In the implementation, the parent switching hardware generates a logic signal, which may include generating a buffer in a backend module of the USB controller during the mass data transfer operation to indicate that the buffer memory is ready to transmit or transmit the data. (4) At least the back-end hardware logic signal of the storage medium. In addition, the switching hardware generates a logic signal to generate at least one host interface module hardware logic signal in one of the host interface modules of the USB controller, so that a large amount of data is transferred to read or write. During operation, the back-end module and host interface module can be configured with 127934.doc 1343529, and each other can carry out (4) the status of the USB controller (4). In the other-style sample towel, In the controller, the method of full transfer automation includes receiving the _Usb mass data transfer start message of the USB large transfer write operation at the delete controller, and initializing in the delete controller. Fully transmitting the automatic mode. During the deletion of the mass transfer write operation, at the (10) controller, the data packet is received from the host, and at the same time as receiving the data packet, the host interface module is deleted Between a back-end module, a hardware-generated logic signal is exchanged for the data transfer state in the controller. In the implementation of the generation, the method of fully transmitting the automation is disclosed in a controller. Pots In the t =! device 'self-host receiving, b mass transfer read operation: (four) transfer start message 'and the coffee controller in the coffee control (four) start a full transfer automation mode. In the mass transfer read During the operation period, the full transmission automation mode may include transmitting data packets from the coffee controller to the host, and transmitting the data packets while the USB control benefits the host interface module and a back module. Between the groups, the hardware generated logical information about the data transfer status in the (10) controller is disclosed in the other way as a general-purpose column bus (USB) controller for use in the Cong peripheral device. The delete controller may include a rear end module that is configured to transfer data or transfer a large amount of storage medium such as non-volatile memory. The module communicates with the backend module to configure H to communicate with the host 127934.doc 1343529. The backend module and the host interface module are also configured to be used during the "hulk data transfer read or write operation". Via hardware logic signals This performs communication regarding the state of delivery of the message within the brain controller. In another example, a universal serial bus (USB) peripheral device is described. The USB peripheral device may include, for example, non-volatile memory. A large amount of storage medium adapted to receive data from a host and a USB controller or to provide data to the host and the uSB controller.
USB控制器可包括一具有緩衝記憶體之後端模組,該緩衝 記憶體經組態以將資料傳送人或傳送出該大量儲存媒體。 另外’該控制器可包括—與該後端模組通信且經組態以與 «玄主機通#之主機介面模組,其中在一 usb大量資料傳送 讀取或寫人操作期間,後端模組及主機介面模組經組態以 經由硬體邏輯信號而彼此進行關於該USB控制器内之一資 料傳送狀態的通信。The USB controller can include a buffer memory back module that is configured to transfer data to or from the mass storage medium. In addition, the controller may include a host interface module that communicates with the backend module and is configured to communicate with the host device, wherein during a large amount of data transfer read or write operations, the back end mode The group and host interface modules are configured to communicate with each other about a data transfer state within the USB controller via hardware logic signals.
在審閱以下圖式、實施方式及中請專利職後,本發明 之其他特徵及優點即變得顯而易見。 【實施方式】 圖1說明經由USB通信線14與主機12連接之通用串列匯 流排(USB)周邊設備10的方塊圖。主機丨2可為個人電腦之 USB埠或例如MP3播放器、行動電話等具有USB能力之任 何電子組件^ USB通信線14可為USB周邊設備1〇經由—標 準USB連接器至主機12的直接USB連接,或可包括諸如集 線窃之介入USB功能。如圖i中所示,USB周邊設備1〇可為 經組態用於大量資料儲存之快閃記憶體拇指驅動器(thumb 127934.doc •9· 1343529 drive)。USB周邊設備包括由主機介面模組(HIM)】8、緩 衝器管理單元(BMU) 20、快閃記憶體介面模組(FIM) 22及 中央處理單元(CPU) 24組成之USB控制器16。usb控制器 16與USB周邊設備10外部的USB通信線14通信且亦與含於 USB周邊設備1〇内之快閃記憶體%通信。雖然usb控制器 16之一或多個組件可被組態為分立組件,但在一實施例 中’ HIM 18、BMU 20、FIM 22及CPU 24全部被形成於單 一特殊用途積體電路(ASIC)上。又,雖然說明了快閃記憶 體,但涵蓋其他非揮發性記憶體或大量儲存媒體。 現參看圖2,更詳細地展示HIM 。HIM 18包括實體層 介面28,諸如用於在一側與USB串列匯流排資料線接合且 在另一側與一UTMI介面接合的USB 2〇實體介面。實體層 介面28自串列流提取時脈資訊及資料、檢查所接收資料令 之錯誤、執行NRZI解碼、位元抽取、串列至並列轉換, 且接著將此資料發送至USB設備核心3〇 實體層介面28亦 執行相反功能,進而將以UTMIi列資料格式自USB設備 核心30接收之資料轉譯成USB串列資料格式。在一實施 中,UTMI傳輸可為並列30 MHz 16位元匯流排。在其他實 施中’可以用於USB應用之多個數位介面標準中之任—者 來替代UTMI ’諸如UTMI+或ULPI 〇可以多個USB 2 〇 PHY IP核心配置中的任一者來實施實體層介面28,諸如彼 等可構得於葡萄牙里斯本(Lisb〇n)之Chipidea MicroelectMnica S.A.的配置。又,實體層介面28可支援符 合USB 2.0規格之高速(480 Mbps)、全速(12 Mbps)及低速 127934.doc -10· 1343529 (1·5 Mbps)資料傳送速率β USB設備核心30包括媒體存取控制(MAC)控制器32及直 接s己憶體存取(DMA)區塊3 6。每一者經由微處理器介面4〇 而與CPU 24通信以允許CPU 24讀取及寫入至USB設備核心 30暫存器、以設置並觸發USB異動且回應USB設備核心30 所報告之異動事件及狀態改變。MAC控制器32經由UTMI 資料路徑而與實體層介面28通信、解析自主機接收之所有 USB符記並產生回應封包。另外,MAC控制器32亦負責所 有錯誤檢查、檢查填充產生、USB交握格式、ping命令及 資料回應封包,及必須基於USB時序要求而產生之任何信 號。 DMA區塊36與MAC控制器32通信,且負責在USB設備核 心與BMU 20中之緩衝RAM (BRAM)之間移動所有待傳送 至或傳送自USB周邊設備1〇中之快閃記憶體26的資料。在 一實施中,當管理諸如USB大量資料輸入或輸出傳送(亦分 別稱為大量資料讀取或寫入傳送)之資料傳送時,DMA區 塊36經由USB完全傳送自動化(FTA)介面與USB周邊設備 10中之BMU 20通信,以交換硬體邏輯產生交握信號。諸 如BVCI介面之資料匯流排連接將DMA區塊36與CPU 24連 接。另外,DMA區塊36維持内容資訊,並在MAC控制器 32與DMA區塊36之間建置可組態FIFO緩衝器42、44。此 等FIFO解耦來自USB協定本身所要求之緊密時序的系統處 理器記憶體匯流排請求,並衡消影響DMA區塊36與MAC 控制器32之間之資料傳送之時序之内部時脈頻率的差異。 127934.doc 11 1343529 可為系統中之活動端點之每一者維持多個FIFO通道。基於 所支援之設備端點之數目,及獲取匯流排並擷取一資料區 塊的最壞情況潛時,確定TX及RX FIFO緩衝器之大小。 在一實施中,USB核心30可為來自Portugal之Lisbon之 Chipidea Microelectronica S.A,的 IP核心。亦可使用來自其 他USB IP核心提供者之多個其他1{>核心中的任一者。HIM 18亦包括FTA暫存器46及FTA邏輯模組48。FTA暫存器46 經組態以接收用於啟用完全傳送自動化模式之設立資訊, 其中如下文更詩細描述,USB控制器16可利用硬體產生邏 輯信號而非經由中斷之CPU動作及韌體指令來管理資料區 塊移動至及移動自BRAM。隨著硬體產生邏輯信號遞增一 預期之大量資料傳送中已完成之資料區塊傳送的數目, FTA暫存器亦維持諸如當前傳送狀態之資訊。fta模組48 含有USB控制器16在FTA模式中操作時用於產生内部交握 信號之硬體邏輯。輔助介面5〇可含有具有供處理器以處理 諸如CPU睡眠或喚醒常式之各種任務之韌體的輔助暫存 器。 圖3說明USB控制器16之其餘部分,並展示USB周邊設備 10之快閃記憶體26(本文中將其組合稱為USB周邊設備1〇之 後端52)〇緩衝器管理單元(BMU) 2〇可包括與bram %通 信之自動緩衝管理器(ABM) 54。可以多種方式來分割 BRAM 56,(例如)以提供用於傳輸或接收待寫人或讀取自 快閃記憶體26之大量資料傳送之f料封包(諸如刪高速應 用中之512位元區塊)的第一緩衝器58及第二緩衝器。 127934.doc 12· 1343529 BMU 2〇與在BMU 2G與快閃記憶體%之間協調的快閃介面 模組(FIM) 22通信。 為在邊設備1G中實施完全傳送自動化,並相應地 輔助增加資料速度及降低功率消耗,職周邊設_包括 對標準USB控制架構的若干修改,以使用硬體邏輯在 USB控制器16中提供額外内部交握。可在該控制器之硬體 邏輯中實施詩細Μ 18與㈣52之_信之此等額外内Other features and advantages of the present invention will become apparent upon review of the appended claims. [Embodiment] FIG. 1 is a block diagram showing a universal serial bus (USB) peripheral device 10 connected to a host 12 via a USB communication line 14. The host computer 2 can be a USB port of a personal computer or any electronic component having USB capability such as an MP3 player, a mobile phone, etc. The USB communication line 14 can be a USB peripheral device 1 via a standard USB connector to the direct USB of the host 12 Connected, or may include an interventional USB function such as wire thief. As shown in Figure i, the USB peripheral device 1 can be a flash memory thumb drive (thumb 127934.doc • 9. 1343529 drive) configured for mass data storage. The USB peripheral device includes a USB controller 16 composed of a Host Interface Module (HIM) 8, a Buffer Management Unit (BMU) 20, a Flash Memory Interface Module (FIM) 22, and a Central Processing Unit (CPU) 24. The usb controller 16 communicates with the USB communication line 14 external to the USB peripheral device 10 and also with the flash memory % contained in the USB peripheral device 1A. Although one or more components of the usb controller 16 can be configured as discrete components, in one embodiment the 'HIM 18, BMU 20, FIM 22, and CPU 24 are all formed in a single special purpose integrated circuit (ASIC). on. Also, although flash memory is described, other non-volatile memories or mass storage media are contemplated. Referring now to Figure 2, the HIM is shown in more detail. The HIM 18 includes a physical layer interface 28, such as a USB 2® physical interface for bonding with a USB serial bus data line on one side and a UTMI interface on the other side. The physical layer interface 28 extracts clock information and data from the serial stream, checks received data for errors, performs NRZI decoding, bit extraction, serial to parallel conversion, and then sends the data to the USB device core. The layer interface 28 also performs the inverse function to translate the data received from the USB device core 30 in the UTMi column data format into a USB serial data format. In one implementation, the UTMI transmission can be a side-by-side 30 MHz 16-bit bus. In other implementations - any of a number of digital interface standards that can be used for USB applications - instead of UTMI - such as UTMI+ or ULPI - can implement a physical layer interface in any of a number of USB 2 〇 PHY IP core configurations 28, such as the configuration of Chipidea Microelect Mnica SA which can be constructed in Lisb〇n, Portugal. In addition, the physical layer interface 28 can support high speed (480 Mbps), full speed (12 Mbps) and low speed 127934.doc -10·1343529 (1·5 Mbps) data transfer rate conforming to the USB 2.0 specification. The USB device core 30 includes media storage. A control (MAC) controller 32 and a direct memory access (DMA) block 36 are taken. Each communicates with the CPU 24 via a microprocessor interface to allow the CPU 24 to read and write to the USB device core 30 registers to set and trigger USB transactions and to respond to the transaction events reported by the USB device core 30. And the status changes. The MAC controller 32 communicates with the physical layer interface 28 via the UTMI data path, parses all USB tokens received from the host, and generates response packets. In addition, the MAC controller 32 is responsible for all error checking, checking pad generation, USB handshake format, ping commands, and data response packets, as well as any signals that must be generated based on USB timing requirements. The DMA block 36 is in communication with the MAC controller 32 and is responsible for moving all of the flash memory 26 to be transferred to or from the USB peripheral device 1 between the USB device core and the buffer RAM (BRAM) in the BMU 20. data. In one implementation, when managing data transfers such as USB mass data input or output transfer (also referred to as mass data read or write transfer, respectively), DMA block 36 completely transfers the automation (FTA) interface to the USB peripheral via USB. The BMU 20 in device 10 communicates to exchange hardware logic to generate a handshake signal. A data bus connection such as the BVCI interface connects the DMA block 36 to the CPU 24. In addition, DMA block 36 maintains the content information and builds configurable FIFO buffers 42, 44 between MAC controller 32 and DMA block 36. These FIFOs decouple the system processor memory bus request from the tight timing required by the USB protocol itself and offset the internal clock frequency that affects the timing of data transfer between the DMA block 36 and the MAC controller 32. difference. 127934.doc 11 1343529 Multiple FIFO channels can be maintained for each of the active endpoints in the system. The size of the TX and RX FIFO buffers is determined based on the number of supported device endpoints, and the worst case latency for obtaining the bus and extracting a data block. In one implementation, the USB core 30 can be an IP core from Chipidea Microelectronica S.A, of Lisbon, Portugal. Any of a number of other 1{> cores from other USB IP core providers may also be used. The HIM 18 also includes an FTA register 46 and an FTA logic module 48. The FTA register 46 is configured to receive setup information for enabling the full transfer automation mode, wherein as described in more detail below, the USB controller 16 can utilize hardware to generate logic signals rather than interrupted CPU actions and firmware. Instructions to manage the movement of data blocks to and from BRAM. The FTA register also maintains information such as the current transfer status as the hardware generates a logic signal that is incremented by the expected number of data blocks transferred in the bulk data transfer. The fta module 48 contains hardware logic for generating an internal handshake signal when the USB controller 16 is operating in the FTA mode. The Auxiliary Interface 5 can contain a secondary scratchpad with firmware for the processor to handle various tasks such as CPU sleep or wake-up routines. 3 illustrates the remainder of the USB controller 16 and shows the flash memory 26 of the USB peripheral device 10 (collectively referred to herein as the USB peripheral device 1〇end 52) buffer management unit (BMU) 2〇 An automatic buffer manager (ABM) 54 that communicates with the bram % can be included. The BRAM 56 can be partitioned in a variety of ways, for example, to provide a bulk packet for transmitting or receiving a large amount of data transfer to or from the flash memory 26 (such as deleting a 512-bit block in a high speed application). The first buffer 58 and the second buffer. 127934.doc 12· 1343529 BMU 2〇 communicates with Flash Interface Module (FIM) 22 coordinated between BMU 2G and Flash Memory%. In order to implement full transfer automation in the edge device 1G and correspondingly assist in increasing data speed and power consumption, the peripherals include several modifications to the standard USB control architecture to provide additional hardware in the USB controller 16 using hardware logic. Internal grip. It can be implemented in the hardware logic of the controller, and the additional details of the verses 18 and (4) 52
部交握訊息,以消除某些傳統動體實施步驟要求涉及CPU 24的需求。 USB^準支援四種傳送/端點類^ :控制傳送、中斷傳 送、等時傳送及大量傳送。如下文指tH,大量傳送涉及以 固定長度區塊處理之大資料叢發,且可最大受益於本文中 描述之完全傳送自動化。在—實施中,⑽控制器Μ僅在 大量資料傳送任務期間調用本文描述之完全傳送自動化,The Ministry of Communication holds the message to eliminate the need for certain traditional mobile implementation steps involving the CPU 24. USB^ supports four types of transmission/endpoints ^: control transfer, interrupt transfer, isochronous transfer, and mass transfer. As referred to below as tH, mass transfer involves large bursts of data processed in fixed length blocks and can benefit most from the full transfer automation described herein. In the implementation, (10) the controller 调用 invokes the full transfer automation described herein only during a large number of data transfer tasks.
且將夕個;^準中之任—者或已知的基於cpu之傳送機制用 於等時端點、控制端點或中斷端點。 關於USB標準下之大量資料傳送,提供如圖”所說明 的一個p& I又在第m主機丨2向周邊設備1 〇發送 CBW(命令區塊包)訊!,且該訊息被置人緩衝器管理單 元20之BRAM 46中(步驟62處)。CBW訊息為31個位元組且 ζ_>括關於USB周邊设備1〇將執行之傳送之類型的資訊。在 接收4 CB W 息後,USB周邊設備中之勃體(例如,在 息並將資料寫入HIM 18 器46。下文更詳細地論 24之主RAM (MRAM)中)讀取此訊 中的完全傳送自動化(FTA)暫存 127934.doc -13· 1343529 述’ FTA暫存器46包括諸如BRAM 56中之起始位址、緩衝 器大小及傳送方向之資訊。在該CBW階段之後,大量資料 傳送之資料階段發生且主機12視CBW訊息中所指示之傳送 方向而將資料封包發送至(大量輸出傳送或寫入操作)USB 周邊設備10或自其接收資料封包(大量輸入傳送或讀取操 作)(步驟64、66處)。USB大量資料傳送之最後階段為結束 主機I2與USB周邊設備1〇之間的交換之csw(命令狀態包) 訊息(步驟68處)。 參看圖5,在於第一階段中自主機12接收到CBW訊息 後,CPU執行韌體以向FTA暫存器46寫入實施FTA程序所 必需之資料。圖5中之暫存器表76包括表示循環緩衝器 (BRAM)之記憶體單元的記憶體單元位址78、循環緩衝器 基位址80、結束位址82且含有該等brAM基位址及結束位 址之字位址。當前位址84在FTA傳送進行時由硬體更新, 以指向傳送中當前涉及之記憶體位置。FTA暫存器表%亦 包括傳送大小86(依據預期之區塊(資料封包)的總數p當 前傳送大小88為在正進行之FTA傳送期間由硬體更新的攔 位,其追蹤資料封包已被傳送之數目。傳送描述符鏈接清 單基位址90含有資料傳送描述符(dTD)鏈接清單之字基位 址,傳輸(Tx) 92及接收(RX) 94自動化之傳送自動化控制 含有基於端點控制傳送自動化特徵的資訊,且端點傳送完 成暫存器96指示大量輸出傳送(資料自主機輸出)或大量資 料輸入傳送(資料輸入主機)在已傳送所有資料封包後之結 束狀態。端點MISC控制98包括用於迫使USB設備核心30在 127934.doc •14· 1343529 自主機之輸出傳送期間以確認(ACK)符記進行回應的指 令。停止傳送控制100暫存器包括一控制位元以停止完全 傳送自動化過程,且傳送自動化狀態102含有隨著每一資 料傳送描述符及資料查詢標頭設立完成之硬體更新的狀 態。Tx FIFO低標組態暫存器1〇4界定用於為讀取(1川傳送 起始對TX FIFO暫存器之預擷取的臨限值。 當啟用USB控制器16之FTA模式並以圖5之資料表%中所 示的資料裝填FTA暫存器46時,USB控制器16亦準備端點 資料傳送描述符(dTD)及端點資料佇列頭(dQH)資料結構。 在初始資料結構設立中’如圖6中所示,USB控制器16亦 產生FTA啟用資料,該FTA啟用資料包括:一啟用位元 7〇,其作為將為特定資料傳送資料交換啟用完全傳送自動 化之USB設備核心3〇的旗標;以及xfer一方向位元72,其指 示傳送之方向。異動之封包長度1〇6及總預期位元組ι〇8亦 可連同指向每一預期資料封包所需之BRAM緩衝器位址的 DMA指標1〇9—起被記錄於該資料結構中。此等資料結構 可由HIM 18之FTA模組48中之硬體邏輯來產生,或以cpu 24所執行之韌體來實施。視預期之資料量而定,可能需要 產生一個以上資料結構,以識別處理大量資料傳送中之所 有組成資料區塊所需要之位址集合中的每一者之指標 109。dTD及dQH資料結構資訊被寫入至以適當偏移設定以 適應dTD及卿之大小的FTA暫存^料指補鍵接清 單基位址90所指向的位置。dTD及dQH資料結構向him 18 中之DMA區塊36通知總傳送大小、DMA來源/目的位址及 127934.doc •15· 1343529 其他傳送資訊。 一旦CBW訊息已被處理,其中已設立dTD及dQH資料並 產生FTA暫存器中之初始資訊,USB控制器16便準備處理 FTA模式下之資料傳送並消除或減少大量資料傳送中之韋刃 體涉及。如圖7中所示’說明利用USB控制器162fTA模式 的一可能尚速設備大量輸出異動。此實例說明以BRam中 存在兩個緩衝器可用於支援資料傳送開始之情況。當主機 12傳輸後面緊跟一資料區塊(亦稱為資料封包)之資料傳送 112之輸出符記11〇時,大量輸出資料傳送階段開始。假定 USB周邊設備10操作於高速模式下,資料封包大小可為 512個位元組。USB周邊設備⑺在出^^ 18處接收資訊並將 ί料傳遞至BMU 20以供儲存於組態於BRAM 56中之緩衝 器58、60中的一者中。BMU 2〇中之ABM M提供指示該等 緩衝器已準備好接收資訊的硬體邏輯產生信號buf_rdyi II4及buf—rdy2 II6。對於大量輸出資料傳送,ABM “基 於计數BRAM中之空閒緩衝器之數目的緩衝器計數器來產 生buf_rdyl及buf_rdy2仏號》可使用多個類型之數位計數 器電路中之任一者來形成產生buf_rdyl&buf—『办2之數位 邏輯H的緩衝器計數II。buf—rdyl信號指示BRAM中至 少一緩衝态之可用性,且buf—rdy2指示BRAM中兩個或兩 個以上緩衝器之可用性。在此實施例中,術語“緩衝器” 指代BRAM中鄰接512位元組位置。 在第一資料封包至緩衝器之傳送完成後,由於buf_rdy2 及bUf」dyl在該傳送開始時皆為,,Π(高),因此_ 18即 I27934.doc 16 1343529 觸發MAC控制器32以向主機1 2發送一確認(ack) 11 6訊 息。同時’ HIM 1 8中之FTA模組48經由硬體產生一 ”早期 釋放”信號脈衝’該信號脈衝被傳達回至BMU 20以向BMU 20通知該資料封包之傳送已完成。回應於此釋放信號, BMU 20確定buf_rdy2為兩個或兩個以上緩衝器不可用之事 實的較低表示。又’ BMU可接著指導FIM 22開始將此資料 寫入快閃記憶體26。 在USB周邊設備1〇處接收來自主機之下一輸出符記,且 伴隨之資料封包傳送將資料置於BRAM 56中兩個專用緩衝 器中的第二緩衝器中。HIM 18於該傳送開始時解譯其狀態 表中的buf_rdyl與buf一rdy2之組合,並向主機12發送出 NYET 父握 §代息 120 (buf_rdy2 = 0,buf rdyl = l)。同時, HIM 18向後端中之BMU 20發送另一早期釋放信號122(或 等同的最終釋放信號),以使得BMU 20知道該傳送已完 成。在通知此釋放後,後端52經由BMU 20除了發送已為 低之buf一rdy2信號外,還發送一 buf_rdyl低信號來向HIM 18指示目前無緩衝器58、60可用。NYET訊息120向主機12 傳達前一資料傳送被接收,但主機12在未首先檢查狀態的 情況下可能不發送更多資訊。在圖7之情形中,主機12向 USB周邊設備1 〇發送piNG符記124。注意,buf_rdy2及 buf_rdyl信號皆處於邏輯低,表示當前無緩衝器可用, HIM 18以NAK回應126進行回應。當該等緩衝器中之一者 變得可用時(由ABM 54硬體邏輯所產生之buf_rdyl之邏輯 高設定來表示),USB周邊設備自主機接收後續PING,且 127934.doc 17 1343529 HIM以ACK回應128進行回應,藉以通知主機準備就緒接 收後續資料。 在圖7之實例中,對於大量輸出資料傳送,緩衝器準備 就緒信號(buf_rdy2及buf_rdyl)為BMU 20中之自動緩衝管 理器4 4所產生之硬體彳§號。硬體實施信號可基於回應於佔 用第一緩衝器48及第二緩衝器50之資料的基本數位邏輯, 其中buf_rdy2可係自BMU 20中維持存在於BRAM 56中之有 效緩衝器之計數的計數器得出。若來自該計數器之計數值 超過一臨限值,則ABM將確定一buf_rdy2高信號。該臨限 值為可組態的且可藉由韌體來設定。在USB資料傳送中, 臨限值被設定為2。當BMU中之計數器之計數值大於或等 於1時,ABM 54中之額外硬體實施邏輯產生一 buf—rdyl高 信號。因此,當兩個緩衝器皆準備就緒時,Abm所產生並 發送至HIM的buf_rdy 1及buf_rdy2交握信號皆為高,當兩 個緩衝器皆未準備就緒時,兩個交握信號皆為低,且當僅 一個緩衝器可用時’ buf_rdy 1為高且buf_rdy2為低。在一 實施中’使用計數器產生buf_rdyl及buf_rdy2信號以識別 BRAM 56中空閒緩衝器之數目。 HIM 18利用buf_rdyl及buf一rdy2之緩衝器可用性信號來 產生對自主機12接收之〇u丁及PING符記的回應。圖8中展 示USB控制器1 6回應於buf_rdyl及buf_rdy2信號的三個有 效組合而為OUT符記及為ping符記所產生之USB交握封包 的狀態表130。當兩個緩衝器皆準備好(兩個可用性信號皆 處於邏輯高或丨)時,HIM 18答覆OUT或PING符記而產生一 127934.doc 1343529 ACK回應封包。當兩個緩衝器皆不可用(兩個可用性信號 皆處於邏輯低或0)時,HIM 18答覆0UT4PING符記而產生 一 NAK回應封包。當僅1個緩衝器準備好時,所產生之回 應封包對於OUT符記及PING符記係不同的··為piNG產生 ACK且為OUT產生NYET。 在相反方向上,亦產生自HIM 18至後端52中之BMU 2〇 的交握信號,早期釋放信號及最終釋放信號為可實施為 HIM 18之FTA模組38中之數位邏輯的硬體產生邏輯信號。 視USB控制器16正在處理大量輸出資料傳送(圖7中所見之 傳送的實例)還是大量輸入資料傳送(圖9中所示之傳送的實 例)而定’ FTA独38使早_放交握訊息及最終釋放交握 訊息基於不同輸入資訊。對於大量輸出資料傳送,早期釋 放信號與最終釋放信號等同。在A量輸出f料傳送之情況 下’ FTA模組48自USB核心3〇之MAC控制器32所產生之成 功資料封包傳送信號導出早期釋放信號。對於高速⑽大And the use of the cum; or the known cpu-based delivery mechanism for isochronous endpoints, control endpoints, or interrupt endpoints. Regarding the large amount of data transmission under the USB standard, a p&I described in the figure is provided, and the CBW (command block packet) is sent to the peripheral device 1 at the mth host 丨2, and the message is buffered. In the BRAM 46 of the management unit 20 (at step 62). The CBW message is 31 bytes and ζ_> includes information about the type of transmission that the USB peripheral device 1 will perform. After receiving the 4 CB W message, The USB peripheral device (for example, in the interest and write data to the HIM 18 device 46. In more detail on the 24 main RAM (MRAM) below) read the full transfer automation (FTA) temporary storage in this message 127934.doc -13· 1343529 The FTA register 46 includes information such as the start address, buffer size, and transfer direction in the BRAM 56. After the CBW phase, a large data transfer data phase occurs and the host 12 Sending a data packet to (either a large number of output transfer or write operations) the USB peripheral device 10 or receiving a data packet from it (a large number of input transfer or read operations) depending on the transfer direction indicated in the CBW message (steps 64, 66) The end of USB mass data transfer The segment is a csw (command state packet) message for ending the exchange between the host I2 and the USB peripheral device 1 (at step 68). Referring to FIG. 5, after receiving the CBW message from the host 12 in the first stage, the CPU executes the toughness. The body writes the data necessary to implement the FTA program to the FTA register 46. The register table 76 in FIG. 5 includes a memory unit address 78 representing the memory unit of the circular buffer (BRAM), and a circular buffer. The base address 80, the end address 82, and the word address of the brAM base address and the end address. The current address 84 is updated by the hardware when the FTA transfer is performed to point to the memory location currently involved in the transfer. The FTA register table % also includes the transfer size 86 (based on the total number of expected blocks (data packets) p current transfer size 88 is the block that is updated by the hardware during the ongoing FTA transfer, and the tracking data packet has been The number of transmitted descriptors. The transfer descriptor link list base address 90 contains the data transfer descriptor (dTD) link list of the word base address, and the transport (Tx) 92 and receive (RX) 94 automated transport automation controls contain endpoints based on Control transfer automatically Information of the feature, and the endpoint transfer completion register 96 indicates a large number of output transfers (data from the host output) or a large number of data input transfers (data input host) at the end state after all data packets have been transmitted. Endpoint MISC Control 98 Includes instructions for forcing the USB device core 30 to respond with an acknowledgment (ACK) token during the output of the 127934.doc • 14· 1343529. The stop transfer control 100 register includes a control bit to stop the full transfer. The automated process, and the transfer automation state 102 contains a state of hardware updates as each data transfer descriptor and data query header is set up. The Tx FIFO Low-Scale Configuration Register 1〇4 defines the threshold for pre-fetching of the TX FIFO register for the read (1) when the FTA mode of the USB controller 16 is enabled and When the data shown in the data table % of Figure 5 is loaded into the FTA register 46, the USB controller 16 also prepares the endpoint data transfer descriptor (dTD) and the endpoint data header (dQH) data structure. In the structure setup, as shown in FIG. 6, the USB controller 16 also generates FTA enablement data, and the FTA enablement data includes: an enable bit 7〇, which is a USB device that will enable full transfer automation for a specific data transfer data exchange. The flag of the core 3〇; and the xfer direction bit 72, which indicates the direction of the transmission. The packet length of the transaction 1〇6 and the total expected byte ι8 can also be combined with the BRAM required for each expected data packet. The DMA indicator 1缓冲器9 of the buffer address is recorded in the data structure. These data structures can be generated by the hardware logic in the FMA module 48 of the HIM 18, or by the firmware executed by the CPU 24. Implementation. Depending on the amount of data expected, more than one may be required Material structure to identify indicators 109 for processing each of the set of addresses required for a large number of data transfers. The dTD and dQH data structure information is written to the appropriate offset to accommodate the dTD and The size of the FTA temporary storage refers to the location pointed to by the key address 90. The dTD and dQH data structures inform the DMA block 36 in him 18 of the total transfer size, DMA source/destination address, and 127934. .doc •15· 1343529 Other transmission information. Once the CBW message has been processed, the dTD and dQH data have been set up and the initial information in the FTA register is generated, the USB controller 16 is ready to process the data transfer in the FTA mode and eliminate it. Or reduce the amount of data in the data transfer. As shown in Figure 7, 'a description of the use of the USB controller 162fTA mode of a possible speed device a large number of output transactions. This example shows that there are two buffers available in BRam for support When the data transfer starts, when the host 12 transmits the output of the data transfer 112 followed by a data block (also referred to as a data packet), a large number of output data transmission phases are opened. Assuming that the USB peripheral device 10 operates in the high speed mode, the data packet size can be 512 bytes. The USB peripheral device (7) receives the information at the output ^^ 18 and passes the message to the BMU 20 for storage in the configuration. One of the buffers 58, 60 in the BRAM 56. The ABM M in the BMU 2 provides hardware logic generation signals buf_rdyi II4 and buf_rdy2 II6 indicating that the buffers are ready to receive information. Data transfer, ABM "Buffer_bud and buf_rdy2 nickname based on the buffer counter counting the number of free buffers in the BRAM" can be used to generate buf_rdyl & buf - using any of a number of types of digital counter circuits. The buffer count II of the logical H of 2 digits. The buf-rdyl signal indicates the availability of at least one buffer state in the BRAM, and buf-rdy2 indicates the availability of two or more buffers in the BRAM. In this embodiment, the term "buffer" refers to a contiguous 512-bit location in the BRAM. After the transfer of the first data packet to the buffer is completed, since buf_rdy2 and bUf"dyl are both at the beginning of the transfer, Π (high), _ 18 is I27934.doc 16 1343529 triggers the MAC controller 32 to the host 1 2 Send a confirmation (ack) 11 6 message. At the same time, the FTA module 48 in the HIM 18 generates an "early release" signal pulse via the hardware. The signal pulse is communicated back to the BMU 20 to inform the BMU 20 that the transfer of the data packet has been completed. In response to this release signal, BMU 20 determines that buf_rdy2 is a lower representation of the fact that two or more buffers are unavailable. Again, the BMU can then instruct the FIM 22 to begin writing this data to the flash memory 26. An output token from the host is received at the USB peripheral device 1 and the accompanying data packet transfer places the data in a second buffer in two dedicated buffers in BRAM 56. The HIM 18 interprets the combination of buf_rdyl and buf-rdy2 in its status table at the beginning of the transfer, and sends a NYET parental grip § 120 to the host 12 (buf_rdy2 = 0, buf rdyl = l). At the same time, the HIM 18 sends another early release signal 122 (or equivalent final release signal) to the BMU 20 in the back end to cause the BMU 20 to know that the transfer has been completed. After notifying this release, the backend 52 sends a buf_rdyl low signal via the BMU 20 in addition to transmitting the already low buf-rdy2 signal to indicate to the HIM 18 that no buffers 58, 60 are currently available. The NYET message 120 conveys to the host 12 that the previous data transfer was received, but the host 12 may not send more information without first checking the status. In the case of FIG. 7, the host 12 transmits a piNG token 124 to the USB peripheral device 1. Note that both the buf_rdy2 and buf_rdyl signals are at logic low, indicating that no buffer is currently available, and the HIM 18 responds with a NAK response 126. When one of the buffers becomes available (represented by the logic high setting of buf_rdyl generated by the ABM 54 hardware logic), the USB peripheral device receives the subsequent PING from the host, and 127934.doc 17 1343529 HIM with ACK Response 128 responds to inform the host that it is ready to receive subsequent data. In the example of Figure 7, for a large number of output data transfers, the buffer ready signals (buf_rdy2 and buf_rdyl) are the hardware numbers generated by the automatic buffer manager 44 in the BMU 20. The hardware implementation signal may be based on basic digital logic responsive to data occupying the first buffer 48 and the second buffer 50, wherein buf_rdy2 may be from a counter in the BMU 20 that maintains a count of valid buffers present in the BRAM 56. Out. If the count value from the counter exceeds a threshold, the ABM will determine a buf_rdy2 high signal. This threshold value is configurable and can be set by firmware. In USB data transfer, the threshold is set to 2. When the counter value in the BMU is greater than or equal to 1, the additional hardware implementation logic in the ABM 54 generates a buf-rdyl high signal. Therefore, when both buffers are ready, the buf_rdy 1 and buf_rdy2 handshake signals generated by Abm and sent to the HIM are high. When both buffers are not ready, both handshake signals are low. And when only one buffer is available 'buf_rdy 1 is high and buf_rdy2 is low. In one implementation, the counters are used to generate buf_rdyl and buf_rdy2 signals to identify the number of free buffers in BRAM 56. The HIM 18 utilizes the buffer availability signals of buf_rdyl and buf-rdy2 to generate responses to the received and received PING tokens from the host 12. The state diagram 130 of the USB handshake packet generated by the USB controller 16 in response to the three valid combinations of the buf_rdyl and buf_rdy2 signals for the OUT token and the ping token is shown in FIG. When both buffers are ready (both availability signals are at logic high or 丨), HIM 18 answers the OUT or PING token to produce a 127934.doc 1343529 ACK response packet. When both buffers are unavailable (both availability signals are at logic low or zero), HIM 18 responds with a 0UT4PING token to generate a NAK response packet. When only one buffer is ready, the resulting response packet is different for the OUT token and the PING token. ACK is generated for piNG and NYET is generated for OUT. In the opposite direction, a handshake signal from the HIM 18 to the BMU 2〇 in the back end 52 is also generated. The early release signal and the final release signal are hardware generated by the digital logic in the FTA module 38 that can be implemented as the HIM 18. Logic signal. Depending on whether the USB controller 16 is processing a large amount of output data transfer (an example of the transfer seen in Figure 7) or a large amount of input data transfer (an example of the transfer shown in Figure 9), the FTA alone 38 early _ _ _ And the final release of the handshake message is based on different input information. For large output data transfers, the early release signal is equivalent to the final release signal. In the case where the A quantity output f material is transmitted, the FTA module 48 derives the early release signal from the success data packet transmission signal generated by the MAC controller 32 of the USB core. For high speed (10) large
量輸出傳送,一旦接收到一 512位元組封包便觸發成功資 料封包傳送信號。在資料封包大小可為64個位元組的全速 或低速USB大量輸出傳送之情況下,在觸發早期釋放/最終 釋放信號之前,使用MAC控制器資訊來計數8個成功資料 封包傳送。 參看圖9,使用上文論述之緩衝器可用性«吻^及 bufjdy2)及緩衝H釋放(早期#放及最終釋放)硬體產生交 握訊息來說明大量輸人傳送情形。在大量輸人傳送中,將 資料自刪周邊設備中之快閃記憶體傳送至主機。類似於 127934.doc •19· 1343529 大量輸出傳送,CBW訊息被HIM 18接收,該HIM 18將 CBW訊息置於BMU 20之BRAM 56中。HIM 18接著通知 CPU 24 CBW訊息已被接收,且CPU 24接著自BRAM 56讀 取該訊息並初始化HIM中之FTA暫存器48。CBW訊息中所 指示之資料量所必需之資料傳送指示符及資料佇列頭被產 生,且FIM 22開始自快閃記憶體26將資料封包讀取至 BRAM 56之緩衝器中。再次假定BRAM 46中有兩個緩衝器 組態,一旦來自第一緩衝器之資料自BMU傳輸至HIM, HIM 18便向BMU 20發送一早期釋放邏輯脈衝。The quantity output is transmitted, and a successful data packet transmission signal is triggered upon receiving a 512-bit packet. In the case where the data packet size can be 64-byte full-speed or low-speed USB mass output transmission, the MAC controller information is used to count 8 successful data packet transmissions before the early release/final release signal is triggered. Referring to Figure 9, the buffer availability (kiss and bufjdy2) discussed above and the buffered H release (early #release and final release) hardware generate a handshake message to illustrate a large number of input transmission scenarios. In a large number of input transmissions, the data is transferred from the flash memory in the peripheral device to the host. Similar to 127934.doc • 19· 1343529 A large number of output transfers, the CBW message is received by the HIM 18, which places the CBW message in the BRAM 56 of the BMU 20. The HIM 18 then notifies the CPU 24 that the CBW message has been received, and the CPU 24 then reads the message from the BRAM 56 and initializes the FTA register 48 in the HIM. The data transfer indicator and data headers necessary for the amount of data indicated in the CBW message are generated, and the FIM 22 begins reading the data packet from the flash memory 26 into the buffer of the BRAM 56. Again assuming that there are two buffer configurations in BRAM 46, once the data from the first buffer is transferred from the BMU to the HIM, the HIM 18 sends an early release logic pulse to the BMU 20.
早期釋放硬體信號係由FTA模組48產生。在此例項中, 早期釋放硬體信號及最終釋放硬體信號由於FTA模組48分 別導出早期釋放信號及最終釋放信號而不同。BMU 20使 用早期釋放信號為預填充傳輸(讀取)資料至TX FIFO 44檢 查缓衝器可用性。若當BRAM中之緩衝器未準備好時BMU 接收一早期釋放信號,則BMU否定buf_rdyl信號(亦即,該 信號變低),以防止HIM 1 8自該緩衝器預擷取資料。在大 量輸入資料傳送中,當HIM 18起始自TX FIFO 44向主機12 發送讀取資料時,FTA模組48基於產生於MAC控制器32中 之邏輯信號來產生一早期釋放。最終釋放信號證實早期釋 放,並向BMU發信:既然已自主機接收到ACK回應,則可 最終釋放封包。FTA模組48基於產生於MAC控制器32中的 指示自主機接收到ACK之邏輯信號而產生最終釋放信號。 由於來自MAC控制器32之此等信號係在不同於FTA模組48 所使用之時脈頻域中產生,因此該FTA模組亦包括將MAC 127934.doc -20- 1343529 控制器32信號自MAC控制器之USB PHY時脈域轉換成fta 模組藉以操作之系統時脈域的電路。 圖9之大量輸入傳送情形中的第一早期釋放信號丨32向 ΒΜϋ 20指示:若第二BRAM緩衝器50可用,則現在適合將 輸入讀取資料填充於該緩衝器之緩衝器空間中。歸因於快The early release hardware signal is generated by the FTA module 48. In this example, the early release of the hardware signal and the final release of the hardware signal differ because the FTA module 48 derives the early release signal and the final release signal, respectively. The BMU 20 uses the early release signal to pre-fill the transmit (read) data to the TX FIFO 44 to check buffer availability. If the BMU receives an early release signal when the buffer in the BRAM is not ready, the BMU negates the buf_rdyl signal (i.e., the signal goes low) to prevent the HIM 18 from prefetching data from the buffer. In a large amount of input data transfer, when the HIM 18 initiates a read of data from the TX FIFO 44 to the host 12, the FTA module 48 generates an early release based on the logic signals generated in the MAC controller 32. The final release signal confirms the early release and sends a message to the BMU: since the ACK response has been received from the host, the packet can eventually be released. The FTA module 48 generates a final release signal based on a logic signal generated in the MAC controller 32 indicating that an ACK was received from the host. Since the signals from the MAC controller 32 are generated in a different frequency domain than that used by the FTA module 48, the FTA module also includes the MAC 127934.doc -20-1343529 controller 32 signal from the MAC. The controller's USB PHY clock domain is converted to the circuitry of the system clock domain through which the fta module operates. The first early release signal 丨32 in the bulk input transfer scenario of Figure 9 indicates to ΒΜϋ 20 that if the second BRAM buffer 50 is available, it is now suitable to fill the input read data into the buffer space of the buffer. Attributable to fast
閃記憶體26與BRAM緩衝器58、60之間的通常比自BRAM 緩衝器58、60經由HIM 18至主機12更慢的資料傳送速率, HIM 18將自BRAM向TX FIFO暫存器44預擷取資料,並同 時將資料自TX FIFO 44暫存器發送至主機12。僅在自主機 接收到指示先前資料封包成功接收之ACK訊息136後,自 HIM 18向BMU 20發送最終釋放硬體信號134。圖7中說明 第二IN符記1 3 8及第三IN符記140以及資料傳送封包142、 144。在第二傳送與第三傳送之間,存在由於USB周邊設 備10未自主機接收到ACK訊息而產生於該USB周邊設備内The data transfer rate between flash memory 26 and BRAM buffers 58, 60 is typically slower than from BRAM buffers 58, 60 via HIM 18 to host 12, and HIM 18 will pre-populate from BRAM to TX FIFO register 44. The data is fetched and the data is simultaneously sent from the TX FIFO 44 register to the host 12. The final released hardware signal 134 is sent from the HIM 18 to the BMU 20 only after receiving an ACK message 136 from the host indicating that the previous data packet was successfully received. The second IN symbol 138 and the third IN symbol 140 and the data transfer packets 142, 144 are illustrated in FIG. Between the second transmission and the third transmission, there is a USB peripheral device 10 that is not generated from the host and is generated in the USB peripheral device.
的匯流排逾時146。由於未自主機接收到確認,因此mM 未產生最終釋放信號且未見到下一傳送之早期釋放信號。 此係由於在不存在首次嘗試被正確接收之確認的情況下必 須再次發送來自第二傳送之相同資料。以上實例假定 buf_rdy 1信號始終為高,指示快閃記憶體%已完成一讀取 操作且BRAM緩衝器中之有效資料可用。若定該緩 衝益由於某原因而未準備好,則buf—吻!信號可保持為低 且_ 18可基於此buf_rdyl低信號而向主機傳輸一nak交 握封包》 在USB大量資料輸入或輸出傳送結束時,引擎48在 127934.doc •21 - ^43529 達到傳送大小86時自動停止傳送。亦在一大量傳送結束 時’自主機接收到對csw訊息之請求。作為回應,物體準 備CSW且亦在A f傳送結束時將其發相至主機。作為回 應韌體準備cs W且將其發送回至主機。在FTA啟用之大 里資料傳送進行的同時,此實施不阻礙至其他端點之傳 、、款 送。 在大量輸出傳送情形及大量輸入傳送情形中皆說明了產 生於HIM 18及BMU 20中的提供硬體交握以增加USB周邊 設備讀取及寫入資料之能力的硬體信號之使用。每一資料 叢發未使用或需要要求CPU干預之知體中斷。在不需要參 與及中斷的情況下將資料傳送入或傳送出快閃記憶體(及 大體而言USB周邊設備)避免觸發、由cpu讀取,且作用於 中斷所必需的時間。邏輯上結果是,在此資料傳送階段期 間將不需要CPU活動,且因此可節省USB周邊設備之總功 率使用。 使用硬體交握在後端與him之間進行關於緩衝器空間可 用性通信的另一優點在於’可將緩衝器中之記憶體大小維 持於較低位準’從而釋放為其他使用而另外規劃之緩衝記 憶體。另外’在不需要中斷及CPU干預的情況下,CPU額 外耗用被降低且與需要韌體追蹤資料傳送及管理緩衝器空 間的實施相比可降低CPU時脈速度。基於較低CPU額外耗 用之較低時脈速度實施亦可有助於額外功率節省。 雖然已提供USB控制器16中之後端52之實例(其中已分 配兩個緩衝器用於實施大量資料傳送操作之FTA模式),但 127934.doc -22· 丄州529 在其他實施中,可僅俅用罝― • 使用早一緩衝器。該緩衝器可具有單 一資料傳送區塊(封肖f )之大小。或者,上文描述之USB控 ,器及方法同樣可經調適成使用BRAM中之兩個以上緩衝 盗其中β玄等緩衝器中之每一者可與資料封包具有相同大 小。在其他實施中,例如當以全速模式或低速模式(分別 為12百萬位元每秒或15百萬位元每秒,而非高速模式之 480百萬位元每秒)執行USB周邊設備時,fta操作模式可 經調整而適應全速模式或低速模式中支援之料位元組資料 =包大λ!…在其他實施中,USB周邊設備1()可經組態成相 畲於一主機並如所描述將相同FTA模式用於大量傳送操 作又’雖然論述了特定資料封包大小,例如對於高速為 512個位元組且對於全速及低速為以個位元組,但可根據 選擇用於USB周邊設備之後端中的快閃記憶體類型而將後 端所處理之此資料大小設定為其他長度。 以下同時申請(2006年12月31日)、共同擁有之美國專利 申請案(藉由美國專利申請案序號"USSN"引用)之整體以引 用的方式併入本文中:"Selectively Powering DataThe bus has a timeout of 146. Since no acknowledgment was received from the host, mM did not produce a final release signal and did not see an early release signal for the next transmission. This is because the same data from the second transmission must be resent in the absence of an acknowledgment that the first attempt was received correctly. The above example assumes that the buf_rdy 1 signal is always high, indicating that the flash memory % has completed a read operation and that valid data in the BRAM buffer is available. If the buffer is not ready for some reason, then buf-kiss! The signal can be kept low and _ 18 can transmit a nak handshake packet to the host based on this buf_rdyl low signal. At the end of the USB mass data input or output transfer, the engine 48 reaches the transfer size at 127934.doc •21 - ^43529 The transmission is automatically stopped. A request for a csw message is also received from the host at the end of a large number of transfers. In response, the object prepares the CSW and also sends it to the host at the end of the Af transfer. Prepare cs W as a response firmware and send it back to the host. While the data transfer is being carried out in the FTA enabled, this implementation does not hinder the transmission and delivery to other endpoints. The use of hardware signals generated in HIM 18 and BMU 20 to provide hardware handshake to increase the ability of USB peripherals to read and write data is illustrated in a number of output transfer scenarios and in a large number of input transfer scenarios. Each data burst is unused or requires a physical interrupt that requires CPU intervention. Transferring data into or out of flash memory (and, in general, USB peripherals) without the need for participation and interruption, avoids triggering, is read by the CPU, and acts on the time necessary for the interrupt. The logical result is that CPU activity will not be required during this data transfer phase, and thus the total power usage of USB peripherals can be saved. Another advantage of using hard-handed handshakes between the backend and him for buffer space-available communication is that 'the memory size in the buffer can be maintained at a lower level' and the release is otherwise planned for other uses. Buffer memory. In addition, the CPU overhead is reduced and the CPU clock speed can be reduced compared to the implementation that requires firmware tracking data transfer and management buffer space without interrupts and CPU intervention. Lower clock speed implementations based on lower CPU overhead can also contribute to additional power savings. Although an example of the rear end 52 in the USB controller 16 has been provided (in which the FTA mode has been allocated for implementing a large number of data transfer operations), 127934.doc -22. 丄州529 In other implementations, only 俅Use 罝― • Use the early buffer. The buffer can have a single data transfer block size. Alternatively, the USB controllers and methods described above can be adapted to use more than two buffers in the BRAM, each of which can have the same size as the data packet. In other implementations, such as when performing USB peripherals in full speed mode or low speed mode (12 million bits per second or 15 million bits per second, instead of 480 million bits per second in high speed mode) , fta operation mode can be adjusted to adapt to the full-speed mode or low-speed mode supported material tuple data = package large λ!... In other implementations, USB peripheral device 1 () can be configured to be opposite to a host and The same FTA mode is used for a large number of transfer operations as described. 'Although the specific data packet size is discussed, for example, 512 bytes for high speed and one byte for full speed and low speed, but can be selected for USB according to selection. The size of the data processed by the backend is set to other lengths by the type of flash memory in the rear end of the peripheral device. The following simultaneous application (December 31, 2006), co-owned US patent application (by US Patent Application Serial No. "USSN" cited) is incorporated herein by reference: "Selectively Powering Data
Interfaces"(具有 USSN 1 1/649,325及代理人參考號sdA-1076x) ; ‘‘ Selectively Powered Data Interfaces’’ (具有 USSN 1 1/649,326 及代理人參考號 SDA-1076y); "lnternaiiyInterfaces" (with USSN 1 1/649, 325 and agent reference sdA-1076x); ‘‘Selectively Powered Data Interfaces’’ (with USSN 1 1/649, 326 and agent reference number SDA-1076y); "lnternaiiy
Protecting Lines at Power Island Boundaries"(具有 USSN 1 1/618,874 及代理人參考號 SDA-1090x) ; "lntegrated Circuit with Protected Internal Isolation"(具有 USSN 1 1/618,875 及代理人參考號 SDA-1090y); "Updating Delay 127934.doc -23- 1343529Protecting Lines at Power Island Boundaries" (with USSN 1 1/618, 874 and agent reference number SDA-1090x); "lntegrated Circuit with Protected Internal Isolation" (with USSN 1 1/618,875 and agent reference number SDA-1090y); "Updating Delay 127934.doc -23- 1343529
Trim Values"(具有USSN 1 1/618,897及代理人參考號80八-1091x) ; "Module with Delay Trim Value Updates on Power-Up"(具有USSN 1 1/618,898及代理人參考號80八-1091y) ; "Limiting Power Island Inrush Current"(具有 USSN 1 1/618,855及代理人參考號 SDA-1092x) ; "Systems and Integrated Circuits with Inrush-Limited Power Islands" (具有USSN 1 1/618,854及代理人參考號SDA-1092y); "Method for Performing Full Transfer Automation in a USB Controller"(具有USSN 1 1/618,865及代理人參考號兮口八-1094x( 105 19/201)) ; MUSB Controller with Full Transfer Automation”(具有USSN 1 1/618,867及代理人參考號80八-1094y (10519/202) ; "Method for Configuring a USB PHY to Loopback Mode”(具有 USSN 1 1/618,849 及代理人參考號 SDA-1095x (10519/203));及"Apparatus for Configuring a USB PHY to Loopback Mode"(具有 USSN 1 1/61 8,852 及代 理人參考號SDA-1095y (10519/204))。 根據前述内容,已描述用於在USB控制器中實施完全傳 送自動化之方法及裝置。已在USB周邊設備中之USB控制 器内部提供了四個新的硬體產生邏輯信號以用於主機介面 模組與後端模組之間的交握。經由硬體邏輯而非經由使用 韋刃體及微處理器時間所產生之内部交握信號可改良資料傳 送速度並降低USB控制器之功率消耗。 因此,意欲將前述實施方式視作說明性的而非限制性 的’且應瞭解,以下申請專利範圍(包括所有等效物)意欲 127934.doc •24- 1343529 界定本發明之精神及範疇。 【圖式簡單說明】 圖1為與一主機連接之USB周邊設備的方塊圖。 圖2為圓rUSB周邊設備十之主機介面模組的方塊圖。 圖3為適合用於圖1之USB周邊設備中的Usb控制器之後 端的方塊圖。 圖4為一 USB大量傳送操作之流程圖。 圖5為促進圖1至圖3之USB周邊設備中之完全傳送自動 化而準備之資料的暫存器表。 圖6為用於圖1之1;38周邊設備中之大量資料傳送的資料 結構。 圖7為利用圖1之USB周邊設備的USB高速大量輸出異動 之一實例。 圖8為說明用於回應於大量資料傳送符記之接收而產生 USB交握封包之邏輯的狀態表。 圖9為利用圖liUSB周邊設備之USB高速大量輸入異動 的一實例。 【主要元件符號說明】 10 USB周邊設備 12 主機 14 USB通信線 16 USB控制器 18 主機介面模組(HIM) 20 緩衝器管理單元(BMU) I27934.doc -25- 1343529Trim Values" (with USSN 1 1/618, 897 and agent reference number 80 8-1091x); "Module with Delay Trim Value Updates on Power-Up" (with USSN 1 1/618, 898 and agent reference number 80-8-1091y "Limiting Power Island Inrush Current" (with USSN 1 1/618,855 and agent reference number SDA-1092x); "Systems and Integrated Circuits with Inrush-Limited Power Islands" (with USSN 1 1/618,854 and agents) Reference number SDA-1092y); "Method for Performing Full Transfer Automation in a USB Controller" (with USSN 1 1/618, 865 and agent reference number -10口八-1094x (105 19/201)); MUSB Controller with Full Transfer Automation" (with USSN 1 1/618, 867 and agent reference number 80 eight-1094y (10519/202); "Method for Configuring a USB PHY to Loopback Mode" (with USSN 1 1/618,849 and agent reference number SDA- 1095x (10519/203)); and "Apparatus for Configuring a USB PHY to Loopback Mode" (with USSN 1 1/61 8,852 and agent reference number SDA-1095y (10519/204)). A method and apparatus for implementing full transfer automation in a USB controller has been described. Four new hardware generated logic signals have been provided within the USB controller in the USB peripheral for the host interface module and The handshake between the back-end modules improves the data transfer speed and reduces the power consumption of the USB controller via hardware logic rather than through the use of the internal blade and microprocessor internal timing signals. The foregoing embodiments are to be considered as illustrative and not restrictive, and the scope of the claims BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram of a USB peripheral device connected to a host. 2 is a block diagram of a host interface module of a round rUSB peripheral device. Figure 3 is a block diagram of the rear end of a Usb controller suitable for use in the USB peripheral device of Figure 1. Figure 4 is a flow chart of a USB mass transfer operation. Figure 5 is a register table of data prepared to facilitate full transfer automation in the USB peripheral devices of Figures 1 through 3. Figure 6 is a data structure for a large amount of data transfer in the peripheral device of Figure 1; Figure 7 is an example of USB high speed mass output transaction using the USB peripheral device of Figure 1. Figure 8 is a state diagram illustrating the logic for generating a USB handshake packet in response to receipt of a plurality of data transfer tokens. Figure 9 is an example of a USB high speed mass input transaction using the liUSB peripheral device. [Main component symbol description] 10 USB peripheral device 12 Host 14 USB communication cable 16 USB controller 18 Host interface module (HIM) 20 Buffer management unit (BMU) I27934.doc -25- 1343529
22 24 26 28 30 32 36 38 40 42 44 46 4822 24 26 28 30 32 36 38 40 42 44 46 48
50 52 快閃記憶體介面模組(FIM) 中央處理單元(CPU) 快閃記憶體 實體層介面 USB設備核心 媒體存取控制(MAC)控制器 直接記憶體存取(DMA)區塊 完全傳送自動化(FTA)模組 微處理器介面 可組態FIFO緩衝器 可組態FIFO缓衝器/自動緩衝管理器/TX FIFO/TX FIFO 暫存器 完全傳送自動化(FTA)暫存器 完全傳送自動化(FTA)邏輯模組/第一緩衝器/ FTA引擎 輔助介面/第二緩衝器/第二BRAM緩衝器 後端 54 自動緩衝管理器(ABM) 56 BRAM 58 第一緩衝器/BRAM緩衝器 60 第二緩衝器/BRAM緩衝器 70 &&_啟用位元 72 xfer_*向位元 76 暫存器表/ FTA暫存器表/資料表 127934.doc •26- 1343529 78 記憶體單元位址 80 循環緩衝器基位址 82 循環緩衝器結束位址 84 循環緩衝器當前位址 86 傳送大小 88 當前傳送大小 90 傳送描述符鏈接清單基位址 92 傳輸(Τχ)傳送自動化控制 94 接收(Rx)傳送自動化控制 96 端點傳送完成暫存器 98 端點MISC控制 100 停止傳送控制 102 傳送自動化狀態 104 Tx FIFO低標組態暫存器 106 封包長度 108 總位元組 109 DMA指標 110 輸出符記 112 資料傳送 114 硬體邏輯產生信號buf_rdy 1 116 硬體邏輯產生信號buf_rdy2信號/確認(ACK) 120 NYET交握訊息 122 另一早期釋放信號 124 PING符記 127934.doc 27· 1343529 126 NAK回應 128 ACK回應 130 狀態表 132 第一早期釋放信號 134 最終釋放硬體信號 136 ACK訊息 138 第二IN符記 140 第三IN符記 142 資料傳送封包 144 資料傳送封包 146 匯流排逾時 127934.doc -28-50 52 Flash Memory Interface Module (FIM) Central Processing Unit (CPU) Flash Memory Physical Layer Interface USB Device Core Media Access Control (MAC) Controller Direct Memory Access (DMA) Block Full Transfer Automation (FTA) Module Microprocessor Interface Configurable FIFO Buffer Configurable FIFO Buffer/Automatic Buffer Manager/TX FIFO/TX FIFO Scratchpad Full Transfer Automation (FTA) Scratchpad Full Transfer Automation (FTA Logic Module / First Buffer / FTA Engine Auxiliary Interface / Second Buffer / Second BRAM Buffer Back End 54 Auto Buffer Manager (ABM) 56 BRAM 58 First Buffer / BRAM Buffer 60 Second Buffer /BRAM Buffer 70 &&_Enable Bit 72 xfer_* to Bit 76 Register Table / FTA Register Table / Data Table 127934.doc • 26- 1343529 78 Memory Unit Address 80 Cyclic Buffer Base Address 82 Circular Buffer End Address 84 Circular Buffer Current Address 86 Transfer Size 88 Current Transfer Size 90 Transfer Descriptor Link List Base Address 92 Transfer (Τχ) Transfer Automation Control 94 Receive (Rx) Transfer Automation Control 96 end Point Transfer Complete Register 98 Endpoint MISC Control 100 Stop Transfer Control 102 Transfer Automation Status 104 Tx FIFO Low Label Configuration Register 106 Packet Length 108 Total Bytes 109 DMA Indicator 110 Output Symbol 112 Data Transfer 114 Hardware Logic generates signal buf_rdy 1 116 hardware logic generates signal buf_rdy2 signal/acknowledgement (ACK) 120 NYET handshake message 122 another early release signal 124 PING symbol 127934.doc 27· 1343529 126 NAK response 128 ACK response 130 status table 132 An early release signal 134 finally releases the hardware signal 136 ACK message 138 a second IN token 140 a third IN token 142 a data transfer packet 144 a data transfer packet 146 a bus time 127934.doc -28-
Claims (1)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/618,865 US7802034B2 (en) | 2006-12-31 | 2006-12-31 | Method for performing full transfer automation in a USB controller |
US11/618,867 US20080162737A1 (en) | 2006-12-31 | 2006-12-31 | USB Controller with Full Transfer Automation |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200842601A TW200842601A (en) | 2008-11-01 |
TWI343529B true TWI343529B (en) | 2011-06-11 |
Family
ID=39156365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW96151485A TWI343529B (en) | 2006-12-31 | 2007-12-31 | Method and apparatus for performing full transfer automation in a usb controller |
Country Status (2)
Country | Link |
---|---|
TW (1) | TWI343529B (en) |
WO (1) | WO2008082530A1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI493351B (en) * | 2009-11-16 | 2015-07-21 | Via Tech Inc | Universal serial bus host control method and universal serial bus host controller utilizing the same |
CN105184185B (en) * | 2015-09-07 | 2018-09-21 | 南京伍安信息科技有限公司 | For detaching storage and the key disks of restoring data and its detaching and restoring data method |
TWI736092B (en) * | 2019-12-31 | 2021-08-11 | 新唐科技股份有限公司 | Usb device and accessing method thereof |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6928505B1 (en) * | 1998-11-12 | 2005-08-09 | Edwin E. Klingman | USB device controller |
JP3415567B2 (en) * | 2000-06-21 | 2003-06-09 | エヌイーシーマイクロシステム株式会社 | USB transfer control method and USB controller |
US6757776B1 (en) * | 2002-07-17 | 2004-06-29 | Cypress Semiconductor Corp. | Control transaction handling in a device controller |
-
2007
- 2007-12-19 WO PCT/US2007/025866 patent/WO2008082530A1/en active Application Filing
- 2007-12-31 TW TW96151485A patent/TWI343529B/en active
Also Published As
Publication number | Publication date |
---|---|
TW200842601A (en) | 2008-11-01 |
WO2008082530A1 (en) | 2008-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7802034B2 (en) | Method for performing full transfer automation in a USB controller | |
US20080162737A1 (en) | USB Controller with Full Transfer Automation | |
TWI434182B (en) | External memory based first-in-first-out apparatus | |
TWI320142B (en) | Bus connection system | |
JP3636157B2 (en) | Data transfer control device, electronic device, and data transfer control method | |
US6889266B1 (en) | Method for delivering packet boundary or other metadata to and from a device using direct memory controller | |
EP2423822B1 (en) | Methods and apparatus for improved serial advanced technology attachment performance | |
JP2008502976A (en) | Bus controller for processing split transactions | |
TW200537298A (en) | A two channel bus structure to support address information, data, and transfer qualifiers | |
JP2004334417A (en) | Data transfer control device, electronic device and data transfer control method | |
TW200917048A (en) | Rate adaptation for support of full-speed USB transactions over a high-speed USB interface | |
CN108932207A (en) | SDIO-WIFI data transmission method and system with buffer area | |
TWI343529B (en) | Method and apparatus for performing full transfer automation in a usb controller | |
JPS62261249A (en) | Circuit adaptor | |
JP3393127B2 (en) | Communication terminal device and data transmission method thereof | |
CN110971621B (en) | Embedded multi-CPU interconnection circuit based on SDIO interface, interconnection method and driving method | |
US7366802B2 (en) | Method in a frame based system for reserving a plurality of buffers based on a selected communication protocol | |
US6006284A (en) | Method and apparatus for driving a parallel part to provide multiple modes of communications between a host and a peripheral | |
CN1950810B (en) | Backward-compatible parallel DDR bus for use in host-daughtercard interface | |
US7447826B2 (en) | Receive buffer in a data storage system | |
TW561740B (en) | Network connecting device and data packet transferring method | |
EP1195685B1 (en) | A process for interfacing a microprocessor with a packet based device and respective system | |
JP2004013634A (en) | Data transfer method | |
JP4127071B2 (en) | Data transfer control device, electronic device, and data transfer control method | |
JP4410978B2 (en) | Data transfer apparatus and operation control method thereof |