welcom ! Handel home

2009年10月29日 星期四

其他可能耳聞的記憶體技術


其他可能耳聞的記憶體技術

Enhanced SDRAM (ESDRAM)

為了提高標準記憶體模組的速度與效率,某些製造廠將一小部份的SRAM直接合併於晶片上,製成一個晶片上的快速緩衝儲存區 ESDRAM本身是一個SDRAM加上一個小容量的SRAM快速緩衝儲存區,使運作速度達到200MHz。就如同外部SRAM快速緩衝儲存區,快速緩衝儲存DRAM的目標在於將最常使用的資料置於SRAM Cache以將來回從速度較慢的DRAM存取的動作減到最少。在晶片上的快速緩衝儲存區的其中一項優點在於它能夠給予SRAM與DRAM間更寬的匯流排,並實際提高DRAM的速度與頻寬。

Fast Cycle RAM (FCRAM)

FCRAM是由Toshiba與Fujitsu 為特殊設備系統所共同研就開發的,例如高階伺服器,列印機與電信轉接系統。它包括記憶體陣列分割以及內部流水線設計以加速隨機存取以及減少電力消耗。

SynLink DRAM (SLDRAM)

雖然目前已被視為過時,SLDRAM為一些DRAM製造廠在90年代末期共同研發以取代Rambus技術。

Virtual Channel Memory (VCM)

由NEC所開發, VCM技術使不同 "群" 的記憶體能夠利用本身的緩衝存儲器獨立與記憶體控制器通訊。由此,不同的系統作業便能夠分配到自己的 "虛擬通道(Virtual Channel)",而和一項作業相關的資訊便不與其他同時執行之作業共用緩衝存儲器空間,使系統效率更高。

快閃記憶體(Flash Memory)

快閃記憶體是一種固態,不易揮發,可複寫的記憶體,其運作方式就像隨機存取記憶體與硬碟的混合體。就像DRAM,快閃記憶體將資料位元儲存在記憶體單位(cell)中,但是跟硬碟一樣,當電源關閉後資料仍保留在記憶體上,由於它的高速,持久性,以及低電壓需求,快閃記憶體非常適合在許多設備中使用,例如數位相機,行動電話,列印機,掌上型電腦,呼叫器,以及錄音機。

錯誤檢測(Error Checking)

確保儲存資料的完整性是記憶體設計上很重要的一環,達成這個要求的兩項最重要的方式為Parity與error correction code (ECC)。

在歷史上,parity是最常被使用的資料匯整方法。Parity能夠偵查 –但不能修正- 到小至一位元的錯誤;Error Correction Code (ECC)是一種能夠偵查並修正單位元錯誤的更廣泛之資料完整性檢測。

越來越少個人電腦製造廠在設計中支援資料完整性檢測,這是由於下列幾個原因 第一, 藉著除去較一般記憶體昂貴的parity記憶體,生產商便能降低電腦的價格 所幸這個第二個原因:某些製造廠所生產的記憶體產品品質的提升以及記憶體錯誤頻率的降低,修正了這種傾向的不足。

資料完整性檢查的種類依照電腦系統的用途而有所不同,如果這部電腦的地位非常重要 – 例如,做為伺服器 – 那麼一個支援資料完整性檢測的電腦就非常理想。大致上:
  • 絕大多數被設計為高端伺服器的電腦會支援ECC記憶體。
  • 絕大多數低價位的家用或是小型企業用的電腦會支援無parity記憶體。


同位 Parity

當parity功能在電腦系統中被使用時,每八位元的資料便有一個parity位元與其同時儲存在DRAM中。兩種同位(parity)協定 – 奇同位元(Odd Parity)與偶同位元(Even Parity )– 以類似的方式運作。



下面的表格表示Odd Parity 與 Even Parity的運作方式。處理過程相同,但特性相反。

奇同位元(Odd Parity) 偶同位元(Even Parity)

Step 1

當相對應的資料的位元組中含有偶數數量的1時,同位位元為1(或是電源打開)

當相對應的資料的位元組中含有奇數數量的1時,同位位元為1(或是電源打開)

如果位元組中含有奇數數量的1時,同位位元為0(或電源關閉)

如果位元組中含有偶數數量的1時,同位位元為0(或電源關閉)

Step 2 同位位元與對應8位元資料被寫入DRAM (同 Odd Parity)

