組成原理 存儲系統(tǒng)

1.存儲器層次結(jié)構(gòu)
  • 計算機對存儲器的基本要求:速度快挡鞍,容量大價格低预烙,三者相互矛盾墨微,速度越快,位價格越高扁掸,存儲器容量越大翘县,速度就不可能很快
  • 多層次存儲系統(tǒng)的目的:為了解決容量,速度和價格三者之間的矛盾谴分,通常把各種不同存儲容量锈麸,不同存取速度和位價格的存儲器,按一定的結(jié)構(gòu)組織起來牺蹄,形成一個多層次的存儲系統(tǒng)
  • 信息在層次化的存儲系統(tǒng)中進行存儲時需滿足兩個基本原則
    • 包含性原則:指在上層存儲器中所存放的內(nèi)容一定是其下層存儲器內(nèi)容的一部分忘伞,即上層存儲器存儲的信息是其下層存儲器部分內(nèi)容的副本
    • 一致性原則:最上層存儲器中的內(nèi)容被修改后,也必須修改該信息保存在其他下層存儲器的所有副本沙兰,以保持信息的一致性氓奈,即存放在不同存儲器中的同一數(shù)據(jù),在不同存儲器中要保持相同的值
  • 命中率HiHi表示在存儲器中找到被訪問信息的概率
  • 程序運行的局部性原理
    • 時間局部性:在一小段時間內(nèi)鼎天,最近被CPU訪問過的程序和數(shù)據(jù)很可能再次被訪問
    • 空間局部性:一段時間內(nèi)被CPU訪問的指令和數(shù)據(jù)往往集中在一小片存儲區(qū)域內(nèi)
  • 存儲器層次結(jié)構(gòu)中最重要的兩個層次:
    • 高速緩存存儲器 Cache:目的是為了提高存儲器的訪問速度舀奶,使得CPU訪存速度接近cache容量接近主存训措,由硬件實現(xiàn)伪节,對所有程序員透明
    • 虛擬存儲器:目的是提高存儲器的容量,使得用戶在使用內(nèi)存時绩鸣,可面對接近輔存的容量怀大,訪問速度接近主存軟硬件結(jié)合實現(xiàn)
      現(xiàn)代存儲系統(tǒng)的層次結(jié)構(gòu)
  • 存儲器層次結(jié)構(gòu)帶來的問題:
    • 地址映射:解決上層副本所在單元地址與下層地址對應(yīng)關(guān)系的問題
    • 數(shù)據(jù)一致性問題:存放在不同存儲器中的同一數(shù)據(jù)呀闻,在不同存儲器中要保持相同的值化借,如何保證不同層次存儲器中存放數(shù)據(jù)的一致性
    • 地址變換:CPU訪存提供的主存地址如何轉(zhuǎn)換為不同層次存儲器中的地址
    • 替換策略: 當某層存儲器已經(jīng)存滿數(shù)據(jù),又有新數(shù)據(jù)要裝入時捡多,應(yīng)將哪些數(shù)據(jù)替換出去

2.相聯(lián)存儲器

相聯(lián)存儲器就是選擇存儲單元中的某一個存儲項的內(nèi)容作為地址來對存儲器進行尋址蓖康。這個用來定位存儲單元的字段稱為關(guān)鍵字铐炫,簡稱鍵(key)。故相聯(lián)存儲器中每個存儲單元中存儲的信息都由關(guān)鍵字和數(shù)據(jù)兩部分組成

  • 相聯(lián)存儲器按存儲單元中存放的全部或部分內(nèi)容進行訪問的存儲器蒜焊,也稱按內(nèi)容訪問存儲器(AM Associative Memory)
  • 主要用于需快速檢索的場合
  • 讀操作按內(nèi)容訪問過程:CPU給出的關(guān)鍵字(存儲單元的全部或部分內(nèi)容)和存儲器中所有單元中相應(yīng)信息(counterpart)進行比較倒信,定位到與關(guān)鍵字匹配的存儲單元后,將此單元所有信息讀出
  • AM主要組成
