CPU và RAM được kết nối với nhau qua EXTERNAL DATA BUS (EDB).

EDB là gì? hiểu đơn giản là cọng dây điện nối thông giữa CPU và RAM để 2 thằng này nói chuyện với nhau.

RAM có cấu trúc như bảng tính của excel, có nhiều hàng, mỗi hàng có 8 ô, mỗi ô có chứa giá trị là 0 hoặc 1, xem ví dụ như hình dưới đây

ram

 

Tiếp nào. CPU dùng RAM để làm gì? Dùng để lưu SET OF COMMAND và RESULT, nói từ tiếng Anh khó hình dung quá !!! Ví dụ để thực hiện phép tính 1+2=3 thì CPU sẽ nhận được các lệnh: (1)nạp giá trị 1 vào thanh ghi AX (thanh ghi AX là gì mặc kệ nó ^.^), (2) nạp giá trị 2 vào thanh ghi BX (BX là gì? kệ nó đừng quan tâm) (3) Cộng giá trị trong AX với BX. (4) Đẩy kết quả qua EDB để lưu vào RAM.  Tập hợp (1)(2)(3)(4) được gọi là SET OF COMMAND, ok! Và kết quả =3 là RESULT, ok!

 

Nói lạc đề rồi đấy, nhưng lỡ lạc cho lạc thêm tí nữa.  RAM có hàng ngàn hàng triệu hàng, làm cách nào để CPU trỏ đến đúng bất kỳ hàng nào trong RAM??? Giải pháp đưa ra là có thêm 1 thằng Memory Control Chip (MCC) đứng giữa CPU và RAM để làm công việc thông dịch, diễn giải.

MMC

 

 

CPU nói chuyện với MCC thông qua 1 loại dây khác có tên ADDRESS BUS. Mỗi loại CPU khác nhau sẽ có số lượng dây này khác nhau. <—- sắp lộ ra vấn đề rồi đây !

Trước khi tiếp tục lấy lại 1 ví dụ đã học: Con Intel 8088 (biết nó là 1 con CPU của Intel là giỏi rồi)  có 20 Address Bus thì sẽ ánh xạ được 2^20 = 1.048.576 địa chỉ trên RAM. Nói cách khác với 20 dây Address Bus này thì CPU có thể nhờ MCC ánh xạ cho CPU chọn đúng bất kì hàng nào trong 1.048.576 hàng của RAM.

Mỗi hàng có 8 bits hay là 1 byte ==> 1.048.576 hàng = 1.048.576 byte.

Trở lại câu hỏi đặt ra “Tại sao Windows 32 bit chỉ nhận được tối đa 4GB RAM?”

Cho dù CPU của bạn hỗ trợ cả 32bit và 64bit nhưng khi sử dụng Windows 32bit thì CPU chạy 32bit thôi.

Vận dụng những gì đã tiếp thu ở trường nào.:

32bit thì ánh xạ được 2^32 địa chỉ hay 2^32 byte, ok!

  • 1 kilobyte = 1024 bytes = 2^10 bytes
  • 1 megabyte = 1024 kilobytes = 2^10 kilobytes
  • 1 gigabyte = 1024 megabytes = 2^10 megabytes
  • 1 gigabyte = 2^30 bytes, ok!

==> dung lượng RAM mà CPU 32bit có thể ánh xạ được tối đa = 2^32/2^30 = 2^2 = 4GB

“Ủa, sao tôi xem trong Windows Properties thì chưa tới 4GB, thường là 3.4GB hay 3.6GB???”

À vấn đề đó là vầy,

CPU 32bit hỗ trợ tối đa 4GB, ok

(5)Nhưng trong một số hệ thống, RAM cần share 1 lượng RAM cho VGA nữa mà, bạn thường thấy share cho VGA 256MB hoặc 512MB đó.

(6)Ngoài ánh xạ trực tiếp địa chỉ trong RAM, CPU còn cần xác định thêm địa chỉ của các thiết bị khác nữa chứ, như: port USB nè, các thiết bị ngoại vi là con chít chít và cái bàn meo meo nữa mà,… và các địa chỉ này sẽ được lưu trữ  tạm trên RAM vậy😀

Lí do (5) và (6) góp phần làm giảm tổng dung lượng RAM của bạn. Nên từ bây giờ, nếu dung lượng RAM=4GB và máy tính của bạn chạy CPU hoặc Windows 32bit thì đừng có thắc mắc tại sao “máy tính của tôi không nhận được hết 4GB RAM” nữa nhé.

 

Biên soạn: Thịnh Huỳnh

Hình ảnh minh họa: lấy từ  cuốn Mike Meyers CompTIA A+ Guide To Managing And Troubleshooting PCs