本申請涉及數(shù)據(jù)轉(zhuǎn)換技術(shù),尤其涉及數(shù)據(jù)轉(zhuǎn)換設(shè)備、芯片、及影像系統(tǒng)。
背景技術(shù):
目前有些相機廠商生產(chǎn)的相機可以支持RAW(原始)格式的影像數(shù)據(jù)。對影像數(shù)據(jù)而言,RAW就是CMOS(Complementary Metal Oxide Semiconductor,互補金屬氧化物半導(dǎo)體)或者CCD(Charge-coupled Device,電荷耦合元件)圖像傳感器將捕捉到的光源信號轉(zhuǎn)化為數(shù)字信號的原始數(shù)據(jù),包括相機拍攝時的參數(shù)數(shù)據(jù)(如ISO值、快門速度、光圈值、白平衡等)。
由于RAW文件是經(jīng)過無損壓縮后生成的文件,相較于JPEG(Joint Photographic Experts Group,聯(lián)合圖像專家小組)等格式的文件會大很多,存儲RAW文件需要更大容量的存儲設(shè)備,部分相機廠商采用SSD(Solid State Drives,固態(tài)硬盤)作為存儲載體,并采用目前通用的SATA(Serial Advanced Technology Attachment,串行ATA接口規(guī)范)接口實現(xiàn)RAW文件的讀寫。由于在拍攝高分辨率的影像數(shù)據(jù)時需要更快的數(shù)據(jù)寫入速度,因此有些相機廠商可能會采用NVME(Non-Volatile Memory Express,非易失性存儲器通道)SSD來作為存儲載體,但這會造成存儲在相機的NVME SSD上的RAW文件無法便捷的傳輸?shù)接嬎銠C等圖像處理設(shè)備上。
技術(shù)實現(xiàn)要素:
本申請?zhí)峁?shù)據(jù)轉(zhuǎn)換設(shè)備、芯片、及影像系統(tǒng)。
根據(jù)本申請實施例的第一方面,提供一種影像系統(tǒng),包括:影像拍攝設(shè)備和數(shù)據(jù)轉(zhuǎn)換設(shè)備;
所述影像拍攝設(shè)備包括一PCIE接口,用于可拆卸的連接NVME固態(tài)硬盤;
所述數(shù)據(jù)轉(zhuǎn)換設(shè)備包括:
一PCIE接口,能夠拆卸地連接所述NVME固態(tài)硬盤;
一USB接口,用于連接外部的圖像處理設(shè)備;
一協(xié)議轉(zhuǎn)換裝置,所述協(xié)議轉(zhuǎn)換裝置用于在接收到圖像處理設(shè)備的寫指令時,將寫指令攜帶的USB數(shù)據(jù)轉(zhuǎn)換為NVME協(xié)議格式數(shù)據(jù),并發(fā)給PCIE接口,以寫入所述NVME固態(tài)硬盤對應(yīng)的地址空間;在接收到圖像處理設(shè)備的讀指令時,通過PCIE接口從讀指令對應(yīng)的地址空間中讀取NVME協(xié)議格式的數(shù)據(jù),并轉(zhuǎn)換成USB數(shù)據(jù)后發(fā)給所述USB接口。
一個實施例中,所述影像拍攝設(shè)備包括一云臺,所述云臺能夠拆卸地安裝于無人機上,所述云臺用于承載一相機,并為所述相機增穩(wěn)。
根據(jù)本申請實施例的第二方面,提供一種數(shù)據(jù)轉(zhuǎn)換設(shè)備,包括數(shù)據(jù)處理裝置,所述數(shù)據(jù)處理裝置包括第一接口和第二接口;其中
所述第一接口用于物理連接外部主機;
所述第二接口用于物理連接NVME固態(tài)硬盤;
所述數(shù)據(jù)處理裝置用于將寫指令攜帶的寫入數(shù)據(jù)的格式轉(zhuǎn)換為NVME協(xié)議格式,然后寫入所述NVME固態(tài)硬盤對應(yīng)的地址空間;在接收到外部主機讀指令時,從讀指令對應(yīng)的地址空間中讀取NVME協(xié)議格式的數(shù)據(jù),并轉(zhuǎn)換成第一格式的數(shù)據(jù)后發(fā)給外部主機。
一個實施例中,所述數(shù)據(jù)處理裝置包括第一芯片以及與第一芯片通過片間接口相連的第二芯片,所述第一接口位于所述第一芯片上,所述第二接口位于所述第二芯片上;
所述第一芯片用于向所述第二芯片發(fā)送來自第一設(shè)備的讀指令或?qū)懼噶睿约霸谕獠恐鳈C與第二芯片之間進行數(shù)據(jù)格式轉(zhuǎn)換及數(shù)據(jù)傳輸;
第二芯片用于基于所述讀指令或?qū)懼噶睿诘谝恍酒cNVME固態(tài)硬盤之間進行數(shù)據(jù)格式轉(zhuǎn)換及數(shù)據(jù)傳輸。
一個實施例中,所述數(shù)據(jù)處理裝置還包括與所述第二芯片連接的緩存芯片,其中第二芯片在執(zhí)行數(shù)據(jù)格式轉(zhuǎn)換前,先將來自外部主機的數(shù)據(jù)或來自NVME固態(tài)硬盤的數(shù)據(jù)緩存到所述緩存芯片。
一個實施例中,所述第二芯片還包括內(nèi)部緩存,其中第二芯片在執(zhí)行數(shù)據(jù)格式轉(zhuǎn)換前,先將所述來自外部主機的數(shù)據(jù)或來自所述NVME固態(tài)硬盤的數(shù)據(jù)緩存到內(nèi)部緩存。
一個實施例中,所述第一芯片為USB PHY芯片,所述第一接口為USB接口;所述第二芯片為可編程邏輯器件,所述片間接口為并行接口。
一個實施例中,所述第二接口為PCIE接口或U.2接口。
一個實施例中,所述數(shù)據(jù)處理裝置還包括用于連接外部電源的電源接口。
根據(jù)本申請實施例的第三方面,提供一種芯片,包括:第二接口、并行接口以及協(xié)議轉(zhuǎn)換裝置;
所述第二接口用于物理連接NVME固態(tài)硬盤;
所述并行接口用于與外部裝置物理連接;
所述協(xié)議轉(zhuǎn)換裝置用于在接收到來自所述外部裝置的寫指令時,將寫指令攜帶的寫入數(shù)據(jù)的格式轉(zhuǎn)換為NVME協(xié)議格式,然后發(fā)給第二接口,以寫入所述NVME固態(tài)硬盤對應(yīng)的地址空間;在接收到來自所述外部裝置的讀指令時,從讀指令對應(yīng)的地址空間中讀取NVME協(xié)議格式的數(shù)據(jù),并轉(zhuǎn)換成并行接口數(shù)據(jù),發(fā)給所述并行接口。
一個實施例中,所述第二接口為PCIE接口或U.2接口。
根據(jù)本申請實施例的第四方面,提供一種芯片,包括:第二接口、USB接口以及協(xié)議轉(zhuǎn)換裝置;
所述USB接口用于與外部主機物理連接;
所述第二接口用于與NVME固態(tài)硬盤物理連接;
所述協(xié)議轉(zhuǎn)換裝置用于在接收到所述外部主機的寫指令時,將寫指令攜帶的寫入數(shù)據(jù)的格式轉(zhuǎn)換為NVME協(xié)議格式,以通過第二接口寫入所述NVME固態(tài)硬盤對應(yīng)的地址空間;在接收到外部主機的讀指令時,從讀指令對應(yīng)的地址空間中讀取NVME協(xié)議格式的數(shù)據(jù),并轉(zhuǎn)換成USB數(shù)據(jù)后發(fā)給所述USB接口。
本申請的實施例的數(shù)據(jù)轉(zhuǎn)換設(shè)備、芯片及影像系統(tǒng),提供了可以將NVME固態(tài)硬盤中數(shù)據(jù)和外部主機的數(shù)據(jù)進行格式轉(zhuǎn)換及雙向傳輸?shù)慕鉀Q方案,因此可以利用外部主機現(xiàn)有的外置接口實現(xiàn)與NVME固態(tài)硬盤的數(shù)據(jù)傳輸,使得無論是NVME固態(tài)硬盤還是外部主機均無需增加復(fù)雜的數(shù)據(jù)轉(zhuǎn)換功能,從而增加了NVME固態(tài)硬盤數(shù)據(jù)傳輸?shù)谋憷浴?/p>
應(yīng)當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性和解釋性的,并不能限制本申請。
附圖說明
圖1為本申請實施例中一系統(tǒng)架構(gòu)示意圖;
圖2為本申請一實施例中數(shù)據(jù)處理裝置的部分結(jié)構(gòu)示意圖;
圖3為本申請另一實施例中數(shù)據(jù)處理裝置的部分結(jié)構(gòu)示意圖;
圖4為本申請實施例中第二芯片的部分結(jié)構(gòu)示意圖;
圖5為本申請實施例中一應(yīng)用場景示意圖;
圖6為本申請實施例中數(shù)據(jù)處理裝置的部分結(jié)構(gòu)示意圖;
圖7為本申請實施例中一芯片的部分結(jié)構(gòu)示意圖;
圖8為圖7所示芯片內(nèi)的協(xié)議轉(zhuǎn)換裝置的部分結(jié)構(gòu)示意圖;
圖9為本申請實施例中協(xié)議轉(zhuǎn)換裝置的另一示意圖;
圖10為本申請實施例中另一芯片的部分結(jié)構(gòu)示意圖;
圖11為本申請實施例中數(shù)據(jù)轉(zhuǎn)換方法的部分流程圖。
具體實施方式
這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本申請相一致的所有實施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本申請的一些方面相一致裝置、系統(tǒng)、設(shè)備和方法的例子。
在本申請使用的術(shù)語是僅僅出于描述特定實施例的目的,而非旨在限制本申請。在本申請和所附權(quán)利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應(yīng)當理解,本文中使用的術(shù)語“和/或”是指并包含一個或多個相關(guān)聯(lián)的列出項目的任何或所有可能組合。
應(yīng)當理解,盡管在本申請可能采用術(shù)語第一、第二、第三等來描述各種信息,但這些信息不應(yīng)限于這些術(shù)語。這些術(shù)語僅用來將同一類型的信息彼此區(qū)分開。例如,在不脫離本申請范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第一信息。
隨著存儲帶寬需求的增加,NVME固態(tài)硬盤已經(jīng)開始慢慢普及。有些廠商根據(jù)需要,將NVME固態(tài)硬盤安裝于一些電子設(shè)備上,作為存儲設(shè)備存儲數(shù)據(jù)。例如,有些影像設(shè)備(例如相機、錄像機等)上已經(jīng)具備了與NVME固態(tài)硬盤適配的接口,利用NVME固態(tài)硬盤來存儲視頻或圖片等影像數(shù)據(jù)。
NVME固態(tài)硬盤所存儲的數(shù)據(jù)有時會需要導(dǎo)出到外部主機上,例如,影像設(shè)備中的影像數(shù)據(jù)可能導(dǎo)出到個人電腦等設(shè)備上;有些情況下,可能需要通過外部主機對NVME固態(tài)硬盤中的數(shù)據(jù)進行寫入操作,例如,通過個人電腦對NVME固態(tài)硬盤中的數(shù)據(jù)進行增刪改的操作。由于目前外部主機上具有的外置接口不是與NVME固態(tài)硬盤適配的接口,因此不便于對NVME固態(tài)硬盤中的數(shù)據(jù)進行讀寫操作。
本申請實施例提供了將NVME固態(tài)硬盤中的數(shù)據(jù)與外部主機進行雙向傳輸?shù)慕鉀Q方案。外部主機的類型本申請實施例不做限定,可以是各種具備計算能力的終端,例如可以是手機、平板電腦、筆記本電腦、臺式電腦等。
圖1是一個實施例中一系統(tǒng)架構(gòu)下各設(shè)備的部分結(jié)構(gòu)圖。
圖1所示的實施例中,提供一數(shù)據(jù)轉(zhuǎn)換設(shè)備10,該數(shù)據(jù)轉(zhuǎn)換設(shè)備10可以獨立于NVME固態(tài)硬盤11和外部主機12,以達到方便攜帶、便于在不同的設(shè)備上使用、且不增加NVME固態(tài)硬盤11的體積及功耗等目的。在外部形態(tài)上,數(shù)據(jù)轉(zhuǎn)換設(shè)備10可以體現(xiàn)為一讀卡器。當然,在某些場合,也可能將數(shù)據(jù)轉(zhuǎn)換設(shè)備10與NVME固態(tài)硬盤11或外部主機12設(shè)計成一體化。
如圖1,數(shù)據(jù)轉(zhuǎn)換設(shè)備10包括一數(shù)據(jù)處理裝置110。數(shù)據(jù)處理裝置110帶有第一接口1101和第二接口1102;可以通過第一接口1101連接外部主機12,通過第二接口1102連接NVME固態(tài)硬盤11。在一例子中,第一接口1101和第二接口1102可以是硬件接口,可以分別通過物理連接的方式與外部主機12或NVME固態(tài)硬盤11連接。
第一接口1101與外部主機12的一個外置接口120的接口類型可以相匹配,可以將第一接口1101與外部主機12之間雙向傳輸?shù)臄?shù)據(jù)的格式稱為第一格式,例如,當外部主機12的接口是USB1.0、USB2.0、或USB3.0接口時,第一接口1101為相匹配的USB接口,第一格式的數(shù)據(jù)是USB數(shù)據(jù)。對于第一接口1101的接口類型在此不作枚舉,第一格式的數(shù)據(jù)并不局限于USB數(shù)據(jù)。
第二接口1102可以是支持NVME協(xié)議的硬件接口,例如PCIE接口、U.2接口等。
數(shù)據(jù)處理裝置110通過其中一個接口接收到數(shù)據(jù)時,轉(zhuǎn)換成另一個接口所對應(yīng)的數(shù)據(jù)格式,并通過另一個接口傳輸出去??梢酝ㄟ^外部主機12觸發(fā)該數(shù)據(jù)格式轉(zhuǎn)換的流程,例如,外部主機12通過寫指令來觸發(fā)將第一接口1101接收的數(shù)據(jù)轉(zhuǎn)換成NVME協(xié)議格式的數(shù)據(jù)的過程、通過讀指令觸發(fā)將NVME固態(tài)硬盤中的NVME協(xié)議格式的數(shù)據(jù)轉(zhuǎn)換成第一格式的數(shù)據(jù)的處理過程。寫指令可以是指外部主機12對NVME固態(tài)硬盤11進行寫入操作的指令,讀指令可以是指外部主機12對NVME固態(tài)硬盤11中的數(shù)據(jù)的讀取操作的指令。寫指令或讀指令所攜帶的信息可以根據(jù)不同設(shè)計需求確定,例如某些場合,寫指令或讀指令可以攜帶數(shù)據(jù)存放地址、讀/寫數(shù)據(jù)的長度等信息。
上述數(shù)據(jù)格式轉(zhuǎn)換的流程可以被描述為以下過程:
數(shù)據(jù)處理裝置110在接收到外部主機12的寫指令時,將寫指令攜帶的寫入數(shù)據(jù)的格式轉(zhuǎn)換為NVME協(xié)議格式,然后寫入NVME固態(tài)硬盤11對應(yīng)的地址空間;在接收到外部主機12的讀指令時,從NVME固態(tài)硬盤11中與讀指令對應(yīng)的地址空間中讀取NVME協(xié)議格式的數(shù)據(jù),并轉(zhuǎn)換成第一格式的數(shù)據(jù)后發(fā)給外部主機12。
在一些其他例子中,本領(lǐng)域技術(shù)人員可以采用專用芯片的方式來實現(xiàn)數(shù)據(jù)處理裝置110的數(shù)據(jù)轉(zhuǎn)換功能。這種專用芯片可以是ASIC(Application Specific Integrated Circuit,專用集成電路)芯片,也可以是FPGA(Field-Programmable Gate Array,現(xiàn)場可編程門陣列)等可編程器件。數(shù)據(jù)處理裝置110所具有的功能可以通過一個芯片實現(xiàn),也可以通過不同的芯片分別完成其中一部分功能。芯片可以通過軟件程序?qū)崿F(xiàn)相應(yīng)功能,也可以通過電路等硬件形式實現(xiàn)相應(yīng)功能。
以下列舉幾個不同實施例中通過芯片實現(xiàn)數(shù)據(jù)處理裝置110的例子。請參見圖2-圖4以及圖10。
圖2中數(shù)據(jù)處理裝置110包括第一芯片1103以及第二芯片1104。兩個芯片通過片間接口1105相連。片間接口1105的類型可以由兩個芯片的類型確定。舉例來說,第一芯片1103可以是USB PHY芯片,第二芯片1104可以是FPGA芯片,此時可以采用并行接口作為兩個芯片之間的片間接口,例如該并行接口可以是GPIF(general programmable interface)通用可編程接口等。
如圖2,本例中第一接口1101位于第一芯片1103上,第二接口1102位于第二芯片1104上。
數(shù)據(jù)在第一格式和NVME格式之間的轉(zhuǎn)換過程又可以細化為多次轉(zhuǎn)換。結(jié)合圖1和圖2,第一芯片1103具有向所述第二芯片1104發(fā)送來自第一設(shè)備的讀指令或?qū)懼噶?,以及在外部主機12與第二芯片1104之間進行數(shù)據(jù)格式轉(zhuǎn)換及數(shù)據(jù)傳輸?shù)墓δ?;第二芯?104具有基于讀指令或?qū)懼噶睿诘谝恍酒?103與NVME固態(tài)硬盤11之間進行數(shù)據(jù)格式轉(zhuǎn)換及數(shù)據(jù)傳輸?shù)墓δ?。因此在這個例子中,數(shù)據(jù)轉(zhuǎn)換過程可以包括以下過程:
當?shù)谝恍酒?103通過第一接口1101收到來自外部主機12的寫指令后,將寫指令以及寫指令所攜帶的第一格式的寫入數(shù)據(jù)轉(zhuǎn)換為片間接口1105所對應(yīng)的數(shù)據(jù)格式(例如并行接口數(shù)據(jù)),并通過片間接口1105將轉(zhuǎn)換后的數(shù)據(jù)發(fā)給第二芯片1104;第二芯片1104分析所收到的寫指令,將收到的寫入數(shù)據(jù)轉(zhuǎn)換成NVME協(xié)議格式的數(shù)據(jù),然后通過第二接口1102寫入NVME固態(tài)硬盤11的相應(yīng)地址空間。
當?shù)谝恍酒?103通過第一接口1101收到來自外部主機12的讀指令后,將讀指令轉(zhuǎn)換為片間接口1105所對應(yīng)的數(shù)據(jù)格式(例如并行接口數(shù)據(jù)),并通過片間接口1105將轉(zhuǎn)換后的讀指令發(fā)給第二芯片1104;第二芯片1104分析所收到的讀指令,通過第二接口1102從NVME固態(tài)硬盤11的相應(yīng)地址空間讀取NVME協(xié)議格式的數(shù)據(jù),然后將所讀取的數(shù)據(jù)轉(zhuǎn)換成片間接口1105所對應(yīng)的數(shù)據(jù)格式,通過片間接口1105發(fā)給第一芯片1103;第一芯片1103在收到片間接口1105所傳輸?shù)臄?shù)據(jù)后,轉(zhuǎn)換為第一格式的數(shù)據(jù),通過第一接口1101傳輸給外部主機12。
某些例子中,對于第二芯片1104,在執(zhí)行數(shù)據(jù)格式轉(zhuǎn)換前,可以先將來自外部主機12的數(shù)據(jù)或來自NVME固態(tài)硬盤11的數(shù)據(jù)進行緩存,然后再執(zhí)行轉(zhuǎn)換操作。在此結(jié)合圖3加以說明。
某些例子中,第二芯片1104內(nèi)部可以具有內(nèi)部緩存(圖中未示出),可以通過內(nèi)部緩存對來自第二芯片1104的片間接口1105和NVME固態(tài)硬盤11的數(shù)據(jù)進行緩存。
另一些例子中,如圖3所示,數(shù)據(jù)處理裝置110還可以包括緩存芯片1106,位于第二芯片1104之外,并且與第二芯片1104連接,可以利用緩存芯片1106對來自第二芯片1104的片間接口1105和NVME固態(tài)硬盤11的數(shù)據(jù)進行緩存。第二芯片1104可以通過一緩存芯片控制模塊(本圖未示出)來實現(xiàn)與緩存芯片1106的數(shù)據(jù)交換。
作為例子,如果第一芯片1103或第二芯片1104耗電較多,則數(shù)據(jù)處理裝置110還可以包含獨立于第一接口1101供電的獨立供電模塊,另外,獨立供電模塊的最大供電輸入能力可以大于第一接口1101的最大供電輸入能力,數(shù)據(jù)處理裝置110還可以包括電源接口,通過連接外部電源為第一芯片1103或第二芯片1104供電。
第二芯片1104中可以具有多個軟件或硬件模塊分別實現(xiàn)第二芯片1104所具有的部分功能。圖4是一個第二芯片1104內(nèi)部部分結(jié)構(gòu)的示意。作為例子,本例中采用DDR(Double Data Rate,雙倍數(shù)據(jù)速率)芯片1106a作為緩存芯片1106進行描述。
如圖4,第二芯片1104中包括DMA(Direct Memory Access,直接內(nèi)存存取)模塊1104a、處理模塊1104b、與第二接口1102連接的第二接口驅(qū)動模塊1104c。各個模塊可以具有以下功能:
DMA模塊1104a可以將外部主機12的讀/寫指令存入DDR芯片1106a中,并將緩存地址通知處理模塊1104b,以及根據(jù)處理模塊1104b通知的緩存地址從DDR芯片1106a中讀出數(shù)據(jù),并通過片間接口1105傳輸給第一芯片1103;作為例子,DMA模塊可以支持DMA數(shù)據(jù)傳輸模式。
處理模塊1104b可以根據(jù)DMA模塊1104a通知的緩存地址獲取讀指令,分析讀指令以確定包括對應(yīng)的地址空間在內(nèi)的訪問參數(shù)(例如源地址、目的地址、讀/寫數(shù)據(jù)的地址長度),根據(jù)訪問參數(shù)利用第二接口驅(qū)動模塊1104c訪問NVME固態(tài)硬盤,將NVME固態(tài)硬盤返回的數(shù)據(jù)緩存在DDR芯片1106a中,并將數(shù)據(jù)的緩存地址通知DMA模塊1104a;或者
根據(jù)DMA模塊1104a通知的緩存地址獲取寫指令,分析寫指令以確定包括對應(yīng)的地址空間在內(nèi)的訪問參數(shù),將寫指令攜帶的寫入數(shù)據(jù)通過第二接口驅(qū)動模塊1104c寫入到NVME固態(tài)硬盤11中。
如圖4所示,DDR控制模塊1104d連接DDR芯片1106a與處理模塊1104b,DDR芯片1106a內(nèi)部數(shù)據(jù)的讀寫操作可以通過處理模塊1104b控制DDR控制模塊1104d完成。
以下結(jié)合一具體應(yīng)用場景來描述圖4中各模塊協(xié)同工作時的流程。圖5是該應(yīng)用場景下的一個示意圖。圖5的應(yīng)用場景包括一影像拍攝系統(tǒng)50和一圖像處理設(shè)備515。影像拍攝系統(tǒng)50主要包括一影像拍攝設(shè)備510和數(shù)據(jù)轉(zhuǎn)換設(shè)備10,數(shù)據(jù)轉(zhuǎn)換設(shè)備10可以被稱為讀卡器。其中影像拍攝設(shè)備510以安裝于無人機的云臺相機為例進行示意,例如,影像拍攝設(shè)備510可以包括一云臺,云臺能夠拆卸地安裝于無人機上,云臺可以承載一相機,并為相機增穩(wěn)。
本例中,NVME固態(tài)硬盤11作為影像拍攝設(shè)備510的數(shù)據(jù)存儲裝置,影像拍攝設(shè)備510上包括一PCIE接口511,具體可以體現(xiàn)為一PCIE接口插槽,可以可拆卸的連接NVME固態(tài)硬盤11。影像拍攝設(shè)備510在工作時,通過PCIE接口511將影像數(shù)據(jù)寫入NVME固態(tài)硬盤11,并且在用戶需要時,可以將NVME固態(tài)硬盤11從PCIE接口511插槽中取出,并插入數(shù)據(jù)轉(zhuǎn)換設(shè)備10中,與圖像處理設(shè)備515交換數(shù)據(jù),數(shù)據(jù)轉(zhuǎn)換設(shè)備10可以通過USB連接線514與圖像處理設(shè)備515連接。
數(shù)據(jù)轉(zhuǎn)換設(shè)備10具有硬件接口以及數(shù)據(jù)轉(zhuǎn)換功能。例如,數(shù)據(jù)轉(zhuǎn)換設(shè)備10提供一PCIE接口513,可拆卸的連接NVME固態(tài)硬盤11,該PCIE接口513可以是插槽,可供NVME固態(tài)硬盤11插入;數(shù)據(jù)轉(zhuǎn)換設(shè)備10還提供一USB接口512,連接外部的圖像處理設(shè)備515;另外,數(shù)據(jù)轉(zhuǎn)換設(shè)備10還可以通過提供電源狀態(tài)指示、讀/寫狀態(tài)指示等功能,相應(yīng)的,數(shù)據(jù)轉(zhuǎn)換設(shè)備10還可以有電源指示燈、讀/寫指示燈等輸出接口。
數(shù)據(jù)轉(zhuǎn)換設(shè)備10還可以包括一協(xié)議轉(zhuǎn)換裝置(圖5中未顯示),在接收到圖像處理設(shè)備515的寫指令時,此時寫指令數(shù)據(jù)格式是USB數(shù)據(jù),協(xié)議轉(zhuǎn)換裝置可以將USB數(shù)據(jù)轉(zhuǎn)換為NVME協(xié)議格式的數(shù)據(jù),并發(fā)給PCIE接口513,以寫入NVME固態(tài)硬盤11對應(yīng)的地址空間;在接收到所述圖像處理設(shè)備的讀指令時,通過PCIE接口513從讀指令對應(yīng)的地址空間中讀取NVME協(xié)議格式的數(shù)據(jù),并轉(zhuǎn)換成USB數(shù)據(jù)后通過所述USB接口發(fā)給圖像處理設(shè)備515。
數(shù)據(jù)轉(zhuǎn)換設(shè)備10可參考圖6,結(jié)合圖2-圖5,仍以不同芯片組合實現(xiàn)數(shù)據(jù)轉(zhuǎn)換設(shè)備10功能為例,數(shù)據(jù)轉(zhuǎn)換設(shè)備10中協(xié)議轉(zhuǎn)轉(zhuǎn)裝置的功能可以借助一個或多個芯片實現(xiàn),例如圖6中,數(shù)據(jù)轉(zhuǎn)換設(shè)備10可以包括USB PHY芯片601(相當于第一芯片1103)以及FPGA芯片(相當于第二芯片1104)。其中USB PHY芯片的USB接口為USB3.0接口,USB PHY芯片的型號可選用CY3014。所述FPGA芯片602帶有PCIE接口。USB PHY芯片601與FPGA芯片602之間為并行接口,可采用GPIF接口。
在本實施例中,USB PHY芯片601實現(xiàn)USB協(xié)議到并行接口的相互轉(zhuǎn)換,由于USB協(xié)議相關(guān)的功能由USB PHY芯片601完成,F(xiàn)PGA芯片602可以不用考慮復(fù)雜的USB協(xié)議,因此可以簡化FPGA芯片602的內(nèi)部功能的實現(xiàn)難度,也就是說,雖然引入USB PHY芯片會增加硬件成本,但FPGA開發(fā)成本可以大幅下降,總體上成本依然具有相當?shù)膬?yōu)勢。
FPGA芯片602包括USB_DMA模塊6022、CPU 6021、PCIE驅(qū)動模塊6024、DDR控制模塊6023。這些功能模塊可以通過編程實現(xiàn)。其中USB_DMA模塊6022通過并行接口及其他控制信號接口與USB PHY芯片601交互,可以實現(xiàn)FPGA芯片602與USB PHY芯片601的數(shù)據(jù)收發(fā)。從數(shù)據(jù)寫入方向來看,USB_DMA模塊6022在收到來自USB PHY芯片的數(shù)據(jù)后先緩存到DDR芯片1106a中;從數(shù)據(jù)讀取方向來看,USB_DMA模塊6022可以從DDR芯片1106a中讀取數(shù)據(jù)發(fā)送給USB PHY芯片601,通過USB_DMA模塊6022可以提高數(shù)據(jù)傳輸效率,降低FPGA內(nèi)部的CPU的負荷,避免CPU瓶頸引發(fā)的讀寫速度下降,盡可能地提高讀寫數(shù)據(jù)帶寬。
FPGA芯片602通過PCIE接口與NVME固態(tài)硬盤11相連,實現(xiàn)FPGA芯片602和NVME固態(tài)硬盤11的數(shù)據(jù)收發(fā)。
FPGA芯片602上的處理器CPU 6021(相當于處理模塊1104b)對來自FPGA芯片602兩個接口的數(shù)據(jù)的中轉(zhuǎn)進行管控,使得外部主機12需要通過FPGA芯片602訪問NVME固態(tài)硬盤11。CPU 6021與USB_DMA模塊6022、PCIE驅(qū)動模塊6024、DDR控制模塊6023通過AXI總線進行交互。
當外部主機12需要向NVME固態(tài)硬盤11寫數(shù)據(jù)時,外部主機12通過USB接口按照自定義的命令格式發(fā)送USB數(shù)據(jù)給USB PHY芯片601,USB PHY芯片601收到外部主機12的數(shù)據(jù)后,將USB數(shù)據(jù)轉(zhuǎn)成并行接口數(shù)據(jù),發(fā)送給FPGA芯片602內(nèi)部的USB_DMA模塊6022,USB_DMA模塊6022收到數(shù)據(jù)后,寫入預(yù)先設(shè)定的DDR芯片1106a的地址,然后產(chǎn)生中斷,通知FPGA芯片602內(nèi)部的CPU 6021,CPU 6021對通知消息進行分析,獲取要寫入NVME固態(tài)硬盤11的目的地址,然后CPU 6021將從DDR芯片1106a中獲取的數(shù)據(jù)轉(zhuǎn)換成NVME協(xié)議格式的數(shù)據(jù),向NVME固態(tài)硬盤11發(fā)送NVME IO WRITE命令,將需要寫入的數(shù)據(jù)攜帶在NVME IO WRITE命令中,寫入NVNE固態(tài)硬盤11。
當外部主機12需要從NVME固態(tài)硬盤11讀取數(shù)據(jù)時,首先外部主機12通過USB接口按照預(yù)定義的格式發(fā)送讀指令到USB PHY芯片601,USB PHY芯片601收到讀指令后轉(zhuǎn)換成并行接口數(shù)據(jù)轉(zhuǎn)發(fā)給FPGA芯片602內(nèi)部的USB_DMA模塊6022,USB_DMA模塊6022收到讀命令后寫入預(yù)定義的DDR地址,然后產(chǎn)生中斷,告知FPGA芯片602上的CPU 6021,CPU 6021對讀指令進行分析,獲取讀地址,讀數(shù)據(jù)量等訪問參數(shù),然后CPU 6021根據(jù)這些訪問參數(shù)控制PCIE驅(qū)動模塊6024向NVME固態(tài)硬盤11發(fā)送NVME IO READ命令,NVME固態(tài)硬盤11依據(jù)訪問參數(shù),通過PCIE接口發(fā)送NVME協(xié)議格式的數(shù)據(jù)到DDR芯片1106a中,然后CPU 6021從DDR芯片1106a中讀取NVME協(xié)議格式的數(shù)據(jù)并轉(zhuǎn)換成并行接口數(shù)據(jù),控制DMA模塊6023把轉(zhuǎn)換后的并行接口數(shù)據(jù)發(fā)送給外部主機12。
FPGA外圍連接一個DDR芯片1106a,用于數(shù)據(jù)的緩存,無論是來自外部主機12的數(shù)據(jù)還是NVME固態(tài)硬盤11的數(shù)據(jù)均可以緩存在DDR芯片1106a中,由FPGA芯片602上的CPU 6021對數(shù)據(jù)進行管理。
由于FPGA芯片功耗較高,USB PHY的USB接口難以驅(qū)動整個讀卡器,因此數(shù)據(jù)轉(zhuǎn)換設(shè)備10可以通過一直流供電接口外接直流電源,給FPGA芯片602、USB PHY芯片601及NVME固態(tài)硬盤11提供電源。
可以看出,圖像處理設(shè)備515不用實現(xiàn)NVME協(xié)議,NVME協(xié)議由FPGA芯片602實現(xiàn),圖像處理設(shè)備515只需要把NVME固態(tài)硬盤11當成普通的大容量存儲設(shè)備,因此無需改動現(xiàn)有設(shè)備,使本申請?zhí)峁┑膶嵤├咄ㄓ眯浴?/p>
圖7是另一個實施例中一芯片70的部分結(jié)構(gòu)示意圖。該芯片70可以作為上述數(shù)據(jù)轉(zhuǎn)換設(shè)備10的結(jié)構(gòu)的一組件,也可以為其他產(chǎn)品的一部分提供相應(yīng)的功能。
如圖7,該芯片70包括第二接口1102、并行接口702以及協(xié)議轉(zhuǎn)換裝置701;
第二接口1102可以連接NVME固態(tài)硬盤11,例如可以是PCIE接口、U.2接口等。并行接口702與外部裝置(例如圖2中的第一芯片1103,但并不排除可連接其他外部裝置)連接。
協(xié)議轉(zhuǎn)換裝置701的功能可類似于圖2、圖3中第二芯片1104的功能。例如,可在接收到來自所述外部裝置的寫指令時,將寫指令攜帶的寫入數(shù)據(jù)的格式轉(zhuǎn)換為NVME協(xié)議格式,然后發(fā)給第二接口1102,以寫入NVME固態(tài)硬盤11對應(yīng)的地址空間;在接收到來自所述外部裝置的讀指令時,從讀指令對應(yīng)的地址空間中讀取NVME協(xié)議格式的數(shù)據(jù),并轉(zhuǎn)換成并行接口數(shù)據(jù),發(fā)給并行接口702。
芯片70的類型可以是具有編程功能的芯片,例如FPGA芯片等。協(xié)議轉(zhuǎn)換裝置701的功能既可以通過軟件實現(xiàn),也可以通過硬件或軟硬結(jié)合的方式實現(xiàn)。以軟件實現(xiàn)其功能為例,該協(xié)議轉(zhuǎn)換裝置701可以包括多個功能模塊,以協(xié)同完成協(xié)議轉(zhuǎn)換裝置701的功能,其中一個例子,可以參考圖4中第二芯片1104內(nèi)部的部分組成模塊的功能。參見圖8,功能模塊可以有DMA模塊1104a、與第二接口1102連接的第二接口驅(qū)動模塊1104c,以及處理模塊1104b,該些模塊的功能及協(xié)同工作的原理可參考圖4中對應(yīng)模塊的描述,在此不在贅述。
另外,參考圖9,該芯片70還可以連接有一緩存芯片,該緩存芯片以DDR芯片1106a為例,芯片內(nèi)還可以包括一DDR控制模塊1104d,芯片在執(zhí)行數(shù)據(jù)格式轉(zhuǎn)換前,可以通過DDR控制模塊1104d將來自外部裝置的數(shù)據(jù)或來自NVME固態(tài)硬盤的數(shù)據(jù)緩存到DDR芯片1106a中。
圖10為另一芯片的實施例的部分結(jié)構(gòu)示意圖。該芯片90相對于圖7的芯片,具有更多的數(shù)據(jù)轉(zhuǎn)換功能,該芯片90可以用以實現(xiàn)數(shù)據(jù)轉(zhuǎn)換設(shè)備10的部分功能,也可以在其他需要數(shù)據(jù)轉(zhuǎn)換的產(chǎn)品上實現(xiàn)其功效。
該芯片90包括第二接口1102、USB接口901以及協(xié)議轉(zhuǎn)換裝置902;
通過USB接口901與外部主機12連接;第二接口1102與NVME固態(tài)硬盤11連接,同樣,第二接口1102可能是PCIE接口等支持NVME協(xié)議的接口。
芯片90中的協(xié)議轉(zhuǎn)換裝置902可以具有將USB數(shù)據(jù)和NVME協(xié)議格式的數(shù)據(jù)直接相互轉(zhuǎn)換的功能。過程可以體現(xiàn)為:在接收到所述外部主機的寫指令時,將寫指令攜帶的寫入數(shù)據(jù)的格式轉(zhuǎn)換為NVME協(xié)議格式,以通過第二接口1102寫入NVME固態(tài)硬盤對應(yīng)的地址空間;在接收到外部主機的讀指令時,從讀指令對應(yīng)的地址空間中讀取NVME協(xié)議格式的數(shù)據(jù),并轉(zhuǎn)換成USB數(shù)據(jù)后發(fā)給USB接口901。
圖11提供了數(shù)據(jù)轉(zhuǎn)換方法的實施例的部分流程。該流程的各個步驟可以通過數(shù)據(jù)轉(zhuǎn)換設(shè)備10來執(zhí)行,但本方法并不局限于僅可以通過此設(shè)備執(zhí)行。
在S110步驟,接收外部主機的寫指令或讀指令;
S111,在接收到外部主機12的寫指令時,將寫指令攜帶的寫入數(shù)據(jù)的格式轉(zhuǎn)換為NVME協(xié)議格式,然后寫入所述NVME固態(tài)硬盤11對應(yīng)的地址空間(S112);
S113,在接收到外部主機12讀指令時,從讀指令對應(yīng)的地址空間中讀取NVME協(xié)議格式的數(shù)據(jù),并轉(zhuǎn)換成第一格式的數(shù)據(jù)后發(fā)給外部主機12(S114),第一格式與外部主機12的接口類型相對應(yīng)。
作為例子,第一格式的數(shù)據(jù)和NVME協(xié)議格式的數(shù)據(jù)之間的數(shù)據(jù)轉(zhuǎn)換可以分階段進行,例如,在第一格式的數(shù)據(jù)轉(zhuǎn)換為NVME協(xié)議格式的數(shù)據(jù)時,可以先將寫指令攜帶的寫入數(shù)據(jù)轉(zhuǎn)換為并行接口數(shù)據(jù),再將所述并行接口數(shù)據(jù)轉(zhuǎn)換成NVME協(xié)議格式的數(shù)據(jù);當需要將NVME協(xié)議格式的數(shù)據(jù)轉(zhuǎn)換成第一格式的數(shù)據(jù)時,可以將NVME協(xié)議格式數(shù)據(jù)先轉(zhuǎn)換成并行接口數(shù)據(jù),再將所述并行接口數(shù)據(jù)轉(zhuǎn)換為第一格式的數(shù)據(jù)。
可以理解的是,第一格式的數(shù)據(jù)和NVME協(xié)議格式的數(shù)據(jù)之間的數(shù)據(jù)轉(zhuǎn)換是否分階段進行,以及分幾個階段進行可以根據(jù)設(shè)計者的需求確定,例如,參考圖10所示的芯片結(jié)構(gòu),在該設(shè)計方案中,可以直接將第一格式的數(shù)據(jù)(例如USB數(shù)據(jù))轉(zhuǎn)換為NVME協(xié)議格式的數(shù)據(jù),或?qū)VME協(xié)議格式的數(shù)據(jù)轉(zhuǎn)換為第一格式的數(shù)據(jù)(例如USB數(shù)據(jù))。
以上所描述的各實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本申請方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。
以上所述僅為本申請的較佳實施例而已,并不用以限制本申請,凡在本申請的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本申請保護的范圍之內(nèi)。