HRESP[1:0] Loại phản hồi Mô tả
00 OKAY Cùng với tín hiệu HREADY ở mức cao báo hiệu một quá trình truyền ñã hoàn tất. Ngoài ra, phản hồi này còn ñược sử dụng khi có bất kỳ
chu kỳ nào ñược chèn thêm trong lúc HREADY
ở mức thấp, trước khi gửi một trong ba phản hồi còn lại.
01 ERROR Chỉ ra một lỗi ñã phát sinh. ðiều kiện lỗi cần
ñược báo cho bus chủ ñể cảnh báo quá trình truyền ñã thất bại. Ta cần ít nhất hai chu kỳ ñể
gửi một ñiều kiện lỗi này.
10 RETRY Chỉ ra một ñịa chỉ ñã không thực hiện truyền
ñược. Bus chủ cần thử gửi lại ñịa chỉ vừa truyền lại cho ñến khi quá trình truyền hoàn tất. Phản hồi này cũng cần hai chu kỳ xung.
11 SPLIT Quá trình truyền chưa thể hoàn thành ngay. Bus chủ sẽ tiếp tục quá trình truyền ñang bỏ dở vào lần ñược phép truy cập bus tiếp theo. Phản hồi này cũng yêu cầu hai chu kỳ xung.
Một bus tớ có thể hoàn thành một quá trình truyền theo nhiều cách khác nhau:
- Hoàn tất quá trình truyền ngay lập tức.
- Thêm vào một hoặc nhiều trạng thái ñợi nhằm thêm thời gian cần thiết ñể
hoàn thành quá trình truyền.
- Báo hiệu lỗi ñể thông báo một quá trình truyền thất bại.
- Tạm hoãn sự hoàn tất của một quá trình truyền, nhưng cho phép bus chủ
và bus tớ thoát khỏi bus ñể bus có thể sẵn sàng cho những quá trình truyền khác.
Như vậy chỉ có quá trình phản hồi OKAY là ñược thực hiện trong một chu kỳ xung. Còn các quá trình phản hồi còn lại ñều cần ít nhất hai chu kỳ xung. Trong chu kỳ xung ñầu tiên, bus tớ ñưa tín hiệu HREADY về mức thấp, ñồng thời phát ra phản hồi thích hợp ñể thông báo cho bus chủ biết. Ở chu kỳ tiếp theo, bus tớ vẫn giữ nguyên tín hiệu phản hồi HRESP nhưng ñưa tín hiệu HREADY về
lại mức cao ñể thông báo quá trình phản hồi ñã hoàn tất. Việc sử dụng hai chu kỳ
xung ñể phát các phản hồi ERROR, RETRY, SPLIT là ñể bus chủ có ñủ thời gian hoãn quá trình truyền vừa thực hiện và thay ñổi lại quá trình truyền cho phù hợp với phản hồi ñược bus tớ gửi ñi.
Nếu bus tớ cần hơn hai chu kỳ xung ñể quyết ñịnh xem nên ñưa ra loại phản hồi nào thì nó cần phát phản hồi OKAY, ñồng thời ñưa HREADY về mức thấp ñể có thêm một số chu kỳñợi. Sau ñó bus tớ sẽ tiếp tục phát phản hồi thích hợp trong hai chu kỳ xung. Một phản hồi truyền ERROR có thể ñược minh họa bằng giản ñồ xung như trong Hình 17. Ta thấy sau khi phát ñi ñịa chỉ A trong pha
ñịa chỉ thì tín hiệu HREADY chuyển xuống mức thấp và phát HRESP = OKAY
ñể yêu cầu mở rộng quá trình truyền. Sau ñó bus tớ tiếp tục giữ HREADY ở mức thấp, nhưng tín hiệu HRESP chuyển thành ERROR ñể yêu cầu hủy quá trình truyền do có lỗi phát sinh. Ở chu kỳ tiếp theo, bus tớ chuyển tín hiệu HREADY lên cao nhưng vẫn giữ HRESP = ERROR ñể hoàn tất quá trình phản hồi lỗi và hủy bỏñịa chỉ của khối truyền ñã phát ñi.
Hình 17. Quá trình truyền có phản hồi truyền ERROR [1].
Một quá trình truyền với phản hồi RETRY ñược minh họa bởi giản ñồ
xung ở Hình 18. Trong quá trình truyền này, bus chủ bắt ñầu một quá trình truyền tại ñịa chỉ A. Tại chu kỳ xung tiếp theo, bus chủ truyền tiếp ñịa chỉ là A+4, nhưng dữ liệu của A chưa ñược bus tớ xử lý ngay lập tức nên bus tớ phải phát phản hồi RETRY. Ở chu kỳ xung T3, bus chủ phát ñi một quá trình ñợi với tín hiệu HTRANS là IDLE ñể huỷñịa chỉ A+4 và quay lại ñịa chỉ A trong chu kỳ
xung T4 tiếp theo.
Chương 3 Xây dựng và mô hình hoá hệ thống bus AMBA AHB
3.1. Bài toán thiết kế và mô hình ñề xuất
ðể nghiên cứu và phát triển các ứng dụng kiểu hệ thống trên chip thì việc xây dựng một nền tảng SoC (SoC platform) là rất cần thiết. Với ñịnh hướng phát triển các ứng dụng về ña phương tiện, truyền thông và giám sát môi trường, Phòng thí nghiệm SIS ñang tiến hành xây dựng một SoC với tên gọi COMOSY (Controling Monitoring System). Luận văn này tập trung vào việc nghiên cứu, thiết kế và triển khai một hệ thống bus AHB với mục ñích ñảm bảo ñược các yêu cầu về truyền thông trên chip cho hệ COMOSY, ñồng thời cũng có thể dễ dàng phát triển, mở rộng cho những mục ñích truyền thông trên chip của các dự án tương tự.
Hệ thống COMOSY là một hệ thống trên chip ñược phát triển cho các ứng dụng trong lĩnh vực ña phương tiện, giám sát môi trường và có khả năng giao tiếp với mạng máy tính chuẩn Ethernet. Hệ thống COMOSY ñược xây dựng bao gồm một vi xử lý 32 bit ñóng vai trò xử lý chính và một số lõi IP thực hiện các chức năng như: khối nhớ, khối giao tiếp ethernet, khối giao tiếp LCD, khối giao tiếp vào/ra và có thể triển khai một khối mã hóa, giải mã chuẩn ảnh JPEG hoặc tín hiệu video trong tương lai. Toàn bộ hệ thống ñược mô tả như trong Hình 19.
Hình 19. Mô hình kiến trúc hệ thống COMOSY.
Từ sơ ñồ khối hệ thống ta nhận thấy rằng số lượng bus chủ và bus tớ cần sử dụng trong hệ thống là không nhiều. Tuy nhiên, ñể ñáp ứng nhu cầu xử lý và
truyền dữ liệu với tốc ñộ cao của một hệ thống xử lý ña phương tiện thì việc truyền thông giữa các lõi IP cũng ñặt ra yêu cầu cao về tốc ñộ truyền. Chính vì vậy mà hệ thống bus AHB là một sự lựa chọn phù hợp cho vấn ñề truyền thông trên chip ñã ñược nêu ra ở trên.
ðể có thể dễ dàng tiếp cận và tìm hiểu phương thức hoạt ñộng của bus AHB, cũng nhưñể dễ dàng xây dựng nên mô hình của hệ thống nên luận văn này chỉ hướng ñến mục tiêu phát triển hai bus chủ và bốn bus tớ trong hệ thống. Tuy vậy hệ thống bus này vẫn ñược phát triển ñể có thể mở rộng hỗ trợ giao tiếp lên
ñến 16 bus chủ và 16 bus tớ, cũng như có thể giao tiếp ñược với nhiều loại lõi IP khác nhau mà không cần phải thay ñổi nhiều về cấu trúc.
Hệ thống sau khi ñược thiết kế và mô hình hoá sẽ ñược xây dựng bằng ngôn ngữ mô tả phần cứng VHDL ở mức truyền thanh ghi (RTL). Việc xây dựng mô hình hệ thống bus ở mức trừu tượng này không chỉ ñể tiến hành kiểm tra,
ñánh giá hoạt ñộng của hệ thống mà còn giúp cho việc tổng hợp phần cứng ñược tiến hành dễ dàng hơn về sau này.
Qua các phân tích, ñánh giá như trên, luận văn ñề xuất mô hình kiến trúc của hệ thống bus AHB cần ñược xây dựng như sau (xem Hình 20):
- Hệ thống sẽ bao gồm 2 bus chủ: bus chủ thứ nhất (M1) và bus chủ thứ hai (M2). Trong hệ thống, bus chủ M2 sẽ kiêm cả vai trò bus chủ mặc ñịnh. Bus chủ M2 cũng sẽ có mức ưu tiên thấp hơn bus chủ M1 trong quá trình phân quyền ưu tiên.
- Hệ thống bao gồm 4 bus tớ (ký hiệu lần lượt là: S1, S2, S3, S4), trong ñó có bus tớ S1 có hỗ trợ truyền SPLIT. Hệ thống sẽ sử dụng hết 32 bit ñịa chỉ trong bản ñồ ñịa chỉ nên không cần sử dụng ñến bus tớ mặc ñịnh. - ðộ rộng bus của hệ thống ñược giữ cốñịnh là 32 bit, phù hợp với ñộ rộng
bus của vi xử lý trung tâm ñược sử dụng trong hệ thống COMOSY.
- Bus tớ ngoài các tín hiệu mặc ñịnh theo mô tả kỹ thuật của bus AMBA AHB thì ñược ñưa thêm một tín hiệu gọi là HREADY_in. Tín hiệu này
ñược lấy từ ñầu ra của bộ phân kênh tín hiệu từ bus tớ tới bus chủ, mục
ñích là ñể bus tớ giám sát ñược quá trình truyền ñang diễn ra và biết ñược lúc nào ñược tham gia vào quá trình truyền dữ liệu.
- Các bộ phân kênh tín hiệu sẽñược triển khai ñộc lập với bộ phân xử bus và bộ giải mã ñịa chỉ. Việc triển khai này có nhược ñiểm là tăng thêm số
lượng các tín hiệu trong hệ thống, nhưng ưu ñiểm là làm cho việc quản lý từng thành phần trong hệ thống ñược dễ dàng hơn, cũng như giúp việc tăng thêm số lượng các bus chủ và bus tớ sẽ ñơn giản hơn mà không cần
phải thay ñổi lại cấu trúc của bộ phân xử bus và bộ giải mã ñịa chỉ. ðộ
phức tạp khi triển khai bộ phân xử và bộ giải mã ñịa chỉñộc lập với các bộ
phân kênh cũng sẽ giảm ñi ñáng kể so với việc tích hợp chung các thành phần này với nhau.
- Bộ phân xử bus vừa thực hiện việc phân quyền truy cập cho các bus chủ,
ñồng thời ñiều khiển các bộ phân kênh tín hiệu ñể ñảm bảo quá trình chuyển giao tín hiệu ñịa chỉ, ñiều khiển và cũng như tín hiệu dữ liệu ñược thực hiện một cách chính xác. Vì vậy, ngoài tín hiệu HMASTER[3:0]
ñược sử dụng ñể báo sốñịnh danh của bus chủñang sở hữu bus ñồng thời
ñược sử dụng ñể ñiều khiển bộ phân kênh tín hiệu ñịa chỉ và ñiều khiển, bộ phân xử ñược ñưa thêm hai tín hiệu là MUX_DATA_CTR[3:0] và MUX_S2M ñể ñiều khiển các bộ phân kênh cho các bus tín hiệu ghi và
ñọc dữ liệu.
- ðể việc giao tiếp giữa các lõi IP với hệ thống bus ñược dễ dàng, ñồng thời
ñáp ứng ñược yêu cầu là hệ thống bus phải có khả năng giao tiếp với nhiều loại lõi IP khác nhau, luận văn này ñề xuất ñưa thêm các tín hiệu giao tiếp bắt tay vào trong hệ thống. ðiều này giúp cho hệ thống bus AHB
ñược ñộc lập với lõi IP và khi tích hợp lõi IP với hệ thống bus thì không cần phải sửa lại cấu trúc của hệ thống. Các tín hiệu bắt tay này bao gồm: tín hiệu yêu cầu, tín hiệu hồi ñáp, các tín hiệu về ñịa chỉ và dữ liệu… ñể
giúp lõi IP có thể bắt tay và trao ñổi dữ liệu với bus chủ, bus tớ. Các tín hiệu này sẽñược mô tả cụ thể trong các phần sau.
Hình 20. Mô hình của hệ thống bus AHB ñược ñề xuất.
Trong mô hình này, bộ xử lý bus ñóng vai trò ñầu não của hệ thống và quyết ñịnh hiệu năng làm việc của hệ thống trong từng ứng dụng cụ thể. Mô hình phân quyền của bộ phân xử bus với các mức ưu tiên khác nhau sẽ ñược mô tả
như trong phân mục 3.1.1 dưới ñây.
3.1.1. Mô hình phân quyn ca b phân x bus
Do hệ thống bus ñược xây dựng chỉ bao gồm hai bus chủ và hệ thống có hỗ trợ truyền RETRY và SPLIT nên mô hình phân quyền của bộ phân xử cũng
ñược thiết kế theo mục tiêu phân quyền ưu tiên giữa hai bus chủ, ñồng thời giám sát quá trình truyền ñể thay ñổi thứ tự ưu tiên của hệ thống khi có một yêu cầu RETRY hoặc SPLIT từ bus tớ.
Mô hình phân quyền của bộ phân xử ñược xây dựng theo những nguyên tắc sau:
- Bus chủ M1 sẽ có mức ưu tiên cao hơn, nên khi có hai yêu cầu truy cập bus ñồng thời thì bus chủ M1 sẽñược ưu tiên truy cập trước.
- Nếu cả hai bus chủ không yêu cầu truy cập thì bộ phân xử sẽ cấp quyền truy cập cho bus chủ M2 và cũng là bus chủ mặc ñịnh.
- Khi một trong hai bus chủ ñang thực hiện quá trình truyền khối thì bus chủ kia chỉ ñược tái truy cập bus sau khi quá trình truyền khối ñã kết thúc cho dù bus chủñó có quyền ưu tiên cao hơn. Một bus chủ chỉ có thể ñược truy cập bus vào giữa một quá trình truyền khối khi quá trình truyền ñó có một yêu cầu RETRY hoặc SPLIT.
- Nếu bus chủ M1 ñang thực hiện truyền khối và có một yêu cầu RETRY thì mức ưu tiên truy cập của hệ thống là không thay ñổi. Bus chủ M1 vẫn giữ quyền truy cập bus và thực hiện việc truyền lại ñịa chỉ vừa phát ra. Tuy nhiên, nếu bus chủ M2 ñang thực hiện một quá trình truyền khối và cũng bị yêu cầu RETRY từ bus tớ thì nó có thể phải trả lại quyền truy cập cho bus chủ M1 nếu bus chủ này ñang yêu cầu ñược truy cập bus.
- Nếu một trong hai bus chủ ñang thực hiện truyền khối và có yêu cầu SPLIT từ bus tớ thì lúc này quyền truy cập bus sẽ ñược chuyển cho bus chủ kia. Nếu sau yêu cầu SPLIT mà không có bus chủ nào muốn thực hiện một quá trình truyền thì bộ phân xử sẽ chuyển quyền truy cập cho bus chủ
mặc ñịnh (M2).
Bên cạnh mô hình phân quyền vừa ñược ñề xuất như ở trên thì vẫn còn tồn tại nhiều thuật toán khác ñể phân quyền ưu tiên trong hệ thống bus AHB. Việc sử dụng các thuật toán phân quyền khác nhau sẽảnh hưởng khác nhau ñến hiệu năng của hệ thống. Do ñó việc xây dựng các thuật toán phân quyền và ñánh giá hiệu suất hệ thống giữa các mô hình ñó là một trong những hướng phát triển quan trọng tiếp theo của luận văn này.
Ngoài việc ñề xuất ra mô hình phân quyền bus cho riêng hệ thống vừa
ñược thiết kế, luận văn này còn ñề xuất xây dựng một giao diện ghép nối giữa bus chủ và bus tớ với các lõi IP ñể cho phép phát triển hệ thống bus hoàn toàn
ñộc lập với các lõi IP (nhưñã ñược trình bày trước trong phần ñặc tả hệ thống). Vì vậy các phần tiếp theo sẽ trình bày cụ thể về các tín hiệu bắt tay giữa bus chủ, bus tớ và các lõi IP.
3.1.2. Mô hình giao tip gia bus ch và lõi IP
ðể thực hiện việc bắt tay giữa bus chủ và lõi IP, sau khi tham khảo chuẩn giao tiếp mở của OpenCore [12], luận văn này ñề xuất giao diện ghép nối giữa bus chủ và lõi IP ñược mô tả nhưở Hình 21. ðiểm tương ñồng giữa các tín hiệu giao tiếp này với chuẩn của OpenCore là có sử dụng các tín hiệu ñể yêu cầu và chấp nhận (IP_REQ và MAS_ACK) ñể thực hiện quá trình bắt tay. Tín hiệu về
quá trình truyền cần thực hiện (REQ_DATA) và tín hiệu thông báo trạng thái thành công của quá trình truyền (Valid_W và Ready_R) cũng hoạt ñộng tương tự
như với chuẩn của OpenCore. Bên cạnh ñó, luận văn ñề xuất ñưa thêm các tín hiệu phản hồi từ bus chủ (Ready_IP và ERROR), ñồng thời tách bus dữ liệu ra thành bus ñọc và bus ghi ñể phù hợp với hệ thống bus AHB. Các tín hiệu giao tiếp này ñược mô tả chi tiết như sau.
Hình 21. Tín hiệu bắt tay giữa bus chủ và lõi IP.
ðể yêu cầu một quá trình truyền trên hệ thống bus, lõi IP sẽ gửi tín hiệu yêu cầu IP_REQ và dữ liệu về quá trình trình truyền cần thực hiện