專利名稱:用于因特網(wǎng)小型計算機系統(tǒng)接口的直接內(nèi)存訪問系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種直接內(nèi)存訪問系統(tǒng),具體而言,涉及一種用于因特網(wǎng)小型計算機系統(tǒng)接口(iSCSI)的直接內(nèi)存訪問系統(tǒng)。
背景技術(shù):
因特網(wǎng)小型計算機系統(tǒng)接口(iSCSI)是一種新興起的存儲網(wǎng)絡(luò)技術(shù)和傳輸協(xié)議。此傳輸協(xié)議主要功能是將SCSI的命令和數(shù)據(jù),通過iSCSI協(xié)議數(shù)據(jù)單元(PDU)在目前發(fā)展已非常成熟的IP網(wǎng)絡(luò)上傳送。因此,通過iSCSI協(xié)議,將也可使IP網(wǎng)絡(luò)成為存儲網(wǎng)絡(luò)。
以IP網(wǎng)絡(luò)作為存儲網(wǎng)絡(luò)時的最大優(yōu)點為,對使用者而言,只需將其服務(wù)器和存儲設(shè)備換成iSCSI接口,并使用原有的IP網(wǎng)絡(luò)的交換設(shè)備,就可建置出價廉物美的存儲網(wǎng)絡(luò)。
從iSCSI協(xié)議的負(fù)荷(loading)分析得知,在TCP/IP的傳送與接收工作的負(fù)荷最大。其次為運算iSCSI的循環(huán)冗余碼(CRC)工作。由于iSCSI循環(huán)冗余碼是重復(fù)性的運算,須耗費大量的CPU處理時間,因此須將iSCSI循環(huán)冗余碼的運算改成由硬件實現(xiàn)比較適當(dāng)。但如果以硬件化的模塊實現(xiàn)iSCSI循環(huán)冗余碼的運算后,如果單獨使用iSCSI循環(huán)冗余碼模塊,那么處理iSCSI循環(huán)冗余碼(CRC)運算時,則必須要有讀取內(nèi)存時間和等待處理時間,因此,單獨的硬件化iSCSI循環(huán)冗余碼模塊并非達(dá)到最好的效能。
常規(guī)的直接內(nèi)存訪問(Direct Memory Access,DMA)機制已經(jīng)是提出相當(dāng)久的技術(shù),且大多作為數(shù)據(jù)搬移的硬件工具。參考美國專利公開第20040123013號專利申請案“Direct memory access controller system”。所述常規(guī)專利申請案揭示在處理DMA數(shù)據(jù)時,同時嵌入計算錯誤檢測碼(error detection codes,EDCs),以減少額外計算EDC的時間。然而,其針對單一數(shù)據(jù)塊計算EDC,并利用DMA的消息格式(Message Format)啟動DMA并決定EDC的操作碼與計算。再將計算的EDC值利用DMA響應(yīng)消息(ResponseMessage)來傳送計算的結(jié)果。
另外,所述常規(guī)技術(shù)假設(shè)數(shù)據(jù)僅存在單一數(shù)據(jù)緩沖區(qū)(data buffer),如果數(shù)據(jù)具有復(fù)數(shù)個區(qū)塊,那么所述DMA系統(tǒng)的中斷次數(shù)會增加。
因此,有必要提供一種創(chuàng)新并具有進(jìn)步性的直接內(nèi)存訪問系統(tǒng),以解決上述問題。
發(fā)明內(nèi)容
本發(fā)明提供一種用于因特網(wǎng)小型計算機系統(tǒng)接口(iSCSI)的直接內(nèi)存訪問系統(tǒng),其包括一第一總線接口、一第二總線接口、一先進(jìn)先出內(nèi)存、一iSCSI循環(huán)冗余碼模塊和一直接內(nèi)存訪問控制器。所述先進(jìn)先出內(nèi)存連接到所述第一總線接口和所述第二總線接口。所述iSCSI循環(huán)冗余碼模塊連接到所述先進(jìn)先出內(nèi)存,用以由所述先進(jìn)先出內(nèi)存取得一iSCSI協(xié)議數(shù)據(jù)單元,根據(jù)所述iSCSI協(xié)議數(shù)據(jù)單元計算得到一循環(huán)冗余碼。所述直接內(nèi)存訪問控制器連接到所述先進(jìn)先出內(nèi)存和所述iSCSI循環(huán)冗余碼模塊,用以控制所述先進(jìn)先出內(nèi)存和所述iSCSI循環(huán)冗余碼模塊的運動。
本發(fā)明將所述iSCSI循環(huán)冗余碼模塊嵌入所述直接內(nèi)存訪問系統(tǒng)中,以減少讀取內(nèi)存時間和等待處理時間,提高處理iSCSI循環(huán)冗余碼的速度與效能。因此,在高速iSCSI主機總線適配器(Host Bus Adapter,HBA)的設(shè)計結(jié)構(gòu)中,本發(fā)明的直接內(nèi)存訪問系統(tǒng)可更有效地處理iSCSI循環(huán)冗余碼。本發(fā)明的直接內(nèi)存訪問系統(tǒng)提供iSCSI協(xié)議與TCP/IP協(xié)議的數(shù)據(jù)傳輸接口,在DMA傳送iSCSI協(xié)議數(shù)據(jù)單元的過程中,自動產(chǎn)生iSCSI循環(huán)冗余碼,并自動更新iSCSI協(xié)議數(shù)據(jù)單元的摘要值(digest)。在不影響原有iSCSI協(xié)議與TCP/IP協(xié)議的情形下,能提供快速且高效能的iSCSI循環(huán)冗余碼處理。因此,利用本發(fā)明的直接內(nèi)存訪問系統(tǒng)可降低CPU的負(fù)荷(loading),并減少重復(fù)讀取iSCSI協(xié)議數(shù)據(jù)單元的時間(latency),以提高處理iSCSI循環(huán)冗余碼的速度與效能。
圖1為本發(fā)明用于因特網(wǎng)小型計算機系統(tǒng)接口(iSCSI)的直接內(nèi)存訪問系統(tǒng)的示意圖;圖2顯示在iSCSI協(xié)議與TCP/IP協(xié)議之間利用本發(fā)明的直接內(nèi)存訪問系統(tǒng)直接訪問iSCSI協(xié)議數(shù)據(jù)單元的示意圖;圖3為本發(fā)明的iSCSI循環(huán)冗余碼模塊的示意圖;和圖4為本發(fā)明的循環(huán)冗余碼控制模塊的數(shù)據(jù)處理流程示意圖。
具體實施例方式
參考圖1,其顯示本發(fā)明用于因特網(wǎng)小型計算機系統(tǒng)接口(iSCSI)的直接內(nèi)存訪問系統(tǒng)的示意圖。本發(fā)明用于因特網(wǎng)小型計算機系統(tǒng)接口的直接內(nèi)存訪問系統(tǒng)10包括一第一總線接口11、一第二總線接口12、一先進(jìn)先出內(nèi)存13、一iSCSI循環(huán)冗余碼(CRC)模塊14和一直接內(nèi)存訪問(DMA)控制器15。所述第一總線接口11為一主機計算機(Host)總線接口。所述第二總線接口12為一特定應(yīng)用集成電路(Application Specific IntegratedCircuit,ASIC)總線接口。
所述先進(jìn)先出內(nèi)存(First-In-First-Out Memory)13連接到所述第一總線接口11和所述第二總線接口12。所述先進(jìn)先出內(nèi)存13包括復(fù)數(shù)個內(nèi)存單元組,每一內(nèi)存單元組包括一寫入內(nèi)存單元和一讀出內(nèi)存單元,所述寫入內(nèi)存單元用以存儲來自所述第一總線接口或所述第二總線接口的數(shù)據(jù),所述讀出內(nèi)存單元用以存儲讀出到所述第一總線接口或所述第二總線接口的資料。
所述iSCSI循環(huán)冗余碼(CRC)模塊14連接到所述先進(jìn)先出內(nèi)存13,用以由所述先進(jìn)先出內(nèi)存13的寫入內(nèi)存單元取得一iSCSI協(xié)議數(shù)據(jù)單元,根據(jù)所述iSCSI協(xié)議數(shù)據(jù)單元計算得到一循環(huán)冗余碼。所述直接內(nèi)存訪問(DMA)控制器15連接到所述先進(jìn)先出內(nèi)存13和所述iSCSI循環(huán)冗余碼模塊14,用以控制所述先進(jìn)先出內(nèi)存13和所述iSCSI循環(huán)冗余碼模塊14啟動的運動。所述直接內(nèi)存訪問(DMA)控制器15可對所述第一總線接口11和所述第二總線接口12發(fā)出讀寫數(shù)據(jù)的請求信號。
參考圖2,其顯示在iSCSI協(xié)議與TCP/IP協(xié)議之間利用本發(fā)明的直接內(nèi)存訪問系統(tǒng)10直接訪問iSCSI協(xié)議數(shù)據(jù)單元的示意圖。所述iSCSI協(xié)議處理方框20中,所產(chǎn)生的iSCSI協(xié)議數(shù)據(jù)單元21包括iSCSI表頭211(Header)、表頭摘要212(Header Digest)、數(shù)據(jù)213(Data)和數(shù)據(jù)摘要214(Data Digest)。所述iSCSI協(xié)議數(shù)據(jù)單元中的數(shù)據(jù)213可由復(fù)數(shù)個數(shù)據(jù)緩沖區(qū)(Data Buffer)所組成。所述iSCSI協(xié)議數(shù)據(jù)單元21中的表頭摘要212(Header Digest)與數(shù)據(jù)摘要214(Data Digest)由iSCSI協(xié)商過程時決定有無此功能,且當(dāng)有數(shù)據(jù)213時,才會需要計算所述數(shù)據(jù)摘要214。另外,所述iSCSI協(xié)議數(shù)據(jù)單元21可以只有所述iSCSI表頭211。
將所述iSCSI協(xié)議中的iSCSI協(xié)議數(shù)據(jù)單元21傳送到TCP/IP協(xié)議處理方框30中,會將所述iSCSI協(xié)議數(shù)據(jù)單元21的數(shù)據(jù)由所述直接內(nèi)存訪問系統(tǒng)10分送到一個或復(fù)數(shù)個TCP協(xié)議數(shù)據(jù)單元31、32中。每一TCP協(xié)議數(shù)據(jù)單元包括TCP表頭和iSCSI協(xié)議數(shù)據(jù)單元片段。以第一TCP協(xié)議數(shù)據(jù)單元31為例說明。所述第一TCP協(xié)議數(shù)據(jù)單元31包括TCP表頭311和iSCSI協(xié)議數(shù)據(jù)單元第一片段312(iSCSI PDU fragment 1)。
當(dāng)由iSCSI協(xié)議將數(shù)據(jù)傳到TCP/IP協(xié)議時(也就是為傳送模式,Txmode),本發(fā)明的直接內(nèi)存訪問系統(tǒng)10將一個單一的iSCSI協(xié)議數(shù)據(jù)單元的數(shù)據(jù)分送到一個或復(fù)數(shù)個TCP協(xié)議數(shù)據(jù)單元,并且根據(jù)所述iSCSI協(xié)議數(shù)據(jù)單元計算得到一循環(huán)冗余碼,所述循環(huán)冗余碼將取代所述iSCSI協(xié)議數(shù)據(jù)單元中已有的數(shù)據(jù)摘要或表頭摘要值。
當(dāng)由TCP/IP協(xié)議將數(shù)據(jù)傳到iSCSI協(xié)議時(也就是為接收模式,Rx mode),本發(fā)明的直接內(nèi)存訪問系統(tǒng)10將一個或復(fù)數(shù)個TCP協(xié)議數(shù)據(jù)單元傳送到iSCSI所指定的iSCSI協(xié)議數(shù)據(jù)單元中,并且根據(jù)所述iSCSI協(xié)議數(shù)據(jù)單元計算得到一循環(huán)冗余碼,所述循環(huán)冗余碼會與所述iSCSI協(xié)議數(shù)據(jù)單元中的數(shù)據(jù)摘要或表頭摘要值進(jìn)行比較。如果相同,就將數(shù)據(jù)摘要或表頭摘要值設(shè)為0;如果不同,就不改變數(shù)據(jù)摘要或表頭摘要值。
參考圖3,其為所述iSCSI循環(huán)冗余碼模塊14的方框示意圖。所述iSCSI循環(huán)冗余碼模塊14包括一先進(jìn)先出內(nèi)存(FIFO)側(cè)接口141、一直接內(nèi)存訪問(DMA)控制器側(cè)接口142、一循環(huán)冗余碼(CRC)計算模塊143和一循環(huán)冗余碼(CRC)控制模塊144。所述先進(jìn)先出內(nèi)存?zhèn)冉涌?41用以訪問到所述先進(jìn)先出內(nèi)存13的數(shù)據(jù)或控制信號。所述直接內(nèi)存訪問控制器側(cè)接口142,用以接受到所述直接內(nèi)存訪問控制器15的數(shù)據(jù)或控制信號,也就是,將來自所述直接內(nèi)存訪問控制器15的控制信號傳到所述循環(huán)冗余碼控制模塊144;或接收所述循環(huán)冗余碼控制模塊144的控制信號并傳到所述直接內(nèi)存訪問控制器15。
所述循環(huán)冗余碼(CRC)計算模塊143用以計算得到所述iSCSI協(xié)議數(shù)據(jù)單元的所述循環(huán)冗余碼。所述循環(huán)冗余碼(CRC)控制模塊144用以控制所述循環(huán)冗余碼計算模塊143的運算,和控制所述先進(jìn)先出內(nèi)存?zhèn)冉涌?41和所述直接內(nèi)存訪問控制器側(cè)接口142。所述循環(huán)冗余碼控制模塊144包括一循環(huán)冗余碼(CRC)控制信號端口145、一先進(jìn)先出內(nèi)存(FIFO)控制信號端口146、一直接內(nèi)存訪問(DMA)控制信號端口147、一循環(huán)冗余碼(CRC)寄存器檔148。
所述循環(huán)冗余碼(CRC)控制信號端口145用以控制所述循環(huán)冗余碼計算模塊143的運動。所述循環(huán)冗余碼(CRC)控制信號端口145包括一循環(huán)冗余碼(CRC)輸出控制埠、一循環(huán)冗余碼(CRC)輸出數(shù)據(jù)端口和一循環(huán)冗余碼(CRC)輸入數(shù)據(jù)端口。所述循環(huán)冗余碼(CRC)輸出控制埠用以重置(Reset)所述循環(huán)冗余碼計算模塊143所計算的所述循環(huán)冗余碼值,和啟動所述循環(huán)冗余碼計算模塊143開始計算所述循環(huán)冗余碼,以及控制向所述循環(huán)冗余碼計算模塊143取得所計算的所述循環(huán)冗余碼。
所述循環(huán)冗余碼(CRC)輸出數(shù)據(jù)端口用以將所需的數(shù)據(jù)傳送到所述循環(huán)冗余碼計算模塊143。所述循環(huán)冗余碼(CRC)輸入數(shù)據(jù)端口用以取得所述循環(huán)冗余碼計算模塊143所計算的所述循環(huán)冗余碼。
所述先進(jìn)先出內(nèi)存(FIFO)控制信號端口146包括一先進(jìn)先出內(nèi)存(FIFO)數(shù)據(jù)輸入端口、一先進(jìn)先出內(nèi)存(FIFO)數(shù)據(jù)輸出端口和一先進(jìn)先出內(nèi)存(FIFO)輸出控制埠。所述先進(jìn)先出內(nèi)存(FIFO)數(shù)據(jù)輸入端口用以讀取所述先進(jìn)先出內(nèi)存13中的寫入內(nèi)存單元的所述iSCSI協(xié)議數(shù)據(jù)單元。所述先進(jìn)先出內(nèi)存(FIFO)數(shù)據(jù)輸出端口用以將修改后的所述iSCSI協(xié)議數(shù)據(jù)單元寫入所述先進(jìn)先出內(nèi)存13中的讀出內(nèi)存單元。所述先進(jìn)先出內(nèi)存(FIFO)輸出控制埠用以將讀取或?qū)懭氲目刂菩盘杺魉偷剿鱿冗M(jìn)先出內(nèi)存13。
所述直接內(nèi)存訪問(DMA)控制信號端口147包括一直接內(nèi)存訪問(DMA)輸入控制端口和一直接內(nèi)存訪問(DMA)輸出控制埠。所述直接內(nèi)存訪問(DMA)輸入控制埠用以接收所述直接內(nèi)存訪問(DMA)控制器15所傳送的控制消息、設(shè)定是否計算所述iSCSI協(xié)議數(shù)據(jù)單元的表頭摘要、設(shè)定是否計算所述iSCSI協(xié)議數(shù)據(jù)單元的數(shù)據(jù)摘要、設(shè)定所述iSCSI協(xié)議數(shù)據(jù)單元的表頭大小、設(shè)定所述iSCSI協(xié)議數(shù)據(jù)單元的數(shù)據(jù)在所述所述先進(jìn)先出內(nèi)存13的位置、判別所述直接內(nèi)存訪問(DMA)控制器15是否已經(jīng)將數(shù)據(jù)都搬到所述先進(jìn)先出內(nèi)存13的所述寫入內(nèi)存單元中、將目前的直接內(nèi)存訪問模式設(shè)定為傳送模式(Txmode)或接收模式(Rx mode)并取得所述循環(huán)冗余碼(CRC)控制模塊144的狀態(tài)。所述直接內(nèi)存訪問(DMA)輸出控制端口用以將響應(yīng)信號傳送到所述直接內(nèi)存訪問(DMA)控制器15。
所述循環(huán)冗余碼(CRC)寄存器檔(Register File)148包括一循環(huán)冗余碼(CRC)控制寄存器和一循環(huán)冗余碼(CRC)狀態(tài)寄存器。所述循環(huán)冗余碼(CRC)控制寄存器用以存儲目前所述直接內(nèi)存訪問(DMA)控制器15的設(shè)定、目前是否啟動所述iSCSI協(xié)議數(shù)據(jù)單元的表頭摘要的計算、目前是否啟動所述iSCSI協(xié)議數(shù)據(jù)單元的數(shù)據(jù)摘要的計算、目前處理的所述iSCSI協(xié)議數(shù)據(jù)單元的表頭的大小和目前所述iSCSI協(xié)議數(shù)據(jù)單元的數(shù)據(jù)在所述先進(jìn)先出內(nèi)存13的位置。所述循環(huán)冗余碼(CRC)狀態(tài)寄存器用以存儲目前所述循環(huán)冗佘碼(CRC)控制模塊144的處理狀態(tài)。
參考圖4,其顯示所述循環(huán)冗余碼控制模塊144的數(shù)據(jù)處理流程示意圖。所述循環(huán)冗余碼控制模塊144另外包括一第一比較器161、一第二比較器162、一第三比較器163、一第四比較器164、一第五比較器165、一第六比較器166、一循環(huán)冗余碼(CRC)取代和比較電路167。首先由所述FIFO數(shù)據(jù)輸入端口讀取所述iSCSI協(xié)議數(shù)據(jù)單元的數(shù)據(jù)。從所述第一比較器161判別是否啟動iSCSI循環(huán)冗余碼的運算,如果沒有,就將數(shù)據(jù)寫回所述FIFO數(shù)據(jù)輸出端口。如果啟動iSCSI循環(huán)冗余碼的運算,就由所述第二比較器162判別目前所述iSCSI協(xié)議數(shù)據(jù)單元的數(shù)據(jù)是否為表頭(Header),如果為表頭,就到所述第三比較器163;如果不是表頭而是數(shù)據(jù),就到所述第五比較器165。
所述第三比較器163用以判別是否啟動表頭的循環(huán)冗余碼(CRC)的運算,如果不啟動,就將數(shù)據(jù)寫回所述FIFO數(shù)據(jù)輸出端口;如果啟動表頭的循環(huán)冗余碼(CRC)的運算,就到所述第四比較器164。所述第四比較器164用以判別是否具有表頭摘要(Header digest),如果沒有,就將數(shù)據(jù)寫回所述FIFO數(shù)據(jù)輸出端口;如果有表頭摘要,就將數(shù)據(jù)傳到所述循環(huán)冗余碼計算模塊143以計算所述循環(huán)冗余碼。
所述第五比較器165用以判別是否啟動數(shù)據(jù)(Data)的循環(huán)冗余碼(CRC)的運算,如果不啟動,就將數(shù)據(jù)寫回所述FIFO數(shù)據(jù)輸出端口;如果有啟動數(shù)據(jù)的循環(huán)冗余碼(CRC)的運算,就到所述第六比較器166。所述第六比較器166用以判別是否具有數(shù)據(jù)摘要(Data digest),如果沒有,就將數(shù)據(jù)寫回所述FIFO數(shù)據(jù)輸出端口;如果有數(shù)據(jù)摘要,就將數(shù)據(jù)傳到所述循環(huán)冗余碼計算模塊143以計算所述循環(huán)冗余碼。
所述循環(huán)冗余碼(CRC)取代和比較電路167用以接收所述循環(huán)冗余碼計算模塊143所計算的所述循環(huán)冗余碼,在傳送模式時,所述循環(huán)冗余碼將取代所述iSCSI協(xié)議數(shù)據(jù)單元中已有的數(shù)據(jù)摘要或表頭摘要值;在接收模式時,所述循環(huán)冗余碼會與所述iSCSI協(xié)議數(shù)據(jù)單元中的數(shù)據(jù)摘要或表頭摘要值進(jìn)行比較。如果相同就將數(shù)據(jù)摘要或表頭摘要值設(shè)為0;如果不同,就不改變數(shù)據(jù)摘要或表頭摘要值。并將修改后的所述iSCSI協(xié)議數(shù)據(jù)單元傳送到所述FIFO數(shù)據(jù)輸出端口,以寫入所述先進(jìn)先出內(nèi)存13的所述讀出內(nèi)存單元。
本發(fā)明的直接內(nèi)存訪問系統(tǒng)10提供iSCSI協(xié)議與TCP/IP協(xié)議的數(shù)據(jù)傳輸接口,在直接訪問iSCSI協(xié)議數(shù)據(jù)單元的過程中,自動產(chǎn)生iSCSI循環(huán)冗余碼,并自動更新iSCSI協(xié)議數(shù)據(jù)單元的摘要值(digest)。在不影響原有的iSCSI協(xié)議與TCP/IP協(xié)議的情形下,能提供快速且高效能的iSCSI循環(huán)冗余碼處理。因此,利用本發(fā)明的直接內(nèi)存訪問系統(tǒng)可降低CPU的負(fù)荷(loading),并減少重復(fù)讀取iSCSI協(xié)議數(shù)據(jù)單元的時間(latency),以提高處理iSCSI循環(huán)冗余碼的速度與效能。
但上述實施例僅為說明本發(fā)明的原理和其功效,而非用以限制本發(fā)明。因此,所屬領(lǐng)域的技術(shù)人員在不違背本發(fā)明的精神的情況下可對上述實施例進(jìn)行修改和變化。本發(fā)明的權(quán)利范圍應(yīng)由上述權(quán)利要求書所界定。
權(quán)利要求
1.一種用于因特網(wǎng)小型計算機系統(tǒng)接口(iSCSI)的直接內(nèi)存訪問系統(tǒng),其包含一第一總線接口;一第二總線接口;一先進(jìn)先出內(nèi)存,其連接到所述第一總線接口和所述第二總線接口;一iSCSI循環(huán)冗余碼模塊,其連接到所述先進(jìn)先出內(nèi)存,用以由所述先進(jìn)先出內(nèi)存取得一iSCSI協(xié)議數(shù)據(jù)單元,根據(jù)所述iSCSI協(xié)議數(shù)據(jù)單元計算得到一循環(huán)冗余碼;和一直接內(nèi)存訪問控制器,其連接到所述先進(jìn)先出內(nèi)存和所述iSCSI循環(huán)冗余碼模塊,用以控制所述先進(jìn)先出內(nèi)存和所述iSCSI循環(huán)冗余碼模塊的運動。
2.根據(jù)權(quán)利要求1所述的直接內(nèi)存訪問系統(tǒng),其中所述第一總線接口為一主機計算機總線接口。
3.根據(jù)權(quán)利要求1所述的直接內(nèi)存訪問系統(tǒng),其中所述第二總線接口為一特定應(yīng)用集成電路(ASIC)總線接口。
4.根據(jù)權(quán)利要求1所述的直接內(nèi)存訪問系統(tǒng),其中所述先進(jìn)先出內(nèi)存包括復(fù)數(shù)個內(nèi)存單元組,每一內(nèi)存單元組包括一寫入內(nèi)存單元和一讀出內(nèi)存單元,所述寫入內(nèi)存單元用以存儲來自所述第一總線接口或所述第二總線接口的數(shù)據(jù),所述讀出內(nèi)存單元用以存儲讀出到所述第一總線接口或所述第二總線接口的資料。
5.根據(jù)權(quán)利要求4所述的直接內(nèi)存訪問系統(tǒng),其中所述iSCSI循環(huán)冗余碼模塊包括一先進(jìn)先出內(nèi)存?zhèn)冉涌?,其用以訪問所述先進(jìn)先出內(nèi)存的數(shù)據(jù);一直接內(nèi)存訪問控制器側(cè)接口,其用以訪問所述直接內(nèi)存訪問控制器的數(shù)據(jù);一循環(huán)冗余碼計算模塊,其用以計算得到所述iSCSI協(xié)議數(shù)據(jù)單元的所述循環(huán)冗余碼;和一循環(huán)冗余碼控制模塊,其用以控制所述循環(huán)冗余碼計算模塊的運算,和控制所述先進(jìn)先出內(nèi)存?zhèn)冉涌诤退鲋苯觾?nèi)存訪問控制器側(cè)接口。
6.根據(jù)權(quán)利要求5所述的直接內(nèi)存訪問系統(tǒng),其中所述循環(huán)冗余碼控制模塊包括一循環(huán)冗余碼控制信號端口,其用以控制所述循環(huán)冗余碼計算模塊;一先進(jìn)先出內(nèi)存控制信號端口,其用以控制讀取所述寫入內(nèi)存單元的所述iSCSI協(xié)議數(shù)據(jù)單元,或?qū)⒔?jīng)修改的所述iSCSI協(xié)議數(shù)據(jù)單元寫入到所述讀出內(nèi)存單元;一直接內(nèi)存訪問控制信號端口,其用以接收所述直接內(nèi)存訪問控制器的數(shù)據(jù)和將響應(yīng)數(shù)據(jù)傳送到所述直接內(nèi)存訪問控制器;和一循環(huán)冗余碼寄存器槽,其用以存儲所述循環(huán)冗余碼控制模塊的狀態(tài)和設(shè)定。
7.根據(jù)權(quán)利要求6所述的直接內(nèi)存訪問系統(tǒng),其中所述循環(huán)冗余碼控制模塊另外包括復(fù)數(shù)個比較器,其用以判斷是否進(jìn)行計算所述循環(huán)冗余碼;一循環(huán)冗余碼取代電路,其用以在一傳送模式時,將所述循環(huán)冗余碼取代所述iSCSI協(xié)議數(shù)據(jù)單元內(nèi)的表頭摘要或數(shù)據(jù)摘要;和一循環(huán)冗余碼比較電路,其用以在一接收模式時,將所述循環(huán)冗余碼與所述iSCSI協(xié)議數(shù)據(jù)單元內(nèi)的表頭摘要或數(shù)據(jù)摘要比較。
全文摘要
本發(fā)明涉及一種用于因特網(wǎng)小型計算機系統(tǒng)接口的直接內(nèi)存訪問系統(tǒng),其包括一第一總線接口、一第二總線接口、一先進(jìn)先出內(nèi)存、一iSCSI循環(huán)冗余碼模塊和一直接內(nèi)存訪問控制器。本發(fā)明將所述iSCSI循環(huán)冗余碼模塊嵌入所述直接內(nèi)存訪問系統(tǒng)中,以提供iSCSI協(xié)議與TCP/IP協(xié)議的數(shù)據(jù)傳輸接口,在直接訪問iSCSI協(xié)議數(shù)據(jù)單元的過程中,自動計算iSCSI循環(huán)冗余碼,并自動更新iSCSI協(xié)議數(shù)據(jù)單元的摘要值(digest)。因此,利用本發(fā)明的直接內(nèi)存訪問系統(tǒng)可降低CPU的負(fù)荷,并減少重復(fù)讀取iSCSI協(xié)議數(shù)據(jù)單元的時間,以提高處理iSCSI循環(huán)冗余碼的速度和效能,并減少讀取內(nèi)存時間和等待處理時間。
文檔編號H04L29/06GK1904870SQ20051008730
公開日2007年1月31日 申請日期2005年7月28日 優(yōu)先權(quán)日2005年7月28日
發(fā)明者吳正毅, 陳漢強 申請人:財團法人工業(yè)技術(shù)研究院