片上多處理器系統(tǒng)中存儲器訪問模擬計算的研究_第1頁
片上多處理器系統(tǒng)中存儲器訪問模擬計算的研究_第2頁
片上多處理器系統(tǒng)中存儲器訪問模擬計算的研究_第3頁
片上多處理器系統(tǒng)中存儲器訪問模擬計算的研究_第4頁
片上多處理器系統(tǒng)中存儲器訪問模擬計算的研究_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

片上多處理器系統(tǒng)中存儲器訪問模擬計算的研究

1給藥系統(tǒng)的總線結構隨著半主導技術向深度和亞洲大米和納米時代的轉變,以多處理器多系統(tǒng)(pmssc)為未來系統(tǒng)芯片的必然發(fā)展趨勢。根據(jù)不同的網(wǎng)絡連接方式,mpssc可分為兩類:傳統(tǒng)的基于總線連接的mpssc和基于網(wǎng)絡的mpssc。第一種方法是通過總線方式實現(xiàn)ip內核之間的通信,通過多總線和層次化總線等技術將片劑中的處理器芯整合到更多的芯片中,從而實現(xiàn)高度復雜的多芯連接成一個非常復雜的內核互聯(lián)。后者是近年來提出的一個新概念,將計算機網(wǎng)絡技術移植到芯片設計中。換句話說,多處理器的核心通過包交換器進行片內通信,并為系統(tǒng)提供延遲通信機制。這種片內通信形式被稱為片上網(wǎng)絡(noc)??偩€結構是現(xiàn)有芯片架構的通信脈絡,然而隨著MPSoC規(guī)模的增大,總線結構將成為芯片設計的瓶頸:總線地址資源不能隨著計算資源的增加而無線擴展;串行訪問機制導致了通信的瓶頸;龐大的時鐘網(wǎng)絡與總線的功耗將占據(jù)總功耗的絕大部分.目前,NoC是解決大規(guī)模MPSoC片上通信問題的有效途徑.與基于總線的方式相比,NoC通過使用網(wǎng)絡互連的方式進行通信,有效地降低了通信功耗,緩解了帶寬爭奪,提高了通信的可靠性,簡化了硬件體系結構,具有更高的靈活性,更強的可擴展性,能夠在深亞微米工藝下,避免互連線過長所帶來的信號的衰減,而且能夠從本質上帶來系統(tǒng)的并行性,提高系統(tǒng)的吞吐率.片上通訊性能的提高必將帶動MPSoC整體處理能力的提高.然而,采用NoC方式實現(xiàn)片上資源互聯(lián)的MPSoC對存儲器的訪問性能并未隨之提高,從而使存儲器的訪問性能成為MPSoC性能進一步提升的瓶頸.因此,提高存儲器的訪問性能對MPSoC性能的進一步提升至關重要.由于片上網(wǎng)絡有效地解決了片上系統(tǒng)的通信問題,現(xiàn)在它已經(jīng)成為學術界和工業(yè)界越來越普遍關注的熱點.但是片上網(wǎng)絡的研究,目前尚處于不成熟的階段.尤其是對片上網(wǎng)絡存儲器訪問性能方面的研究非常有限.針對NoC的研究開展目前主要依賴于模擬器,雖然學術界和工業(yè)界有很多進行NoC研究的模擬器,但是這些模擬工具均不能滿足NoC下對存儲器訪問操作進行模擬的需求.針對上述問題,本文設計并實現(xiàn)了一個能夠對NoC下存儲器訪問操作進行模擬的模擬器,旨在為存儲器訪問性能方面的研究提供一個良好的實驗平臺.該模擬器可以對各類訪問集(隨機訪問集、指定Bank的訪問集等)的訪問性能進行模擬和評估,從而為在NoC下存儲器訪問性能的研究提供支持.2noxim片上網(wǎng)絡模型Nostrum是一個旨在研究NoC體系結構的工程,該工程主要關注從物理層到應用層的通信問題.2002年依托該工程開發(fā)了基于SystemC語言的NostrumNoC模擬器(NNSE).用戶通過該模擬器提供的可視化界面可以根據(jù)自身需求選擇網(wǎng)絡拓撲結構的大小,路由策略以及通信類型等,完成這些設置之后,一個片上網(wǎng)絡模型將被建立.最終的模擬結果將通過各種各樣的圖來顯示.Nirgam是一個使用SystemC開發(fā)的基于離散事件的周期精確的模擬器.它為片上網(wǎng)絡設計方面的實驗提供了大量的支持(包括路由算法及多種拓撲結構下的應用).它提供給用戶可以設置的參數(shù)如拓撲結構的大小,時鐘頻率,緩存的深度,片的大小,虛擬通道的個數(shù)等.Noxim是一個使用systemC語言開發(fā)的模擬器,它為用戶提供了一個命令行接口來設置片上網(wǎng)絡的參數(shù),這些參數(shù)包括網(wǎng)絡拓撲結構,緩存空間,路由算法,選擇策略,包注入率等,用戶通過設置這些參數(shù)可以自定義需要的片上網(wǎng)絡模型.該模擬器可以給出片上網(wǎng)絡的某些方面的估計值,如吞吐量,延時和功耗.這些估計值可以通過兩種形式傳遞給用戶,分別是平均值和每一次通信的具體值,用戶可以根據(jù)自身的需要來選擇其中一種形式.另外,通過該模擬器,用戶還可以獲取其他的信息,包括收到的包或片的總數(shù),全局的平均吞吐量和全局的最大和最小的延遲等.Simics+GEMS能提供全系統(tǒng)模擬的功能,通過修改這個模擬器中的一些文件可以自定義需要的片上網(wǎng)絡模型.如network_file是關于NoC的拓撲結構配置方面的文件,修改這個文件中的參數(shù)可以更改網(wǎng)絡的拓撲結構,類似這樣的文件很多,通過更改這些文件可以構造用戶真正需要的片上網(wǎng)絡模型.這個模擬器平臺的模擬效果比之前提到的三種模擬工具的效果更準確,但是它也有很多缺陷,如使用起來過于復雜,而且運行速度很慢,在雙核3.0GHz的PC上只能同時運行具有4個處理器的片上網(wǎng)絡,較難滿足在NoC下對存儲器訪問操作進行模擬的需求.以上這些模擬器或者不具備對存儲器訪問操作進行模擬的功能如Nostrum,Nirgam和Noxim;或者雖然具備這樣的功能但是卻存在使用過于復雜、運行速度很慢等缺點(如simics+GEMS),這就意味著現(xiàn)有的NoC模擬器都不滿足對存儲器訪問操作進行模擬的需求.由于這些現(xiàn)有的模擬器工具有其特定的設計目的,并不是針對存儲器訪問操作的模擬,對現(xiàn)有的這些模擬器進行修改和擴展使其支持對存儲器訪問操作的模擬,將需要大量的二次開發(fā)工作,同時可能導致比較低的模擬性能.綜上所述,設計并實現(xiàn)一個在NoC下針對存儲器訪問操作進行模擬和分析的工具,對片上網(wǎng)絡存儲器訪問性能方面的研究有非常重要的意義.3模擬模型本文設計的模擬器將模擬存儲器和片上網(wǎng)絡兩部分內容.本節(jié)將分別介紹這兩部分的模型.3.1連續(xù)多次訪問的時間延遲DRAM是目前最為常見的系統(tǒng)內存,所以本文的存儲器模型建立在該存儲器基礎之上.圖1描述了現(xiàn)代DRAM的三維(Bank、Row和Column)結構.每個DRAM包含若干個相互獨立的Bank.每個bank中包含一個二維結構的存儲矩陣和一個用來緩存行操作數(shù)據(jù)的Rowbuffer.每個存儲訪問操作分為三個部分:首先選擇待訪問的bank;之后該bank中待訪問的Row加載到Rowbuffer中;最后在Rowbuffer中對指定的Column進行讀寫操作.這三部分對應的基本指令分別是PRE(Precharge)、ACT(Activate)和R/W(Read/Write).本文中采用的是DDRⅡ333的時間參數(shù),如表1所示.以上三個基本指令需要的時間分別為tRP、tRCD和CL/tDQSS.DRAM包含若干個相互獨立的Bank,不同Bank間可并行的進行操作,例如當bank0被訪問的時候,如果有bank1的訪問到達,該訪問可以同時被并行執(zhí)行.然而存儲器利用率的提高仍然受限于訪問序列的順序.Rixner提出的存儲器訪問調度是將DRAM操作重新排序以達到提高存儲器訪問率的目的.例如,圖2(見下頁)是四個訪問操作分別在沒有DRAM訪問調度器和有DRAM訪問調度器情況下的執(zhí)行過程.這四個讀訪問分別是Read1(RA0,BA0,CA0),Read2(RA1,BA0,CA0),Read3(RA0,BA1,CA0),Read4(RA1,BA1,CA0).如圖2(a)所示,在沒有調度器的情況下,這四個存儲器訪問是按照read1,read2,read3,read4順序執(zhí)行的,每個訪問操作均需要ACT操作、R/W操作、PRE三個操作總共12個Cycle,對于4個存儲器訪問操作總共需要48個Cycle.在有DRAM調度器的情況下,調度器把這四個訪問的順序改變?yōu)?Read1,Read3,Read2,Read4,調度結果如圖2(b)所示.,這樣就大大降低了存儲器的訪問延遲時間.所以,相比于第一種沒有DRAM調度器的情況,有調度器的情況下,同樣的四個訪問更快地得到執(zhí)行,連續(xù)兩次訪問的延時減小了.本模擬器以表1為基礎計算出各種不同情況下連續(xù)兩次訪問之間的時間延遲,其結果對比如表2所示.其中h(n)是時刻n發(fā)生的訪問,h(n+1)是時刻n+1發(fā)生的訪問.3.2關于網(wǎng)絡模型的描述NoC的設計空間非常復雜,但并不是所有的設計技術都與存儲器訪問性能相關,所以本文所實現(xiàn)的模擬器僅對以下四種設計技術進行建模.3.2.1-dmesh網(wǎng)絡拓撲結構片上網(wǎng)絡的拓撲結構定義了網(wǎng)絡內節(jié)點與鏈路的布局和互連方式,它對于網(wǎng)絡的時延、吞吐率、面積、容錯、功耗等性能有至關重要的影響,進一步還影響了網(wǎng)絡中的路由策略、映射方法等.本文中所使用的拓撲結構是2-Dmesh網(wǎng)絡拓撲結構,該類網(wǎng)絡拓撲結構在NoC研究中應用非常廣泛,因為它部署簡單,結構規(guī)整,可擴展性強,所以便于用戶設計簡單高效的路由算法等.一個2-Dmesh網(wǎng)絡拓撲結構是由N2個路由器構成,每一個路由器通過link和4個或者少于4個的鄰居路由器相連.任務在IPcore上執(zhí)行,IPcore和路由器直接相連.為了簡便起見,本文不區(qū)分IPcore和與IPcore直接相連的路由器.在不同IPcore上的任務通過連續(xù)的路由器進行通信.3.2.2包交換技術包交換技術關注的是數(shù)據(jù)包是怎樣從輸入通道交換到輸出通道的.采用的包交換技術不同,所產(chǎn)生的延遲也不同,網(wǎng)絡的延遲與包交換技術直接相關.本文中所使用的包交換技術是蟲洞交換技術,在該技術中,每一個數(shù)據(jù)包被“切”成片,在每個路由器中,利用頭片選定路由路徑,數(shù)據(jù)片緊跟其后,此時路由器不再對數(shù)據(jù)片進行操作,只是按照頭片的路徑進行轉發(fā),最后,由尾片釋放剛才選用的路徑.蟲洞交換一個主要的優(yōu)點是:當頭片在一個路由器中被阻塞時,它并不需要將整個數(shù)據(jù)包全部緩存在頭片所到達的路由器中,而是各片就地緩存在當前路由器.因此,蟲洞交換技術不僅能夠減小路由過程中每一級的存儲轉發(fā)延時,還能夠減小對緩存空間的使用.3.2.3源路由策略路由策略決定數(shù)據(jù)包從源地址開始選擇哪一條路徑到目的地址,所以有效的路由算法對NoC通信性能的影響是至關重要的.本文中所使用的路由策略是源路由策略,源路由在路由過程中根據(jù)頭片的路由路徑信息進行路由.用戶可以以離線的方式使用多種路由算法計算出路由路徑,然后將其寫入頭片中.這樣本文所實現(xiàn)的模擬器可以支持多種路由算法.3.2.4sdram-awell流控策略在NoC領域,流量控制主要是指采用一些有效的方法來管理通信路徑上競爭共享資源如link或buffer等的包的數(shù)量,從而避免緩存的溢出和網(wǎng)絡中包的丟失,起到平滑網(wǎng)絡通信量的作用.本文除了支持常用的輪詢流控策略外還支持SDRAM-aware流控策略.SDRAM-aware流控策略是目前唯一基于存儲器訪問調度策略對存儲器訪問性能進行優(yōu)化的NoC設計技術,它能有效地提高存儲器訪問性能,降低存儲器訪問延遲.SDRAM-aware流控策略主要為多個爭用同一個通道的包解決通道分配的問題.該流控策略的基本思想是,當存在多個片爭用相同通道時,SDRAM-aware流控策略選擇一個與前一次使用該通道的包Bank沖突最小、訪問時間延遲最小的包獲得該共享通道的使用權,被選擇的包將通過分配給它的通道前進到下個路由節(jié)點,同時那些沒有獲得需要通道而不能前進的包繼續(xù)等待下一次選擇的到來.經(jīng)過SDRAM-aware流控策略的仲裁,最后訪問集會被選擇排列成具有較小存儲器訪問延時的序列到達存儲器子系統(tǒng).本文后續(xù)章節(jié)均基于SDRAM-aware流控策略進行說明.本文設計的模擬器針對每種設計技術實現(xiàn)了不同的設計模型,選擇這些設計模型是因為它們或者具有應用的普遍性,如2Dmesh拓撲、蟲洞交換技術、源路由,或者具有針對性,如SDRAM-aware流控策略是目前唯一基于存儲器訪問調度策略對存儲器訪問性能進行優(yōu)化的NoC設計技術.為了使該模擬器具有更好的擴展性和可用性,設計時特別采用了模塊化的設計方法,即各功能模塊之間是相互獨立的單元,這樣即使用戶有新的應用需求,只需要對該模擬器相應的模塊單元進行改動即可滿足要求,這樣能有效地避免大量的二次改動的工作.4sort-關于訪問本文設計的模擬器是一個基于離散時間的模擬器,在模擬器的模擬過程中,隨著新的模擬步驟的發(fā)生,時間都會前進一個固定的間隔(時間單元),系統(tǒng)狀態(tài)會根據(jù)這個新的模擬步驟而更新.圖3顯示了這個模擬引擎的狀態(tài)轉換過程.模擬器首先進入Initialize狀態(tài),在這個狀態(tài)中時間被設置為0.該狀態(tài)主要負責為用戶提供一個初始設置的可視化界面.該界面向用戶提供了三種對訪問集系統(tǒng)進行初始設置的形式:完全手動設置、完全隨機生成和半手動半隨機生成.用戶可以根據(jù)需要選擇其中一種進行設置.當用戶完成對訪問集系統(tǒng)的基本信息設置后,一個片上網(wǎng)絡模型被建立,系統(tǒng)會將用戶設置的信息以文本的形式保存下來,然后進入prepare狀態(tài).在prepare狀態(tài)中模擬器判斷訪問是否全部執(zhí)行結束,如果是,進入sortaccesses狀態(tài);否則進入check狀態(tài).具體的判斷流程是通過兩個步驟來完成的,首先需要判斷是否所有的訪問都已經(jīng)進入到存儲器子系統(tǒng)的等待隊列中,如果存在沒有到達存儲器子系統(tǒng)的等待隊列的訪問,那么進入check狀態(tài);否則繼續(xù)判斷存儲器子系統(tǒng)的等待隊列是否為空,如果是,那么就表示訪問集的所有訪問操作都已經(jīng)執(zhí)行完畢,模擬器進入sortaccesses狀態(tài),否則進入check狀態(tài).在check狀態(tài)中,系統(tǒng)將檢查正在處理的訪問是否和其他的訪問存在競爭共享資源的沖突,如果存在這種沖突,那么模擬器進入arbitrate狀態(tài),否則模擬器會根據(jù)正在處理的訪問的通信路徑將該包傳遞到下一個路由器節(jié)點,然后模擬器進入update狀態(tài).在arbitrate狀態(tài)中,模擬器根據(jù)SDRAM-aware流控策略對存在競爭共享資源的包進行仲裁,該流控策略會選擇一個與前一次使用該通信鏈路的包Bank沖突最小、訪問時間延遲最小的包,使其獲得該共享通信鏈路的使用權.仲裁完成后,獲勝的包將通過分配給它的通信鏈路前進到下個路由器節(jié)點,而競爭失敗的包將繼續(xù)等待下一次仲裁的到來,接著模擬器進入update狀態(tài).在update狀態(tài)中,模擬器將遍歷整個訪問集,記錄每個訪問在當前時間片里的執(zhí)行情況,并把這些信息存儲到指定的trace文件中,供給returnresult狀態(tài)中可視化訪問集存儲器訪問調度回放模塊,同時更改該訪問的其它信息,包括執(zhí)行時間等;如果在當前時間片里存在訪問并沒有前進,那么還需要修改該訪問的等待時間.執(zhí)行完這個操作之后,模擬器進入到advancetime狀態(tài)中去.在advancetime狀態(tài)中,模擬器前進一個時間單位,接著模擬器進入到prepare狀態(tài)中去.在sortaccesses狀態(tài)中,模擬器根據(jù)訪問執(zhí)行時間的大小來對訪問集進行重排序.在computetime狀態(tài)中,模擬器根據(jù)表2中所列出的連續(xù)兩次訪問之間的時間延遲來計算訪問集的執(zhí)行延時,接著模擬器進入到returnresult狀態(tài).在returnresult狀態(tài)中,模擬器會對以上執(zhí)行過程和計算結果進行可視化顯示,直觀地告訴用戶該訪問集的存儲器訪問操作模擬結果;同時提供可視化的訪問集模擬過程回放的功能.5模擬器的實現(xiàn)5.1模擬器結構圖4顯示了該模擬器的結構圖.如圖4所示,系統(tǒng)分為5個功能模塊,各個功能模塊所要完成的工作如下:5.1.1基于用戶的信息生成系統(tǒng)該模塊為用戶提供可視化的訪存需求定制功能,包括如下3個子模塊:完全手動生成子模塊:模擬器系統(tǒng)的所有初始信息都是用戶手動設置的,包括訪問集信息、處理器和存儲器的位置等;完全隨機生成子模塊:模擬器將根據(jù)用戶對系統(tǒng)設置的一些約束條件,來隨機生成滿足這些約束的初始信息;半手動半隨機生成子模塊:用戶可以根據(jù)需要選擇對某些初始信息進行手動設置,而其他信息均由模擬器隨機生成.5.1.2sdram-awell網(wǎng)絡該模塊是模擬器設計的核心部分,它將完成片上網(wǎng)絡中基于SDRAM-aware路由策略的存儲器訪問模擬功能,并記錄每個訪存需求在每個時間片里的執(zhí)行情況.5.1.3路由路徑更改模塊提供訪問的路由路徑變化的功能.該模塊與模塊(1)對應,用戶重新設置存儲器和各個處理器的位置,并相應的改變存儲器訪問的路由路徑.5.1.4模擬結果顯示的模塊提供模擬器模擬結果顯示的功能.該模塊會對系統(tǒng)模擬的結果以文本的形式進行顯示,直觀的告訴用戶系統(tǒng)的模擬結果及總的訪問延時.5.1.5讀存器訪問模擬模塊提供可視化的訪問集模擬過程回放的功能.該模塊通過讀存儲器訪問模擬模塊所寫的TRACE文件來分析訪問集系統(tǒng)的訪問過程,并在可視化的界面中以動畫的形式將這個過程顯示出來.5.2存儲訪問模擬模塊的設計存儲訪問模擬模塊是該模擬器設計的核心,下面將給出該模塊的詳細設計,主要包括3個方面的內容:存儲訪問模擬模塊的類圖;存儲訪問模擬模塊的過程圖;串行語言對并行結構的模擬.5.2.1類重調度存儲訪問模塊圖5顯示了存儲器訪問模擬模塊中的類圖.如圖5所示,類TaskG由類Router_LinkedList、類Path_LinkedList和其他的一些成員變量組合而成,該類主要用來存放訪問的信息.其中,類Router_LinkedList會以鏈表的形式來自動存儲訪問所需的通信路由節(jié)點;類Path_LinkedList通過讀入訪問所需的通信路由節(jié)點鏈表來確定該訪問所需的通信路由鏈路.類Nodecollide由類TaskG、類Path_Node和其他的一些成員變量組合而成,該類主要用來存放每個路由鏈路的信息.下面是對存儲訪問模擬模塊中類功能的具體介紹.1)類Router_LinkedList.該類會以鏈表的形式來自動存儲訪存需求所需的通信路由節(jié)點.2)類Path_LinkedList.該類通過讀入訪存需求所需的通信路由節(jié)點鏈表來確定該訪存需求所需的通信路由鏈路,并且所生成的通信路由鏈路的格式為“源路由節(jié)點→目的路由節(jié)點”.例如:某一訪存需求所需的通信路由節(jié)點為:1、2、3、4,該類讀入這些路由節(jié)點之后,確定出此訪存需求所需的通信路由路徑中源路由節(jié)點為1,目的路由節(jié)點為4,并且其所需的通信路由鏈路分別是1→2、2→3、3→4,即其所需的通信路由路徑為1→2→3→4.3)類TaskG.該類主要用來存放訪存需求的信息,例如訪存需求的優(yōu)先級、讀寫方式、Bank號、Row號、等待時間wi_time、所需的通信路由路徑及其在每一個執(zhí)行的時間片內所需占用的通信路由鏈路等.4)類Nodecollide.該類主要用來存放每個路由鏈路的信息,例如該路由鏈路的源和目的節(jié)點分別是多少、該鏈路的占用情況、當前時刻需要占用該路由鏈路的訪存需求、當前時刻最有可能獲得該鏈路的訪存需求及其在最近一次爭用時被分配到該鏈路的訪存需求.5.2.2低沖突機制的執(zhí)行圖6顯示了存儲訪問模擬模塊的過程圖.下面將結合圖6詳細講述系統(tǒng)是如何實現(xiàn)存儲訪問模塊的.如圖6所示,訪問在片上網(wǎng)絡中的位置主要有兩種:到達非存儲器節(jié)點和到達存儲器節(jié)點.無論訪問在何種位置,都有可能與其他訪問發(fā)生競爭共享資源的沖突.沖突主要表現(xiàn)為兩種形式:一種是路由鏈路的沖突,即在同一個時間片內多個訪問爭用同一個鏈路;另一種是源節(jié)點的沖突,即在同一時間片內使用不同鏈路的多個訪問要經(jīng)由同一個路由節(jié)點處理.當訪問未到達存儲器節(jié)點時,兩種沖突都有可能發(fā)生;當訪問到達存儲器節(jié)點時,只可能發(fā)生源節(jié)點的沖突,本文對存儲訪問的模擬以訪問在不同位置時分別進行了設計;另外由于訪問在不同位置時都需要進行記錄、更新操作,對于該操作本文進行了集中設計.1)如圖6所示,模擬器為每條路由鏈路都設置了一個等待訪問集(用TaskG類型數(shù)組存儲),用來存放當前時刻要占用該路由鏈路的所有訪問.在每個時間片里,模擬器首先讀取每個訪問的currPtr指針,然后把各個訪問分配到相應的路由鏈路的等待訪問集中;接著,根據(jù)模擬器采用的流控策略,分別對每條路由鏈路上存在沖突的訪問集進行抉擇,最后求出有可能獲得該鏈路資源的訪問may1_ace.在這個步驟完成之后,模擬器要處理的就是源節(jié)點的沖突.模擬器在處理完路由鏈路的沖突后,會將所有的路由鏈路根據(jù)源節(jié)點的不同劃分開來,并把同源鏈路的may1_ace組成一系列新的集合,這些集合類似于每條路由鏈路的等待訪問集;接著模擬器從每個集合中查找優(yōu)先級最大的訪問may2_ace,然后根據(jù)網(wǎng)絡狀態(tài)判斷它們是否可以前進,如果是,那么它們就可以前進到其路徑上下一個路由節(jié)點,同時釋放前一時刻它們所占用的路由節(jié)點的緩存空間,最后模擬器要對這些執(zhí)行情況進行記錄,并且更新訪問集和網(wǎng)絡狀態(tài)的信息.2)如圖6所示,當訪問到達存儲器節(jié)點時,模擬器為每個存儲器節(jié)點設置了一個等待隊列(本模擬器可以處理訪問集對多個存儲器有訪問請求的情況),用來存儲到達該存儲器直接相連的路由節(jié)點的訪問集;接著模擬器根據(jù)所采用的流控策略,求出在當前時刻每個存儲器應該處理的訪問,同時標記這些訪問的狀態(tài)為已獲得執(zhí)行;然后模擬器從隊列中移除這些訪問,并更新每個隊列的訪問集大小.當所有訪問都獲得執(zhí)行之后,模擬器根據(jù)所訪問的存儲器的不同重新對訪問集進行劃分,接著根據(jù)訪問執(zhí)行時間的大小分別對訪問集進行重排序,然后根據(jù)表2中所列出的連續(xù)的兩次訪問之間的時間延遲來計算各個訪問集的執(zhí)行延時,最后計算得到整個訪問集總的時間延時.3)無論訪問在何種位置,在每個時鐘周期的末尾,模擬器都要記錄訪問周期內的執(zhí)行情況,同時更新網(wǎng)絡狀態(tài)及訪問集信息.可擴展標記語言(ExtensibleMarkupLanguage,XML)提供了一種標記內容的方式,可以添加關于數(shù)據(jù)用途的信息.信息使用XML存儲之后,稱為解析器的應用程序就能夠可靠地提取相關信息,并根據(jù)不同的需要處理.本模擬器選用XML文件作為信息傳輸介質,模擬器進行的存儲訪問模擬的中間過程以及模擬訪問的結果都將會存儲在指定的XML文檔中,供給可視化模擬過程回放模塊,以此來進行模擬器模擬訪問集執(zhí)行過程的回放.5.2.3多源異構信息的監(jiān)控本模擬器采用面向對象語言C++實現(xiàn),由于串行化編程不支持對并行結構的模擬,因此在該模擬器的設計過程中存在一個技術難點,即如何使用串行化的編程語言來模擬周期內片上網(wǎng)絡系統(tǒng)的并行運行.片上網(wǎng)絡的并行性主要體現(xiàn)在系統(tǒng)中有多個存儲器和處理器以及相當數(shù)量的并行訪問,它們的操作應該可以并行進行并且不相互干擾.但是直接使用串行化編程可能造成訪問執(zhí)行情況與真實系統(tǒng)不符合等現(xiàn)象的發(fā)生,這主要是由于訪問對網(wǎng)絡狀態(tài)(如路由器的緩存信息)等捕獲不及時而導致的.為了避免這些錯誤的發(fā)生,對網(wǎng)絡狀態(tài)和訪問集信息等的更新工作必須在下一個周期到來前完成,以保證在下一個執(zhí)行周期內反饋的是及時而又準確的信息.圖7(見下頁)顯示了存儲器訪問在一個時鐘周期內的執(zhí)行過程,下面將結合圖7來詳細描述一下模擬器是如何解決串行語言模擬并行行為的.如圖7所示,存儲器訪問在一個時鐘周期內主要完成4個操作:有訪問待執(zhí)行;流控策略仲裁;獲勝的訪問前進或被執(zhí)行;更新訪問集信息和網(wǎng)絡狀態(tài).當一個新的時鐘周期開始時,模擬器首先獲取從前一時刻反饋過來的訪問集信息,這些信息包括訪問當前所在的位置,下一個時刻要占用的路由鏈路等,它們被存儲在一個文件中,該文件主要用來記錄存儲器訪問模擬模塊中各個訪問在每個時間片里的執(zhí)行情況;接著模擬器要根據(jù)網(wǎng)絡狀態(tài)對訪問集進行流控策略的仲裁,進而決策出當前時鐘周期內可以直接(即根據(jù)當前網(wǎng)絡狀態(tài)和訪問集的信息能夠直接判斷得出可以前進或執(zhí)行)或間接(即由于得到直接可以前進的訪問釋放它們當前時刻所占用的緩存空間而得以前進或執(zhí)行)獲得前進或執(zhí)行的訪問;然后根據(jù)決策結果獲勝的訪問就會前進到下一個路由節(jié)點的緩存中或者被執(zhí)行,并且釋放前一時刻它們所占用的路由節(jié)點的緩存空間,這樣就可以為需要該緩存空間的訪問提供前進的機會;最后模擬器會根據(jù)執(zhí)行結果更新網(wǎng)絡狀態(tài)和訪問集信息,這些信息會在下一個時鐘周期到來時反饋給模擬器.6實驗與結果分析6.1usb配置論文中的模擬器工具是運行在VisualC++6.0平臺上,圖8顯示了該模擬器的操作界面.目前工業(yè)界和學術界現(xiàn)有的片上網(wǎng)絡模擬器只有Simics+GEMS能提供對存儲器訪問進行模擬的功能,但是Simics+GEMS模擬器運行速度很慢,在雙核3.0GHz的PC上只能同時運行具有4個處理器的片上網(wǎng)絡,相對于Simics+GEMS,本文設計的模擬器具有高效性,如圖9所示,本模擬器在4×4的網(wǎng)絡中對64KB的訪問集進行模擬,所需的執(zhí)行時間不足半分鐘.同時該模擬器所使用的與存儲器訪問有關的參數(shù)均來自于實際的存儲設備(如DDR133、DDR200、DDRII266、DDRII400、DDRIII533、DDRIII800等),這為該模擬器的準確性提供了有效的保證.6.2測試內容即5.2.本單元使用該模擬器工具對大量不同類型的訪問集進行存儲器訪問模擬,并通過對模擬結果的分析,給出存儲器訪問性能優(yōu)化的NoC設計建議.測試數(shù)據(jù)的特點:測試均基于4*4的mesh網(wǎng)絡.網(wǎng)絡中包含1個共享的存儲器(該存儲器包含4個Bank)和15個處理器.存儲器和處理器的位置均分為三種情況:角、邊、中間.測試內容共分為兩部分,一部分是隨機訪問集的測試,另一部分是指定Bank的訪問集的測試.存儲器每種放置分別對應10種不同的處理器放置,這在隨機訪問集和指定Bank的訪問集的測試中都有體現(xiàn).6.2.1不同位置對處理器訪問性能的影響在大多數(shù)系統(tǒng)中處理器對存儲器的訪問無固定規(guī)律,所以本小節(jié)采用隨機生成的訪問集,從而達到與真實系統(tǒng)最大程度的逼近.該實驗通過對隨機訪問集的測試來分析存儲器和處理器的位置對存儲器的訪問性能的影響.隨機訪問集的隨機主要是指訪問集的訪存參數(shù)如訪存需求的讀寫模式、行地址等都是隨機生成的.存儲器的位置共分為角、邊、中間三種,存儲器每種位置分別對應10種不同的處理器放置.為了分析存儲器和處理器的位置對存儲器訪問性能的影響,測試時除了由于存儲器和處理器位置的改變導致的訪問集的訪問路徑的變化之外,訪問集的其他信息均保持不變.對隨機訪問集的模擬結果如上頁圖10所示.從圖10的測試結果可以看出:1)存儲器在不同位置對訪問性能并無影響.如圖10示,存儲器在角、邊、中間時,存儲器的訪問性能并無明顯區(qū)別,說明來自不同路徑上的訪問請求的多少并不影響訪問性能.2)處理器位置的改變并不影響存儲器的訪問性能.由于本節(jié)采用的處理器訪問集為隨機生成,即使處理器的位置發(fā)生改變存儲器的訪問序列仍然是大量隨機訪問的排列,所以如圖10示在訪問集是隨機生成的情況下,處理器所在位置對存儲器的訪問性能無影響.6.2.2跨路徑的選擇由于存儲器訪問延時主要由Bank沖突引起,當訪問集完全隨機生成的情況下,很難避免Bank沖突;對于存儲器所在的路由結點,假設在系統(tǒng)運行的每一時刻該點的多條輸入路徑上都存在著對多個Bank的訪問,即存儲器結點的SDRAM-aware路由器總能夠選擇到一個與前一次訪問不發(fā)生Bank沖突的訪問,則該系統(tǒng)發(fā)生Bank訪問沖突的可能性就會極大地降低,存儲器的訪問性能也能夠得到進一步的提升.本節(jié)為了模擬以上的假設,對每個處理器所使用的Bank進行了指定,并通過處理器

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論