Step 3 資料被送至中央處理器前通過同位電路。 (同 Odd Parity)
如果同位電路檢測到奇數數量的1,資料被視為有效。同位位元被去除,後此8位元資料被送到中央處理器。 如果同位電路檢測到偶數數量的1,資料被視為有效。
如果同位電路檢測到偶數數量的1,資料被視為無效並產生parity錯誤。 如果同位電路檢測到奇數數量的1,資料被視為無效。

同位也有其限制。舉例而言,同位只能偵測錯誤而不能修正 這是因為同位技術無法判斷找出八位元中的錯誤位元。

此外,當多個位元無效而資料滿足所使用的奇同位元或偶同位元條件,同位電路便無法找出錯誤。舉例而言,當一個有效的0變成無效的1而有效的1變成無效的0,兩個錯誤便相互抵消而同位電路便無法發現錯誤。所幸,這種情況發生的機會相當微小。

ECC 錯誤修正碼檢查

Error Correction Code是一種主要用在高階個人電腦以及檔案伺服器中的資料完整性檢測。ECC與Parity檢測的重要不同點在於ECC能夠偵測並修正單位元錯誤,使用ECC時,單位元錯誤修正通常在使用者發現錯誤之前就已經完成。依照使用的記憶體控制器的不同,ECC也能夠偵測到少見的2,3,4位元錯誤,雖然ECC能夠偵測到這些錯誤,它並不能修正這些錯誤。但是,有些形式較複雜的ECC便能修正多位元錯誤。

利用一種特別的數學規則系統,並與記憶體控制器結合,ECC電路在存入記憶體的資料位元中加入ECC位元,當CPU向記憶體要求資料時,記憶體控制器將ECC位元解碼並判段是否有一個或是多個損壞位元組。如果有單位元錯誤,ECC電路便修正該位元,如果發生多位元錯誤,ECC電路便回報同位錯誤。

其他特點

除了規格,記憶體技術,以及錯誤偵測方式以外,還有幾個了解與選擇記憶體產品時須要了解的重要特點。

速度

記憶體零件與模組的速度是最佳化記憶體配置時最重要的條件。事實上,所有的電腦系統指明記憶體零件的速度,這些指示必須被遵守以確保記憶體相容性。這個部分將介紹三種測量記憶體零件與模組速度的方式,存取時間,兆赫,與位元組/秒。

存取時間

在SDRAM出現前,記憶體速度是以存取時間來表示,以奈秒為單位。記憶體模組的存取時間表示模組送出所要求的資料所需的時間,所以,越小的數字代表越短的存取時間。常見的速度為80ns,70ns以及60ns,很多時候,模組的速度能夠從模組的型號辨認,以 "-6"結尾代表60ns,以 "-7"代表70ns,以此類推。

絕大多數時候,你能夠在電腦系統上使用與標示系統指定速度相同或更快的記憶體零件,舉例而言,如果系統要求70ns記憶體,使用70ns及60ns記憶體通常不會有問題。但是有些較老的系統在系統啟動時會檢查記憶體ID的標示速度,並且只會在認可指定速度後啟動,舉例而言,如果系統指定速度為80ns,不同的速度便不會被接受,即使它比較快。許多這樣的情況下,這種系統所使用的模組仍然能夠裝配速度較高的晶片,但是模組的ID會被設定在比較慢的速度以確保系統的相容性 這就是模組上標示的速度有時與實際速度不同的原因。

百萬赫茲 (Megahertz)

SDRAM技術開始發展的同時,記憶體模組的速度便開始以百萬赫茲(MHz)來計算。記憶體晶片上標示的速度通常還是以奈秒計算。這樣很容易混淆,尤其是當這些奈秒標示並非標示存取時間,而是時鐘週期間的奈秒數。舉例而言對速度為66MHz, 100MHz,以及133MHz的SDRAM晶片而言,對應的晶片標示就分別是 –15, -10, 與 – 8。

下表顯示MHz以及奈秒功率的換算方式(1MHz=1,000,000次/秒)

STEP 1
MHz = 1 million clock cycles per second 66
  100
  133
STEP 2
Multiply by 1 million to get total clock cycles per second 66,000,000
  100,000,000
  133,000,000
STEP 3
Constant: 1 billion nanoseconds per second 1,000,000,000
  1,000,000,000
  1,000,000,000
STEP 4
Divide nanoseconds per second (from Step 3) by clock cycles per second (from Step 2) to get nanoseconds per clock cycle 15
  10
  8
