書名: 走入IBM小型機世界作者名: Orian編著本章字數: 1512字更新時間: 2018-12-28 23:12:22
CHAPTER 3 第二日上帝說:“儲存與計算要分開。”便產生了內存
本章要點
◆ 內存技術
◆ 交換區和AIX如何管理內存
◆ 內存泄漏
◆ 內存管理參數
◆ 內存優化
只有正在計算的信息(指令和數據)才被調入CPU執行,沒有用到的信息就保存在內存中。內存具有較快的速度,比磁盤快許多但沒有CPU快;內存具有較大的容量,比CPU和Cache大,但沒有磁盤大;另外內存是掉電就丟數據的儲存媒介。如果沒有成本方面的考慮,可能不會有內存這個概念,甚至不會有磁盤/硬盤存儲。設計者直接會把這個功能集成到CPU中。但在CPU中增加大容量存儲成本實在是太高了,設計也更加復雜,而且不同的應用不僅要求不同數量的CPU,對CPU和內存之間的比例也不同(例如ERP類應用通常需要1:3~4,數據庫大概1:2~3,普通網絡服務類1:1~1.5,比例單位為1CPU對多少GB內存)。因此就要通過獨立的內存芯片,實現數據的臨時保存。當然,為了永久保存數據,還需要額外的硬盤之類的介質。為了彌補高速CPU與相對低速的內存之間的速度“鴻溝”,Cache被引入到CPU和內存之間,作為一個速度、容量處于中間狀態的過渡區。
3.1 內存芯片
出于降低成本的考慮,現在pSeries使用的內存一般都非常標準,可以使用市場上出售的PC內存。但由于內存的種類太多,經常容易出現兼容性問題。有5個方面會導致內存不可用。
(1)片腳。片腳樣式不對肯定插不進去,所以這一點最好檢查。
(2)芯片類型。內存芯片有很多類型,ECC,EDO,DDR,SDRAM,是否支持“Chip Killer”技術等,這些標準一般會在內存芯片(條)上有標記,或者查找關于此種類內存的說明。
(3)主頻。芯片支持的頻率如果不匹配,有時即使自檢可以通過,但很容易死機。通常超頻問題較大(總線頻率高于芯片標準),降頻問題會少很多,但并不是說一定不出問題。
(4)配置要求。一些機型要求成對插入內存片,而另一些可能需要4片甚至8片一組,對于具體的槽位、大小容量組合都有特殊的要求。中、高端的IBM小型機都需要偶數對的內存芯片(條),這是“Chip Killer”技術的要求,以達到對校驗實現類似RAID的效果,基于此要求,同組芯片(條)要求具有完全相同的物理特征,包括支持的主頻,如果內存質量很差,兩條芯片某些參數不一致,啟動自檢就會失敗。
(5)Memory Book或專用內存板。除了低端的小型機,內存是直接插到系統板上(與普通PC相同)之外,內存都裝在一個叫做Memory Book的盒子里,盒子通過接口再插到系統板上。有一些內存條盡管裸露,但也要求安放在專用的內存板上再插到系統板。詳細請參考服務手冊(Service Guide)中的內存要求(如表3-1所示)。
表3-1 幾款低端小型機的內存要求

在以下網址可以查詢RS/6000系列(較舊)的機器之間的內存兼容情況:
http://www.riscanalysis.com/notes/pci%20memory.pdf
通過www.google.com搜索引擎也可以查到一些非IBM生產的“兼容內存”。當然,如果使用了這些“兼容”內存(包括其他未經IBM認證許可的任何第三方產品),IBM將不再為這臺機器的維護提供支持。
ChipKiller內存技術
在小型機中,內存通常都是具有錯誤檢驗的ECC內存(Error Checking and Correcting),此類內存能夠檢測并更正一位錯誤,但只能檢測(不能更正)同時發生兩位數據錯誤。由于有錯誤檢驗,它極大地提高了系統的可靠性,而且已經成為小型機、服務器的標準配置。為了提高內存的吞吐性能,通常小型機會同時讀取一片內存條上的多字節(一般是8位)數據以提高性能。通過1位的ECC校驗位,可以發現數據錯誤,但是由于ECC只能更正一位錯誤,所以如果是芯片問題,會有多處錯誤同時發生(在此內存條中),系統發現了數據有故障,卻無法恢復,系統就會停機,以便避免數據混亂(什么都不做比錯誤地做事情影響更小)。但是系統掛起會導致內存中尚未寫入到磁盤中的數據丟失,通常會有幾兆字節最新更新數據丟失。
為了避免這種情況發生,IBM設計了一種內存配置技術(即ChipKiller技術,如圖3-1所示),采用類似于磁盤RAID技術對內存進行保護,當讀數據的時候,不是一次從一條內存上讀取多位數據,而是同時從多條內存上讀取,這樣即使一條內存故障,也會被發現并更正。采用ChipKiller技術的內存條芯片排列如圖3-2所示(包括標準的8位內存芯片及校驗芯片)。這種方式大大提高了內存的可靠性,曾被用于火星登錄使用的計算機。現在ChipKiller內存技術已經被普遍應用于所有IBM小型機和大部分PC服務器。

圖3-1 登月的ChipKiller技術(摘自IBM網站)
這種內存設計方式也要求內存要以一對、4條、甚至8條一組進行裝載,而且一組內存中各項參數(讀取速度等)必須嚴格相同,否則會引起嚴重的性能問題。這些苛刻要求,對于攢小型機是很大的一個障礙,當不同的內存條放到一起的時候,即使“樣子差不多”,但是由于是不同“批次”生產,工藝不同,特性參數不同,普通情況下單條使用,完全沒有問題,而在ChipKiller技術下,瑕疵盡現,很可能不可用(對于商業服務器,嚴格的事前檢查總比運行時候忽然停機更好)。但這對我們卻是壞消息——在小型機上安裝內存的時候,需要根據要求組合內存,并且一組內存型號必須嚴格相同。

圖3-2 采用ChipKiller技術的內存條芯片排列
- Ansible Configuration Management
- SCRATCH與機器人
- Managing Mission:Critical Domains and DNS
- Getting Started with Oracle SOA B2B Integration:A Hands-On Tutorial
- 反饋系統:多學科視角(原書第2版)
- Hadoop Real-World Solutions Cookbook(Second Edition)
- 3ds Max造型表現藝術
- Hadoop Beginner's Guide
- 大數據素質讀本
- C#編程兵書
- 案例解說單片機C語言開發
- 深度學習實戰
- Linux Administration Cookbook
- Practical Autodesk AutoCAD 2021 and AutoCAD LT 2021
- 從0到1 TensorFlow編程手記