Chương 4 THIẾT KẾ VÀ CÀI ĐẶT CÁC HỆ THỐNG NHÚ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
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 H W /S W fir m w ar e
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ỡnh4.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.
Hỡnh4.9 Qui trỡnh thiết kế kiểu ASIC