Tiếp nội dung phần 1, Bài giảng Kiến trúc máy tính: Phần 2 cung cấp cho người học những kiến thức như: Bộ nhớ và các hệ thống lưu trữ; Hệ thống BUS và tổ chức vào/ ra. Mời các bạn cùng tham khảo để nắm chi tiết nội dung giáo trình!
Trang 14.1.2 Phân cấp bộ nhớ
Các đặc tính như lượng thông tin lưu trữ, thời gian thâm nhập bộ nhớ, chu kỳ
bộ nhớ, giá tiền mỗi bit nhớ khiến ta phải phân biệt các cấp bộ nhớ: các bộ nhớ nhanh với dung lượng ít đến các bộ nhớ chậm với dung lượng lớn (hình 4.1)
Hình 4 1 Các cấp bộ nhớ
- Tập thanh ghi: Các thanh ghi bên trong CPU có thể coi là một trường hợp đặc biệt của bộ nhớ Mức nhớ này truy nhập nhanh nhất và dễ dàng nhất, do vậy đây có thể xem là mức 0 của toàn bộ sự phân cấp bộ nhớ
- Bộ nhớ Cache: Cache được dùng để tăng tốc độ trao đổi thông tin giữa CPU
và bộ nhớ chính, nên được gọi là bộ nhớ đệm truy nhập nhanh
- Bộ nhớ chính (Main memory): là hệ thống nhớ được địa chỉ hoá trực tiếp bởi
CPU, bao gồm bộ nhớ ROM, RAM
- Bộ nhớ ngoài (External Memory)
Là hệ thống nhớ chứa thư viện chương trình và dữ liệu
Có dung lượng lớn nhưng tốc độ chậm
Dung lượng: Từ vài chục MB đến vài GB
Nhận xét
Ta thấy trên hình 4.1, từ trái sang phải các cấp bộ nhớ có đặc điểm sau:
- Dung lượng giảm dần
- Tộc độ giảm dần
- Tần suất CPU truy nhập giảm dần
Trang 2- Giá thành /1 bit giảm dần
Các đặc tính chính của các cấp bộ nhớ dẫn đến hai mức chính là: mức cache - bộ nhớ trong và mức bộ nhớ ảo (bao gồm bộ nhớ trong và không gian cấp phát trên đĩa cứng) (hình 4.2) Cách tổ chức này trong suốt đối với người sử dụng Người sử dụng chỉ thấy duy nhất một không gian định vị ô nhớ, độc lập với vị trí thực tế của các lệnh
và dữ liệu cần thâm nhập
Hình 4 2 Hai mức bộ nhớ Các cấp bộ nhớ giúp ích cho người lập trình muốn có một bộ nhớ thật nhanh với chi phí đầu tư giới hạn Vì các bộ nhớ nhanh đắt tiền nên các bộ nhớ được tổ chức thành nhiều cấp, cấp có dung lượng ít thì nhanh nhưng đắt tiền hơn cấp có dung lượng cao hơn
Mục tiêu của việc thiết lập các cấp bộ nhớ là người dùng có một hệ thống bộ nhớ rẻ tiền như cấp bộ nhớ thấp nhất và gần nhanh như cấp bộ nhớ cao nhất Các cấp
bộ nhớ thường được lồng vào nhau Mọi dữ liệu trong một cấp thì được gặp lại trong cấp thấp hơn và có thể tiếp tục gặp lại trong cấp thấp nhất
Chúng ta có nhận xét rằng, mỗi cấp bộ nhớ có dung lượng lớn hơn cấp trên mình, ánh xạ một phần địa chỉ các ô nhớ của mình vào địa chỉ ô nhớ của cấp trên trực tiếp có tốc độ nhanh hơn, và các cấp bộ nhớ phải có cơ chế quản lý và kiểm tra các địa chỉ ánh xạ
4.2 Các đặc điểm của bộ nhớ
Các đặc trưng chính của hệ thống nhớ máy tính bao gồm: Vị trí, dung lượng, đơn vị truyền, phương pháp truy nhập, hiệu suất, kiểu vật lý, đặc tính vật lý, cách tổ chức
Vị trí (Location)
Trang 3Bộ nhớ máy tính bao gồm cả hai loại bộ nhớ trong và ngoài Bộ nhớ trong của máy tính thường được đề cập đến như bộ nhớ chính Bộ nhớ ngoài của máy tính gồm các thiết bị lưu trữ ngoại vi, như đĩa và băng từ
Dung lượng (Capacity)
Với bộ nhớ trong, dung lượng thường được biểu diễn dưới dạng byte hay word Các độ dài word phổ biến là 8, 16 và 32 bit Bộ nhớ ngoài có dung lượng được biểu thị theo byte
Đơn vị truyền (Unit of Transfer)
Với bộ nhớ trong, đơn vị truyền bằng với số đường dữ liệu vào/ ra khỏi mô-đun
bộ nhớ Giá trị ngày thường bằng với độ dài của một word, nhưng cũng có thể khác
- Truyền theo từ nhớ (bộ nhớ trong)
- Truyền theo khối nhớ (bộ nhớ ngoài)
Phương pháp truy nhập (Access Method)
Đây là một trong những yếu tố rõ nhất giúp phân biệt các kiểu bộ nhớ Có bốn loại phương pháp truy nhập
- Truy nhập tuần tự (băng từ): Bộ nhớ được tổ chức thành các đơn vị dữ liệu gọi là bản ghi Việc truy nhập phải được thực hiện theo một dãy tuyến tính cụ thể Thông tin địa chỉ được lưu trữ được dùng để phân tách các bản ghi và hỗ trợ quá trình tìm kiếm lấy thông tin Một bộ phận đọc/ ghi dùng chung được sử dụng Bộ phận này phải được di chuyển từ vị trí hiện thời của nó đến vị trí được yêu cầu, quét qua và từ chối các bản ghi trung gian Do đó, thời gian để truy nhập một bản ghi tùy ý biến đổi khá cao Các đơn vị băng từ là các đơn vị có dạng truy nhập tuần tự
- Truy nhập trực tiếp (đĩa từ, đĩa quang): Cũng như với truy nhập tuần tự, truy nhập trực tiếp bao gồm việc dùng chung một bộ phận đọc/ ghi Tuy nhiên, các khối hay bản ghi riêng lẻ có một địa chỉ duy nhất dựa trên vị trí vật lý Việc truy nhập được thực hiện thông qua truy nhập trực tiếp cộng với tìm kiếm tuần tự, đếm hay chờ để đến được vị trí cuối cùng Một lần nữa, thời gian truy nhập là biến đổi
- Truy nhập ngẫu nhiên (bộ nhớ chính): Mỗi trị trí khả định địa chỉ trong bộ nhớ có một cơ chế định địa chỉ vật lý duy nhất Thời gian truy nhập một vị trí cho trước độc lập với dãy các truy nhập trước đó và không thay đổi Do đó, bất kỳ một vị trí nào cũng có thể được chọn ngẫu nhiên và được định địa chỉ cũng như truy nhập trực tiếp
- Truy nhập liên kết (bộ nhớ Cache): Đây là kiểu truy nhập ngẫu nhiên bộ nhớ cho phép thực hiện việc so sánh các ví trí bit có yêu cầu trong một word phục vụ cho việc đối chiếu đặc biệt nào đó, và có thể thực hiện thao tác này cùng một lúc cho tất cả các word Do đó, một word được trích ra dựa trên một phần nội dung của nó chứ không phải dựa trên địa chỉ Tương tự với phương thức truy nhập ngẫu nhiên thông
Trang 4thường, mỗi vị trí nhớ có cơ chế định địa chỉ riêng, và thời gian lấy thông tin không đổi, độc lập với vị trí hoặc khuôn dạng truy nhập trước đó
Hiệu suất (Performance)
Đứng trên quan điểm người sử dụng, hai đặc trưng quan trọng nhất của bộ nhớ
là dung lượng và hiệu suất vận hành Có 3 tham số hiệu suất được sử dụng:
- Thời gian truy nhập:
+) Đối với bộ nhớ truy nhập ngẫu nhiên thì thời gian truy nhập chính là thời gian thực hiện thao tác đọc hoặc ghi
+) Đối với bộ nhớ truy nhập không ngẫu nhiên thì thời gian truy nhập chính là thời gian để đặt cơ chế ghi hoặc đọc ở một vị trí mong muốn
- Chu kỳ truy nhập: Khái niệm này được sử dụng cho bộ nhớ truy nhập ngẫu nhiên
Chu kỳ truy nhập bằng thời gian giữa hai lần truy nhập
Chu kỳ truy nhập bằng thời gian truy nhập cộng với thời gian trước khi truy nhập lần tiếp theo có thể bắt đầu
- Tốc độ truyền: Là tộc độ truyền dữ liệu đến hoặc ra khỏi bộ nhớ
Đối với bộ nhớ truy nhập ngẫu nhiên thì tốc độ truyền bằng1 chia cho chu kỳ truy nhập (1/chu kỳ truy nhập)
Đối với bộ nhớ truy nhập không ngẫu nhiên thì tốc độ truyền bằng số bit truyền được trong 1 giây (s)
Kiểu vật lý của bộ nhớ (Physical Type)
- Bộ nhớ bán dẫn
- Bộ nhớ từ: Băng từ và đĩa từ
- Bộ nhớ quang: Đĩa quang
Các đặc trưng vật lý (Physical Characteristics)
- Bộ nhớ khả biến hoặc không khả biến
+ Bộ nhớ khả biến: Mất dữ liệu khi ngắt nguồn: RAM
+ Bộ nhớ không khả biến: Không mất dữ liệu khi ngắt nguồn: ROM, băng từ, đĩa từ
- Bộ nhớ xoá được hoặc không xoá được
Cách tổ chức (Organization)
Là cách sắp xếp vật lý các hệ thống nhớ để tạo nên các từ nhớ và sắp xếp các từ nhớ để tạo nên Mô-đun nhớ Với từng kiểu vật lý khác nhau sẽ có cách tổ chức khác nhau
4.3 Bộ nhớ chính
ROM và RAM là bộ nhớ chính (bộ nhớ trong) của máy tính thuộc khối bộ nhớ
và được sản xuất theo công nghệ bán dẫn ROM là bộ nhớ chỉ đọc, không mất thông tin khi mất điện ROM chứa chương trình BIOS, có trên mainboard và các thiết bị ngoại vi RAM là bộ nhớ truy xuất ngẫu nhiên, lưu trữ dữ liệu tạm thời Khi mất điện,
dữ liệu trên RAM sẽ mất Sau đây chúng ta sẽ xem xét kỹ hai bộ nhớ chính này
Trang 54.3.1 Bộ nhớ RAM (Random Access Memory)
4.3.1.1 Công nghệ RAM
Công nghệ RAM có hai loại chính: RAM tĩnh (Static RAM) và RAM động
(Dynamic RAM) RAM động (DRAM) được chế tạo với các ô nhớ để chứa dữ liệu là
điện áp trên các tụ điện Điện áp có hay không có ở trên tụ điện biểu hiện hai trạng thái
1 và 0 Vì tụ điện có tính chất phóng điện nên RAM động cần phải được làm tươi (refresh) để bảo dưỡng dữ liệu trên đó Đối với RAM tĩnh (SRAM) các giá trị nhị phân được nhớ trên các mạch lật truyền thống Vì vậy dữ liệu trên đó là ổn định Do công nghệ như vậy nên DRAM có mật độ ô nhớ dày đặc hơn và rẻ tiền hơn SRAM, còn về tốc độ thì SRAM nhanh hơn DRAM rất nhiều DRAM thích hợp cho bộ nhớ có dung lượng lớn Vì vậy, công nghệ SRAM được dùng để chế tạo các bộ nhớ Cache, trong khi công nghệ DRAM được dùng để chế tạo các bộ nhớ chính RAM
Cấu tạo phần tử nhớ 1 bit của SRAM
Phần tử nhớ 1 bit
Thanh ghi chốt (Latch) là dạng đon giản của flip-flop, được xây dựng từ 2 cổng NAND hoặc 2 cổng NOR Sự thay đổi trạng thái của thanh ghi chốt có thể xảy ra trong thời gian kéo dài của xung đồng hồ chứ không phải trong thời gian sườn xung đồng
hồ, người ta gọi đó là sự chuyển mạch theomức
Các thanh ghi chốt 1 bit có thể được sử dụng làm các phần tử nhớ cơ bản xây dựng nên bộ nhớ của máy tính Nó có 2 trạng thái cân bằng ổn định được sử dụng để biểu diễn 2 giá trị nhị phân 0 và 1 Khi phần tử nhớ đã được thiết lập giá trị thì nó nhớ mãi giá trị đó cho đến khi chúng ta thiết lập cho nó 1 giá trị mới Vì thế người ta gọi
nó là phần tử nhớ RAM tĩnh (Static Random Access Memory) Bộ nhớ được xây dựng
từ các phần tử 1 bit như vậy được gọi là bộ nhớ RAM tĩnh
Hình 4.3 là sơ đồ mạch điện của 1 phần tử nhớ SRAM 1 bit và các mạch điện cũng nhu các tín hiệu để điều khiển sự hoạt động của nó
Các đường dây truyền tín hiệu trên sơ đồ ý nghĩa như sau:
- Din: Đầu vào thông tin
- Dout: Đầu ra thông tin
- Yi,Xj : là các dây địa chỉ Nếu ta tổ chức 1 mạng nhớ hình chữ nhật, trong đó phần tử nằm ở hàng i cột j thì Yi sẽ được nối với hàng i của ma trận, còn Xj sẽ được nối với cột j của ma trận
- WE (Write Enable) : Tín hiệu cho phép ghi, khi WE=1, cho phép ghi thông tin Din vào phần tử nhớ, lúc này đầu ra Dout có trở kháng cao vì nó được nối với đầu
ra của bộ đệm ba trạng thái đang ở trạng thái có trở kháng cao), có thể coi Dout bị cách li khỏi phần tử nhớ Khi WE=0, cho phép đọc thông tin từ phần tử nhớ, bộ đệm
Trang 6ba trạng thái đóng (trở kháng thấp), Dout được nối với điểm H và có giá trị bằng Q là nội dung phần tử nhớ, đồng thời E=B=0 làm cho F=G=1 dẫn đến Q không đổi trạng thái, tức là Q không bị phụ thuộc vào Din
- CS (chip Select) : Tín hiệu chọn chip, đôi khi còn được kí hiệu là CE (chip enable) Khi có nhiều chip nhớ RAM cùng nối với đường tín hiệu chung (Din, Dout) thì đầu vào CS có nhiệm vụ chọn xem chip RAM nào được truyền thông tin trên bus số liệu
Điều kiện ghi : CS=1, Xi=1, Yj=1, WE=1, khi đó Q sẽ được thiết lập bằng Din Điều kiện đọc : CS=1, Xi=1, Yj=1, WE=0, khi đó Dout sẽ nhận giá trị bằng Q Khi có các phần tử nhớ 1 bit có cấu tạo như trên, rất dễ kết hợp chúng lại với nhau để tạo nên các bộ nhớ có dung lượng từ (word) và kích thước từ như mong muốn
Hình 4 3 Mạch điện của phần tử SRAM 1 bit
Cấu tạo phần tử nhớ 1 bit của DRAM
Như chúng ta đã biết các phần tử nhớ RAM tĩnh (SRAM) được cấu tạo từ các flip-flop, 1 phần tử SRAM 1 bit như hình 4.3 được cấu tạo bởi 6 cổng NAND và 1 bộ đệm 3 trạng thái Ngày nay người ta sử dụng các phần tử DRAM đơn giản hơn
Hình 4 4 Mạch điện của phần tử nhớ DRAM 1 bit
Để bố trí được số phần tử nhớ lớn nhất trong 1 vi mạch, mỗi phần tử nhớ phải được chế tạo sao cho đơn giản nhất Phần tử nhớ RAM động (DRAM) mà chúng ta tìm
Trang 7hiểu dưới đây chỉ cần 1 transistor cho 1 bit thông tin, chính vì vậy có thể bố trí với mật
độ rất cao và có giá thành rẻ Trong phần tử nhớ này người ta thay flip-flop bằng một
tụ điện C, giá trị nhớ trong phần tử nhớ này chính là điện tích nạp trên tụ điện Ta có thể sử dụng trạng thái tụ được nạp, tức là trên tụ điện C có một điện áp lớn hơn giá trị nhất định nào đó, biểu diễn giá trị 1 của bit, còn trạng thái không được nạp biểu diễn giá trị 0
Nguyên lý cấu tạo của một phần tử DRAM được minh họa trên hình 4.4 Bộ nhớ DRAM được tổ chức thành một ma trận nhớ (thường là ma trận vuông), trong đó dây từ (Word Line) là một trong các dây hàng của ma trận, còn dây bit (Bit Line) là một trong các dây cột Phần tử nhớ được đặt ở giao điểm của các dây hàng và cột Transistor T là một transistor trường (Field Efect Transistor) đóng vai trò một chuyển mạch điện tử T có 3 cực là cực cổng G (gate), cực máng D (Drain) và cực nguồn S (Source), trong đó G là cực điều khiển, D sẽ được nối với S khi G có mức điện áp cao (1) so với S, ngược lại thì điện trở giữa D và S sẽ rất lớn
- Ghi dữ liệu (Write)
Khi dây từ có mức tích cực (1), T ở trạng thái mở, nối tụ điện C với dây bit Nếu thao tác là ghi thì giá trị cần ghi phải đặt trên dây bit Nếu giá trị đó là 1 thì tụ C
sẽ được nạp tới điện áp ứng với giá trị 1 trên dây bit, còn nếu giá trị đó là 0 thì tụ C sẽ
bị phóng hết điện tích, tức là có giá trị 0
- Đọc dữ liệu (Read)
Việc đọc phức tạp hơn ghi một chút do điện tích trên tụ C ứng với giá trị cần đọc rất nhỏ Trước khi đặt dây từ lên mức tích cực, cần phải đặt lên dây bit điện áp bằng 1/2 mức chênh lệch giữa điện áp ứng với mức 0 và điện áp ứng với mức 1 Điện
áp trên tụ sẽ làm cho điện áp dây bit thay đổi một chút theo chiều hướng tăng hoặc giảm, tùy thuộc vào việc nó đang nhớ giá trị 1 (high) hay 0 (low) Sự thay đổi nhỏ của điện áp trên dây bit sẽ được truyền tới đầu vào của một bộ khuếch đại nhạy, tại đầu ra của nó ta nhận được điện áp ứng với giá trị của bit chứa trên tụ C
- Làm tươi (Refresh)
Vì mọi tụ điện đều có quá trình rò rỉ điện tích và transistor T mắc nối tiếp với
nó dù ở trạng thái cấm cũng có một điện trở rò nhất định, cho nên sau khi được nạp, điện tích trên tụ C, sau một khoảng thời gian nhất định sẽ làm mất thông tin mà C chứa Chính vì vậy cần phải nạp điện lại cho tụ C trước khi điện áp trên tụ giảm thấp hơn một ngưỡng nào đó Việc này được gọi là làm tươi Để làm tươi bộ nhớ DRAM, cần phải đọc nội dung của nó rồi viết trở lại Việc làm tươi cần phải được tiến hành đều đặn theo một chu kỳ nhất định, gọi là chu kỳ làm tươi Tên gọi RAM động (Dynamic RAM) xuất phát từ hoạt động này
Trang 8Trong các chip DRAM trước đây mạch điện bổ sung để thực hiện làm tươi thường ở ngoài chip nhớ Ngày nay các mạch thực hiện làm tươi thường được chế tạo nằm ngay bên trong chip nhớ, nhờ đó chip nhớ loại này vừa có dung lượng cao vừa có
giao diện đơn giản, chúng được gọi là quasi-static RAM
4.3.1.2 Bộ nhớ chính RAM
Bộ nhớ chính RAM của máy tính được chế tạo theo công nghệ DRAM, vì vậy
đặc trưng của bộ nhớ RAM là nó có thể đọc dữ liệu từ bộ nhớ và ghi một cách dễ dàng
và nhanh chóng dữ liệu mới vào bộ nhớ Quá trình đọc và ghi đều được thực hiện bằng tín hiệu điện RAM cần phải được cung cấp bằng một nguồn không đổi Nếu nguồn bị ngắt thì dữ liệu bị mất Do vậy RAM là bộ nhớ tạm thời
Hiện nay bộ nhớ RAM có 3 loại phổ biến là DDR, DDR2 và DDR3 dựa trên thiết kế SDRAM (bộ nhớ truy cập ngẫu nhiên động đồng bộ - Synchronous Dynamic Random Access Memory), tức là sử dụng tín hiệu xung nhịp để đồng bộ hóa mọi thứ DDR là viết tắt của Double Data Rate (tốc độ dữ liệu gấp đôi), tức truyền được hai khối dữ liệu trong một xung nhịp Như vậy bộ nhớ DDR có tốc độ truyền dữ liệu cao gấp đôi so với những bộ nhớ có cùng tốc độ xung nhịp nhưng không có tính năng này (được gọi là bộ nhớ SDRAM, hiện không còn sử dụng cho PC nữa) Nhờ tính năng này mà trên nhãn của những thanh nhớ thường ghi tốc độ tốc gấp đôi so với tốc độ đồng hồ xung nhịp thực Ví dụ bộ nhớ DDR2 - 800 làm việc ở tốc độ 400 MHz, DDR2
- 1066 và DDR3 - 1066 làm việc ở tốc độ 533 MHz, DDR3 - 1333 ở 666.6 MHz
Trên mỗi thanh RAM (mô-đun nhớ) đều có các chip nhớ (có thể là 4, 8, 16 chip nhớ), các chip nhớ được nối với nhau thông qua vi mạch Dung lượng của bộ nhớ RAM chính là tổng dung lượng của các chip nhớ này Trong ví dụ ở hình 4.5 là một bộ nhớ RAM của hãng Kingston, thuộc thế hệ DDRAM2, có dung lượng 2GB và có 16 chip nhớ (mỗi mặt của RAM có 8 chip nhớ, mỗi chip nhớ có dung lượng 128MB)
Hình 4 5 Bộ nhớ DDRAM2 Những thanh nhớ (mô-đun) sử dụng một cái tên khác: PCx-zzzz, trong đó x là thế hệ công nghệ, còn zzzz là tốc độ truyền tải tối đa trên lý thuyết (còn gọi là băng thông tối đa) Con số này cho biết bao nhiêu byte dữ liệu có thể được truyền từ mạch điều khiển bộ nhớ sang mô-đun bộ nhớ trong mỗi xung nhịp đồng hồ
Trang 9Bài toán này rất dễ giải bằng cách nhân xung nhịp DDR tính bằng MHz với 8,
ta sẽ có tốc độ truyền tải tối đa trên lý thuyết tính bằng MB/giây Ví dụ, bộ nhớ
DDR2-800 có tốc độ truyền tải tối đa trên lý thuyết là 6,400 MB/giây (DDR2-800 x 8) và mô-đun bộ nhớ mang tên PC2-6400 Trong một số trường hợp, con số này được làm tròn Ví dụ như bô nhớ DDR3-1333 có tốc độ truyền tải tối đa trên lý thuyết là 10,666 MB/giây nhưng mô-đun bộ nhớ của nó lại có tên PC3-10666 hoặc PC3-10600 tùy nhà sản xuất
Những con số này chỉ là số tối đa trên lý thuyết, và trên thực tế chúng không bao giờ đạt đến, bởi bài toán chúng ta đang tính có giả thiết rằng bộ nhớ sẽ gửi dữ liệu đến mạch điều khiển bộ nhớ theo từng xung nhịp một, mà điều này thì không xảy ra Mạch điều khiển bộ nhớ và bộ nhớ cần trao đổi lệnh (ví dụ như lệnh hướng dẫn bộ nhớ gửi dữ liệu được chứa tại một vị trí nhất định) và trong suốt thời gian này bộ nhớ sẽ không gửi dữ liệu Trên đây là lý thuyết cơ bản về bộ nhớ DDR Sau đây chúng ta sẽ
so sánh 3 loại bộ nhớ RAM này
Một trong những khác biệt chính giữa DDR, DDR2 và DDR3 là tốc độ truyền
dữ liệu lớn nhất của từng thế hệ Dưới đây là danh sách tốc độ chung nhất cho từng thế
hệ Một số nhà sản xuất đã tạo ra được những loại chip lớn hơn cả tốc độ trong bảng
Trang 10Ví dụ như các bộ nhớ đặc biệt hướng tới giới overclock Những xung nhịp có đuôi 33 hoặc 66MHz thực ra đã được làm tròn (từ 33.3333 và 66.6666)
Hình 4 7 Tốc độ của DDR2, DDR3
Điện áp
Bộ nhớ DDR3 hoạt động ở điện áp thấp hơn so với DDR2 DDR2 lại dùng điện
áp thấp hơn DDR Như vậy bộ nhớ DDR3 sẽ tiêu thụ ít điện hơn DDR2, và DDR2 tiêu thụ ít hơn DDR Thường thì bộ nhớ DDR sử dụng điện 2.5 V, DDR2 dùng điện 1.8 V
và DDR3 là 1.5 V (mặc dù các mô-đun cần đến 1.6 V hoặc 1.65 V rất phổ biến và những chip chỉ yêu cầu 1.35 V trong tương lai cũng không phải là hiếm) Một số mô-đun bộ nhớ có thể yêu cầu điện áp cao hơn trong bảng, nhất là khi bộ nhớ hỗ trợ hoạt động ở tốc độ xung nhịp cao hơn tốc độ chính thức (ví dụ như bộ nhớ để overclock)
Trang 11Hình 4 8 Điện áp của DDR2, DDR3
Thời gian trễ
CAS Latency là khái niệm mà người dùng thắc mắc nhiều nhất Trước đây, khi chọn RAM, người mua thường chỉ quan tâm tới tốc độ hoạt động như 100MHz hay 133MHz Thời gian gần đây, khái niệm CAS đang dần được người dùng để ý bởi nó đóng vai trò khá quan trọng vào tốc độ xử lý tổng thể của hệ thống; đặc biệt trong ép xung CAS là viết tắt của “Column Address Strobe” (địa chỉ cột) Một thanh DRAM được coi như một ma trận của các ô nhớ và mỗi ô nhớ sẽ có địa chỉ cột CAS và địa chỉ hàng RAS (Row Adress Strobe) Nhưng do nguyên lý hoạt động của DRAM là truyền
dữ liệu xuống chân nên RAS thường không quan trọng bằng CAS
Thời gian trễ là khoảng thời gian mà mạch điều khiển bộ nhớ phải đợi từ lúc yêu cầu lấy dữ liệu cho đến lúc dữ liệu thực sự được gửi tới đầu ra Nó còn được gọi là CAS Latency hoặc đơn giản là CL Con số này được viết theo đơn vị chu kỳ xung nhịp Ví dụ một bộ nhớ có CL3 tức là mạch điều khiển bộ nhớ phải đợi 3 chu kỳ xung nhịp từ lúc truy vấn cho đến khi dữ liệu được gửi Với một bộ nhớ CL5, mạch điều khiển bộ nhớ phải đợi 5 chu kỳ xung nhịp Vì thế cần sử dụng những mô-đun có CL thấp nhất có thể
Để hiểu khái niệm này, chúng ta sẽ cùng điểm nhanh qua cách thức bộ nhớ làm việc, đầu tiên chipset sẽ truy cập vào hàng ngang (ROW) của ma trận bộ nhớ thông qua việc đưa địa chỉ vào chân nhớ (chân RAM) rồi kích hoạt tín hiệu RAS Chúng ta
sẽ phải chờ khoảng vài xung nhịp hệ thống (RAS to CAS Delay) trước khi địa chỉ cột được đặt vào chân nhớ và tín hiệu CAS phát ra Sau khi tín hiệu CAS phát đi, chúng ta tiếp tục phải chờ một khoảng thời gian nữa (đây chính là CAS Latency) thì dữ liệu sẽ được tìm thấy Điều đó cũng có nghĩa là với CAS 2, chipset phải chờ 2 xung nhịp trước khi lấy được dữ liệu và với CAS3, thời gian chờ sẽ là 3 xung nhịp hệ thống
Tuy nhiên, CAS2 không có nghĩa nhanh hơn CAS3 tới 33 vì có nhiều yếu tố ảnh hưởng đến hiệu năng tổng thể của bộ nhớ
Trang 12Hình 4 9 Thời gian trễ của DDR2, DDR3 Cuối cùng ta sẽ đến với sự khác biệt về thiết kế bên ngoài Mô-đun bộ nhớ cho từng thế hệ DDR có sự khác nhau về thông số và không thể cài mô-đun DDR2 lên khe cắm DDR3 được Ta cũng không thể nâng cấp từ DDR2 lên DDR3 mà không thay thế
bo mạch chủ và sau đó là CPU, hay tương tự với DDR và DDR2 Mô-đun DDR2 và DDR3 có cùng số chân, tuy nhiên khe cắm nằm ở vị trí khác nhau
Hình 4 10 Số chân nối của DDR, DDR2, DDR3
4.3.2 Bộ nhớ ROM
ROM (Read Only Memory) là bộ nhớ giữ thông tin cố định, không thay đổi nội dung ngay cả khi ngắt nguồn điện nuôi ROM chứa chương trình BIOS, có trên mainboard và các thiết bị ngoại vi Có thể chia ROM thành 3 loại chính sau:
- ROM mặt nạ (MROM - Maskable ROM), nội dung của nó được cố định trong quá trình chế tạo vi mạch và không thể thay đổi được sau đó
- ROM có thể nạp chương trình (PROM – Programmable ROM), là loại ROM
mà người sử dụng có thể sử dụng một thiết bị chuyên dụng để nạp nội dung cho nó, việc này thường được gọi là “đốt ROM” Sau khi đã nạp chương trình, nội dung của PROM cũng không thể thay đổi được nữa
- ROM có thể xóa (Erasable ROM), là loại ROM mà người sử dụng có thể nạp nội dung cho nó bằng thiết bị chuyên dụng, tuy nhiên người sử dụng sau này có thể xóa nội dung cũ để ghi nội dung mới Loại ROM này thường là EPROM, EAROM
4.3.2.1 ROM mặt nạ
Với ROM được lập trình bằng mặt nạ, nhà sản xuất đã ghi (lập trình) các vị trí
nhớ của nó theo yêu cầu của khách hàng Một phím âm bản, gọi là mặt nạ được sử dụng để kiểm soát các mối nối điện trên chip
Trang 13Vì mặt nạ rắt đắt nên loại ROM này không được mang lại hiệu quả kinh tế Nhược điểm của loại ROM này là nó không cho phép lập trình lại, vì vậy nó là dạng ROM đúng nghĩa Tuy nhiên ROM được lập trình bằng mặt nạ vẫn chỉ là phương pháp tiết kiệm nhất khi cần trang bị số lượng lớn ROM cùng loại
ROM mặt nạ thường tổ chức dưới dạng ma trận Trạng thái có hay không có ốttại vị trí (i,j) của ma trận được sử dụng để biểu diễn 1 bit dữ liệu là 1 hay 0 Mỗi hàng i của ma trận đi-ốt giống như 1 thanh ghi lưu trữ 1 từ (word), các dây địa chỉ Ai được sử dụng để chọn lấy 1 từ, đưa nội dung của nó ra ngoài qua các dây dữ liệu ra Hình 4.11b là 1 “ô nhớ” của ma trận đi-ốt
đi-Hình 4 11 Cấu tạo MROM Việc ghi chương trình cho ROM được thực hiện bằng cách loại bỏ hoặc để lại đi-ốt ở giao điểm của dây hàng và dây cột của ma trận
• Nếu đi-ốt tại hàng i, cột j được giữ lại, khi mức điện áp trên dây địa chỉ là 1 (cao), đi-ốt được phân cực thuận sẽ có điện trở rất nhỏ, vì vậy Dj=Ai=1
• Nếu đi-ốt tại hàng i, cột j đã bị loại bỏ, dù mức điện áp trên dây địa chỉ là cao, nó cũng không ảnh hưởng tới dây dữ liệu ra Dj lúc này được “nối đất” (low,0) qua một điện trở
Trang 14Bảng 4 1 Bảng chân lý của MROM A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 D3 D2 D1 D0
Hình 4 12 Bộ nhớ MROM có dung lượng 16x1 sử dụng Transistor MOS
4.3.2.2 PROM – ROM có thể nạp chương trình
Trang 15Có cấu tạo giống MROM nhưng ở mỗi vị trí nhớ đều có linh kiện nối với cầu chì Như vậy khi xuất xưởng các ROM này đều chứa cùng một loại bit (gọi là ROM trắng), lúc sử dụng người lập trình thay đổi các bit mong muốn bằng cách phá vỡ cầu chì ở các vị trí tương ứng với bit đó Một khi cầu chì đã bị phá vỡ thì không thể nối lại được do đó loại ROM này cho phép lập trình một lần duy nhất để sử dụng, nếu bị lỗi không thể sửa chữa được (hình 4.13)
Người ta có thể dùng 2 đi-ốt mắc ngược chiều nhau, mạch không dẫn điện, để tạo bit 0 khi lập trình thì một đi-ốt bị phá hỏng tạo mạch nối tắt, đi-ốt còn lại dẫn điện cho bit 1
Hình 4 13 Bộ nhớ PROM
Thiết bị ghi PROM (PROM Programmer hay PROM Write)
Việc ghi PROM đòi hỏi những mạch cung cấp dòng điện đủ lớn để đốt cháy cầu chì ở những bit mong muốn Các bộ ghi PROM thường là hệ vi xử lí chuyên dụng
Đó là thiết bị tạo ra địa chỉ, số liệu và xung dòng điện ghi cần thết đẻ làm chảy các cầu chì Mỗi bộ ghi PROM có thể ghi 1 hay 1 họ PROM, có những bộ ghi PROM vạn năng có thể ghi bất kì loại PROM nào bằng cách sử dụng 1 mô-đun riêng Mô-đun này giúp cho bộ ghi PROM thích hợp ở mức xung ghi, dòng điện và bố trí chân với 1 mạch PROM cụ thể
Giá thành ghi PROM đắt hơn ghi ROM nên PROM chỉ thuận lợi cho những ứng dụng với số lượng nhỏ
4.3.2.3 ROM lập trình đƣợc, xóa đƣợc bằng tia U.V
(Ultra Violet Erasable Programmable ROM, U.V EPROM)
Đây là loại ROM rất tiện cho người sử dụng vì có thể dùng được nhiều lần bằng cách xóa và nạp lại Cấu tạo của tế bào nhớ của U.V EPROM dựa vào một transistor MOS có cấu tạo đặc biệt gọi là FAMOS (Floating Gate Avalanche Injection MOS), EPROM – ROM có thể xóa và ghi lại
Trang 16Hình 4 14 Cấu tạo EPROM
Trên nền chất bán dẫn N pha loãng, tạo 2 vùng P pha đậm (P+) nối ra ngoài cho
2 cực S (Source) và D (Drain) Trong lớp cách điện SiO2 giữa 2 cực người ta cho vào một thỏi Silicon không nối với bên ngoài và được gọi là cổng nổi Khi nguồn VDD, phân cực ngược giữa cực nền và Drain còn nhỏ, transistor không dẫn, nhưng nếu tăng VDD đủ lớn, hiện tượng thác đổ (avalanche) xảy ra, electron đủ năng lượng chui qua lớp cách điện tới bám vào cổng nổi Do hiện tượng cảm ứng, một điện lộ P hình thành nối hai vùng bán dẫn P+, transistor trở nên dẫn điện Khi cắt nguồn, transistor tiếp tục dẫn điện vì electron không thể trở về để tái hợp với lỗ trống
Mỗi tế bào nhớ EPROM gồm một transistor FAMOS nối tiếp với một transistor MOS khác mà ta gọi là transistor chọn, như vậy vai trò của FAMOS giống như là một cầu chì nhưng có thể phục hồi được
Để loại bỏ transistor chọn người ta dùng transistor SAMOS (Stacked Gate Avalanche Injection MOS) có cấu tạo tương tự transistor MOS nhưng có đến 2 cổng nằm chồng lên nhau, một được nối ra cực Gate và một để nổi Khi cổng nổi tích điện
sẽ làm gia tăng điện thế thềm khiến transistor trở nên khó dẫn điện hơn Như vậy nếu
ta chọn điện thế Vc ở khoảng giữa VT1 và VT2 là 2 giá trị điện thế thềm tương ứng với 2 trạng thái của transistor (VT1<Vc<VT2) thì các transistor không được lập trình (không có lớp electron ở cổng nổi) sẽ dẫn còn các transistor được lập trình sẽ không dẫn
Để xóa EPROM, người ta chiếu tia U.V vào các tế bào trong một khoảng thời gian xác định để electron trên cổng nổi nhận đủ năng lượng vượt qua lớp cách điện trở
về vùng nền tái hợp với lỗ trống xóa điện lộ P và transistor trở về trạng thái không dẫn ban đầu
Hình 4 15 Xóa EPROM
Trang 17Điểm bất tiện của U.V EPROM là cần thiết bị xóa đặc biệt phát tia U.V và mỗi lần xóa tất cả tế bào nhớ trong một IC nhớ đều bị xóa Như vậy người sử dụng phải nạp lại toàn bộ chương trình
Hình 4 16 Hình dạng bên ngoài củaEPROM
4.3.2.3 EAROM
EAROM (Electrically Alterable Rom) hay còn gọi là EEROM (Electrically Erasablr ROM) có cấu tạo tương tự EPROM nhưng có thể xóa được bằng xung điện Đây là loại ROM lập trình được và xóa được nhờ xung điện và đặc biệt là có thể xóa
để sửa trên từng byte Các tế bào nhớ EEPROM sử dụng transistor MNOS (Metal Nitride Oxide Semiconductor) có cấu tạo như hình sau:
Hình 4 17 Cấu tạo EAPROM Giữa lớp kim loại nối ra các cực và lớp SiO2 là một lớp mỏng chất Nitrua Silic (Si3N4) - từ 40nm đến 650nm - Dữ liệu được nạp bằng cách áp một điện thế dương giữa cực G và S (khoảng 20 đến 25V trong 100ms) Do sự khác biệt về độ dẫn điện, electron tích trên bề mặt giữa 2 lớp SiO2 và Si3N4, các electron này tồn tại khi đã ngắt nguồn và làm thay đổi trạng thái dẫn điện của transistor Bây giờ nếu áp một điện thế
âm giữa cực G và S ta sẽ được một lớp điện tích trái dấu với trường hợp trước Như vậy hai trạng thái khác nhau của Transistor có thể thiêt lập được bởi hai điện thế ngược chiều nhau và như vậy các tế bào nhớ được ghi và xóa với 2 xung điện trái dấu nhau
Loại EAROM ER 3400 của hãng General Instruments có dung lượng 1024*4
có thể giữ nội dung nhớ đến 10 năm, không cần nguồn nuôi Thời gian ghi là 1ms, thời gian xóa là 10ms và thời gian đọc là 900ns
Một nhược điểm của mạch EAROM là cần các mức điện áp nguồn nuôi khác nhau trong khi xóa, ghi và đọc Ví dụ mạch ER3400 cần 3 mức điện áp nuôi là: +12V, -5V và -30V
Trang 18+ Tín hiệu chọn (Chip select) được gửi đến để chọn ô nhớ
+ Tín hiệu điều khiển chỉ thị việc ghi hay đọc (Write enable/ Read enable) Sau đó, dữ liệu sẽ được đưa lên đường dữ liệu (Data lines)
- Tổ chức mạch nhớ
Hình 4 20 Tổ chức mạch nhớ
Trang 19+ Address lines:
Các đường địa chỉ nối tới bus A,
Truyền tín hiệu địa chỉ từ CPU tới mạch nhớ
Address decoder:
Bộ giải mã địa chỉ
Sử dụng địa chỉ để chọn ra và kích hoạt ô nhớ/dòng nhớ cần truy nhập
+ Data lines:
Các đường dữ liệu kết nối với bus D
Truyền dữ liệu từ bộ nhớ về CPU và ngược lại
Chip select CS:
Chân tín hiệu chọn chip
Chip nhớ được kích hoạt khi CS=0 Thông thường CPU chỉ làm việc với một chip nhớ tại một thời điểm
+ Write enable WE:
Chân tín hiệu cho phép ghi
Cho phép ghi vào đường nhớ khi WE =0
+ Read enable RE:
Chân tín hiệu cho phép đọc
Cho phép đọc dữ liệu từ đường nhớ khi RE =0
Chúng ta sẽ xem xét một mạch nhớ (chip nhớ) có sơ đồ như hình 4.21 sau đây:
Bộ nhớ có 8 đường dây tín hiệu vào và 3 đường dây tín hiệu ra Ba đường vào cho dữ liệu là , , ; hai đường vào địa chỉ là , và 3 đường tín hiệu điều khiển
là CS (Chip select) để chọn chip, RD để phân biệt giữa đọc (read) và ghi (write) và OE (Output enable) để đưa dữ liệu ra Ba đường ra cho dữ liệu là , và
• Tín hiệu chọn chip CS:
Bộ nhớ của máy tính có thể bao gồm nhiều chip như trên, để chọn chip nhớ nào, mạch logic bên ngoài phải đặt cho đầu tín hiệu CS của chip đó có mức=1 và RD=1 để đọc hoặc RD=0 để ghi
• Tín hiệu địa chỉ:
Hai đường dây địa chỉ phải được thiết lập giá trị để chỉ ra 1 trong 4 từ 3 bit sẽ được đọc hoặc ghi Đối với thao tác đọc, các đường dây dữ liệu vào không được dùng đến, từ được chọn được đặt lên các đường dây dữ liệu ra Đối với thao tác ghi, các bit
có mặt trên đường dây dữ liệu vào được nạp vào từu bộ nhớ đã chọn, còn các đường dây dưc liệu ra không được sử dụng
Trang 20Hình 4 21 Sơ đồ logic chip nhớ 4x3, mỗi hàng là 1 từ nhớ 3 bit
Bốn cổng AND cùng với 4 cổng NOT (mà các đầu váo nối với các dây địa chỉ , ) tạo thành 1 bộ giải mã dùng để chọn từ, mỗi đầu ra của 1 cổng AND điều khiển 1 dây chọn từ (word select line), được đánh số 0…3
- Ghi dữ liệu
Khi chip nhớ được chọn để ghi, đường dây được ghi nhãn CS sẽ có mức cao, làm cho đầu ra của 1 trong 4 cổng AND có nhãn Write gate ở mức tích cực, đó là cổng AND có 1 đầu vào nối với dây word select có mức cao Tín hiệu này nối với tất
cả các đầu vào CK của từ đã được chọn, làm cho dữ liệu trên các dây dữ liệu vào , , nạp vào các flip-flop của từ đó
- Đọc dữ liệu
Việc đọc cũng tương tự như việc ghi Việc giải mã địa chỉ để ghi và đọc hoàn toàn giống nhau Điểm khác nhau là tín hiệu CS phải có mức thấp, vì vậy các cổng AND có nhãn Write gate đều có lối ra ở mức thấp, làm cho tín hiệu ở các chân
CK của các flip-flop có mức thấp, do đó các flip-flop không thể thay đổi trạng thái Một trong bốn đường dây chọn từ (word select line) có mức cao, làm cho tại 3 đầu ra
Trang 21của 3 cổng AND mà mỗi cổng có một đầu vào nối với nó có giá trị bằng các giá trị tại đầu ra Q của 3 flip-flop Như vậy một từ đã đưa được nội dung ra Mỗi bit dữ liệu của
từ này được truyền tới một đầu vào trong số 4 đầu vào của một cổng OR ở phía dưới của hình vẽ Ba đầu vào còn lại của mỗi cổng OR đều có giá trị 0, vì vậy giá trị của các cổng OR chính là từ mà chúng ta cần đọc
Phương pháp giải mã
- Giải mã một bước
Để lựa chọn một từ nằm trong hàng i nào đó của bộ nhớ trên (để ghi hoặc đề đọc) ta cần đặt các dây địa chỉ một giá trị địa chỉ n bit chính bằng i Bộ giải mã địa chỉ chỉ cần một bước là thực hiện được việc chọn lấy 1 từ Phương pháp tổ chức bộ nhớ trong đó tất cả các phần tử nhớ trên một hàng được gắn với một địa chỉ và được thao tác đọc/ghi đồng thời được gọi là tổ chức bộ nhớ theo kiểu giải mã một bước hoặc tổ chức bộ nhớ theo từ sự chọn tuyến tính
Ưu điểm: có thời gian truy cập ngắn , áp dụng thuận lợi cho các bộ nhớ có dung lượng nhỏ
Nhược điểm: khi dung lượng bộ nhớ lớn thì kích thước bộ giải mã (số chân ra) cũng tăng theo Thí dụ nếu cần tổ chức bộ nhớ có 1024 từ thì bộ giải mã cần có 10 đường địa chỉ vào và sẽ có 1024 đầu ra để chọn hàng
Các bộ nhớ SRAM thường tổ chức theo phương pháp này
Hình 4 22 Giải mã 1 bước
- Giải mã hai bước
Kích thước của bộ giải mã địa chỉ có thể được giảm đi bằng cách tổ chức ma trận nhớ hoặc logic chọn từ cho phép chọn trùng hợp (coincident selection) hay còn gọi là giải mã hai bước Trong bộ nhớ tổ chức theo kiểu này, các ô nhớ được sắp xếp thành ma trận vuông, các bit trên một hàng được gọi là một từ vật lý, mỗi từ vật lý bao gồm một số từ logic, mỗi từ logic bao gồm một nhóm bit của mỗi từ vật lý được nhận biết và gửi ra cùng một lúc Trong bộ nhớ sử dụng giải mã 2 bước, bước một để chọn lấy một từ vật lý, bước hai để chọn lấy một từ logic Bộ giải mã hàng để chọn lấy một
Trang 22từ vật lý và bộ giải mã cột gồm một vài bộ dồn kênh, chọn lấy một từ logic trong từ vật lý đã chọn
Hình 4.23 là một bộ nhớ ROM 2048x8 (2048 từ x 8bit/1 từ) Bộ nhớ này là một
ma trận vuông 128x128 Như vậy, nó chứa 128 từ vật lý, mỗi từ vật lý được chọn bởi 7 đường địa chỉ hàng A0 – A6 (27 = 128), bộ giải mã hàng chọn 1 hàng từ 128 hàng
Từ vật lý được chia làm 8 nhóm 16 bit Nhóm thứ nhất chứa bít cao nhất của 16
từ logic (bit 7), nhóm thứ hai chứa những bit cao tiếp theo (bit 6) của 16 từ logic, Nhóm cuối cùng chứa những bit thấp nhất (bit 0) của 16 từ logic Như vậy các bộ giải
mã cột gồm 8 bộ dồn kênh (multiplexer) 16 đường vào 1 đường ra để cung cấp 1 từ logic
8 bit đưa ra lối ra Các bit địa chỉ A7, A8, A0, A10 điều khiển những bộ giải mã cột
Hình 4 23 Bộ nhớ ROM 2048x8 - Giải mã địa chỉ 2 bước
- Phương pháp địa chỉ multiplex
Trong các ma trận nhớ có số hàng và số cột lớn người ta thường truyền lần lượt địa chỉ hàng và địa chỉ cột trên cùng một số dây, nhờ đó giảm được một nửa số đường địa chỉ Tuy nhiên cần phải bổ sung thêm một số tín hiệu điều khiển, ngoài ra tốc độ
truy cập bộ nhớ cũng giảm theo Đó là phương pháp địa chỉ multiplex, các chip nhớ
DRAM thường dùng phương pháp này
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 Select)
Tín hiệu chọn địa chỉ cột CAS (Column Address Select)
Dung lượng của DRAM: 22n x m bit
Trang 23Hình 4 24 Chip nhớ 16MB DRAM (4Mx4bit)
Hình 4 25 Hình ảnh các chip nhớ trên bo mạch
Trang 244.3.3.2 Thiết kế mô-đun nhớ bán dẫn
Dung lượng chip nhớ là 2n x m bit
Cần thiết kế để tăng dung lượng:
Tăng độ dài ô nhớ (tăng m)
Tăng số lượng ô nhớ (tăng n)
Kết hợp cả hai loại (tăng m và n)
- Tổ chức bộ nhớ tăng độ dài ô nhớ
Bài toán tăng độ dài tổng quát:
Cho chip nhớ 2n x m bit
Cần thiết kế mô-đun nhớ 2n x (k.m) bit
Cần ghép nối k chip nhớ (k>=1)
Ví dụ 4.1:
Cho chip nhớ SRAM: 8K x 4 bit
Hãy thiết kế mô-đun nhớ 8K x 8 bit
Giải:
Dung lượng chip nhớ: 213
x 4 bit Chip nhớ có:
13 đường địa chỉ (A0 A12), 4 đường dữ liệu (D0 D3)
Mô-đun nhớ cần có:
13 đường địa chỉ (A0 A12), 8 đường dữ liệu (D0 D7)
Hình 4 26 Mô-đun nhớ 8Kx8
- Tổ chức bộ nhớ tăng số lƣợng ô nhớ
Bài toán tăng số lượng tổng quát:
Cho chip nhớ 2n x m bit
Cần ghép nối mô-đun nhớ: 2k+n x m bit
Trang 25 Cần ghép nối 2k chip và phải dùng bộ giải mã k: 2k (bộ giải mã có k đầu vào
và 2k đầu ra)
Ví dụ 4.2:
Cho chip nhớ SRAM: 4K x 4 bit
Hãy thiết kế mô-đun nhớ 8K x 4 bit
x (q.m) bit
Cần ghép nối q.2p chip thành 2p bộ, mỗi bộ q chip và phải dùng bộ giải mã p:
2p (p 2p)
Ví dụ 4.3:
Cho chip nhớ SRAM: 8K x 4 bit
Hãy thiết kế mô-đun nhớ 16K x 8 bit
Giải:
Dung lượng chip nhớ: 213
x 4 bit Chip nhớ có:
Trang 2613 đường địa chỉ (A0 A12), 4 đường dữ liệu (D0 D3)
Mô-đun nhớ cần có:
14 đường địa chỉ (A0 A13), 8 đường dữ liệu (D0 D7)
Hình 4 28 Mô-đun nhớ 16Kx8
4.4 Bộ nhớ cache
4.4.1 Nguyên lý vận hành của cache
Mức cache có cơ cấu vận hành trong suốt đối với bộ xử lý trung tâm CPU Với thao tác đọc bộ nhớ, CPU gửi một địa chỉ và nhận một dữ liệu từ bộ nhớ trong Với thao tác ghi bộ nhớ, CPU viết một dữ liệu vào một ô nhớ với một địa chỉ được chỉ ra trong bộ nhớ Để cho chương trình vận hành bình thường thì cache phải chứa một phần con của bộ nhớ trong để CPU có thể thâm nhập vào các lệnh hoặc dữ liệu thường dùng từ bộ nhớ cache Do dung lượng của bộ nhớ cache nhỏ nên nó chỉ chứa một phần chương trình nằm trong bộ nhớ trong Để đảm bảo sự đồng nhất giữa nội dung của cache và bộ nhớ trong thì cache và bộ nhớ trong phải có cùng cấu trúc Việc chuyển
dữ liệu giữa cache và bộ nhớ trong là việc tải lên hay ghi xuống các khối dữ liệu Mỗi khối chứa nhiều từ bộ nhớ tuỳ thuộc vào cấu trúc bộ nhớ cache Sự lựa chọn kích thước của khối rất quan trọng cho vận hành của cache có hiệu quả
Hình 4 29 Trao đổi dữ liệu giữa các thành phần CPU-Cache-Bộ nhớ trong
Trang 27Trước khi khảo sát vận hành của cache, ta xét đến các khái niệm liên quan:
Cache hit, cache miss:
Cache hit (trúng cache): khi CPU truy nhập một từ nhớ mà từ nhớ đó đang có trong cache
Cache miss (trượt cache): khi CPU truy nhập một từ nhớ mà từ nhớ đó không
có trong cache
Xác suất truy cập dữ liệu trong bộ nhớ trong
Cache là bộ nhớ nhanh, nó chứa lệnh và dữ liệu thường xuyên dùng đến Việc lựa chọn lệnh và dữ liệu cần đặt vào cache dựa vào các nguyên tắc sau đây:
Một chương trình mất 90% thời gian thi hành lệnh của nó để thi hành 10% số lệnh của chương trình
Nguyên lý trên cũng được áp dụng cho việc thâm nhập dữ liệu, nhưng ít hiệu nghiệm hơn việc thâm nhập lệnh Như vậy có hai nguyên lý định vị tham số bộ nhớ: nguyên lý định vị không gian và nguyên lý định vị thời gian
- Nguyên lý định vị về thời gian: Một mục thông tin vừa được truy nhập thì có xác suất lớn là ngay sau đó nó được truy nhập lại
- Nguyên lý định vị về không gian: Một mục thông tin vừa được truy nhập thì
có xác suất lớn là ngay sau đó các mục lân cận sẽ được truy nhập
Tổ chức các cấp bộ nhớ sao cho các lệnh và dữ liệu thường dùng được nằm trong bộ nhớ cache, điều này làm tăng hiệu quả của máy tính một cách đáng kể
Trao đổi thông tin giữa cache và bộ nhớ chính:
Bộ nhớ chính được chia thành các Block nhớ
Cache được chia thành các Line nhớ
Kích thước Line bằng kích thước Block
Số lượng Line << Số lượng Block
Mỗi Line trong cache được gắn thêm một Tag để xác định Block nào (của bộ nhớ chính) đang ở trong Line
Để hiểu được cách vận hành của cache, ta lần lượt xem xét và trả lời các câu hỏi liên quan đến các tình huống khác nhau xảy ra trong bộ nhớ trong
Trang 28.
Hình 4 30 Trao đổi thông tin giữa bộ nhớ chính và cache Một khối bộ nhớ được đặt vào trong cache theo một trong ba cách sau:
Kiểu tương ứng trực tiếp: Nếu mỗi khối bộ nhớ chỉ có một vị trí đặt khối duy nhất trong cache được xác định theo công thức: K= i mod n
Trong đó:
K: vị trí khối đặt trong cache
i: số thứ tự của khối trong bộ nhớ trong
n: số khối của cache
Như vậy, trong kiểu xếp đặt khối này, mỗi vị trí đặt khối trong cache có thể chứa một trong các khối trong bộ nhớ cách nhau xn khối (x: 0,1, ,m; n: số khối của cache)
Kiểu hoàn toàn phối hợp: trong kiểu đặt khối này, một khối trong bộ nhớ trong có thể được đặt vào vị trí bất kỳ trong cache
Như vậy, trong kiểu xếp đặt khối này, mỗi vị trí đặt khối trong cache có thể chứa một trong tất cả các khối trong bộ nhớ
Kiểu phối hợp theo tập hợp: với cách tổ chức này, cache bao gồm các tập hợp của các khối cache Mỗi tập hợp của các khối cache chứa số khối như nhau Một khối của bộ nhớ trong có thể được đặt vào một số vị trí khối giới hạn trong tập hợp được xác định bởi công thức: K= i mod s
Trong đó:
K: vị trí khối đặt trong cache
Trang 29i: số thứ tự của khối trong bộ nhớ trong
s: số lượng tập hợp trong cache
Trong cách đặt khối theo kiểu phối hợp theo tập hợp, nếu tập hợp có m khối, sự tương ứng giữa các khối trong bộ nhớ trong và các khối của cache được gọi là phối hợp theo tập hợp m khối
Nếu m = 1 (mỗi tập hợp có 1 khối), ta có kiểu tương ứng trực tiếp
Nếu m = n (n: số khối của cache), ta có kiểu tương hoàn toàn phối hợp
Hiện nay, phần lớn các cache của các bộ xử lý đều là kiểu tương ứng trực tiếp hay kiểu phối hợp theo tập hợp (mỗi tập hợp gồm 2 hoặc 4 khối)
Mỗi khối của cache đều có một nhãn địa chỉ cho biết số thứ tự của các khối bộ nhớ trong đang hiện diện trong cache Nhãn của một khối của cache có thể chứ thông tin cần thiết được xem xét để biết được các khối nằm trong cache có chứa thông tin mà
bộ xử lý cần đọc hay không Tất cả các nhãn đều được xem xét song song (trong kiểu tương ứng trực tiếp và phối hợp theo tập hợp) vì tốc độ là yếu tố then chốt Để biết xem một khối của của cache có chứa thông tin mà bộ xử lý cần tìm hay không, người
ta thêm một bit đánh dấu (valid bit) vào nhãn để nói lên khối đó có chứa thông tin mà
bộ xử lý cần tìm hay không
Như đã mô tả ở phần đầu, với thao tác đọc (ghi) bộ nhớ, bộ xử lý đưa ra một địa chỉ và nhận (viết vào) một dữ liệu từ (vào) bộ nhớ trong Địa chỉ mà bộ xử lý đưa ra có thể phân tích thành hai thành phần: phần nhận dạng số thứ tự khối và phần xác định vị trí từ cần đọc trong khối
Tương ứng với ba kiểu lắp đặt khối đã xét, ta có:
a Căn cứ vào tổ chức số từ trong khối bộ nhớ mà số bit trong địa chỉ xác định
vị trí từ cần đọc trong khối Cách này đúng với cả ba cách xếp đặt khối đã xét
b Phần nhận dạng số thứ tự khối sẽ khác nhau tuỳ thuộc vào cách xếp đặt khối, trường chỉ số khối được so sánh với nhãn của cache để xác định khối trong cache
Dữ liệu được bộ xử lý đọc cùng lúc với việc đọc nhãn Phần chỉ số khối của khối trong bộ nhớ trong được so sánh với bảng tương quan để xác định khối có nằm trong cache hay không Để chắc rằng nhãn chứa thông tin đúng đắn (tức là khối có chứa từ mà bộ xử lý cần đọc-ghi), nếu việc so sánh nhãn của khối cache giống với số thứ tự khối, bit đánh dấu (Valid bit) phải được bật lên Ngược lại, kết quả so sánh được
bỏ qua Bộ xử lý căn cứ vào phần xác định từ trong khối để đọc (ghi) dữ liệu từ (vào) cache
- Đối với kiểu tương ứng trực tiếp, phần nhận dạng chỉ số khối được chia thành hai phần:
+ Phần chỉ số khối cache: chỉ ra số thứ tự khối cache tương ứng cần xem xét + Phần nhãn: so sánh tương ứng với nhãn của khối cache được chỉ ra bởi phần chỉ số khối
Trang 30- Đối với kiểu hoàn toàn phối hợp, phần nhận dạng chỉ số khối trong địa chỉ sẽ được so sánh với nhãn của tất cả các khối cache
- Đối với kiểu phối hợp theo tập hợp, phần nhận dạng chỉ số khối được chia thành hai phần:
+ Phần chỉ số tập hợp: chỉ ra số thứ tự tập hợp trong cache cần xem xét
+ Phần nhãn: so sánh tương ứng với nhãn của các khối cache thuộc tập hợp được chỉ ra bởi phần chỉ số tập hợp
Ví dụ 4.4: Phân tích địa chỉ một từ trong được cho ở trên,
Địa chỉ xác định một từ trong bộ nhớ có 10 bit, tuỳ theo cách xếp đặt khối mà ta
có thể phân tích địa chỉ này thành các thành phần như sau:
- Đối với kiểu tương ứng trực tiếp:
- Đối với kiểu hoàn toàn phối hợp:
- Đối với kiểu phối hợp theo tập hợp, giả sử cache gồm 4 tập hợp, mỗi tập hợp gồm hai khối:
Trang 31Khối nào phải được thay thế trong trường hợp thất bại cache (thay thế khối)? Khi có thất bại cache, bộ điều khiển cache thâm nhập bộ nhớ trong và chuyển khối mà bộ xử lý cần đọc (ghi) vào cache Như vậy, khối nào trong cache sẽ bị thay thế bởi khối mới được chuyển lên Đối với kiểu tương ứng trực tiếp, vị trí đặt khối không có sự lựa chọn, nó được xác định bởi trường chỉ số khối cache trong địa chỉ của
từ cần đọc (ghi) Nếu cache là kiểu hoàn toàn phối hợp hay phối hợp theo tập hợp thì khi thất bại phải chọn lựa thay thế trong nhiều khối Có bốn chiến thuật chủ yếu dùng
để chọn khối thay thế trong cache:
- Thay thế ngẫu nhiên: để phân bố đồng đều việc thay thế, các khối cần thay thế trong cache được chọn ngẫu nhiên
- Khối xưa nhất (LRU: Least Recently Used): các khối đã được thâm nhập sẽ được đánh dấu và khối bị thay thế là khối không được dùng từ lâu nhất
- Vào trước ra trước (FIFO: First In First Out): Khối được đưa vào cache đầu tiên, nếu bị thay thế, khối đó sẽ được thay thế trước nhất
- Tần số sử dụng ít nhất (LFU: Least Frequently Used): Khối trong cache được tham chiếu ít nhất
Điều này sử dụng hệ quả của nguyên tắc sử dụng ô nhớ theo thời gian: nếu các khối mới được dùng có khả năng sẽ được dùng trong tương lai gần, khối bị thay thế là khối không dùng trong thời gian lâu nhất
Việc gì xảy ra khi ghi vào bộ nhớ (chiến thuật ghi)?
Thông thường bộ xử lý thâm nhập cache để đọc thông tin Chỉ có khoảng 15% các thâm nhập vào cache là để thực hiện thao tác ghi (con số này là 33% với các tính toán vectơ-vectơ và 55% đối với các phép dịch chuyển ma trận) Như vậy, để tối ưu hoá các hoạt động của cache, các nhà thiết kế tìm cách tối ưu hoá việc đọc bởi vì các
bộ xử lý CPU phải đợi đến khi việc đọc hoàn thành nhưng sẽ không đợi đến khi việc ghi hoàn tất Hơn nữa, một khối có thể được đọc, so sánh và như thế việc đọc một khối
có thể được bắt đầu khi chỉ số khối được biết Nếu thao tác đọc thành công, dữ liệu ô nhớ cần đọc sẽ được giao ngay cho bộ xử lý Chú ý rằng, khi một khối được ánh xạ từ
bộ nhớ trong vào cache, việc đọc nội dung của khối cache không làm thay đổi nội dung của khối so với khối còn nằm trong bộ nhớ trong
Đối với việc ghi vào bộ nhớ thì không giống như trên, việc thay đổi nội dung của một khối không thể bắt đầu trước khi nhãn được xem xét để biết có thành công hay thất bại Thao tác ghi vào bộ nhớ sẽ tốn nhiều thời gian hơn thao tác đọc bộ nhớ Trong việc ghi bộ nhớ còn có một khó khăn khác là bộ xử lý cho biết số byte cần phải ghi, thường là từ 1 đến 8 byte Để đảm bảo đồng nhất dữ liệu khi lưu trữ, có hai cách chính để ghi vào cache:
- Ghi đồng thời: Thông tin được ghi đồng thời vào khối của cache và khối của
Trang 32bộ nhớ trong Cách ghi này làm chậm tốc độ chung của hệ thống Các ngoại vi có thể truy cập bộ nhớ trực tiếp
- Ghi lại: Để đảm bảo tốc độ xử lý của hệ thống, thông tin cần ghi chỉ được ghi vào khối trong cache Để quản lý sự khác biệt nội dung giữa khối của cache và khối của bộ nhớ trong, một bit trạng thái (Dirty bit hay Update bit) được dùng để chỉ thị Khi một thao tác ghi vào trong cache, bit trạng thái (Dirty bit hay Update bit) của khối cache sẽ được thiết lập Khi một khối bị thay thế, khối này sẽ được ghi lại vào bộ nhớ trong chỉ khi bit trạng thái đã được thiết lập Với cách ghi này, các ngoại vi liên hệ đến
bộ nhớ trong thông qua cache
Khi có một thất bại ghi vào cache thì phải lựa chọn một trong hai giải pháp sau:
- Ghi có nạp: khối cần ghi từ bộ nhớ trong được nạp vào trong cache như mô tả
ở trên Cách này thường được dùng trong cách ghi lại
- Ghi không nạp: khối được thay đổi ở bộ nhớ trong không được đưa vào cache Cách này được dùng trong cách ghi đồng thời
Trong các tổ chức có nhiều hơn một bộ xử lý với các tổ chức cache và bộ nhớ chia sẻ, các vấn đề liên quan đến tính đồng nhất của dữ liệu cần được đảm bảo Sự thay đổi dữ liệu trên một cache riêng lẻ sẽ làm cho dữ liệu trên các hệ thống cache và
bộ nhớ liên quan không đồng nhất Vấn đề trên có thể được giải quyết bằng một trong các hệ thống cache tổ chức như sau:
- Mỗi bộ điều khiển cache sẽ theo dõi các thao tác ghi vào bộ nhớ từ các bộ phận khác Nếu thao tác ghi vào phần bộ nhớ chia sẻ được ánh xạ vào cache của nó quản lý, bộ điều khiển cache sẽ vô hiệu hoá sự thâm nhập này Chiến lược này phụ thuộc vào cách ghi đồng thời trên tất cả các bộ điều khiển cache
- Một vi mạch được dùng để điều khiển việc cập nhật, một thao tác ghi vào bộ nhớ từ một cache nào đó sẽ được cập nhật trên các cache khác
- Một vùng nhớ chia sẻ cho một hay nhiều bộ xử lý thì không được ánh xạ lên cache Như vậy, tất cả các thâm nhập vào vùng nhớ chia sẻ này đều bị thất bại cache
Các mức Cache
Việc dùng cache trong có thể làm cho sự cách biệt giữa kích thước và thời gian thâm nhập giữa cache trong và bộ nhớ trong càng lớn
Người ta đưa vào nhiều mức cache:
- Cache mức một (L1 cache): thường là cache trong (on-chip cache; nằm bên trong CPU)
- Cache mức hai (L2 cache) thường là cache ngoài (off-chip cache; cache này nằm bên ngoài CPU)
- Ngoài ra, trong một số hệ thống (PowerPC G4, IBM S/390 G4, Itanium của Intel) còn có tổ chức cache mức ba (L3 cache), đây là mức cache trung gian giữa cache
Trang 33L2 và một thẻ bộ nhớ
Bảng 4 2 Kích thước cache của một số hệ thống
4.4.2 Các phương pháp ánh xạ giữa cache và bộ nhớ chính
a) Ánh xạ trực tiếp (Direct mapping)
i: Số hiệu line trong cache
j: Số hiệu Block trong bộ nhớ chính
m: Số lượng line trong cache
Cụ thể như sau:
Trang 34+) Line: Xác định line trong cache, như vậy có 2r line trong cache
+) Tag: Xác định Block nào đang ở trong line
Chúng ta có: Dung lượng cache là 2r 2w = 2r+w
Số lượng Block của bộ nhớ chính là: 2s
do đó dung lượng bộ nhớ chính là: 2s *
2w = 2s+w
- Bảng ánh xạ:
Trang 35Ví dụ 4.5:
Máy tính có 16MB bộ nhớ chính, cache có dung lượng 64KB, kích thước line là
4 byte Xác định số bit cho mỗi trường của địa chỉ do CPU phát ra (ánh xạ trực tiếp)
Giải:
Chúng ta có:
Bộ nhớ chính = 16MB = 24.210.210 = 224
Dung lượng cache = 64KB = 26.210 = 216
Kích thước line = 4 Byte = 22
Do đó số lượng line trong cache là: 216
/ 22 = 214
Và số bit cho phần Tag là: 24 - 2 - 14 = 8 (bit)
Như vậy địa chỉ do CPU phát ra là:
Trang 36*) Nhận xét:
- Ưu điểm: Kỹ thuật ánh xạ trực tiếp thực hiện đơn giản và chi phí không cao
- Nhược điểm: Một Block chỉ được ánh xạ vào một line nhất định
Như vây, nếu một chương trình lặp đi lặp lại việc tham chiến đến các ngăn nhớ thuộc các block được ánh xạ vào cùng một line (cùng Tag, theo công thức: block j line j mod m), thì hai block sẽ liên tục thay thế nhau trong Cache và tỷ lệ trúng Cache (Cache hit) sẽ thấp
b) Ánh xạ liên kết hoàn toàn (Fully Associative Mapping)
Kỹ thuật ánh xạ liên kết hoàn toàn khắc phục nhược điểm trên của Kỹ thuật ánh
xạ trực tiếp: Mỗi block của bộ nhớ chính có thể được nạp vào bất kỳ line nào trong Cache
Khi đó địa chỉ do CPU phát ra gồm hai trường:
- Sơ đồ thực hiện:
Trang 37Hình 4 32 Ánh xạ liên kết hoàn toàn
+) Làm tăng thời gian truy nhập Cache
c) Ánh xạ liên kết tập hợp (Set Associative Mapping)
Ta thấy đối với Kỹ thuật ánh xạ liên kết đầy đủ, thời gian tìm kiếm không nhỏ
do phải so sánh với tất cả các Tag của tất cả các Line trong Cache Vì vậy, người ta khắc phục như sau:
- Nhóm một số Line liên tiếp thành một tập hợp (Set)
- Một block của bộ nhớ chính chỉ được nạp vào một Set nhất định, nhưng có thể nạp vào một Line bất kỳ của Set đó
- Bộ nhớ Cache được chia thành v Set mỗi Set có k Line, do đó số lượng Line trong Cache là: m = v * k
Chúng ta có ánh xạ: i = j mod v
Trong đó: +) i: Số hiệu Set trong Cache
+) j: Số hiệu Block trong bộ nhớ chính
Trang 38+) v: Số lượng Set
Cụ thể như sau:
Block 0 được ánh xạ vào Set 0
Block 1 được ánh xạ vào Set 1
Block v được ánh xạ vào Set v
Địa chỉ do CPU phát ra gồm có 3 trường:
Vì vậy: Số lượng line = 218/ 25 = 213,
Vì vậy, số lượng Set = 213
/ 23 = 210 Tag = 32 - 5 - 10 = 17
Trang 39+) v=m/4, k=4: ánh xạ liên kết tập hơp 4 đường
4.4.3 Giải thuật thay thế
Khi truy nhập thông tin, nếu Cache miss thì cần phải thay Block tương ứng đưa vào Cache, nghĩa là thay Block cũ trong Cache Vấn đề đặt ra là thay Block cũ nào ?
a Ánh xạ trực tiếp: Không được phép lựa chọn, vì:
Block j Chỉ và chỉ được ánh xạ vào Line (j mod m)
b Ánh xạ liên kết (tập hợp hoặc đầy đủ): Có các thuật toán thay thế Block cũ
như sau:
- Thuật toán ngẫu nhiên (Random): Thay một cách ngẫu nhiên một Block cũ
nào đó trong Cache
Đặc điểm:
+) Dễ thực hiện bằng phần cứng
Trang 40+) Là thuật toán nhanh nhất trong tất cả các thuật toán
+) Có thể thay đi block mà ngay sau đó cần dùng đến, nghĩa là trở thành Cache miss ngay sau đó Tuy nhiên, nhược điểm này khắc phục được phần nào nếu tăng dung lượng Cache lên
- Thuật toán FIFO (First In First Out): Thay thế block tồn tại trong Cache lâu
nhất (thay đi block vào đầu tiên trong số những block đang có trong đó)
- Thuật toán LRU (Least Recently Used): Thay thế block được dùng gần đây ít
nhất Trong thực tế thường dùng thuật toán này, vì có tỉ lệ Cache hit cao nhất
- Thuật toán LFU (Least Frequently Used): Thay thế block được dùng với tần
suất ít nhất
4.5 Bộ nhớ ngoài
4.5.1 Phân loại
4.5.1.1 Ổ đĩa cứng
Ổ đĩa cứng là thành phần không thể thiếu của một hệ thống máy tính Nó là nơi
lưu trữ hệ điều hành, cài đặt các phần mềm, tiện ích cũng như lưu trữ dữ liệu để sử dụng
Ổ cứng có liên quan đến những vấn đề quan trọng khi sử dụng máy như: tốc độ khởi động máy, tốc độ chép xuất dữ liệu của máy, độ an toàn của dữ liệu cá nhân để trên máy Vì vậy mà khi mua máy tính, chúng ta cũng cần quan tâm đến những thông
Ổ đĩa cứng HDD là ổ cứng truyền thống, dùng để lưu trữ dữ liệu trên bề mặt
các phiến đĩa tròn (platters) làm bằng nhôm, thủy tinh hoặc gốm được phủ vật liệu từ tính (các đĩa từ)
- Các thành phần của ổ đĩa cứng:
Trung tâm của ổ đĩa là một động cơ quay (Spindle), để đọc/ghi dữ liệu các nhà sản xuất đã sử dụng các bộ điều khiển truyền động (Actuator) kết hợp với các tay truyền động (Actuator Arm) điều khiển đầu đọc nhỏ (Slider and Read/Write Head) và các cơ này được điều khiển bởi một bộ vi mạch nhỏ ở ngoài, chúng điều khiển đầu đọc ghi đúng vào vị trí trên các đĩa từ (platters) khi đĩa đang quay ở tốc độ cao, đồng thời giải mã các tính hiệu từ tính thành dữ liệu mà máy tính có thể hiểu được