Sau khi một bus chủ bắt ñầu một quá trình truyền, bus tớ sẽ quyết ñịnh xem quá trình truyền nên tiến hành như thế nào. Trong cấu trúc của hệ thống bus AHB không cho phép bus chủ hủy một quá trình truyền khi nó ñã diễn ra.
Khi một bus tớñược tham gia vào quá trình truyền, nó sẽ cung cấp các tín hiệu phản hồi ñể báo hiệu tình trạng hiện tại của quá trình truyền. Tín hiệu HREADY ñược sử dụng ñể mở rộng một quá trình truyền và nó hoạt ñộng kết hợp với một tín hiệu phản hồi khác (HRESP[1:0]) ñể cung cấp thêm thông tin về trạng thái của quá trình truyền. Có bốn loại phản hồi là OKAY, ERROR, RETRY, SPLIT và ñược quy ñịnh bởi tín hiệu HRESP[1:0] như ñược mô tả trong Bảng 3.
Bảng 3. Tín hiệu phản hồi truyền từ bus tớ
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.
26
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.
27
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.
28
Chương 3 Xây dựng và mô hình hoá hệ thống bus AMBA AHB