欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

Usb至sata的高速橋接器的制作方法

文檔序號(hào):6362064閱讀:188來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):Usb至sata的高速橋接器的制作方法
技術(shù)領(lǐng)域
本公開(kāi)內(nèi)容總體上涉及數(shù)據(jù)存儲(chǔ)系統(tǒng),尤其涉及用于存儲(chǔ)設(shè)備的通用串行總線(xiàn)(USB)至串行高級(jí)技術(shù)附件(SATA)的高速橋接器。
背景技術(shù)
這里提供的背景技術(shù)出于總體上給出本公開(kāi)內(nèi)容上下文的目的。到該背景技術(shù)部分中所描述的工作的程度上當(dāng)前署名發(fā)明人的工作以及在提交時(shí)并未以其它方式構(gòu)成現(xiàn)有技術(shù)的說(shuō)明書(shū)的方面并不明確也不隱含地被視為相對(duì)于本公開(kāi)內(nèi)容的現(xiàn)有技術(shù)?,F(xiàn)在參考圖1,數(shù)據(jù)存儲(chǔ)系統(tǒng)10包括存儲(chǔ)設(shè)備12和主機(jī)14。存儲(chǔ)設(shè)備12包括磁盤(pán)控制器16和磁盤(pán)驅(qū)動(dòng)器18。磁盤(pán)驅(qū)動(dòng)器18可以包括在磁性介質(zhì)上存儲(chǔ)數(shù)據(jù)的常規(guī)磁盤(pán)驅(qū)動(dòng)器,在半導(dǎo)體存儲(chǔ)器(例如,閃存)上存儲(chǔ)數(shù)據(jù)的固態(tài)盤(pán),或者在光盤(pán)上存儲(chǔ)數(shù)據(jù)的光盤(pán)驅(qū)動(dòng)器。主機(jī)14可以包括膝上計(jì)算機(jī)、個(gè)人計(jì)算機(jī)或者任意其它類(lèi)型的計(jì)算設(shè)備。存儲(chǔ)設(shè)備12可以經(jīng)由通用串行總線(xiàn)(USB)接口與主機(jī)14進(jìn)行通信。相應(yīng)地,磁盤(pán)控制器16可以包括用于與主機(jī)12進(jìn)行通信的USB接口。磁盤(pán)控制器16還可以包括用于與磁盤(pán)驅(qū)動(dòng)器18進(jìn)行通信的串行高級(jí)技術(shù)附件(SATA)接口。

