基于ZSP400的C程序優(yōu)化方法研究
發(fā)布時(shí)間:2020-06-09 17:48
【摘要】: 本文首先給出超標(biāo)量處理器的關(guān)鍵技術(shù)—流水線和超標(biāo)量,然后深入討論了ZSP400的架構(gòu)特征及各功能模塊的工作原理。在此基礎(chǔ)上分析ZSP400應(yīng)用C程序設(shè)計(jì)的特殊性,說明程序優(yōu)化的目的、意義和可行性,提出C程序優(yōu)化的評(píng)估標(biāo)準(zhǔn),并給出一般優(yōu)化流程。通過改進(jìn)C程序結(jié)構(gòu)并結(jié)合ZSP400的架構(gòu)特點(diǎn)提出基于C語言的程序優(yōu)化方法,利用這些方法編寫簡(jiǎn)單的示例程序,用ZViewIDE分別對(duì)優(yōu)化前后的示例程序進(jìn)行編譯與調(diào)試,通過比較二者函數(shù)統(tǒng)計(jì)信息來判定示例程序性能是否提高,從而驗(yàn)證優(yōu)化方法的正確性與可行性。最后應(yīng)用這些優(yōu)化方法對(duì)離散余弦變換(DCT, Discrete Cosine Transform)C實(shí)現(xiàn)程序進(jìn)行了優(yōu)化,使程序性能獲得了明顯的提高,進(jìn)一步驗(yàn)證了優(yōu)化方法的正確性和可行性。本文所有仿真結(jié)果都是在ZViewIDE C編譯器自動(dòng)優(yōu)化級(jí)選項(xiàng)設(shè)為最高(即-03級(jí))的情況下得到的。
【圖文】:
圖 3.1 基于 ZSP400 的 SoC 系統(tǒng)框圖所有指令都從 IU 中去取,然后被送至 PCU,PCU 對(duì)指令進(jìn)行分組,處理和算術(shù)單元結(jié)果旁路,使流水線操作同步,同時(shí)處理來自 ICU 的load 和 store 指令通過 DU 執(zhí)行,而算術(shù)和邏輯操作則被送到 EU,操被寫回到操作數(shù)寄存器陣列(ORF, Operand Register File)中的寄存器。D水線中出現(xiàn)的諸如地址和數(shù)據(jù)斷點(diǎn)這樣的事件,DEU 主要是通過外部來控制。3.2 指令單元(IU)IU 由指令緩存、指令預(yù)取器、分支預(yù)測(cè)邏輯和指令分配器構(gòu)成。指令緩存排列從指令存儲(chǔ)器中取出的指令,用于減少指令存儲(chǔ)器功耗證指令緩存飽和,并使流水線停頓最少。分支預(yù)測(cè)邏輯使流水線刷新指令分配器總是從指令緩存中取 4 條指令并進(jìn)行解碼。分配器每個(gè)周
次被 load 指令調(diào)用時(shí),數(shù)據(jù)預(yù)取器從數(shù)據(jù)存儲(chǔ)器中取出兩個(gè)緩存行緩存中并建立數(shù)據(jù)鏈。P400 支持 3 個(gè)數(shù)據(jù)鏈接寄存器或 3 組離散的連續(xù)數(shù)據(jù)流。一旦數(shù)據(jù),這 3 組數(shù)據(jù)任一個(gè)的連續(xù)操作數(shù)的訪問不會(huì)招致寄存器 load 懲罰于 load 指令每個(gè)周期可以從數(shù)據(jù)緩存中讀取 4 個(gè) 16 位操作數(shù)或者數(shù),而數(shù)據(jù)緩存每個(gè)周期又可從數(shù)據(jù)存儲(chǔ)器取出 64 位的一個(gè)緩存行與消耗率正好相匹配。然而,數(shù)據(jù)預(yù)取器每周期只能為一個(gè)數(shù)據(jù)鏈通常就需要在建立序列內(nèi)預(yù)取兩個(gè)緩存行,以確保 ZSP400 不會(huì)用完數(shù)據(jù)。而,如果一個(gè)數(shù)據(jù)鏈的第一個(gè)操作數(shù)排列在緩存行的起始位置,,那行不必立即取用,因?yàn)橄乱粋(gè) 32 位的操作數(shù)已經(jīng)位于同一個(gè)緩存行器填充緩存的速度總可以比機(jī)器消耗鏈中數(shù)據(jù)的速度快,這樣,ZS數(shù)據(jù)鏈接建立時(shí)節(jié)省一個(gè)周期。了給數(shù)據(jù)緩存寫入兩個(gè)緩存行所需要的建立懲罰之外,數(shù)據(jù)鏈接建形緩沖器的邊界還會(huì)招致一個(gè)周期的額外懲罰。
【學(xué)位授予單位】:西安電子科技大學(xué)
【學(xué)位級(jí)別】:碩士
【學(xué)位授予年份】:2009
【分類號(hào)】:TP368.1
本文編號(hào):2705037
【圖文】:
圖 3.1 基于 ZSP400 的 SoC 系統(tǒng)框圖所有指令都從 IU 中去取,然后被送至 PCU,PCU 對(duì)指令進(jìn)行分組,處理和算術(shù)單元結(jié)果旁路,使流水線操作同步,同時(shí)處理來自 ICU 的load 和 store 指令通過 DU 執(zhí)行,而算術(shù)和邏輯操作則被送到 EU,操被寫回到操作數(shù)寄存器陣列(ORF, Operand Register File)中的寄存器。D水線中出現(xiàn)的諸如地址和數(shù)據(jù)斷點(diǎn)這樣的事件,DEU 主要是通過外部來控制。3.2 指令單元(IU)IU 由指令緩存、指令預(yù)取器、分支預(yù)測(cè)邏輯和指令分配器構(gòu)成。指令緩存排列從指令存儲(chǔ)器中取出的指令,用于減少指令存儲(chǔ)器功耗證指令緩存飽和,并使流水線停頓最少。分支預(yù)測(cè)邏輯使流水線刷新指令分配器總是從指令緩存中取 4 條指令并進(jìn)行解碼。分配器每個(gè)周
次被 load 指令調(diào)用時(shí),數(shù)據(jù)預(yù)取器從數(shù)據(jù)存儲(chǔ)器中取出兩個(gè)緩存行緩存中并建立數(shù)據(jù)鏈。P400 支持 3 個(gè)數(shù)據(jù)鏈接寄存器或 3 組離散的連續(xù)數(shù)據(jù)流。一旦數(shù)據(jù),這 3 組數(shù)據(jù)任一個(gè)的連續(xù)操作數(shù)的訪問不會(huì)招致寄存器 load 懲罰于 load 指令每個(gè)周期可以從數(shù)據(jù)緩存中讀取 4 個(gè) 16 位操作數(shù)或者數(shù),而數(shù)據(jù)緩存每個(gè)周期又可從數(shù)據(jù)存儲(chǔ)器取出 64 位的一個(gè)緩存行與消耗率正好相匹配。然而,數(shù)據(jù)預(yù)取器每周期只能為一個(gè)數(shù)據(jù)鏈通常就需要在建立序列內(nèi)預(yù)取兩個(gè)緩存行,以確保 ZSP400 不會(huì)用完數(shù)據(jù)。而,如果一個(gè)數(shù)據(jù)鏈的第一個(gè)操作數(shù)排列在緩存行的起始位置,,那行不必立即取用,因?yàn)橄乱粋(gè) 32 位的操作數(shù)已經(jīng)位于同一個(gè)緩存行器填充緩存的速度總可以比機(jī)器消耗鏈中數(shù)據(jù)的速度快,這樣,ZS數(shù)據(jù)鏈接建立時(shí)節(jié)省一個(gè)周期。了給數(shù)據(jù)緩存寫入兩個(gè)緩存行所需要的建立懲罰之外,數(shù)據(jù)鏈接建形緩沖器的邊界還會(huì)招致一個(gè)周期的額外懲罰。
【學(xué)位授予單位】:西安電子科技大學(xué)
【學(xué)位級(jí)別】:碩士
【學(xué)位授予年份】:2009
【分類號(hào)】:TP368.1
【引證文獻(xiàn)】
相關(guān)碩士學(xué)位論文 前3條
1 岳文標(biāo);基于ZSP500的G.729語音編解碼算法研究與實(shí)現(xiàn)[D];西安電子科技大學(xué);2012年
2 何曾毅;基于ZSP400的VoIP音頻編解碼器設(shè)計(jì)[D];西安電子科技大學(xué);2012年
3 萬俊維;數(shù)字集群通信協(xié)議DMR信道編解碼技術(shù)的研究[D];北京郵電大學(xué);2013年
本文編號(hào):2705037
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/2705037.html
最近更新
教材專著