nanoseconds per second 1,000,000,000ns nanoseconds
clock cycles per second clock cycles clock cycle


如同前面所說的,處理器的速度與記憶體的速度通常不是一樣的,記憶體的速度受到記憶體匯流排速度的限制,處理過程中速度最慢的一環。

每秒的位元組數 (Bytes per Second)

一開始將百萬赫茲數轉換為位元組數/秒可能會令人感到困惑,轉換過程中最重要的兩項資料是速度(MHz)以及匯流排寬度(位元)。

匯流排寬度:如果你有一個8位元匯流排,那麼8位元,或一個位元組的資料可以一次透過匯流排傳輸,如果你有一個64位元匯流排,那麼64位元,或8位元組的資料可以一次透過匯流排傳輸。

匯流排速度:如果記憶體匯流排速度是100MHz,這代表每秒一億時鐘週期,一般來說,每的時鐘週期能夠傳輸一個Pack的資訊,如果這個100MHz匯流排的寬度是1位元組,那麼資料便能以每秒100MB的速度傳輸;在100MHz的64-位元寬的匯流排上,資料以每秒800MB的速度傳輸。

Rambus模組速度有時以MHz表示,有時以MB/秒表示。有一型Rambus模組以400MHz的速度運作,但由於Rambus可以在一個時鐘週期中傳輸兩組,而非一組資料,模組速度便是800MHz 有時稱為PC800 由於Rambus匯流排寬度為16位元,或2位元組寬,資料以每秒1600MB,或1.6GB的速度傳輸 用相同的方法運算,PC600 Rambus模組以每秒1.2GB的速度傳輸資料。

Registers與Buffers

Registers以及Buffers以 "重新驅動(re-driving)"記憶體晶片中控制信號的方式改善記憶體運作,它們能夠被裝置在記憶體模組外或是安裝在記憶體模組上。將Registers與Buffers放置在記憶體模組上能使系統容納更多記憶體模組。這類模組通常在伺服器或是高階工作站電腦中發現。在升級時必須注意的是,無buffers及有buffers (或Registers) 的記憶體模組不能夠混用。

Buffering (EDO以及 FPM): 在EDO以及FPM模組中,重新驅動信號的過程稱為Buffering 使用Buffering並不會降低效能表現。 Registering (SDRAM):在SDRAM中,信號驅動的過程稱為Registering. Registering與 Buffering相似,除了在Registering程序中,資料進出Register都由系統時鐘計時,具有Register功能的模組較沒有Register功能的模組稍慢,由於Register程序需要一個時鐘週期來完成。



有Buffer及無Buffer模組的比較 它們各有不同的Keys數目以確保兩者不被混用。


Multiple-Banked模組

Multiple-Banked模組給與晶片使用更多彈性空間。Multiple Banking使記憶體設計師能夠將模組分成數個部分,於是在電腦系統中能等同多於一個模組。這樣的設計等同於電腦中的多組記憶體插槽:系統一次從一組記憶體中存取,不管記憶庫中有多少記憶體插槽。

有些人將 "雙面(double-sided)" 與 "dual-banked" 兩個名詞混淆,以下解釋: "雙面(double-sided)"指的是晶片實際上被安裝在模組的正反兩面上 而 "Dual-banked"是指模組是透過電學方式分為兩個部分。

錫 vs. 金

記憶體模組的連接點是用錫製或金製。金的傳導較錫良好,但是由於錫的價值較金便宜很多,在90年代初期,電腦製造廠開始在系統主機板插槽中使用錫製連接點以降低成本。如果在購買記憶體時能夠選擇 –意即,同時有配備金質連接點與錫製連接點的模組能夠選擇-,最好能夠搭配模組插槽所使用的金屬選擇。使用同樣的金屬能夠避免腐蝕。

Kingston 的政策一向是搭配相同金屬,所以Kingston 為每個電腦系統所生產的型號也將插槽所使用的金屬列入考慮。

更新速度

更新是指將記憶體晶片中的記憶體單位重新充電的程序。電腦記憶體的內部被規劃成行列式的記憶體陣列 –就像棋盤上的格子- 而每縱列再以晶片上的I/O寬度加以分割,整個行列組織稱為DRAM陣列。DRAM被稱為 "動態" 隨機存取記憶體,由於它每秒必需被更新,或重新充電數千次以儲存資料,由於記憶體單位被規劃在儲存電能微小的電容四周,它們必須被更新。這些電容以類似微小電池的方式運作,在不充電的狀況下即失去除儲存的電能,同時從記憶體陣列中讀取資料的過程消耗儲存的電能,所以讀取資料前記憶體單位必須重新充電。