發(fā)明內(nèi)容
—種系統(tǒng)包括:被配置為經(jīng)由第一接口與主機(jī)進(jìn)行通信的第一控制器;被配置為經(jīng)由第二接口與存儲(chǔ)設(shè)備進(jìn)行通信的第二控制器,其中該第二接口不同于該第一接口 ;以及被配置為允許第二控制器在存儲(chǔ)設(shè)備和主機(jī)之間傳輸數(shù)據(jù)并且允許第二控制器在傳輸期間經(jīng)由第一接口訪(fǎng)問(wèn)主機(jī)的存儲(chǔ)器的橋接器模塊。在另一特征中,該橋接器模塊被配置為提供用于在存儲(chǔ)設(shè)備和主機(jī)之間進(jìn)行傳輸?shù)穆窂?,其中該路徑包括第一控制器、橋接器模塊和第二控制器,并且其中該路徑不包括了用于存儲(chǔ)數(shù)據(jù)的緩沖器。在另一特征中,該橋接器模塊被配置為允許第二控制器在傳輸進(jìn)行的同時(shí)對(duì)來(lái)自主機(jī)的命令進(jìn)行轉(zhuǎn)換。在另一個(gè)特征中,該橋接器模塊被配置為通過(guò)解釋從第二控制器接收的關(guān)于傳輸?shù)男畔?lái)向主機(jī)返回傳輸狀態(tài)。在另一個(gè)特征中,第一接口是通用串行總線(xiàn)(USB)接口,并且第二接口是串行高級(jí)技術(shù)附件(SATA)接口。
在另一個(gè)特征中,該橋接器模塊被配置為將從主機(jī)接收的第一命令轉(zhuǎn)換為第二命令,其中該第一命令與第一接口相兼容,并且其中該第二命令與第二接口相兼容;并且將該第二命令傳輸至第二接口。在另一個(gè)特征中,該橋接器模塊包括橋接器接口模塊,其被配置為接收來(lái)自第二控制器的針對(duì)用于提供對(duì)主機(jī)的存儲(chǔ)器的訪(fǎng)問(wèn)的數(shù)據(jù)路徑的請(qǐng)求。該橋接器模塊包括仲裁模塊,其被配置為基于該請(qǐng)求將向第二控制器提供該數(shù)據(jù)路徑以在存儲(chǔ)設(shè)備和主機(jī)的存儲(chǔ)器之間傳輸數(shù)據(jù)。該數(shù)據(jù)路徑不包括用于存儲(chǔ)數(shù)據(jù)的緩沖器。該橋接器接口模塊允許第二控制器經(jīng)由該數(shù)據(jù)路徑在存儲(chǔ)設(shè)備和主機(jī)的存儲(chǔ)器之間傳輸數(shù)據(jù)。在另外的其它特征中,一種片上系統(tǒng)(SOC)包括被配置為經(jīng)由通用串行總線(xiàn)(USB)接口將存儲(chǔ)設(shè)備的存儲(chǔ)控制器連接至主機(jī)的USB控制器,和被配置為經(jīng)由串行高級(jí)技術(shù)附件(SATA)接口將存儲(chǔ)控制器連接至存儲(chǔ)設(shè)備的SATA控制器。該SOC進(jìn)一步包括命令處理模塊,其被配置為將USB控制器從主機(jī)所接收的USB命令轉(zhuǎn)換為SATA命令,并且將該SATA命令輸出至SATA控制器。該SATA控制器被配置為生成針對(duì)用于對(duì)所述主機(jī)的存儲(chǔ)器的訪(fǎng)問(wèn)的數(shù)據(jù)路徑的請(qǐng)求,以根據(jù)該SATA命令在存儲(chǔ)設(shè)備和主機(jī)的存儲(chǔ)器之間傳輸數(shù)據(jù)。該數(shù)據(jù)路徑是存儲(chǔ)器和存儲(chǔ)設(shè)備之間的路徑。該SOC進(jìn)一步包括數(shù)據(jù)處理模塊,其被配置為接收來(lái)自SATA控制器的請(qǐng)求,并且向SATA控制器提供數(shù)據(jù)路徑以在存儲(chǔ)設(shè)備和主機(jī)的存儲(chǔ)器之間傳輸數(shù)據(jù)。該SATA控制器被配置為根據(jù)該SATA命令在存儲(chǔ)設(shè)備和主機(jī)的存儲(chǔ)器之間傳輸數(shù)據(jù)。在另一個(gè)特征中,該SOC進(jìn)一步包括狀態(tài)處理模塊,其被配置為接收并且解釋來(lái)自SATA控制器的命令完成信息;通過(guò)確定傳輸是否無(wú)錯(cuò)誤地完成而基于該命令完成生成傳輸狀態(tài);并且經(jīng)由USB控制器將該傳輸狀態(tài)發(fā)送至主機(jī)。在另外的其它特征中,一種方法包括經(jīng)由第一控制器的第一接口與主機(jī)進(jìn)行通信;經(jīng)由第二控制器的第二接口與存儲(chǔ)設(shè)備進(jìn)行通信,其中該第二接口不同于第一接口 ;允許第二控制器在存儲(chǔ)設(shè)備和主機(jī)之間傳輸數(shù)據(jù);并且允許第二控制器在傳輸期間經(jīng)由第一接口訪(fǎng)問(wèn)主機(jī)的存儲(chǔ)器。在另一個(gè)特征中,該方法進(jìn)一步包括提供用于在存儲(chǔ)設(shè)備和主機(jī)之間進(jìn)行傳輸?shù)穆窂剑渲性撀窂桨ǖ谝豢刂破骱偷诙刂破?,并且其中該路徑不包括用于存?chǔ)數(shù)據(jù)的緩沖器。在另一特征中,該方法進(jìn)一步包括在傳輸進(jìn)行的同時(shí)對(duì)來(lái)自主機(jī)的傳入命令進(jìn)行轉(zhuǎn)換。在另一個(gè)特征中,該方法進(jìn)一步包括通過(guò)解釋從第二控制器所接收的關(guān)于傳輸?shù)男畔?lái)向主機(jī)返回傳輸狀態(tài)。在另一個(gè)特征中,在該方法中,第一接口是通用串行總線(xiàn)(USB)接口,而第二接口是串行高級(jí)技術(shù)附件(SATA)接口。在另一個(gè)特征中,該方法進(jìn)一步包括將從主機(jī)接收的第一命令轉(zhuǎn)換為第二命令,其中該第一命令與第一接口相兼容,并且其中該第二命令與第二接口相兼容;并且將該第二命令傳輸至第二接口。在另一個(gè)特征中,該方法進(jìn)一步包括從第二控制器接收來(lái)自第二控制器的針對(duì)用于提供對(duì)主機(jī)的存儲(chǔ)器的訪(fǎng)問(wèn)的數(shù)據(jù)路徑的請(qǐng)求;基于該請(qǐng)求,向第二控制器提供該數(shù)據(jù)路徑以在存儲(chǔ)設(shè)備和主機(jī)的存儲(chǔ)器之間傳輸數(shù)據(jù),其中該數(shù)據(jù)路徑不包括用于存儲(chǔ)數(shù)據(jù)的緩沖器;并且允許第二控制器經(jīng)由該數(shù)據(jù)路徑在存儲(chǔ)設(shè)備和主機(jī)的存儲(chǔ)器之間傳輸數(shù)據(jù)。本公開(kāi)內(nèi)容另外的應(yīng)用領(lǐng)域?qū)⑼ㄟ^(guò)詳細(xì)描述、權(quán)利要求和附圖而變得清楚。詳細(xì)描述和具體示例僅意在用于說(shuō)明的目的而并非意在對(duì)本公開(kāi)內(nèi)容的范圍進(jìn)行限制。


