




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第五章:存儲(chǔ)器層次結(jié)構(gòu)-C[AdaptedfromComputerOrganizationandDesign,4thEdition,Patterson&Hennessy,?2008,MK]CourtesyforMaryJaneIrwinofPSU復(fù)習(xí):一臺(tái)計(jì)算機(jī)的主要部件
處理器控制器數(shù)據(jù)通路存儲(chǔ)器設(shè)備輸入輸出高速緩存主存輔助存儲(chǔ)器(硬盤)怎樣管理存儲(chǔ)層次結(jié)構(gòu)?寄存器
存儲(chǔ)器by編譯器(程序員?)高速緩存
主存bycache控制器硬件主存硬盤(外存)by操作系統(tǒng)(虛擬存儲(chǔ)器)通過快表(TLB)實(shí)現(xiàn)虛擬地址到物理地址的轉(zhuǎn)換by程序員(files)復(fù)習(xí):存儲(chǔ)器層次結(jié)構(gòu)訪問時(shí)間隨離CPU距離的增加而增加L1$L2$MainMemorySecondaryMemoryProcessor(Relative)sizeofthememoryateachlevelInclusive–whatisinL1$isasubsetofwhatisinL2$isasubsetofwhatisinMMthatisasubsetofisinSM(這其實(shí)是為了說明存儲(chǔ)器是一個(gè)真正的層次結(jié)構(gòu))4-8bytes(word)1to4blocks1,024+bytes(disksector=page)8-32bytes(block)充分利用了局部性的原則,在最快和最廉價(jià)的技術(shù)幫助下提供給用戶越來越多可用的存儲(chǔ)空間虛擬存儲(chǔ)器將主存用作輔助存儲(chǔ)器高速緩存的技術(shù)允許在多道程序之間有效而安全地共享存儲(chǔ)器使那些需要比物理存儲(chǔ)器更大的存儲(chǔ)空間的程序能夠運(yùn)行
提供重定位來簡(jiǎn)化執(zhí)行時(shí)的程序加載過程(例如,允許將程序加載到主存中的任何位置)工作原理?–還是局部性原則在任何時(shí)間內(nèi),程序都是可能去訪問整個(gè)地址空間內(nèi)某一部分相對(duì)較小的地址空間每個(gè)程序都是編譯到它自己的地址空間–一個(gè)“虛擬”的地址空間在程序運(yùn)行時(shí),每個(gè)虛擬地址都是必須要轉(zhuǎn)化為物理地址
(主存中的地址)共享物理內(nèi)存的兩個(gè)程序Program1虛擬地址空間主存儲(chǔ)器一個(gè)程序的地址空間劃分為很多頁(yè)
(所有的頁(yè)固定為同一大小)or段(大小可變)每個(gè)頁(yè)的開始地址(在主存中或輔存中)包含在程序的頁(yè)表中Program2虛擬地址空間地址轉(zhuǎn)換虛擬地址(VA)頁(yè)內(nèi)偏移虛擬頁(yè)號(hào)3130...1211...0頁(yè)內(nèi)偏移物理頁(yè)號(hào)物理地址
(PA)29...12110地址變換所以每個(gè)訪存需求最開始都需要通過地址變換將虛擬空間轉(zhuǎn)換為物理空間虛擬存儲(chǔ)器中,訪問缺失被稱為缺頁(yè)(例如,訪問的頁(yè)不在物理存儲(chǔ)器中)虛擬地址到物理地址的轉(zhuǎn)換是需要軟硬件結(jié)合地址轉(zhuǎn)換機(jī)制物理頁(yè)的基地址主存儲(chǔ)器硬盤存儲(chǔ)器(外存)虛擬頁(yè)號(hào)V11111101010頁(yè)表(在主存中)頁(yè)內(nèi)偏移物理頁(yè)號(hào)頁(yè)內(nèi)偏移頁(yè)表寄存器VirtualAddressingwithaCache由于頁(yè)表存放在主存中,因此程序多出一次額外的訪存-需要一次訪存以獲得物理地址(通過地址變換將虛擬地址VA轉(zhuǎn)換為物理地址PA),此后的訪存才是獲得數(shù)據(jù)CPUTrans-lationCacheMainMemoryVAPAmisshitdata這樣使存儲(chǔ)器(緩存)訪問變得開銷很大
(程序每次訪存至少需要兩次)現(xiàn)代處理器都包含一個(gè)特殊的cache以追蹤最近使用過的地址變換,這個(gè)特殊的地址轉(zhuǎn)換cache就是快表TranslationLookasideBuffer(TLB)–用于記錄最近使用地址的映射信息的一個(gè)較小的高速緩存,從而可以避免每次都要訪問頁(yè)表加速地址轉(zhuǎn)換物理頁(yè)基地址主存儲(chǔ)器硬盤存儲(chǔ)器虛擬頁(yè)號(hào)V1111110101011101標(biāo)記物理頁(yè)基地址V快表頁(yè)表(在物理存儲(chǔ)器中)頁(yè)表寄存器TranslationLookasideBuffers(TLBs)快表正和其它的cache一樣,TLB的組織形式也是全相聯(lián),組相聯(lián),直接映射這幾種TLB的訪問時(shí)間通常是要比cache的訪問時(shí)間短(因?yàn)門LB比cache小很多)TLB通常不會(huì)超過512項(xiàng)ATLBintheMemoryHierarchyTLB缺失–判斷是缺頁(yè)還是僅僅是一次TLB缺失?
如果該頁(yè)在主存中,那么TLB缺失只是一次轉(zhuǎn)換缺失,處理器可以通過將頁(yè)表中的變換裝載到TLB并重新訪問來進(jìn)行缺失處理(TLB缺失既可以通過硬件處理,也可以通過軟件處理)Takes10’sofcyclestofindandloadthetranslationinfointotheTLB如果該頁(yè)不在主存中,TLB缺失就是一次真的缺頁(yè)Takes1,000,000’sofcyclestoserviceapagefaultTLB缺失比缺頁(yè)要頻繁得多CPUTLBLookupCacheMainMemoryVAPAmisshitdataTrans-lationhitmiss?t?tTLB中可能發(fā)生的事件組合TLBPageTableCache可能發(fā)生么?如果可能,什么情況下發(fā)生?HitHitHitHitHitMissMissHitHitMissHitMissMissMissMissHitMissMiss/HitMissMissHit
Yes–whatwewant!Yes–althoughthepagetableisnotcheckediftheTLBhitsYes–TLBmiss,PAinpagetableYes–TLBmiss,PAinpagetable,butdatanotincacheYes–pagefaultImpossible–TLBtranslationnotpossibleifpageisnotpresentinmemoryImpossible–datanotallowedincacheifpageisnotinmemory處理一次TLB缺失考慮一次TLB缺頁(yè)在存儲(chǔ)器中發(fā)生(例如,
設(shè)置頁(yè)表中的有效位)TLB缺失(缺頁(yè)異常)必須在訪存發(fā)生的同一時(shí)鐘周期的末尾被判定,因此下一個(gè)時(shí)鐘周期就開始進(jìn)行異常處理而不是繼續(xù)正常的指令執(zhí)行。下表見圖5-27寄存器CP0
寄存器號(hào)說明EPC14WheretorestartafterexceptionCause13CauseofexceptionBadVAddr8AddressthatcausedexceptionIndex0LocationinTLBtoberead/writtenRandom1PseudorandomlocationinTLBEntryLo2PhysicalpageaddressandflagsEntryHi10VirtualpageaddressContext4Pagetableaddress&pagenumberTLB缺失處理程序(MIPS)當(dāng)TLB缺失發(fā)生時(shí),MIPS的硬件將被引用的頁(yè)號(hào)保存在一個(gè)叫BadVAddr的特殊寄存器中,然后產(chǎn)生異常。這個(gè)異常請(qǐng)求操作系統(tǒng)通過軟件來處理缺失,控制權(quán)被轉(zhuǎn)移到地址80000000hex,TLB缺失處理程序的位置TLBmiss:mfc0$k1,Context #copyaddrofPTEinto$k1lw$k1,0($k1) #putPTEinto$k1mtc0$k1,EntryLo
#putPTEintoEntryLo
tlbwr #putEntryLointoTLB # atRandomeret #returnfromexception指令tlbwr
把控制寄存器EntryLo
中的內(nèi)容復(fù)制到由控制寄存器
Random所選擇的TLB表項(xiàng)中。TLB缺失大概需要花費(fèi)12個(gè)時(shí)鐘周期一些虛擬存儲(chǔ)器的設(shè)計(jì)參數(shù)PagedVMTLBsTotalsize16,000to250,000words16to512entriesTotalsize(KB)250,000to1,000,000,0000.25to16Blocksize(B)4000to64,0004to8Hittime0.5to1clockcycleMisspenalty(clocks)10,000,000to100,000,00010to100Missrates0.00001%to0.0001%0.01%to1%兩個(gè)機(jī)器的快表參數(shù)IntelNehalemAMDBarcelonaAddresssizes48bits(vir);44bits(phy)48bits(vir);48bits(phy)Pagesize4KB4KBTLBorganizationL1TLBforinstructionsandL1TLBfordatapercore;bothare4-waysetassoc.;LRUL1ITLBhas128entries,L2DTLBhas64entriesL2TLB(unified)is4-waysetassoc.;LRUL2TLBhas512entriesTLBmisseshandledinhardwareL1TLBforinstructionsandL1TLBfordatapercore;botharefullyassoc.;LRUL1ITLBandDTLBeachhave48entriesL2TLBforinstructionsandL2TLBfordatapercore;eachare4-waysetassoc.;roundrobinLRUBothL2TLBshave512entriesTLBmisseshandledinhardware為什么不用虛擬尋址cache?虛擬尋址cache只需要對(duì)cache缺失進(jìn)行地址轉(zhuǎn)換dataCPUTrans-lationCacheMainMemoryVAhitPA
但是使用虛擬地址訪問cache,并且兩個(gè)程序之間共享數(shù)據(jù)時(shí),可能有別名-兩個(gè)虛擬地址對(duì)應(yīng)到同一個(gè)物理地址,所以在cache中有共享數(shù)據(jù)的兩個(gè)備份,在TLB中有兩個(gè)表項(xiàng),這將導(dǎo)致一致性問題Mustupdateallcacheentrieswiththesamephysicaladdressorthememorybecomesinconsistent減短地址變換時(shí)間可以使cache訪問和TLB訪問重疊虛擬地址的高位用于訪問TLB,低位用于cache的索引TagData=TagData=CacheHitDesiredwordVATagPATagTLBHit2-wayAssociativeCacheIndexPATagBlockoffsetPageoffsetVirtualpage#TheHardware/SoftwareBoundary虛擬地址到物理地址的轉(zhuǎn)換過程中哪些部分是需要硬件支持的呢?TLB快表:用于記錄最近用過的地址變換的高速緩存TLBaccesstimeispartofthecachehittimeMayallotanextrastageinthepipelineforTLBaccess(多一級(jí))頁(yè)表存儲(chǔ),故障檢測(cè)和更新Pagefaultsresultininterrupts(precise)thatarethenhandledbytheOS缺頁(yè)導(dǎo)致的中斷由操作系統(tǒng)處理Hardwaremustsupport(i.e.,updateappropriately)DirtyandReferencebits(e.g.,~LRU)inthePageTables
硬件要支持頁(yè)表中的重寫位、引用位存儲(chǔ)器層次結(jié)構(gòu)的4個(gè)問題Q1:一個(gè)塊可以被放到何處?
(Entryplacement)Q2:如何找到一個(gè)塊?
(Entryidentification)Q3:當(dāng)cache缺失時(shí)替換哪一塊?
(Entryreplacement)Q4:寫操作如何處理?
(Writestrategy)Q1&Q2:塊可以被放到哪以及如何找到一個(gè)塊#ofsetsEntriespersetDirectmapped#ofentries1Setassociative(#ofentries)/associativityAssociativity(typically2to16)Fullyassociative1#ofentriesLocationmethod#ofcomparisonsDirectmappedIndex1SetassociativeIndextheset;compareset’stagsDegreeofassociativityFullyassociativeCompareallentries’tagsSeparatelo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 母豬飼養(yǎng)技術(shù)考核試題及答案
- 系統(tǒng)架構(gòu)設(shè)計(jì)師職業(yè)生涯與考試的關(guān)系探索試題及答案
- 2025版高考化學(xué)一輪復(fù)習(xí)課后限時(shí)集訓(xùn)10富集在海水中的元素-鹵素ClBrI含解析新人教版
- 綜合性藥劑考試考題試題及答案
- 三年級(jí)數(shù)學(xué)上冊(cè)第3單元圖形的運(yùn)動(dòng)一3.2旋轉(zhuǎn)現(xiàn)象教案2冀教版
- 2025版高中數(shù)學(xué)第一章解三角形1.2應(yīng)用舉例第2課時(shí)角度問題及其他學(xué)案含解析新人教B版必修5
- 文化產(chǎn)業(yè)管理資格考試試題及答案
- 2024-2025學(xué)年高中地理第二章旅游景觀的欣賞2.2中國(guó)名景欣賞課時(shí)訓(xùn)練湘教版選修3
- 實(shí)現(xiàn)高效學(xué)習(xí)的光電工程師證書考試試題及答案
- 2024-2025學(xué)年高中化學(xué)第二章官能團(tuán)與有機(jī)化學(xué)反應(yīng)烴的衍生物2.2.1醇學(xué)案魯科版選修5
- 2020年度臨床護(hù)理技術(shù)操作規(guī)程及質(zhì)量標(biāo)準(zhǔn)
- 期中句型轉(zhuǎn)換練習(xí)專項(xiàng)過關(guān)卷(試題)-2023-2024學(xué)年譯林版(三起)英語四年級(jí)下冊(cè)
- 事業(yè)單位工作人員調(diào)動(dòng)申報(bào)表
- 2023年壓瘡相關(guān)知識(shí)考核試題及答案
- 《安全教育騎車安全》
- 申請(qǐng)判決書紙質(zhì)版
- 在英語教學(xué)中如何激發(fā)學(xué)生學(xué)習(xí)英語興趣
- 主題活動(dòng)12:小班語言活動(dòng)《狼和七只小羊》
- 眼科護(hù)理中的安全風(fēng)險(xiǎn)評(píng)估與控制策略
- 【氣流粉碎機(jī)的設(shè)計(jì)及計(jì)算8800字】
- 智能汽車行業(yè)產(chǎn)業(yè)研究系列(三):智能汽車軟硬件產(chǎn)品齊發(fā)力CES展示汽車酷炫新亮點(diǎn)
評(píng)論
0/150
提交評(píng)論