Bài toán thiết kế và mô hình ñề xu ất

Một phần của tài liệu Nghiên cứu, thiết kế và thực hiện bus truyền thông tốc độ cao AMBA AHB (Trang 34)

ðể 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à

29

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

30

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.

31

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

32

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. (adsbygoogle = window.adsbygoogle || []).push({});

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.

33

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 REQ_DATA[3:0] ñến bus chủ. Bus chủ sẽ xử lý các tín hiệu và gửi ñi yêu cầu truy cập cũng như thông tin về quá trình truyền cần thực hiện. Khi bus chủñược bộ phân xử cấp quyền truy cập bus thì nó sẽ phản hồi cho lõi IP biết thông qua tín hiệu MAS_ACK.

Sau khi ñược bus chủ ñược phép sử dụng bus, lõi IP sẽ cung cấp các tín hiệu ñịa chỉ HADDRip và tín hiệu thông báo quá trình là quá trình ñọc hoặc ghi dữ liệu HWRITEip. Các dữ liệu của quá trình ñọc hoặc ghi sẽñược lõi IP truyền cho bus chủ thông qua bus ñọc dữ liệu HRDATAip hoặc bus ghi dữ liệu HWDATAip. Các dữ liệu này sẽñược ñưa lên bus chủ cũng lúc với tín hiệu ñịa chỉ HADDRip. Việc xử lý quá trình truyền sau ñó sẽ ñược bus chủ ñảm trách.

34

Trong quá trình truyền, lõi IP có thể thông báo cho bus chủ biết dữ liệu ghi ñã ñược sẵn sàng hay chưa thông qua tín hiệu Valid_W, cũng như thông báo dữ liệu ñã ñọc thành công thông qua tín hiệu Ready_R. Ngược lại, bus chủ cũng có thể thông báo lại cho lõi IP biết về tình trạng của quá trình truyền thông qua các tín hiệu Ready_IP và ERROR. Hoạt ñộng của các tín hiệu này sẽ ñược mô tả cụ thể trong phần mô tả tín hiệu của bus chủ (3.2.1).

3.1.3. Mô hình giao tip gia bus t và lõi IP

Các tín hiệu giao tiếp bắt tay giữa bus tớ và lõi IP cũng ñược ñề xuất tương tự như với các tín hiệu bắt tay của bus chủ. Các tín hiệu này cũng ñược mô tả cụ thể trong Hình 22.

Hình 22. Tín hiệu bắt tay giữa bus tớ và lõi IP.

Khi bus tớ ñược chọn ñể tham gia vào một quá trình truyền, nó sẽ thông báo cho lõi IP biết thông qua tín hiệu yêu cầu SL_REQ. Bus tớ cũng sẽ cung cấp tín hiệu hướng truyền (quá trình ñọc hoặc ghi) thông qua tín hiệu HWRITEip và tín hiệu ñịa chỉ HADDRip. Lõi IP sẽ thông báo tình trạng sẵn sàng truyền dữ liệu thông qua tín hiệu IP_OKAY. Các tín hiệu dữ liệu ñọc và dữ liệu ghi sẽ ñược truyền thông qua bus HRDATAip và HWDATAip.

Trong quá trình truyền, lõi IP có thể tạm ngừng việc ñọc hoặc ghi dữ liệu ñể có thêm thời gian xử lý thông qua các tín hiệu IP_OKAY, IP_RETRY hoặc IP_SPLIT. Tín hiệu IP_ERROR ñược lõi IP sử dụng ñể thông báo cho bus tớ biết một quá trình ñọc hoặc ghi ñã thất bại. Bus tớ cũng sẽ thông báo cho lõi IP biết trạng thái bận của hệ thống thông qua tín hiệu SL_Ready. Hoạt ñộng của các tín hiệu bắt tay này cũng sẽ ñược ñề cập một cách cụ thểở phần mô tả tín hiệu của bus tớ (3.3.1).

35

Một phần của tài liệu Nghiên cứu, thiết kế và thực hiện bus truyền thông tốc độ cao AMBA AHB (Trang 34)