當前位置:首頁 » 服務存儲 » 段氏虛擬存儲器對程序員是否透明
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

段氏虛擬存儲器對程序員是否透明

發布時間: 2023-01-31 08:57:16

❶ 虛存和內存有什麼區別

虛擬空間:即虛擬主機。 虛擬主機(Virtual Host Virtual Server)是使用特殊的軟硬體技術,把一台計算機主機分成一台台"虛擬"的主機,每一台虛擬主機都具有獨立的域名和IP地址(或共享的IP地址),具有完整的Internet伺服器功能。

虛存空間:把內存與外存有機的結合起來使用的空間,從而得到一個容量很大的「內存」空間,這就是虛存空間。

虛擬儲存器:虛擬存儲器只是一個容量非常大的存儲器的邏輯模型,不是任何實際的物理存儲器.它藉助於磁碟等輔助存儲器來擴大主存容量,使之為更大或更多的程序所使用.
希望我的回答對你有幫助!
1) 內存的基本概念
內存(內存儲器)是微型計算機主機的組成部分,用來存放當前正在使用的或隨時要使用的程序或數據。
CPU可以直接訪問內存。
微機以位元組為單位線性地組織內存儲器,每個存儲單元(一個位元組)都有一個唯一的編號。24位地址匯流排可以提供的地址編號為224=16M位元組。
內存儲器按其工作特點分為:只讀存儲器ROM(Read-Only Memory)和隨機存取存儲器RAM(Random Access Memory)。
虛擬存儲器的工作原理

虛擬存儲器可以分為三類:頁式、段式和段頁式。本節我們主要學習頁式虛擬存儲器。

在頁式虛擬存儲器中通過把主存空間和程序空間都機械等分成固定大小的頁(頁面大小隨機器而定,一般為4KB到4MB),按頁順序編號,用相應的映像表機構來指明該程序的某頁是否已經裝入主存。若已經裝入主存,則應同時指明其在主存中所處的位置;如果未裝入主存,則去輔存中調頁,並建立起程序空間和實存空間的地址映像關系。這樣,程序執行時通過查映像表將程序地址(虛擬地址)變換成實際主存地址(物理地址)再訪問主存。

此存儲系統具有主存的速度和輔存的容量,提高了存儲器系統的性能價格比。CPU直接訪問主存,主存與輔存之間的信息交換由操作系統和硬體來完成,這種把輔存看作是主存的一部分,以擴大主存容量的技術,稱之為虛擬技術。用虛擬技術設計的存儲器,稱為虛擬存儲器。

這些主存與輔存之間實際存在的操作和輔助軟、硬體,對應用程序設計者來講是透明的。但虛擬存儲器對系統程序員來講基本上是不透明的,只是某些部分(如虛擬地址到主存地址的變換)由於採用硬體實現才是透明的。

虛擬地址----又稱邏輯地址,是指訪問虛擬空間的地址。由於指令中給出的地址碼是按虛存空間來統一編址的,因此指令的地址碼實際上是虛擬地址。

❷ 頁面虛擬存儲器與段式虛擬存儲器的區別

頁面虛擬存儲器與段式虛擬存儲器區別:
1、頁面虛擬存儲器
頁式虛擬存儲系統中,虛擬空間分成頁,稱為邏輯頁;主存空間也分成同樣大小的頁,稱為物理頁。頁表中每一個虛存邏輯頁號有一個表目,表目內容包含該邏輯頁所在的主存頁面地址(物理頁號),用它作為實存地址的高欄位,與虛存地址的頁內行地址欄位相拼接,產生完整的實主存地址,據此來訪問主存。
2、段式虛擬存儲器
段式虛擬存儲器是按程序的邏輯結構劃分地址空間,段的長度是隨意的,並且允許伸長,它的優點是消除了內存零頭,易於實現存儲保護,便於程序動態裝配;缺點是調入操作復雜。將這兩種方法結合起來便構成段頁式調度。在段頁式調度中把物理空間分成頁,程序按模塊分段,每個段再分成與物理空間頁同樣小的頁面。

❸ 為什麼說cache對程序員是透明的

cache對程序員是透明的是因為程序員不需要知道其運行原理。因為程序員不需要知道cache的緩存機制,直接調用cache介面即可實現cache緩存。

cache獨一無二地提供了三種整合的、能並發訪問同一數據的資料庫技術:成熟的對象訪問方式,高性能的 SQL 訪問方式以及豐富的多維訪問。在對象數據、關系型數據以及多維數據視圖之間不需要映射,這樣就大大節省了開發和運行時間。



(3)段氏虛擬存儲器對程序員是否透明擴展閱讀:

cache的作用

Caché提供了快速 Web 應用開發、高速的事務處理、大規模的擴展性、對事務數據的實時查詢。 Caché運行概述對Caché架構和性能進行了深層次的描述。 Caché的技術優勢主要在為什麼選擇Caché這一文檔中稱述。

在小冊子以多維引擎全面整合對象和 SQL 中,你可以了解到後關系型技術更多的優勢。 Caché問與答中主要回答了一些關於Caché的常見問題,以及為什麼增值商和企業選擇Caché來提升他們應用的性能。



❹ 虛擬存儲器() A.對用戶是透明的B.對程序員是透明的C.對OS是透明的D.操作系統的設計者

現在的計算機存儲系統可以分為3級:
1)CPU內部的高速緩存(也就是cache,cache也分級,例如我的CPU是i5-540M,一級cache 64KB,2級cache 2x256KB,3級cache 3MB);
2)內存,也就是我們通常說的存儲器(我的筆記本是4GB)
3)就是你說的虛擬存儲器,這個可以在系統里設置,佔用硬碟的資源。

分級存儲系統是為了平衡存儲速度和費用。cache會非常貴,不可能做到上GB的規模。因為系統的調度功能和預先讀取功能,可以保證接下來用到的程序和數據在cache和存取器中,所以最終的結果是系統的價格接近最便宜的硬碟,系統的速度接近最快的cache。
如想詳細了解可以看看有關的計算機基礎的教材。

現在回答你的問題:
虛擬存儲器對用戶和程序員都是透明的,但是對操作系統不透明。
cache對所有的程序都是透明的,我們編程是無法訪問指定cache的,但是可以訪問指定的內存。cache有CPU硬體來調度。

❺ 怎樣使用「虛擬存儲器」

虛擬存儲器

virtual memory

為了給用戶提供更大的隨機存取空間而採用的一種存儲技術。它將內存與外存結合使用,好像有一個容量極大的內存儲器,工作速度接近於主存,每位成本又與輔存相近,在整機形成多層次存儲系統。

虛擬存儲器源出於英國ATLAS計算機的一級存儲器概念。這種系統的主存為16千字的磁芯存儲器,但中央處理器可用20位邏輯地址對主存定址。到1970年,美國RCA公司研究成功虛擬存儲器系統。IBM公司於1972年在IBM370系統上全面採用了虛擬存儲技術。虛擬存儲器已成為計算機系統中非常重要的部分。

虛擬存儲器是由硬體和操作系統自動實現存儲信息調度和管理的。它的工作過程包括6個步驟:①中央處理器訪問主存的邏輯地址分解成組號a和組內地址b,並對組號a進行地址變換,即將邏輯組號a作為索引,查地址變換表,以確定該組信息是否存放在主存內。②如該組號已在主存內,則轉而執行④;如果該組號不在主存內,則檢查主存中是否有空閑區,如果沒有,便將某個暫時不用的組調出送往輔存,以便將這組信息調入主存。③從輔存讀出所要的組,並送到主存空閑區,然後將那個空閑的物理組號a和邏輯組號a登錄在地址變換表中。④從地址變換表讀出與邏輯組號a對應的物理組號a。⑤從物理組號a和組內位元組地址b得到物理地址。⑥根據物理地址從主存中存取必要的信息。

調度方式有分頁式、段式、段頁式3種。頁式調度是將邏輯和物理地址空間都分成固定大小的頁。主存按頁順序編號,而每個獨立編址的程序空間有自己的頁號順序,通過調度輔存中程序的各頁可以離散裝入主存中不同的頁面位置,並可據表一一對應檢索。頁式調度的優點是頁內零頭小,頁表對程序員來說是透明的,地址變換快,調入操作簡單;缺點是各頁不是程序的獨立模塊,不便於實現程序和數據的保護。段式調度是按程序的邏輯結構劃分地址空間,段的長度是隨意的,並且允許伸長,它的優點是消除了內存零頭,易於實現存儲保護,便於程序動態裝配;缺點是調入操作復雜。將這兩種方法結合起來便構成段頁式調度。在段頁式調度中把物理空間分成頁,程序按模塊分段,每個段再分成與物理空間頁同樣小的頁面。段頁式調度綜合了段式和頁式的優點。其缺點是增加了硬體成本,軟體也較復雜。大型通用計算機系統多數採用段頁式調度。

虛擬存儲器地址變換基本上有3種形虛擬存儲器工作過程式:全聯想變換、直接變換和組聯想變換。任何邏輯空間頁面能夠變換到物理空間任何頁面位置的方式稱為全聯想變換。每個邏輯空間頁面只能變換到物理空間一個特定頁面的方式稱為直接變換。組聯想變換是指各組之間是直接變換,而組內各頁間則是全聯想變換。

替換規則用來確定替換主存中哪一部分,以便騰空部分主存,存放來自輔存要調入的那部分內容。常見的替換演算法有4種。①隨機演算法:用軟體或硬體隨機數產生器確定替換的頁面。②先進先出:先調入主存的頁面先替換。③近期最少使用演算法:替換最長時間不用的頁面。④最優演算法:替換最長時間以後才使用的頁面。這是理想化的演算法,只能作為衡量其他各種演算法優劣的標准。

虛擬存儲器的效率是系統性能評價的重要內容,它與主存容量、頁面大小、命中率,程序局部性和替換演算法等因素有關。

❻ 計算機組成原理是什麼

計算機組成原理是什麼

計算機組成指的是系統結構的邏輯實現,包括機器機內的數據流和控制流的組成及邏輯設計等。計算機由什麼組成的,有什麼原理呢?下面我為大家分析一下!

【計算機性能指標】

計算機的性能指標主要是CPU性能指標、存儲器性能指標和I/O吞吐率。

處理機字長:是指處理機運算器中一次能夠完成二進制運算的位數。

匯流排寬度:一般指CPU中運算器與存儲器之間進行互連的內部匯流排二進制位數。

存儲器帶寬:單位時間內從存儲器讀出事物二進制數信息量,一般用位元組數/秒錶示。

主頻/時鍾周期:CPU的工作節拍受主時鍾控制,主時鍾不斷產生固定頻率的時鍾,主時鍾的頻率(f)叫CPU的主頻。主頻的倒數稱為CPU的周期(T)。

CPI:表示每條指令周期數,即執行一般程序所佔用的CPU時間,

CPU執行時間=CPU時鍾周期數*CPU時鍾周期

MIPS:表示平均每秒執行多少百萬條定點指令數,

FLOPS:表示每秒執行浮點操作的次數,用來衡量機器浮點操作的性能。

FLOPS=程序中的浮點操作次數/程序執行時間(s)

【定點數的表示和運算】

一個定點數由符號位和數值域兩部分組成。按小數點位置不同,定點數有純小數和純整數兩種表示方法。在定點計算機中,兩個原碼表示的數相乘的運算規則是:乘積的符號位由兩數的符號位按異或運算得到,而乘積的數值部分則是兩個正數相乘之積。兩個原碼表示的數相除時,商的符號位由兩數的符號按位相加求得,商的數值部分由兩數的數值部分相除求得。

【算數邏輯單元ALU】

為運算器構造的簡單性,運算方法中算數運算通常採用補碼加、減法,原碼乘除法或補碼乘除法。為了運算器的高速性和控制的簡單性,採用了先行進位、陣列乘除法、流水線等並行技術措施。ALU不僅具有多種算術運算和邏輯運算的功能,而且具有先行進位邏輯,從而能實現高速運算。

【存儲器的分類】

按存儲介質,用半導體器件組成的存儲器稱為半導體存儲器,用磁性材料做成的存儲器稱為磁表面存儲器;作為存儲介質的基本要求,必須有兩個明顯區別的物理狀態,分別用來表示二進制的代碼0和1。另一方面,存儲器的存取速度又取決於這種物理狀態的改變速度。

按存取方式,存儲器中任何存儲單元的內容都能被隨機存取,且存取時間和存儲單元的位置無關的存儲器稱為隨機存儲器,存儲器只能按某種順序來存取,即存取時間和存儲單元的物理位置有關的存儲器稱為順序存儲器;半導體存儲器是隨機存儲器,RAM和ROM都是採用隨機存取的方式進行信息訪問,磁帶存儲器是順序存儲器。

按信息易失性,斷電後信息消失的存儲器稱為易失性存儲器,斷電後仍能保存信息的存儲器稱為非易失性存儲器;半導體讀寫存儲器RAM是易失性存儲器,ROM是非易失性存儲器,磁性材料做成的存儲器是非易失性存儲器。

按存儲內容可變性,有些半導體存儲器存儲的內容是固定不變的,即只能讀出而不能寫入,這種半導體存儲器稱為只讀存儲器(ROM),既能讀出又能寫入的半導體存儲器稱為隨機讀寫存儲器(RAM);

按系統中的作用,可分為內部存儲器、外部存儲器;又可分為主存儲器、高速緩沖存儲器、輔助存儲器、控制存儲器;半導體存儲器是內部存儲器,磁碟是外部存儲器,又是輔助存儲器。

【存儲器的層次化結構】

目前在計算機系統中,通常採用多級存儲器體系結構,即使用高級緩沖存儲器(cache)、主存儲器和外存儲器。CPU能直接訪問的存儲器稱為內存儲器,它包括cache和主存儲器。CPU不能直接訪問外存儲器,外存儲器的信息必須調入內存儲器後才能為CPU進行處理。cache是計算機系統中的一個高速小容量半導體存儲器,在計算機中利用cache來高速存取指令和數據。cache的工作原理基於程序運行中具有的空間局部性和時間局部性特徵。cache能高速地向CPU提供指令和數據,從而加快了程序的執行速度。從功能上看,它是主存的緩沖存儲器,由高速的SRAM組成。為追求高速,包括管理在內的全部功能由硬體實現,因而對程序員是透明的。與主存容量相比。cache的容量很小,它保存的內容只是主存內容的一個子集,且cache與主存的數據交換是以塊為單位。主存儲器是計算機系統的主要存儲器,由MOS半導體存儲器組成,用來存放計算機運行期間的大量程序和數據,能和cache交換數據和指令。外存儲器是大容量輔助存儲器,通常用來存放系統程序和大型數據文件及資料庫。

存儲器的技術指標有存儲容量、存取時間、存儲周期、存儲器帶寬。存取時間、存儲周期、存儲器帶寬三個概念反映了主存的速度指標。

存取時間:指一次讀操作命令發出到該操作完成,將數據讀出到數據匯流排上所經歷的時間。通常取寫操作時間等於讀操作時間,故稱為存儲器存取時間,存取時間又稱存儲器訪問時間。

存儲周期:指連續兩次讀操作所需間隔的最小時間。通常,存儲周期略大於存取時間。

“位(bit)”是電子計算機中最小的數據單位,每一位的狀態只能是0或1。8個二進制位構成一個“位元組(Byte)”,位元組是儲存空間的基本計量單位,一個位元組可以儲存一個英文字母,2個位元組可以儲存一個漢子。“字”由若干位元組構成,字的位數叫作字長,不同檔次的機器有不同的字長。存儲器的基本單位位元組的長度是8 bit。表示主存容量的常用單位位元組B,是基本單位。此外還有KB、MB、GB、TB。一個雙穩態半導體電路或一個CMOS晶體管或磁性材料的存儲元,均可以存儲一位二進制代碼。這個二進制代碼位是存儲器中最小的存儲單位,稱為存儲位元。

所有的SRAM的特徵是用一個鎖存器(觸發器)作為存儲元,觸發器具有兩個穩定的狀態,只要直流供電電源一直加在這個記憶電路上,它就無限期地保持記憶的1或0狀態;如果電源斷電,那麼存儲的數據(1或0)就會丟失。SRAM是易失性存儲器。半導體靜態存儲器 SRAM 的存儲原理是依靠雙穩態電路。SRAM存儲器的存儲元是一個觸發器,它具有兩個穩定的狀態。SRAM的優點是存取速度快,但存儲容量不如DRAM大。動態MOS隨機讀寫存儲器DRAM的存儲容量極大,通常用作計算機的主存儲器。主存也可以用SRAM實現,只是成本高。與SRAM相比,DRAM成本低、功耗低,但需要刷新。動態RAM存儲信息依靠的是電容。DRAM存儲器的存儲元是由一個MOS晶體管和電容器組成的記憶電路,其中MOS晶體管作為開關使用,而所存儲的信息1或0則是由電容器上的電荷量來體現--當電容器充滿電荷時,代表儲存了1,當電容器放電沒有電荷時,代表存儲了0。讀出過程也是刷新過程。輸入緩沖期與輸出緩沖器總是互鎖的。這是因為讀操作和寫操作是互斥的,不會同時發生。與SRAM不同的是:DRAM增加了行地址鎖存器和列地址鎖存器,增加了刷新計數器和相應的控制電路。DRAM比SRAM集成度更高。DRAM讀出後必須刷新,而未讀寫的存儲元也要定期刷新,而且要按行刷新,所以刷新計數器的長度等於行地址鎖存器。DRAM存儲位元是基於電容器上的電荷量存儲,這個電荷量隨著時間和溫度而減少,因此必須定期地刷新,以保持它們原來記憶的信息。DRAM是易失性存儲器。一次讀操作會自動地刷新選中行中的所有存儲位元。然而通常情況下,人們不能准確地預知讀操作出現的頻率,因此無法阻止數據丟失。在這種情況下,必須對DRAM進行定期刷新。DRAM使用電容存儲,所以必須隔一段時間刷新(refresh)一次,如果存儲單元沒有被刷新,存儲的信息就會丟失。DRAM存儲器有讀周期、寫周期和刷新周期,刷新周期比讀/寫周期有更高的優先權。DRAM存儲器需要逐行進行定時刷新,以使不因存儲信息的電容漏電而造成信息丟失。另外,DRAM晶元的讀出是一種破壞性讀出,因此在讀取之後要立即按讀出信息予以充電再生。動態MOS隨機讀寫存儲器DRAM的存儲容量極大,通常用作計算機的主存儲器。SRAM和DRAM都是隨機讀寫存儲器,它們的特點是數據可讀可寫。ROM叫作只讀存儲器,在它工作時只能讀出,不能寫入,其中存儲的原始數據必須在它工作以前寫入。FLASH叫作快閃記憶體存儲器,是高密度非易失性的讀/寫存儲器,高密度意味著它具有巨大比特數目的存儲容量,非易失性意味著存放的數據在沒有電源的情況下可以長期保存。FLASH存儲元是在EPROM存儲元基礎上發展起來的。快閃記憶體存儲器有三個主要的基本操作,它們是編程操作、讀取操作和擦除操作。可編程ROM有PROM、EPROM、EEPROM。其中,PROM是一次性編程。EPROM叫作光擦除可編程只讀存儲器,它的存儲內容可以根據需要寫入,當需要更新時將原存儲內容抹去,再寫入新的內容。EEPROM叫作電擦除可編程只讀存儲器,其儲存元是一個具有兩個柵極的NMOS管,這種存儲器在出廠時,存儲器內容為全“1”狀態。使用時,可根據要求把某些存儲元寫“0”。EPROM是可改寫的,但它不能用作為隨機存儲器用。

【主存儲器與CPU的連接】

主儲存器和CPU之間增加cache的目的是解決CPU和主存之間的`速度匹配問題。程序和數據存儲在主存中,主存通常採用多體交叉存儲器,以提高訪問速度。cache是一個高速緩沖存儲器,用以彌補主存和CPU速度上的差異。指令部件本身又構成一個流水線,它由取指令、指令解碼、計算操作數地址、取操作數等幾個過程段組成。指令隊伍是一個先進先出(FIFO)的寄存器棧,用於存放經過解碼的指令和取來的操作數。它也是由若干個過程段組成的流水線。執行部件可以具有多個算數邏輯運算部件,這些部件本身又用流水線方式構成。為了使存儲器的存取時間能與流水線的其他各過程段的速度匹配,一般採用多體交叉存儲器。執行段的速度匹配問題,通常採用並行的運算部件以及部件流水線的工作方式來解決。一般採用的方法包括:將執行部件分為定點執行部件和浮點執行部件兩個可並行執行的部分,分別處理定點運算指令和浮點運算指令;在浮點執行部件中,又有浮點加法部件和浮點乘/除部件,它們也可以同時執行不同的指令;浮點運算部件都以流水線方式工作。所謂資源相關,是指多條指令進入流水線後在同一機器時鍾周期內爭用同一個功能部件所發生的沖突。在一個程序中,如果必須等前一條指令 執行完畢後,才能執行後一條指令,那麼這兩條指令就是數據相關的。為了解決數據相關沖突,流水CPU的運算器中特意設置若干運算結果緩沖寄存器,暫時保留運算結果,以便於後繼指令直接使用,這稱為“向前”或定向傳送技術。控制相關沖突是由轉移指令引起的。當執行轉移指令時,依據轉移條件的產生結果,可能為順序取下條指令;也可能轉移到新的目標地址取指令,從而使流水線發生斷流。為了減小轉移指令對流水線性能的影響,常採用以下兩種轉移處理技術:由編譯程序重排指令序列來實現的延遲轉移法、硬體方法來實現的轉移預測法。

【雙口RAM和多模塊存儲器】

雙埠存儲器採用空間並行技術,能進行高速讀/寫操作。雙埠存儲器提供了兩個相互獨立的讀寫電路,可以對存儲器中任意位置上的數據進行獨立的存取操作。事實上雙埠存儲器也可以由DRAM構成。當兩個埠的地址不相同時,在兩個埠上進行讀寫操作,一定不會發生沖突。當兩個埠同時存取存儲器同一存儲單元時,便發生沖突。總之,當兩個埠均為開放狀態且存取地址相同時,發生讀寫沖突。

一個由若干模塊組成的主存儲器是線性編址的,這些地址在各模塊中的安排方式有兩種:一種是順序方式,一種是交叉方式。從定性分析,對連續字的成塊傳送,交叉方式的存儲器可以實現多模塊流水式並行存取,大大提高存儲器的帶寬,由於CPU的速度比主存快,假如能同時從主存取出n條指令,這必然會提高機器的運行速度。多模塊交叉存儲器是一種並行存儲器結構。

【高速緩沖存儲器(cache)】

cache是一種高速緩沖存儲器,是為了解決CPU和主存之間速度不匹配而採用的一項重要技術。其原理基於程序運行中具有的空間局部性和時間局部性特徵。cache能高速地向CPU提供指令和數據,從而加快了程序的執行速度。從功能上看,它是主存的緩沖存儲器,由高速的SRAM組成。為追求高速,包括管理在內的全部功能由硬體實現,因而對程序員是透明的。當前隨著半導體器件集成度的進一步提高,cache已放入到CPU中,其工作速度接近於CPU的速度,從而能組成兩級以上的cache系統。cache除包含SRAM外,還要有控制邏輯。若cache在CPU晶元外,它的控制邏輯一般與主存控制邏輯合成在一起,成為主存/cache控制器;若cache在CPU內,則由CPU提供它的控制邏輯。CPU與cache之間的數據交換是以字為單位,而cache與主存之間的數據交換是以塊為單位。一個塊由若干字組成,是定長的。當CPU讀取內存中一個字時,便發出此字的內存地址到cache和主存。此時cache控制邏輯依據地址判斷此字是否在cache中:若是,此字立即傳送給CPU;若非,則用主存讀周期把此字從主存讀出送到CPU,與此同時,把含有這個字的整個數據塊從主存讀出送到cache中。從CPU看,增加一個cache的目的,就是在性能上使主存的平均讀出時間盡可能接近cache的讀出時間。為了達到這個目的,在所有的存儲器訪問中由cache滿足CPU需要的部分應占很高的比例,即cache的命中率應接近於1.由於程序訪問的局部性,實現這個目標是可能的。運算器由算數邏輯單元(ALU)、通用寄存器、數據緩沖寄存器DR和狀態條件寄存器PSW組成,它是數據加工處理部件。運算器接受控制器的命令而進行動作,即運算器所進行的全部操作都是由控制器發出的控制信號來指揮的,所以它是執行部件。運算器有兩個主要功能:(1)執行所有的算數運算;(2)執行所有的邏輯運算,並進行邏輯測試,如零值測試或兩個值的比較。通常,一個算數操作產生一個運算結果,而一個邏輯操作則產生一個判決。

與主存容量相比,cache的容量很小,它保存的內容只是主存內容的一個子集,且cache與主存的數據交換是以塊為單位。為了把主存塊放到cache中,必須應用某種方法把主存地址定為到cache中,稱做地址映射。“映射”的物理含義是確定位置的對應關系,並用硬體來實現。這樣當CPU訪問存儲器時,它所給出的一個字的內存地址會自動變換成cache的地址。由於採用硬體,這個地址變換過程很快,軟體人員絲毫感覺不到cache的存在,這種特性成為cache的透明性。地址映射方式有全相聯方式、直接方式和組相聯方式三種。在全相聯映射中,將主存中一個塊的地址(塊號)與塊的內容(字)一起存於cache的行中,其中塊地址存於cache行的標記部分中。這種帶全部塊地址一起保存的方法,可使主存的一個塊直接拷貝到cache中的任意一行上。全相聯映射方式的檢索過程:CPU訪存指令指定了一個內存地址(包括主存和cache),為了快速檢,指令中的塊號與cache中所有行的標記同時在比較器中進行比較。如果塊號命中,則按字地址從cache中讀取一個字;如果塊號未命中,則按內存地址從主存中讀取這個字。在全相聯cache中,全部標記用一個相聯存儲器來實現,全部數據用一個普通RAM來實現。全相聯方式的主要缺點是比較器電路難於設計和實現,因此只適合於小容量cache採用。直接映射方式也是一種多對一的映射關系,但一個主存塊只能拷貝到cache的一個特定行位置上去。直接映射方式的優點是硬體簡單,成本低。缺點是每個主存塊只有一個固定的行位置可存放,如果塊號相距m整數倍的兩個塊存於同一cache行時,就要發生沖突。發生沖突時就要將原先存入的行換出去,但很可能過一段時間又要換入。頻繁的置換會使cache的效率下降。因此直接映射方式適合於需要大容量cache的場合,更多的行數可以減小沖突的機會。採用直接映射時,cache無需考慮替換問題。從存放位置的靈活性和命中率來看,全相聯映射方式為優;從比較器電路簡單及硬體投資來說,直接映射方式為佳。組相聯映射方式將cache分成u組,每組v行,主存塊存放到哪個組是固定的,至於存到該組哪一行是靈活的。組相聯映射方式的比較器電路容易設計和實現,而塊在組中的排放又有一定的靈活性,使沖突減少。全相聯映射方式和組相聯映射方式速度較低,通常適合於小容量cache。

cache工作原理要求它盡量保存最新數據。當一個新的主存塊需要拷貝到cache,而允許存放此塊的行位置都被其他主存塊占滿時,就要產生替換。對直接映射方式來說,因一個主存塊只有一個特定的行位置可存放,所以只要把此特定位置上的原主存塊換出cache即可。對全相聯和組相聯cache來說,就要允許存放新主存塊的若干特定行中選取一行換出。cache的替換全部靠硬體實現。

如何選取就涉及替換策略,又稱替換演算法,硬體實現的常用演算法主要有以下三種:1)近期最少使用(LRU)演算法:將近期內長久未被訪問的行換出;2)最不經常使用(LFU)演算法:將一段時間內被訪問次數最少的那行數據換出;3)隨機替換:實際上是不要什麼演算法,從特定的行位置中隨機地選出一行換出即可。在Cache替換演算法中,近期最少使用法比較正確地利用了程序訪存局部性原理,替換出近期用得最少的存儲塊,命中率較高,是一種比較好的替換演算法;隨機法是隨機地確定替換的存儲單元,先進先出法是替換最早調入的存儲單元,它們都沒有根據程序訪存局部性原理,命中率較低;而後進先出法不是cache所使用的替換演算法,此法在堆棧存儲結構中使用。

【虛擬存儲器】

常用的虛擬存儲系統由主存-輔存兩級存儲器組成,其中輔存是大容量的磁表面存儲器。在虛擬存儲器中,主存的內容只是輔存的一部分內容。虛擬存儲系統是為了提高存儲系統的性能價格比而構造的分層存儲體系,力圖使存儲系統的性能接近高速存儲器,而價格和容量接近低速存儲器。虛擬存儲利用了程序運行時的局部性原理把最近常用的信息塊從相對慢速而大容量的存儲器調入相對高速而小容量的存儲器。虛擬存儲主要是解決存儲容量問題,另外還包括存儲管理、主存分配和存儲保護等方面。虛存所依賴的輔存與CPU之間不存在直接的數據通路,當主存不命中時只能通過調頁解決,CPU最終還是要訪問主存。虛存管理由軟體(操作系統)和硬體共同完成,由於軟體的介入,虛存對實現存儲管理的系統程序員不透明,而只對應用程序員透明(段式和段頁式管理對應用程序員“半透明”)。主存未命中時系統的性能損失要遠大於cache未命中時的損失。

【虛擬內存管理】

虛存機制也要解決一些關鍵問題:(1)調度問題:決定哪些程序和數據應被調入主存;(2)地址映射問題:在訪問主存時把虛地址變為主存物理地址,在訪問輔存時把虛地址變為輔存的物理地址,以便換頁;(3)替換問題:解決哪些程序和數據應被調出主存;虛擬存儲器的替換演算法與cache的替換演算法類似,有FIFO演算法、LRU演算法、LFU演算法,虛擬存儲器的替換有操作系統的支持(4)更新問題:確保主存和輔存的一致性。虛擬存儲器分為頁式、段式、段頁式三種。

頁式虛擬存儲系統中,虛地址空間被分成等長大小的頁,稱為邏輯頁;主存空間也被分成同樣大小的頁,稱為物理頁。相應地,虛地址分為兩個欄位:高欄位為邏輯頁號,低欄位為頁內地址(偏移量);實存地址也分為兩個欄位:高欄位為物理頁號,低欄位為頁內地址。通過頁表可以把虛地址(邏輯地址)轉換成物理地址。在大多數系統中,每個進程對應一個頁表。現代的中央處理機通常有專門的硬體支持地址變換。每個進程所需的頁數並不固定,所以頁表的長度是可變的,因此通常的實現方法是把頁表的基地址保存在寄存器中,而頁表本身則放在主存中。由於虛地址空間可以很大,因而每個進程的頁表有可能非常長。由於頁表通常在主存中,因而即使邏輯頁已經在主存中,也要至少訪問兩次物理存儲器才能實現一次訪存,這將使虛擬存儲器的存取時間加倍。為了避免對主存訪問次數的增多,可以對頁表本身實行二級緩存,把頁表中的最活躍部分存放在高速存儲器中。這個專用於頁表緩存的高速存儲部件通常稱為轉換後援緩沖器(TLB),又稱快表。而保存在主存中的完整頁表則稱為慢表。快表的作用是加快地址轉換。TLB的作用和與主存與CPU之間的cache作用相似,通常由相聯存儲器實現,容量比慢表小得多,存儲慢表中部分信息的副本,可以完成硬體高速檢索操作。地址轉換時,根據邏輯頁號同時查快表和慢表,當在快表中有此邏輯號時,就能很快地找到對應的物理頁號。根據程序的局部性原理,多數虛擬存儲器訪問都將通過TLB進行,從而有效降低訪存的時間延遲。由於TLB的緩沖過程與cache的緩沖過程是獨立的,所以在每次存儲器訪問過程中有可能要經歷多次變換。

;

❼ 計算機中的對應用程序員、系統程序員等透明的透明什麼意思

程序狀態字對應用程序員是透明的,對系統程序員是不透明的。

❽ 構造虛擬儲存器必須具備哪些條件

cache存儲器、主存和輔存是構成虛擬存儲器的重要部分,cache和主存構成了系統的內存,而主存和輔存依靠輔助軟硬體的支持構成了虛擬存儲器。
一、異構體系

從虛存的概念可以看出,主存-輔存的訪問機制與cache-主存的訪問機制是類似的。這是由cache存儲器、主存和輔存構成的三級存儲體系中的兩個層次。cache和主存之間以及主存和輔存之間分別有輔助硬體和輔助軟硬體負責地址變換與管理,以便各級存儲器能夠組成有機的三級存儲體系。cache和主存構成了系統的內存,而主存和輔存依靠輔助軟硬體的支持構成了虛擬存儲器。
在三級存儲體系中,cache-主存和主存-輔存這兩個存儲層次有許多相同點:
(1)出發點相同:二者都是為了提高存儲系統的性能價格比而構造的分層存儲體系,都力圖使存儲系統的性能接近高速存儲器,而價格和容量接近低速存儲器。
(2)原理相同:都是利用了程序運行時的局部性原理把最近常用的信息塊從相對慢速而大容量的存儲器調入相對高速而小容量的存儲器。
但cache-主存和主存-輔存這兩個存儲層次也有許多不同之處:
(1)側重點不同:cache主要解決主存與CPU的速度差異問題;而就性能價格比的提高而言,虛存主要是解決存儲容量問題,另外還包括存儲管理、主存分配和存儲保護等方面。
(2)數據通路不同:CPU與cache和主存之間均有直接訪問通路,cache不命中時可直接訪問主存;而虛存所依賴的輔存與CPU之間不存在直接的數據通路,當主存不命中時只能通過調頁解決,CPU最終還是要訪問主存。
(3)透明性不同:cache的管理完全由硬體完成,對系統程序員和應用程序員均透明;而虛存管理由軟體(操作系統)和硬體共同完成,由於軟體的介入,虛存對實現存儲管理的系統程序員不透明,而只對應用程序員透明(段式和段頁式管理對應用程序員"半透明")。
(4)未命中時的損失不同:由於主存的存取時間是cache的存取時間的5~10倍,而主存的存取速度通常比輔存的存取速度快上千倍,故主存未命中時系統的性能損失要遠大於cache未命中時的損失。
二、關鍵問題

(1)調度問題:決定哪些程序和數據應被調入主存。
(2)地址映射問題:在訪問主存時把虛地址變為主存物理地址(這一過程稱為內地址變換);在訪問輔存時把虛地址變成輔存的物理地址(這一過程稱為外地址變換),以便換頁。此外還要解決主存分配、存儲保護與程序再定位等問題。
(3)替換問題:決定哪些程序和數據應被調出主存。
(4)更新問題:確保主存與輔存的一致性。
在操作系統的控制下,硬體和系統軟體為用戶解決了上述問題,從而使應用程序的編程大大簡化。
三、工作原理

虛擬存儲器是由硬體和操作系統自動實現存儲信息調度和管理的。它的工作過程包括6個步驟:
①中央處理器訪問主存的邏輯地址分解成組號a和組內地址b,並對組號a進行地址變換,即將邏輯組號a作為索引,查地址變換表,以確定該組信息是否存放在主存內。
②如該組號已在主存內,則轉而執行④;如果該組號不在主存內,則檢查主存中是否有空閑區,如果沒有,便將某個暫時不用的組調出送往輔存,以便將這組信息調入主存。
③從輔存讀出所要的組,並送到主存空閑區,然後將那個空閑的物理組號a和邏輯組號a登錄在地址變換表中。
④從地址變換表讀出與邏輯組號a對應的物理組號a。
⑤從物理組號a和組內位元組地址b得到物理地址。
⑥根據物理地址從主存中存取必要的信息。

❾ 計組,請問這個對程序員透明怎麼理解

也就是站在程序員的角度,感覺不到緩存和物理內存的存在,能看到的只有虛擬內存。

❿ 「對程序員是透明的」中的「透明」是什麼意思

字面理解透明的意思,透明有兩種解釋:
一種是:能看見一個容器裡面的詳細、具體的內容。
二種:整個容器都是透明的,什麼也看不見呢
兩種完全對立的理解,但在程序員的世界裡,透明對應的是第二種理解。就是你完全不知道某模塊內部實現,也不需要知道,因為無論它的內部是如何實現的,它提供的對外介面是一致的,調用介面的人無需關心其內部實現原理。