存儲器分頁機制
1 分頁機制
在虛擬內存中,頁表是個映射表的概念, 即從進程能理解的線性地址(linear address)映射到存儲器上的物理地址(phisical address).
很顯然,這個頁表是需要常駐內存的東西, 以應對頻繁的查詢映射需要(實際上,現代支持VM的處理器都有一個叫TLB的硬體級頁表緩存部件,本文不討論)。
1.1 為什麼使用多級頁表來完成映射
但是為什麼要使用多級頁表來完成映射呢?
用來將虛擬地址映射到物理地址的數據結構稱為頁表, 實現兩個地址空間的關聯最容易的方式是使用數組, 對虛擬地址空間中的每一頁, 都分配一個數組項. 該數組指向與之關聯的頁幀, 但這會引發一個問題, 例如, IA-32體系結構使用4KB大小的頁, 在虛擬地址空間為4GB的前提下, 則需要包含100萬項的頁表. 這個問題在64位體系結構下, 情況會更加糟糕. 而每個進程都需要自身的頁表, 這回導致系統中大量的所有內存都用來保存頁表.
設想一個典型的32位的X86系統,它的虛擬內存用戶空間(user space)大小為3G, 並且典型的一個頁表項(page table entry, pte)大小為4 bytes,每一個頁(page)大小為4k bytes。那麼這3G空間一共有(3G/4k=)786432個頁面,每個頁面需要一個pte來保存映射信息,這樣一共需要786432個pte!
如何存儲這些信息呢?一個直觀的做法是用數組來存儲,這樣每個頁能存儲(4k/4=)1K個,這樣一共需要(786432/1k=)768個連續的物理頁面(phsical page)。而且,這只是一個進程,如果要存放所有N個進程,這個數目還要乘上N! 這是個巨大的數目,哪怕內存能提供這樣數量的空間,要找到連續768個連續的物理頁面在系統運行一段時間後碎片化的情況下,也是不現實的。
為減少頁表的大小並容許忽略不需要的區域, 計算機體系結構的涉及會將虛擬地址分成多個部分. 同時虛擬地址空間的大部分們區域都沒有使用, 因而頁沒有關聯到頁幀, 那麼就可以使用功能相同但內存用量少的多的模型: 多級頁表
但是新的問題來了, 到底採用幾級頁表合適呢?
1.2 32位系統中2級頁表
從80386開始, intel處理器的分頁單元是4KB的頁, 32位的地址空間被分為3部分
單元
描述
頁目錄表Directory 最高10位
頁中間表Table 中間10位
頁內偏移 最低12位
即頁表被劃分為頁目錄表Directory和頁中間表Tabl兩個部分
此種情況下, 線性地址的轉換分為兩步完成.
第一步, 基於兩級轉換表(頁目錄表和頁中間表), 最終查找到地址所在的頁幀
第二步, 基於偏移, 在所在的頁幀中查找到對應偏移的物理地址
使用這種二級頁表可以有效的減少每個進程頁表所需的RAM的數量. 如果使用簡單的一級頁表, 那將需要高達220個頁表, 假設每項4B, 則共需要佔用220?4B=4MB的RAM來表示每個進程的頁表. 當然我們並不需要映射所有的線性地址空間(32位機器上線性地址空間為4GB), 內核通常只為進程實際使用的那些虛擬內存區請求頁表來減少內存使用量.
1.3 64位系統中的分頁
正常來說, 對於32位的系統兩級頁表已經足夠了, 但是對於64位系統的計算機, 這遠遠不夠.
首先假設一個大小為4KB的標准頁. 因為1KB覆蓋210個地址的范圍, 4KB覆蓋212個地址, 所以offset欄位需要12位.
這樣線性地址空間就剩下64-12=52位分配給頁中間表Table和頁目錄表Directory. 如果我們現在決定僅僅使用64位中的48位來定址(這個限制其實已經足夠了, 2^48=256TB, 即可達到256TB的定址空間). 剩下的48-12=36位被分配給Table和Directory欄位. 即使我們現在決定位兩個欄位各預留18位, 那麼每個進程的頁目錄和頁表都包含218個項, 即超過256000個項.
基於這個原因, 所有64位處理器的硬體分頁系統都使用了額外的分頁級別. 使用的級別取決於處理器的類型
平台名稱
頁大小
定址所使用的位數
分頁級別數
線性地址分級
alpha 8KB 43 3 10 + 10 + 10 + 13
ia64 4KB 39 3 9 + 9 + 9 + 12
ppc64 4KB 41 3 10 + 10 + 9 + 12
sh64 4KB 41 3 10 + 10 + 9 + 12
x86_64 4KB 48 4 9 + 9 + 9 + 9 + 12
Ⅱ 、虛擬存儲器系統採用請求分頁機制,其中從內存讀/寫一個單元需要花費100ns。
摘要 您好,您的問題我已經看到了,正在整理答案,請您稍等一會兒~
Ⅲ 分頁存儲管理的基本思想
分頁式存儲管理的基本原理:採用分頁存儲器允許把一個作業存放到若干不相鄰的分區中,既可免去移動信息的工作,又可盡量減少主存的碎片。分頁式存儲管理的基本原理如下: 1、 頁框:物理地址分成大小相等的許多區,每個區稱為一塊; 2、址分成大小相等的區,區的大小與塊的大小相等,每個稱一個頁面。 3、 邏輯地址形式:與此對應,分頁存儲器的邏輯地址由兩部分組成,頁號和單元號。邏輯地址格式為 頁號 單元號(頁內地址) 4、頁表和地址轉換:如何保證程序正確執行呢?採用的辦法是動態重定位技術,讓程序的指令執行時作地址變換,由於程序段以頁為單位,所以,我們給每個頁設立一個重定位寄存器,這些重定位寄存器的集合便稱頁表。頁表是操作系統為每個用戶作業建立的,用來記錄程序頁面和主存對應頁框的對照表,頁表中的每一欄指明了程序中的一個頁面和分得的頁框的對應關系。絕對地址=塊號*塊長+單元號 以上從拓撲結構角度分析了對稱式與非對稱式虛擬存儲方案的異同,實際從虛擬化存儲的實現原理來講也有兩種方式;即數據塊虛擬與虛擬文件系統. 數據塊虛擬存儲方案著重解決數據傳輸過程中的沖突和延時問題.在多交換機組成的大型Fabric結構的SAN中,由於多台主機通過多個交換機埠訪問存儲設備,延時和數據塊沖突問題非常嚴重.數據塊虛擬存儲方案利用虛擬的多埠並行技術,為多台客戶機提供了極高的帶寬,最大限度上減少了延時與沖突的發生,在實際應用中,數據塊虛擬存儲方案以對稱式拓撲結構為表現形式. 虛擬文件系統存儲方案著重解決大規模網路中文件共享的安全機制問題.通過對不同的站點指定不同的訪問許可權,保證網路文件的安全.在實際應用中,虛擬文件系統存儲方案以非對稱式拓撲結構為表現形式. 虛擬存儲技術,實際上是虛擬存儲技術的一個方面,特指以CPU時間和外存空間換取昂貴內存空間的操作系統中的資源轉換技術 基本思想:程序,數據,堆棧的大小可以超過內存的大小,操作系統把程序當前使用的部分保留在內存,而把其他部分保存在磁碟上,並在需要時在內存和磁碟之間動態交換,虛擬存儲器支持多道程序設計技術 目的:提高內存利用率管理方式A 請求式分頁存儲管理 在進程開始運行之前,不是裝入全部頁面,而是裝入一個或零個頁面,之後根據進程運行的需要,動態裝入其他頁面;當內存空間已滿,而又需要裝入新的頁面時,則根據某種演算法淘汰某個頁面,以便裝入新的頁面 B 請求式分段存儲管理 為了能實現虛擬存儲,段式邏輯地址空間中的程序段在運行時並不全部裝入內存,而是如同請求式分頁存儲管理,首先調入一個或若干個程序段運行,在運行過程中調用到哪段時,就根據該段長度在內存分配一個連續的分區給它使用.若內存中沒有足夠大的空閑分區,則考慮進行段的緊湊或將某段或某些段淘汰出去,這種存儲管理技術稱為請求式分段存儲管理
Ⅳ 分頁式存儲器的地址分成頁號和頁內地址兩部分,但它仍是線性地址.為什麼
分頁式存儲管理的基本原理:採用分頁存儲器允許把一個作業存放到若干不相鄰的分區中,既可免去移動信息的工作,又可盡量減少主存的碎片。分頁式存儲管理的基本原理如下: 1、 頁框:物理地址分成大小相等的許多區,每個區稱為一塊
Ⅳ RAM和flash儲存晶元為什麼要分塊分頁
形象點說,每個數據存放的地方就像是一個小房子,每個房子都有一個地址。整個內存就像是一座城市,如果給每個房子從1開始編號,最後指不定要到多少號,找起來也麻煩,於是有了街區(頁)的概念。cpu找一個數據,有兩部分地址,基本地址,偏移地址。用基本地址找到這個頁(東山路),然後用偏移地址(001號)找到具體位置。就是這樣。
塊跟頁的概念差不多,多用於外部存儲器。
Ⅵ 計算機管理內存的方法有哪些優缺點是什麼
內存管理是操作系統最重要的一部分,它決定了操作系統的性能。為了說明如何進行內存訪問的操作,有必要先介紹有關內存管理的一些術語及背景。
2.1 虛擬內存
所謂虛擬內存就是用硬碟空間來彌補計算機物理內存不足的技術。Windows操作系統用虛擬內存來動態管理運行時的交換文件。為了提供比實際物理內存還多的內存容量,Windows操作系統佔用了硬碟上的一部分空間作為虛擬內存。當CPU有要求時,首先會讀取內存中的資料。當內存容量不夠用時,Windows就會將需要暫時存儲的數據寫入硬碟。所以,計算機的內存大小等於實際物理內存容量加上「分頁文件」(就是交換文件)的大小。Windows 98中分頁文件名採用Win386.swp形式,而Windows 2K/XP/2003中採用pagefile.sys,默認位於系統分區的根目錄下,具有隱藏屬性。如果需要的話,「分頁文件」會動用硬碟上所有可以使用的空間。
安裝好Windows以後,系統採用默認的設置自動處理虛擬內存,為了優化系統的 工作性能,根據Windows操作系統中虛擬內存的設置方法,可以自己動手設置內存管理參數。
2.2 CPU工作模式
計算機系統有不同的工作模式,在不同的模式下,CPU的定址方式是不一樣的,通常見到的CPU工作模式如下所述。
2.2.1.實模式
實模式是為了Pentium處理器與8086/8088兼容而設置的。8086和8088隻能工作於實模式,而80286及以上的處理器可工作於實模式或者保護模式下。實模式操作方式只允許微處理器定址第一個1MB的存儲空間,從0x00000~0xFFFFF。在實模式下的存儲器定址是段地址+偏移地址。例如段寄存器的內容是0x1000,則它定址開始於0x10000的段,偏移量大小從0x0000~0xFFFF,即偏移量的空間大小是216=64KB。
2.2.2.保護地址模式
保護地址模式又稱為虛擬地址存儲管理方式。保護模式下主要有兩種特徵。
(1)內存分段管理
在保護模式下,各個16位的段寄存器裡面放置的是選擇符。各項任務共享的內存空間由全局選擇符來索引;而某個任務獨立使用的內存空間由局部選擇符來索引。由選擇符的高13位作為偏移量,再以CPU內部事先初始化好的GDTR(全局描述符表寄存器)中的32位基地址為基,可以獲得相應的描述符。由描述符中的線性地址決定段的基地址。再利用指令(或其他方式)給出的偏移量,便可以得到線性地址,即
線性地址=段線性基地址+偏移量
保護模式採用上面介紹的分段管理,可以實現的存儲器定址范圍為4GB,通常把通過段變換獲得的地址稱為線性地址。這種線性地址是同32位物理地址對應的,為了獲得更大的定址范圍,還可以對線性地址實行分頁管理。在保護模式下,處理器通過CRO控制寄存器的PG(page)位進行管理,當PG=0時,由段變換獲得的線性地址可直接作為物理地址使用;若PG=1,則進一步進行頁變換。
(2)內存分頁管理
分頁管理的基本思想是將內存分為大小固定為4KB或者1MB的若干頁,通過一定機制對內存進行管理。與前面的分段管理類似,程序或數據將根據其長度分配若干頁。為了進行頁面管理,在分頁管理機制中採用了頁表、頁目錄對線性地址作頁變換。
2.3 邏輯、線性和物理地址
在保護地址模式下,經常遇到三種地址:邏輯地址(Logical Address)、線性地址(Linear Address)和物理地址(Physical Address)。CPU通過分段機制將邏輯地址轉換為線性地址,再通過分頁機制將線性地址轉換為物理地址。
(1)邏輯地址
這是內存地址的精確描述,通常表示為十六進制:xxxx:YYYYYYYY,這里xxxx為selector(選擇器),而YYYYYYYY是針對selector所選擇的段地址的線性偏移量。除了指定xxxx的具體數值外,還可使用具體的段寄存器的名字來替代,如CS(代碼段),DS(數據段),ES(擴展段),FS(附加數據段#1),GS(附加數據段#2)和SS(堆棧段)。這些符號都來自舊的「段:偏移量」風格,在 8086 實模式下使用此種方式來指定「far pointers」(遠指針)。
(2)線性地址
線性地址是邏輯地址到物理地址變換之間的中間層,是處理器可定址的內存空間(稱為線性地址空間)中的地址。程序代碼會產生邏輯地址,或者說是段中的偏移地址,加上相應段的基地址就生成了一個線性地址。
如果啟用了分頁機制,那麼線性地址可以再經變換以產生一個物理地址。若沒有啟用分頁機制,那麼線性地址直接就是物理地址。不過,在開啟分頁功能之後,一個線性地址可能沒有相對映的物理地址,因為它所對應的內存可能被交換到硬碟中。32位線性地址可用於定位4GB存儲單元。
(3)物理地址
所謂物理地址,就是指系統內存的真正地址。對於32 位的操作系統,它的范圍為0x00000000~0xFFFFFFFF,共有4GB。只有當CPU工作於分頁模式時,此種類型的地址才會變得非常「有趣」。本質上,一個物理地址是CPU插腳上可測量的電壓。操作系統通過設立頁表將線性地址映射為物理地址。Windows 2K/XP所用頁表布局的某些屬性對於調試軟體開發人員非常有用。
2.4 存儲器分頁管理機制
程序代碼和數據必須駐留在內存中才能得以運行,然而系統內存量很有限,往往不能容納一個完整程序的所有代碼和數據,特別是在多任務系統中,如Windows,可能需要同時打開多個執行程序,如畫圖程序,瀏覽器等,想讓內存駐留所有這些程序顯然不大可能,因此首先能想到的就是將程序分割成小部分,只讓當前系統運行它所有需要的那部分留在內存,其他部分都留在硬碟(虛擬內存)。當系統處理完當前任務片段後,再從外存中調入下一個待運行的任務片段。於是,存儲器分頁管理機制隨之而被發明。
如前所述,在保護模式下,控制寄存器CR0中的最高位PG位控制分頁管理機制是否生效。如果PG=1,分頁機制生效,把線性地址轉換為物理地址。如果PG=0,分頁機制無效,線性地址就直接作為物理地址。必須注意,只有在保護方式下分頁機制才可能生效。只有在保證使PE位為1的前提下,才能夠使PG位為1,否則將引起通用保護 故障。
分頁機制把線性地址空間和物理地址空間分別劃分為大小相同的塊。這樣的塊稱為頁。通過在線性地址空間的頁與物理地址空間的頁之間建立映射,分頁機制可以實現線性地址到物理地址的轉換。線性地址空間的頁與物理地址空間的頁之間的映射可根據需要來確定。線性地址空間的任何一頁,可以映射為物理地址空間中的任何一頁。
2.5 線性地址到物理地址的轉換
線性地址空間的頁到物理地址空間的頁之間的映射用表來描述。目前所見到的有4KB和1MB大小的物理分頁,對於4KB頁面的分頁,線性地址到物理地址的轉換過程如圖所示。對於1MB頁面分頁,線性地址到物理地址的轉換與4KB的基本相似,不同的是線性地址的低22位對應一個物理頁面。
對於4KB頁面的線性地址到物理地址的轉換示意圖
對於4KB頁面分頁,頁映射表的第一級稱為頁目錄表,存儲在一個物理頁中。頁目錄表共有1024個頁目錄項(PDE,page directory entry),其中,每個PDE為4位元組長,包含對應第二級表所在物理地址空間頁的頁碼。頁映射表的第二級稱為頁表,每張頁表也被存儲在一個物理頁中。每張頁表有1024個頁表項(PTE,page table entry),每個PTE為4位元組長,其中PTE的低12位用來存放諸如「頁是否存在於內存」或「頁的許可權」等信息。
一個線性地址大小為4個位元組(32bit),包含著找到物理地址的信息,分為3個部分:第22位到第31位這10位(最高10位)是頁目錄中的索引,第12位到第21位這10位是頁表中的索引,第0位到第11位這12位(低12位)是頁內偏移。在把一個線性地址轉換成物理地址時,CPU首先根據CR3中的值,找到頁目錄所在的物理頁。然後根據線性地址的第22位到第31位這10位(最高的10bit)的值作為索引,找到相應的PDE,其中含有這個虛擬地址所對應頁表的物理地址。有了頁表的物理地址,再把虛擬地址的第12位到第21位這10位的值作為索引,找到該頁表中相應的PTE,其中就有這個虛擬地址所對應物理頁的物理地址。最後用線性地址的最低12位,也就是頁內偏移,加上這個物理頁的物理地址,就得到了該線性地址所對應的物理地址。
Ⅶ 存儲器的原理是什麼
存儲器講述工作原理及作用
介紹
存儲器(Memory)是現代信息技術中用於保存信息的記憶設備。其概念很廣,有很多層次,在數字系統中,只要能保存二進制數據的都可以是存儲器;在集成電路中,一個沒有實物形式的具有存儲功能的電路也叫存儲器,如RAM、FIFO等;在系統中,具有實物形式的存儲設備也叫存儲器,如內存條、TF卡等。計算機中全部信息,包括輸入的原始數據、計算機程序、中間運行結果和最終運行結果都保存在存儲器中。它根據控制器指定的位置存入和取出信息。有了存儲器,計算機才有記憶功能,才能保證正常工作。計算機中的存儲器按用途存儲器可分為主存儲器(內存)和輔助存儲器(外存),也有分為外部存儲器和內部存儲器的分類方法。外存通常是磁性介質或光碟等,能長期保存信息。內存指主板上的存儲部件,用來存放當前正在執行的數據和程序,但僅用於暫時存放程序和數據,關閉電源或斷電,數據會丟失。
2.按存取方式分類
(1)隨機存儲器(RAM):如果存儲器中任何存儲單元的內容都能被隨機存取,且存取時間與存儲單元的物理位置無關,則這種存儲器稱為隨機存儲器(RAM)。RAM主要用來存放各種輸入/輸出的程序、數據、中間運算結果以及存放與外界交換的信息和做堆棧用。隨機存儲器主要充當高速緩沖存儲器和主存儲器。
(2)串列訪問存儲器(SAS):如果存儲器只能按某種順序來存取,也就是說,存取時間與存儲單元的物理位置有關,則這種存儲器稱為串列訪問存儲器。串列存儲器又可分為順序存取存儲器(SAM)和直接存取存儲器(DAM)。順序存取存儲器是完全的串列訪問存儲器,如磁帶,信息以順序的方式從存儲介質的始端開始寫入(或讀出);直接存取存儲器是部分串列訪問存儲器,如磁碟存儲器,它介於順序存取和隨機存取之間。
(3)只讀存儲器(ROM):只讀存儲器是一種對其內容只能讀不能寫入的存儲器,即預先一次寫入的存儲器。通常用來存放固定不變的信息。如經常用作微程序控制存儲器。目前已有可重寫的只讀存儲器。常見的有掩模ROM(MROM),可擦除可編程ROM(EPROM),電可擦除可編程ROM(EEPROM).ROM的電路比RAM的簡單、集成度高,成本低,且是一種非易失性存儲器,計算機常把一些管理、監控程序、成熟的用戶程序放在ROM中。
3.按信息的可保存性分類
非永久記憶的存儲器:斷電後信息就消失的存儲器,如半導體讀/寫存儲器RAM。
永久性記憶的存儲器:斷電後仍能保存信息的存儲器,如磁性材料做成的存儲器以及半導體ROM。
4.按在計算機系統中的作用分
根據存儲器在計算機系統中所起的作用,可分為主存儲器、輔助存儲器、高速緩沖存儲器、控制存儲器等。為了解決對存儲器要求容量大,速度快,成本低三者之間的矛盾,目前通常採用多級存儲器體系結構,即使用高速緩沖存儲器、主存儲器和外存儲器。
能力影響
從寫命令轉換到讀命令,在某個時間訪問某個地址,以及刷新數據等操作都要求數據匯流排在一定時間內保持休止狀態,這樣就不能充分利用存儲器通道。此外,寬並行匯流排和DRAM內核預取都經常導致不必要的大數據量存取。在指定的時間段內,存儲器控制器能存取的有用數據稱為有效數據速率,這很大程度上取決於系統的特定應用。有效數據速率隨著時間而變化,常低於峰值數據速率。在某些系統中,有效數據速率可下降到峰值速率的10%以下。
通常,這些系統受益於那些能產生更高有效數據速率的存儲器技術的變化。在CPU方面存在類似的現象,最近幾年諸如AMD和 TRANSMETA等公司已經指出,在測量基於CPU的系統的性能時,時鍾頻率不是唯一的要素。存儲器技術已經很成熟,峰值速率和有效數據速率或許並不比以前匹配的更好。盡管峰值速率依然是存儲器技術最重要的參數之一,但其他結構參數也可以極大地影響存儲器系統的性能。
影響有效數據速率的參數
有幾類影響有效數據速率的參數,其一是導致數據匯流排進入若干周期的停止狀態。在這類參數中,匯流排轉換、行周期時間、CAS延時以及RAS到CAS的延時(tRCD)引發系統結構中的大部分延遲問題。
匯流排轉換本身會在數據通道上產生非常長的停止時間。以GDDR3系統為例,該系統對存儲器的開放頁不斷寫入數據。在這期間,存儲器系統的有效數據速率與其峰值速率相當。不過,假設100個時鍾周期中,存儲器控制器從讀轉換到寫。由於這個轉換需要6個時鍾周期,有效的數據速率下降到峰值速率的 94%。在這100個時鍾周期中,如果存儲器控制器將匯流排從寫轉換到讀的話,將會丟失更多的時鍾周期。這種存儲器技術在從寫轉換到讀時需要15個空閑周期,這會將有效數據速率進一步降低到峰值速率的79%。表1顯示出針幾種高性能存儲器技術類似的計算結果。
顯然,所有的存儲器技術並不相同。需要很多匯流排轉換的系統設計師可以選用諸如XDR、RDRAM或者DDR2這些更高效的技術來提升性能。另一方面,如果系統能將處理事務分組成非常長的讀寫序列,那麼匯流排轉換對有效帶寬的影響最小。不過,其他的增加延遲現象,例如庫(bank)沖突會降低有效帶寬,對性能產生負面影響。
DRAM技術要求庫的頁或行在存取之前開放。一旦開放,在一個最小周期時間,即行周期時間(tRC)結束之前,同一個庫中的不同頁不能開放。對存儲器開放庫的不同頁存取被稱為分頁遺漏,這會導致與任何tRC間隔未滿足部分相關的延遲。對於還沒有開放足夠周期以滿足tRC間隙的庫而言,分頁遺漏被稱為庫沖突。而tRC決定了庫沖突延遲時間的長短,在給定的DRAM上可用的庫數量直接影響庫沖突產生的頻率。
大多數存儲器技術有4個或者8個庫,在數十個時鍾周期具有tRC值。在隨機負載情況下,那些具有8個庫的內核比具有4個庫的內核所發生的庫沖突更少。盡管tRC與庫數量之間的相互影響很復雜,但是其累計影響可用多種方法量化。
存儲器讀事務處理
考慮三種簡單的存儲器讀事務處理情況。第一種情況,存儲器控制器發出每個事務處理,該事務處理與前一個事務處理產生一個庫沖突。控制器必須在打開一個頁和打開後續頁之間等待一個tRC時間,這樣增加了與頁循環相關的最大延遲時間。在這種情況下的有效數據速率很大程度上決定於I/O,並主要受限於DRAM內核電路。最大的庫沖突頻率將有效帶寬削減到當前最高端存儲器技術峰值的20%到30%。
在第二種情況下,每個事務處理都以隨機產生的地址為目標。此時,產生庫沖突的機會取決於很多因素,包括tRC和存儲器內核中庫數量之間的相互作用。tRC值越小,開放頁循環地越快,導致庫沖突的損失越小。此外,存儲器技術具有的庫越多,隨機地址存取庫沖突的機率就越小。
第三種情況,每個事務處理就是一次頁命中,在開放頁中定址不同的列地址。控制器不必訪問關閉頁,允許完全利用匯流排,這樣就得到一種理想的情況,即有效數據速率等於峰值速率。
第一種和第三種情況都涉及到簡單的計算,隨機情況受其他的特性影響,這些特性沒有包括在DRAM或者存儲器介面中。存儲器控制器仲裁和排隊會極大地改善庫沖突頻率,因為更有可能出現不產生沖突的事務處理,而不是那些導致庫沖突的事務處理。
然而,增加存儲器隊列深度未必增加不同存儲器技術之間的相對有效數據速率。例如,即使增加存儲器控制隊列深度,XDR的有效數據速率也比 GDDR3高20%。存在這種增量主要是因為XDR具有更高的庫數量以及更低的tRC值。一般而言,更短的tRC間隔、更多的庫數量以及更大的控制器隊列能產生更高的有效帶寬。
實際上,很多效率限制現象是與行存取粒度相關的問題。tRC約束本質上要求存儲器控制器從新開放的行中存取一定量的數據,以確保數據管線保持充滿。事實上,為保持數據匯流排無中斷地運行,在開放一個行之後,只須讀取很少量的數據,即使不需要額外的數據。
另外一種減少存儲器系統有效帶寬的主要特性被歸類到列存取粒度范疇,它規定了每次讀寫操作必須傳輸的數據量。與之相反,行存取粒度規定每個行激活(一般指每個RAS的CAS操作)需要多少單獨的讀寫操作。列存取粒度對有效數據速率具有不易於量化的巨大影響。因為它規定一個讀或寫操作中需要傳輸的最小數據量,列存取粒度給那些一次只需要很少數據量的系統帶來了問題。例如,一個需要來自兩列各8位元組的16位元組存取粒度系統,必須讀取總共32位元組以存取兩個位置。因為只需要32個位元組中的16個位元組,系統的有效數據速率降低到峰值速率的50%。匯流排帶寬和脈沖時間長度這兩個結構參數規定了存儲器系統的存取粒度。
匯流排帶寬是指連接存儲器控制器和存儲器件之間的數據線數量。它設定最小的存取粒度,因為對於一個指定的存儲器事務處理,每條數據線必須至少傳遞一個數據位。而脈沖時間長度則規定對於指定的事務處理,每條數據線必須傳遞的位數量。每個事務處理中的每條數據線只傳一個數據位的存儲技術,其脈沖時間長度為1。總的列存取粒度很簡單:列存取粒度=匯流排寬度×脈沖時間長度。
很多系統架構僅僅通過增加DRAM器件和存儲匯流排帶寬就能增加存儲系統的可用帶寬。畢竟,如果4個400MHz數據速率的連接可實現 1.6GHz的總峰值帶寬,那麼8個連接將得到3.2GHz。增加一個DRAM器件,電路板上的連線以及ASIC的管腳就會增多,總峰值帶寬相應地倍增。
首要的是,架構師希望完全利用峰值帶寬,這已經達到他們通過物理設計存儲器匯流排所能達到的最大值。具有256位甚或512位存儲匯流排的圖形控制器已並不鮮見,這種控制器需要1,000個,甚至更多的管腳。封裝設計師、ASIC底層規劃工程師以及電路板設計工程師不能找到採用便宜的、商業上可行的方法來對這么多信號進行布線的矽片區域。僅僅增加匯流排寬度來獲得更高的峰值數據速率,會導致因為列存取粒度限制而降低有效帶寬。
假設某個特定存儲技術的脈沖時間長度等於1,對於一個存儲器處理,512位寬系統的存取粒度為512位(或者64位元組)。如果控制器只需要一小段數據,那麼剩下的數據就被浪費掉,這就降低了系統的有效數據速率。例如,只需要存儲系統32位元組數據的控制器將浪費剩餘的32位元組,進而導致有效的數據速率等於50%的峰值速率。這些計算都假定脈沖時間長度為1。隨著存儲器介面數據速率增加的趨勢,大多數新技術的最低脈沖時間長度都大於1。
選擇技巧
存儲器的類型將決定整個嵌入式系統的操作和性能,因此存儲器的選擇是一個非常重要的決策。無論系統是採用電池供電還是由市電供電,應用需求將決定存儲器的類型(易失性或非易失性)以及使用目的(存儲代碼、數據或者兩者兼有)。另外,在選擇過程中,存儲器的尺寸和成本也是需要考慮的重要因素。對於較小的系統,微控制器自帶的存儲器就有可能滿足系統要求,而較大的系統可能要求增加外部存儲器。為嵌入式系統選擇存儲器類型時,需要考慮一些設計參數,包括微控制器的選擇、電壓范圍、電池壽命、讀寫速度、存儲器尺寸、存儲器的特性、擦除/寫入的耐久性以及系統總成本。
選擇存儲器時應遵循的基本原則
1、內部存儲器與外部存儲器
一般情況下,當確定了存儲程序代碼和數據所需要的存儲空間之後,設計工程師將決定是採用內部存儲器還是外部存儲器。通常情況下,內部存儲器的性價比最高但靈活性最低,因此設計工程師必須確定對存儲的需求將來是否會增長,以及是否有某種途徑可以升級到代碼空間更大的微控制器。基於成本考慮,人們通常選擇能滿足應用要求的存儲器容量最小的微控制器,因此在預測代碼規模的時候要必須特別小心,因為代碼規模增大可能要求更換微控制器。目前市場上存在各種規模的外部存儲器器件,我們很容易通過增加存儲器來適應代碼規模的增加。有時這意味著以封裝尺寸相同但容量更大的存儲器替代現有的存儲器,或者在匯流排上增加存儲器。即使微控制器帶有內部存儲器,也可以通過增加外部串列EEPROM或快閃記憶體來滿足系統對非易失性存儲器的需求。
2、引導存儲器
在較大的微控制器系統或基於處理器的系統中,設計工程師可以利用引導代碼進行初始化。應用本身通常決定了是否需要引導代碼,以及是否需要專門的引導存儲器。例如,如果沒有外部的定址匯流排或串列引導介面,通常使用內部存儲器,而不需要專門的引導器件。但在一些沒有內部程序存儲器的系統中,初始化是操作代碼的一部分,因此所有代碼都將駐留在同一個外部程序存儲器中。某些微控制器既有內部存儲器也有外部定址匯流排,在這種情況下,引導代碼將駐留在內部存儲器中,而操作代碼在外部存儲器中。這很可能是最安全的方法,因為改變操作代碼時不會出現意外地修改引導代碼。在所有情況下,引導存儲器都必須是非易失性存儲器。
可以使用任何類型的存儲器來滿足嵌入式系統的要求,但終端應用和總成本要求通常是影響我們做出決策的主要因素。有時,把幾個類型的存儲器結合起來使用能更好地滿足應用系統的要求。例如,一些PDA設計同時使用易失性存儲器和非易失性存儲器作為程序存儲器和數據存儲器。把永久的程序保存在非易失性ROM中,而把由用戶下載的程序和數據存儲在有電池支持的易失性DRAM中。不管選擇哪種存儲器類型,在確定將被用於最終應用系統的存儲器之前,設計工程師必須仔細折中考慮各種設計因素。
Ⅷ 什麼是內存分頁存儲管理
分頁存儲管理是將各進程的地址空間分成大小相等的頁,把內存的存儲空間也分成與頁大小相同的片,稱為物理塊。在分配存儲空間時,以塊為單位來分配。
優點:有效解決存儲器的零頭問題,能在更高的程度上進行多道程序設計,從而相應提高了存儲器和CPU的利用率。
缺點:採用動態地址變換為增加計算機成本和降低CPU的速度。表格占內存空間,費時來管理表格。存在頁內碎片。作業動態的地址空間受內存容量限制。
Ⅸ 內存分頁機制是相對於虛擬內存 還是虛擬內存和物理內存都採用分頁機制
這是一種虛擬存儲器的實現方法。
虛擬存儲器的思想是程序、數據和堆棧的大小都有可能超過物理內存大小,由操作系統把當前使用的放在內存,而不需要的放在磁碟。
而絕大部分操作系統使用的虛擬存儲器技術就是分頁技術。
為了虛擬內存的使用方便,以頁為的單位,換頁管理內存
Ⅹ 80486系統中,存儲器為什麼要分段分段的原則是什麼
80386和80486cpu的地址線和數據線各為32,也就是說在實模式下該cpu訪問的最大存儲地址空間為2^32=4GB。那麼如果我要訪問的地址的空間起始地址超過了4GB呢?那怎麼辦,是不是就沒辦法了呢?
為解決這一問題,在這里提到的就是保護模式,保護模式下程序員可以獲得更大的存儲地址空間(即虛擬地址)。這樣,對於80286來說,偏移量為16位,每個段最大為64KB,可提供的虛擬存儲空間為1GB(2^30個位元組)。對於386和486CPU來說,偏移量為32位,每個段最大為4GB,可提供的虛擬存儲空間為2^46=64TB。保護模式下對存儲器分段也就是這個原理,這也是為了方便管理存儲器而採用的更有效的方法。後面也有比分段管理更高級的分頁管理機制。當然,這是後話了。(這個和寄存器間接定址類似卻略有不同)。
沒看懂的話建議您去看一些比較基礎的書籍,原理性的東西。這本《微機原理》貌似就不錯,呵呵。希望對你有所幫助。