主存儲器

主存儲器

主存儲器(Mainmemory)簡稱主存。是計算機硬體的一個重要部件,其作用是存放指令和數據,並能由中央處理器(CPU)直接隨機存取。現代計算機是為了提高性能,又能兼顧合理的造價,往往採用多級存儲體系。即由存儲容量小,存取速度高的高速緩衝存儲器,存儲容量和存取速度適中的主存儲器是必不可少的。主存儲器是按地址存放信息的,存取速度一般與地址無關。32位(比特)的地址最大能表達4GB的存儲器地址。這對多數應用已經足夠,但對於某些特大運算量的應用和特大型資料庫已顯得不夠,從而對64位結構提出需求。從70年代起,主存儲器已逐步採用大規模集成電路構成。

發展的概況


主存儲器
主存儲器
主存儲器
主存儲器
主存儲器,指的就是主板上的存儲部件,是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)晶元構成;主存的這些部分就不怕暫時供電中斷,還可以防止病毒侵入。

技術指標


指標含義表現單位
KINGXCON
KINGXCON
存儲容量在一個存儲器中可以容納的存儲單元總數存儲空間的大小 字數,位元組數
存取時間啟動到完成一次存儲器操作所經歷的時間 主存的速度 ns
存儲周期連續啟動兩次操作所需間隔的最小時間 主存的速度 ns
存儲器帶寬單位時間裡存儲器所存取的信息量, 它是衡量數據傳輸速率的重要技術指標,單位是b∕s(位/秒)或B∕S(位元組/秒)。
存放一個機器字的存儲單元,通常稱為字存儲單元,相應的單元地址叫字地址。而存放一個位元組的單元,稱為,相應的地址稱為位元組地址。如果計算機中可編址的最小單位是字存儲單元,則該計算機稱為按字編址的計算機。如果計算機中可編址的最小單
電鍍金工藝的內存金手指
電鍍金工藝的內存金手指
位是位元組,則該計算機稱為按位元組編址的計算機。一個機器字可以包含數個位元組,所以一個存儲單元也可以包含數個能夠單獨編址的位元組地址。例如,PDP-11系列計算機,一個16位二進位的字存儲單元可存放兩個位元組,可以按字地址定址,也可以按位元組地址定址。當用位元組地址定址時,16位的存儲單元佔兩個位元組地址。

容量

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

時間

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

周期

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

產品分類


主存儲器
主存儲器
RAM是構成內存的主要部分,其內容可以根據需要隨時按地址讀出或寫入,以某種電觸發器的狀態存儲,斷電后信息無法保存,用於暫存數據,又可分為DRAM和SRAM兩種。RAM一般使用動態半導體存儲器件(DRAM)。因為CPU工作的速度比RAM的讀寫速度快,所以CPU讀寫RAM時需要花費時間等待,這樣就使CPU的工作速度下降。人們為了提高CPU讀寫程序和數據的速度,在RAM和CPU之間增加了高速緩存(Cache)部件。Cache的內容是隨機存儲器(RAM)中部分存儲單元內容的副本。
ROM是只讀存儲器,出廠時其內容由廠家用掩膜技術寫好,只可讀出,但無法改寫。信息已固化在存儲器中,一般用於存放系統程序BIOS和用於微程序控制。
PROM是可編程ROM,只能進行一次寫入操作(與ROM相同),但是可以在出廠后,由用戶使用特殊電子設備進行寫入。
EPROM是可擦除的PROM,可以讀出,也可以寫入。但是在一次寫操作之前必須用紫外線照射,以擦除所有信息,然後再用EPROM編程器寫入,可以寫多次。
EEPROM是電可擦除PROM,與EPROM相似,可以讀出也可寫入,而且在寫操作之前,不需要把以前內容先擦去,能夠直接對定址的位元組或塊進行修改。
閃速存儲器(FlashMemory),其特性介於EPROM與EEPROM之間。閃速存儲器也可使用電信號進行快速刪除操作,速度遠快於EEPROM。但不能進行位元組級別的刪除操作,其集成度高於EEPROM。

連接及控制


主存儲器
主存儲器
主存容量的擴展 由於存儲晶元的容量有限,主存儲器往往要是由一定數量的晶元構成的位擴展:位擴展是指只在位數方面擴展(加大字長),而晶元的字數和存儲器的字數。位擴展的連接方式是將各存儲晶元的地址線、片選線和讀寫線相應地並聯起來,而將各晶元的數據線單獨列出字擴展:字擴展是指僅在字數方面擴展,而位數不變。字擴展將晶元的地址線、數據線、讀寫控制線並聯,而片選信號來區分各個晶元字和位同時擴展:當構成一個容量較大的容器時,往往需要在字數方向和位數方向上同時擴展
存儲晶元的片選
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好處,而且還簡化了部署和管理。每一個存儲平台使用一種不同的數據縮減方法將需要進行大量的培訓,並造成管理級上的混亂。

互補

在完成上述所有優化主存儲的工作后,當到了備份主存儲時,最好讓數據保持優化的格式(被壓縮或去重)。如果數據在備份之前必須擴展恢復為原始格式,這將是浪費資源。
為備份擴展數據集將需要:
使用存儲處理器或外部讀出器資源解壓數據;
擴展網路資源以把數據傳送給備份目標;
把額外的資源分配給保存備份數據的備份存儲設備。