TWI541652B - Usb轉sata高速橋 - Google Patents
Usb轉sata高速橋 Download PDFInfo
- Publication number
- TWI541652B TWI541652B TW100138373A TW100138373A TWI541652B TW I541652 B TWI541652 B TW I541652B TW 100138373 A TW100138373 A TW 100138373A TW 100138373 A TW100138373 A TW 100138373A TW I541652 B TWI541652 B TW I541652B
- Authority
- TW
- Taiwan
- Prior art keywords
- command
- controller
- data
- host
- interface
- 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/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4031—Coupling between buses using bus bridges with arbitration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4009—Coupling between buses with data restructuring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- 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
-
- 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
-
- 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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/0661—Format or protocol conversion 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
Description
本發明大致上涉及一種資料儲存系統,尤其涉及用於儲存裝置的一種通用串列匯流排(Universal Serial Bus,USB)轉串列先進附加技術(Serial Advanced Technology Attachment,SATA)高速橋。
此處所提供的背景技術說明以對本發明的內容作一般性說明為目的。發明人的某些工作,即已在此背景技術部分中作出描述的工作,以及說明書中關於某些尚未成為申請日之前的現有技術的內容,無論是以明確或隱含的方式均不被視為相對於本公開的現有技術。
現在參考第1圖,資料儲存系統10包括儲存裝置12及主機14。儲存裝置12包括磁碟控制器16及磁碟驅動器18。磁碟驅動器18可包括將資料儲存在磁性媒體上的傳統磁碟驅動器、將資料儲存在半導體記憶體上的固態磁碟(如快閃記憶體)、或者將資料儲存在光碟上的光學磁碟驅動器。
主機14可包括膝上型電腦、個人電腦或任何其他類型的計算裝置。儲存裝置12可經由USB介面與主機14通信。因此,磁碟控制器16可包括USB介面以與主機12通信。磁碟控制器16還可包括SATA介面以與磁碟驅動器18通信。
一種系統,包括一第一控制器,配置以經由一第一介面與一主機通信;一第二控制器,配置以經由一第二介面與一儲存裝置通信,其中該第二介面不同於該第一介面;以及一橋接模組,配置以允許該第二控制器在該儲存裝置及該主機之間轉移資料,並且在轉移期間允許該第二控制器經由該第一介面存取該主機的記憶體。
另一方面,該橋接模組係配置以提供一路徑用於該儲存裝置及該主機之間的轉移,其中該路徑包括該第一控制器、該橋接模組及該第二控制器,並且其中該路徑排除一緩衝器來儲存資料。
另一方面,該橋接模組係配置以當轉移進行時允許該第二控制器轉換來自該主機的一進入命令。
另一方面,藉由解釋關於轉移從該第二控制器所接收的資訊,該橋接模組係配置以返回該主機的轉移狀態。
另一方面,該第一介面係一通用串列匯流排(Universal Serial Bus,USB)介面,以及該第二介面係一串列先進附加技術(Serial Advanced Technology Attachment,SATA)介面。
另一方面,該橋接模組係配置以將從該主機所接收的一第一命令轉換為一第二命令,其中該第一命令適用於該第一介面,並且其中該第二命令適用於該第二介面;以及將該第二命令轉移至該第二介面。
另一方面,該橋接模組包括一橋接介面模組,配置以接收來自該第二控制器的一請求做為一資料路徑,該資料路徑提供存取該主機的記憶體。該橋接模組包括一仲裁模組,配置以根據該請求提供該資料路徑至該第二控制器,以在該儲存裝置及主機的記憶體之間轉移該資料。該資料路徑不包括一緩衝器來儲存資料。該橋接介面模組允許該第二控制器經由該資料路徑在該儲存裝置及該主機的記憶體之間轉移該資料。
再一方面,一種系統單晶片(system-on-chip,SOC),包括:一USB控制器,配置以經由一USB介面連接一儲存裝置的一儲存控制器至一主機、以及一SATA控制器,配置以經由一SATA介面連接該儲存控制器至該儲存裝置。該SOC進一步包括一命令處理模組,配置以將來自該主機由該USB控制器所接收的一USB命令轉換為一SATA命令,以及輸出該SATA命令至該SATA控制器。該SATA控制器係配置以為一資料路徑產生一請求,用於存取該主機的記憶體以依據該SATA命令在該儲存裝置及該主機的記憶體之間轉移資料。該資料路徑係該記憶體及該儲存裝置之間的一路徑。該SOC進一步包括一資料處理模組,配置以接收來自該SATA控制器的該請求,以及提供該資料路徑至該SATA控制器,以在該儲存裝置及該主機的記憶體之間轉移該資料。該SATA控制器係配置以依據SATA命令在該儲存裝置及該主機的記憶體之間轉移該資料。
另一方面,該SOC進一步包括一狀態處理模組,配置以接收並解釋來自該SATA控制器的命令完成資訊;根據該命令完成,藉由確定該轉移是否無錯誤地完成,產生該轉移的狀態;以及經由該USB控制器發送該轉移的狀態至該主機。
又一方面,一種方法包括經由一第一控制器的一第一介面與一主機通信;經由一第二控制器的一第二介面與一儲存裝置通信,其中該第二介面不同於該第一介面;允許該第二控制器在該儲存裝置及該主機之間轉移資料;以及在轉移期間,允許該第二控制器經由該第一介面存取該主機的記憶體。
另一方面,該方法進一步包括提供一路徑,用於在該儲存裝置及該主機之間轉移,其中該路徑包括該第一控制器及該第二控制器,並且其中該路徑排除一緩衝器儲存資料。
另一方面,該方法進一步包括當轉移進行時轉換來自該主機的一進入命令。
另一方面,該方法進一步包括藉由解釋關於轉移從該第二控制器所接收的資訊,返回至該主機的轉移狀態。
另一方面,在該方法中,該第一介面係一USB介面;以及該第二介面係一SATA介面。
另一方面,該方法進一步包括將從該主機所接收的一第一命令轉換為一第二命令,其中該第一命令適用於該第一介面,以及其中該第二命令適用於該第二介面;以及將該第二命令轉移至該第二介面。
另一方面,該方法進一步包括接收自該第二控制器的一請求做為一資料路徑,該資料路徑提供存取該主機的記憶體;根據該請求提供該資料路徑至第二控制器,用以在該儲存裝置及該主機的記憶體之間轉移該資料,其中該資料路徑排除一緩衝器儲存該資料;以及允許該第二控制器經由該資料路徑在該儲存裝置及該主機的記憶體之間轉移該資料。
本發明的適應性的進一步領域將從詳細的描述、申請專利範圍及所附圖式中更顯而易見。詳細的說明及具體示例僅為了說明目的並不旨在限制本發明的範圍。
現在參考第2圖,顯示了磁碟控制器的一示例。磁碟控制器100包括處理模組102、匯流排介面模組107、緩衝器104、USB控制器106以及SATA控制器108。USB控制器106包括USB介面模組110及USB直接記憶體存取(direct memory access,DMA)模組112,其中USB介面模組110與主機14連接,而USB DMA模組112與USB介面模組110、處理模組102以及緩衝器104通信。SATA控制器108包括SATA介面模組114以及SATA DMA模組116,其中SATA介面模組114與磁碟驅動器18連接,而SATA DMA模組116與SATA介面模組114、處理模組102及緩衝器104通信。匯流排介面模組107與USB DMA模組112、SATA DMA模組116、處理模組102以及緩衝器104通信。匯流排介面模組107為USB DMA模組112及SATA DMA模組116提供DMA路徑至緩衝器104。
當主機14發出一寫入命令以在磁碟驅動器18上寫入資料時,USB DMA模組112經由USB介面模組110自主機14接收該資料,並將該資料儲存在緩衝器104中。SATA DMA模組116從緩衝器104擷取該資料並將該資料傳至SATA介面模組114,SATA介面模組114將該資料寫入至磁碟驅動器18。
當主機14發出一讀取命令以從磁碟驅動器18讀取資料時,SATA DMA模組116經由SATA介面模組114自磁碟驅動器18接收該資料,並將該資料儲存在緩衝器104中。USB DMA模組112從緩衝器104擷取該資料並將該資料傳至USB介面模組110,USB介面模組110將該資料輸出至主機14。
在讀取/寫入操作期間緩衝資料可降低資料在USB介面模組110及SATA介面模組114之間轉移的速率。因此,如USB 3.0及SATA 3.0的高速介面的性能降低,儘管分別具有每秒5吉比特(Gigabits per second,Gbps)以及6Gbps的資料轉移速率。此外,在讀取/寫入操作期間緩衝資料產生許多中斷,而處理模組102不得不處理中斷,並且中斷會增加經費且降低IO性能。
藉由利用一高速橋而非在USB及SATA控制器之間利用一緩衝器,可消除讀取/寫入操作期間的緩衝資料。如以下所解釋,例如,該橋可與大容量傳輸(Bulk-only Transport,BOT)及USB介面的USB連接SCSI(USB Attached SCSI,UAS)協定以及SATA介面的原生指令排序(native command queuing,NCQ)協定一同運作。根據BOT及UAS協定,該橋確定一命令階段、一資料階段以及USB及SATA控制器之間資料轉移的狀態階段。該命令階段包括命令轉換。該資料階段包括依據該命令的資料轉移。該狀態階段包括該命令以及相關資料轉移至主機的返回狀態。該橋可自動轉換來自主機的進入命令。SATA DMA模組可直接接收/傳輸資料自/至該橋而不需利用緩衝器。在確定完成資料交易之後,根據自SATA控制器接收的資訊,該橋自動返回狀態。因此,該橋提高了吞吐量並優化了IO性能。
例如,本發明僅使用USB及SATA介面。本發明的教示不限於USB及SATA介面。本發明的教示可應用至用於在主機及磁碟驅動器之間以高速轉移資料的其他介面。
現在參考第3圖,磁碟控制器200包括處理模組202、USB控制器204、橋接模組206、USB DMA模組222、匯流排介面模組208以及SATA控制器108。該磁碟控制器200可實施為一積體電路(integrated circuit,IC)或一系統單晶片(system-on-chip,SOC)。
如以下解釋,當從主機14接收一USB命令時,橋接模組206中的命令處理模組220中斷處理模組202。處理模組202將該USB命令轉換為SATA命令。當該命令係一寫入命令以從主機14寫入資料至磁碟驅動器18時,SATA控制器108存取主機14的記憶體,並將資料從主機14的記憶體直接傳至磁碟驅動器18。當該命令係一讀取命令以從磁碟驅動器18讀取資料時,SATA控制器108從磁碟驅動器讀取資料,並將該資料從磁碟驅動器18直接傳至主機14的記憶體。橋接模組206允許SATA控制器108直接接收/傳輸資料自/至主機14的記憶體而不需利用緩衝器104(圖中未示)。USB控制器204包括USB介面模組110、接收先進先出(First In,First Out,FIFO)212及傳輸FIFO 214。USB介面模組110將從主機14接收的命令儲存在接收FIFO 212中。
橋接模組206包括仲裁模組218、命令處理模組220、資料處理模組224、狀態處理模組228以及中斷處理模組230。該橋接模組206不包括緩衝器104。當從主機14接收一進入命令時,命令處理模組220中斷處理模組202。處理模組202將從主機14接收的命令轉換為一SATA命令,並且經由匯流排介面模組208輸出該SATA命令至SATA控制器108。該SATA控制器108係配置以依據該SATA命令轉移資料。在該SATA控制器108配置以依據該SATA命令轉移資料之後,SATA控制器108發送一請求至資料處理模組224,用於匯流排所有權以在SATA控制器108及USB控制器204之間直接轉移資料。
依命令的類型(如讀取或寫入命令)而定,仲裁模組218仲裁USB DMA模組222及橋接介面模組206之間的匯流排所有權及資料流程。仲裁模組218還可對命令階段、資料階段及狀態階段自動執行仲裁而無需軟體參與。
在讀取操作期間,仲裁模組218仲裁匯流排所有權以及從資料處理模組224至傳輸FIFO 214的資料流程,以為SATA DMA模組116提供一直接資料路徑,來將從磁碟驅動器18所讀取的資料經由USB控制器204直接轉移至主機14的記憶體。
在寫入操作期間,仲裁模組218仲裁匯流排所有權以及從接收FIFO 212及資料處理模組224的資料流程,以為SATA DMA模組116提供一直接資料路徑,來將資料經由USB控制器204從主機14的記憶體直接轉移至磁碟驅動器18。
當完成每個讀取/寫入命令時,SATA介面模組114將資訊直接提供至狀態處理模組228。一旦無錯誤地完成資料階段,狀態處理模組228可解釋資訊並自動發送狀態而無需軟體介入。
為了說明的簡單僅顯示一個SATA控制器,然而複數個SATA控制器可與匯流排介面模組208連接。對於與匯流排介面模組208連接的每個附加SATA控制器,橋接模組206可包括一附加的資料處理模組224及狀態處理模組228的組。USB DMA模組222為複數個SATA控制器處理DMA,並且利用一對應的資料處理模組224及狀態處理模組228的組而允許每個SATA控制器轉移資料。
資料處理模組224為SATA DMA模組116提供一直接資料路徑,以直接接收/傳輸資料自/至主機14的記憶體,而不需將資料儲存在緩衝器104中。依據SATA命令,資料處理模組224將資料主動地轉入及轉出USB控制器204。在對應於該命令的資料轉移完成之後,當狀態處理模組228從模組SATA介面模組114直接接收命令完成資訊時,狀態處理模組228還為一命令產生狀態資訊。如果在USB控制器204出現一錯誤,中斷處理模組230通知該處理模組202。
現參考第4圖,顯示了USB BOT命令的資料流程300。在步驟302,主機14發出一USB BOT命令。在步驟304,USB控制器204接收該USB BOT命令。在步驟306,USB DMA模組222或命令處理模組220中斷處理模組202。處理模組202將該USB BOT命令轉換為SATA命令,並將該SATA命令發送至SATA控制器108。在步驟308,SATA控制器108接收該SATA命令。依據該SATA命令,SATA控制器108準備轉移資料。
在步驟310,如果該USB命令係一寫入命令,則SATA控制器108將資料從主機14直接轉移至磁碟驅動器18。在步驟312,如果該USB命令係一讀取命令,則SATA控制器108將資料從磁碟驅動器18直接轉移至主機14。
在步驟314,當完成資料轉移時,SATA控制器108中斷處理模組202。在步驟318,於此同時,SATA介面模組114將資訊直接發送至狀態處理模組228。狀態處理模組228解釋該資訊並產生狀態而無需處理模組202的參與。在步驟320,主機14接收狀態資訊。
現參考第5圖,顯示了UAS命令的資料流程400。在步驟402,主機14發出USB UAS命令(如每一SATA埠一次多達32個命令的叢發)。在步驟404,USB控制器204接收該USB UAS命令。該等USB UAS命令未被合併在一起。在步驟406,USB DMA模組222或命令處理模組220中斷處理模組202(如多達32次)。
處理模組202將USB UAS命令轉換為SATA命令(一對一轉換),並將該SATA命令發送至SATA控制器108(如一次多達32個)。在步驟408,SATA控制器108接收該SATA命令(如一次多達32個)。依據該SATA命令,SATA控制器108準備轉移資料。SATA控制器108為所有SATA命令的資料轉移(讀取或寫入操作)設立一個DMA操作。
在步驟410,如果該USB命令係寫入命令,則SATA控制器108將資料從主機14直接轉移至磁碟驅動器18。例如,SATA控制器108執行多達32次寫入操作(資料轉移)。在步驟412,如果該USB命令係讀取命令,則SATA控制器108將資料從磁碟驅動器18直接轉移至主機14。例如,SATA控制器108執行多達32次讀取操作(資料轉移)。
在步驟414,當完成SATA命令的資料轉移時(如一次多達32個),SATA控制器108中斷處理模組202。在步驟416,處理模組202接收該等中斷(如一次多達32個)。在步驟418,於此同時,SATA介面模組114將資訊直接發送至狀態處理模組228(如一次多達32個)。狀態處理模組228解釋該資訊並產生狀態而無需處理模組202的參與。在步驟420,主機14接收狀態資訊(如一次多達32個狀態資訊)。
現參考第6A圖,顯示了依據本發明的命令處理的流程圖。在步驟502,在通電之後命令處理模組220閒置。在步驟504,命令處理模組220從主機14接收一USB讀取/寫入命令。在步驟508,命令處理模組220通知處理模組202,並且處理模組202將接收的USB命令轉換為SATA命令。在步驟510,處理模組202開始SATA讀取/寫入操作。在步驟512,在高速橋及SATA控制器108之間直接轉移資料。在高速橋及SATA控制器108之間的直接資料轉移期間,如果命令處理模組220接收下一個命令,則命令處理模組220通知處理模組202,處理模組202處理下一個命令,與正在轉移資料的前一個命令同時。
在步驟514,如果在資料轉移及/或命令處理(如在步驟504、步驟508、步驟510及/或步驟512)期間發生錯誤,則做出一決定。在步驟516,如果在資料轉移及/或命令處理(如在步驟504、步驟508、步驟510及/或步驟512)期間發生錯誤,則中斷處理模組230負責,並通知處理模組202進一步指示,並且命令處理模組220返回至閒置狀態。
現參考第6B圖,顯示了依據本發明的狀態處理的方法600。在步驟602,在通電之後狀態處理模組228閒置。在步驟604,當SATA控制器108完成任何讀取/寫入命令時,SATA控制器108中斷處理模組202。同時,SATA介面模組114通知並將命令完成資訊直接發送至狀態處理模組228。在步驟606,如果完成目前命令的資料轉移,則做出一決定。在步驟608,如果完成目前命令的資料轉移,如果無錯誤地完成該資料交易,則做出一決定。在步驟610,狀態處理模組228發出狀態而無處理模組202的參與。在步驟612,如果在資料交易中發生錯誤,則中斷處理模組230通知處理模組202進一步指示。
上述描述僅為說明並不旨在限制本發明、其應用或使用。本發明的廣泛教示可以各種形式實施。因此,本發明包括特定示例,本發明的真實範圍不應受限,因為其他修飾對於圖式、說明書以及所附申請專利範圍來說將是顯而易見的。為了清晰起見,圖式中使用相同的元件符號代表類似的元件。此處所使用的用語A、B及C中的至少其中之一應解釋為利用非排他性的邏輯OR以表示邏輯(A或B或C)。應理解的是,方法中一個或多個步驟可以不同順序(或同時)執行而不需更改本發明的原則。
如此處所使用的,術語模組可指的是一部分,或包括一專用積體電路(Application Specific Integrated Circuit,ASIC);一電子電路;一組合邏輯電路;現場可編程閘極陣列(field programmable gate array,FPGA);一執行編碼的處理器(共用、專用或集合);提供所述功能性的其他適宜硬體元件;或上述部分或所有的結合,如在系統單晶片中。術語模組可包括儲存由處理器所執行的編碼的記憶體(共用、專用或集合)。
如上所述,術語編碼可包括軟體、韌體及/或微碼,並且可指編程、程序、功能、級別及/或目標。如上所述,術語共用意思是利用一單一(共用)處理器可執行來自多個模組的部分或所有編碼。此外,來自多個模組的部分或所有編碼可由一單一(共用)記憶體儲存。如上所述,術語集合意思是利用一組處理器執行來自一單一模組的部分或所有編碼。此外,利用一組記憶體可儲存來自一單一模組的部分或所有編碼。
此處描述的裝置及方法可由一個或多個電腦程式實施,其中該等電腦程式由一個或多個處理器執行。該等電腦程式包括儲存在非暫態之有形電腦可讀媒體上的處理器可執行的指令。該等電腦程式還包括儲存的資料。非暫態之有形電腦可讀媒體的非限制性示例為非揮發性記憶體、磁性儲存器及光學儲存。
10...資料儲存系統
12...儲存裝置
14...主機
16...磁碟控制器
18...磁碟驅動器
100...磁碟控制器
102...處理模組
104...緩衝器
106...USB控制器
107...匯流排介面模組
108...SATA控制器
110...USB介面模組
112...USB DMA模組
114...SATA介面模組
116...SATA DMA模組
200...磁碟控制器
202...處理模組
204...USB控制器
206...橋接模組
208...匯流排介面模組
212...接收FIFO
214...傳輸FIFO
218...仲裁模組
220...命令處理模組
222...USB DMA模組
224...資料處理模組
228...狀態處理模組
230...中斷處理模組
300...資料流程
302~320...步驟
400...資料流程
402~420...步驟
500...方法
502~516...步驟
600...方法
602~612...步驟
由詳細描述及所附圖式將能更全面地理解本揭露內容,其中:
第1圖係依據先前技術的資料儲存系統的功能方塊圖;
第2圖係在讀取/寫入操作期間當在主機及磁碟驅動器之間轉移資料時使用一緩衝器的磁碟控制器的功能方塊圖;
第3圖係在讀取/寫入期間在主機及磁碟驅動器之間直接轉移資料而無需使用一緩衝器的磁碟控制器的功能方塊圖;
第4圖描述了當主機發出通用串列匯流排(Universal Serial Bus,USB)大容量傳輸(Bulk-only Transport,BOT)命令時在主機及磁碟驅動器之間的資料流程;
第5圖描述了當主機發出USB連接SCSI(USB Attached SCSI,UAS)命令時在主機及磁碟驅動器之間的資料流程;以及
第6A圖及第6B圖係命令處理、資料處理、狀態處理及錯誤處理觀點的高速橋操作的方法流程圖。
14...主機
18...磁碟驅動器
108...SATA控制器
110...USB介面模組
114...SATA介面模組
116...SATA DMA模組
200...磁碟控制器
202...處理模組
204...USB控制器
206...橋接模組
208...匯流排介面模組
212...接收FIFO
214...傳輸FIFO
218...仲裁模組
220...命令處理模組
222...USB DMA模組
224...資料處理模組
228...狀態處理模組
230...中斷處理模組
Claims (16)
- 一種系統,包括:一第一控制器,配置以經由一第一介面與一主機通信;一第二控制器,配置以經由一第二介面與一儲存裝置通信,其中該第二介面不同於該第一介面;以及一橋接模組,配置以允許該第二控制器在該儲存裝置及該主機之間轉移資料,並且在轉移期間允許該第二控制器經由該第一介面存取該主機的記憶體;以及配置以提供一資料路徑,用於該儲存裝置及該主機之間的該轉移,其中該資料路徑包括該第一控制器、該橋接模組及該第二控制器,並且其中該資料路徑不包括一緩衝器來儲存該資料,其中該第二控制器進一步配置使用所提供之該資料路徑,以直接接收/傳輸資料自/至該主機的該記憶體至/自該儲存裝置,而不需將該資料儲存在一緩衝器中。
- 依據申請專利範圍第1項所述的系統,其中該橋接模組係配置以當轉移進行時允許該第二控制器轉換來自該主機的一進入命令。
- 依據申請專利範圍第1項所述的系統,其中藉由解釋關於轉移的從該第二控制器所接收的資訊,該橋接模組係配置以返回該主機的轉移狀態。
- 依據申請專利範圍第1項所述的系統,其中該第一介面係一通用串列匯流排(Universal Serial Bus,USB)介面;以及該第二介面係一串列先進附加技術(Serial Advanced Technology Attachment,SATA)介面。
- 依據申請專利範圍第1項所述的系統,其中該橋接模組係配置以:將從該主機所接收的一第一命令轉換為一第二命令,其中該第一命令適用於該第一介面,並且其中該第二命令適用於該第二介面;以及將該第二命令轉移至該第二介面。
- 依據申請專利範圍第5項所述的系統,進一步包括該第二介面配置以:請求該橋接模組做為提供存取該主機的記憶體的該資料路徑;依據該第二命令,將該資料經由該資料路徑從該主機的記憶體轉移至該儲存裝置,以響應該第一命令,該第一命令係一寫入命令以寫入該資料至該儲存裝置;以及 依據該第二命令,將該資料從該儲存裝置轉移至該主機的記憶體,以響應該第一命令,該第一命令係一讀取命令以從該儲存裝置讀取該資料。
- 依據申請專利範圍第1項所述的系統,其中該橋接模組包括:一橋接介面模組,配置以接收來自該第二控制器的一請求做為該資料路徑,該資料路徑提供存取該主機的記憶體;以及一仲裁模組,配置以根據該請求提供該資料路徑至該第二控制器,以在該儲存裝置及主機的記憶體之間轉移該資料,以及其中該橋接介面模組允許該第二控制器經由該資料路徑在該儲存裝置及該主機的記憶體之間轉移該資料。
- 依據申請專利範圍第1項所述的系統,其中該系統係一系統單晶片(system-on-chip,SOC),並且其中:該第一控制器係一USB控制器,配置以經由該第一介面連接該儲存裝置的一儲存控制器至該主機,該第一介面係一USB介面;以及該第二控制器係一SATA控制器,配置以經由該第二介面連接該儲存控制器至該儲存裝置,該第二介面係一SATA介面;該系統進一步包括:一命令處理模組,配置以將來自該主機由該USB控制器所接收的一USB命令轉換為一SATA命令,以及輸出該SATA命令至該SATA控制器,其中該SATA控制器係配置以為該資料路徑產生一請求,用於存取該主機的記憶體以依據該SATA命令在該儲存裝置及該主機的記憶體之間轉移資料,其中該資料路徑係該記憶體及該儲存裝置之間的一路徑;以及其中該資料路徑不包括一緩衝器來儲存該資料;以及一資料處理模組,配置以接收來自該SATA控制器的該請求,以及提供該資料路徑至該SATA控制器,以在該儲存裝置及該主機的記憶體之間轉移該資料,其中該SATA控制器係配置以依據SATA命令在該儲存裝置及該主機的 記憶體之間轉移該資料。
- 依據申請專利範圍第8項所述的系統,進一步包括一狀態處理模組,配置以:接收並解釋來自該SATA控制器的命令完成資訊,以及根據該命令完成,藉由確定該轉移是否無錯誤地完成,產生該轉移的狀態,以及經由該USB控制器發送該轉移的狀態至該主機。
- 一種方法,包括:經由一第一控制器的一第一介面與一主機通信;經由一第二控制器的一第二介面與一儲存裝置通信,其中該第二介面不同於該第一介面;允許該第二控制器在該儲存裝置及該主機之間轉移資料;在轉移期間,允許該第二控制器經由該第一介面存取該主機的記憶體;以及提供一資料路徑,用於該儲存裝置及該主機之間的該轉移,其中該資料路徑包括該第一控制器及該第二控制器,並且其中該資料路徑不包括一緩衝器來儲存該資料,其中該第二控制器進一步配置使用所提供之該資料路徑,以直接接收/傳輸資料自/至該主機的該記憶體至/自該儲存裝置,而不需將該資料儲存在一緩衝器中。
- 依據申請專利範圍第10項所述的方法,進一步包括當轉移進行時轉換來自該主機的一進入命令。
- 依據申請專利範圍第10項所述的方法,進一步包括藉由解釋關於轉移從該第二控制器所接收的資訊,返回至該主機的轉移狀態。
- 依據申請專利範圍第10項所述的方法,其中該第一介面係一USB介面;以及該第二介面係一SATA介面。
- 依據申請專利範圍第10項所述的方法,進一步包括:將從該主機所接收的一第一命令轉換為一第二命令,其中該第一命令適用於該第一介面,以及其中該第二命令適用於該第二介面;以及 將該第二命令轉移至該第二介面。
- 依據申請專利範圍第14項所述的方法,進一步包括:請求該資料路徑,提供該第二控制器存取該主機的記憶體;依據該第二命令,將該資料經由資料路徑從該主機的記憶體轉移至該儲存裝置,以響應該第一命令,該第一命令係一寫入命令以寫入該資料至該儲存裝置;以及依據該第二命令,將該資料從該儲存裝置轉移至該主機的記憶體,以響應該第一命令,該第一命令係一讀取命令以從該儲存裝置讀取該資料。
- 依據申請專利範圍第10項所述的方法,進一步包括:接收自該第二控制器的一請求做為該資料路徑,該資料路徑提供存取該主機的記憶體;根據該請求提供該資料路徑至第二控制器,用以在該儲存裝置及該主機的記憶體之間轉移該資料;以及允許該第二控制器經由該資料路徑在該儲存裝置及該主機的記憶體之間轉移該資料。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US40544410P | 2010-10-21 | 2010-10-21 | |
US13/276,371 US8595406B2 (en) | 2010-10-21 | 2011-10-19 | USB-to-SATA high-speed bridge |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201224766A TW201224766A (en) | 2012-06-16 |
TWI541652B true TWI541652B (zh) | 2016-07-11 |
Family
ID=44910295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100138373A TWI541652B (zh) | 2010-10-21 | 2011-10-21 | Usb轉sata高速橋 |
Country Status (5)
Country | Link |
---|---|
US (2) | US8595406B2 (zh) |
EP (1) | EP2630565B1 (zh) |
CN (1) | CN103180816B (zh) |
TW (1) | TWI541652B (zh) |
WO (1) | WO2012054578A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI703446B (zh) * | 2019-01-29 | 2020-09-01 | 瑞昱半導體股份有限公司 | 介面轉接電路 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9158722B1 (en) * | 2011-11-02 | 2015-10-13 | Western Digital Technologies, Inc. | Data storage device to communicate with a host in a SATA or a USB mode |
TWI528786B (zh) * | 2011-11-14 | 2016-04-01 | 鴻海精密工業股份有限公司 | 資訊傳輸裝置 |
TWI486782B (zh) * | 2012-06-08 | 2015-06-01 | Prolific Technology Inc | 可動態設定傳輸組態的傳輸系統及其控制方法 |
TWI582600B (zh) * | 2013-01-04 | 2017-05-11 | 宏碁股份有限公司 | 電子裝置及其資料處理方法 |
CN103970691A (zh) * | 2013-01-24 | 2014-08-06 | 宏碁股份有限公司 | 电子装置及其数据处理方法 |
CN104281413B (zh) * | 2013-07-10 | 2017-10-20 | 群联电子股份有限公司 | 命令队列管理方法、存储器控制器及存储器储存装置 |
US9792048B2 (en) * | 2015-06-22 | 2017-10-17 | Western Digital Technologies, Inc. | Identifying disk drives and processing data access requests |
US10423568B2 (en) * | 2015-12-21 | 2019-09-24 | Microsemi Solutions (U.S.), Inc. | Apparatus and method for transferring data and commands in a memory management environment |
US10025727B2 (en) * | 2016-02-05 | 2018-07-17 | Honeywell International Inc. | Relay mechanism to facilitate processor communication with inaccessible input/output (I/O) device |
TWI647571B (zh) * | 2017-09-20 | 2019-01-11 | 旺玖科技股份有限公司 | 萬用串列匯流排集線器 |
TWI659359B (zh) * | 2018-04-27 | 2019-05-11 | 慧榮科技股份有限公司 | 控制儲存裝置之方法 |
TWI712893B (zh) * | 2018-09-04 | 2020-12-11 | 瑞昱半導體股份有限公司 | 資料傳輸格式轉換電路及控制其操作的方法 |
US20220345414A1 (en) * | 2019-08-30 | 2022-10-27 | Unitex Corporation | Interface Conversion Device |
CN112835834B (zh) * | 2019-11-25 | 2024-03-19 | 瑞昱半导体股份有限公司 | 数据传输系统 |
US11218396B2 (en) | 2019-12-23 | 2022-01-04 | Seagate Technology Llc | Port-to-port network routing using a storage device |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW276312B (zh) * | 1992-10-20 | 1996-05-21 | Cirrlis Logic Inc | |
EP1396786A1 (en) * | 2002-09-03 | 2004-03-10 | STMicroelectronics Limited | Bridge circuit for use in retiming in a semiconductor integrated circuit |
US7096307B2 (en) * | 2002-12-18 | 2006-08-22 | Freescale Semiconductor, Inc. | Shared write buffer in a peripheral interface and method of operating |
US8180931B2 (en) * | 2004-01-20 | 2012-05-15 | Super Talent Electronics, Inc. | USB-attached-SCSI flash-memory system with additional command, status, and control pipes to a smart-storage switch |
US7296109B1 (en) * | 2004-01-29 | 2007-11-13 | Integrated Device Technology, Inc. | Buffer bypass circuit for reducing latency in information transfers to a bus |
US7162706B2 (en) * | 2004-03-05 | 2007-01-09 | Picocraft Design Systems, Inc. | Method for analyzing and validating clock integration properties in circuit systems |
US8060670B2 (en) | 2004-03-17 | 2011-11-15 | Super Talent Electronics, Inc. | Method and systems for storing and accessing data in USB attached-SCSI (UAS) and bulk-only-transfer (BOT) based flash-memory device |
CN100524188C (zh) * | 2004-04-22 | 2009-08-05 | 钟巨航 | 对外存储器在接口转换中进行虚拟分隔的装置 |
US20060004935A1 (en) * | 2004-06-30 | 2006-01-05 | Pak-Lung Seto | Multi-protocol bridge |
US7428742B2 (en) * | 2004-09-09 | 2008-09-23 | Victor Chuan-Chen Wu | Mass storage cradle device |
TW200629072A (en) * | 2005-02-01 | 2006-08-16 | Sunplus Technology Co Ltd | Bridge system for hetero-serial interfaces |
US7970953B2 (en) * | 2005-06-30 | 2011-06-28 | Intel Corporation | Serial ATA port addressing |
US7620747B1 (en) * | 2005-10-12 | 2009-11-17 | Nvidia Corporation | Software based native command queuing |
CN101004659A (zh) * | 2006-01-19 | 2007-07-25 | 深圳市江波龙电子有限公司 | 支持sata和usb接口的移动存储方法及装置 |
US20090113454A1 (en) * | 2007-10-29 | 2009-04-30 | Inventec Corporation | System and method of testing bridge sas channels |
US20100190373A1 (en) * | 2008-01-22 | 2010-07-29 | Shih-Kun Yeh | Flat cable connector |
US8085501B2 (en) * | 2008-01-29 | 2011-12-27 | Imation Corp. | Reader including an interposer that prevents coupling with write-protected data cartridges |
EP2340491B1 (en) * | 2008-10-24 | 2019-11-27 | Hewlett-Packard Development Company, L.P. | Direct-attached/network-attached storage device |
US20110119686A1 (en) * | 2009-11-13 | 2011-05-19 | Macpower & Tytech Technology Co., Ltd. | External data storage assembly including a hard disk drive and method of monitoring the operational status of the hard disk drive |
-
2011
- 2011-10-19 EP EP11779511.2A patent/EP2630565B1/en active Active
- 2011-10-19 WO PCT/US2011/056850 patent/WO2012054578A1/en active Application Filing
- 2011-10-19 US US13/276,371 patent/US8595406B2/en active Active
- 2011-10-19 CN CN201180050796.6A patent/CN103180816B/zh active Active
- 2011-10-21 TW TW100138373A patent/TWI541652B/zh not_active IP Right Cessation
-
2013
- 2013-11-26 US US14/090,182 patent/US9471526B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI703446B (zh) * | 2019-01-29 | 2020-09-01 | 瑞昱半導體股份有限公司 | 介面轉接電路 |
Also Published As
Publication number | Publication date |
---|---|
US8595406B2 (en) | 2013-11-26 |
US9471526B2 (en) | 2016-10-18 |
CN103180816B (zh) | 2016-08-03 |
WO2012054578A1 (en) | 2012-04-26 |
EP2630565A1 (en) | 2013-08-28 |
CN103180816A (zh) | 2013-06-26 |
US20120102257A1 (en) | 2012-04-26 |
US20140082226A1 (en) | 2014-03-20 |
TW201224766A (en) | 2012-06-16 |
EP2630565B1 (en) | 2018-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI541652B (zh) | Usb轉sata高速橋 | |
US8631188B1 (en) | Data storage device overlapping host data transfer for a write command with inter-command delay | |
CN106775434B (zh) | 一种NVMe网络化存储的实现方法、终端、服务器及系统 | |
KR101934519B1 (ko) | 저장 장치 및 그것의 데이터 전송 방법 | |
US8990462B2 (en) | Storage device, computing system including the same and data transferring method thereof | |
US9128920B2 (en) | Interrupt handling systems and methods for PCIE bridges with multiple buses | |
US20160342547A1 (en) | Host bus access by add-on devices via a network interface controller | |
EP2423822B1 (en) | Methods and apparatus for improved serial advanced technology attachment performance | |
US20230122094A1 (en) | Storage system, method, and apparatus for fast io on pcie devices | |
KR102367359B1 (ko) | 직렬 시스템 버스 인터페이스 및 직접메모리액세스 컨트롤러를 갖는 전자 시스템 및 그 동작 방법 | |
KR101266572B1 (ko) | 스위칭 디바이스 및 스위칭 디바이스에서 동작 가능한 방법 | |
US7453904B2 (en) | Cut-through communication protocol translation bridge | |
US20130275652A1 (en) | Methods and structure for transferring additional parameters through a communication interface with limited parameter passing features | |
US20150074293A1 (en) | Information processing system, storage device and controlling method of storage device | |
WO2006019770A2 (en) | System and method for transmitting data in storage controllers | |
JP5728088B2 (ja) | 入出力制御装置及び入出力制御装置のフレーム処理方法 | |
US8745282B2 (en) | Concurrent response for device information during an initialization process for a storage device | |
US8856389B1 (en) | Efficient data transfers over serial data streams | |
US20160004655A1 (en) | Computing system and operating method of the same | |
CN108664428B (zh) | 一种基于fpga的通信方法以及fpga控制器和usb适配器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |