freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

集成電路工程畢業(yè)論文設(shè)計(jì)-簇狀高性能數(shù)字信號處理器控制與存取關(guān)鍵技術(shù)研究-資料下載頁

2025-06-07 12:04本頁面
  

【正文】 存儲(chǔ)器( ROM)和隨機(jī) 訪問 存儲(chǔ)器 [26]( RAM)。 只讀存儲(chǔ)器只能進(jìn)行讀操作,不可以寫入,存儲(chǔ)的數(shù)據(jù)永久不可改變。按照功能可以分為可編程只讀存儲(chǔ)器( PROM)、可擦除可編程只讀存儲(chǔ)器( EPROM)以及電子可擦除可編程只讀存儲(chǔ)器( EEPROM)。 隨機(jī)訪問存儲(chǔ)器既能讀取數(shù)據(jù)也能寫入數(shù)據(jù),通過電信號完成讀寫操作。但是 RAM 具有易失性只能暫時(shí)存儲(chǔ)數(shù)據(jù)。 RAM 分為靜態(tài)( SRAM)和動(dòng)態(tài)( DRAM)兩類。動(dòng)態(tài)隨機(jī)存儲(chǔ)器通過 MOS 電容充放電來存儲(chǔ)數(shù)據(jù),通過電容是否有電荷來表示邏輯電平 1 或 0。因?yàn)殡娙輹?huì)漏電,所以動(dòng)態(tài)隨機(jī)存儲(chǔ)器需要刷新來保持?jǐn)?shù)據(jù)存儲(chǔ)。靜態(tài)隨機(jī)存儲(chǔ)器采用觸發(fā)器的邏輯門結(jié)構(gòu)存儲(chǔ)數(shù)據(jù),因此只有在供電情況下才能保存數(shù)據(jù)。 DRAM 存儲(chǔ)單元較為簡單,占用的面積比 SRAM 要小,因此上海交通大學(xué)碩士學(xué)位論文 7 成本較低。 SRAM 速度要比 DRAM 快。對于存儲(chǔ)系統(tǒng)而言,高速緩存通常采用SRAM 作為存儲(chǔ)介質(zhì)以實(shí)現(xiàn)更快的速度,一般高速緩存的頻率與內(nèi)核頻率一致。而片外 主 存儲(chǔ)器采用 DRAM 作為存儲(chǔ)介質(zhì),實(shí)現(xiàn)更大容量成本更低的存儲(chǔ)器。一般片外存儲(chǔ)器的工作頻率與總線頻率一致。 存儲(chǔ)層次結(jié)構(gòu) 現(xiàn)代計(jì)算機(jī)系統(tǒng)中存儲(chǔ)系統(tǒng)的地位越來越重要。在多媒體處理以及科學(xué)運(yùn)算等復(fù)雜數(shù)字信號處理應(yīng)用背景下,對于存儲(chǔ)數(shù)據(jù)量提出了更高的要求。 與此同時(shí)處理器和存儲(chǔ)器速度上差距不斷增大。為此將存儲(chǔ)系統(tǒng)進(jìn)行分層次劃分形成存儲(chǔ)層次結(jié)構(gòu)。 如圖 21 所示,越靠近處理器的存儲(chǔ)器速度越快 ,容量越小。遠(yuǎn)離處理器的存儲(chǔ)器速度越慢容量越大。層次化存儲(chǔ)系統(tǒng)目的是讓整個(gè)計(jì)算機(jī)系統(tǒng)的訪存速度達(dá)到盡可能的快。 寄 存 器L 1 C a c h e字地 址P r o c e s s o r地 址 C a c h e 塊L 2 C a c h e數(shù) 據(jù) 總 線地 址 總 線M a i n M e m o r y 圖 2 1 存儲(chǔ)層次結(jié)構(gòu) 1Hierarchical Memory Structure 集中式與 分布式寄存器 層次化的存儲(chǔ)結(jié)構(gòu) 有利于合理化的將存儲(chǔ)系統(tǒng)進(jìn)行分配。寄存器是最靠近處理器的存儲(chǔ)器, 隨著處理器內(nèi)部結(jié)構(gòu)不斷復(fù)雜化, 由 VLIW 控制 的 多個(gè)功能單元并行執(zhí)行的形式出現(xiàn) 。同時(shí) 單指令 多數(shù)據(jù)( SIMD)的執(zhí)行方式用單條指令同時(shí)廣播給多個(gè)運(yùn)算單元執(zhí)行相同的任務(wù)。 處理器對于寄存器帶寬和容量產(chǎn)生了更高的要求,要求大量的本地寄存器文件 , 在保證寄存器文件容量、面積和功耗的前提上海交通大學(xué)碩士學(xué)位論文 8 下,提高核心級存儲(chǔ)帶寬。這就要求合理有效的組織本地寄存器文件。 單指令多數(shù)據(jù)( SIMD)方式執(zhí)行的多核陣列處理器將總共 有 N 個(gè)運(yùn)算單元( ALU)分成 C個(gè)分組,每個(gè)分組稱為一個(gè)運(yùn)算簇( Cluster),每個(gè)運(yùn)算簇包含 N/C 個(gè) ALU。如圖 22 所示, SIMD 運(yùn)算簇的本地寄存器文件可以分為集中 式和分布式兩種結(jié)構(gòu)。 圖 2 2 單指令多數(shù)據(jù)運(yùn)算簇寄存器文件結(jié)構(gòu) 2 SIMD Cluster Register File 如圖 23 所示,對于單個(gè)寄存器單元而言,其面積與端口數(shù) p 和讀出放大器的高 h 和寬 w 相關(guān),與 (p+w)?(p+h)成比例。當(dāng)讀寫端口較多時(shí)可以將 h 和 w 忽略,大致認(rèn)為寄存器文件的面積與 p2R 成正比 ,其中 R 為總共寄存器數(shù)量, p 為總端口數(shù)。 多個(gè)寄存器組構(gòu)成寄存器文件,根據(jù) Scott Rixner 的研究 [27],集中式寄存器文件面積與 (N/C)3成正比。在分布式 寄存器文件 結(jié)構(gòu) 中,每個(gè) ALU 的輸入都有專享的寄存器文件,這些分布的寄存器文件通過 2(N/C)*(N/C)的互聯(lián)交叉開關(guān)聯(lián)系在一起。分布式寄存器文件的面積主要由這些交叉開關(guān)決定,因此與 (N/C)2 成正比。以上所說的面積都是針對單個(gè)運(yùn)算簇( Cluster)而言。根據(jù) Scott Rixner 進(jìn)一步的研究,集中式寄存器和分布式寄存器文件在功耗方面的特性也與之類似。 分布式寄存器文件的結(jié)構(gòu)以額外的互聯(lián)交叉開關(guān)為代價(jià),降低了面積和功耗。數(shù)據(jù)被 不同 ALU 都要使用時(shí),必須在多個(gè)寄存器文件中保存副本,因此分布式寄存器文件需要寄存器單元數(shù)量要多于集中式寄存器文件。但是在大規(guī)模的簇狀陣列處理器中,這樣的取舍是值得的。 上海交通大學(xué)碩士學(xué)位論文 9 圖 2 3 寄存器單元原理圖與版圖 3 Schematic and Layout of a Register Cell 雖然分布式寄存器文件具有面積和功耗的雙重優(yōu)勢,但是從控制來說會(huì)有難度。原本集中式寄存器文件只需通過多個(gè)讀寫端口 直接通過讀寫地址進(jìn)行操作。采用了分布式的結(jié)構(gòu)需要額外增加交叉開關(guān),確保數(shù)據(jù)可以在不同的寄存器文件間交互。與此同時(shí),分布式的結(jié)構(gòu)對于 VLIW 流水線產(chǎn)生的寄存器讀寫控制信號的寄存和分配 也產(chǎn)生了難度。本文第三章將著重解決分布式寄存器文件結(jié)構(gòu)造成的分處理通道 流水線寫回控制問題。 SDRAM基本原理 片上的存儲(chǔ)器具有較高的效率和速度,然而對于大批量密集運(yùn)算,大容量的存儲(chǔ)設(shè)備必不可少。片外 SDRAM 因?yàn)閮r(jià)格低廉,密度高,讀寫速度快成為片外存儲(chǔ)器的極佳選擇。 上海交通大學(xué)碩士學(xué)位論文 10 SDRAM 單元概述 動(dòng)態(tài)存儲(chǔ)器 ( DRAM) 的基本存儲(chǔ)電路以電荷 形式存儲(chǔ)信息,電荷存儲(chǔ)在 MOS電容上。電容充電后表示邏輯高電平,放電后表示邏輯低電平。根據(jù)使用的三極管數(shù)量不同,有單管型、三管型、四管型和六管型。其中單管型結(jié)構(gòu)簡單、開銷小因此應(yīng)用廣泛。 單管型 DRAM 單元結(jié)構(gòu) [28]如圖 24 所示,由一個(gè)晶體管 T 和一個(gè)電容 CS構(gòu)成 CD是數(shù)據(jù)線上的分布電容,行選通線連接三極管的柵極。寫操作時(shí)行選通線置 1,晶體管 T 處于導(dǎo)通狀態(tài),數(shù)據(jù)由列選通線存入電容 CS中。讀操作時(shí)行選通線置 1,存儲(chǔ)在 CS上的電荷 通過晶體管 T 輸出到數(shù)據(jù)線上。 行 選 信 號數(shù)據(jù)線C dC s 圖 2 4 DRAM 單元結(jié)構(gòu)圖 4 DRAM Cell Structure 當(dāng)行選通信號為低時(shí),晶體管 T 關(guān)斷。但不可避免的存在漏電流,這樣存儲(chǔ)信息只能保持較短的時(shí)間,通常是若干毫秒。為了避免信息丟失,必須不斷刷新每個(gè)存儲(chǔ)單元中的信息。 同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器( SDRAM)是 DRAM 中應(yīng)用最為廣泛的高容量高速存儲(chǔ)器。與傳統(tǒng)的 DRAM 相比, SDRAM 在存儲(chǔ)體的組織方式和對外操作上做了重大改進(jìn)。同步是指存 儲(chǔ)器的時(shí)鐘頻率與總線頻率相同 ,并且內(nèi)部的控制命令和數(shù)據(jù)傳輸都已該時(shí)鐘為基準(zhǔn)。 如圖 25 所示, SDRAM 內(nèi)部為一個(gè)二維的存儲(chǔ)陣列。訪問時(shí)先打開一個(gè)行( Row),再指定一個(gè)列( Colum),就可以找到指定的單元格,這是芯片內(nèi)部尋址的基本原理。這樣的一個(gè)存儲(chǔ)陣列稱之為邏輯塊( Bank)。由于成本控制以及技術(shù)工藝等原因, SDRAM 不能做成一個(gè) Bank 的結(jié)構(gòu),而且由于 SDRAM 工作原理限制,單一的 Bank 會(huì)造成嚴(yán)重的尋址沖突,降低內(nèi)存效率。因此必須將 SDRAM 內(nèi)部分割成多個(gè) Bank 的結(jié)構(gòu),一般采用 2 個(gè)或者 4 個(gè) Bank。實(shí)際尋址過程中,先確定 Bank 然后在 Bank 中進(jìn)行相應(yīng)的行地址與列地址的尋址。 SDRAM 的地址也上海交通大學(xué)碩士學(xué)位論文 11 就分為 Bank 地址、行地址與列地址。行地址與列地址分時(shí)復(fù)用,有效減少了地址線數(shù)量,提高硬件效率。對于每一個(gè) Bank 中基本存儲(chǔ)單元的容量是若干 bit,對于 SDRAM 而言這就是芯片的位寬。一般比較常見的有 32bit、 64bit 等。 M e m o r y A r r a yR O W D E C O D E RColumn DecoderR o w A d d r e s s B u f f e rColumn Address Buffer 圖 2 5 SDRAM Bank 結(jié)構(gòu)圖 5 SDRAM Bank Structure 控制器訪問 SDRAM 的過程中, SDRAM 所有輸入輸出信號均在時(shí)鐘的上升沿被采樣或者輸出。也就是 SDRAM 的地址信號、數(shù)據(jù)信號和控制信號都是上升沿驅(qū)動(dòng)的。這樣可以使得 SDRAM 的操作完全在系統(tǒng)時(shí)鐘的控制下進(jìn)行,與系統(tǒng)的高速操作嚴(yán)格同步。在 SDRAM 的相應(yīng)過程中比如行列地址選擇、地址譯碼等,控制器可以照常進(jìn)行其他任務(wù)不單純等待。 SDRAM 內(nèi)部組織結(jié)構(gòu)是并行的流水線結(jié)構(gòu)。存儲(chǔ)體分為多個(gè)組,各組可同時(shí)獨(dú)立工作。 SDRAM 讀寫操作 SDRAM 相對于 SRAM 的讀寫操作來說較為復(fù)雜,需要經(jīng)過多個(gè)步驟才能完成操作。 SDRAM 內(nèi)部有一個(gè)邏輯控制單元,還有一個(gè)模式寄存器為其提供參數(shù)。所以每次開機(jī)上電之后 SDRAM 都要對整個(gè)控制邏輯進(jìn)行初始化 [29]。初始化過程包括將所有的 Bank 預(yù)充電 、 刷新 以及模式寄存器的設(shè)置。其中模式寄存器的值一般通過 12 位地址線對其進(jìn)行設(shè)定。 初始化完成后若想要對 Bank 中的陣列進(jìn)行讀寫,需要先通過激活命令( Active)讓某一行出于激活狀態(tài)。片選和 Bank 選定可以與行有效同時(shí)進(jìn)行。 如圖 26 所示, 片選和 Bank 選定的同時(shí), RAS( Row Address Strobe,行地址選通脈沖)處于低電平有效狀態(tài)。因此地址線上的數(shù)據(jù)表示行地址。一般 SDRAM地址線為 12 位,總共可以表示 212=4096 行。由于行有效是相對于 Bank 而言的,上海交通大學(xué)碩士學(xué)位論文 12 打開行同時(shí)選定了一個(gè) Bank,因此行有效也被稱為 Bank 有效。 圖 2 6 行有效時(shí)序圖 6 Row Effective Timing Diagram 打開某一行之后,可以對列地址進(jìn)行尋址。由于是地址復(fù)用 ,此時(shí)實(shí)用的依舊是 A0A11 地址線。列地址的尋址與讀寫命令同時(shí)發(fā)出。 Wen 信號為高時(shí)表示讀操作, Wen 為低是表示寫操作。由于地址線是公用的,所以要通過拉低 CAS( Column Address Strobe,列地址選通脈沖) 對行列地址的尋址進(jìn)行區(qū)分。讀寫時(shí)序如圖 27 所示。 圖 2 7 列有效時(shí)序圖 7 Column Effective Timing Diagram 由于 SDRAM 芯片的特性,行有 效和列有效之間必須有一段間隔。 該間隔被定義為 tRCD,即 RAS to CAS Delay。這是根據(jù)芯片存儲(chǔ)陣列響應(yīng)時(shí)間制定的延遲。tRCD是 SDRAM 的一個(gè)重要參數(shù),廣義上以時(shí)鐘周期數(shù)為單位。如圖 28 所示, tRCD上海交通大學(xué)碩士學(xué)位論文 13 為 3 時(shí)延遲三個(gè)時(shí)鐘周期。 圖 2 8 tRCD=3 時(shí)序圖 8 Timing Diagram of tRCD=3 行列地址都選定之后確定了存儲(chǔ)單元,之后等待數(shù)據(jù)通道 DQ 讀取或者寫入數(shù)據(jù)。 在 CAS 發(fā)出請求后,需要經(jīng)過一定的時(shí)間才能將數(shù)據(jù)輸出。定義 CAS 與讀取命令發(fā)出到數(shù)據(jù)輸出的時(shí)間為 CL( CAS Latency, CAS 潛伏期)。 CL 廣義上也是時(shí)鐘周期數(shù) ,與讀操作更為相關(guān)。如圖 29 所示是 CL=3 的情況。 圖 2 9 CL=3 時(shí)序圖 9 Timing Diagram of CL=3 突發(fā)( Burst)是在同一行中相鄰存儲(chǔ)單元連續(xù)進(jìn)行讀寫的數(shù)據(jù)傳輸方式,連續(xù)傳輸?shù)臄?shù)據(jù)量就是突發(fā)長度( Burst Length)。目前內(nèi)存控制器一次讀寫 Bank 位寬的數(shù)據(jù),一般為 8 或 4 個(gè)字節(jié)。實(shí)際應(yīng)用過程中,對于 SDRAM 的訪問往往是批量進(jìn)行 。如果要連續(xù)讀寫就是要對當(dāng)前存儲(chǔ)單元下一個(gè)單元進(jìn)行尋址,需要不斷發(fā)送列地址和讀命令,需要占用控制資源。于是產(chǎn)生了突發(fā)傳輸技術(shù),制定起始地址和突發(fā)長度, SDRAM 會(huì)依次對后面相應(yīng)數(shù)量的存儲(chǔ)單元進(jìn)行讀寫操作,而不再需要提供列地址。如圖 210 所示,突發(fā)讀取模式下,制定起始列地址和突發(fā)長度,尋址和讀取將自動(dòng)進(jìn)行。 上海交通大學(xué)碩士學(xué)位論文 14 圖 2 10 突 發(fā)傳輸模式 10 Burst Transfer Mode 突發(fā)長度的設(shè)定是在芯片的模式寄存器內(nèi)設(shè)定,常見的有 8 和全頁。其中全頁突發(fā)模式是指將 Bank 中一行的所有存儲(chǔ)單元連續(xù)傳輸。具體的突發(fā)長度和芯片設(shè)計(jì)的行內(nèi)列的數(shù)量有關(guān)。在模式寄存器設(shè)定的時(shí)候,出了制定突發(fā)長度,還制定了突發(fā)傳輸順序,可以是順序傳輸也可以是交錯(cuò)傳輸。 SDRAM 控制器基本功能 SDRAM 控制器的功能是控制 SDRAM 進(jìn)行讀寫操作,其中包括空操作( NOP)、 載入模式寄存 器( Load Mode Register)、 激活( Active)、讀操作( Read)、寫操作( Write)、突發(fā)操作( Burst Terminate)、預(yù)充電( Precharge) 和 刷新( Refresh)。 空操作是在 SDRAM 沒有指令的時(shí)候采取的一種操作,避免重復(fù)上一條指令。在突發(fā)傳輸模式的時(shí)候,也會(huì)相應(yīng)的插入空操作指令。 載入模式寄存器命令是在初始化階段將設(shè)定的配置讀入 SDRAM 的模式寄存器中。包括定義突發(fā)長度,突發(fā)模式, CAS Latency 等。 激活命令在讀寫操作之前進(jìn)行 ,通過 Active 命令將存儲(chǔ) 陣列中某個(gè) Bank 中的某一行打開,因此執(zhí)行 Active 命令時(shí)需要指定 Bank 和行地址,而要激活同一個(gè) Bank 中的 另 一行時(shí),需要將目前位于緩沖器的信息寫回存儲(chǔ)陣列中 讀寫命令在 Active 命令之后進(jìn)行,讀操作需要經(jīng)過 CAS Latency 的延遲時(shí)間才會(huì)將數(shù)據(jù)送到 DQ 總線上,而寫命令將 DQ 總線上的信息寫入行緩存器中。在執(zhí)行讀寫操作時(shí)需要指定列地址,寫命令還需要將寫入的數(shù)據(jù)放在 DQ 總線上準(zhǔn)備寫入。進(jìn)行突發(fā)操作時(shí),只需要在讀寫第一個(gè)數(shù)據(jù)時(shí)發(fā)出讀寫命令,之后 SDRAM后根據(jù)突發(fā)長度和突發(fā)模式進(jìn)行傳輸。 預(yù)充電命令與激 活命令相反,用以關(guān)閉行操作。預(yù)充電命令可以將某一個(gè)Bank 或者全部的 Bank 中行緩存信息寫回存儲(chǔ)陣列中。執(zhí)行預(yù)充電命令需要指定Bank 地址或者利用 A10 指定為預(yù)充電所有的 Bank。 刷新命令是對于 SDRAM 中的數(shù)據(jù)進(jìn)行刷新,避免因?yàn)槁╇娫斐纱鎯?chǔ)信息丟上海交通大學(xué)碩士學(xué)位論文 15 失。刷新不需要外部提供行地址信息,這是一個(gè)內(nèi)部的自動(dòng)操作。 SDRAM 內(nèi)部有一個(gè)行地址生成器用來自動(dòng)依次生成行地址。刷新操作對于一行中所有存儲(chǔ)體進(jìn)行,無需列地址。刷新過程中所有的 Bank 停止工作,每次刷新占用 9 個(gè)時(shí)鐘周期,之后進(jìn)入正常工作狀態(tài)。 雖然這樣的刷新會(huì)對性 能造成影響,但是對于 SDRAM來說是不可或缺的。 存儲(chǔ)預(yù)取技術(shù) 片上和片外存儲(chǔ)設(shè)備速度的差異導(dǎo)致帶寬瓶頸出現(xiàn)在片外速度較慢的存儲(chǔ)器。 數(shù)據(jù)預(yù)取是用來解決局部性不足的訪存模式,在數(shù)據(jù)將要使用前將其由 片外存儲(chǔ)器取回 Cache,保證處理器可以無停頓的執(zhí)行。眾所周知,片上訪存速度要遠(yuǎn)遠(yuǎn)高于片外訪存。將數(shù)據(jù)預(yù)先從片外存儲(chǔ)器取到片上高速緩存中,可有效增加Cache 命中率,減少訪問主存的開銷。 軟件預(yù)取 當(dāng)代微處理器大都提供了預(yù)取指令來支持 基于 軟件的預(yù)取。軟件預(yù)取是指在編譯 階段 由編譯器加入預(yù)取指令,提前將下一級存儲(chǔ)器中的數(shù) 據(jù)取回。因?yàn)榧尤肓舜罅康念A(yù)取指令,同時(shí)顯示的預(yù)取指令需要計(jì)算出準(zhǔn)確的預(yù)取地址,從而導(dǎo)致不能 夠 及時(shí)的發(fā)出預(yù)取指令以足夠隱藏訪存延時(shí),影響了性能的提高。并且必須使額外的預(yù)取指令開銷不能超過預(yù)取所能帶來的效益,否則得不償失。 如 圖 211所示 是一個(gè)典型的加入了預(yù)取指令 后 的軟件預(yù)取代碼片段: 圖 2 11 軟件預(yù)取算法 11 Software Based Prefetch 單純的軟件預(yù)取 難度 在于編譯應(yīng)該在什么位置插入預(yù)取指令。因?yàn)轭A(yù)取指令/*未加預(yù)取指令前 */ for(i=0。 i3。 i++) for(j=0。 j100。 j++) a[i][j] = b[j][0] * b[j+1][0]。 /*添加預(yù)取指令后 */ /*為了說明問題簡單起見,代碼中并沒有表達(dá)出邊界情況 */ for(i=0。 i3。 i++) for(j=0。 j100。 j++){ prefetch(a[i][j+7]) a[i][j] = b[j][0] * b[j+1][0]。 } 上海交通大學(xué)碩士學(xué)位論文 16 插入過晚可能會(huì)導(dǎo)致不能充分隱藏訪存延遲 。 若預(yù)取指令插入過早,又可能在數(shù)據(jù)沒有被真正訪問以前就被替換出去。而且,在編譯時(shí)對延時(shí)的估計(jì)是不精確的,有很多因素是程序動(dòng)態(tài)運(yùn)行時(shí)才能確定的。 硬件預(yù)取 硬件預(yù)取是由硬件根據(jù)訪存的歷史信息,對未來可能的訪存單元預(yù)先取入Cache,從而在數(shù)據(jù)真正被用到時(shí)不會(huì)造成 Cache 失效。但是由于只是基于訪存的歷史信息,硬件預(yù)取會(huì)取回大量無用的 Cache 塊,占用訪存帶寬,還會(huì)導(dǎo)致嚴(yán)重的 Cache 污染問 題。由于硬件預(yù)取是基于訪存的歷史信息來預(yù)測未來的訪存模式,從而可以在數(shù)據(jù)使用之前將其從下一級的存儲(chǔ)器中取回。 最簡單的連續(xù)預(yù)取方案是 OBL( One Block Lookahead),即當(dāng)訪問塊 A 的時(shí)候,開始預(yù)取塊 A+1。 OBL 方案根據(jù)訪問塊的不同,實(shí)施的方法也不相同。 Smith 將這些方案概括為兩種: PrefetchonMiss 算法 [30]和 Tagged Prefetch 算法。PrefetchonMiss 算法即發(fā)生缺失時(shí)才進(jìn)行預(yù)取。當(dāng)訪問塊 A 產(chǎn)生 Cache 缺失,會(huì)自動(dòng)對 A+1 預(yù)取 , 如果 A+1 己經(jīng)在 Cache 中,則無訪問動(dòng)作。 Tagged Prefetch算法是將存儲(chǔ)器中的每一個(gè)塊 標(biāo)記 一個(gè) tag 位,用以檢測一個(gè)塊是否需要進(jìn)行預(yù)取,以及是否是第一次訪問。在上述兩種情況下, A+1 塊都會(huì)取入 Cache 中。 當(dāng)執(zhí)行的程序表現(xiàn)出 良 好的空間局部性的時(shí)候,采用連續(xù)的預(yù)取方案是最有效的。然而在實(shí)際應(yīng)用中,所需的數(shù)據(jù)往往是跨越式的,如圖 212 給出的程序片斷中對 C[k][j]的訪問。針對這類循環(huán)結(jié)構(gòu)的陣列訪問,文獻(xiàn) [3134]提出了相應(yīng)的預(yù)取方案。 圖 2 12 一個(gè)跨步預(yù)取的程序段 12 Step Based Prefetch Code Chen 和 Baer 提出一種基于 RPT 的硬件預(yù)取方案 [16]。假設(shè)存儲(chǔ)器指令 i 在三次連續(xù)的循環(huán)中訪問的地址為 a1, a2, a3,首先對步距進(jìn)行計(jì)算: (a2a1) =δ。在 a2 訪問之后, a3 訪問之前,先計(jì)算預(yù)測地址 A3 = a2 +δ , 若 A3 與實(shí)際訪問地址 a3 相等,則繼續(xù)以該模式進(jìn)行預(yù)測,直至 An≠ an。 這種方案需要記錄指令上一個(gè)訪問的地址以及地址間的步距值。然而將程序float a[100][100], b[100][100], c[100][100] …… for(i=0。 i100。 i++) for(j=0。 j100。 j++) for(k=0。 k100。 k++) a[i][j] += b[i][k] * c[k][j]。 上海交通大學(xué)碩士學(xué)位論文 17 中每一條訪存指令的信息都記錄下來是不可能的。 因此 設(shè)計(jì)了一個(gè)訪問預(yù)測表(Reference Prediction Table, RPT), 專門記錄最近的訪存指令信息, RPT 的組織結(jié)構(gòu)如圖 213 所示。表中包括程序計(jì)數(shù)器( PC)的 tag,該指令前一次的訪問地址,以及建立起來的步距和狀態(tài)信息。 RPT 通過 PC 尋址,當(dāng)存儲(chǔ)器指令 i 第一次執(zhí)行的時(shí)候, RPT 將其狀態(tài)設(shè)置為初始態(tài),意味著不會(huì)對這條指令進(jìn)行預(yù)取。當(dāng)指令 i 再次執(zhí)行的時(shí)候,若它仍然未 被替換出去,則利用 RPT 中的 先前地址 ,可以計(jì)算出兩次訪存地址的步距值。 圖 2 13 RPT 的組織結(jié)構(gòu)圖 13 RPT Structure 預(yù)取相關(guān)的主存控制器 預(yù)取是高速緩存通過某種預(yù)測手法,將 SDRAM 中的數(shù)據(jù)預(yù)先拿到高速緩存中。 預(yù)取的實(shí)質(zhì)也是從片外 SDRAM 取數(shù)據(jù),因此和 SDRAM 關(guān)系也很密切。對于片外主存,也有預(yù)取相關(guān)方面的研究。 Chang Joo Lee 提出了一種針對預(yù)取優(yōu)化的 DRAM 控制器( PADC) [22]。包括兩個(gè)組成部分:自適應(yīng)預(yù)取調(diào)度( APS)和自適應(yīng)預(yù)取舍棄( APD)。如圖 214 所示: 上海交通大學(xué)碩士學(xué)位論文 18 M e m o r y r e q u e s t b u f f e rA d a p t i v e P r e f e t c h S c h e d u l i n g ( A P S )A d a p t i v e P r e f e t c h D r o p p i n g ( A P D )P r e f e t c h A w a r e D R A M C o n t r o l l e rP r e f e t c h a c c u r a c y f r o m e a c h c o r eU p d a t eD r o pR e q u e s t P r i o r i t yR e q u e s t i n f o r m a t i o nD R A M c o m m a n d amp。 a d d r e s sT o D R A M 圖 2 14 PADC 結(jié)構(gòu) 14 PADC Structure APS 和 APD 都是通過衡量多核系統(tǒng)中每個(gè)核的預(yù)取準(zhǔn)確率來工作。因此首先要衡量預(yù)取準(zhǔn)確性。通過在一段時(shí)間在特定核上運(yùn)行一個(gè)應(yīng)用來衡量預(yù)取準(zhǔn)確性。需要如下硬件開銷: :這 一標(biāo)志 位顯示訪存是否是由預(yù)取產(chǎn)生的。 :這個(gè)計(jì)數(shù)器記錄核送出的預(yù)取請求總數(shù)。 :這個(gè)計(jì)數(shù)器記錄有用的預(yù)取數(shù)。 :寄存器存儲(chǔ)每個(gè)時(shí)間段的預(yù)取準(zhǔn)確性。 APS 基于 預(yù)取準(zhǔn)確性 來調(diào)整 常規(guī)訪存請求 和 預(yù)取訪存請求 的優(yōu)先級。通過 閥值 來區(qū)分 關(guān)鍵請求 和 非關(guān)鍵請求 。 關(guān)鍵請求 包括 常規(guī)訪存請求 以及 有效預(yù)取請求 。自適應(yīng)預(yù)取調(diào)度包括: 具有更高優(yōu)先級 比 行沖突請求 具有更高優(yōu)先級 預(yù)取準(zhǔn)確性的 核產(chǎn)生的 常規(guī)訪存請求 具有更高的優(yōu)先級。 具有更高優(yōu)先級 依次按照上述四項(xiàng)原則進(jìn)行動(dòng)態(tài)調(diào)度。從而能夠動(dòng)態(tài)實(shí)現(xiàn)對于預(yù)取訪存請求的優(yōu)先級調(diào)度,使準(zhǔn)確的預(yù)取訪存能具有較高優(yōu)先級,也使行命中的訪存請求盡快得到處理。從而優(yōu)化了系統(tǒng)性能。 APS 雖然能夠通過區(qū)分預(yù)取的準(zhǔn)確性改變優(yōu)先級,但是無效的預(yù)取還是會(huì)造成帶寬損耗和 Cache 污染等問題。 APD 旨在通過刪除早 期 的 預(yù)取請求 來克服上述的限制。經(jīng)過試驗(yàn)證實(shí) 早期的預(yù)取請求 很可能是無效的。 APD 監(jiān)視每個(gè)核的 預(yù)取請求 并將在 訪存請求緩存 中存在超
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1