本公開(kāi)內(nèi)容將從詳細(xì)描述和附圖而被更為全面地理解,其中:圖1是根據(jù)現(xiàn)有技術(shù)的數(shù)據(jù)存儲(chǔ)系統(tǒng)的功能框圖;圖2是讀/寫(xiě)操作期間在主機(jī)和磁盤(pán)驅(qū)動(dòng)器之間傳輸數(shù)據(jù)時(shí)使用緩沖器的磁盤(pán)控制器的功能框圖;圖3是在讀/寫(xiě)操作期間不使用緩沖器而直接在主機(jī)和磁盤(pán)驅(qū)動(dòng)器之間傳輸數(shù)據(jù)的磁盤(pán)控制器的功能框圖;圖4描繪了當(dāng)主機(jī)發(fā)出通用串行總線(xiàn)(USB)單批量傳輸(BOT ;Bulk-onlyTransport)命令時(shí)主機(jī)和磁盤(pán)驅(qū)動(dòng)器之間的數(shù)據(jù)流;圖5描繪了當(dāng)主機(jī)發(fā)出USB連接SCSI (UAS ;USB Attached SCSI)命令時(shí)主機(jī)和磁盤(pán)驅(qū)動(dòng)器之間的數(shù)據(jù)流;圖6A和6B是用于從命令處理、數(shù)據(jù)處理、狀態(tài)處理和錯(cuò)誤處理角度用于高速橋接器操作的方法的流程圖。
具體實(shí)施例方式現(xiàn)在參考圖2,示出了磁盤(pán)控制器的示例。磁盤(pán)控制器100包括處理模塊102、總線(xiàn)接口模塊107、緩沖器104、通用串行總線(xiàn)(USB)控制器106和串行高級(jí)技術(shù)附件(SATA)控制器108。USB控制器106包括作為和主機(jī)14的接口的USB接口模塊110,以及與USB接口模塊、處理模塊102和緩沖器104進(jìn)行通信的USB直接存儲(chǔ)器存取(DMA)模塊112。SATA控制器108包括作為和磁盤(pán)驅(qū)動(dòng)器18的接口的SATA接口模塊114,以及與SATA接口模塊114、處理模塊102和緩沖器104進(jìn)行通信的SATA DMA模塊116。總線(xiàn)接口模塊107與USBDMA模塊112、SATA DMA模塊116、處理模塊102和緩沖器104進(jìn)行通信??偩€(xiàn)接口模塊107為USB DMA模塊112和SATA DMA模塊116提供到緩沖器104的DMA路徑。當(dāng)主機(jī)14發(fā)出在磁盤(pán)驅(qū)動(dòng)器18上寫(xiě)入數(shù)據(jù)的寫(xiě)命令時(shí),USB DMA模塊112經(jīng)由USB接口模塊110從主機(jī)14接收數(shù)據(jù)并且將該數(shù)據(jù)存儲(chǔ)在緩沖器104中。SATA DMA模塊116從緩沖器104獲取數(shù)據(jù)并且將該數(shù)據(jù)轉(zhuǎn)發(fā)至SATA接口模塊114,其將該數(shù)據(jù)寫(xiě)入磁盤(pán)驅(qū)動(dòng)器18。當(dāng)主機(jī)14發(fā)出從磁盤(pán)驅(qū)動(dòng)器18讀取數(shù)據(jù)的讀命令時(shí),SATA DMA模塊116經(jīng)由SATA接口模塊114從磁盤(pán)驅(qū)動(dòng)器18接收數(shù)據(jù)并且將該數(shù)據(jù)存儲(chǔ)在緩沖器104中。USB DMA模塊112從緩沖器104獲取數(shù)據(jù)并且將該數(shù)據(jù)轉(zhuǎn)發(fā)至USB接口模塊110,其將該數(shù)據(jù)輸出至主機(jī)104。在讀/寫(xiě)操作期間緩存數(shù)據(jù)會(huì)降低在USB接口模塊110和SATA接口模塊114之間傳輸數(shù)據(jù)的速率。結(jié)果,盡管分別具有5千兆比特每秒(Gbps)或6Gbps的數(shù)據(jù)傳輸速率,但是諸如USB 3.0和SATA 3.0之類(lèi)的高速接口的性能也會(huì)有所下降。此外,在讀/寫(xiě)操作期間緩存數(shù)據(jù)生成許多中斷,處理模塊102必須對(duì)其進(jìn)行處理并且會(huì)增加開(kāi)銷(xiāo)并降低IO性倉(cāng)泛。能夠通過(guò)在USB和SATA控制器之間使用高速橋接器而不是使用緩沖器來(lái)消除在讀/寫(xiě)操作期間緩存數(shù)據(jù)。如以下所解釋的,橋接器例如可以利用USB接口的單批量傳輸(BOT)和USB連接SCSI (UAS)協(xié)議以及SATA接口的原生命令隊(duì)列(NCQ)協(xié)議進(jìn)行工作。橋接器基于BOT和UAS協(xié)議確定USB和SATA控制器之間的數(shù)據(jù)傳輸?shù)拿铍A段、數(shù)據(jù)階段和狀態(tài)階段。命令階段包括命令轉(zhuǎn)換。數(shù)據(jù)階段包括根據(jù)命令的數(shù)據(jù)傳輸。狀態(tài)階段包括向主機(jī)返回命令和相關(guān)聯(lián)數(shù)據(jù)傳輸?shù)臓顟B(tài)。橋接器能夠?qū)?lái)自主機(jī)的命令進(jìn)行自動(dòng)轉(zhuǎn)換。SATA DMA模塊能夠在不適用緩沖器的情況下直接從橋接器接收數(shù)據(jù)/向其傳送數(shù)據(jù)。在確定數(shù)據(jù)事務(wù)完成之后,橋接器基于從SATA控制器所接收的信息自動(dòng)返回狀態(tài)。該橋接器因此提高了吞吐量并優(yōu)化了 IO性能。本公開(kāi)內(nèi)容使用USB接口和SATA接口僅是用于示例。本公開(kāi)內(nèi)容的教導(dǎo)并不局限于USB和SATA接口。本公開(kāi)內(nèi)容的教導(dǎo)能夠應(yīng)用于用來(lái)在主機(jī)和磁盤(pán)驅(qū)動(dòng)器之間以高速傳輸數(shù)據(jù)的其它接口?,F(xiàn)在參考圖3,磁盤(pán)控制器200包括處理模塊202、USB控制器204、橋接器模塊206、USB DMA模塊222、總線(xiàn)接口模塊208和SATA控制器108。磁盤(pán)控制器200可以被實(shí)施為集成電路(IC)或片上系統(tǒng)(SOC)。如以下所解釋的,橋接器模塊206中的命令處理模塊220在從主機(jī)14接收到USB命令是中斷處理模塊202。處理模塊202將該USB命令轉(zhuǎn)換為SATA命令。當(dāng)命令是從主機(jī)14向磁盤(pán)驅(qū)動(dòng)器18寫(xiě)入數(shù)據(jù)的寫(xiě)命令時(shí),SATA控制器108訪(fǎng)問(wèn)主機(jī)14的存儲(chǔ)器并且將數(shù)據(jù)直接從主機(jī)14的存儲(chǔ)器傳輸至磁盤(pán)驅(qū)動(dòng)器18。當(dāng)命令是從磁盤(pán)驅(qū)動(dòng)器18讀取數(shù)據(jù)的讀命令時(shí),SATA控制器108從磁盤(pán)驅(qū)動(dòng)器讀取數(shù)據(jù)并且將數(shù)據(jù)直接從磁盤(pán)驅(qū)動(dòng)器18傳輸至主機(jī)14的存儲(chǔ)器。橋接器模塊206允許SATA控制器108在不使用緩沖器104 (未示出)的情況下直接從主機(jī)14的存儲(chǔ)器接收數(shù)據(jù)/向其傳送數(shù)據(jù)。USB控制器204包括USB接口模塊110、接收FIFO 212和傳送FIFO 215。USB接口模塊110將從主機(jī)14所接收的命令存儲(chǔ)在接收FIFO 212中。橋接器模塊206包括仲裁模塊218、命令處理模塊220、數(shù)據(jù)處理模塊224、狀態(tài)處理模塊228以及中斷處理模塊230。橋接器模塊206并不包括緩沖器。命令處理模塊220在接收到來(lái)自主機(jī)14的傳入命令時(shí)中斷處理模塊202。處理模塊202將從主機(jī)14接收的命令轉(zhuǎn)換為SATA命令并且將該SATA命令經(jīng)由總線(xiàn)接口模塊208輸出至SATA控制器108。SATA控制器108被配置為根據(jù)SATA命令傳輸數(shù)據(jù)。在SATA控制器108被配置為根據(jù)SATA命令傳輸數(shù)據(jù)之后,該SATA控制器108向數(shù)據(jù)處理模塊224發(fā)送針對(duì)總線(xiàn)所有權(quán)的請(qǐng)求以在SATA控制器108和USB控制器204之間直接傳輸數(shù)據(jù)。根據(jù)命令的類(lèi)型(例如,讀或?qū)懨?,仲裁模塊218對(duì)總線(xiàn)所有權(quán)以及USB DMA模塊222和橋接器接口模塊206之間的數(shù)據(jù)流進(jìn)行仲裁。仲裁模塊218還能夠?qū)γ铍A段、數(shù)據(jù)階段和狀態(tài)階段自動(dòng)執(zhí)行仲裁而無(wú)需涉及軟件。在讀取操作期間,仲裁模塊218對(duì)總線(xiàn)所有權(quán)以及從數(shù)據(jù)處理模塊224到傳送FIFO 214的數(shù)據(jù)流進(jìn)行仲裁以向SATA DMA模塊116提供直接數(shù)據(jù)路徑以將從磁盤(pán)驅(qū)動(dòng)器18所讀取的數(shù)據(jù)直接經(jīng)由USB控制器204直接傳輸至主機(jī)14的存儲(chǔ)器。
在寫(xiě)入操作期間,仲裁模塊218對(duì)總線(xiàn)所有權(quán)以及來(lái)自接收FIFO 212和數(shù)據(jù)處理模塊224的數(shù)據(jù)流進(jìn)行仲裁以向SATA DMA模塊116提供直接數(shù)據(jù)路徑以將來(lái)自主機(jī)14的存儲(chǔ)器的數(shù)據(jù)經(jīng)由USB控制器204直接傳輸至磁盤(pán)驅(qū)動(dòng)器18。當(dāng)每個(gè)讀/寫(xiě)命令完成時(shí),SATA接口模塊114直接向狀態(tài)處理模塊228提供信息。狀態(tài)處理模塊228能夠?qū)υ撔畔⑦M(jìn)行解釋并且在數(shù)據(jù)階段沒(méi)有錯(cuò)誤地完成時(shí)自動(dòng)發(fā)出狀態(tài)而無(wú)需軟件干預(yù)。雖然為了圖示的簡(jiǎn)明而僅示出了一個(gè)SATA控制器,但是多個(gè)SATA控制器能夠與總線(xiàn)接口模塊208進(jìn)行連接。對(duì)于與總線(xiàn)接口模塊208進(jìn)行連接的每個(gè)附加SATA控制器而言,橋接器模塊206可以包括附加的數(shù)據(jù)處理模塊224和狀態(tài)處理模塊228的集合。USBDMA模塊222處理針對(duì)多個(gè)SATA控制器的DMA,并且允許每個(gè)SATA控制器使用數(shù)據(jù)處理模塊224和狀態(tài)處理模塊228的相對(duì)應(yīng)的集合來(lái)傳輸數(shù)據(jù)。數(shù)據(jù)處理模塊224向SATA DMA模塊116提供直接數(shù)據(jù)路徑以直接從主機(jī)14的存儲(chǔ)器接收數(shù)據(jù)/向其傳送數(shù)據(jù)而并不將數(shù)據(jù)存儲(chǔ)在緩沖器104中。數(shù)據(jù)處理模塊224根據(jù)SATA命令在USB控制器204內(nèi)外主動(dòng)傳輸數(shù)據(jù)。當(dāng)狀態(tài)處理模塊228在對(duì)應(yīng)于命令的數(shù)據(jù)傳輸完成之后直接從SATA接口模塊114接收到命令完成信息時(shí),狀態(tài)處理模塊228還針對(duì)該命令生成狀態(tài)信息。如果在USB控制器204發(fā)生了錯(cuò)誤,則中斷處理模塊230就通知處理模塊202?,F(xiàn)在參考圖4,示出了針對(duì)USB單批量傳輸(BOT)命令的數(shù)據(jù)流300。在302,主機(jī)14發(fā)出USB BOT命令。在304,USB控制器204接收USB BOT命令。在306,USB DMA模塊222或命令處理模塊220中斷處理模塊202。處理模塊202將USB BOT命令轉(zhuǎn)換為SATA命令并且將SATA命令發(fā)送至SATA控制器108。在308,SATA控制器108接收SATA命令。SATA控制器108準(zhǔn)備根據(jù)SATA命令傳輸數(shù)據(jù)。在310,SATA控制器108在USB命令為寫(xiě)命令的情況下直接從主機(jī)14向磁盤(pán)驅(qū)動(dòng)器18傳輸數(shù)據(jù)。在312,SATA控制器108在USB命令為讀命令的情況下直接從磁盤(pán)驅(qū)動(dòng)器18向主機(jī)14傳輸數(shù)據(jù)。在314,SATA控制器在數(shù)據(jù)傳輸完成時(shí)中斷處理模塊202。與此同時(shí),在318,SATA接口模塊114直接向狀態(tài)處理模塊228發(fā)送信息。狀態(tài)處理模塊228解釋該信息并且在不涉及處理模塊202的情況下生成狀態(tài)。在320,主機(jī)14接收狀態(tài)信息?,F(xiàn)在參考圖5,示出了針對(duì)USB連接SCSI (UAS)命令的數(shù)據(jù)流400。在403,主機(jī)14發(fā)出USB UAS命令(例如,每一個(gè)SATA端口每次多達(dá)32個(gè)命令的突發(fā))。在404,USB控制器204接收USB UAS命令。USB UAS命令并不被合并在一起。在406,USB DMA模塊222或命令處理模塊220中斷處理模塊202 (例如,多達(dá)32次)。處理模塊202將該USB UAS命令轉(zhuǎn)換為SATA命令(一對(duì)一轉(zhuǎn)換)并且將SATA命令發(fā)送至SATA控制器108 (例如,每次多達(dá)32個(gè))。在408,SATA控制器108接收到SATA命令(例如,每次多達(dá)32個(gè))。SATA控制器108準(zhǔn)備根據(jù)SATA命令傳輸數(shù)據(jù)。SATA控制器108針對(duì)所有SATA命令的數(shù)據(jù)傳輸(讀取或?qū)懭氩僮?設(shè)置一個(gè)DMA操作。在410,SATA控制器108在USB命令是寫(xiě)命令的情況下直接從主機(jī)14向磁盤(pán)驅(qū)動(dòng)器18傳輸數(shù)據(jù)。例如,SATA控制器108執(zhí)行多達(dá)32次的寫(xiě)入操作(數(shù)據(jù)傳輸)。在412,SATA控制器108在USB命令為讀命令的情況下直接從磁盤(pán)驅(qū)動(dòng)器18向主機(jī)14傳輸數(shù)據(jù)。例如,SATA控制器108執(zhí)行多達(dá)32次的讀取操作(數(shù)據(jù)傳輸)。在414,SATA控制器108在針對(duì)SATA命令的數(shù)據(jù)傳輸完成時(shí)中斷處理模塊202 (例如,每次多達(dá)32個(gè))。在416,處理模塊202接收到中斷(例如,每次多達(dá)32個(gè))。與此同時(shí),在418,SATA接口模塊114直接向狀態(tài)處理模塊228發(fā)送信息(例如,每次多達(dá)32個(gè))。狀態(tài)處理模塊228解釋該信息并且在無(wú)需涉及處理模塊202的情況下生成狀態(tài)。在420,主機(jī)14接收狀態(tài)信息(例如,每次多達(dá)32條狀態(tài)信息)。現(xiàn)在參考圖6A,示出了根據(jù)本公開(kāi)內(nèi)容的命令處理的流程圖。在502,命令處理模塊220在啟動(dòng)之后空閑。在504,命令處理模塊220從主機(jī)14接收USB讀/寫(xiě)命令。在508,命令處理模塊220通知處理模塊202,并且處理模塊202將所接收的USB命令轉(zhuǎn)換為SATA命令。在510,處理模塊202發(fā)起SATA讀/寫(xiě)操作。在512,在高速橋接器和SATA控制器108之間直接傳輸數(shù)據(jù)。在高速橋接器和SATA控制器108之間的直接數(shù)據(jù)傳輸期間,如果命令處理模塊220接收到下一條命令,則命令處理模塊220通知處理模塊202,其與正針對(duì)其傳輸數(shù)據(jù)的之前的命令并行地對(duì)下一個(gè)命令進(jìn)行處理。在514,確定數(shù)據(jù)傳輸和/或命令處理期間(例如,在504、508、510和/或512)是否發(fā)生了錯(cuò)誤。在516,如果在數(shù)據(jù)傳輸和/或命令處理期間(例如,在504、508、510和/或512)發(fā)生了錯(cuò)誤,則中斷處理模塊240接管并且針對(duì)另外的指令通知處理模塊202,并且命令處理模塊220返回空閑狀態(tài)?,F(xiàn)在參考圖6B,示出了根據(jù)本公開(kāi)內(nèi)容的用于狀態(tài)處理的方法600。在602,狀態(tài)處理模塊228在啟動(dòng)之后處于空閑。在604,當(dāng)SATA控制器108完成任意讀/寫(xiě)命令時(shí),SATA控制器108中斷處理模塊202。與此同時(shí),SATA接口模塊114通知狀態(tài)處理模塊228并直接向其發(fā)送命令完成信息。在606,確定當(dāng)前命令的數(shù)據(jù)傳輸是否完成。在608,如果當(dāng)前命令的數(shù)據(jù)傳輸完成,則確定數(shù)據(jù)事務(wù)是否沒(méi)有錯(cuò)誤地完成。在610,狀態(tài)處理模塊228在并不涉及處理模塊202的情況下發(fā)出狀態(tài)。在612,如果在數(shù)據(jù)事務(wù)中發(fā)生了錯(cuò)誤,則中斷處理模塊230針對(duì)另外的指令通知處理模塊202。前文描述其本質(zhì)僅是示例性的并且不以任何方式意圖對(duì)本公開(kāi)內(nèi)容、其應(yīng)用或用途進(jìn)行限制。本公開(kāi)內(nèi)容的寬泛教導(dǎo)能夠以各種形式來(lái)實(shí)施。因此,雖然本公開(kāi)內(nèi)容包括特定示例,但是由于其它的修改在研習(xí)了附圖、說(shuō)明書(shū)和以下權(quán)利要求后將變得清楚,所以本公開(kāi)內(nèi)容的實(shí)際范圍并不應(yīng)當(dāng)被限制于此。出于清楚的目的,在附圖中將使用相同的附圖標(biāo)記來(lái)標(biāo)示類(lèi)似的元件。如這里所使用的,短語(yǔ)A、B和C中的至少一個(gè)應(yīng)當(dāng)被理解為表示使用非排他性的邏輯OR的邏輯(A或B或C)。應(yīng)當(dāng)理解的是,方法之中的一個(gè)或多個(gè)步驟可以以不同順序(或并發(fā))執(zhí)行而并不改變本公開(kāi)內(nèi)容的原則。如這里所使用的,術(shù)語(yǔ)模塊可以指代、作為其一部分或者包括專(zhuān)用集成電路(ASIC)、電路、組合邏輯電路、現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)、執(zhí)行代碼的處理器(共享的、專(zhuān)用的或群組)、提供所描述功能的其它適當(dāng)硬件組件、或者諸如在片上系統(tǒng)中的以上一些或全部的組合。術(shù)語(yǔ)模塊可以包括存儲(chǔ)由處理器所執(zhí)行的代碼的存儲(chǔ)器(共享的、專(zhuān)用的或群組)。如以上所使用的,術(shù)語(yǔ)代碼可以包括軟件、固件和/或微代碼,并且可以指代程序、例程、函數(shù)、類(lèi)和/或?qū)ο?。如以上所使用的,術(shù)語(yǔ)共享的意味著來(lái)自多個(gè)模塊的一些或所有代碼可以使用單個(gè)(共享)處理器來(lái)執(zhí)行。此外,來(lái)自多個(gè)模塊的一些或所有代碼可以被單個(gè)(共享的)存儲(chǔ)器所存儲(chǔ)。如以上所使用的,術(shù)語(yǔ)群組的意味著來(lái)自單個(gè)模塊的一些或所有代碼可以使用處理器群組來(lái)執(zhí)行。此外,來(lái)自單個(gè)模塊的一些或所有模塊可以使用存儲(chǔ)器群組來(lái)存儲(chǔ)。這里所描述的裝置和方法可以通過(guò)由一個(gè)或多個(gè)處理器執(zhí)行的一個(gè)或多個(gè)計(jì)算機(jī)程序來(lái)實(shí)施。計(jì)算機(jī)程序包括存儲(chǔ)在非瞬時(shí)的有形計(jì)算機(jī)可讀介質(zhì)上的處理器可執(zhí)行指令。計(jì)算機(jī)程序還可以包括所存儲(chǔ)的數(shù)據(jù)。非瞬時(shí)的有形計(jì)算機(jī)可讀介質(zhì)的非限制性示例為非易失性存儲(chǔ)器、磁性存儲(chǔ)裝置和光學(xué)存儲(chǔ)裝置。
權(quán)利要求
1.一種系統(tǒng),包括: 第一控制器,被配置為經(jīng)由第一接口與主機(jī)進(jìn)行通信; 第二控制器,被配置為經(jīng)由第二接口與存儲(chǔ)設(shè)備進(jìn)行通信,其中所述第二接口不同于所述第一接口 ;以及 橋接器模塊,被配置為允許所述第二控制器在所述存儲(chǔ)設(shè)備和所述主機(jī)之間傳輸數(shù)據(jù)并且允許所述第二控制器在所述傳輸期間經(jīng)由所述第一接口訪(fǎng)問(wèn)所述主機(jī)的存儲(chǔ)器。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述橋接器模塊被配置為提供用于所述存儲(chǔ)設(shè)備和所述主機(jī)之間的所述傳輸?shù)穆窂剑⑶移渲兴雎窂桨ㄋ龅谝豢刂破?、所述橋接器模塊和所述第二控制器,并且其中所述路徑不包括用于存儲(chǔ)所述數(shù)據(jù)的緩沖器。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述橋接器模塊被配置為允許所述第二控制器在所述傳輸進(jìn)行的同時(shí)對(duì)來(lái)自所述主機(jī)的傳入命令進(jìn)行轉(zhuǎn)換。
4.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述橋接器模塊被配置為通過(guò)解釋從所述第二控制器接收的關(guān)于所述傳輸?shù)男畔?lái)向所述主機(jī)返回所述傳輸?shù)臓顟B(tài)。
5.根據(jù)權(quán)利要求1所述的系統(tǒng),其中: 所述第一接口是通用串行總線(xiàn)(USB)接口 ;并且 所述第二接口是串行高級(jí)技術(shù)附件(SATA)接口。
6.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述橋接器模塊被配置為: 將從所述主機(jī)接收的第一命令轉(zhuǎn)換為第二命令,其中所述第一命令與所述第一接口相兼容,并且其中所述第二命令與所述第二接口相兼容;以及將所述第二命令傳輸至 所述第二接口。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),進(jìn)一步包括所述第二接口,所述第二接口被配置為: 向所述橋接器模塊請(qǐng)求數(shù)據(jù)路徑,所述數(shù)據(jù)路徑用于提供對(duì)所述主機(jī)的所述存儲(chǔ)器的訪(fǎng)問(wèn),其中所述數(shù)據(jù)路徑不包括用于存儲(chǔ)所述數(shù)據(jù)的緩沖器; 響應(yīng)于所述第一命令是用于向所述存儲(chǔ)設(shè)備寫(xiě)入所述數(shù)據(jù)的寫(xiě)命令而根據(jù)所述第二命令經(jīng)由所述數(shù)據(jù)路徑從所述主機(jī)的所述存儲(chǔ)器向所述存儲(chǔ)設(shè)備傳輸所述數(shù)據(jù);以及響應(yīng)于所述第一命令是用于從所述存儲(chǔ)設(shè)備讀取所述數(shù)據(jù)的讀命令而根據(jù)所述第二命令從所述存儲(chǔ)設(shè)備向所述主機(jī)的所述存儲(chǔ)器傳輸所述數(shù)據(jù)。
8.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述橋接器模塊包括: 橋接器接口模塊,被配置為接收來(lái)自所述第二控制器的針對(duì)用于提供對(duì)所述主機(jī)的所述存儲(chǔ)器的訪(fǎng)問(wèn)的數(shù)據(jù)路徑的請(qǐng)求;以及 仲裁模塊,被配置為基于所述請(qǐng)求向所述第二控制器提供所述數(shù)據(jù)路徑提供以在所述存儲(chǔ)設(shè)備和所述主機(jī)的所述存儲(chǔ)器之間傳輸所述數(shù)據(jù), 其中所述數(shù)據(jù)路徑不包括用于存儲(chǔ)所述數(shù)據(jù)的緩沖器,并且 其中所述橋接器接口模塊允許所述第二控制器經(jīng)由所述數(shù)據(jù)路徑在所述存儲(chǔ)設(shè)備和所述主機(jī)的所述存儲(chǔ)器之間傳輸所述數(shù)據(jù)。
9.一種片上系統(tǒng)(SOC),包括: 通用串行總線(xiàn)(USB)控制器,被配置為經(jīng)由USB接口將存儲(chǔ)設(shè)備的存儲(chǔ)控制器連接至主機(jī); 串行高級(jí)技術(shù)附件(SATA)控制器,被配置為經(jīng)由SATA接口將所述存儲(chǔ)控制器連接至所述存儲(chǔ)設(shè)備; 命令處理模塊,被配置為: 將所述USB控制器從所述主機(jī)接收的USB命令轉(zhuǎn)換為SATA命令,以及 將所述SATA命令輸出至所述SATA控制器, 其中所述SATA控制器被配置為生成針對(duì)用于對(duì)所述主機(jī)的存儲(chǔ)器的訪(fǎng)問(wèn)的數(shù)據(jù)路徑的請(qǐng)求,以根據(jù)所述SATA命令在所述存儲(chǔ)設(shè)備和所述主機(jī)的所述存儲(chǔ)器之間傳輸數(shù)據(jù),并且 其中所述數(shù)據(jù)路徑是所述存儲(chǔ)器和所述存儲(chǔ)設(shè)備之間的路徑;以及 數(shù)據(jù)處理模塊,被配置為: 接收來(lái)自所述SATA控制器的所述請(qǐng)求,以及 向所述SATA控制器提供所述數(shù)據(jù)路徑以在所述存儲(chǔ)設(shè)備和所述主機(jī)的所述存儲(chǔ)器之間傳輸所述數(shù)據(jù), 其中所述SATA控制器被配置為根據(jù)所述SATA命令在所述存儲(chǔ)設(shè)備和所述主機(jī)的所述存儲(chǔ)器之間傳輸所述數(shù)據(jù)。
10.根據(jù)權(quán)利要求9所述的SOC,進(jìn)一步包括狀態(tài)處理模塊,所述狀態(tài)處理模塊被配置為: 接收并且解釋來(lái)自所述SATA控制器的命令完成信息;以及 通過(guò)確定所述傳輸是否無(wú)錯(cuò)誤地完成而基于所述命令完成生成所述傳輸?shù)臓顟B(tài);以及 經(jīng)由所述USB控制器將所述傳輸?shù)乃鰻顟B(tài)發(fā)送至所述主機(jī)。
11.一種方法,包括: 經(jīng)由第一控制器的第一接口與主機(jī)進(jìn)行通信; 經(jīng)由第二控制器的第二接口與存儲(chǔ)設(shè)備進(jìn)行通信,其中所述第二接口不同于所述第一接口 ; 允許所述第二控制器在所述存儲(chǔ)設(shè)備和所述主機(jī)之間傳輸數(shù)據(jù);以及 允許所述第二控制器在所述傳輸期間經(jīng)由所述第一接口訪(fǎng)問(wèn)所述主機(jī)的存儲(chǔ)器。
12.根據(jù)權(quán)利要求11所述的方法,進(jìn)一步包括提供用于在所述存儲(chǔ)設(shè)備和所述主機(jī)之間進(jìn)行所述傳輸?shù)穆窂?,其中所述路徑包括所述第一控制器和所述第二控制器,并且其中所述路徑不包括用于存?chǔ)所述數(shù)據(jù)的緩沖器。
13.根據(jù)權(quán)利要求11所述的方法,進(jìn)一步包括在所述傳輸進(jìn)行的同時(shí)對(duì)來(lái)自所述主機(jī)的傳入命令進(jìn)行轉(zhuǎn)換。
14.根據(jù)權(quán)利要求11所述的方法,進(jìn)一步包括通過(guò)解釋從所述第二控制器接收的關(guān)于所述傳輸?shù)男畔?lái)向所述主機(jī)返回所述傳輸?shù)臓顟B(tài)。
15.根據(jù)權(quán)利要求11所述的方法,其中: 所述第一接口是通用串行總線(xiàn)(USB)接口 ;并且 所述第二接口是串行高級(jí)技術(shù)附件(SATA)接口。
16.根據(jù)權(quán)利要求11的方法,進(jìn)一步包括: 將從所述主機(jī)接收的第一命令轉(zhuǎn)換為第二命令,其中所述第一命令與所述第一接口相兼容,并且其中所述第二命令與所述第二接口相兼容;以及將所述第二命令傳輸至所述第二接口。
17.根據(jù)權(quán)利要求16所述的方法,進(jìn)一步包括: 請(qǐng)求用于向所述第二控制器提供對(duì)所述主機(jī)的所述存儲(chǔ)器的訪(fǎng)問(wèn)的數(shù)據(jù)路徑,其中所述數(shù)據(jù)路徑不包括用于存儲(chǔ)所述數(shù)據(jù)的緩沖器; 響應(yīng)于所述第一命令是用于向所述存儲(chǔ)設(shè)備寫(xiě)入所述數(shù)據(jù)的寫(xiě)命令而根據(jù)所述第二命令經(jīng)由所述數(shù)據(jù)路徑從所述主機(jī)的所述存儲(chǔ)器向所述存儲(chǔ)設(shè)備傳輸所述數(shù)據(jù);以及 響應(yīng)于所述第一命令是用于從所述存儲(chǔ)設(shè)備讀取所述數(shù)據(jù)的讀命令而根據(jù)所述第二命令從所述存儲(chǔ)設(shè)備向所述主機(jī)的所述存儲(chǔ)器傳輸所述數(shù)據(jù)。
18.根據(jù)權(quán)利要求11所述的方法,進(jìn)一步包括: 接收來(lái)自所述第二控制器的針對(duì)用于提供對(duì)所述主機(jī)的所述存儲(chǔ)器的訪(fǎng)問(wèn)的數(shù)據(jù)路徑的請(qǐng)求; 基于所述請(qǐng)求,向所述第二控制器提供所述數(shù)據(jù)路徑以在所述存儲(chǔ)設(shè)備和所述主機(jī)的所述存儲(chǔ)器之間傳輸數(shù)據(jù),其中所述數(shù)據(jù)路徑不包括用于存儲(chǔ)所述數(shù)據(jù)的緩沖器;以及 允許所述第二控制器經(jīng)由所述數(shù)據(jù)路徑在所述存儲(chǔ)設(shè)備和所述主機(jī)的所述存儲(chǔ)器之間傳輸所述 數(shù)據(jù)。
全文摘要
一種系統(tǒng)包括被配置為經(jīng)由第一接口與主機(jī)進(jìn)行通信的第一控制器;被配置為經(jīng)由第二接口與存儲(chǔ)設(shè)備進(jìn)行通信的第二控制器,其中該第二接口不同于該第一接口;以及被配置為允許第二控制器在存儲(chǔ)設(shè)備和主機(jī)之間傳輸數(shù)據(jù)并且允許第二控制器在傳輸期間經(jīng)由第一接口訪(fǎng)問(wèn)主機(jī)的存儲(chǔ)器的橋接器模塊。
文檔編號(hào)G06F3/06GK103180816SQ201180050796
公開(kāi)日2013年6月26日 申請(qǐng)日期2011年10月19日 優(yōu)先權(quán)日2010年10月21日
發(fā)明者林群倫, 蔡侃廷, 賴(lài)的是, 朱希澄 申請(qǐng)人:馬維爾國(guó)際貿(mào)易有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
西宁市| 北安市| 宝清县| 鄂尔多斯市| 雅江县| 旬阳县| 乐昌市| 瑞安市| 曲沃县| 栾城县| 商都县| 靖西县| 红桥区| 云霄县| 扶余县| 满洲里市| 湟源县| 东港市| 康定县| 洪泽县| 镇雄县| 张家界市| 井冈山市| 西青区| 苗栗市| 长垣县| 清河县| 盐山县| 皮山县| 永靖县| 富民县| 灵宝市| 台南县| 西平县| 逊克县| 保康县| 寿阳县| 延边| 广东省| 齐齐哈尔市| 浦北县|