記憶體[1](memory,中國大陸譯存儲器,台灣譯記憶體[1])是電腦中能接收和儲存數據,並能根據控制命令提供所存數據的基本硬件[2][3]。現代的電腦系統以記憶體為中心,故記憶體的特性是影響整個電腦系統最大吞吐量的決定性因素[3]。
此條目需要補充更多來源。 (2024年5月16日) |
記憶體又分為主記憶體(main memory)和輔助記憶體(auxiliary memory,簡稱「輔存」,又稱「外記憶體」、簡稱「外存」)[2][3]。主記憶體與中央處理器(CPU)一起構成主機[3],用來存放電腦執行時隨時需要使用的程式和數據[4],一切數據要被CPU操作都必須先裝入主記憶體[2]。主記憶體的工作速度較快,儲存容量較小,主要採用半導體記憶體[4]。目前大部分電腦系統的主記憶體主體為動態隨機存取記憶體(DRAM)[5],「主記憶體」乃至「記憶體」一詞有時特指DRAM[6];另外,靜態隨機存取記憶體(SRAM)與唯讀記憶體(ROM)等也可作主記憶體的一部分[3][5]。輔助記憶體和輸入輸出裝置都屬於外設[3],用來存放CPU執行時暫時不用的各種程式和數據[7],一般在斷電後仍能儲存[2]。輔助記憶體的儲存容量大,工作速度慢,例子如硬碟、USB手指、光碟、磁帶等[7]。
除了可分為主記憶體和輔助記憶體外,記憶體還可按儲存媒介分為半導體記憶體、磁表面記憶體、磁芯記憶體和光碟記憶體等,按存取方式分為隨機存取記憶體、唯讀記憶體、串行訪問記憶體等[3]。
傳統上,一部電腦最重要的元件是中央處理器 (CPU),因為他負責處理資料,進行所有計算,並且控制電腦內其他所有元件。中央處理器包含兩個部分: 控制單元 以及算術邏輯單元 (ALU)。前者控制資料在中央處理器及記憶體之間的流動。後者處理資料的邏輯運算。如果沒有足夠的記憶體,電腦將只能進行固定的工作而且立刻將結果輸出。這在計算機及數碼訊號處理是可接受的。馮·諾伊曼結構機器擁有足夠的記憶體去儲存正在執行的指令集以及資料。結果使電腦不用為了執行一個新的程式而改變硬件的組態,使程式設計變得簡單,大部分的電腦都是范紐曼型架構。
記憶體的特性
![Thumb](http://upload.wikimedia.org/wikipedia/commons/thumb/8/8d/DDR_RAM-2.jpg/640px-DDR_RAM-2.jpg)
所有的記憶體都可以用其核心的特性以及可以用測量而得知的效能,容量來區分。核心的特性有揮發性,讀寫性,存取法,以及定址法。測量得知的特性有效能跟容量。
![Thumb](http://upload.wikimedia.org/wikipedia/commons/thumb/b/b2/GNOME_System_Monitor_memory_size_and_network_rate.png/320px-GNOME_System_Monitor_memory_size_and_network_rate.png)
電腦使用二進制來處理數據。檔案,數字,圖形,影音,或是其他資料都可以用一串位元來表示,每一個位元的值不是一就是零。最常見的儲存單位是位元組,一位元組等於八位元。一份資料可以被任何具有足夠容量去容納該資料大小的電腦所處理。
根據電氣電子工程師協會(IEEE 1541)和歐洲聯盟(HD 60027-2:2003-03)的標準,二進制乘數詞頭的縮寫為「Ki」、「Mi」、「Gi」,以避免與國際單位制混淆。但二進制乘數詞頭沒有廣泛被製造業和個人採用,標示為4GB的主記憶體實際上已經是4GiB,但標示為4.7GB的DVD實際上是4.37GiB。
對於32位元的作業系統,最多可使用232個地址,即是4GiB。實體位址擴充可以讓處理器在32位元作業系統存取超過4GiB記憶體,發展64位元處理器則是根本的解決方法,但作業系統、驅動程式和應用程式都會有相容性問題。
- 遲滯時間
- 存取儲存器內部特定區域資料所花的時間。在第一級記憶體中,以納秒作為合理的計量單位,第二級記憶體以毫秒作為計量單位,以秒作為第三級記憶體的計量單位或是。遲滯時間可以合理的分為讀取的遲滯時間和寫入的遲滯時間,以循序存取儲存器來說,有最短、最長與平均遲滯時間。
- 吞吐量
- 將資料讀取到或是寫出記憶體的速度。吞吐量通常表示為百萬位元組/秒或是 MB/s,位元率也被使用着。就跟遲滯時間一樣,讀和寫的速度算做兩筆不同資料。存取資料的速度取決於最大吞吐量。
- 粒度
- 能以單獨一個單位被有效率的存取的最大片資料的大小, 例如, 沒有引發更多的遲滯時間 。
- 可靠度
- 在不同的條件下,非自發性的位元值改變, 或整體故障率。
分類
直至2008年,最常用的數據儲存技術是半導體、磁性、光學,同時還看到一些使用紙張作儲存。也有一些曾於過去使用或是在將來會使用的數據儲存技術。市場上存在多種不同形態、不同材質的記憶體。到目前為止,任何一種儲存裝置都有其缺點,因此一台電腦通常都有好幾種不同種類的儲存裝置,每一種都有其特別的功能。
電腦記憶體可以根據儲存能力與電源的關係可以分為以下兩類:
揮發性記憶體(Volatile memory)是指當電源供應中斷後,記憶體所儲存的資料便會消失的記憶體。主要有以下的類型:
非揮發性記憶體(Non-volatile memory)是指即使電源供應中斷,記憶體所儲存的資料並不會消失,重新供電後,就能夠讀取記憶體中的資料。 主要種類如下:
記憶體階層
實際上,幾乎所有電腦都有各種不同的記憶體,這些記憶體在中央處理器旁邊,構築成記憶體階層,在效率和花費兩者之間的拉鋸中,在階層中較低層的記憶體, 頻寬較低,而且資料到中央處理器的時間也較久,遲滯時間較長。傳統上分第一級,第二級,第三級,離線記憶體。
第一級記憶體 (又稱主記憶體或內部記憶體),通常簡稱為記憶體,這層的記憶體與中央處理器直接連通,中央處理器會不斷讀取儲存在這裏的指令集,並在需要時執行這些指令集。
歷史上,早期的電腦使用延遲線,威廉士管作為主要的儲存器。在1954年,磁芯記憶體被開發出來大幅取代了上述不太穩定的方法。磁芯記憶體維持優勢至1970年代,此時集成電路技術的進步,使得半導體記憶體在價格上變得便宜而有競爭力。
這使得現代化的隨機存取記憶體 (RAM)被製造出來。該款記憶體的重量輕,尺寸小,然而十分昂貴。(這種記憶體被用來做成第一級記憶體,同時它也是揮發性記憶體,意思就是當電力不再供應時,記憶體內的資料就會消失)。
如同右圖所示,在第一級記憶體的內部除了主記憶體,也就是隨機存取記憶體外,還分有兩個或兩個以上的子層:
- 暫存器被設置在處理器內。每個暫存器都儲存資料中的一個字 (一個字的大小通常是32位元或64位元)。中央處理器內的指令能讓 算術邏輯單元 去執行各種計算或是處理資料。暫存器傳輸資料的速度是所有記憶體中最快的。
- CPU快取,它傳輸資料的速度僅次於暫存器。被用來作為提升電腦的效能。大部分經常被使用的資料(存在主記憶體中),會複製另一份存在緩衝記憶體內,這樣可提升速度,否則速度將會大幅降低,且暫存器也容納不下那麼多資料。多層快取階層亦經常被使用—第一層快取容量最小,速度最快且位於處理器內部;第二層快取容量較大且較慢。
主記憶體藉記憶體匯流排與中央處理器連接。有兩種不同的匯流排(並沒有在圖上): 地址匯流排以及資料匯流排. 一開始中央處理器藉位置匯流排傳送數字,這數字就是記憶體位置,其指出資料的位置。然後中央處理器用資料匯流排將資料讀出或寫入。此外,主記憶體管理單元 (MMU)是一種介於中央處理器跟主記憶體的裝置,用來重新計算記憶體位置,例如提供虛擬地址。
由於RAM具有揮發性(開機時裏面是空的),這樣的話電腦就無法儲存開機時需要的指令,因此,非揮發性記憶體儲存了執行開機的程式 (BIOS),為了讀取較大的程式,先自第二層的非揮發性記憶體讀取到隨機存取記憶體,然後執行程式。一種記憶體因着這目的被製出,就是唯讀記憶體(唯讀記憶體也是屬於隨機存取).
許多唯讀記憶體並不僅僅只能讀取,雖然速度慢,但資料還是可以抹除並重新寫入。一些嵌入式系統直接使用唯讀記憶體來跑程式,因為程式幾乎不會變化,現在的電腦將資料存於第二層非揮發性的記憶體,而非唯讀記憶體,這是比較經濟的做法。
![Thumb](http://upload.wikimedia.org/wikipedia/commons/thumb/1/1d/Hard_disk_platter_reflection.jpg/640px-Hard_disk_platter_reflection.jpg)
第二級記憶體(又稱外部記憶體或輔助記憶體),和第一級記憶體不同的是,第二級記憶體和中央處理器並沒有直接連通,電腦經常使用記憶體的I/O通道來與之連接,第二級記憶體使用資料緩衝器來將資料傳送至第一級記憶體。在不供應電源的情況下,第二級記憶體的資料仍然不會消失—這表示它是非揮發性的。
現今的電腦,硬碟被廣泛地做為第二層記憶體,硬碟存取資料的時間大約是幾千分之一秒,或是幾個毫秒。然而,隨機存取記憶體存取資料的時間僅有幾十億分之一秒,或是幾個納秒。硬碟的速度只有記憶體存取速度的百萬分之一,光碟,例如CD和DVD,有更長的存取時間。
當資料儲存於碟片時,將資料傳送到區塊可降低遲滯時間,提升效率,這樣的話需要外部記憶體演算法。連續存取和區塊存取的速度比隨機存取要快得多,所以許多尖端的記憶體都在開發更有效率的演算法來執行連續存取或區塊存取。一個突破I/O瓶頸的方法是使用多重磁碟,可以增加第一級與第二級記憶體之間的頻寬。[8]
這裏列舉一些第二級記憶體的例子: 快閃記憶體 (例如USB手指),軟碟,磁帶,紙帶,打孔卡,RAM disk,Zip Drive。
第二級記憶體通常被設計成符合檔案系統的格式,這使得資料可以儲存在目錄和電腦檔案內。
大部分的作業系統使用了虛擬記憶體的概念,第一級記憶體的物理容量雖然不變,但可以藉挪用第二級記憶體的空間來增大第一級記憶體的容量。系統會將最少使用到的區塊(頁)移至第二級記憶體(置換檔案或分頁檔案),當這些檔案被需要時再將它們取回,當愈多檔案需要從第二級記憶體中取回,電腦的效能就愈低。
第三級儲存裝置或第三級記憶體,[9] 這是指可直接插入或自電腦拔除的儲存裝置;裏面的資料在被使用前通常都會複製到第二級記憶體內。該款記憶體的存取速度比第二級記憶體要慢得多(5–60秒 vs. 1–10毫秒)。該款記憶體的優勢在於其擁有龐大的儲存空間,典型的例子包含磁帶櫃和光學記錄庫。