Tải bản đầy đủ (.pdf) (13 trang)

Tài liệu HyperTransport Bus sử dụng cho các bộ vi xử lý AMD pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (837.73 KB, 13 trang )

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.



Hình 1: Vị trí của HyperTransport bus trên bộ vi xử lý AMD64. Nguồn:
Hardwaresecrets
Các CPU AMD dành cho các máy chủ - ví dụ như bộ vi xử lý Opteron – có
thể có một, hai hoặc 3 HyperTransport bus, phụ thuộc vào từng mô hình.
Các bus mở rộng này được sử dụng để kết nối với một số CPU để cho phép
chúng có thể trao đổi với nhau, nghĩa là được sử dụng trên các máy chủ có
nhiều CPU trên bo mạch chủ. Các CPU của máy desktop và notebook không
hỗ trợ kiểu cấu hình này vì chỉ có một HyperTransport bus trên chúng.

Trong bài này chúng ta có nhắc nhiều đến kiến trúc AMD64 nhưng sẽ không
giới thiệu sâu về kiến trúc này, mà sẽ dành riêng một bài khác để có thể giới
thiệu được chi tiết hơn.

Bên cạnh việc cung cấp các bộ vi xử lý AMD64 với các đường dữ liệu riêng
biệt cho bộ nhớ và I/O, HyperTransport còn có những ưu điểm khác: nó
cung cấp các liên kết riêng cho các hoạt động vào, ra của CPU, cho phép
CPU có thể gửi (ghi) và nhận (đọc) dữ liệu I/O tại cùng một thời điểm
(nghĩa là song song). Đối với kiến trúc truyền thống sử dụng bus ngoài đơn
thì bus được sử dụng cho cả hoạt động vào và ra nên việc đọc và ghi không
thể được thực hiện đồng thời.


Hình 2: HyperTransport bus cung cấp các đường dữ liệu vào/ra riêng biệt.
Nguồn: Hardwaresecrets
HyperTransport 1.x

HyperTransport bus có thể hoạt động dưới một vài cấu hình clock và độ
rộng (nghĩa là số bit được truyền mỗi lần). Đây có thể là vấn đề gây ra nhiều
hiểu sai và lỗi về HyperTransport.


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


800 MHz = 1.600 MT/s = 3.200 MB/s
HyperTransport truyền tải 2 dữ liệu trên mỗi một chu kỳ clock, khái niệm đã
được biết đến như DDR, tốc độ dữ liệu kép. Công thức để tìm ra tốc độ
truyền tải lớn nhất theo lý thuyết là:

Tốc độ truyền tải = độ rộng xung (số bit) x clock x số đơn vị dữ liệu trên
mỗi chu kỳ/ 8.

Như vậy với các bộ vi xử lý socket 754, HyperTransport bus có thể làm việc
đến 800 MHz hay 3.200 MB/s.

- Nói tốc độ clock được sử dụng bởi HyperTransport 1.x là 1.600 MHz bởi
vì mỗi một chu kỳ clock hai dữ liệu được truyền tải, hiệu suất đạt được
tương đương với tốc độ clock 1.600 MHz chỉ truyền tải một dữ liệu trên chu
kỳ clock. Cuối cùng tốc độ truyền tải sẽ như nhau, như công thức ở trên thay
vì sử dụng “2” cho “số dữ liệu trên mỗi chu kỳ clock”, nó sẽ sử dụng là “1”.
Điều này cũng xảy ra tương tự với DDR và các bộ nhớ mới hơn có tốc độ
clock tuyên bố là gấp đôi tốc độ clock thực (nghĩa là các bộ nhớ DDR2-800
làm việc thực tế là 400MHz nhưng truyền tải hai dữ liệu trên mỗi chu kỳ
clock).

- AMD nói rằng tốc độ clock là 1.600MT/s. MT/s là viết tắt của cụm Mega
Transfers per Second hay hàng triệu truyền tải trong một giây. Đây mới là
đúng cách để diễn tả ý tưởng trên. Truyền tải trên giây bằng tốc độ clock
nhân với số lần dữ liệu truyền tải trên mỗi chu kỳ.

Nói rằng tốc độ truyền tải lớn nhất của HyperTransport 1.x là 6.400 MB/s.
Điều đó là bởi vì tốc độ truyền tải đã được tuyên bố là cho mỗi đường dữ
liệu (nghĩa là 3.200MB/s cho đường dẫn đầu vào và 3.200MB/s cho đường
dẫn đầu ra), chính vì vậy một số người đã đơn giản hóa bằng cách nhân tốc

độ 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.


HyperTransport 2.0

HyperTransport 2.0 bổ sung thêm một số tốc độ clock mới – tốc độ truyên
tải mới và tính năng mới, bản đồ hóa PCI Express, đây là tính năng sẽ giúp
giao tiếp giữa HyperTransport và PCI Express – hay nói theo cách khác, làm
cho nó dễ dàng hơn đối với các CPU khi giao tiếp với thiết bị PCI Express.

