Chúng ta cần xem xét bộ nhớ ở 2 góc độ là logic (hoạt động) và vật lý (cấu tạo). Trước hết chúng ta cần biết bộ nhớ là gì, chúng nằm ở đâu trong hệ thống và hoạt động như thế nào. Sau đó chúng ta sẽ xem xét một số loại bộ nhớ và tốc độ, hình dạng và các modul nhớ mà ta có thể cài đặt.
Bộ nhớ là không gian làm việc của bộ vi xử lý. Đó là nơi cất giữ tạm thời các chương trình và dữ liệu đang được thao tác với bộ vi xử lý. Lưu trữ bộ nhớ là được xem tạm thời vì dữ liệu chỉ tồn tại trong thời gian máy đang hoạt động và không bị khởi động lại. Trước khi khởi động lại hay tắt máy, dữ liệu đã thay đổi cần được ghi vào các thiết bị lưu trữ lâu dài (thường là ổ đĩa cứng) để sau này có thể nạp lại vào bộ nhớ.
Chúng ta hay gọi bộ nhớ là RAM tức là Random Access Memory (bộ nhớ truy cập ngẫu nhiên). Bộ nhớ chính được gọi là RAM vì chúng ta có thể truy cập một cách ngẫu nhiên và nhanh chóng bất kỳ vị trí nào trong bộ nhớ. Tên gọi này đôi
Qua quá trình phát triển nhiều năm của máy tính, khái niệm RAM không còn là một chữ viết tắt nữa mà nó chỉ một không gian nhớ chính để bộ vi xử lý chạy được các chương trình. Nó thường được cấu tạo bởi các chip có tên là DRAM (Dynamic RAM – RAM động). Một đặc điểm của bộ nhớ DRAM là nó lưu trữ dữ liệu theo dạng động, nghĩa là thông tin có thể ghi đi ghi lại trên RAM bất kỳ lúc nào. Một tính chất quan trong nữa của bộ nhớ DRAM là dữ liệu tồn tại cho đến khi mất điện.
Do đó, khi nói đến bộ nhớ của máy tính, chúng ta muốn nói đến RAM hay bộ nhớ vật lý của hệ thống, là những modul hay các chip nhớ chính để lưu trữ các chương trình và dữ liệu mà bộ vi xử lý đang hoạt động. Không nên nhầm lẫn giữa bộ nhớ với thuật ngữ dung lượng lưu trữ (storage) được dùng để chỉ các ổ đĩa từ và băng từ (mặc dù chúng có thể được sử dụng như một dạng RAM – Bộ nhớ ảo: Virtual Memory).
RAM vừa chỉ các chip tạo nên bộ nhớ của hệ thống, vừa chỉ sơ đồ và cách bố trí logic của bộ nhớ. Sơ đồ và cách bố trí logic cho biết cách các địa chỉ bộ nhớ được sắp xếp tương ứng với các chip và vùng địa chỉ nào chứa loại thông tin nào.
Nhiều người mới làm quen với máy tính thường nhầm lẫn giữa bộ nhớ và đĩa lưu trữ(storage disk) bởi vì cả hai cùng sử dụng đơn vị đo lường là byte, Kilobyte, Megabyte, Gigabyte hoặc đơn vị cao hơn.
Một điểm quan trọng mà chúng ta cần ghi nhớ đó là: một file khi được nạp vào trong bộ nhớ, nó chỉ là bản sao của file đó, còn thực chất file đó vẫn tồn tại trong ổ đĩa. Vì tính chất tạm thời của bộ nhớ cho nên file đã bị thay đổi cần được ghi lại vào đĩa cứng trước khi tắt máy, vì khi tắt máy dữ liệu trong bộ nhớ sẽ bị xoá. Bộ nhớ lưu trữ các chương trình đang chạy và dữ liệu của chúng sử dụng. Các chip nhớ có lúc được gọi là “lưu trữ không ổn định” (volatile storage) bởi vì khi tắt máy hoặc có sự cố về nguồn điện, lưu trữ trong RAM sẽ bị mất. Vì bản chất bất ổn định như vậy cho nên nhiều người dùng có thói quen ghi lại thường xuyên (một số chương trình ứng dụng có thể ghi một cách tự động theo thời gian đã định).
Các đặc trưng của bộ nhớ
Ví trí:
• Bên trong CPU: Tập các thanh ghi (register), cache
• Bộ nhớ trong: Bộ nhớ chính (Main memmory – RAM, ROM) • Bộ nhớ ngoài: Các thiết bị nhớ, RAID (HDD, CD-Rom, …)
Dung lượng:
• Độ dài từ nhớ (tính bằng bit) – Kích thước trên một đơn vị lưu trữ • Số lượng từ nhớ - Dung lượng bộ nhớ
Đơn vị truyền:
• Từ nhớ - Truyền tuần tự từng Word • Khối nhớ - Truyền một khối gồn n Word
Phương pháp truy nhập:
• Truy nhập tuần tự (băng từ) – Để đến được điểm n đầu từ phải duyệt qua n-1 vị trí trước.
• Truy nhập trực tiếp (các loại đĩa) – Đầu từ di chuyển trực tiếp đến vị trí cần đọc.
• Truy nhập ngẫu nhiên (bộ nhớ bán dẫn) – ô nhớ cần đọc sẻ được giả mã để lấy thông tin ngay lập tức.
• Truy nhập liên kết (cache) – Truy cập thông qua ban sao của ô nhớ cần đọc
Hiệu năng:
• Thời gian truy nhập • Chu kỳ truy xuất bộ nhớ • Tốc độ truyền
Kiểu bộ nhớ vật lý:
• Bộ nhớ bán dẫn – Lưu trữ bằng điện • Bộ nhớ từ - Lưu trữ dùng từ tính
• Bộ nhớ quang – Lưu trữ sử dụng công nghệ Laze
Các đặc tính vật lý:
• Khả biến/không khả biến • Xoá được/không xoá được
Việc trao đổi dữ liệu giữa CPU và bộ vi xử lý và bộ nhớ chính là một thao tác quan trọng, chiếm đa số trong các lệnh xử lý dữ liệu nên nó quyết định hiệu suất của hệ thống vi xử lý nói chung và máy tính nói riêng. Bộ nhớ chính và bộ nhớ ngoài thường có tốc độ trao đổi dữ liệu chậm (chênh lệch) hơn so với tốc độ làm việc của CPU (kể cả việc vận chuyển dữ liệu trong bộ vi xử lý). Để nâng cao tốc độ xử lý dữ liệu chung của toàn hệ thống, người ta tìm cách nâng cao tốc độ trao đổi dữ liệu (kể cả lệnh) giữa bộ vi xử lý và bộ nhớ ngoài phạm vi bộ vi xử lý. Dựa trên nguyên lý cục bộ về không gian và thời gian mà người ta xây dựng hệ thống nhớ 5 cấp như sau:
Hình 5-25 Mô hình phân cấp bộ nhớ
• Cấp 0 : Tập các thanh ghi nằm trong bộ vi xử lý. Thanh ghi là bộ nhớ kiểu SRAM nên tác động nhanh và thông tin ổn định. Đây là thành phần nhớ
có tốc độ trao đổi dữ liệu nhanh nhất trong hệ thống vì nó gần ALU và CU. Tuy nhiên nó có dung lượng nhỏ.
• Cấp 1 : Primary cache (cache sơ cấp) : Là bộ nhớ có tốc độ trao đổi dữ liệu rất nhanh (nhỏ hơn thanh ghi), có dung lượng nhỏ và được đặt trong bộ
vi xử lý, nhưng cũng có thể nằm ngoài bộ vi xử lý. Trong các bộ vi xử lý tiên tiến, bộ nhớ cache thường được tách (chia) làm 2 với mục đích tránh xung đột trong xử lý song song (đại diện là pipline) là Icache : dành cho lệnh và Dcache : dành cho dữ liệu.
• Cấp 2 : Secondary cache (cache thứ cấp) : Cũng giống như Primary cache, nhưng loại này nằm ngoài bộ vi xử lý. Nó chỉ có khi có Primary
cache (ngược lại, nó chính là Primary cache). Dung lượng của Secondary cache thường lớn hơn Primary cache và nhỏ hơn bộ nhớ.
• Cấp 3 : Main Memory (Bộ nhớ chính): Chứa chương trình và dữ liệu đang hoạt động. Bộ nhớ này được bộ vi xử lý đánh địa chỉ trực tiếp và quản
lý thông qua địa chỉ đó. Một phần của chương trình đang được thi hành có thể nằm trong cache (lệnh và dữ liệu) nhằm tăng tốc độ hoạt động của hệ thống. Dung lương của bộ nhớ chính thường lớn hơn rất nhiều lần dung
CPU Registers 100s Bytes 1s ns Cache K Bytes 4 ns 1-0.1 cents/bit Main Memory M Bytes 100ns- 300ns $.0001-.00001 cents /bit Disk G Bytes, 10 ms (10,000,000 ns) 10 - 10 cents/bit Capacity Access Time Cost Tape infinite sec-min 10-8 Upper Level -5 -6 Registers Cache Memory Disk Tape Instr. Operands Blocks Pages Files Staging Xfer Unit prog./compiler 1-8 bytes cache cntl 8-128 bytes OS 512-4K bytes user/operator Mbytes Lower Level faster Larger
lượng bộ nhớ cache. Như đã biết, trong các hệ thống máy tính hiện đại ngày nay thì bộ nhớ chính thường là DRAM.
• Câp 4 : Secondary memory (Bộ nhớ thứ cấp – bộ nhớ ngoài): Bộ nhớ này
có dung lượng rất lớn nhưng tốc độ trao đổi dữ liệu chậm. Bộ nhớ này để lưu trữ chương trình và dữ liệu một cách lâu dài, cho nhiều người sử dụng (ghi/đọc, mất nguồn điện vẫn còn thông tin). Đại diện cho các bộ nhớ loại này đó chính là các ổ đĩa cứng, mềm CD ROM, CD – WOM, CD WR, băng từ, …
5.3Bộ nhớ đệm (Cache)