4.1 THIẾT KẾ HỆ THỐNG
4.1.2 Phân hoạch thiết kế phần cứng, phần mềm
Tổng quan: Các HTN phản ứng thời gian thực (reactive real-time), hoạt động với cường độ cao, là các hệ thống hổn hợp phần cứng và phần mềm, sử dụng các bộ vi xử lí, vi điều khiển, xử lí tín hiệu (DSP), trong đó phần mềm hổ trợ tính mềm dẻo linh hoạt, phần cứng phải đảm bảo tính hiệu năng cao. Từ đó cho thấy thiết kế các HTN là đối mặt với các thách thức như: đáp ứng thời gian (cứng hay mềm) của hệ thống với các sự kiện, kích thước, trọng lượng, tiêu thụ năng lượng, độ tin cậy, giá thành.
Các phương pháp hiện dùng bao gồm việc đặc tả và thiết kế phần mềm và phần cứng tách rời.
Một đặc tả thiết kế thường là chưa hoàn hảo, được viết bởi ngôn ngữ nào đó và chuyển cho cácc kỉ sư phần cứng và phần mềm. Việc phân hoạch phần cứng-phần mềm cần được lưu tâm trước tiên và được chấp nhận, tôn trọng, vì bất kì sự thay đổi nào ở quá trình này sẽ dẫn tới các thay đổi khác và làm cho quá trình thiết kế sẽ kéo dài. Các nhà thiết kế phải nổ lực rất nhiều để mọi thứ có thể chuyển vào phần mềm, chỉ chuyển một phần của thiết kế cho phần cứng nhằm đảm bảo thỏa mãn các tiêu chí về thời gian phản ứng của hệ thống. Vấn đề ở đây có thể là:
§ Chưa đầy đủ các đặc tả phần cứng và phần mềm, nên khó kiểm chứng tổng thể hệ thống, do đó dẫn đến sự không tương thích khi tiếp cận ranh giới giữa phần cứng và phần mềm.
§ Các phát thảo ban đầu sẽ kéo theo các phát thảo (bổ sung/tuỳ chọn) khác bên dưới.
§ Sự chận trể chưa có một lưu trình thiết kế hoàn hảo sẽ gây khó khăn cho việc sử đổi và tác động tới thời điểm đưa sản phẩm ra thị trường.
Có nhiều cách tiếp cận để giải quyết vấn đề thiết kế HTN, tuy nhiên không có cách nào có thể thỏa mãn và đạt hiệu quả như mong muốn. Dưới đây sẽ trình bày một số tiếp cận khi thiết kế một HTN.
Thiết kế HTN là kết hợp giải quyết một hệ thống đầu cuối bao gồm cả phần cứng và phần mềm. Do đó cần có những quyết định phần nào của thiết kế sẽ được giải quyết ở phần cứng và phần nào ở phần mềm để có được một hệ thống với những đặc điểm chuyên biệt (thiên về hiệu năng), khác với các máy tính thông thường. Có những xử lý phần mềm lại phải cứng hóa (gọi là được silicon hóa) mà kết quả là hiệu năng tính toán nâng cao. Ví dụ trước đây, CPU 286/386 khi không có vi chip FPU 387, mọi phép tính dấu phẩy động phải chạy bằng tập lệnh mềm, do đó
234
nhiều phần mềm cao cấp không hoạt động được (AutoCAD chẳng hạn). Cách lựa chọn thiết kế như vậy gọi là sự phân hoạch thiết kế.
Nếu tổng quát hóa khái niệm giải thuật thành các bước để thực thi một thiết kế, thì giải thuật như một kết hợp của các thành phần mần cứng và thành phần phần mềm, và mỗi phần của phân hoạch cứng/mềm đó sẽ thực thi một giải thuật. Tất nhiên có thể áp dụng giải thuật thuần mềm (CPU không có FPU), hay thuần cứng hoặc kết hợp cả 2 (ví dụ như vĩ đồ họa máy tính).
Ví dụ: Giải thuật thiết kế máy in laser:
Hình 4.6 Giải thuật thiết kế máy in laser: phân hoạch cứng/mềm
Dữ liệu nhận vào từ cổng LPT, CPU phải chuyển đổi thành xâu nối tiếp để làm đầu vào điều chế tia laser, quay các gương chiếu tia, quay trống in, phát tiển ảnh in lên giấy, đốt mực sấy khô bản in, … Kết quả mất công suất in 5-7 trang /phút. Tăng tốc in ? Tăng cường thêm CPU … Giải pháp như vậy là tối ưu ? Tuy nhiên khi phân tích giải pháp thiết kế một cách sâu hơn, có thể biểu diễn thiết kế như một giải thuật ở đó có những tác vụ có thể cứng hóa, ví dụ cứng hóa khối chức năng ghi laser lên các phần tử nhạy ánh sáng trên bề mặt trống in, giải phóng CPU khỏi tác vụ này như trước đó đã làm. Tất nhiên phần khó sẽ là cần phần cứng rất tin cậy và bền vững, một vi mạch kiểu ASIC (Application-Specific Integrated Circuit- kiểu vi mạch được thiết kế dành cho một ứng dụng cụ thể) sẽ xuất hiện. Tuy nhiên ASIC sẽ làm tăng sự phức hợp hệ thống thiết kế. Do vậy nhóm phần mềm sẽ phải nỗ lực và hiệu chỉnh phần mềm rất tỉ mỉ, sao cho thêm phần cứng nhưng không quá phức tạp và đắt đỏ, làm giá thành tăng thêm.
235 Sơ đồ phân hoạch thiết kế cứng và mềm:
236
Hình 4.7 Phân hoạch thiết kế phần cứng và phần mềm
§ Cần có sự tương tác ở pha phân hoạch cứng/mềm ở hai nhóm thiết kế: Tuy đã hình thành các khối chức năng cứng/mềm rõ ràng, nhưng khi ranh giới vẫn chưa thể khẳng định khi các thách thức chưa được đưa vào thiết kế. Các công cụ thiết kế phần cứng (ICE, Simulation, … ) sẽ cho thấy có thể cải thiện phần cứng khi kết hợp với phần mềm, trong khi phần mềm chạy thử bằng mô phỏng trên phần cứng để đánh giá tốc độ xử lý. Nói cách khác hai nhóm thiết kế cứng/mềm cần tương tác với nhau để bổ sung cho thiết kế cuối cùng. Bo mạch sản phẩm là bo mạch đích tuy nhiên vẫn chưa là bo mạch thực chế tạo. Quá trình tương tác sẽ lặp lại cho tới khi các chỉ tiêu sản phẩm chấp nhận được, trước khi tiến
Đặc tả Hệ thống (Specification)
Ý đồ phát triển ban đầu (concept)
Ý đồ phát triển chi tiết Viết mã (coding)
Chạy thử (test)
Hợp nhất phần cứng - phần mềm
Đánh giá, phê chuẩn sản phẩm
Ý đồ thiết kế chi tiết
Thực hiện phần cứng
Thử nghiệm phần cứng TĐKTB
Viết mã chéo Phát triển phần
mềm
Phát triển phần cứng
Thử nghiệm
Tương tác HW/SW
firmware
237
hành làm sản phẩm mẫu thực. Các công nghệ thiết kế ngày nay tạo điều kiện để hai nhóm thiết kế làm việc với nhau chặt chẽ và tiết kiệm nhiều thời gian, hạn chế tối đa các rủi ro cho tới khi chế tạo sản phẩm.
§ Khi nào thì quyết định phân hoạch cứng/mềm ? Khi đã phân tích hầu hết (hay tất cả) các giải pháp trình bày giải thuật thiết kế. Từ đó sẽ thấy phần nào của giải thuật sẽ nằm ở phần cứng, phần nào ở phần mềm, là tối ưu. Một số qui tắc có thể dùng để cân nhắc: Tăng tốc độ xử lý, có thể đáp ứng bằng phần cứng, nhưng tăng giá thành, và đôi khi phải thiết kế lại chip xử lý ! Phần mềm có thể chủ động bằng mô phỏng, không chờ đợi có phần cứng hoành chỉnh mới thử nghiệm, viết code thật hợp lí cũng sẽ giảm chi phí phần cứng. Dù sao thì phần cứng cũng có những lối thoát, đó là sự lựa chọn các bộ xử lý để đưa vào thiết kế (hay dùng ASIC, rồi đi đến hệ thống trên chip (System on Chip-SoC). Phần còn lại là thiết kế bo mạch tổng thể, “code” hóa một số xử lý phần cứng thành phần mềm sụn (firmware).
§ Kết hợp phần cứng/phần mềm. Hiện nay các sản phẩm thương mại được phát triển theo kĩ thuật “đồng thiết kế phần cứng và phần mềm-đồng kiểm nghiệm” (Hardware/software co- design and co-verification). Nếu theo thiết kế truyền thống sau khi làm phân hoạch các phần thiết kế thực hiện tương đối độc lập, thời gian phản hồi-hiệu chỉnh ở cả phần cứng và phần mềm sẽ lâu, do vậy chi phí nhiều thời gian hơn cho sản phẩm cuối cùng. Ngày nay một qui trình thiết kế mới đã phát triển, trong đó thiết kế phần cứng và phần mềm tiến hành song song, các phản hồi-hiệu chỉnh thực hiện liên tục, cho tới khi có kết quả tốt nhất qua đồng kiểm nghiệm. Trong công nghệ này phần cứng được trình diễn bởi ngôn ngữ mô tả phần cứng (VHDL-very-high speed integrated circuit hardware description language ) và đó là phần cứng ảo để phần mềm hoạt động. Như vật quá trình thiết kế có thể “mềm hóa”
và sự kết hợp hài hòa là rất rõ ràng.
238
Hình 4.8 Đồng thiết kế phần cứng và phần mềm-đồng kiểm nghiệm, tối ưuthiết kế
Ví dụ kĩ thuật thiết kế ASIC: là cuộc cách mạng trong thiết kế các HTN. Sản phẩm ASIC có thể tìm thấy, như các Chipset trong PC, chip xử lý âm thanh, tăng tốc đồ họa, chip cho MODEM, … Quá trình thiết kế có tên là biên dịch bán dẫn (silicon compilation), trong đó phần cứng và phần mềm được biểu diễn bởi các tệp dữ liệu của ngôn ngữ thiết kế cao cấp.
Như vậy HTN sẽ được đặc tả như một cơ sở dữ liệu mềm (software database): một phần mô tả kiến trúc phần cứng, một phần mô tả cách điều khiển hoạt động của phần cứng. Ở
239
đây sự phân biệt giữa phần cứng và phần mềm có vẽ mập mờ: thiết kế phần cứng lại như là thiết kế phần mềm.