相聯(lián)存儲器
  • 存儲體
  • 檢索寄存器:存放用于查詢的檢索字
  • 屏蔽寄存器:存放屏蔽碼泳梆,來屏蔽檢索字中非關(guān)鍵字字段位鳖悠,即屏蔽碼中與關(guān)鍵字對應(yīng)位置1,其余位置0优妙,檢索字和屏蔽碼與操作后得到關(guān)鍵字值
  • 匹配寄存器:關(guān)鍵字通過比較電路與所有存儲單元對應(yīng)位進行比較乘综,若相符,則該存儲單元在匹配寄存器相應(yīng)位置1套硼,匹配寄存器位數(shù) = 相聯(lián)存儲器字數(shù)(存儲單元個數(shù))卡辰,所有存儲單元內(nèi)容都比較完后,匹配寄存器中所有值為1的位對應(yīng)的存儲單元邪意,就是與檢索字匹配成功的存儲單元
  • 數(shù)據(jù)寄存器
  • 比較電路和譯碼電路

3.高速緩沖存儲器 Cache

特點:

  • 速度快九妈,容量小位價格高
  • 可加快程序執(zhí)行速度抄罕,解決CPU和主存速度不匹配
  • 命中率越高允蚣,CPU訪存速度越接近于Cache的存取速度
  • 與主存以為單位進行數(shù)據(jù)交換于颖,塊由若干字組成呆贿,通常是定長
  • cache接收到地址后,首先進行地址變換操作森渐,即將主存地址轉(zhuǎn)換成cache地址
    CPU訪存處理流程
  • cache讀過程
cache讀
  • 地址變換機制可以判斷出本次要訪問的存儲單元內(nèi)容是否已經(jīng)裝入cache中做入,即是否命中
  • cache命中率越高,CPU平均訪存時間越短同衣,但當cache容量大到一定程度時竟块,命中率不會再隨著容量的增加而明顯地增大
  • Cache性能指標
    • 命中率:H = N1 / N,CPU訪存N次耐齐,cache命中N1
    • 平均訪存時間Ta:指CPU單次訪存所需要的平均時間浪秘,Tccache存取時間,Tm為主存存取時間
      Ta = HTc + (1-H)×Tm
  • 加速比Sp:主存存取時間與平均訪存時間比值
    Sp = Tm / Ta
  • 訪問效率ecache存取時間與平均訪存時間的比值
    e = Tc / Ta
  • 地址映射與地址變換
    • 地址映射機制:就是解決如何將主存的地址空間映射到cache的地址空間埠况,即把主存中的內(nèi)容按照某種規(guī)則裝入到cache中耸携,并建立主存地址與cache地址的映射關(guān)系
    • 地址變換:執(zhí)行程序時,應(yīng)首先將主存地址變換成cache地址辕翰,即執(zhí)行地址變換
    • 二者密切聯(lián)系夺衍,采用什么樣的地址映射方法,就必然采用與之相對應(yīng)的地址變換方法
    • 主存地址和cache地址可分為兩部分:塊地址喜命,塊內(nèi)地址
    • 主存和cache之間以塊為單位進行數(shù)據(jù)的調(diào)入沟沙,調(diào)出
    • cache中每一都增加了標記字段(Tag)河劝,用于說明該塊是主存中哪一塊的副本
    • CPU訪存時需將所訪問的主存塊號cache中的標記進行比較,才能判斷出該地址對應(yīng)的存儲單元是否在cache中命中

    • 全相聯(lián)映射及其地址變換
      • 全相聯(lián)地址映射:指主存中的每一塊都可以映射到cache中的任意塊
      • 特點:最靈活矛紫,cache利用率高赎瞎,成本高,缺點:標記比較的速度比較慢
      • 主存地址高m位表示主存塊地址颊咬,低b位表示塊內(nèi)地址
      • cache地址同樣劃分為兩部分:高c位表示cache塊地址煎娇,低b位表示塊內(nèi)地址
      • 目錄表記錄主存塊與cache塊之間映射關(guān)系,目錄表存放于相聯(lián)存儲器中
      • 目錄表每個存儲字包括三部分:主存塊號贪染,cache塊號缓呛,有效位
        • 有效位:表示目錄表中主存塊號和cache塊號建立的映射關(guān)系是否有效
      • 目錄表共有2c個存儲字,即cache中每個塊對應(yīng)目錄表中一個存儲字
      • 當一個主存塊調(diào)入cache中時杭隙,會同時將主存塊號和cache塊號存入目錄表中哟绊,并將有效位置1
      • 當CPU發(fā)來一個訪存地址,地址變換就是根據(jù)主存地址中的塊號查詢目錄表的過程痰憎。若在目錄表找到票髓,且有效位為1,則表示命中铣耘,否則未命中
全相聯(lián)映射
  • 可以認為每一個目錄表項記錄了某個cache塊是從主存中哪一塊調(diào)入的洽沟,這樣便可以根據(jù)主存訪存地址的塊號來相聯(lián)比較目錄表中的主存塊號,若找到一條表項蜗细,且有效位為1裆操,說明該主存塊已經(jīng)被調(diào)入了cache,此時目錄表中的cache塊號對應(yīng)的cache塊內(nèi)容實質(zhì)上就是主存地址的主存塊號存放的內(nèi)容炉媒,于是便可以直接按照目錄表中的cache塊號和主存地址的塊內(nèi)地址訪問cache
    全相聯(lián)映射的地址變換
    全相聯(lián)映射的地址變換
  • 直接映射及其地址變換
    • 直接映射:指主存中的塊只能映射到cache中某個固定的塊中踪区,
    • 主存塊和cache塊對應(yīng)關(guān)系公式:
      j = i mod 2c
      • j 為數(shù)據(jù)在cache中的塊號,i 為數(shù)據(jù)在主存中的塊號吊骤,即主存塊號模運算cache總的塊個數(shù)
    • 按照cache字塊個數(shù)將主存劃分為若干區(qū)缎岗,即主存每個區(qū)所包含的子塊數(shù)等于cache所包含的字塊數(shù),且每個區(qū)內(nèi)每個字塊和cache的字塊按模關(guān)系一一對應(yīng)
    • 使用區(qū)表保存主存塊與cache塊映射關(guān)系
    • 區(qū)表組成:主存區(qū)號白粉,有效位传泊,區(qū)表有2c個存儲字,常存放在高速緩沖存儲器中鸭巴,按地址訪問
    • 優(yōu)點:實現(xiàn)簡單眷细,地址變換速度快,缺點:不夠靈活奕扣,cache存儲空間得不到充分利用
直接映射
  • 區(qū)表的表項個數(shù)和Cache中塊的個數(shù)相同薪鹦,于是可以建立二者之間的一一對應(yīng)關(guān)系,即第 i 個區(qū)表表項,就是第 i 個cache塊和主存每個區(qū)內(nèi)對應(yīng)第 i 個字塊的映射關(guān)系池磁,這樣便可以按cache塊號作為地址訪問區(qū)表奔害,因為每個主存區(qū)的字塊個數(shù)和cache塊個數(shù)相同,即每個主存區(qū)內(nèi)都有一個字塊可以映射到某個cache塊地熄,于是可以看是否有哪個區(qū)對應(yīng)的這一字塊被調(diào)入了cache华临,若在區(qū)表中找到對應(yīng)表項,此時只能說明有某個區(qū)的對應(yīng)字塊已經(jīng)調(diào)入了cache端考,但是仍然不能確定是否是CPU訪存需要的數(shù)據(jù)雅潭,還需進行區(qū)號比較,若區(qū)號也相同却特,則可以確定CPU要訪問的數(shù)據(jù)已經(jīng)在Cache中了
    直接映射地址變換過程
    直接映射地址變換過程
  • 組相聯(lián)映射及其地址變換
    • 主存和cache的塊都先進行分組扶供,主存和cache每組包含的塊數(shù)相同
    • 組間采用直接相聯(lián)映射,組內(nèi)采用全相聯(lián)映射
    • 如圖cache被分成2u組裂明,每組2v塊椿浓,主存共有2s個區(qū),每個區(qū)有2u
      組相聯(lián)映射方式

      組相聯(lián)映射的地址變換
    • 使用塊表記錄從主存地址到cache地址的映射關(guān)系
    • 塊表容量大忻龌蕖:2u+v個存儲字扳碍,即cache的總字塊容量大小
    • 每個塊表存儲字主要包含:區(qū)號組號仙蛉,組內(nèi)塊號笋敞,有效位等字段
    • 塊表采用混合工作方式,塊內(nèi)按照相聯(lián)方式訪問荠瘪,塊間進行按地址訪問
    • n路組相聯(lián)指每組n
    • 組相聯(lián)地址變換過程
      • 由于組間是直接映射方式夯巷,所以cache中的每個組,主存中每個區(qū)內(nèi)都對應(yīng)有唯一一個組可以映射到對應(yīng)位置巧还,這里可以認為塊表有 2u 行鞭莽,即cache中每一組對應(yīng)塊表中的一行坊秸,于是可以先直接按照主存地址的組號U字段作為地址訪問塊表麸祷,看是否主存的某個區(qū)對應(yīng)組調(diào)入了cache,若按組號U字段作為地址訪問塊表找到了某一塊表項褒搔,此時只能說明有某個區(qū)的對應(yīng)組調(diào)入了cache阶牍,不能確定是否是CPU訪存對應(yīng)的區(qū)和對應(yīng)的組內(nèi)塊號(因為組內(nèi)是全相聯(lián),組任意塊都可以映射到對應(yīng)Cache組的任意Cache塊)星瘾,于是需要對區(qū)號和組內(nèi)塊號進行相聯(lián)比較走孽,若相符,則可以確定CPU要訪問的存儲單元已經(jīng)調(diào)入了cache
        組相聯(lián)地址變換過程
