HyperTransport Bus sử dụng cho các bộ vi xử lý AMD

Chia sẻ: Thanh Cong | Ngày: | Loại File: PDF | Số trang:13

0
100
lượt xem
42
download

HyperTransport Bus sử dụng cho các bộ vi xử lý AMD

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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

Chủ đề:
Lưu

Nội dung Text: HyperTransport Bus sử dụng cho các bộ vi xử lý AMD

  1. HyperTransport Bus sử dụng cho các bộ vi xử lý AMD
  2. 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
  3. 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.
  4. 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
  5. 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
  6. 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ữ
  7. 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
  8. 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
  9. 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ễ
  10. 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+.
  11. 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
  12. đượ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
  13. 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.
Đồng bộ tài khoản