Giới thiệu về Dual Channel (Phần 1)
Bộ nhớ hệ thống RAM thường gây cản trở cho máy tính trong việc thực hiện hiệu suất tối đa của
nó. Sở dĩ như vậy là do các bộ vi xử lý (CPU) thường nhanh hơn bộ nhớ RAM và thường phải chờ
RAM phân phối dữ liệu. Trong suốt thời gian chờ đợi này CPU hoàn toàn nhàn rỗi và không thực
hiện một nhiệm vụ nào (điều đó không tuyệt đối đúng nhưng nó khớp với những giải thích của
chúng tôi).
Trong một máy tính hoàn hảo, bộ nhớ RAM sẽ nhanh tương đương với CPU. Dual channel chính là
công nghệ được sử dụng để nhân đôi tốc độ truyền thông giữa bộ điều khiển nhớ và bộ nhớ RAM
để cải thiện được hiệu suất hệ thống. Hướng dẫn này chúng tôi sẽ giới thiệu cho các bạn về một
số vấn đề của công nghệ Dual channel như: cách làm việc ra sao, thiết lập nó như thế nào và các
tính toán tốc độ truyền tải,…
Trước khi giới thiệu về dual channel, chúng ta hãy đi tìm hiểu về bộ nhớ RAM được kết nối với hệ
thống như thế nào.
Bộ nhớ được điều khiển bởi một mạch có tên gọi là memory controller. Mạch này nằm bên trong
chipset (chip cầu bắc – hoặc MCH, Memory Controller Hub) đối với các CPU của Intel, và bên
trong CPU đối với các CPU của AMD (CPU được thiết kế trên kiến trúc AMD64; CPU của AMD cũ
như Athlon XP sử dụng cùng lược đồ như các CPU của Intel).
RAM được kết nối với memory controller thông qua một số dây. Các dây này được chia thành ba
nhóm: nhóm dữ liệu, nhóm địa chỉ và nhóm điều khiển. Các dây làm chức năng bus dữ liệu sẽ
mang dữ liệu được đọc (nghĩa là được truyền tải từ bộ nhớ sang memory controller, sau đó đến
CPU) hoặc được ghi (nghĩa là được truyền tải từ memory controller đến bộ nhớ, từ CPU). Các dây
đóng vai trò bus địa chỉ có nhiệm vụ chỉ dẫn cho các mođun nhớ vị trí chính xác (địa chỉ nào) dữ
liệu sẽ được trích rút hoặc được lưu. Còn các dây điều khiển gửi các lệnh đến các mođun nhớ, chỉ
dẫn cho chúng kiểu hoạt động nào đang được thực hiện - cho ví dụ, nếu nó là một hoạt động ghi
(lưu) hoặc hoạt động đọc. Dây quan trọng khác có trong bus điều khiển là tín hiệu clock nhớ.
Chúng ta hãy xem lại tóm tắt trong hình 1. Hình vẽ của chúng tôi được dựa trên hệ thống của
Intel. Các CPU của AMD có memory controller bên trong CPU, vì vậy bus nhớ đến trực tiếp từ CPU
mà không cần trung gian.
Hình 1: Cách thức truy cập bộ nhớ
Tốc độ bộ nhớ (tốc độ clock), dung lượng cực đại và các kiểu RAM (DDR, DDR2, DDR3,…) đối với
một hệ thống được định nghĩa bởi chipset (Intel) hoặc bởi CPU (AMD). Cho ví dụ, các kiểu bộ nhớ
DDR3 trên hệ thống Intel phụ thuộc vào chipset (và bo mạch chủ hỗ trợ các kiểu bộ nhớ đó) chứ
không phải do CPU. Các hệ thống AMD hiện không thể làm việc với các bộ nhớ DDR3 vì memory
controller được nhúng bên trong chúng không thể nhận diện được công nghệ này.
Với tốc độ clock, nếu memory controller chỉ có thể tạo một tốc độ clock , 667 MHz (333 MHz x 2),
thì các bộ nhớ DDR2-800 của bạn sẽ làm việc ở tần số 667 MHz trên hệ thống này. Đây là một
hạn chế vật lý đối với memory controller. Thông thường bạn sẽ chỉ thấy kiểu hạn chế này trên các
hệ thống của Intel, vì các CPU của AMD có thể nhận ra các bộ nhớ DDR2 lên đến 800 MHz (socket
AM2 CPU) hoặc 1.066 MHz (socket AM2+ Phenom CPU).
Một điều thú vị khác có liên quan đến số lượng tối đa của bộ nhớ mà hệ thống có thể nhận diện
đó là, hầu hết các CPU của Intel đều có bus địa chỉ cho bộ nhớ 32 hoặc 36-bit (ở đây chúng tôi
đang nói đến bus địa chỉ có sẵn trên bus ngoài của CPU, nghĩa là trên front side bus của CPU).
Điều này cho phép CPU có thể nhận ra các bộ nhớ lên đến 4 GB (2^32) hoặc 64 GB (2^36).
Tuy nhiên với memory controller, thành phần có thể truy cập bô nhớ (không phải CPU truy cập
trực tiếp), đây là thành phần trung gian có thể hạn chế số lượng tối đa của RAM mà hệ thống của
bạn có. Cho ví dụ, các chipset của Intel P35 và G33 chỉ có thể truy cập lên đến 8 GB RAM (2 GB
trên mỗi một socket nhớ). Cộng với một vấn đề nữa ở đây là nhà sản xuất bo mạch chủ không
tạo sẵn số lượng đủ các socket bộ nhớ trên bo mạch chủ để đáp ứng số lượng tối đa của RAM mà
CPU có thể truy cập về mặt lý thuyết. Cho ví dụ, nếu một nhà sản xuất tạo một bo mạch chủ dựa
trên chipset Intel G33 chỉ có hai socket nhớ thì số lượng tối đa bộ nhớ mà bạn có thể có là 4 GB
(2 GB trên mỗi socket), mặc dù chipset này có khả năng cho phép truy cập đến 8 GB.
Do tất cả các kiểu modul nhớ hiện có ngày nay đều là các thiết bị 64-bit nên bus dữ liệu của bộ
nhớ là 64-bit. Tuy nhiên công nghệ dual channel đã thực hiện mở rộng bus dữ liệu của bộ nhớ từ
64 lên đến 128 bit.
Vậy Dual Channel là gì?
Dual channel là công nghệ cho phép memory controller có thể mở rộng độ rộng của bus dữ liệu từ
64 đến 128 bit. Hãy coi mọi thứ vẫn được duy trì tương tự (ví dụ về tốc độ clock chẳng hạn), khi
đó tốc độ truyền tải lý thuyết lớn nhất của bộ nhớ sẽ được gấp đôi khi sử dụng công nghệ này.
Tốc độ truyền tải theo lý thuyết lớn nhất (MTTR) được tính theo công thức:
MTTR = tốc độ clock thực x dữ liệu được truyền tải trên mỗi chu kỳ x số bit được truyền
tải trên mỗi chu kỳ / 8
hoặc
MTTR = tốc độ clock của DDR x số bit được truyền tải trên mỗi chu kỳ /8
Các bộ nhớ dựa trên công nghệ DDR (Double Data Rate) như DDR-SDRAM, DDR2-SDRAM và
DDR3-SDRAM đều truyền tải hai dữ liệu trên một chu kỳ. Do đó chúng có tốc độ truyền tải gấp
đôi so với các bộ nhớ truyền thống (như SDRAM thời điểm ban đầu) ở cùng một tốc độ clock.
Cũng chính do đó nên các bộ nhớ DDR thường được gán nhãn gấp đôi tốc độ clock thực của
chúng. Cho ví dụ các bộ nhớ DDR2-800 thực sự làm việc ở tốc độ clock 400 MHz và truyền tải hai
dữ liệu trên một chu kỳ clock, nên nhãn được gán là “800 MHz” mặc dù tín hiệu clock thực sự của
nó không phải là 800 MHz.
Trong các công thức đã cho ở trên, bạn cần nhân tốc độ clock thự lên hai lần, nghĩa là sử dụng
tốc độ clock của DDR.
Một mođun nhớ DDR2-800 – một thiết bị 64-bit, như đã đề cập trước – có tốc độ truyền tải lý
thuyết lớn nhất là 6400 MB/s (800 MHz x 64 / 8). Đây chính là lý do tại sao các mođun nhớ sử
dụng các chip nhớ DDR2-800 cũng được gọi là PC2-6400. Con số này nhằm mục đích nói lên tốc
độ truyền tải lớn nhất theo lý thuyết của bộ nhớ theo MB/s.
Nếu chúng ta sử dụng công nghệ dual channel với các mođun DDR2-800 thì tốc độ truyền tải lớn
nhất theo lý thuyết của bộ nhớ sẽ được gấp đôi, nhảy từ 6.400 MB/s lên 12.800 MB/s (800 MHz x
128 / 8), tại sao như vậy là vì, khi đó chúng ta sẽ truyền tải gấp đôi lượng dữ liệu (128 bits so với
64 bits) trên mỗi chu kỳ clock.
Các bạn cần lưu ý rằng, tốc độ truyền tải ở đây chỉ là “lý thuyết”. Khi tính toán, chúng ta cần
thừa nhận, sự truyền tải dữ liệu nào đó sẽ xuất hiện tại mỗi chu kỳ clock (nghĩa là trên bộ nhớ
DDR2-800 sẽ có 800.000.000 lượt truyền tải dữ liệu xuất hiện mỗi giây), thực tế không bao giờ
xảy ra vì không có memory controller và CPU nào truyền tải 100% dữ liệu theo thời gian. Đó là lý
do tại sao khi bạn đo sự truyền tải thực từ hệ thống bằng một chương trình nào đó chẳng hạn
như Sandra, thì bạn sẽ nhận được giá trị thấp hơn so với tốc độ truyền tải cực đại theo lý thuyết.
Một vấn đề nữa mà các bạn cần lưu ý ở đây là hiệu suất tăng chỉ được thực hiện trên hệ thống
nhớ phụ; hiệu suất tăng theo lý thuyết 100% không tương đồng với việc tăng 100% hiệu suất
trong toàn bộ máy tính của bạn mà chỉ một số lượng phần trăm nhỏ trong việc tăng hiệu suất
nhớ này sẽ tác động vào toàn bộ hiệu suất của hệ thống.
Chúng tôi sẽ giải thích một cách chi tiết cho các bạn về những gì xảy ra về mặt vật lý với bus dữ
liệu của bộ nhớ vì có rất nhiều thông tin sai được post lên các forum về cách làm việc của công
nghệ dual channel như thế nào.