• Thứ Hai, 16/06/2008 14:33 (GMT+7)

    PCI Express hiện tại và tương lai

    Hiện nay, tốc độ truyền tải của PCI Express 1.x (PCIe 1.x) nhìn chung có thể đáp ứng hầu hết các ứng dụng thông thường, tuy nhiên với các ứng dụng đồ họa cao cấp thì vẫn chưa đủ. Đây chính là lý do để công nghệ PCI Express (PCIe) không ngừng cải tiến và tới thời điểm này đã hiện thực trên các sản phẩm giao tiếp PCI Express (PCIe) 2.0 và sắp tới là PCIe 3.0.

    Kiến trúc PCIe được phân thành các lớp như hình 1

    PCIe hoàn toàn tương thích với thế hệ PCI trước đây. Điều này có nghĩa là tất cả các ứng dụng và trình điều khiển tương thích với PCI cũng hoạt động không thay đổi với PCIe. Chính vì vậy chuẩn giao tiếp PCIe cũng có nguyên lý giao tiếp giống như PCI.

    • Lớp vật lý (physical)

    Liên kết PCIe cơ bản bao gồm các cặp tín hiệu: một tín hiệu truyền và một tín hiệu nhận như hình 2:

    Một xung dữ liệu được ghi vào bằng cách sử dụng mã hóa 8b/10b để đạt được tốc độ dữ liệu cao. Tần số của phiên bản PCIe đầu tiên là 2,5 Giga transfers/giây/hướng (GT/s); với công nghệ silicon, tần số này có thể được cải tiến để nâng lên thành 10GT/s. Lớp vật lý chuyển các gói giữa các lớp liên kết của 2 PCIe.

    • Lớp liên kết (Link)

    Vai trò cơ bản của một lớp liên kết là để bảo đảm tính xác thực của việc truyền đi các gói thông qua liên kết PCIe. Lớp liên kết chịu trách nhiệm trong việc bảo toàn và kiểm tra dữ liệu bằng chuỗi đánh số gói, chuỗi CRC (Cyclic redundancy check) vào các gói của lớp truyền/nhận (transaction) gửi đến như hình 3:

    Hầu hết các gói được bắt đầu ở lớp transaction. Giao thức điều khiển luồng bảo đảm các gói này chỉ được truyền khi có một bộ đệm để nhận gói này ở điểm cuối. Điều này giúp loại trừ việc phải gửi đi nhưng có nơi nhận phải gửi lại gây ra việc lãng phí băng thông. Lớp liên kết sẽ tự động gửi lại một gói khi gói này bị sai lệch.

    • Lớp truyền/nhận (transaction)

    Lớp transaction nhận các yêu cầu đọc và ghi từ lớp phần mềm và tạo ra các gói yêu cầu cho việc truyền đến lớp liên kết. Đa số tất cả các yêu cầu đều độc lập và một số gói yêu cầu cần phải có một gói trả lời. Lớp transaction cũng nhận các gói trả lời từ lớp kết nối và kết hợp các gói trả lời này với các gói yêu cầu từ lớp phần mềm. Mỗi gói sẽ có một mã riêng biệt để bảo đảm các gói trả lời tương ứng với từng gói yêu cầu ban đầu. Định dạng gói hỗ trợ 32bit địa chỉ nhớ có thể mở rộng thành 64bit địa chỉ nhớ. Các gói cũng có các thuộc tính như “no-snoop”, “relaxed ordering”, “priority”. Các thuộc tính này có thể được sử dụng để tối ưu lộ trình của những gói này thông qua các hệ thống xuất nhập (I/O) con.

    • Các lớp phần mềm (software)

    Các lớp phần mềm sẽ tạo ra các yêu cầu đọc và ghi để chuyển đến các thiết bị I/O bằng lớp transaction.

    Tới thời điểm này, các sản phẩm phần cứng đến tay người tiêu dùng đã bắt đầu được hiện thực với chuẩn giao tiếp PCIe 2.0 và trong tương lai theo dự kiến sẽ là PCIe 3.0. Nhưng PCIe 2.0 và PCIe 3.0 có những cải tiến gì so với PCIe 1.x.

    PCI Express 2.0

    Với phiên bản PCIe 1.1 có tốc độ bit 2,5Giga transfers/s (GT/s) nhưng với phiên bản PCIe 2.0 thì tốc độ này được tăng gấp đôi lên thành 5GT/s. Ví dụ, một PCIe 1.1x8 có băng thông tổng cộng 4GBytes/s, tương đương với băng thông của PCIe 2.0x4 của công nghệ tín hiệu 5GT/s. Tuy nhiên, PCIe 2.0 có thể hỗ trợ cùng lúc tốc độ 2,5GT/s và 5GT/s, có thể tương thích ngược với PCIe 1.0 và 1.1. Có nghĩa là một thiết bị được thiết kế hoạt động ở tốc độ 5GT/s có thể cắm trên khe hỗ trợ tín nhiệu 2,5GT/s và ngược lại.

    Bên cạnh tốc độ nhanh hơn gấp đôi, PCIe 2.0 còn có một số cải tiến như tương thích tốt hơn, độ tin cậy cao hơn trong thiết kế các liên kết PCIe. Ngoài ra, PCIe 2.0 còn có những tính năng đặc biệt trong đặc tả:

    • Gia tăng khả năng kiểm soát lỗi định thời: giảm lỗi định thời và gia tăng khả năng điều chỉnh thời gian

    • Chức năng xác lập lại mức ban đầu (level reset) và truy xuất các dịch vụ điều khiển: tăng cường mạnh mẽ việc hỗ trợ khả năng ảo hoá I/O (tuỳ chọn)

    • Khe thay đổi giới hạn cấp nguồn: cho phép khe cấp nguồn cao hơn để đáp ứng cho những card đồ họa mới, mạnh hơn

    • Điều khiển tốc độ tín hiệu: cho phép phần mềm xác định tốc độ tín hiệu hoạt động của một thiết bị, giúp làm giảm sự tiêu thụ năng lượng cũng như cung cấp toàn bộ mức I/O cho bộ nhớ.

    PCI Express 3.0

    PCI Express 3.0 là phát triển kế tiếp của chuẩn PCIe 2.0, với tốc độ bít đạt 8GT/s, gấp đôi PCIe 2.0, trong khi vẫn duy trì sự tương thích của các giao tiếp phần mềm và vận hành trong tất cả các phiên bản.

    Tại sao lại nói tăng gấp đôi khi PCIe 2.0 có thể đạt tốc độ bit 5GT/s? PCIe 2.0 có tốc độ bit là 5GT/s nhưng tốc độ thực sự chỉ 4GT/s, 20% còn lại dành cho việc mã hóa 8b/10b (là sự sắp mã theo byte, mỗi byte của dữ liệu vào một hay 2 ký tự 10bit). PCIe 3.0 đã không sử dụng công đoạn mã hóa 8b/10b mà thay vào đó là kỹ thuật “scrambling” (dùng hàm nhị phân để biểu diễn luồng dữ liệu). Chính nhờ điểm “tiết kiệm” này, PCIe 3.0 tăng gấp đôi hiệu năng nhưng chỉ cần tốc độ bit là 8GT/s thay vì phải cần đến 10GT/s nếu dùng cơ chế mã hóa 8b/10b.

    Ngoài ra, cả 3 chuẩn PCIe (PCIe 1.x, PCIe 2.0, PCIe 3.0) đều tương thích lẫn nhau. Điều này có nghĩa card PCIe 1.x và PCIe 2.0 có thể cắm vào khe PCIe 3.0 và hoạt động ở tốc độ cao nhất mà card hỗ trợ. Tương tự, tất cả các card PCIe 3.0 đều có thể cắm vào khe PCIe 1.x và PCIe 2.0 và hoạt động với tốc độ mà khe cắm hỗ trợ.
    Tuy nhiên, một yêu cầu quan trọng đối với giao tiếp PCIe 3.0 là các sản phẩm phải được thực hiện với công nghệ 65nm hay công nghệ tốt hơn nữa thì mới có thể tối ưu được tốc độ của giao tiếp.

    BẢNG TỐC ĐỘ BIT VÀ BĂNG THÔNG CỦA MỖI KIẾN TRÚC PCIe

    Kiến trúc PCIe Tốc độ bit  Băng thông kết nối Băng thông trên mỗi đường trên mỗi hướng Băng thông tổng cộng cho 16 kết nối
    PCIe 1.x 2,5GT/s  2Gb/s  ~250MB/s ~8GB/s
    PCIe 2.0  5,0GT/s  4Gb/s  ~500MB/s ~16GB/s
    PCIe 3.0 8,0GT/s  8Gb/s  ~1GB/s ~32GB/s

    Gia An
    Tham khảo: http://www.pcisig.com/home

    ID: A0805_132