Bài giảng môn Kiến trúc máy tính - Chương 6: Bộ nhớ (Memory)

ppt 88 trang ngocly 1200
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng môn Kiến trúc máy tính - Chương 6: Bộ nhớ (Memory)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pptbai_giang_mon_kien_truc_may_tinh_chuong_6_bo_nho_memory.ppt

Nội dung text: Bài giảng môn Kiến trúc máy tính - Chương 6: Bộ nhớ (Memory)

  1. Chương 6 Bộ nhớ (Memory)
  2. Nội dung • Tổng quan về hệ thống nhớ • Bộ nhớ bán dẫn • Bộ nhớ chính • Bộ nhớ cache • Bộ nhớ ngoài • Bộ nhớ ảo
  3. Tổng quan về hệ thống nhớ • Các đặc trưng của hệ thống nhớ – Vị trí • Bên trong CPU: – Tập thanh ghi • Bộ nhớ trong: – Bộ nhớ chính – Bộ nhớ cache • Bộ nhớ ngoài: các thiết bị lưu trữ – Dung lượng • Độ dài từ nhớ (tính bằng bit) • Số lượng từ nhớ
  4. Tổng quan về hệ thống nhớ • Các đặc trưng của hệ thống nhớ (tiếp) – Đơn vị truyền • Từ nhớ (word) • Khối nhớ (block) – Phương pháp truy cập • Truy cập tuần tự (băng từ) • Truy cập trực tiếp (các loại đĩa) • Truy cập ngẫu nhiên (bộ nhớ bán dẫn) • Truy cập kết hợp (cache)
  5. Tổng quan về hệ thống nhớ • Các đặc trưng của hệ thống nhớ (tiếp) – Hiệu năng (performance) • Thời gian truy cập • Tốc độ truyền – Kiểu vật lý • Bộ nhớ bán dẫn • Bộ nhớ từ • Bộ nhớ quang – Các đặc tính vật lý • Tự mất/ Không tự mất (volatile/ nonvolatile) • Xoá được/ không xoá được
  6. Tổng quan về hệ thống nhớ • Phân cấp hệ thống nhớ
  7. Tổng quan về hệ thống nhớ • Độ tin cậy bộ nhớ – Nguyên tắc chung: cần tạo ra và lưu trữ thêm thông tin dư thừa. • Từ dữ liệu cần ghi vào bộ nhớ: m bit • Cần tạo ra và lưu trữ từ mã: k bit • Lưu trữ (m+k) bit – Phát hiện lỗi • Kiểm tra chẵn/ lẻ (parity): Mỗi byte dữ liệu cần 1 bit kiểm tra • Checksum • CRC (Cyclic Redandancy Check) – Phát hiện và sửa lỗi • Dữ liệu được mã hoá bằng các bộ mã có khả năng sửa lỗi ECC (Error Correction Code), ví dụ : Mã Hamming • Mỗi byte hoặc block dữ liệu cần nhiều bit kiểm tra hơn
  8. Tổng quan về hệ thống nhớ • Độ tin cậy bộ nhớ (tiếp)
  9. Bộ nhớ bán dẫn • Phân loại – ROM (Read Only Memory) • Bộ nhớ chỉ đọc • Không tự mất dữ liệu khi cắt nguồn điện – RAM (Random Access Memory) • Bộ nhớ đọc/ ghi • Tự mất dữ liệu khi cắt nguồn điện – Cache • Bộ nhớ có tốc độ cao nhưng dung lượng thấp • Trung gian giữa bộ nhớ chính và thanh ghi trong CPU • Ngày nay thường được tích hợp sẵn trong CPU
  10. Bộ nhớ bán dẫn • ROM – Thông tin được ghi khi sản xuất – Không xoá/ sửa được nội dung khi sử dụng – Ứng dụng: • Thư viện các chương trình con • Các chương trình điều khiển hệ thống nhập xuất cơ bản BIOS (Basic Input Output System) • Phần mềm kiểm tra khi bật máy POST (Power On Self Test) • Phần mềm khởi động máy tính (OS loader) • Vi chương trình
  11. Bộ nhớ bán dẫn • Phân loại ROM – Mask ROM • Thông tin được ghi khi sản xuất • Không xoá/ sửa được nội dung • Giá thành rất đắt – PROM (Programmable ROM) • Khi sản xuất chưa có nội dung (ROM trắng) • Cần thiết bị chuyên dụng để ghi • Cho phép ghi được một lần, gọi là OTP (One Time Programmable) hoặc WORM (Write-Once-Read-Many) – EPROM (Erasable PROM) • Có thể xóa bằng tia cực tím UV (Ultra Violet) • Cần thiết bị chuyên dụng để ghi • Ghi/ xoá được nhiều lần
  12. Bộ nhớ bán dẫn • Phân loại ROM (tiếp) – EEPROM (Electrically EPROM) • Xóa bằng mạch điện, không cần tia UV → Không cần tháo chip ROM ra khỏi máy tính • Có thể ghi theo từng byte • 2 chế độ điện áp: – Điện áp cao : Ghi + Xoá – Điện áp thấp : Chỉ đọc – Flash memory (Bộ nhớ cực nhanh) • EEPROM sản xuất bằng công nghệ NAND, tốc độ truy cập nhanh, mật độ cao • Xóa bằng mạch điện; Ghi theo từng block • Ngày nay được sử dụng rộng rãi dưới dạng thẻ nhớ (CF, SD, ) , thanh USB, ổ SSD (thay thế cho ổ đĩa cứng)
  13. Bộ nhớ bán dẫn • RAM – Bộ nhớ đọc-ghi (Read/Write Memory) – Có thể ghi/ xoá trong quá trình sử dụng → Làm bộ nhớ chính trong máy tính – Tự mất dữ liệu khi cắt nguồn điện. Chỉ lưu trữ thông tin tạm thời khi chạy chương trình, khi kết thúc chương trình cần lưu trữ dữ liệu ra bộ nhớ ngoài – Có hai loại: • SRAM (Static RAM): RAM tĩnh • DRAM (Dynamic RAM): RAM động
  14. Bộ nhớ bán dẫn • SRAM – Các bit được lưu trữ bằng các Flip-Flop – Thông tin ổn định, không tự mất dữ liệu theo thời gian – Cấu trúc phức tạp – Dung lượng chip nhỏ – Tốc độ truy cập nhanh – Đắt tiền – Dùng làm bộ nhớ cache
  15. Bộ nhớ bán dẫn • DRAM – Các bit được lưu trữ trên mạch tụ điện – Tự mất dữ liệu theo thời gian → cần phải có mạch làm tươi (refresh) – Cấu trúc đơn giản – Dung lượng lớn – Tốc độ chậm hơn – Rẻ tiền hơn – Dùng làm bộ nhớ chính
  16. Bộ nhớ bán dẫn • Phân loại DRAM theo cơ chế hoạt động – FPM (Fast Page Mode) • Truy cập theo từng trang bộ nhớ (cùng hàng khác cột) – EDO (Enhanced Data Out) • Khi xuất dữ liệu có thể đồng thời đọc địa chỉ của ô nhớ kế tiếp • Cho phép đọc nhanh gấp đôi so với RAM thường – SDRAM (Synchronous DRAM) • Đồng bộ với system clock → CPU không cần chu kỳ chờ • Truyền dữ liệu theo block – RDRAM (Rambus DRAM) • Bộ nhớ tốc độ cao, truyền dữ liệu theo block • Do công ty Rambus và Intel sản xuất để sử dụng cho CPU Pentium 4 khi mới xuất hiện năm 2000 • Giá thành đắt nên ngày nay ít sử dụng
  17. Bộ nhớ bán dẫn • Phân loại DRAM theo cơ chế hoạt động (tiếp) – DDR-SDRAM (Double Data Rate-SDRAM) • Phiên bản cải tiến của SDRAM nhằm nâng cao tốc độ truy cập nhưng có giá thành rẻ hơn RDRAM • Gởi dữ liệu 2 lần trong 1 chu kỳ clock – DDR2/ DDR3: Gởi dữ liệu 4 hoặc 8 lần trong 1 chu kỳ clock
  18. Bộ nhớ bán dẫn • Phân loại DRAM theo hình thức đóng gói – SIMM (Single Inline Memory Module) – DIMM (Dual Inline Memory Module) – RIMM (Rambus Inline Memory Module) – SO-DIMM (Small Outline DIMM) – SO-RIMM (Small Outline RIMM)
  19. Bộ nhớ bán dẫn • Tổ chức của chip nhớ n – Các đường địa chỉ: An-1 ÷ A0 → có 2 từ nhớ – Các đường dữ liệu: Dm-1 ÷ D0 → độ dài từ nhớ = m bit n – Dung lượng chip nhớ = 2 * m bit – Các đường điều khiển: • Tín hiệu chọn chip CS (Chip Select) • Tín hiệu điều khiển đọc OE (Output Enable) • Tín hiệu điều khiển ghi WE (Write Enable) • Các tín hiệu điều khiển thường tích cực với mức 0
  20. Bộ nhớ bán dẫn • Tổ chức bộ nhớ 1 chiều và 2 chiều
  21. Bộ nhớ bán dẫn • Tổ chức bộ nhớ hai chiều – Có n đường địa chỉ: n = n1 + n2 • 2n1 hàng, • mỗi hàng có 2n2 từ nhớ, – Có m đường dữ liệu: • mỗi từ nhớ có độ dài m-bit. – Dung lượng của chip nhớ: • [2n1 x (2n2 x m)] bit = (2n1+n2 x m) bit = (2n x m) bit. – Hoạt động giải mã địa chỉ: • Bước 1: bộ giải mã hàng chọn 1 trong 2n1 hàng. • Bước 2: bộ giải mã cột chọn 1 trong 2n2 từ nhớ (cột) của hàng đã được chọn.
  22. Bộ nhớ bán dẫn • Tổ chức của DRAM – Dùng n đường địa chỉ dồn kênh → cho phép truyền 2n bit địa chỉ – Tín hiệu chọn địa chỉ hàng RAS (Row Address Strobe) – Tín hiệu chọn địa chỉ cột CAS (Column Address Strobe) 2n – Dung lượng DRAM = 2 x m bit
  23. Bộ nhớ bán dẫn • Thiết kế mô-đun nhớ bán dẫn – Dung lượng chip nhớ 2n x m bit – Cần thiết kế để tăng dung lượng: • Thiết kế tăng độ dài từ nhớ • Thiết kế tăng số lượng từ nhớ • Thiết kế kết hợp: tăng cả độ dài và số lượng từ nhớ – Qui tắc: ghép nối các chip nhớ song song (tăng độ dài) hoặc nối tiếp bằng mạch giải mã (tăng số lượng)
  24. Bộ nhớ bán dẫn • Tăng độ dài từ nhớ – VD: • Cho chip nhớ SRAM 4K x 4 bit • Thiết kế mô-đun nhớ 4K x 8 bit – Giải: • Dung lượng chip nhớ = 212 x 4 bit • chip nhớ có: – 12 chân địa chỉ – 4 chân dữ liệu • mô-đun nhớ cần có: – 12 chân địa chỉ – 8 chân dữ liệu – Tổng quát • Cho chip nhớ 2n x m bit • Thiết kế mô-đun nhớ 2n x (k.m) bit • Dùng k chip nhớ
  25. Bộ nhớ bán dẫn • Ví dụ: Tăng độ dài từ nhớ
  26. Bộ nhớ bán dẫn • Tăng số lượng từ nhớ – VD: • Cho chip nhớ SRAM 4K x 8 bit • Thiết kế mô-đun nhớ 8K x 8 bit – Giải: • Dung lượng chip nhớ = 212 x 8 bit • Chip nhớ có: – 12 chân địa chỉ – 8 chân dữ liệu • Dung lượng mô-đun nhớ = 213 x 8 bit – 13 chân địa chỉ – 8 chân dữ liệu
  27. Bộ nhớ bán dẫn • Ví dụ: Tăng số lượng từ nhớ
  28. Bộ nhớ bán dẫn • Bài tập – Tăng số lượng từ gấp 4 lần: • Cho chip nhớ SRAM 4K x 8 bit • Thiết kế mô-đun nhớ 16K x 8 bit • Gợi ý: Dùng mạch giải mã 2 → 4 – Tăng số lượng từ gấp 8 lần: • Cho chip nhớ SRAM 4K x 8 bit • Thiết kế mô-đun nhớ 32K x 8 bit • Gợi ý: Dùng mạch giải mã 3 → 8 – Thiết kế kết hợp: • Cho chip nhớ SRAM 4K x 4 bit • Thiết kế mô-đun nhớ 8K x 8 bit
  29. Bộ nhớ chính • Các đặc trưng cơ bản – Chứa các chương trình đang thực hiện và các dữ liệu đang được sử dụng – Tồn tại trên mọi hệ thống máy tính – Bao gồm các ô nhớ được đánh địa chỉ trực tiếp bởi CPU – Dung lượng của bộ nhớ chính trên thực tế thường nhỏ hơn không gian địa chỉ bộ nhớ mà CPU có thể quản lý. – Việc quản lý logic bộ nhớ chính tuỳ thuộc vào hệ điều hành → người lập trình chỉ sử dụng bộ nhớ logic.
  30. Bộ nhớ chính • Tổ chức bộ nhớ đan xen (interleaved memory) – Độ rộng của bus dữ liệu để trao đổi với bộ nhớ: m = 8, 16, 32, 64,128 bit – Các ô nhớ được tổ chức theo byte → tổ chức bộ nhớ vật lý khác nhau – m=8 bit → một băng nhớ tuyến tính
  31. Bộ nhớ chính • Tổ chức bộ nhớ đan xen (tiếp) – m = 16 bit → hai băng nhớ đan xen
  32. Bộ nhớ chính • Tổ chức bộ nhớ đan xen (tiếp) – m = 32 bit → bốn băng nhớ đan xen
  33. Bộ nhớ chính • Tổ chức bộ nhớ đan xen (tiếp) – m = 64 bit → tám băng nhớ đan xen
  34. Bộ nhớ cache • Nguyên tắc chung của cache – Nguyên lý cục bộ : Một chương trình thường sử dụng 90% thời gian chỉ để thi hành 10% câu lệnh – Cache được đặt giữa CPU và bộ nhớ chính nhằm tăng tốc độ truy cập bộ nhớ của CPU – Ví dụ: • Cấu trúc chương trình tuần tự • Vòng lặp có thân nhỏ • Cấu trúc dữ liệu mảng
  35. Bộ nhớ cache • Thao tác trên bộ nhớ cache – CPU yêu cầu nội dung của ô nhớ – CPU kiểm tra trên cache với dữ liệu này – Nếu có, CPU nhận dữ liệu từ cache (nhanh) – Nếu không có thực hiện 2 bước sau: • Đọc Block chứa dữ liệu từ bộ nhớ chính vào cache (chậm hơn) • Chuyển dữ liệu từ cache vào CPU
  36. Bộ nhớ cache • Cấu trúc chung của cache – Bộ nhớ chính có 2N byte nhớ • Bộ nhớ chính và cache được chia thành các khối có kích thước bằng nhau • Bộ nhớ chính: B0, B1, B2, , Bp-1 (p Blocks) • Bộ nhớ cache: L0, L1, L2, , Lm-1 (m Lines) • Kích thước của Block = 8,16,32,64,128 byte
  37. Bộ nhớ cache • Cấu trúc chung của cache (tiếp) – Một số Block của bộ nhớ chính được nạp vào các Line của cache. – Nội dung Tag (thẻ nhớ) cho biết Block nào của bộ nhớ chính hiện đang được chứa ở Line đó. – Khi CPU truy cập (đọc/ghi) một từ nhớ, có hai khả năng xảy ra: • Từ nhớ đó có trong cache (cache hit) • Từ nhớ đó không có trong cache (cache miss)
  38. Bộ nhớ cache • Tổ chức bộ nhớ cache – Kích thước cache • Cache càng lớn càng hiệu quả nhưng đắt tiền • Cần nhiều thời gian để giải mã và truy cập – Kỹ thuật ánh xạ : Phương pháp xác định vị trí dữ liệu trong cache • Ánh xạ trực tiếp (Direct mapping) • Ánh xạ kết hợp toàn phần (Fully associative mapping) • Ánh xạ kết hợp theo bộ (Set associative mapping) – Giải thuật thay thế • Phương pháp chọn lựa vùng nhớ nào lưu trong cache để tăng hiệu suất sử dụng cache
  39. Bộ nhớ cache • Ánh xạ trực tiếp – Mỗi Block của bộ nhớ chính chỉ có thể được nạp vào một Line của cache: • B0 → L0 • B1 → L1 Cache line Main Memory blocks s • 0 0, m, 2m, 3m 2s–m • B → L m-1 m-1 1 1, m+1, 2m+1 2s–m+1 • B → L m 0 m–1 m–1, 2m–1, 3m–1 2s–1 • Bm+1 → L1 • – Tổng quát • Bj chỉ có thể nạp vào L(j mod m) • m là số Line của cache.
  40. Bộ nhớ cache • Ánh xạ trực tiếp (tiếp)
  41. Bộ nhớ cache • Đặc điểm của ánh xạ trực tiếp – Mỗi một địa chỉ N bit của bộ nhớ chính gồm ba vùng: • Vùng Word gồm W bit xác định một từ nhớ trong Block hay Line: – 2W = kích thước của Block hay Line • Vùng Line gồm L bit xác định một trong số các Line trong cache: – 2L = số Line trong cache = m • Vùng Tag gồm T bit: – T = N - (W+L) – Bộ so sánh đơn giản – Giá thành rẻ – Tỷ lệ cache hit thấp (vd: 2 block cùng map vào 1 line)
  42. Bộ nhớ cache • Ánh xạ kết hợp toàn phần – Mỗi Block có thể nạp vào bất kỳ Line nào của cache. – Địa chỉ của bộ nhớ chính bao gồm hai vùng: • Vùng Word giống như trường hợp ánh xạ trực tiếp. • Vùng Tag dùng để xác định Block của bộ nhớ chính. – Tag xác định Block đang nằm ở Line đó • Đặc điểm – So sánh đồng thời Block nhớ với tất cả các Tag → mất nhiều thời gian – Tỷ lệ cache hit cao. – Bộ so sánh phức tạp.
  43. Bộ nhớ cache • Ánh xạ kết hợp toàn phần (tiếp)
  44. Bộ nhớ cache • Ánh xạ kết hợp theo bộ – Cache đươc chia thành các bộ (Set) – Mỗi một Set chứa một số Line – Ví dụ: • 4 Line/Set → 4-way associative mapping – Ánh xạ theo nguyên tắc sau: • B0 → S0 • B1 → S1 • B2 → S2 •
  45. Bộ nhớ cache • Ánh xạ kết hợp theo bộ (tiếp)
  46. Bộ nhớ cache • Đặc điểm ánh xạ kết hợp theo bộ – Kích thước Block = 2W Word – Vùng Set có S bit dùng để xác định một trong số V = 2S Set (dùng để xác định Set nào trong cache) – Vùng Tag có T bit: T = N - (W+S) dùng để xác định Line nào có trong Set – Mỗi Block bộ nhớ có thể ánh xạ vào Line bất kỳ trong 1 Set tương ứng – Là phương pháp tổng hợp từ hai phương pháp trên – Thông thường sử dụng 2, 4, 8, 16 Lines/Set
  47. Bộ nhớ cache • Ví dụ về ánh xạ địa chỉ – Không gian địa chỉ bộ nhớ chính = 4GB – Dung lượng bộ nhớ cache là 256KB – Kích thước Line (Block) = 32byte. – Xác định số bit của các trường địa chỉ cho ba trường hợp tổ chức: • Direct mapping • Fully associative mapping • 4-way set associative mapping
  48. Bộ nhớ cache • Ví dụ: Direct mapping – Bộ nhớ chính : 4GB = 232 byte → N = 32 bit – Cache : 256 KB = 218 byte. – Line : 32 byte = 25 byte → W = 5 bit – Line trong cache : 218/ 25 = 213 Line → L = 13 bit – T = 32 - (13 + 5) = 14 bit
  49. Bộ nhớ cache • Ví dụ: Fully associative mapping – Bộ nhớ chính : 4GB = 232 byte → N = 32 bit – Line : 32 byte = 25 byte → W = 5 bit – Số bit của vùng Tag : T = 32 - 5 = 27 bit
  50. Bộ nhớ cache • Ví dụ: 4-way set associative mapping – Bộ nhớ chính : 4GB = 232 byte → N = 32 bit – Line : 32 byte = 25 byte → W = 5 bit – Line trong cache = 218/ 25 = 213 Line – Một Set có 4 Line = 22 Line – Set trong cache = 213/ 22 = 211 Set → S = 11 bit – Số bit của vùng Tag : T = 32 - (11 + 5) = 16 bit
  51. Bộ nhớ cache • Giải thuật thay thế cache – Mục đích: Giải thuật thay thế dùng để xác định Line nào trong cache sẽ được chọn để đưa dữ liệu vào cache khi không còn chỗ trống – Thường được cài đặt bằng phần cứng để tăng tốc độ xử lý – Đối với ánh xạ trực tiếp: • Không phải lựa chọn • Mỗi Block chỉ ánh xạ vào một Line xác định
  52. Bộ nhớ cache • Giải thuật thay thế với ánh xạ kết hợp – FIFO (First In First Out): Thay thế Block nào nằm lâu nhất ở trong Set đó – LFU (Least Frequently Used): Thay thế Block nào trong Set có số lần truy cập ít nhất trong cùng một khoảng thời gian – LRU (Least Recently Used): Thay thế Block ở trong Set tương ứng có thời gian lâu nhất không được tham chiếu tới. – Giải thuật tối ưu nhất: LRU
  53. Bộ nhớ cache • Đặc điểm ghi dữ liệu ra cache – Chỉ ghi vào 1 block trong cache khi nội dung trong bộ nhớ chính thay đổi – Nếu CPU ghi ra cache, ô nhớ tương ứng bị lạc hậu (invalid) → cần update ra BN chính. Ngược lại, nếu ghi vào BN chính, nội dung trong cache sẽ bị invalid → cần update lại cache – Trong hệ đa xử lý có nhiều CPU với cache riêng, khi ghi vào 1 cache, các cache khác sẽ bị invalid
  54. Bộ nhớ cache • Phương pháp ghi dữ liệu khi cache hit – Write-through: • Ghi cả cache và cả bộ nhớ chính • Tốc độ chậm • Cho phép CPU khác hoặc IO truy cập dữ liệu đã ghi từ BN – Write-back: • Chỉ ghi ra cache • Tốc độ nhanh • CPU khác hoặc IO không đọc được dữ liệu mới trong BN • Khi Block trong cache bị thay thế cần phải ghi Block này về bộ nhớ chính
  55. Bộ nhớ cache • Cache tách biệt và cache đồng nhất – Cache tách biệt (Split Cache): Tổ chức cache riêng cho dữ liệu và cache riêng cho lệnh chương trình • Tối ưu cho từng loại cache • Hỗ trợ kiến trúc pipeline • Phần cứng phức tạp – Cache đồng nhất (Unified Cache): Sử dụng 1 cache chung cho cả dữ liệu lẫn lệnh chương trình • Cân bằng về tỷ lệ cache hit • Phần cứng đơn giản
  56. Bộ nhớ cache • Ví dụ: Hệ thống cache trong CPU Intel Pentium 4
  57. Bộ nhớ cache • Ví dụ: Hệ thống cache trong CPU Intel Core i7
  58. Bộ nhớ ngoài • Các kiểu bộ nhớ ngoài – Trống từ (Drum): Ngày nay không còn sử dụng – Băng từ (Tape): Chuyên dùng cho backup dữ liệu – Đĩa từ: Đang sử dụng rộng rãi nhất – Đĩa quang: Dùng để trao đổi dữ liệu giữa các máy tính và phân phối phần mềm – Flash Disk: Loại bộ nhớ bán dẫn gắn ngoài qua cổng USB, nhỏ gọn và thuận tiện để trao đổi dữ liệu – SSD (Solid State Disk): Cũng là bộ nhớ bán dẫn có dung lượng lớn giao tiếp với máy tính tương tự ổ đĩa cứng, tốc độ truy cập cao, ít tốn điện, không ồn, chống sốc tốt → rất phù hợp với máy xách tay. Nhược điểm giá thành đắt.
  59. Bộ nhớ ngoài • Đĩa từ – Bao gồm đĩa mềm (floppy disk) và đĩa cứng (hard disk) – Các đặc tính đĩa từ • Đầu từ cố định hay đầu từ di động • Đĩa cố định hay thay đổi được (removable) • Một mặt hay hai mặt • Một tấm đĩa (đĩa mềm) hay nhiều tấm đĩa (đĩa cứng) • Cơ chế đầu từ – Tiếp xúc (đĩa mềm) – Không tiếp xúc
  60. Bộ nhớ ngoài • Đĩa từ (tiếp) – Đĩa mềm • 8”, 5.25”, 3.5” • Dung lượng nhỏ: chỉ tới 1.44MB • Tốc độ chậm • Hiện nay không sản xuất nữa – Đĩa cứng • Thường có nhiều tấm đĩa • Đang sử dụng rộng rãi • Dung lượng lớn (hiện nay có ổ 3TB – 2011) • Tốc độ đọc/ghi nhanh • Rẻ tiền
  61. Bộ nhớ ngoài • Cấu trúc vật lý đĩa cứng – Mặt đĩa – Track (cylinder) – Sector
  62. Bộ nhớ ngoài • Cấu trúc vật lý đĩa cứng (tiếp) • Track là các vòng tròn đồng tâm • Đơn vị đọc ghi: từng sector (~ 512Byte), có thể đọc ghi theo block nhiều sector (cluster) • Thời gian đọc ghi: • Seek time • Latency time • Transfer time • Đĩa quay với vận tốc góc không đổi CAV (constant angular velocity)
  63. Bộ nhớ ngoài • Cấu trúc vật lý đĩa cứng (tiếp) – Longitudial recording: Ghi tuyến tính – Perpendicular recording: Ghi trực giao – Cluster: Một bộ gồm nhiều sector
  64. Bộ nhớ ngoài • Định dạng sector
  65. Bộ nhớ ngoài • Kỹ thuật RAID – RAID: Redundant Array of Independent Disks – Ghép nhiều ổ đĩa vật lý để truy cập như 1 ổ luận lý • Tăng tốc độ truy cập (đọc ghi luân phiên và song song) • Tăng độ an toàn dữ liệu khi đĩa hư hỏng (ghi dư thừa hoặc ghi thêm thông tin ECC/parity) • Tăng dung lượng tối đa của đơn vị lưu trữ (nhiều đĩa) – Hiện có 7 loại thông dụng: RAID0 – RAID6
  66. Bộ nhớ ngoài • RAID 0, 1 và 2
  67. Bộ nhớ ngoài • RAID 3 và 4
  68. Bộ nhớ ngoài • RAID 5 và 6
  69. Bộ nhớ ngoài • Tóm tắt kỹ thuật RAID
  70. Bộ nhớ ngoài • Đĩa quang (optical disk) – CD (compact disk) • Khả năng đọc/ghi: CD-ROM, CD-R, CD-RW • Đường kính: 12cm, 8cm • Dung lượng: 700MB, 200MB • Track: Ghi theo các vòng hướng tâm, tốc độ dài không đổi CLV (constant linear velocity) • Tốc độ đọc ghi: 1x – 52x (1x= ??) • Chuẩn định dạng: ISO 9660, UDF (Universal Disk Format)
  71. Bộ nhớ ngoài • Đĩa quang (tiếp) – DVD (Digital Versatile Disk): Loại đĩa dung lượng cao (so với CD), xuất phát từ đĩa phim video (Digital Video Disk) – Khả năng đọc ghi: DVD-ROM, DVD±R, DVD±RW, DVD-RAM – Số mặt/ số lớp: 1-2 mặt, 1-2 lớp/mặt Diameter Capacity – Đường kính: 12cm, 8cm Sides Layers (cm) (GB) – Tốc độ: 1x – 24x (1x=?) 1 1 8 1.46 1 2 8 2.66 – Đĩa DVD dung lượng cao 2 2 8 2.92 • HD-DVD (15-60GB) 2 4 8 5.32 1 1 12 4.7 • Blue ray (25-50GB) 1 2 12 8.54 2 2 12 9.4 2 4 12 17.08
  72. Bộ nhớ ảo • Bộ nhớ thật – Không gian địa chỉ trong chương trình trùng với không gian địa chỉ trong bộ nhớ. Cho phép người lập trình truy cập trực tiếp vào 1 ô nhớ → Khó bảo vệ bộ nhớ. – Khi thi hành, hệ điều hành nạp toàn bộ chương trình vào bộ nhớ (nạp trước) → bộ nhớ máy tính phải đủ lớn để chạy các CT lớn – Chương trình được cấp phát 1 vùng nhớ có địa chỉ liên tục (cấp phát liên tục). HĐH sẽ thu hồi vùng nhớ sau khi chương trình kết thúc – Để thực hiện đa chương, HĐH cần chia BN ra nhiều vùng (partition), mỗi vùng cấp phát cho 1 CT – Khi bộ nhớ đầy • HĐH không cấp tiếp, các CT phải chờ đến khi có 1 vùng nhớ trống • HĐH cấp tiếp: Cần kỹ thuật tráo đổi (swapping) để ghi tạm vùng nhớ của 1 CT khác ra BN ngoài, lấy chỗ trống cấp cho CT mới
  73. Bộ nhớ ảo • Bộ nhớ thật (tiếp)
  74. Bộ nhớ ảo • Bộ nhớ ảo (Virtual Memory) – Không gian địa chỉ trong CT (địa chỉ ảo) được tách biệt với không gian địa chỉ trong BN (địa chỉ thực) → CPU và HĐH sẽ phối hợp để ánh xạ (mapping) địa chỉ ảo trong CT thành địa chỉ thật trong BN – Việc ánh xạ và quản lý BN ảo được thực hiện qua đơn vị MMU (Memory Management Unit)
  75. Bộ nhớ ảo • Bộ nhớ ảo (tiếp) – Khi thi hành, hệ điều hành chỉ nạp các phần cần thiết của CT vào bộ nhớ (nạp theo yêu cầu), không cần nạp toàn bộ CT → tránh lãng phí BN – Các CT được cấp phát nhiều vùng nhớ có địa chỉ tách biệt nhau (cấp phát không liên tục). – Sử dụng kỹ thuật tráo đổi (swapping) để ghi tạm thời các vùng nhớ chưa cần đến ra BN ngoài (swap-out) để lấy chỗ trống nạp thông tin cần thiết vào BN (swap-in) khi cần đến – BN ngoài thông dụng là đĩa cứng – Có 2 kỹ thuật BN ảo: • Kỹ thuật phân trang : Kích thước các vùng nhớ cố định • Kỹ thuật phân đoạn : Kích thước các vùng nhớ thay đổi
  76. Bộ nhớ ảo • Kỹ thuật phân trang (paging) – Không gian địa chỉ ảo trong CT được chia đều ra các trang ảo (virtual page, gọi tắt là page) có kích thước bằng nhau, mỗi trang là 1 đơn vị cấp phát BN của HĐH – Không gian địa chỉ thật trong BN cũng được chia đều thành các khung trang (page frame, gọi tắt là frame) có kích thước bằng 1 trang (thường là 4KB) – Khi có yêu cầu cấp phát BN, HĐH có thể nạp 1 trang theo yêu cầu vào bất cứ frame nào trong BN thật – Khi CT truy cập vào 1 trang chưa được cấp phát sẽ gây ra lỗi trang (page fault) → HĐH phải xử lý bằng cách swapping với 1 trang khác chưa cần sử dụng đến (chậm) – HĐH cần 1 bảng quản lý để theo dõi trang nào đang được nạp vào frame nào trong BN cho mỗi CT, gọi là bảng trang (page table)
  77. Bộ nhớ ảo • Kỹ thuật phân trang (tiếp)
  78. Bộ nhớ ảo • Ví dụ về BN phân trang – BN ảo trong CT gồm 64KB được chia ra 16 trang, mỗi trang 4KB – BN thực gồm 32KB được chia ra 8 frame – BN đang được cấp phát như thể hiện trong bảng trang Bài tập: Hãy tính địa chỉ thật từ các địa chỉ ảo • 10.000 • 20.000 • 30.000
  79. Bộ nhớ ảo • Kỹ thuật phân đoạn (segmentation) – Quan điểm người lập trình về BN • Chương trình bao gồm nhiều module • Dữ liệu bao gồm nhiều array, chuỗi, • Khi truy cập sẽ căn cứ vào địa chỉ tương đối của module (lệnh thứ mấy) hay array (phần tử thứ mấy)
  80. Bộ nhớ ảo • Kỹ thuật phân đoạn (tiếp) – HĐH sẽ cấp phát BN theo từng đoạn (segment) có kích thước theo yêu cầu lập trình, người lập trình truy cập BN theo offset trong từng segment – Địa chỉ ảo có dạng (segment, offset) – Khi có yêu cầu cấp phát BN, HĐH có thể nạp 1 segment theo yêu cầu vào vùng trống trong BN thật. Nếu không có vùng trống đủ lớn HĐH cần dồn BN để tạo ra vùng trống đủ lớn. – Khi CT truy cập vào 1 segment chưa được cấp phát sẽ gây ra lỗi segment (segment fault) → HĐH phải xử lý bằng cách swapping với 1 hoặc vài segment khác chưa cần sử dụng đến (chậm) – HĐH cần 1 bảng quản lý để theo dõi segment nào đang được nạp vào vị trí nào trong BN cho mỗi CT, gọi là bảng segment (segment table)
  81. Bộ nhớ ảo • Ví dụ về BN phân đoạn Ban đầu S1 swap-out S4 swap-out S3 swap-out Dồn bộ nhớ S7 swap-in S5 swap-in S6 swap-in
  82. Bộ nhớ ảo • Tổng quát việc truy cập bộ nhớ trong máy tính
  83. Bộ nhớ ảo • Ưu điểm BN ảo – Cho phép CT lớn hơn BN vẫn chạy được – Chỉ nạp phần CT nào cần đến vào BN → tiết kiệm BN • Nhược điểm BN ảo – Tăng phí tổn hệ thống (overhead): Tốn thời gian tính toán địa chỉ ảo sang địa chỉ thật, tốn không gian BN chứa bảng trang/ segment – Truy cập BN chậm hơn so với quản lý BN thực: Cần gấp đôi thời gian truy cập BN. Khi có page/ segment fault việc truy cập BN biến thành truy cập IO • Cách khắc phục – Cần phần cứng đặc biệt hỗ trợ HĐH để quản lý BN – Cần giải thuật thay trang/ segment tối ưu
  84. Bộ nhớ ảo • Ví dụ: BN ảo trong CPU Intel Pentium 4 – Phân segment kết hợp phân trang 2 cấp • Phân segment: Segment 16 bit, Offset: 32 bit. • Phân trang: Địa chỉ tuyến tính 32 bit chia ra: Directory 10 bit, page 10 bit và offset 12 bit (4KB/trang)
  85. Câu hỏi