記憶體單位以每次一行的方式更新(通常每更新週期一行),"更新速度"並不是指更新記憶體所需的時間,而是指更新整個記憶體陣列所需更新的行數。舉例而言, 2K的更新速度指更新整個陣列時需要更新2048行,同樣的,4K更新速度指需要更新4096行。

一般來說,系統中的記憶體控制器起始更新作業。但是有些晶片能夠自行更新,這代表這些DRAM晶片永有自己的更新電路而不需中央處理器以或外部記憶體控制器干涉,自行更新晶片能夠大幅減少電力消耗,並且常用於攜帶式電腦。

CAS Latency

CAS latency是指對DRAM晶片上某一行下達要求所需要的時間,Latency是計算延遲的單位,所以 "CL2" CAS latency系數指延遲兩個時鐘週期,而 "CL3" latency系數指延遲三個時鐘週期。SDRAM剛推出時,製造CAS latency系數低於CL2的晶片很困難。雖然有些指示要求CL2,但許多模組在CAS latency系數為CL3時仍可正常運作。

散熱器及散熱片

隨著記憶體零件的速度提高,晶片密度隨之提高,而更多電路也被壓縮規劃入更小的電路板上,多餘熱能的分散成為更重要的問題。近年來新的處理器已經加入風扇設計,新的記憶體模組設計使用散熱器以及散熱片來維持安全運作溫度。

Serial Presence Detect (SPD) 與 Parallel Presence Detect (PPD)

電腦系統開機時必需檢查記憶體模組的配置以確保正常運作,Parallel Presence Detect是使用數個電阻傳導所需資料的傳統方式,PPD是SIMM模組以及某些DIMM模組所使用的識別方式 Serial Presence Detect使用EEPROM(Electrically Erasable Programmable Read-Only Memory)儲存模組的相關資訊。

EPROM是一種能夠記錄記憶體模組不同相關資訊的晶片,這些資訊包括模組容量,速度,記憶體種類,甚至製造廠名字。開機時,中央處理器使用這些資訊來了解系統中所使用的記憶體種類並依此調整設定。EEPROM(Electrically Erasable Programmable Read-Only Memory)晶片(有時稱為E2PROM)與EPROM的不同處在於它被修改時不需要從電腦中取出,但是它必需全部同時,而不能選擇性的,清除或重設,同時它也有一定的壽命,就是它只能夠被重設一定次數。

Clock Line數目 (2-Clock vs. 4-Clock)

SDRAM記憶體晶片需要連接記憶體模組與系統時鐘的Clock lines. "2-Clock"代表有兩條clock line與模組相連,而 "4-Clock" 代表有四條clock line與模組相連 最早的Intel設計為 2-Clock,由於記憶體模組上只有八個晶片,後來, 4-Clock設計的發展減少了每條clock line所連接的晶片,藉此減低每條clock line的負載並加快資料通訊。

電壓

隨著DRAM晶片間距離減少以及散熱重要性增加,記憶體模組上的電壓持續降低。從前大多數的電腦系統以五伏特的標準電壓運作。小型筆記型電腦首先使用3.3伏特晶片,這不只是因為溫度問題,由於低電壓晶片使用較少電力,於是能夠延長電池壽命。目前大多數桌上型電腦也使用標準3.3伏特記憶體,但是隨著產品尺寸繼續縮小以及零件越來越接近,3.3伏特記憶體正快速的被2.5伏特晶片所取代。

合成 vs. 非合成(Composite vs. Non-Composite)

合成與非合成最早被蘋果電腦使用在分辨容量相同但是使用不同數目晶片的模組。當業界正處於一個晶片密度生產過度期時,一般來說會有一段時間能夠生產,例如,具有8個新容量晶片或是32個舊容量晶片的模組。蘋果電腦將使用最新技術以及較少晶片的模組稱為 "非合成" ,而使用較早期的技術與較多晶片的模組稱為 "合成"。由於一個模組上安裝32個晶片可能產生過熱以及空間問題,蘋果電腦通常建議客戶使用非合成模組。

沒有留言: