




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
精品文檔-下載后可編輯RAID控制器中磁盤接口控制器流水線設(shè)計(jì)與實(shí)現(xiàn)-設(shè)計(jì)應(yīng)用摘要:在研究磁盤接口功能和現(xiàn)有磁盤接口設(shè)計(jì)的基礎(chǔ)上,提出了一種帶四級(jí)流水的磁盤接口設(shè)計(jì)模型,并對(duì)該模型實(shí)現(xiàn)過(guò)程中的模塊間通信問(wèn)題和模塊間緩沖管理問(wèn)題進(jìn)行了相應(yīng)的分析和設(shè)計(jì)。通過(guò)FPGA仿真與實(shí)驗(yàn)結(jié)果表明,在各種情況下,磁盤接口的吞吐率都有提高,在高寫(xiě)請(qǐng)求率和重負(fù)載兩種情況下尤為顯著。
隨著網(wǎng)絡(luò)發(fā)展和計(jì)算機(jī)的普及應(yīng)用,人們對(duì)存儲(chǔ)系統(tǒng)的性能要求越來(lái)越高,尤其是關(guān)鍵事務(wù)的應(yīng)用。廉價(jià)冗余磁盤陣列(RAID)采用分條和冗余的方法提高了存儲(chǔ)系統(tǒng)的容量、速度和可靠性,已成為高性能數(shù)據(jù)存儲(chǔ)的結(jié)構(gòu)。磁盤陣列控制器是磁盤陣列的,多數(shù)緩存預(yù)取策略、緩存置換策略、磁盤聚合寫(xiě)策略、數(shù)據(jù)冗余計(jì)算、數(shù)據(jù)備份與重建均由磁盤陣列控制器完成。磁盤接口控制器主要負(fù)責(zé)磁盤組的管理及讀寫(xiě)磁盤操作的具體實(shí)現(xiàn)。
流水線技術(shù)是計(jì)算機(jī)技術(shù)中同時(shí)具備空間并行性和時(shí)間并行性的技術(shù),它把一個(gè)順序處理的過(guò)程分解成若干個(gè)子處理過(guò)程,每個(gè)子處理過(guò)程能在專用的獨(dú)立模塊上有效地并行工作。本文通過(guò)對(duì)磁盤接口控制器的流水線設(shè)計(jì),提高了磁盤接口的吞吐率。較高的磁盤接口控制器吞吐率可以降低平均訪問(wèn)時(shí)間,使復(fù)雜有效的預(yù)取和置換算法方便地應(yīng)用于磁盤陣列,提高緩存的命中率,從而提高磁盤陣列的整體性能。
1現(xiàn)有磁盤接口控制器設(shè)計(jì)
磁盤接口設(shè)計(jì)方式主要有2種:(1)使用通用處理器充當(dāng)磁盤接口控制器,通過(guò)在處理器上運(yùn)行相應(yīng)的軟件完成來(lái)自控制器上其他處理器的磁盤操作請(qǐng)求。這種方式的優(yōu)點(diǎn)就是實(shí)現(xiàn)簡(jiǎn)單,但缺點(diǎn)也很明顯。每一個(gè)新的磁盤操作請(qǐng)求必須在前一磁盤操作請(qǐng)求完成之后才能啟動(dòng),并且需要占用大量處理器時(shí)間的異或操作也由該處理器承擔(dān),這使得每磁盤操作的時(shí)間太長(zhǎng),進(jìn)而使得磁盤接口控制器的平均磁盤訪問(wèn)時(shí)間過(guò)長(zhǎng),吞吐率較低,尤其是降級(jí)模式讀操作和磁盤寫(xiě)操作。(2)把需要長(zhǎng)時(shí)間占用通用處理器的異或操作獨(dú)立出來(lái),由異或?qū)S肁SIC完成此功能,其他操作仍由通用處理器運(yùn)行相應(yīng)的軟件完成?,F(xiàn)在的中低端磁盤陣列常采用這種方式。使用專用的ASIC分擔(dān)所有的異或操作,雖然可以部分減少需要異或操作的磁盤訪問(wèn)時(shí)間,如降級(jí)模式讀操作和磁盤寫(xiě)操作,但新的磁盤操作也必須在前一磁盤操作完成之后才會(huì)啟動(dòng),磁盤操作過(guò)程也是按順序執(zhí)行的,整體的吞吐率仍不是很高。所以這種方式不適合于高端磁盤陣列的需要。
2并行流水線設(shè)計(jì)模型
與其他磁盤接口不同,磁盤陣列中的磁盤接口除了簡(jiǎn)單地完成磁盤的讀寫(xiě)外,還需要完成數(shù)據(jù)塊的邏輯地址到實(shí)際磁盤物理地址的映射和保證數(shù)據(jù)塊在磁盤陣列中可靠地存儲(chǔ)。根據(jù)所有磁盤操作請(qǐng)求完成的特點(diǎn),磁盤接口操作被劃分為4個(gè)子任務(wù),每一個(gè)子任務(wù)由一個(gè)獨(dú)立的模塊來(lái)實(shí)現(xiàn)。在具體實(shí)現(xiàn)時(shí),這些模塊可以在同一芯片內(nèi),也可以在不同芯片中。這4個(gè)模塊分別是:共享緩存操作模塊、異或計(jì)算操作模塊、地址映射模塊和磁盤操作模塊。共享緩存操作模塊根據(jù)給定的共享緩存數(shù)據(jù)塊地址讀寫(xiě)數(shù)據(jù)塊;異或計(jì)算操作模塊是在降級(jí)模式讀磁盤操作和正常模式下磁盤寫(xiě)操作時(shí),完成異或計(jì)算;地址映射模塊主要實(shí)現(xiàn)磁盤數(shù)據(jù)塊的放置策略,將主機(jī)訪問(wèn)磁盤陣列的地址,如邏輯塊地址LBA、邏輯單元號(hào)LUN,轉(zhuǎn)換為實(shí)際的磁盤號(hào)、柱面號(hào)、磁道號(hào)、扇區(qū)號(hào)等;磁盤操作模塊主要是根據(jù)地址映射模塊操作后的結(jié)果完成磁盤的讀寫(xiě),包括相應(yīng)的協(xié)議轉(zhuǎn)換。圖1是同一芯片實(shí)現(xiàn)各模塊的磁盤接口控制器的結(jié)構(gòu)框圖。
實(shí)際上每個(gè)磁盤操作執(zhí)行的這四個(gè)模塊的次序和次數(shù)是不定的。讀磁盤操作的數(shù)據(jù)流方向與寫(xiě)磁盤操作的數(shù)據(jù)流方向是相反的,執(zhí)行這四個(gè)模塊的順序也是相反的。讀寫(xiě)磁盤操作的各模塊執(zhí)行順序如圖2所示。一個(gè)磁盤操作請(qǐng)求只要在其執(zhí)行的個(gè)模塊空閑時(shí)便可啟動(dòng),多個(gè)磁盤操作請(qǐng)求可以重疊的方式被磁盤接口控制器處理。理想情況下,磁盤接口控制器可以同時(shí)處理4個(gè)磁盤操作請(qǐng)求。
3關(guān)鍵問(wèn)題分析
磁盤接口的并行流水線設(shè)計(jì)模型在具體實(shí)現(xiàn)時(shí)有2個(gè)問(wèn)題需要解決:(1)如何控制磁盤操作請(qǐng)求在模塊間執(zhí)行順序和執(zhí)行次數(shù)。因?yàn)樵诰唧w執(zhí)行時(shí)有3種情況:4個(gè)模塊每個(gè)模塊執(zhí)行1次、執(zhí)行部分模塊多次和只執(zhí)行3個(gè)模塊。(2)需要操作的數(shù)據(jù)塊如何在模塊間進(jìn)行傳遞。
3.1任務(wù)通信
要控制一個(gè)磁盤操作請(qǐng)求如何在模塊間進(jìn)行處理,一種有效的方式就是讓每個(gè)模塊都知道這個(gè)磁盤操作請(qǐng)求的具體需求。為此,一個(gè)用來(lái)描述磁盤操作請(qǐng)求的特殊的數(shù)據(jù)結(jié)構(gòu)被引入,其結(jié)構(gòu)如圖3。每一個(gè)磁盤操作請(qǐng)求都有一個(gè)磁盤操作數(shù)據(jù)塊結(jié)構(gòu),磁盤接口控制器預(yù)處理部件每收到一個(gè)來(lái)自控制器上的其他處理器的磁盤操作請(qǐng)求便產(chǎn)生相應(yīng)的操作數(shù)據(jù)塊結(jié)構(gòu),并根據(jù)其操作類型放入相應(yīng)的模塊任務(wù)池中。
每一個(gè)模塊都有一個(gè)任務(wù)池來(lái)存放操作數(shù)據(jù)塊結(jié)構(gòu)。模塊總是從自己的任務(wù)池中取操作數(shù)據(jù)塊結(jié)構(gòu),然后根據(jù)數(shù)據(jù)塊結(jié)構(gòu)中的說(shuō)明進(jìn)行相應(yīng)的處理,處理完成后再根據(jù)數(shù)據(jù)塊結(jié)構(gòu)中的說(shuō)明正確地放入到下一個(gè)模塊的任務(wù)池中。如某個(gè)模塊處理后磁盤操作請(qǐng)求已完成,則該模塊不再向其他模塊傳遞該數(shù)據(jù)塊結(jié)構(gòu),直接將其刪除。這種方式簡(jiǎn)單有效,易于編碼實(shí)現(xiàn)。
3.2緩沖管理
在RAID5中,計(jì)算奇偶校驗(yàn)塊需要同分條中的4個(gè)數(shù)據(jù)塊,因此異或計(jì)算模塊需要一個(gè)較大的緩沖來(lái)存放數(shù)據(jù)塊。其他模塊也至少需要一個(gè)數(shù)據(jù)塊大小的緩沖存放當(dāng)前操作的數(shù)據(jù)塊。一個(gè)雙隊(duì)列的生產(chǎn)者-消費(fèi)者模型(如圖4)被用來(lái)實(shí)現(xiàn)高效緩沖管理。
這2個(gè)隊(duì)列的長(zhǎng)度不是固定的,是根據(jù)每個(gè)操作方向上的請(qǐng)求數(shù)量動(dòng)態(tài)調(diào)整。在圖4中,若讀磁盤操作請(qǐng)求較多則增加緩沖隊(duì)列1的長(zhǎng)度;若寫(xiě)磁盤操作請(qǐng)求較多則增加緩沖隊(duì)列2的長(zhǎng)度。2個(gè)隊(duì)列的總大小總是小于或等于整個(gè)緩沖的大小。每一個(gè)隊(duì)列都是循環(huán)隊(duì)列,生產(chǎn)者總是把新的數(shù)據(jù)塊放到隊(duì)列的尾部;只要該隊(duì)列不為空,消費(fèi)者總是從隊(duì)列的頭部取走數(shù)據(jù)塊。
4磁盤接口控制器系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
4.1應(yīng)用環(huán)境
本控制器應(yīng)用在RAID控制器的系統(tǒng)總線與連接硬盤的SAS總線之間,主要根據(jù)RAID控制器中的主處理器命令進(jìn)行可靠快速的磁盤數(shù)據(jù)塊的讀寫(xiě)。
圖5描述了本控制器典型應(yīng)用環(huán)境。深色部分為本控制器,淺色部分是外部環(huán)境。
從應(yīng)用環(huán)境中可以看出,磁盤接口控制器是連接RAID控制器與硬盤組的橋梁。磁盤接口控制器通過(guò)SAS總線連接多個(gè)硬盤,通過(guò)系統(tǒng)總線(如PCI總線)連接到RAID控制器整個(gè)系統(tǒng)中。
4.2總體結(jié)構(gòu)與各功能模塊
磁盤接口控制器包括5個(gè)大的功能模塊:磁盤命令預(yù)處理模塊、共享緩存操作模塊、地址映射模塊、異或計(jì)算模塊、磁盤操作模塊。由于采用的是FPGA測(cè)試和驗(yàn)證,對(duì)成熟的模塊,如PCI模塊、SATA模塊、DMA模塊直接使用FPGA中的資源。四級(jí)流水的磁盤接口控制器總體結(jié)構(gòu)如圖6。
4.2.1命令預(yù)處理模塊
命令預(yù)處理模塊主要根據(jù)RAID控制器中主處理器的命令決定該命令的操作流程,不同的讀寫(xiě)方式在不同的工作模式下其數(shù)據(jù)流程不一樣。命令預(yù)處理模塊主要包括命令緩沖區(qū)和PLC微處理器。命令緩沖區(qū)主要接收RAID控制器中主處理器發(fā)過(guò)來(lái)的命令,命令包括:2種工作模式命令(正常模式和降級(jí)模式)、2種分條讀寫(xiě)方式(完整分條和部分分條)、磁盤寫(xiě)命令(邏輯塊地址LBA,邏輯塊數(shù))、磁盤讀命令(邏輯塊地址LBA,邏輯塊數(shù))。PLC微處理器是一個(gè)8bitRISC微處理器,也是整個(gè)控制器的,負(fù)責(zé)解析磁盤操作命令和控制命令的整個(gè)執(zhí)行過(guò)程,包括其他4個(gè)功能模塊的任務(wù)分派和協(xié)調(diào)。
4.2.2共享緩存操作模塊
RAID控制器包含有大容量的SDRAM作為磁盤陣列的緩存,所有異或操作的數(shù)據(jù)塊都存放在緩存中。共享緩存操作模塊主要完成緩存數(shù)據(jù)塊的讀寫(xiě),包括PCI總線和讀寫(xiě)控制邏輯。PCI總線使用FPGA芯片自身所帶的邏輯,讀寫(xiě)控制邏輯主要根據(jù)命令預(yù)處理模塊發(fā)過(guò)來(lái)的命令產(chǎn)生相應(yīng)的讀寫(xiě)時(shí)序并解決總線沖突。
4.2.3地址映射模塊
由于RAID控制器中主處理器操作的都是邏輯地址,地址映射模塊完成的是邏輯地址到物理盤號(hào)、柱面號(hào)、扇區(qū)號(hào)的映射。地址映射模塊包括邏輯地址寄存器和物理地址寄存器,并包括一個(gè)地址變換機(jī)構(gòu)。地址變換機(jī)構(gòu)是一個(gè)快速哈希變換機(jī)構(gòu),輸入的邏輯地址通過(guò)快速哈希變換和相應(yīng)的查表獲得實(shí)際的物理地址。
4.2.4異或操作模塊
異或操作模塊是RAID保證數(shù)據(jù)可靠性的基礎(chǔ),主要完成異或計(jì)算。這個(gè)模塊比較簡(jiǎn)單,包括2個(gè)數(shù)據(jù)輸入寄存器和一個(gè)輸出寄存器,所有寄存器的位數(shù)是256bit,異或操作可完成2個(gè)16B數(shù)據(jù)的操作。一個(gè)分條的異或操作通過(guò)多次執(zhí)行異或計(jì)算邏輯來(lái)實(shí)現(xiàn)。
4.2.5磁盤操作模塊
磁盤操作模塊主要完成實(shí)際磁盤的數(shù)據(jù)讀寫(xiě),該模塊通過(guò)SATA總線連接多個(gè)磁盤。該模塊主要包括SATA主控制器和磁盤操作單元,SATA主控制器使用FPGA芯片本身自帶的邏輯,磁盤操作單元是要實(shí)現(xiàn)的邏輯,主要接收和執(zhí)行PLC微處理器發(fā)過(guò)來(lái)的讀寫(xiě)命令,將數(shù)據(jù)從磁盤讀到共享緩沖區(qū)或把共享緩沖區(qū)的數(shù)據(jù)寫(xiě)到對(duì)應(yīng)的磁盤上。
4.3RTL設(shè)計(jì)與實(shí)現(xiàn)
根據(jù)前述的系統(tǒng)結(jié)構(gòu)和各功能模塊,對(duì)本控制器進(jìn)行了RTL設(shè)計(jì)和實(shí)現(xiàn)。這里以復(fù)位控制、輸入控制為例說(shuō)明其實(shí)現(xiàn)過(guò)程。
復(fù)位控制是IC設(shè)計(jì)中一個(gè)基本而重要的問(wèn)題。綜合同步復(fù)位和異步復(fù)位的優(yōu)缺點(diǎn),對(duì)復(fù)位控制電路的設(shè)計(jì)采用“異步復(fù)位,同步撤離”的策略,使用2個(gè)觸發(fā)器級(jí)聯(lián),消除亞穩(wěn)態(tài)的影響。同時(shí),為了濾除異步復(fù)位中毛刺的影響,在復(fù)位端口用一個(gè)二輸入與非門和一個(gè)緩沖器設(shè)計(jì)了濾除毛刺的電路,這樣就可以得到一個(gè)干凈的復(fù)位信號(hào)。
在本控制器的5個(gè)子模塊中都存在數(shù)據(jù)的輸入和輸出。不同的模塊只需要配置不同大小的FIFO。輸入控制的設(shè)計(jì)主要以一個(gè)異步FIFO作為彈性緩沖器,該FIFO的大小是可配置的。另外還有一部分邏輯用來(lái)生成輸出數(shù)據(jù)有效指示信號(hào),這個(gè)指示信號(hào)采集到的FIFO讀信號(hào)有效時(shí)即為有效。
5FPGA測(cè)試與實(shí)驗(yàn)結(jié)果
經(jīng)過(guò)RTL設(shè)計(jì)、仿真及相應(yīng)的EDA驗(yàn)證,實(shí)現(xiàn)了流水線的磁盤接口控制器并對(duì)該控制器進(jìn)行了FPGA測(cè)試。測(cè)試過(guò)程中,使用的測(cè)試平臺(tái)板為XilinxML505測(cè)試平臺(tái),主芯片為Virtex-5FPGA,在不加SATA多路器的情況下可同時(shí)連接4個(gè)SATA硬盤。
為了進(jìn)行性能分析和比較,除了流水線的磁盤接口控制器外,同樣基于Virtex-5FPGA并使用MIPSCPU核的磁盤接口控制器也被實(shí)現(xiàn)?;贛IPSCPU核的磁盤接口控制器在Virtex-5FPGA上可以很方便地實(shí)現(xiàn),因?yàn)閂irtex-5FPGA本身自帶MIPSCPU核和SATA控制器。只需要實(shí)現(xiàn)專用異或邏輯及在MIPSCPU核實(shí)現(xiàn)地址映射和讀寫(xiě)控制即可。
測(cè)試過(guò)程中使用的磁盤為高速SATA磁盤,對(duì)應(yīng)的磁盤參數(shù)見(jiàn)表1。這里只對(duì)磁盤接口控制器進(jìn)行測(cè)試,對(duì)磁盤陣列控制器中主處理器產(chǎn)生的磁盤操作命令通過(guò)模擬產(chǎn)生。命令到達(dá)的方式服從泊松分布,工作為正常工作模式,讀寫(xiě)方式為隨機(jī)產(chǎn)生。在讀磁盤請(qǐng)求數(shù)與寫(xiě)磁盤請(qǐng)求數(shù)相等的情況下,其實(shí)驗(yàn)結(jié)果如圖7所示。由圖可知,在任何磁盤請(qǐng)求到達(dá)率情況下,基于流水線的磁盤接口控制器的吞吐率都比基于MIPS的吞吐率高。在其他讀寫(xiě)請(qǐng)求比率的條件下,也可以得到類似
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 云南大學(xué)《醫(yī)學(xué)人文素養(yǎng)》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東勞動(dòng)職業(yè)技術(shù)學(xué)院《學(xué)前教育名著選讀》2023-2024學(xué)年第二學(xué)期期末試卷
- 河南財(cái)政金融學(xué)院《英語(yǔ)精讀1》2023-2024學(xué)年第一學(xué)期期末試卷
- 燕京理工學(xué)院《ERP沙盤綜合模擬實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 喀什職業(yè)技術(shù)學(xué)院《金融發(fā)展與實(shí)踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 濮陽(yáng)科技職業(yè)學(xué)院《英語(yǔ)寫(xiě)作1》2023-2024學(xué)年第一學(xué)期期末試卷
- 邯鄲幼兒師范高等??茖W(xué)?!朵摻Y(jié)構(gòu)設(shè)計(jì)基本原理》2023-2024學(xué)年第二學(xué)期期末試卷
- 江西師范大學(xué)科學(xué)技術(shù)學(xué)院《音樂(lè)與兒童歌曲賞析四》2023-2024學(xué)年第二學(xué)期期末試卷
- 貴陽(yáng)職業(yè)技術(shù)學(xué)院《法醫(yī)學(xué)理論》2023-2024學(xué)年第一學(xué)期期末試卷
- 家政公司家政服務(wù)合同
- ISO9001-2015質(zhì)量手冊(cè)和全套程序文件
- 重大危險(xiǎn)源識(shí)別表
- 《上海市奉賢區(qū)小區(qū)機(jī)動(dòng)車停放管理工作調(diào)查報(bào)告》4300字
- 申請(qǐng)結(jié)婚報(bào)告表實(shí)用文檔
- 《廣東省普通高中學(xué)生檔案》模板
- 高職院校與區(qū)域經(jīng)濟(jì)協(xié)調(diào)發(fā)展研究
- YY/T 1492-2016心肺轉(zhuǎn)流系統(tǒng)表面涂層產(chǎn)品通用要求
- YS/T 1028.3-2015磷酸鐵鋰化學(xué)分析方法第3部分:磷量的測(cè)定磷鉬酸喹啉稱量法
- JJF 1104-2003國(guó)家計(jì)量檢定系統(tǒng)表編寫(xiě)規(guī)則
- GB/T 665-2007化學(xué)試劑五水合硫酸銅(Ⅱ)(硫酸銅)
- GB/T 17891-1999優(yōu)質(zhì)稻谷
評(píng)論
0/150
提交評(píng)論