必威电竞|足球世界杯竞猜平台

主存儲器
來源:互聯網

主存儲器(Main memory,MM)是指中央處理器 (CPU)可以直接訪問的、存放當前正在使用的(即執行中)程序和數據的存儲器,簡稱主存。目前,主存主要采用半導體存儲器。主存的存取速度和容量對整個計算機系統的性能有重要的影響。

概況

主存儲器,指的就是主板上的存儲部件,是CPU直接與之溝通,并用其存儲數據的部件,存放當前正在使用的(即執行中)的數據和程序,它的物理實質就是一組或多組具備數據輸入輸出和數據存儲功能的集成電路,內存只用于暫時存放程序和數據,一旦關閉電源或發生斷電,其中的程序和數據就會丟失。主存儲器從70年代起,已逐步采用大規模集成電路構成。用得最普遍的也是最經濟的動態隨機存儲器芯片(DRAM)。1995年集成度為64Mb(可存儲400萬個漢字)的DRAM芯片已經開始商業性生產,16MbDRAM芯片已成為市場主流產品。DRAM芯片的存取速度適中,一般為50~70ns。有一些改進型的DRAM,如EDODRAM(即擴充數據輸出的DRAM),其性能可較普通DRAM提高10%以上,又如SDRAM(即同步DRAM),其性能又可較EDODRAM提高10%左右。1998年SDRAM的后繼產品為SDRAMⅡ(或稱DDR,即雙倍數據速率)的品種已上市。

在追求速度和可靠性的場合,通常采用價格較貴的靜態隨機存儲器芯片(sram),其存取速度可以達到了1~15ns。無論主存采用DRAM還是SRAM芯片構成,在斷電時存儲的信息都會“丟失”,因此計算機設計者應考慮發生這種情況時,設法維持若干毫秒的供電以保存主存中的重要信息,以便供電恢復時計算機能恢復正常運行。鑒于上述情況,在某些應用中主存中存儲重要而相對固定的程序和數據的部分采用“非易失性”存儲器芯片(如EPROM,快閃存儲芯片等)構成;對于完全固定的程序,數據區域甚至采用只讀存儲器(ROM)芯片構成;主存的這些部分就不怕暫時供電中斷,還可以防止病毒侵入。

工作原理

它在工作時,中央處理器將地址送到地址寄存器( MAR),并發出“ 讀出” 或“ 寫 入”命令。地址譯碼器對地址進行譯碼,以選擇相應的存儲單元。主存接收到讀出命令,則將存儲單 元的數據讀出,送往存儲器數據寄存器(MDR),接收到寫入命令,則將MDR中的數據寫入存儲單元。地址寄存器、數據寄存器邏輯上屬主存儲器,物理位置在中央處理器芯片中。

結構構成

通常,主存儲器由只讀存儲器(ROM)和隨機存 取存儲器(RAM)兩部分組成。ROM中存儲的內容只能讀不能寫,并且斷電后信息仍保留,一般用于存放系統程序;RAM可讀可寫,但斷電后信息會丟失。主要用于存儲正在運行的用戶程序和數據。RAM和ROM共享主存的地址空間。

由于單個存儲芯片的容量有限,為了提供更大的主存容量,主存儲器通常由一定數量的存儲芯片組合而成。目前,主存儲器常以內存條的形式實現。內存條是在一個條形的印制電路板上,用若干個存儲芯片組成一定容量的存儲模塊。主板中通常有多個內存條的插槽,因此可以很方便地擴充主存的容量。按內存條的接口形式,常見內存條有兩種:單列直插內存條(SIMM)和雙列直插內存條(DIMM)。

技術指標

容量

在一個存儲器中容納的存儲單元總數通常稱為該存儲器的存儲容量。存儲容量用字數或字節數(B)來表示,如64K字,512KB,10MB。外存中為了表示更大的存儲容量,采用MB,GB,TB等單位。其中1KB=2^10B,1MB=2^20B,1GB=2^30B,1TB=2^40B。B表示字節,一個字節定義為8個二進制位,所以計算機中一個字的字長通常為8的倍數。存儲容量這一概念反映了存儲空間的大小。

時間

又稱存儲器訪問時間或讀∕寫時間,是指從啟動一次存儲器操作到完成該操作所經歷的時間。具體講,從一次讀操作命令發出到該操作完成,將數據讀入數據緩沖寄存器為止所經歷的時間,即為存儲器存取時間。

周期

是指連續啟動兩次獨立的存儲器操作(如連續兩次讀操作)所需間隔的最小時間。通常,存儲周期略大于存儲時間,其時間單位為ns。

連接及控制

主存容量的擴展 由于存儲芯片的容量有限,主存儲器往往要是由一定數量的芯片構成的位擴展:位擴展是指只在位數方面擴展(加大字長),而芯片的字數和存儲器的字數。位擴展的連接方式是將各存儲芯片的地址線、片選線和讀寫線相應地并聯起來,而將各芯片的數據線單獨列出字擴展:字擴展是指僅在字數方面擴展,而位數不變。字擴展將芯片的地址線、數據線、讀寫控制線并聯,而片選信號來區分各個芯片字和位同時擴展:當構成一個容量較大的容器時,往往需要在字數方向和位數方向上同時擴展

存儲芯片的片選

CPU要實現對存儲單元的訪問,首先要選擇存儲芯片,即進行片選;然后再從選中的芯片中依地址碼選擇出相應的存儲單元,以進行數據的存取,這稱為字選。片內的字選是由CPU送出的N條低位地址線完成的,地址線直接接到所有存儲芯片的地址輸入端,而存儲芯片的片選信號則大多是通過高位地址譯碼后產生的。

線選法:

線選法就是用除片內尋址外的高位地址線直接分別接至各個存儲芯片的片選端,當某地址線信息為0時,就選中與之對應的存儲芯片。這些片選地址線每次尋址時只能有一位有效,不允許同時有多位有效,這樣才能保證每次只選中一個芯片。線選法不能充分利用系統的存儲器空間,把地址空間分成了相互隔離的區域,給編程帶來了一定困難

全譯碼法:

全譯碼法將除片內尋址外的全部高位地址線都作為地址編譯器的輸入,譯碼器的輸出作為各芯片的片選信號,將它們分別接到存儲芯片的片選端,以實現對存儲芯片的選擇。全譯碼法的優點是每片芯片的地址范圍是唯一確定的,而且是連續的,也便于擴展,不會產生地址重疊的存儲區,但全譯碼法對譯碼電路要求較高

部分譯碼法:所謂部分譯碼法即用除片內尋址外的高位地址的一部分來譯碼產生片選信號,部分譯碼法會產生地址重疊。

CPU與主存儲器的連接主存與CPU之間的硬連接:主存與CPU的硬連接有三組連線:地址總線(AB)、數據總線(DB)和控制總線(CB)。把主存看作一個黑盒子,存儲器地址寄存器(MAR)和存儲器數據寄存器(MDR)是主存和CPU之間的接口。MAR可以接收由程序計數器(PC)的指令地址或來自運算器的操作數的地址,以確定要訪問的單元。MDR是向主存寫入數據或從主存讀出數據的緩沖部件。MAR和MDR從功能上看屬于主存,但通常放在CPU內。

CPU對主存的基本操作:CPU對主存進行讀寫操作時,首先CPU在地址總線上給出地址信號,然后發出相應的讀寫命令,并在數據總線上交換信息。讀寫基本操作如下:

讀:讀操作是指從CPU送來的地址所指定的存儲單元中取出信息,再送給CPU,其操作過程如下:

地址——>MAR——ABCPU將地址信號送至地址總線

ReadCPU發讀命令

WaitForMFC等待存儲器工作完成信號

M(MAR)——>DB——>MDR讀出信息經數據總線至CPU

寫:寫操作是指將要寫入的信息存入CPU所指定的存儲單元中,其操作過程是:

地址——>MAR——>ABCPU將地址信號送至地址總線

數據——>MDR——>DBCPU將要寫入的數據送至數據總線

WriteCPU發寫命令

WaitForMFC等待存儲器工作完成信號

CPU與主存之間的速度匹配:同步存儲器讀取和異步存儲器讀取。異步存儲器讀取:CPU和主存間沒有統一的時鐘,由主存工作完成信號(MFC)通知CPU“主存工作已完成”

同步存儲器讀取:CPU和主存采用統一時鐘,同步工作,因為主存速度較慢,所以CPU與之配合必須放慢速度,在這種存儲器中,不需要主存工作完成信號。

主存優化

市場上并不缺少提高數據存儲效率的新技術,然而這些新技術絕大多數都是關注備份和存檔的,而非主存儲。但是,當企業開始進行主存儲數據縮減時,對他們來說,了解主存儲優化所要求的必要條件十分重要。

主存儲,常常被稱為1級存儲,其特征是存儲活躍數據――即經常被存取并要求高性能、低時延和高可用性的數據。主存儲一般用于支持關鍵任務應用,如數據庫、電子郵件和交易處理。大多數關鍵應用具有隨機的數據取存模式和不同的取存要求,但它們都生成機構用來運營它們的業務的大量的數據。因此,機構制作數據的許多份拷貝,復制數據供分布使用,庫存數據,然后為安全保存備份和存檔數據。

絕大多數數據是起源于主數據。隨著數據存在的時間增加,它們通常被遷移到二級和三級存儲保存。因此,如果機構可以減少主數據存儲占用空間,將能夠在數據生命期中利用這些節省下來的容量和費用。換句話說,更少的主存儲占用空間意味著更少的數據復制、庫存、存檔和備份。

試圖減少主存儲占用空間存儲管理人員可以考慮兩種減少數據的方法:實時壓縮和數據去重。

直到不久前,由于性能問題,數據壓縮一直沒有在主存儲應用中得到廣泛應用。然而,Storwize等廠商提供利用實時、隨機存取壓縮/解壓技術將數據占用空間壓縮15:1的解決方案。更高的壓縮率和實時性能使壓縮解決方案成為主存儲數據縮減的可行的選擇。

在備份應用中廣泛采用的數據去重技術也在被應用到主存儲。目前為止,數據去重面臨著一大挑戰,即數據去重處理是離線處理。這是因為確定數量可能多達數百萬的文件中的多余的數據塊需要大量的時間和存儲處理器做大量的工作,因此非常活躍的數據可能受到影響。當前,推出數據去重技術的主要廠商包括NetApp、DataDomain和OcarinaNetworks。

主存部署

零性能影響

與備份或存檔存儲不同,活躍數據集的性能比能夠用某種形式的數據縮減技術節省的存儲容量更為關鍵。因此,選擇的數據縮減技術必須不影響到性能。它必須有效和簡單;它必須等價于“撥動一個開關,就消耗更少的存儲”。

活躍存儲縮減解決方案只在需要去重的數據達到非活躍狀態時才為活躍存儲去重。換句話說,這意味著實際上只對不再被存取但仍保存在活躍存儲池中的文件――近活躍存儲級――進行去重。

去重技術通過建議只對輕I/O工作負載去重來避免性能瓶頸。因此,IT基礎設施的關鍵組件的存儲沒有得到優化。數據庫排在關鍵組件清單之首。由于它們是1級存儲和極其活躍的組件并且幾乎始終被排除在輕工作負載之外,去重處理從來不分析它們。因此,它們在主存儲中占據的空間沒有得到優化。

另一方面,實時壓縮系統實時壓縮所有流經壓縮系統的數據。這導致節省存儲容量之外的意外好處:存儲性能的提高。當所有數據都被壓縮時,每個I/O請求提交的數據量都有效地增加,硬盤空間增加了,每次寫和讀操作都變得效率更高。

實際結果是占用的硬盤容量減少,總體存儲性能顯著提高。

主存儲去重的第二個好處是所有數據都被減少,這實現了包括數據庫在內的所有數據的容量節省。盡管Oracle數據庫環境的實時數據壓縮可能造成一些性能問題,但迄今為止的測試表明性能提高了。

另一個問題是對存儲控制器本身的性能影響。人們要求今天的存儲控制器除了做伺服硬盤外,還要做很多事情,包括管理不同的協議,執行復制和管理快照。再向這些功能增加另一個功能可能會超出控制器的承受能力――即使它能夠處理額外的工作負載,它仍增加了一個存儲管理人員必須意識到可能成為潛在I/O瓶頸的過程。將壓縮工作交給外部專用設備去做,從性能問題中消除了一個變數,而且不會給存儲控制器造成一點影響。

高可用性

許多關注二級存儲的數據縮減解決方案不是高可用的。這是由于它們必須立即恢復的備份或存檔數據不像一級存儲中那樣關鍵。但是,甚至在二級存儲中,這種概念也逐漸不再時興,高可用性被作為一種選擇添加到許多二級存儲系統中。

可是,高可用性在主存儲中并不是可選的選項。從數據縮減格式(被去重或被壓縮)中讀取數據的能力必須存在。在數據縮減解決方案中(其中去重被集成到存儲陣列中),冗余性是幾乎總是高可用的存儲陣列的必然結果。

在配件市場去重系統中,解決方案的一個組件以數據的原始格式向客戶機提供去重的數據。這個組件就叫做讀出器(reader)。讀出器也必須是高可用的,并且是無縫地高可用的。一些解決方案具有在發生故障時在標準服務器上加載讀出器的能力。這類解決方案經常被用在近活躍的或更合適的存檔數據上;它們不太適合非常活躍的數據集。

多數聯機壓縮系統被插入系統中和網絡上,放置(邏輯上)在交換機與存儲之間。因此,它們由于網絡基礎設施級上幾乎總是設計具有的高可用性而取得冗余性。沿著這些路徑插入聯機專用設備實現了不需要IT管理人員付出額外努力的無縫的故障切換;它利用了已經在網絡上所做的工作。

節省空間

部署這些解決方案之一必須帶來顯著的容量節省。如果減少占用容量的主存儲導致低于標準的用戶性能,它沒有價值。

主數據不具有備份數據通常具有的高冗余存儲模式。這直接影響到總體容量節省。這里也有兩種實現主數據縮減的方法:數據去重和壓縮。

數據去重技術尋找近活躍文件中的冗余數據,而能取得什么水平的數據縮減將取決于環境。在具有高冗余水平的環境中,數據去重可以帶來顯著的ROI(投資回報),而另一些環境只能取得10%到20%的縮減。

壓縮對所有可用數據都有效,并且它在可以為高冗余數據節省更多的存儲容量的同時,還為主存儲應用常見的更隨機的數據模式始終帶來更高的節省。

實際上,數據模式冗余度越高,去重帶來的空間節省就越大。數據模式越隨機,壓縮帶來的空間節省就越高。

獨立于應用

真正的好處可能來自所有跨數據類型(不管產生這些數據是什么應用或數據有多活躍)的數據縮減。雖然實際的縮減率根據去重數據的水平或數據的壓縮率的不同而不同,但所有數據都必須合格。

當涉及存檔或備份時,應用特有的數據縮減具有明確的價值,并且有時間為這類數據集定制縮減過程。但是對于活躍數據集,應用的特殊性將造成性能瓶頸,不會帶來顯著的容量縮減的好處。

獨立于存儲

在混合的廠商IT基礎設施中,跨所有平臺使用同樣的數據縮減工具的能力不僅將進一步增加數據縮減的ROI好處,而且還簡化了部署和管理。每一個存儲平臺使用一種不同的數據縮減方法將需要進行大量的培訓,并造成管理級上的混亂。

互補

在完成上述所有優化主存儲的工作后,當到了備份主存儲時,最好讓數據保持優化的格式(被壓縮或去重)。如果數據在備份之前必須擴展恢復為原始格式,這將是浪費資源。

為備份擴展數據集將需要:

使用存儲處理器或外部讀出器資源解壓數據;

擴展網絡資源以把數據傳送給備份目標;

把額外的資源分配給保存備份數據的備份存儲設備。

參考資料 >

生活家百科家居網