HyperTransport Bus sử dụng cho các bộ vi xử lý AMD
Các bộ vi xử lý nền tảng kiến trúc AMD64 – như Athlon 64, Athlon 64
X2, Athlon 64 FX, Opteron, Sempron và Phenom – có hai bus ngoài.
Một được sử dụng cho việc truyền thông giữa CPU và bộ nhớ được gọi
là “memory bus”, bus kia được sử dụng cho việc truyền thông giữa CPU
và tất cả các thành phần khác của máy tính thông qua chipset của bo
mạch chủ và được gọi là HyperTransport – I/O (Input/Output) bus.
Trong hướng dẫn này, chúng tôi sẽ giới thiệu cho các bạn về cách
HyperTransport bus làm việc và nêu ra một số lỗi mà người dùng
thường hiểu nhầm đối với bus này.
Đối với tất cả các bộ vi xử lý khác – gồm có bộ vi xử lý AMD không dựa
trên kiến trúc AMD64 (như các bộ vi xử lý Athlon, Athlon XP và Sempron
socket 462) – CPU này chỉ có một bus ngoài, chúng cũng được biết đến như
front side bus (FSB). Đối với phương pháp này, bus ngoài chịu trách nhiệm
cho cả việc truyền thông I/O và bộ nhớ.
Về mặt lý thuyết, kiến trúc được sử dụng cho các bộ vi xử lý AMD64 tốt
hơn, theo lý thuyết, chúng có thể truyền thông với bộ nhớ và với các thành
phần máy tính khác (như video card) tại cùng một thời điểm, điều không thể
đối với các bộ vi xử lý khác chỉ có một đường dữ liệu bên ngoài.
Trên hình 1 bạn có thể xem cách một bộ vi xử lý AMD64 truyền thông với
thế giới bên ngoài thế nào. Chip “bridge” là chipset của bo mạch chủ. Phụ
thuộc vào chipset bạn có thể có một hoặc hai chip. Đối với các giải pháp 2
chip, tất cả thiết bị ngoại vi (như ổ đĩa cứng, các card bổ sung, sound
card,…) đều được kết nối đến chip thứ hai (chip thứ hai này được gọi là cầu
nối phía Nam, không hiển thị trong hình 1), trong khi các giải pháp đơn chip,
mọi thứ đều được kết nối đến chip đơn này.
HyperTransport là một bus được tạo bởi sự cộng tác sản xuất của một vài
nhà máy, bao gồm AMD, nVidia và Apple. Bus này có thể được sử dụng
trên một số ứng dụng và nó không bị hạn chế đối với các bộ vi xử lý của
AMD.
Điều đó có nghĩa rằng cấu hình thực của HyperTransport bus sẽ phụ thuộc
vào các chuyên gia phát triển phần cứng.
Một số chuyên gia phát triển tuyên bố về tốc độ truyền tải một cách quá mức
của HyperTransport bus mà họ đang sử dụng.
Các bộ vi xử lý AMD64 hiện hành sử dụng HyperTransport 1 (HT1) hay
HyperTransport 2 (HT2), và các bộ vi xử lý AMD sắp tới sử dụng
HyperTransport 3 (HT3). Trong tất cả các trường hợp này, bộ vi xử lý AMD
sử dụng các liên kết 16bit, thậm chí HyperTransport còn cho phép sử dụng
các liên kết 32bit.
HyperTransport 1 được sử dụng trên tất cả các socket 754 và socket AM2
Sempron (các bộ vi xử lý AM2 sử dụng HyperTransport 2.0).
Đây là một phân tích thống kê về tất cả các tốc độ truyền tải và clock có thể
đối với HyperTransport 1.x (nghĩa là được cung cấp trên socket 754):
200 MHz = 400 MT/s = 800 MB/s
400 MHz = 800 MT/s = 1.600 MB/s
600 MHz = 1.200 MT/s = 2.400 MB/s
độ truyền tải lên hai để dùng chung cho cả hai đường dữ liệu. Chúng tôi
không đồng ý với ý tưởng này vì nói như thể cũng giống như nói rằng tốc độ
tối đa của một đường cao tốc nào đó là 130Km/h thì mỗi một chiều chỉ có
65Km/h, điều này quả thực rất dễ gây nhầm lẫn.
Một hiểu sai khác nói rằng bus ngoài hoặc FSB của Athlon 64 (hoặc các
CPU dựa trên AMD64 nào đó) là 16.00MHz. Cái này cũng có phần đúng.
Chúng ta có thể nói điều đó khi chỉ quan tâm đến các hoạt động vào ra
nhưng không đề cập đến bộ nhớ, vì các bộ vi xử lý kiến trúc AMD64 có hai
bus ngoài riêng biệt. Như vậy tốt hơn chúng ta nên nói HyperTransport chứ
không phải “external bus” hay “FSB” để tránh nhầm lẫn. Bạn cũng cần biết
một điều rằng các bộ vi xử lý AMD có thể làm việc với một tốc độ clock
dưới tốc độ đã tuyên bố 1.600 MT/s (800 MHz). Thực tế rằng chúng có thể
làm việc ở bất kỳ tốc độ nào trong danh sách đã công bố ở trên.
Chipset có thể nhận ra tốc độ clock thấp hơn với CPU và thậm chí một bước
8bit thay vì 16bit. Trong thực tế, khi các chipset Athlon 64 đầu tiên mới ra
đời, VIA đã tuyên bố rằng chipset của họ cho Athlon 64, K8T800 có nhiều
ưu điểm hơn để cạnh trạnh với HyperTransport bus ở tốc độ 1.600MT/s khi
không làm việc ở tốc độ truyền tải cực đại.
Tại website chính thức của HyperTransport
, bạn sẽ thấy rằng họ tuyên bố
tốc độ truyền tải lớn nhất là 12,8 GB/s đối với HyperTransport 1.x. Tốc độ
truyền tải lớn nhất này được thực hiện bằng cách sử dụng các liên kết 32bit –
vì các bộ vi xử lý AMD sử dụng các liên kết 16bit. Nếu làm một phép toán
bạn sẽ nhận được kết quả 6.400 MB/s (32 bits x 800 MHz x 2 / 8). Đây là
một sự hợp tác gấp đôi tốc độ lớn nhất chỉ vì có hai đường dữ liệu được
cung cấp (một cho phát và một cho nhận). Như chúng tôi đã nói trước,
chúng tôi không đồng ý với quan niệm tính toán tốc độ truyền tải như vậy.
nhận rằng chỉ các phần của HT2 mới có thể làm việc đến tốc độ 1.400 MHz
(5.600 MB/s).
Một số người cho rằng liên kết 1.000 MHz/4.000 MB/s HyperTransport này
được sử dụng bởi các bộ vi xử lý socket 939 và AM2 với:
- 2.000 MHz. Điều này có lẽ là vì trên mỗi một chu kỳ clock có hai dữ liệu
được truyền tải, hiệu suất đạt được sẽ bằng với tốc độ clock 2.000MHz đang
được truyền tải chỉ một dữ liệu trên chu kỳ. Kết quả cuối cùng đều như
nhau, như công thức được thể hiện ở trên thay vì sử dụng “2” cho “số dữ
liệu trên số chu kỳ clock” thì lúc này là “1”. Điều tương tự cũng xảy ra đối
với DDR và các bộ nhớ sau này.
- 2.000 MT/s. Đây là tốc độ truyền tải chính thức của AMD. Tên viết tắt của
thuật ngữ này đã được giới thiệu trong phần trên. Đây là cách đúng đắn để
diễn tả ý tưởng trên. Truyền tải trên mỗi giây bằng số tốc độ clock nhân với
số lượng dữ liệu được truyền tải trên mỗi chu kỳ.
- 8.000 MB/s. Điều này xảy ra vì tốc độ truyền tải đã tuyên bố là cho mỗi
đường dữ liệu (có nghĩa là 4.000 MB/s cho mỗi đường dữ liệu vào ra riêng
biệt). Phần này cũng như phần trước mà chúng tôi đã đề cập, và chúng tôi
cũng đã bày tỏ quan điểm không đồng ý với quan niệm này, quan niệm dễ
gây nhầm lẫn.
Một hiểu sai khác là nói rằng bus ngoài hay FSB (Front Side Bus) của
Athlon 64 (hay của bất kỳ CPU dựa trên AMD64 nào) là 2.000MHz. Cái
này cũng có phần đúng. Chúng ta có thể nói điều đó khi chỉ quan tâm đến
các hoạt động vào ra nhưng không đề cập đến bộ nhớ, vì các bộ vi xử lý kiến
trúc AMD64 có hai bus ngoài riêng biệt. Như vậy tốt hơn chúng ta nên nói
HyperTransport chứ không phải “external bus” hay “FSB” để tránh nhầm
nhất – 10.400 MB/s – AMD gọi là 5,2 GT/s, nghĩa là hàng tỉ truyền tải trong
một giây. Tuy vậy chúng tôi vẫn cho rằng các CPU đó sẽ vẫn chỉ tương
thích với tốc độ thấp hơn. Điều này là vì có hai thứ. Đầu tiên là các CPU nền
tảng HT3 mới có thể được cài đặt trên các bo mạch nền tảng HT2 – ví dụ
như cài đặt một bộ vi xử lý socket AM2+ trên bản mạch socket AM2 – và
như vậy họ cũng sẽ không đạt được hiệu suất I/O tối đa. Thứ hai là tại thời
điểm ra mắt, có thể một vài chipset sẽ không thể chạy với tốc độ truyền tải
10.400 MB/s, ngay cả nếu chúng là HT3, cũng giống như điều xảy ra khi
Athlon 64 ra mắt lần đầu tiên.
Tương tự như điều xảy ra với các tốc độ clock thấp hơn, có thể sẽ có người
gọi tốc độ clock lớn nhất của HT3 thành 5.2 GHz hay tốc độ truyền tải lớn
nhất của nó thành 20.8 GB/s
Một lần nữa tốc độ truyền tải được HyperTransort giới thiệu lại được cường
điệu cao hơn. Họ thông báo HyperTransport 3,0 có một tốc độ truyền tải lớn
41,6 GB/s. Để có được con số này, họ tính toán các liên kết 32-bit (không
phải 16-bit) và nhân số tìm được với hai bởi vì có hai liên kết. Thuật toán
được sử dụng là 2.600 MHz x 32 x 2 / 8 x 2. Như chúng tôi đã giải thích, các
vi xử lý AMD sử dụng các liên kết 16-bit chứ không phải 32-bit và chúng tôi
không đồng ý với phương pháp nhân đôi tốc độ truyền tải này bởi thực tế chỉ
có một liên kết để truyền tải và một liên kết khác để nhận dữ liệu. Chúng tôi
sẽ chỉ đồng ý với điều này nếu các liên kết có cùng hướng.
Ở đây chúng tôi chỉ đi vào giới thiệu các tính năng mới được mở rộng trong
HyperTransport 3.0.
Chế độ hoạt động AC cho phép HyperTransport bus có thể thực hiện trên
các khoảng cách dài hơn. Mục tiêu là cho phép HyperTransport có thể được
sử dụng trực tiếp đến các trường hợp kết nối, bo mạch và các bảng nối đa