SoC存儲子系統(tǒng)系統(tǒng)級性能優(yōu)化技術(shù)研究
發(fā)布時間:2020-11-10 04:56
嵌入式系統(tǒng)經(jīng)過十幾年的迅速發(fā)展,從簡單的電子表、電子計算器到現(xiàn)在高數(shù)據(jù)吞吐量和密集計算的個人數(shù)字助理、移動式多媒體終端,它所包含的產(chǎn)品出現(xiàn)了顯著變化。然而,隨著處理器速度與存儲器訪問延遲的差距不斷增大,面向多媒體應用的SoC芯片中存儲子系統(tǒng)的訪問延遲已經(jīng)成為系統(tǒng)性能的主要瓶頸之一。因此,如何設(shè)計和優(yōu)化存儲子系統(tǒng),便成了SoC芯片設(shè)計過程中必須要解決的一個問題。本文采用MP3解碼作為目標應用,以Scratch-Pad存儲器、外部存儲器接口和片外存儲器三者構(gòu)建的存儲子系統(tǒng)作為目標架構(gòu),提出了一套在芯片設(shè)計階段進行存儲子系統(tǒng)設(shè)計和性能優(yōu)化的方法。 本文基于SystemC語言構(gòu)建了一套時鐘周期級精度的SoC存儲子系統(tǒng)性能仿真模型,作為目標應用的軟硬件仿真環(huán)境和系統(tǒng)級優(yōu)化技術(shù)的性能評估手段。與實際電路仿真結(jié)果相比,該模型仿真精度最大誤差僅為萬分之二,仿真速度超過實際電路仿真的800倍。針對片外存儲器的物理結(jié)構(gòu),本文在外部存儲器接口的設(shè)計中提出了兩套緩存機制,組緩存機制和Cache機制,用于降低片外存儲器的平均訪問延遲;并使用性能仿真模型進行緩存組織結(jié)構(gòu)的設(shè)計空間探索,確定針對目標應用的各種最佳設(shè)計參數(shù);谝酝鵖cratch-Pad存儲器內(nèi)存布局優(yōu)化技術(shù)的分析,本文提出了一套基于關(guān)系矩陣的優(yōu)化技術(shù)。它根據(jù)控制流圖將程序劃分成一系列結(jié)點,使用性能仿真模型的統(tǒng)計信息計算出各結(jié)點對性能的影響,建立關(guān)系矩陣描述結(jié)點之間的關(guān)系,然后根據(jù)改進的分配算法選擇合適結(jié)點放入Scratch-Pad存儲器。該技術(shù)通過減少程序執(zhí)行過程中片外存儲器的訪問次數(shù)來縮短程序執(zhí)行時間,并在Scratch-Pad存儲器容量大小和性能優(yōu)化能力之間建立了聯(lián)系。在芯片設(shè)計階段,它用于探索在滿足性能要求前提下針對目標應用的Scratch-Pad存儲器最佳容量。最后,本文分析了Scratch-Pad存儲器優(yōu)化技術(shù)和外部存儲器接口緩存設(shè)計兩者之間的性能影響,并總結(jié)出兩者組合的最佳設(shè)計參數(shù)。 本文通過上述研究,提出了一套SoC存儲子系統(tǒng)高層性能仿真模型,并基于Scratch-Pad存儲器優(yōu)化技術(shù)和外部存儲器接口緩存設(shè)計,探索出針對目標應用的存儲子系統(tǒng)最佳設(shè)計方案。實驗結(jié)果表明,當系統(tǒng)時鐘為50MHz時,最佳設(shè)計方案由兩部分組成:外部存儲器接口緩存設(shè)計采用128行二路組關(guān)聯(lián)映射統(tǒng)一Cache(帶4級寫操作緩存),Scratch-Pad存儲器容量為4096字節(jié)。兩者總?cè)萘繛?192字節(jié)。該方案有效降低了存儲子系統(tǒng)訪問延遲對系統(tǒng)性能的影響,目標應用運行速度顯著提高,可達原來四倍。最后,對整篇論文的研究內(nèi)容進行了總結(jié),并指出本課題進一步發(fā)展的方向。
【學位單位】:東南大學
【學位級別】:博士
【學位年份】:2006
【中圖分類】:TP333
【部分圖文】:
圖 2-3 基于 ISS 封裝實現(xiàn)的系統(tǒng)仿真模型將 ISS 連接到總線封裝接口(Bus Wrapper)來實現(xiàn)原理。其中,ISS 完全嵌入 SystemC 的模擬環(huán)境,用 ISS 和外部硬件模型之間的信息橋梁,用于將 ISS 輸級精度的總線操作,以及將外部硬件模型中返回的信,整個處理器內(nèi)核被描述成一個模塊,它的內(nèi)部包含出 Wrapper 進程。輸入 Wrapper 進程和輸出 Wrappe于通道實現(xiàn))相連。ISS 進程和這兩個 Wrapper 進程需要向某存儲器地址寫數(shù)據(jù)時,ISS 進程設(shè)置存儲器訪等待狀態(tài)的輸出 Wrapper 進程,輸出 Wrapper 進程將,然后通過總線通訊模型經(jīng)通道發(fā)送給相應的硬件模設(shè)置一個表示訪問完成的信號,激活 ISS 使之繼續(xù)運er 進程也按照上述過程進行操作,不同的是,它還需 SystemC 模擬環(huán)境中的做法避免了進程間通信(IPC ISS 和總線封裝接口來構(gòu)建處理器內(nèi)核模型,但 ISS件模型的通信必須要通過 IPC 機制來完成,極大降低
這類方法[41-43]通過將 ISS 連接到總線封裝接口(Bus Wrapper)來實現(xiàn)處理器內(nèi)核模型。圖了這類方法的基本原理。其中,ISS 完全嵌入 SystemC 的模擬環(huán)境,用于實現(xiàn)硬件指令的;總線封裝接口是 ISS 和外部硬件模型之間的信息橋梁,用于將 ISS 輸出的信息(比如存)轉(zhuǎn)換成時鐘周期級精度的總線操作,以及將外部硬件模型中返回的信息傳遞給 ISS。在具體實現(xiàn)過程中,整個處理器內(nèi)核被描述成一個模塊,它的內(nèi)部包含三個進程:ISS 進 Wrapper 進程和輸出 Wrapper 進程。輸入 Wrapper 進程和輸出 Wrapper 進程都與外部硬件總線通訊模型(基于通道實現(xiàn))相連。ISS 進程和這兩個 Wrapper 進程之間通過信號傳遞信ISS 正在解釋的指令需要向某存儲器地址寫數(shù)據(jù)時,ISS 進程設(shè)置存儲器訪問信號,然后陷入等號將激活一直處于等待狀態(tài)的輸出 Wrapper 進程,輸出 Wrapper 進程將這個寫操作封裝成(Bus Transaction),然后通過總線通訊模型經(jīng)通道發(fā)送給相應的硬件模型。等到該操作完輸出 Wrapper 進程設(shè)置一個表示訪問完成的信號,激活 ISS 使之繼續(xù)運行。同理,當 ISS 據(jù)時,輸入 Wrapper 進程也按照上述過程進行操作,不同的是,它還需要將獲得的數(shù)據(jù)傳。這種將 ISS 集成到 SystemC 模擬環(huán)境中的做法避免了進程間通信(IPC)過多的問題。以往究[44-46]中也是通過 ISS 和總線封裝接口來構(gòu)建處理器內(nèi)核模型,但 ISS 仍作為一個單獨的運行,它和其它硬件模型的通信必須要通過 IPC 機制來完成,極大降低了仿真效率。但是 ISS 為基礎(chǔ)構(gòu)建處理器模型的方法存在著仿真精度的問題。因為,ISS 只能完成指令的功能仿能提供更多的時間信息用于系統(tǒng)性能評估。所以必須對 ISS 進行改進,不能只在指令這一仿真,需要更進一步地模擬組成指令的操作,從而提高整個系統(tǒng)模型的精度。
第二章 存儲子系統(tǒng)性能仿真和優(yōu)化技術(shù)綜述體系結(jié)構(gòu)描述語言實現(xiàn)這類方法使用體系結(jié)構(gòu)描述語言(Architecture Description Language,ADL)來構(gòu)建系統(tǒng)級處理器模型。nML[47],ISDL[48],EXPRESSION[49]和 LISA[50, 51]都屬于典型的 ADL,其中 LISA 被廣泛用于基于 SystemC 的處理器建模[52-56]。如圖 2-4 所示,基于 LISA 實現(xiàn)的處理器模型被封裝在一個SystemC 模塊里,然后通過端口和 SystemC 的 TLM 總線模型連接。為了使 LISA 模型和 SystemC 模型交互運行,必須將 LISA 端口的應用程序接口(API)映射到 SystemC 的 TLM 接口。這種接口映射使得通訊接口的設(shè)計更加復雜并且降低了系統(tǒng)模型的仿真速度。為了提高仿真精度,LISA 處理器認為每一條指令都是由一系列微操作組成的,這種細分使得它可以更加精確地模擬指令執(zhí)行過程中處理器和總線之間的行為。但是,由圖 2-4 可見,基于 LISA 實現(xiàn)的處理器模型本身已經(jīng)非常復雜,內(nèi)部已經(jīng)包含了總線和存儲器的模型,使得這種方式構(gòu)建的系統(tǒng)模型結(jié)構(gòu)更加復雜。ARM 公司與 AXYS Design Automation, Inc.(LISA 語言的提出者 Vojin Zivojnovic 是該公司的主席和 CEO)基于 LISA 合作開發(fā)了 ARM 系列處理器的模型。這些模型可以封裝成 SystemC 接口、融入 SystemC TLM 構(gòu)建的仿真環(huán)境之中。如圖 2-5 所示,ARM 公司電子系統(tǒng)級(ESL)設(shè)計工具中時鐘周期級精度模型(CycleAccurate Model)的性能仿真精度可達 99%左右[57]。本文設(shè)計實現(xiàn)的 ARM 處理器模型與基于 LISA 實現(xiàn)的方法類似,通過將指令細分成一系列原子操作,獲得時鐘周期級的性能仿真精度。兩者的區(qū)別在于,本文的模型完全使用 SystemC 實現(xiàn),并沒有借助 LISA 環(huán)境的支持。這使得整個系統(tǒng)模型的框架結(jié)構(gòu)非常清晰,而且接口簡單。實驗表明本?
【引證文獻】
本文編號:2877502
【學位單位】:東南大學
【學位級別】:博士
【學位年份】:2006
【中圖分類】:TP333
【部分圖文】:
圖 2-3 基于 ISS 封裝實現(xiàn)的系統(tǒng)仿真模型將 ISS 連接到總線封裝接口(Bus Wrapper)來實現(xiàn)原理。其中,ISS 完全嵌入 SystemC 的模擬環(huán)境,用 ISS 和外部硬件模型之間的信息橋梁,用于將 ISS 輸級精度的總線操作,以及將外部硬件模型中返回的信,整個處理器內(nèi)核被描述成一個模塊,它的內(nèi)部包含出 Wrapper 進程。輸入 Wrapper 進程和輸出 Wrappe于通道實現(xiàn))相連。ISS 進程和這兩個 Wrapper 進程需要向某存儲器地址寫數(shù)據(jù)時,ISS 進程設(shè)置存儲器訪等待狀態(tài)的輸出 Wrapper 進程,輸出 Wrapper 進程將,然后通過總線通訊模型經(jīng)通道發(fā)送給相應的硬件模設(shè)置一個表示訪問完成的信號,激活 ISS 使之繼續(xù)運er 進程也按照上述過程進行操作,不同的是,它還需 SystemC 模擬環(huán)境中的做法避免了進程間通信(IPC ISS 和總線封裝接口來構(gòu)建處理器內(nèi)核模型,但 ISS件模型的通信必須要通過 IPC 機制來完成,極大降低
這類方法[41-43]通過將 ISS 連接到總線封裝接口(Bus Wrapper)來實現(xiàn)處理器內(nèi)核模型。圖了這類方法的基本原理。其中,ISS 完全嵌入 SystemC 的模擬環(huán)境,用于實現(xiàn)硬件指令的;總線封裝接口是 ISS 和外部硬件模型之間的信息橋梁,用于將 ISS 輸出的信息(比如存)轉(zhuǎn)換成時鐘周期級精度的總線操作,以及將外部硬件模型中返回的信息傳遞給 ISS。在具體實現(xiàn)過程中,整個處理器內(nèi)核被描述成一個模塊,它的內(nèi)部包含三個進程:ISS 進 Wrapper 進程和輸出 Wrapper 進程。輸入 Wrapper 進程和輸出 Wrapper 進程都與外部硬件總線通訊模型(基于通道實現(xiàn))相連。ISS 進程和這兩個 Wrapper 進程之間通過信號傳遞信ISS 正在解釋的指令需要向某存儲器地址寫數(shù)據(jù)時,ISS 進程設(shè)置存儲器訪問信號,然后陷入等號將激活一直處于等待狀態(tài)的輸出 Wrapper 進程,輸出 Wrapper 進程將這個寫操作封裝成(Bus Transaction),然后通過總線通訊模型經(jīng)通道發(fā)送給相應的硬件模型。等到該操作完輸出 Wrapper 進程設(shè)置一個表示訪問完成的信號,激活 ISS 使之繼續(xù)運行。同理,當 ISS 據(jù)時,輸入 Wrapper 進程也按照上述過程進行操作,不同的是,它還需要將獲得的數(shù)據(jù)傳。這種將 ISS 集成到 SystemC 模擬環(huán)境中的做法避免了進程間通信(IPC)過多的問題。以往究[44-46]中也是通過 ISS 和總線封裝接口來構(gòu)建處理器內(nèi)核模型,但 ISS 仍作為一個單獨的運行,它和其它硬件模型的通信必須要通過 IPC 機制來完成,極大降低了仿真效率。但是 ISS 為基礎(chǔ)構(gòu)建處理器模型的方法存在著仿真精度的問題。因為,ISS 只能完成指令的功能仿能提供更多的時間信息用于系統(tǒng)性能評估。所以必須對 ISS 進行改進,不能只在指令這一仿真,需要更進一步地模擬組成指令的操作,從而提高整個系統(tǒng)模型的精度。
第二章 存儲子系統(tǒng)性能仿真和優(yōu)化技術(shù)綜述體系結(jié)構(gòu)描述語言實現(xiàn)這類方法使用體系結(jié)構(gòu)描述語言(Architecture Description Language,ADL)來構(gòu)建系統(tǒng)級處理器模型。nML[47],ISDL[48],EXPRESSION[49]和 LISA[50, 51]都屬于典型的 ADL,其中 LISA 被廣泛用于基于 SystemC 的處理器建模[52-56]。如圖 2-4 所示,基于 LISA 實現(xiàn)的處理器模型被封裝在一個SystemC 模塊里,然后通過端口和 SystemC 的 TLM 總線模型連接。為了使 LISA 模型和 SystemC 模型交互運行,必須將 LISA 端口的應用程序接口(API)映射到 SystemC 的 TLM 接口。這種接口映射使得通訊接口的設(shè)計更加復雜并且降低了系統(tǒng)模型的仿真速度。為了提高仿真精度,LISA 處理器認為每一條指令都是由一系列微操作組成的,這種細分使得它可以更加精確地模擬指令執(zhí)行過程中處理器和總線之間的行為。但是,由圖 2-4 可見,基于 LISA 實現(xiàn)的處理器模型本身已經(jīng)非常復雜,內(nèi)部已經(jīng)包含了總線和存儲器的模型,使得這種方式構(gòu)建的系統(tǒng)模型結(jié)構(gòu)更加復雜。ARM 公司與 AXYS Design Automation, Inc.(LISA 語言的提出者 Vojin Zivojnovic 是該公司的主席和 CEO)基于 LISA 合作開發(fā)了 ARM 系列處理器的模型。這些模型可以封裝成 SystemC 接口、融入 SystemC TLM 構(gòu)建的仿真環(huán)境之中。如圖 2-5 所示,ARM 公司電子系統(tǒng)級(ESL)設(shè)計工具中時鐘周期級精度模型(CycleAccurate Model)的性能仿真精度可達 99%左右[57]。本文設(shè)計實現(xiàn)的 ARM 處理器模型與基于 LISA 實現(xiàn)的方法類似,通過將指令細分成一系列原子操作,獲得時鐘周期級的性能仿真精度。兩者的區(qū)別在于,本文的模型完全使用 SystemC 實現(xiàn),并沒有借助 LISA 環(huán)境的支持。這使得整個系統(tǒng)模型的框架結(jié)構(gòu)非常清晰,而且接口簡單。實驗表明本?
【引證文獻】
相關(guān)博士學位論文 前1條
1 蔣湘濤;編譯期SPM管理方法及功耗模型研究[D];中南大學;2009年
本文編號:2877502
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/2877502.html
最近更新
教材專著