專利名稱:磁盤陣列協(xié)處理控制卡的制作方法
技術(shù)領(lǐng)域:
本實(shí)用新型屬于計(jì)算機(jī)存儲(chǔ)技術(shù)領(lǐng)域,具體涉及一種磁盤陣列協(xié)處
理控制卡,用于通過PCI設(shè)備啟動(dòng)磁盤陣列系統(tǒng)、提高系統(tǒng)性能。
背景技術(shù):
采用通用計(jì)算機(jī)部件構(gòu)成的集成式磁盤陣列,其傳統(tǒng)啟動(dòng)設(shè)備包括
軟盤、硬盤以及DOM、 USB設(shè)備等??紤]到陣列系統(tǒng)的可靠性、穩(wěn)定性、 成本以及數(shù)據(jù)安全的要求,不適合采用軟盤、硬盤或其它常規(guī)啟動(dòng)設(shè)備。 另一方面,這些設(shè)備也不具備提供增強(qiáng)磁盤陣列性能的功能。
目前使用的磁盤陣列控制卡通過PCI接口連接到主機(jī)上,并提供多 個(gè)硬盤接口,在主機(jī)內(nèi)部構(gòu)建磁盤陣列。這種磁盤陣列控制卡需要主機(jī) 操作系統(tǒng)的支持,本身不能作為啟動(dòng)設(shè)備。這種磁盤陣列協(xié)處理卡采用 專用集成電路芯片實(shí)現(xiàn),硬件功能不能更改。另外一些協(xié)處理卡只具備 單一功能,如專門進(jìn)行數(shù)據(jù)加密的協(xié)處理卡及專門執(zhí)行XOR運(yùn)算的協(xié)處 理卡。這類協(xié)處理卡有些用專用集成電路芯片實(shí)現(xiàn),有些用FPGA實(shí)現(xiàn)。
發(fā)明內(nèi)容
本實(shí)用新型提出一種磁盤陣列協(xié)處理控制卡,目的在于加快XOR運(yùn) 算的執(zhí)行速度、增強(qiáng)數(shù)據(jù)安全性,提高存儲(chǔ)訪問速度,用于啟動(dòng)磁盤陣 列系統(tǒng)。
本實(shí)用新型的一種磁盤陣列協(xié)處理控制卡,包括PCI接口、 XOR處 理引擎、加密邏輯單元、Flash Memory接口、 NVRAM接口,以及Flash Memory芯片和NVRAM芯片,其中Flash Memory芯片和NVRAM芯片 分別與Flash Memory接口、 NVRAM接口電信號(hào)連接,XOR處理引擎、
加密邏輯單元、Flash Memory接口及NVRAM接口通過PCI后端設(shè)備信 號(hào)與PCI接口連接;PCI接口完成主機(jī)與本磁盤陣列協(xié)處理控制卡之間的 命令和數(shù)據(jù)交互;XOR處理引擎完成異或運(yùn)算;加密邏輯單元執(zhí)行加密 處理;Flash Memory接口和NVRAM接口分別負(fù)責(zé)控制Flash Memory芯 片和NVRAM芯片;Flash Memory芯片用作PCI卡的擴(kuò)展ROM,同時(shí) 存放磁盤陣列控制程序;NVRAM芯片用作磁盤陣列的高速緩存。
所述的磁盤陣列協(xié)處理控制卡,其特征在于所述Flash Memory芯 片作為擴(kuò)展ROM,存放遵循BBS協(xié)議的固件;對(duì)于磁盤陣列控制軟件 采用的操作系統(tǒng)pSOS+, VxWorks或Linux,該固件分別為遵循BBS協(xié) 議的相應(yīng)的版本。
所述的磁盤陣列協(xié)處理控制卡,其進(jìn)一步特征在于采用FPGA實(shí) 現(xiàn)所述PCI接口、 XOR處理引擎、加密邏輯單元、Flash Memory接口和 NVRAM接口 ;所述Flash Memory芯片和NVRAM芯片為板載存儲(chǔ)器。
所述的磁盤陣列協(xié)處理控制卡,所述XOR處理引擎可以包括XOR 運(yùn)算單元、雙端口數(shù)據(jù)RAM、雙端口地址RAM、局部Master模塊、DMA 模塊和局部Target模塊;XOR運(yùn)算單元負(fù)責(zé)數(shù)據(jù)的異或運(yùn)算;雙端口數(shù) 據(jù)RAM用于保存異或運(yùn)算的中間結(jié)果和最終結(jié)果;雙端口地址RAM用 于保存待處理數(shù)據(jù)塊的內(nèi)存首地址以及返回的處理結(jié)果的內(nèi)存首地址; 局部Master模塊負(fù)責(zé)通過PCI接口訪問主機(jī)內(nèi)存;DMA模塊負(fù)責(zé)控制 局部Master^募?jí)K,并向上層軟件提供訪問接口;局部Target模塊負(fù)責(zé)將 通過PCI接口傳輸?shù)拇幚頂?shù)據(jù)塊首地址以及計(jì)算結(jié)果存放首地址存入 雙端口 RAM26'0中。
本實(shí)用新型中PCI接口是陣列主機(jī)與磁盤陣列協(xié)處理控制卡之間進(jìn) 行命令、數(shù)據(jù)交」/的界面。當(dāng)主機(jī)需要訪問磁盤陣列協(xié)處理控制卡時(shí), 通過PCI接口向磁盤陣列協(xié)處理控制卡發(fā)出請(qǐng)求命令,磁盤陣列協(xié)處理 控制卡根據(jù)命令的內(nèi)容作相應(yīng)的操作,包括讀寫板載存儲(chǔ)器、執(zhí)行XOR
運(yùn)算和加密處理,完成后再通過PCI接口提交返回的數(shù)據(jù)。PCI接口是廣
泛使用的計(jì)算機(jī)外部設(shè)備接口,保證了本磁盤陣列協(xié)處理控制卡具有良
好的兼容性。
XOR處理引擎和加密邏輯單元能高速執(zhí)行大批量數(shù)據(jù)的異或運(yùn)算和 加密運(yùn)算,并使用DMA控制器完成片內(nèi)RAM (Random Access Memory,
隨機(jī)訪問存儲(chǔ)器)和主機(jī)內(nèi)存之間的數(shù)據(jù)傳輸。
磁盤陣列協(xié)處理控制卡的擴(kuò)展ROM中包括三個(gè)數(shù)據(jù)結(jié)構(gòu)擴(kuò)展 ROM頭部(Option ROM Header)、 PCI頭部(PCI Data Structure)和PNP 擴(kuò)展頭部(PNP Expansion Header)。擴(kuò)展ROM頭部用于對(duì)整個(gè)擴(kuò)展ROM 的總體參數(shù)和組織結(jié)構(gòu)等進(jìn)行定義,它還包括INIT函數(shù)的入口點(diǎn)。PCI 頭部定義了與該設(shè)備相關(guān)的基本參數(shù)。PNP擴(kuò)展頭部則定義了 BBS協(xié)議 規(guī)定的參數(shù),包括BEV (Bootstrap Entry Vector)設(shè)備的入口地址。此外 擴(kuò)展ROM中還包括INIT函數(shù)。INIT函數(shù)在BIOS的POST過程中執(zhí)行, 它用于檢測(cè)BIOS是否支持BBS。 BEV設(shè)備的入口地址指向定制的加載 程序,該程序?qū)⒉僮飨到y(tǒng)加載程序和操作系統(tǒng)內(nèi)核拷貝到內(nèi)存中,并啟 動(dòng)操作系統(tǒng)加載程序的執(zhí)行。
本實(shí)用新型是具有PCI接口、采用FPGA實(shí)現(xiàn)的非常規(guī)啟動(dòng)設(shè)備, 其XOR處理引擎、加密邏輯單元、板載NVRAM能提高系統(tǒng)的I/O處理 能力、數(shù)據(jù)安全性,縮短I/O響應(yīng)時(shí)間。同時(shí),本實(shí)用新型采用FPGA 實(shí)現(xiàn),有很強(qiáng)的靈活性,通過對(duì)FPGA配置文件的修改,可以針對(duì)具體 的應(yīng)用提供不同的功能部件,如增加XOR處理引擎的數(shù)量、采用不同的 加密算法等。將實(shí)現(xiàn)這種PCI接口的多功能磁盤陣列協(xié)處理控制卡的方 法應(yīng)用于存儲(chǔ)系統(tǒng)控制卡的設(shè)計(jì)中,可以有效的改善存儲(chǔ)訪問速度、解 決存儲(chǔ)安全等問題;本實(shí)用新型實(shí)現(xiàn)的磁盤陣列協(xié)處理控制卡,保證了 磁盤陣列控制系統(tǒng)的可靠性和穩(wěn)定性,可用于磁盤陣列存儲(chǔ)系統(tǒng)的啟動(dòng) 并增強(qiáng)其性能。
圖l為本實(shí)用新型的結(jié)構(gòu)示意圖; 圖2為本實(shí)用新型XOR處理引擎的結(jié)構(gòu)示意圖; 圖3為本實(shí)用新型加密邏輯單元的處理流程框圖; 圖4為一次加密迭代的處理流程框圖。
具體實(shí)施方式
以下結(jié)合附圖對(duì)本實(shí)用新型作進(jìn)一步說明。
如圖1所示,本實(shí)用新型的協(xié)處理控制卡包括由FPGA器件實(shí)現(xiàn)的 PCI接口 110、 FlashMemory接口 120、 XOR處理引擎130、加密邏輯單 元140和NVRAM接口 150,以及板載存儲(chǔ)器Flash Memory芯片160和 NVRAM芯片170幾個(gè)主要部分。PCI接口 110為32位/64位 33畫z/66MHz的PCI (Peripheral Component Interconnect)接口 ,亦可以 采用更高速的PCI-X接口而獲取更高的速度性能。主機(jī)通過PCI接口訪 問Flash Memory接口 120、 XOR處理引擎130、加密邏輯單元140和 NVRAM接口 150。 Flash Memory芯片160用作PCI卡的擴(kuò)展ROM,同 時(shí)存放磁盤陣列控制程序;NVRAM芯片170用作磁盤陣列的Cache。
圖2為XOR處理引擎的處理流程結(jié)構(gòu)框圖。XOR處理引擎包括XOR 運(yùn)算單元240、雙端口數(shù)據(jù)RAM250、雙端口地址RAM260、局部Master 模塊210、 DMA模塊220和局部Target模塊230。 XOR運(yùn)算單元240負(fù) 責(zé)數(shù)據(jù)的異或運(yùn)算;雙端口數(shù)據(jù)RAM 250用于保存異或運(yùn)算的中間結(jié)果 和最終結(jié)果;雙端口地址RAM260用于保存待處理數(shù)據(jù)塊的內(nèi)存首地址 以及返回的處理結(jié)果的內(nèi)存首地址;局部Master模塊210負(fù)責(zé)通過PCI 接口訪問主機(jī)內(nèi)存;DMA模塊220負(fù)責(zé)控制局部Master模塊,并向上層 軟件提供訪問接口 ;局部Target模塊230負(fù)責(zé)將通過PCI接口傳輸?shù)拇?br>
處理數(shù)據(jù)塊首地址以及計(jì)算結(jié)果存放首地址存入雙端口 RAM 260中。
當(dāng)需要對(duì)數(shù)據(jù)塊執(zhí)行XOR處理時(shí),程序先將待處理數(shù)據(jù)塊的首地址 和計(jì)算結(jié)果存放首地址通過局部Target模塊230依次寫入雙端口地址 RAM 260中,并將待處理的數(shù)據(jù)塊數(shù)目和大小傳遞給DMA模塊220, DMA模塊220隨即讀取雙端口地址RAM 260中的待處理數(shù)據(jù)塊的首地 址,通過局部Master模塊210讀取內(nèi)存中的待處理數(shù)據(jù)并存入雙端口數(shù) 據(jù)RAM250中,隨后XOR運(yùn)算單元240執(zhí)行數(shù)據(jù)的異或運(yùn)算,當(dāng)處理 完全部數(shù)據(jù)后,DMA模塊220再次通過局部Master模塊210將計(jì)算結(jié)果 送到主機(jī)內(nèi)存中的指定地址。
圖3為加密邏輯單元的處理流程框圖,采用的加密算法為數(shù)據(jù)加密 標(biāo)準(zhǔn)算法(DataEncryption Starndard, DES), 64位明文數(shù)據(jù)經(jīng)過初始置 換、16次加密迭代、逆初始置換之后以64位密文數(shù)據(jù)輸出。
圖4為一次加密迭代的處理流程,進(jìn)入加密迭代的64位數(shù)據(jù),左邊 32位構(gòu)成右邊32位構(gòu)成Ri.1; 64位密鑰經(jīng)過變換產(chǎn)生16個(gè)子密鑰, 分別供16次加密迭代使用;擴(kuò)充置換E將32位擴(kuò)充為48位輸出; 該輸出與子密鑰作異或運(yùn)算,得到的結(jié)果作為選擇函數(shù)組S的輸入;選 擇函數(shù)組S根據(jù)輸入數(shù)據(jù)確定其對(duì)應(yīng)的每個(gè)選擇矩陣的行號(hào)和列號(hào),由 此得到32位輸出;該輸出通過置換運(yùn)算P得到的結(jié)果與Lj.,異或得到下 一次迭代的右邊32位數(shù)據(jù)Ri;而Ri.,作為下一次迭代的左邊32位數(shù)據(jù) Lio
系統(tǒng)上電后,F(xiàn)PGA由其專用的配置芯片進(jìn)行主動(dòng)配置,10秒鐘內(nèi) 磁盤陣列協(xié)處理控制卡完成自身初始化工作。在系統(tǒng)自檢POST (Power-On Self Test)過程中,mOS會(huì)發(fā)現(xiàn)磁盤陣列協(xié)處理控制卡為啟 動(dòng)設(shè)備。接著磁盤陣列協(xié)處理控制卡BIOS的INIT功能檢測(cè)系統(tǒng)BIOS 是否支持BBS,如果支持則按BBS協(xié)議給出返回值,如果不支持則搶占 19H中斷。在POST正常完成后,則調(diào)用19H中斷進(jìn)行系統(tǒng)引導(dǎo),19H
中斷服務(wù)例程會(huì)執(zhí)行磁盤陣列協(xié)處理控制卡的加載程序,將操作系統(tǒng)加 載程序和目標(biāo)文件加載到內(nèi)存中,跳轉(zhuǎn)至操作系統(tǒng)加載程序入口處,完 成引導(dǎo)。至此,磁盤陣列進(jìn)入正常工作狀態(tài),控制程序協(xié)調(diào)和控制整個(gè)系統(tǒng),通過對(duì)PCI協(xié)處理控制卡寄存器的訪問指揮協(xié)處理控制卡執(zhí)行對(duì)數(shù)據(jù)的緩存、加密以及異或運(yùn)算等操作。
權(quán)利要求1.一種磁盤陣列協(xié)處理控制卡,其特征在于其包括PCI接口、XOR處理引擎、加密邏輯單元、Flash Memory接口、NVRAM接口,以及FlashMemory芯片和NVRAM芯片,其中Flash Memory芯片和NVRAM芯片分別與Flash Memory接口、NVRAM接口電信號(hào)連接,XOR處理引擎、加密邏輯單元、Flash Memory接口及NVRAM接口通過PCI后端設(shè)備信號(hào)與PCI接口連接;PCI接口完成主機(jī)與本磁盤陣列協(xié)處理控制卡之間的命令和數(shù)據(jù)交互;XOR處理引擎完成異或運(yùn)算;加密邏輯單元執(zhí)行加密處理;Flash Memory接口和NVRAM接口分別負(fù)責(zé)控制Flash Memory芯片和NVRAM芯片;Flash Memory芯片用作PCI卡的擴(kuò)展ROM,同時(shí)存放磁盤陣列控制程序;NVRAM芯片用作磁盤陣列的高速緩存。
2. 如權(quán)利要求1所述的磁盤陣列協(xié)處理控制卡,其特征在于所述 Flash Memory芯片作為擴(kuò)展ROM,存放遵循BBS協(xié)議的固件;對(duì)于磁 盤陣列控制軟件采用的操作系統(tǒng)pSOS+, VxWorks或Linux,該固件分別 為遵循BBS協(xié)議的相應(yīng)的版本。
3. 如權(quán)利要求1或2所述的磁盤陣列協(xié)處理控制卡,其特征在于 采用FPGA實(shí)現(xiàn)所述PCI接口、 XOR處理引擎、加密邏輯單元、Flash Memory接口和NVRAM接口 ;所述Flash Memory芯片和NVRAM芯片為板載存儲(chǔ)器。
4. 如權(quán)利要求3所述的磁盤陣列協(xié)處理控制卡,其特征在于所述 XOR處理引擎包括XOR運(yùn)算單元、雙端口數(shù)據(jù)RAM、雙端口地址RAM、局部Master模塊、DMA模塊和局部Target模塊;XOR運(yùn)算單元負(fù)責(zé)數(shù) 據(jù)的異或運(yùn)算;雙端口數(shù)據(jù)RAM用于保存異或運(yùn)算的中間結(jié)果和最終結(jié) 果;雙端口地址RAM用于保存待處理數(shù)據(jù)塊的內(nèi)存首地址以及返回的處 理結(jié)果的內(nèi)存首地址;局部Master模塊負(fù)責(zé)通過PCI接口訪問主機(jī)內(nèi)存; DMA模塊負(fù)責(zé)控制局部Master模塊,并向上層軟件提供訪問接口 ;局部 Target模塊負(fù)責(zé)將通過PCI接口傳輸?shù)拇幚頂?shù)據(jù)塊首地址以及計(jì)算結(jié) 果存放首地址存入雙端口 RAM 260中。
專利摘要磁盤陣列協(xié)處理控制卡,屬于計(jì)算機(jī)存儲(chǔ)技術(shù)領(lǐng)域,目的在于加快XOR運(yùn)算的執(zhí)行速度、增強(qiáng)數(shù)據(jù)安全性,提高存儲(chǔ)訪問速度,用于啟動(dòng)磁盤陣列系統(tǒng)。本實(shí)用新型包括PCI接口、XOR處理引擎、加密邏輯單元、FlashMemory接口、NVRAM接口,以及Flash Memory芯片和NVRAM芯片,本實(shí)用新型具有PCI接口、采用FPGA實(shí)現(xiàn),有很強(qiáng)的靈活性,其XOR處理引擎、加密邏輯單元、板載NVRAM能提高系統(tǒng)的I/O處理能力、數(shù)據(jù)安全性,縮短I/O響應(yīng)時(shí)間,可以有效改善存儲(chǔ)訪問速度、解決存儲(chǔ)安全等問題;保證了磁盤陣列控制系統(tǒng)的可靠性和穩(wěn)定性,可用于磁盤陣列存儲(chǔ)系統(tǒng)的啟動(dòng)并增強(qiáng)其性能。
文檔編號(hào)G06F3/06GK201011563SQ20062016335
公開日2008年1月23日 申請(qǐng)日期2006年12月1日 優(yōu)先權(quán)日2006年12月1日
發(fā)明者丹 馮, 劉景寧, 宇 張, 柴紅剛, 磊 田, 薇 童 申請(qǐng)人:華中科技大學(xué)