Tốc độ truyền tải và clock mới giới thiệu trong HyperTransport 2.0 được cho
dưới đây, thừa nhận các liên kết 16bit (là cấu hình được sử dụng bởi bộ vi
xử lý AMD):

1.000 MHz = 2.000 MT/s = 4.000 MB/s

1.200 MHz = 2.400 MT/s = 4.800 MB/s

1.400 MHz = 2.800 MT/s = 5.600 MB/s
Các thiết bị HyperTransport 2.0 cũng có thể làm việc với tốc độ truyền tải
của HyperTransport 1.x.

AMD sử dụng HyperTransport 2.0 trên tất cả các CPU AMD64 sockets 939
và AM2 (ngoại trừ trên các CPU Sempron, CPU sử dụng HyperTransport
1.0), mặc dù vậy chỉ hỗ trợ tốc độ HT2 thấp hơn – trong thực tế AMD được
quan tâm đến nhiều hơn trong tính năng bản đồ hóa PCI Express so với mặt
tốc độ truyền tải cao. Tuy vậy các bộ vi xử lý này dựa trên tốc độ truyền tải
lớn nhất của các liên kết HT2 là 4.000 MB/s

Để làm cho một số thứ bớt lộn xộn, AMD sử dụng lại vài lần tên “HT1” để
miêu tả HyperTransport bus của CPU có các liên kết HyperTransport của họ
đang làm việc ở tốc độ 1.000 MHz. Điều này có thể tránh người dùng thừa

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

lẫn. Cũng giống như HyperTransport 1.x bạn cần phải lưu ý rằng các bộ vi
xử lý socket 939 và AM2 có thể làm việc với bất kỳ tốc độ clock nào dưới
1.000 MHz.

Một lần nữa các giá trị chính thức cho HyperTransport 2.0 lại được thổi
phồng lên như trong một tuyên bố rằng chúng sử dụng các liên kết 32bit và
nhân 2 vì có hai liên kết được cung cấp (một cho phát và một cho nhận dữ
liệu). Và cũng vậy, chúng tôi cũng không đồng ý với quan điểm này.

HyperTransport 3.0

Bên cạnh việc bổ sung thêm tốc độ clock – tốc độ truyền tải mới -
HyperTransport 3.0 còn có một số tính năng mới hơn so với HyperTransport
2.0, như chế độ hoạt động AC, Link Splitting, Hot Plugging và Dynamic
Link Clock/Width Adjustment. Các bộ vi xử lý AMD sắp tới như Phenom,
sẽ sử dụng phiên bản HyperTransport bus mới này.

HyperTransport 3.0 sẽ được sử dụng trên các CPU socket AM2+ và 1207+.

HyperTransport 3.0 có thêm các tốc độ clock mới, vẫn giữ tương thích với
HT1 và HT2:

1.800 MHz = 3.600 MT/s = 7.200 MB/s

2.000 MHz = 4.000 MT/s = 8.000 MB/s

2.400 MHz = 4.800 MT/s = 9.600 MB/s

2.600 MHz = 5.200 MT/s = 10.400 MB/s
AMD tuyên bố rằng các CPU sắp tới của họ sẽ hỗ trợ tốc độ truyền HT3 lớn

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

năng. Các bộ vi xử lý sẽ không sử dụng tính năng này.

Phân tách kết nối (Link splitting) cho phép liên kết 16bit để có thể được truy
cập như hai liên kết 8bit độc lập. Điều này có thể được sử dụng cho việc
tăng số liên kết có sẵn, cho phép thêm số lượng CPU có thể được kết nối mà
không cần sử dụng bất kỳ phần cứng mở rộng nào.

Hot Plugging cho phép các thiết bị HyperTransport có thể được cài đặt và
hủy bỏ cài đặt khi bus đang chạy. Nó không cho phép bạn thay thế CPU khi
hệ thống được bật vì CPU có một số chân khác bên cạnh HyperTransport,
nhưng tính năng này có thể được sử dụng trên các máy chủ lưu trữ HT3.

Cuối cùng là Dynamic Link Clock/Width Adjustment, tính năng được sử
dụng bởi các CPU AMD nền tảng HT3 – khi chúng được cài đặt trên bo
mạch chủ bằng chipset HT3. Tính năng này cho phép CPU có thể thay đổi
clock và số lượng bít được phát trên mỗi một chu kỳ clock mang tính động.
Ý tưởng ở đây là giảm công suất tiêu thụ. Ví dụ, nếu CPU cảm nhận rằng
HyperTransport bus của nó ở 2.600 MHz (10.400 MB/s) là quá nhiều so với
những gì nó đang thực hiện được thì nó có thể giảm bus xuống 1.000 MHz
(4.000 MB/s) – hoặc bất kỳ một tốc độ gì đó mà nó cho là sẽ phù hợp hơn.
Cũng tương tự với số lượng bit được phát trên mỗi chu kỳ - nó có thể được
giảm từ 16 đến bất cứ số nào mà CPU cảm thấy hợp lý, dựa trên hiệu suất sử
dụng của hệ thống hiện hành.

×