組相聯(lián)映射
  • 替換算法
    • 隨機算法(RAND):不考慮cache中各塊使用情況琳状,隨機選擇一個塊作為替換對象磕瓷。特點:實現(xiàn)簡單速度快,缺點:沒有利用程序局部性特點困食,隨意替換出去的數(shù)據(jù)很有可能馬上又要使用边翁,降低了命中率和cache工作效率
    • FIFO先進先出算法:最先調(diào)入cache的主存塊被替換出去,不需記錄各塊使用情況硕盹,故硬件實現(xiàn)容易符匾,系統(tǒng)開銷小
    • LRU (Least Recently Used) 近期最少使用算法:以cache中每塊的歷史使用情況為依據(jù),在需要替換時將近期最少使用的塊替換出去瘩例,較好反映了程序的局部性原則啊胶,對循環(huán)程序有較高命中率,需記錄cache中各字塊的使用情況垛贤,故實現(xiàn)復雜焰坪,開銷大,需為每個字塊設(shè)置計數(shù)器
    • LFR (Least Frequently Used) 最不經(jīng)常使用算法:將訪問次數(shù)最少的塊替換出去聘惦,需為每個字塊設(shè)置計數(shù)器琳彩,記錄每個cache塊的訪問次數(shù),當需要替換時部凑,將計數(shù)值最小的塊替換出去露乏,同時將所有塊的計數(shù)值清零,缺點:不能反映最近的訪問情況涂邀,只能反映兩次替換時間間隔內(nèi)的使用情況
  • cache寫操作及一致性
    • 造成cache與主存內(nèi)容不一致的原因主要有如下兩種:
      • CPU對cache執(zhí)行寫操作瘟仿,但沒有立即寫主存
      • I/O設(shè)備寫主存,但沒有同時寫cache
    • 常見的寫策略如下:
      • 寫直達法 (Write Through):CPU執(zhí)行寫操作時比勉,將數(shù)據(jù)同時寫入主存和cache劳较,優(yōu)點:實現(xiàn)簡單cache和主存內(nèi)容始終保持一致浩聋,缺點:頻繁訪存降低平均訪存速度
      • 寫回法 (Write Back):CPU執(zhí)行寫操作時观蜗,數(shù)據(jù)只寫入cache,不同時寫入主存衣洁,只有當cache中某個字塊需要替換出去時墓捻,才把修改過的cache塊寫回主存,坊夫,優(yōu)點:減少訪存次數(shù)砖第,有利于提高平均訪存速度,缺點:增加了cache復雜性环凿,存在主存與cache內(nèi)容不一致問題梧兼,影響系統(tǒng)可靠性,寫回法可分為如下兩種
        • 簡單寫回法:無論字塊是否被更新智听,都進行寫回操作羽杰,
        • 采用標志位寫回法:只在塊被更新時渡紫,才進行寫回操作
    • CPU執(zhí)行寫操作時,若在cache中未命中考赛,存在寫時是否取問題腻惠,解決方法如下兩種:
      • 不按寫分配法:cache寫不命中時,只執(zhí)行對主存的寫入操作
      • 按寫分配法:cache寫命中時欲虚,首先執(zhí)行寫主存操作集灌,然后將該主存塊從主存調(diào)入cache
        寫回法一般采用按寫分配法,寫直達法采用不按寫分配法
  • 多級cache
    • 數(shù)據(jù)cache和指令cache复哆,分開的好處

4.硬磁盤存儲器

  • 由一組盤片組成欣喧,稱為磁盤的盤片組,盤片組固定在一個主軸上梯找,盤面中心是空心的唆阿,不能記錄信息
  • 每個盤面的有效記錄區(qū)被劃分為數(shù)目相等由內(nèi)向外排列的同心圓锈锤,這些同心圓間距相等驯鳖,稱為磁道
  • 啟停區(qū)(著陸區(qū)):磁頭靠近主軸表面,即線速度最小的地方久免,這個區(qū)域不存放任何數(shù)據(jù)浅辙,稱為啟停區(qū)(著陸區(qū))
  • 數(shù)據(jù)區(qū):啟停區(qū)之外就是數(shù)據(jù)區(qū),通常從最外側(cè)磁道開始編號阎姥,起始磁道號為0
  • 不同盤面上具有相同磁道號的磁道形成一個柱面
  • 柱面數(shù) = 磁道數(shù)
  • 每個盤面對應(yīng)一個磁頭记舆,磁頭從上到下0開始編號
  • 對文件進行寫入操作通常按柱面進行,即磁頭讀/寫數(shù)據(jù)時首先在同一柱面內(nèi)從0磁頭開始進行操作呼巴,依次向下在同一柱面的不同盤面即磁頭上進行操作泽腮,只有同一柱面所有磁頭全部讀/寫完畢后磁頭才移動到下一柱面,這樣設(shè)計的目的:為了提高讀寫效率衣赶,因為選取不同磁頭是通過電子切換完成诊赊,而選取不同的柱面必須進行機械動作來完成磁頭的移動
  • 一個磁道通常被分成若干圓弧線,稱為扇區(qū)府瞄,一個磁道上碧磅,所有扇區(qū)是等長度的
  • 硬盤以扇區(qū)為單位進行存取,因此硬盤的可尋址最小單位為扇區(qū)
  • 定長記錄格式:每個扇區(qū)中存放的數(shù)據(jù)塊大小固定摘能,特點:簡單续崖,空間利用率不高
  • 不定長記錄格式:扇區(qū)中存放的數(shù)據(jù)塊大小可變,外圈磁道可以比內(nèi)圈磁道存儲更多的字節(jié)团搞,特點:靈活性好空間利用率高
  • 硬盤存儲信息定位常用地址格式:


    • 柱面號磁道號多艇,盤面號也可以用磁頭號
  • 磁盤進行讀寫時逻恐,大致分為兩個步驟
    • 定位柱面(磁道):磁盤驅(qū)動器進行尋道操作,即確定需操作的柱面,定位驅(qū)動系統(tǒng)帶動磁頭做徑向運動
    • 定位扇區(qū):主軸系統(tǒng)帶動磁盤組進行旋轉(zhuǎn)复隆,將需讀寫的扇區(qū)移動到磁頭上/下方
  • 硬盤技術(shù)參數(shù)
    • 容量
      • 道密度:盤面徑向單位長度內(nèi)磁道數(shù)量
        一個盤片的磁道總數(shù) = 道密度 * 盤片有效半徑
      • 位密度:盤面磁道上單位長度所能記錄的二進制位數(shù)
        一個磁道的容量 = 位密度 * 磁道周長
      • 非格式化容量:
        硬盤容量 = 硬盤個數(shù) * 磁盤記錄面數(shù) * 磁道數(shù) * 磁道容量
        =硬盤個數(shù) * 磁盤記錄面數(shù) * 道密度 * 盤片有效半徑 * 位密度 * 磁道周長
      • 格式化磁道容量:
        硬盤容量 = 硬盤個數(shù) * 磁盤記錄面數(shù) * 磁道數(shù) * 每道扇區(qū)數(shù) * 扇區(qū)容量
    • 平均尋址時間:磁頭從起始位置到達目標磁道位置拨匆,且定位到目標磁道上目標扇區(qū)所需的平均時間
      • 平均尋址時間 = 平均尋道時間 + 平均等待時間
      • 平均尋道時間:磁頭到達目標數(shù)據(jù)所在磁道平均時間
      • 平均等待時間:到達所訪問扇區(qū)的平均時間,一般取盤片旋轉(zhuǎn)一周時間的一半
        • 平均等待時間 = (1 / 轉(zhuǎn)速) / 2
        • 轉(zhuǎn)速:單位時間硬盤盤片旋轉(zhuǎn)圈數(shù)
    • 數(shù)據(jù)傳輸率:讀寫數(shù)據(jù)時挽拂,單位時間內(nèi)的數(shù)據(jù)傳輸量惭每,單位字節(jié)/秒(B/s)

5.虛擬存儲器

虛擬存儲器:就是將一部分硬磁盤空間作為主存來使用,使得計算機的存儲系統(tǒng)容量上接近輔存亏栈,速度上接近主存台腥,成本上接近輔存每位價格

  • 程序員可使用比主存大得多的存儲空間,按虛存空間編址
  • 交換信息的基本單位:绒北,黎侈,段頁
  • 虛擬存儲器和Cache的區(qū)別對比
區(qū)別 虛擬存儲器 Cache
設(shè)計目的 擴大容量 提高速度
實現(xiàn)手段 軟件和硬件共同實現(xiàn) 硬件實現(xiàn)
透明性 對應(yīng)用程序員透明,對系統(tǒng)程序員不透明 對所有程序員透明
數(shù)據(jù)塊大小 可變闷游,幾十至幾千字節(jié) 固定峻汉,幾個至幾十字節(jié)
交換頻率
數(shù)據(jù)通路 輔存和CPU直接不存在直接數(shù)據(jù)通路,主存不命中時脐往,只能先將輔存數(shù)據(jù)調(diào)入主存休吠,然后CPU訪問主存 CPU與cache和主存間都有數(shù)據(jù)通路,cache不命中時业簿,可直接訪問主存
  • 虛擬地址:程序員編程時使用的地址蛛碌,即邏輯地址,對應(yīng)存儲空間稱為虛擬地址空間
  • 物理地址:即主存地址(實地址)辖源,主存空間被稱為物理地址空間
  • 輔存地址:輔助存儲器的地址
  • 程序重定位:對程序進行虛擬地址物理地址變換的過程
    • 靜態(tài)重定位:程序裝入主存時一次性完成地址變換蔚携,且程序執(zhí)行過程中不再改變,因靈活性差很少使用
    • 動態(tài)重定位:即在目標程序執(zhí)行過程中克饶,CPU訪存前酝蜒,由硬件地址映射機構(gòu)完成將要訪問的指令或數(shù)據(jù)的虛擬地址向主存物理地址的變換,即地址變換時在程序執(zhí)行期間隨著每條指令讀取和數(shù)據(jù)訪問自動進行的矾湃,特點:需硬件支持亡脑,支持程序浮動便于利用零散的內(nèi)存空間邀跃,有利于實現(xiàn)信息共享和虛擬存儲
  • 虛擬存儲器基本思想:程序執(zhí)行時霉咨,按照程序執(zhí)行順序將程序的一部分調(diào)入主存,其他部分保留在輔存拍屑。當需要執(zhí)行存放在輔存中的程序段時途戒,CPU按照某種調(diào)度算法頁,段等為單位將其調(diào)入主存僵驰。硬件和軟件(操作系統(tǒng))共同自動實現(xiàn)對存儲信息的調(diào)度管理喷斋,基本步驟如下:
    • 對CPU發(fā)出的訪存地址(虛擬地址)進行內(nèi)部地址變換唁毒,判斷該地址對應(yīng)的存儲單元是否在主存中
    • 若在主存,則使用物理地址訪問主存
    • 否則執(zhí)行外部地址變換星爪,確定該地址對應(yīng)存儲單元在輔存的地址
    • 若主存有空閑塊浆西,則將該存儲塊內(nèi)容從輔存調(diào)入主存,否則使用替換算法將該存儲塊替換到主存顽腾,然后CPU訪問主存單元
  • 虛擬存儲器的地址映射及變換
    • 虛擬存儲器的地址映射:把虛擬地址空間映射到主存地址空間
    • 虛擬存儲器的地址變換:程序被裝入主存后近零,實際運行時,把用戶的虛擬地址變成主存的物理地址(內(nèi)部地址變換)磁盤存儲器地址(外部地址變換)
    • 頁式虛擬存儲器
      • 用固定大小的描述邏輯地址空間抄肖,同樣大小的描述物理內(nèi)存空間久信,程序運行時以頁為單位進行調(diào)入調(diào)出
      • 主存中的頁稱為物理頁實頁憎瘸,虛存中的頁稱為邏輯頁入篮,虛頁
      • 物理地址和邏輯地址計算方法:
        物理(邏輯)地址 = 頁大小 * 頁面號 + 頁內(nèi)地址
      • 頁表完成頁管理地址變換,頁表位于主存幌甘,虛存中每個頁面對應(yīng)一個頁表表項
      • 頁表表項內(nèi)容:虛存頁面所在主存頁面號(物理頁號)潮售,有效位(指示該邏輯頁是否已調(diào)入主存)
      • 頁表起始地址頁表基址寄存器給出,用邏輯頁號作為頁表偏移地址檢索頁表锅风,且首先判斷該頁是否已經(jīng)調(diào)入主存(有效位為1)酥诽,若已經(jīng)調(diào)入主存,則進行內(nèi)部地址變換獲得物理地址并訪問主存
      • 優(yōu)點 :主存利用率高皱埠,頁表格式簡單肮帐,地址映射及變換簡單地址變換塊边器,調(diào)入操作簡單训枢,缺點:頁的長度固定不利于編程獨立性忘巧,程序及數(shù)據(jù)的保護及調(diào)入調(diào)出困難
    • 頁式虛擬存儲器的地址變換
      • 因為頁表的表項個數(shù)和虛存的頁面?zhèn)€數(shù)相等恒界,故可以認為頁表中,從頁表基地址開始順序編址砚嘴,每一個頁表項對應(yīng)一個虛存頁面十酣,故可以按照虛擬地址的邏輯頁號作為地址訪問頁表,得到的頁表項际长,肯定能找到一個頁表項耸采,此時重要的是需要看有效位是否為1,只有有效位為1才說明該虛頁已經(jīng)被調(diào)入了主存工育,且此時頁表中該表項中存儲的主存頁面號虾宇,與CPU訪存提供的頁內(nèi)地址拼接便形成實際的物理地址
頁式虛擬存儲器地址變換
  • 快表:為了減少訪存次數(shù),通常將頁表中最常用的部分保存在cache中翅娶,這部分頁表稱為快表文留,可極大提高地址變換的效率
  • TLB變換后援緩沖器:緩存快表的高速存儲部件好唯,大多采用相聯(lián)存儲技術(shù)竭沫,按內(nèi)容查找燥翅,利用了程序訪問的局部性
  • 慢表:保存在主存中的完整頁表
  • 使用TLB后的地址變換過程
使用快慢表的虛擬存儲的地址變換

  • 段式虛擬存儲器
    • 基本思想:按照程序的邏輯結(jié)構(gòu)劃分段,主存以為單位進行分配
    • 每個段的長度可以不同
    • 通過段表對每道程序管理蜕提,段表一般也是位于主存中
    • 每個程序段對應(yīng)段表一個表項森书,段表表項主要內(nèi)容:有效位段起址(指明該段在實存的首地址)谎势,段長度 凛膏,這里區(qū)分段起始地址段表起始地址
    • 段表的起始地址段表基址寄存器給出
    • 段式虛擬存儲器的地址變換
      • 段表中的表項脏榆,按順序存儲程序按邏輯被劃分的若干段猖毫,即每個程序段在段表有唯一一個表項存儲映射關(guān)系,第一個表項存儲第一段程序段须喂,段表表項的段起址字段存放這個程序段在主存中的起始地址,當段表對應(yīng)表項的有效位為1時,此時CPU訪存地址的段內(nèi)地址作為偏移量與段表中對應(yīng)表項的段起址字段相加形成實際訪存的物理地址
