Avalon bus là một kiến trúc bus đơn giản được thiết kế cho kết nối giữa một vi xử lý on-chip và các thiết bị ngoại vi trong một SoPC. Avalon bus là một giao tiếp nhằm xác định kết nối cổng giữa các thành phần master và slave trên chip, đồng thời xác định thời gian (timing) giữa các thành phần khi chúng kết nối với nhau.
* Mục tiêu thiết kế chính của Avalon bus là :
• - Đơn giản: cung cấp một giao thức dễ hiểu để thiết kế
• - Tối ưu hóa sử dụng tài nguyên cho các bus : tài nguyên được sử dụng cho việc thiết kế bus ít nhất phải nhằm bảo toàn các yếu tố logic (logic elements) bên trong thiết bị logic khả trình (PLD). Nói cách khác, tài nguyên logic được sử dụng cho việc thiết kế bus phải càng ít càng tốt nhưng vẫn phải đảm bảo sự linh hoạt của hệ thống.
• - Hoạt động đồng bộ : vừa tương thích tốt với các khối phần cứng của người thiết kế đang cùng tồn tại trên một PLD, lại vừa tránh được các vấn đề phân tích thời gian (timing analysis) phức tạp.
GVHD : PGS.TS. NGUYỄN HỮU PHƯƠNG
HV : CAO TRẦN BẢO THƯƠNG
Các quá trình truyền nhận cơ bản trên Avalon bus sẽ truyền một byte đơn, một half-word (16-bit), một word (32-bit) giữa các thành phần master và slave. Sau khi quá trình truyền nhận kết thúc, ngay tức thì Avalon bus sẵn sàng cho hoạt động tiếp theo tại chu kì kế của xung clock giữa một cặp master và slave giống nhau (nối liền nhau), hoặc giữa các cặp master và slave không có mối liên hệ với nhau (các cặp master và slave này nối chung trên Avalon bus). Avalon bus đồng thời cũng có các tính năng mở rộng như : hỗ trợ các thiết bị ngoại vi có độ trễ thời gian, các thiết bị ngoại vi truyền nhận dữ liệu theo luồng và nhiều bus master (multiple bus master). Các tính năng truyền nhận mở rộng cho phép nhiều thành phần dữ liệu được truyền giữa các thiết bị ngoại vi chỉ trong một chu kì bus. Avalon bus hỗ trợ nhiều bus master. Kiến trúc “multi-master” giúp cho việc xây dựng các hệ thống SOPC cực kỳ linh hoạt, và tạo cho người thiết kế khả năng xây dựng các thành phần phần cứng có tốc độ cao, băng thông rộng. Ví dụ, một thiết bị ngoại vi có thể thực hiện một quá trình truyền nhận theo cách truy xuất bộ nhớ trực tiếp (Direct Memory Access) để truyền dữ liệu từ thiết bị ngoại vi vào bộ nhớ hoặc ngược lại mà không cần một sự can thiệp nào của vi xử lý trong đường truyền dữ liệu. Hay nói cách khác, dữ liệu được truyền trực tiếp giữa thiết bị ngoại vi và bộ nhớ mà không thông qua vi xử lý. Lúc này, vi xử lý chỉ có vai trò điều khiển luồng dữ liệu chứ không truyền hay xử lý dữ liệu.
Các master và slave tương tác với nhau dựa trên một kỹ thuật gọi là thỏa hiệp ở phía slave (slave-side arbitration). Kỹ thuật này nhằm xác định master nào được nắm quyền truy cập tới slave trong trường hợp có nhiều master truy cập cùng một lúc đến slave. Kỹ thuật này có hai ưu điểm:
GVHD : PGS.TS. NGUYỄN HỮU PHƯƠNG
HV : CAO TRẦN BẢO THƯƠNG
• - Chi tiết về sự thỏa hiệp này được gói gọn bên trong Avalon bus. Do đó, các giao tiếp giữa master và slave rất ổn định và chắc chắn, bất chấp số lượng master và slave có trên bus. Mỗi master sẽ giao tiếp với Avalon bus như thể nó là master duy nhất trên đường Avalon bus.
• - Các master có thể thực hiện quá trình truyền nhận song song nhau, miễn là chúng không truy cập tới cùng một slave trong cùng một chu kì bus.
Avalon bus được thiết kế đặc biệt để thích nghi với môi trường SoPC. Do đó nó là một kiến trúc bus được tích hợp sẵn rất năng động trên SoPC, bao gồm các tài nguyên logic và các đường kết nối bên trong một thiết bị logic khả trình. Một số đặc điểm của kiến trúc Avalon là:
• - Giao diện đối với các thiết bị ngoại vi được đồng bộ với xung clock của Avalon bus. Do đó, các tín hiệu “ack” và tín hiệu bắt tay bất đồng bộ phức tạp là không cần thiết trong thiết kế. Vì thế, khả năng hoạt động của Avalon bus (và cũng là của toàn bộ hệ thống) có thể được đo đạc bằng các kĩ thuật phân tích chuẩn và đồng bộ thời gian.
• - Tất cả các tín hiệu đều có thể được tích cực ở mức thấp hoặc cao, điều này cho phép khả năng hoạt động liên tục của hệ thống. Các bộ đa hợp bên trong Avalon bus sẽ quyết định các tín hiệu nào điều khiển thiết bị ngoại vi. Các thiết bị ngoại vi sẽ không cần phải có ngõ ra 3 trạng thái ngay cả khi thiết bị đó không được chọn hoạt động.
• - Các tín hiệu địa chỉ, dữ liệu và điều khiển sử dụng các cổng riêng biệt, điều này làm đơn giản hóa thiết kế của các thiết bị ngoại vi. Một thiết bị ngoại vi
GVHD : PGS.TS. NGUYỄN HỮU PHƯƠNG
HV : CAO TRẦN BẢO THƯƠNG
không cần phải giải mã các chu kì bus dữ liệu và địa chỉ, và cũng không cần phải tắt các ngõ ra khi nó không được chọn hoạt động.
• - Không gian địa chỉ lên tới 4 Giga byte: các thiết bị ngoại vi và bộ nhớ có thể được gắn bất kì nơi nào trong không gian địa chỉ 32-bit.
- Tách rời các đường địa chỉ, dữ liệu và điều khiển : điều này giúp việc kết nối với các khối logic do người thiết kế tạo ra trở nên dễ dàng hơn, vì không cần sự giải mã chu kỳ bus dữ liệu và địa chỉ.•
- Tích hợp bộ giải mã địa chỉ : Avalon bus sẽ tự động tạo các tín hiệu “Chip Select” cho tất cả các thiết bị ngoại vi, giúp cho việc thiết kế các thiết bị ngoại vi giao tiếp với Avalon bus trở nên dễ dàng hơn.
- Kiến trúc nhiều master trên một đường bus : lúc này Avalon bus sẽ tự tạo ra các khối logic với chức năng thỏa thuận, sắp xếp cho các master này.
- Khả năng cấu hình dễ dàng : bằng cách sử dụng một giao diện đồ họa dễ hiểu, người thiết kế có thể thêm vào các thiết bị ngoại vi và kiến trúc Avalon bus sẽ tự động được tạo ra dựa trên các chân tín hiệu của thiết bị ngoại vi đó.
• - Khả năng điều chỉnh kích cỡ bus động: Avalon bus tự động quản lý các dữ liệu truyền nhận giữa các thiết bị ngoại vi có kích thước dữ kiệu không trùng khớp nhau, cho phép các thiết bị ngoại vi với kích thước dữ liệu khác nhau có thể giao tiếp với nhau dễ dàng.
GVHD : PGS.TS. NGUYỄN HỮU PHƯƠNG
HV : CAO TRẦN BẢO THƯƠNG