段式虛擬存儲器的地址變換

  • 段頁式虛擬存儲器
    • 主存物理空間等分
    • 程序先按邏輯結(jié)構(gòu)分段伊者,每段再分成與物理空間頁同樣小的頁面
    • 程序以為單位進行調(diào)入調(diào)出操作喜每,但以為單位進行編程,保護和共享
    • 通過一個段表一組頁表進行管理是己,即每個程序段都有若干頁又兵,這些頁被存儲在一個頁表中,若干段就有一組頁表卒废。
    • 段表每個表項對應(yīng)一個段沛厨,內(nèi)容包括:該段的頁表起始地址頁表長度
    • 優(yōu)點:同時具備段式和頁式虛存的優(yōu)點摔认,缺點:映射過程需多次查表逆皮,耗時大
    • 頁表每個表項給出:該段各頁在主存中的實頁號是否裝入级野,已修改等狀態(tài)信息
    • 段頁式虛擬存儲器的地址變換
      • 由于每個程序段按順序與段表表項一一對應(yīng)页屠,故首先根據(jù)CPU訪存提供的虛擬地址的段號字段按地址訪問段表,找到對應(yīng)段的段表表項信息蓖柔,表項信息中的頁表地址字段給出該程序段對應(yīng)的頁表的起始地址辰企,而頁表中每個虛頁頁面按順序與頁表表項一一對應(yīng),故頁表起始地址再與CPU訪存提供的虛擬地址的頁號字段相加作為地址訪問該程序段對應(yīng)的頁表的頁表項况鸣,確定了該虛頁對應(yīng)的物理頁號牢贸,這個物理頁號再于CPU訪存地址的頁內(nèi)地址相加便形成最終的訪存物理地址
    段頁式虛擬存儲器的地址變換
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市镐捧,隨后出現(xiàn)的幾起案子潜索,更是在濱河造成了極大的恐慌臭增,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件竹习,死亡現(xiàn)場離奇詭異誊抛,居然都是意外死亡,警方通過查閱死者的電腦和手機整陌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進店門拗窃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人泌辫,你說我怎么就攤上這事随夸。” “怎么了震放?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵宾毒,是天一觀的道長。 經(jīng)常有香客問我殿遂,道長诈铛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任勉躺,我火速辦了婚禮癌瘾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘饵溅。我一直安慰自己妨退,他們只是感情好,可當我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布蜕企。 她就那樣靜靜地躺著咬荷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪轻掩。 梳的紋絲不亂的頭發(fā)上幸乒,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天,我揣著相機與錄音唇牧,去河邊找鬼罕扎。 笑死,一個胖子當著我的面吹牛丐重,可吹牛的內(nèi)容都是我干的腔召。 我是一名探鬼主播,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼扮惦,長吁一口氣:“原來是場噩夢啊……” “哼臀蛛!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤浊仆,失蹤者是張志新(化名)和其女友劉穎客峭,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抡柿,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡舔琅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了沙绝。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片搏明。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡鼠锈,死狀恐怖闪檬,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情购笆,我是刑警寧澤粗悯,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站同欠,受9級特大地震影響样傍,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜铺遂,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一衫哥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧襟锐,春花似錦撤逢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至莫杈,卻和暖如春互例,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背筝闹。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工媳叨, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人关顷。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓糊秆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親解寝。 傳聞我的和親對象是個殘疾皇子扩然,可洞房花燭夜當晚...
    茶點故事閱讀 44,678評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 3.1 存儲系統(tǒng)基本概念 3.1.1 存儲器的層次結(jié)構(gòu) 主存儲器。簡稱主存聋伦,又稱內(nèi)存儲器(內(nèi)存)夫偶,用來存放計算機運...
    AdRainty閱讀 3,652評論 0 3
  • SRAM的基本結(jié)構(gòu)和工作原理界睁,DRAM的基本結(jié)構(gòu)和工作原理,只需了解即可兵拢;重點關(guān)注如何完成存儲單元的讀寫翻斟。 目錄:...
    講故事的萬物閱讀 336評論 0 1
  • 1.馮諾依曼機 特點:1.計算機硬件系統(tǒng)由運算器、存儲器说铃、控制器访惜、輸入設(shè)備、輸出設(shè)備5大部件組成2.指令和數(shù)據(jù)以同...
    FrankXu0808閱讀 2,844評論 0 0
  • 計算機組成原理----學習筆記2020-06-12 第一章 計算機系統(tǒng)概論 1. 計算機的分類 (1)電子模擬計算...
    傾慕_ff96閱讀 1,826評論 0 2
  • 第一單元 計算機系統(tǒng)概述 存儲程序方式: ⑴程序和數(shù)據(jù)預(yù)先存放在存儲器中 ⑵機器工作時腻扇,自動债热、逐條地取出指令并執(zhí)行...
    Black_Eye閱讀 6,080評論 0 4