Tải bản đầy đủ (.pdf) (98 trang)

Tài liệu Hardware và software doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (560.67 KB, 98 trang )

http:// www.diachiweb.com

Trang Chủ Mục Lục
1. GIỚI THIỆU CHUNG:
Trong phạm vi của bảng báo cáo này chúng tôi sẽ trình bày việc thiết kế mức hệ thống gắn
với việc trộn lẫn thành phần hardware và software .Trọng tâm là bốn vấn đề chính :việc phân
chia ,tổng hợp ,mô phỏng và phương pháp thiết kế .trong thiết kế mức hệ thống những ứng dụng
được đại diện như môït đồ thò công việc ,mà những công việc gọi là những node ,và mổi node
thì có vài cách để lựa chọn hiện thực khác nhau tùy thuộc vào không gian nó chiếm và thời gian
thực thi .Vấn đề phân chia là việc xác đònh một node được ánh xạ sang hardware hay software .
Phương pháp tổng hợp tạo ra mô tả tổng hợp của thành phần hardware và software thông
qua việc sử dụng các công cụ có sẳn như là :PTOLEMY và HYPER tổng hợp tạo thành
hardware và software .
Mô phỏng giử vai trò quan trọng trong thiết kế mức hệ thống .Ở cấp độ đặc tả ,nó cho
phép mô phỏng các mô hình .Các công cụ cho phép mô phỏng các đặc tả tổng hợp đã yêu cầu
.Ở cấp hiện thực những công cụ mô phỏng hổ trợ cho việc trộn lẫn hệ thống hardware và
software .
Thiết kế hệ thống bao gồm cả hai thành phần hardware và software không phải là vấn
đề mới .Trong hướng thiết kế truyền thống thì phần cứng được thiết kế và tạo mẫu trước các
thành phần software được thiết kế sau đó .Việc thiết kế hardware và software riêng rẽ gặp phải
khó khăn trong việc tối ưu thiết kế hệ thống .Hướng thiết kế như vậy không tương xứng khi thiết
kế những hệ thống có yêu cầu hiệu quả một cách khắt khe và thời gian thiết kế nhỏ ,hướng
thiết kế chung (codesign) cho phép thiết kế những hệ thống có yêu cầu như vậy .Nguyên lý chủ
yếu trong thiết kế chung là tránh sự cô lập giửa hardware và software ,chiến lược thiết kế
chung cho phép thiết kế hardware ,software một cách song song với sự ảnh hưởng qua lại thông
tin phản hồi của tiến trình thiết kế hardware và software .Điều này được hoàn thành nhờ những
công cụ và những phương pháp hổ trợ chặt chẽ trong việc thiết kế cả hai software và hardware
thông qua khung làm việc thống nhất (unified framework) .Kết quả của việc thiết kế chung
hardware và software là đạt được những thiết kế chất lượng cao và giảm được thời gian thiết
kế.


















http:// www.diachiweb.com






Một sơ đồ khối cho thiết kế chung (hình 1)



































(hình 1) Lưu đồ thiết kế chung
·

Đánh giá:(estimation)
Công cụ đánh giá (estimation tool) tạo ra ước lượng cho việc hiện thực (không gian và thời gian
yêu cầu )cho mỗi node trong đồ thò khi hiện thực trong hardware và software .Những việc đánh
giá nầy sẽ là input cho công cụ phân chia (partitioning tool).
Đặc tả (design specification)
Những ràng buộc
(design constraints)
Nhập dữ liệu
(user input)




Manual
CPLEX (ILP)
MIBS












PTOLEMY



Đánh giá không gian thời gian
(area time estimation)
Phân chia hardware ,software
(hw/sw partitioning)
Tổng hợp hardware
(hardware synthesis
Tổng hợp giao
diện(interface
synthesis)
Sơ đồ nối dây
(netlist generation)
Tổng hợp software
(software synthesis)
Mô phỏng
(simulation)
Hệ thống tổng hợp (synthesized system)
(layout +software )
http:// www.diachiweb.com

· Phân chia (partitioning) :
Sau khi thu được các đánh giá về không gian và thời gian ,bước kế tiếp trong lưu đồ thiết kế
chung là phân chia .kết quả của việa phân chia là dẫn đến việc xác đònh công việc gồm 3 thông
số
·
nh xạ công việc (task) đó thực hiện bằng hardware hay software
· Quan hệ giửa các task khi nó thực thi
·
Hiện thực (chọn lựa cách hiện thực chú ý đến giải thuật ,sự biến đổi
(transformation),giá trò không gian ,thời gian ) .

Khung làm việc trợ giúp thiết kế (design assistant framework) cho phép user thực nghiệm với
những công cụ phân chia khác nhau :bằng tay , giải pháp ILP (CPLEX) , hay kinh nghiệm
(heuristic MIBS) .
Việc phân chia là vấn đề không phải dễ dàng .Xem xét đến đặc tả mức công việc điển hình có
từ 50 đến 100 node . Mỗi task có thể ánh xạ hoặc hardware ,software ,hơn thế nữa trong mỗi
công việc có vài cách lựa chọn để hiện thực .
· Tổng hợp chung (cosynthesis)
Một ứng dụng được phân chia vào hardware và software ,những thành phần riêng rẽ
software ,hardware ,giao diện phải được tổng hợp lại .Công cụ tổng hợp đặc thù phụ thuộc
vào công nghệ mong muốn.Công cụ tổng hợp hardware gồm SILAGE, VHDL, công cụ tổng
hợp software thường dùng C , Assembly . Việc phát sinh giao diện phụ thuộc vào mô hình
kiến trúc mong muốn
· Mô phỏng chung (cosimulation):
Các thành phần software ,hardware ,giao diện đã tổng hợp ,bước tiếp theo là mô phỏng hệ
thống nhờ môi trường mô phỏng PLOTEMY
·
Kiến trúc đích (target architecture) :











(hình 2) KIẾN TRÚC ĐÍCH
The hardware bao gồm những thành phần có sẵn hoặc phải chế tạo thêm, và software là những

chương trình chạy trên những thành phần lập trình được .Giao diện hardware ,software bao gồm
nối kết logic và điều khiển phụ thuộc vào cơ chế truyền nhận dữ liệu được chon .
2.PARTITIONING :
Trong phần nầy chúng ta tập trung nghiên cứu vấn đề phân chia hardware hay software
cho các ứng dụng về hệ thống thời gian thực .Giả sử ta có một đặc tả ứng dụng được biểu diển
bằng đồ thò SDF (synchronous data flow) ,SDF nầy chuyển thành DAG (directed acycle graph)
,DAG nầy là input cho công cụ phân chia (partitioning tool).
Address bus







Data bus Control bus
Processor core
Hardware
modul
Hardware
modul

Hardware
modul

Controller
http:// www.diachiweb.com

Có hai giai đoạn để phân chia :Phân chia nhò phân (binary partitioning ) ,phân chia mở
rộng (extended partitioning)

Phân chia nhò phân:là ánh xạ mỗi node của DAG sang hardware hay software và xác
đònh thứ tự cho mỗi node .
Phân chia mở rộng :Vấn đề phân chia software ,hardware không chỉ là việc ánh xạ sang
software hay hardware mà trong mỗi node còn có vấn đề sử dụng những gi thuật và các bộ
phận tổng hợp khác nhau .Những hiện thực nầy khác nhau về đặc trưng trong không gian và
thời gian trể riêng ,những tính chất nầy của node được gọi là “implementation bins”.Việc phân
chia mở rộng là kết nối vấn đề ánh xạ một node sang hardware hay software trong DAG với
việc lựa chọn một implementation bins thích hợp .
Việc phân chia nói chung là vấn đề khó .Những thông số thiết kế có thể thường được sử
dụng làm thành công thức dưới dạng vấn đề tối ưu số nguyên .Việc lập thành công thức chính
xác là khó do vậy phải dùng một số kết quả heuristic để làm giảm thời gian.
Tóm lại vấn đề phân chia mở rộng và phân chia nhò phân được xác đòng như sau

Binary
partitioning



Extended
partitioning +

3 .Tổng hợp chung :
Trong chương trước giải thuật phân chia các node của ứng dụng sang hardware ,software đã
được mô tả .Việc phân chia tạo thành 3 thuộc tính cho một node :ánh xạ sang hardware hay
software ,kiểu hiện thực cho ánh xạ nầy và thứ tự .
Bước tiếp theo trong quá trình thiết kế là tổng hợp hệ thống trộn lẫn hardware ,software
.Vấn đề tổng hợp là tổng hợp hardware ,software và các thành phần giao diện trong hiện thực
cuối cùng .
Mô phỏng hardware ,software ,là quá trình mô phỏng những thành phần hardware
,software của hệ thống ,trộn hardware ,software bên trong một môi trường thống nhất .Điều nầy

bao gồm mô phỏng của những modun hardware ,bộ xử lý ,và software được bộ xử lý thực thi
.Những yêu cầu của một môi trường mô phỏng là tạo ra phác thảo .PTOLEMY có đầy đủ công
cụ nó hổ trợ hầu hết những yêu cầu nầy .
4.Mô phỏng chung :
Mô phỏng hardware ,software là quá trình của thực hiện mô phỏng các thành phần
hardware ,software của một hệ thống đã được trộn lẫn (tổng hợp ) hardware ,software bên trong
một môi trường đồng nhất . Điều nầy bao gồm sự mô phỏng các mun hardware ,bộ xử lý và
software mà bộ xử lý sẽ thực thi .
Các hướng có thể bao gồm
4.1.Mô hình chi tiết của bộ xử lý :
Hardware /Software mapping and scheduling
Hardware /Software mapping and scheduling
implementtation bin selection
http:// www.diachiweb.com

Nguyên tắc chung là những thành phần của bộ xử lý có thể sử dụng mô hình những sự kiện
rời rạc của kiến trúc hardware bên trong như (đường dữ liệu ,giải mã lệnh ,bus,…) mà software
sẽ kết nối và thực thi trên nó . Thường dùng VHDL hay VERYLOG để mô phỏng
4.2. Mô hình bus:
Đây là những sự kiện hoạt động trên ngoại vi của bộ xử lý không kết hợp thực thi software
với bộ xử lý . Điều nầy có ích cho việc kiểm tra ảnh hưởng qua lại ở mức thấp như bus và bộ
nhớ nhưng khó khăn cho bảo đảm chính xác mô hình hoạt động trên ngoại vi ,cũng khó khăn
cho mô phỏng ảnh hưởng qua lại hardware ,software .
4.3.Mô hình kiến trúc tập lệnh :
Kiến trúc tập lệnh có thể mô phỏng hiệu quả bằng chương trình C .Chương trình C là một bộ
phận thông dòch cho software . Nó cập nhật trạng thái của bộ xử lý và phát sinh sự kiện đến mô
hình hoạt động ngoại vi của bộ xử lý .
4.4.Mô phỏng dòch :
Nguyên tắc chung là chuyển đặc tả software gắn với sự thực thi sang code tự nhiên để
processor làm việc mô phỏng

4.5. Mô hình hardware :
Nếu bộ xử lý tồn tại trong hình thức hardware thì hardware vật lý có thể dùng để mô hình
hoá procesor trong mô phỏng . Có thể dùng FPGA prototype để mô hình hoá processor .
Môi trường PTOLEMY là một môi trường mô phỏng kiểu mẫu được phát triển bởi nhóm
DSP ở đại học BERKELEY California . PTOLEMY là môi trường duy nhất có khả năng trợ
giúp trong việc mô phỏng chung hệ thống trộn lẫn hardware ,software .Môi trường nầy không
những có khả năng mô phỏng mà còn tổng hợp hệ thống .
4.6 Một trường hợp nghiên cứu thiết kế trong môi trường Ptolemy:
Phần nầy mô phỏng thiết kế một kênh điện thoại chọn cho trường hợp nghiên cứu nầy sử
dụng môi trường Ptolemy cho thiết kế chung trộn lẫn phần cứng ,phần mềm .
4.6.1 Mô phỏng kênh điện thoại :
Đồ thò dòng chảy tín hiệu của kênh điện thoại được trình bày ở hình 20 , việc mô phỏng
được thiết kế dùng Motorola DSP 56000s cho hầu hết xử lý tín hiệu . Mô hình phần cứng của hệ
thống yêu cầu theo mẫu bên cạnh DSPs , cũng như thành phần các kết nối logic .
4.6.2 Lựa chọn test case :
Ở đây ta mô phỏng kênh điện thoại được trình bày ở hình 20 ,nó đại diện cho một hệ
thống thực và thực hiện bằng thiết kế chung ,đầu tư và giá sản phẩm thấp , thời gian đưa ra thò
trường cũng giảm xuống việc thiết kế và mô phỏng bên trong môi trường Ptolemy .
4.6.3 Giới thiệu bên trong môi trường Ptolemy :
Hình 21 trình bày những thành phần cấu trúc của Plotemy . Đơn vò cơ sở của Plotemy là
block những portholes cung cấp giao tiếp chuẩn để thông tin giữa các block . Một block gồm
một mun của code (“go()” method) nó gửi dữ liệu khi chạy , dữ liệu được gửi đến đầu vào
của các portholes và phát sinh dữ liệu gửi ra ở đầu ra của portholes . Phương pháp “go() “ được
điều khiển bởi liệt kê các đònh nghóa ngữ nghỉa các mạng của block , truyền dẫn các block
dùng những dòng gọi là particle . Lớp đo lường Geodesic được thiết lập để liên kết giữa các
portholes . lớp plasma quản trò các particles .
Cấp thấp nhất trong Plotemy là kiểu star trong block . Một nhóm (galaxy) cũng tìm được
từ một block , một galaxy có thể chứa bên trong những galaxy và star. Một đích (target) cũng
tìm được từ block điều khiển thực thi một ứng dụng . Trong một ứng dụng tổng hợp nó có thể
tổng hợp assembly code cho DSP lập trình được .

http:// www.diachiweb.com




















Hình 21 Những khối bên trong môi trường Ptolemy
4.6.4 Phương pháp thiết kế :
Một hướng tổng quát để thiết kế chung được đề nghò ở hình 22 . Trên cơ sở các bước
thiết kế chung nầy thiết kế mô phỏng kênh điện thoại sẽ được đề cập











Hình 22 Phương pháp thiết kế chung dùng Ptolemy
Bước 1 : Đặc tả ứng dụng , ở bước nầy được đặc tả bằng giải thuật cấp cao và mô phỏng
đặc trưng .
Bước 2 : Sử dụng miền SDF của môi trường Ptolemy.
Bước 3 : Phân chia ra phần cứng hoặc phần mềm .
Bước 5 , 6 , 7 : Mô phỏng phần cứng , cấu hình phần cứng được phát triển lên mức cao
hơn và mô phỏng các đặc trưng .


























http:// www.diachiweb.com

Bước 4 : Tổng hợp phần mềm .
Tổng hợp phần cứng , phần mềm sau đó được mô phỏng ở bước 8 .
Môi trường Ptolemy cho phép mô phỏng theo mức độ phát triển nâng cao của phần cứng
, phần mềm trên cơ sở ràng buộc thời gian và các đặc điểm hợp lý .
A. Thiết kế dùng Shared memory :
Hướng nầy dùng 2 DSPs cho mô phỏng kênh full duplex của điện thoại . Ở đây DSPs
được cấu hình để truyền nhận thông tin ở bộ nhớ dùng chung (Shared memory) . Hình 23 trình
bày những thành phần trong môi trường Ptolemy dùng cho hệ thống này . Cấp độ trừu tượng chỉ
là giải thuật mô tả trình bày ở hình 23(a) . Giải thuật phức tạp nầy bao gồm tuyến tính và không
tuyến tính , độ dời tần số , pha và nhiễu . Thiết kế được xây dựng trong miền phát sinh code ,
tương thích đến mô hình SDF cho tính toán . Giải thuật cung cấp cho bộ phát sinh code , bộ phát
sinh code hình 23(b) cũng cần mô tả kiến trúc đích . Từ đây bước tiếp là phát triển phần cứng
cho hệ thống ( bước 5 , 6 , và 7 ở hình 22) . Hình 23(c) trình bày mô hình phần cứng của hệ
thống bao gồm 2 DSP lập trình được tính toán qua một bộ nhớ Shared memory .
Mô hình full duplex cấu tạo bởi tín hiệu từ một đầu cuối của kênh đến bộ lọc được lượng tử
hoá và gửi đến DSP đầu tiên , DSP thứ hai đọc dữ liệu từ shared memory xử lý và gửi đến
đầu cuối khác của kênh . Tương tự quá trình xử lý ngược được làm ngược lại . Chuyển đổi
A/D được lượng tử hoá ở hình 23(e) . Hình 23(f) trình bày mô hình chuyển đổi D/A , giải
thuật được chuyển đến bộ phát sinh code . Bước 4 và 5 của hình 22 phân chia và liệt kê các
khối và phát sinh assembly code cho processor trong hệ thống . Đầu ra của bộ sinh code là
assembly code đáp ứng giải thuật chạy trên 2 processor . Phần cứng sau đó được mô phỏng

ở bước 8 của hình 22 chạy code được phát sinh bởi bộ phát sinh code .
Chúng ta có thể thấy tác động lẫn nhau giữa giải thuật mô tả , mô phỏng , phát sinh code ,
phát triển phần cứng và mô phỏng , phần cứng được mô hình tại những mức độ khác nhau
của giải thuật mô tả dùng những miền khác nhau của môi trường Ptolemy .
B.Thiết kế dùng Serial port :Một kiểu thiết kế khác được lựa chọn như hình 24 được phát
triển bằng tác động qua lại qua bước 4 đến bước 8 ở hình 22 . Ở đây DSPs được truyền thông
tin bằng dãy cổng thay thế cho shared memory . Như đã thấy trong hình , tín hiệu từ đầu
cuối của kênh được nhận bằng DSP đầu tiên (DSP1) ở đây tín hiệu được xử lý và gửi qua
một dãy cổng đến DSP thứ 2 (DSP2) sau đó gửi ra một đầu cuối khác của kênh . Những khối
khác như A/D , D/A được thiết kế giống như thiết kế shared memory
Cấu hình phần cứng thay đổi ( như IPC delay) được cung cấp đến bộ sinh code , bộ sinh code
sẽ phân chia và liệt kê lại code ở bước 4 hình 22 .
Thiết kế nầy minh họa cho trường hợp với chiến lược IPC khác nhau có thể điều khiển
bằng tay trong Ptolemy . Hai hệ thống nầy (shared memory va serial port) được đánh giá chú ý
đến hiệu suất như IPC overhead , giá của hệ thống .
5.TỔNG KẾT:
Trong đồ án nầy đề cập đến phát triển kỹ thuật cho thiết kế hệ thống xử lý tín hiệu .
Thiết kế hệ thống đòi hỏi giá chính xác , hiệu suất và ràng buộc về thời gian . Những hiện thực
hardware ,software thuần túy thường không gặp ràng buộc nầy bên cạnh đó một vài bộ phận
của ứng dụng thì gắn với hoặc hardware , hoặc software . Từ đây những ứng dụng hướng tới
http:// www.diachiweb.com

những hiện thực trộn lẫn hardware , software . Những ứng dụng nầy được đặc tả tốt nhất ở mức
độ Task nguyên thủy .
Hướng đi đến thiết kế là thiết kế chung các thành phần hardware , software . Điều nầy
cho phép những thiết kế hardware ,software là tiến trình song song , với sự hồi tiếp và ảnh
hưởng lẫn nhau giữa 2 quá trình khi phát triển . Thiết kế chung cho phép khảo sát rộng lớn
những trạng thái lựa chọn hiện thực , do đó hệ thống được tối ưu hóa và trọn vẹn của nó .
Bốn vấn đề chính được đặt ra trong thiết kế chung mức hệ thống là : phân chia , tổng hợp ,
mô phỏng và quản lý phương pháp thiết kế , chúng ta cố gắng cung cấp những cách giải

quyết cho vấn đề nầy như giải quyết hệ thống xử lý tín hiệu đặc tả từ SDF .
5.1 Phân chia :
Phân chia nhò phân là vấn đề xác đònh cho mỗi node trong một ứng dụng đó là : ánh xạ
một node sang hardware hay software , trình tự của sự thực thi .
Phân chia mở rộng là vấn đề gắn với ánh xạ node trong đồ thò mức cao đến hardware
hay software thứ tự và lựa chọn hiện thực đặc biệt cho mỗi node , mục tiêu cuối cùng của cả hai
là làm nhỏ nhất tổng không gian hardware , tính đến ràng buộc tài nguyên .
Giải thuật GCLP giải quyết vấn đề phân chia nhò phân ,một vài đặc điểm của giải thuật :
1 . Công nhận rằng phân chia nhò phân là tối ưu ràng buộc . GCLP dùng một đo lường
giới hạn thời gian chung GC để lựa chọn thích ứng mục tiêu ánh xạ ở mỗi bước . Nếu thời gian
là tranh chấp nó lựa chọn ánh xạ mà thời gian thực thi của node sẽ nhỏ nhất , nhưng nó tiêu thụ
tài nguyên nhỏ nhất .
2 . Thêm vào xem xét nầy có các pha cục bộ như extremity measure ,repeller measure
và normal để xét một node ánh xạ sang hardware hay software thích hợp hơn . GCLP có độ
phức tạp O(|N|
2
).
Phân chia mở rộng được giải quyết bằng giải thuật MIBS ,ý nghóa của MIBS là mở rộng
GCLP cho phân chia mở rộng mà không xây dựng những phức tạp kết hợp khác . Chiến lược
phân loại những node trong đồ thò là : free node , tagged node , fixed node . Đầu tiên khởi tạo
tất cả những node trong đồ thò là free , ánh xạ và hiện thực bin chưa biết , GCLP áp dụng cho
tất cả các node trong tập free ,sau đó một node tagged sẽ được chọn từ tập nầy và ánh xạ của
nó được quyết đònh bằng GCLP . Một thủ tục lựa chọn bin được dùng để tính toán và hiện thực
thích hợp bin cho tagged node , nó sử dụng đo lường trước gọi là bin fraction ,nó lượng giá mỗi
bin của node . Bin fraction được sử dụng tính toán đo lường độ nhạy bin tương quan đến hiện
thực bin với thu giảm tổng không gian hardware . Thủ tục lựa chọn bin được chọn với độ nhạy
cao nhất . Tính toán độ nhạy bin được đơn giản hóa bằng cách công nhận những node tự do còn
lại hoặc chậm nhất . Tagged node trở thành fixed node và lựa chọn được một hiện thực bin .
GCLP sau đó áp dụng lên tất cả các node free còn lại và trình tự được lặp cho đến khi tất cả
node trong đồ thò thành cố đònh

5.2 Tổng hợp và mô phỏng :
Tổng hợp chung là vấn đề của tổng hợp hardware ,software và thành phần giao diện của
hệ thống , bắt đầu từ một DAG đã được phân chia kỹ thuật tổng hợp đạt được kiến trúc đích bao
gồm : một processor đơn lập trình được và nhiều mun hardware . Node được ánh xạ sang
hardware ,software được truyền nhận dùng một ánh xạ bộ nhớ .
Tổng hợp chung là phân rã DAG được phân chia thành đồ thò hardware ,đồ thò software
,và giao diện .Mỗi node trong đồ thò hardware ,software đều có kỹ thuật đại diện . Công cụ tổng
http:// www.diachiweb.com

hợp được sử dụng để phát sinh hiện thực cuối cùng từ những đồ thò nầy . Những công cụ có sẵn
như ( HYPER và PTOLEMY ) được dùng để phát sinh hiện thực cuối cùng .
Mô phỏng hardware , software là quá trình mô phỏng các thành phần hardware và
software của hệ thống trộn lẫn bên trong môi trường đồng nhất ,điều nầy có nghóa là mô phỏng
mun hardware , bộ xử lý ,software mà bộ xử lý thực thi
5.3 Quản lý phương pháp thiết kế :
Chúng ta đưa ra một cơ sở hạ tầng hổ trợ quản lý hiệu quả quá trình thiết kế với tầm
quan trọng là quản trò dòng thiết kế . Cơ sở hạ tầng được phát triển như DMM domain bên trong
môi trường PTOLEMY có một công cụ là Designmaker đáp ứng tự động quản lý dòng chảy .



6. PHỤ LỤC
1.Môi trường PTOLEMY
Ptolemy là môi trường đồng nhất trợ giúp cho sự tổng hợp và mô phỏng.Nó sử dụng kỹ thuật
lập trình hướng đối tượng để mô hình những hệ thống con trong sự tự nhiên và hiệu quả nhất với
một sự hợp nhất trọn vẹn.
Nền tảng của nó là BLOCK, một hệ thống được mô phỏng như một Network của Block, thứ
tự được quyết đònh bởi ngữ nghóa trong network nghóa là nó quyết thứ tự mà block được thự thi
Đối tượng thấp nhất trong Ptolemy là loại STAR.A STAR được đặc tả bơỉ C++ ,đặc tả này
bao gồm những hàm :setup(),go(),wrapup().A GALAXY cũng bắt nguồn từ BLOCK chứa những

BLOCK khác bên trong.A GALAXY Ùcó thể chứa cả hai loại là Galaxy và Star.
Ptolemy trợ giúp nhiều mẩu mô phỏng ,những loại thiết kế khác nhau gọi là DOMAIN .Một
Domain mô tả đúng mô hình tính toán thích hợp cho một loại hệ thống con đặc thù.Một số
Domain mô phỏng hiện thời được trợ giúp bao gồm:Synchronous Data Flow(SDF) ,Dynamic
Data Flow(DDF),Discrete Event (DE) và Digital Hardware Modeling Environment(Thor).
A Domain trong Ptolemy bao gồm tập của Block và thứ tự phù hợp với mô hình sự tính
toán chung ,nó cũng trợï giúp sựï trộn lẩn giửa các mô hình này ở mức hệ thống để phát triển hệ
thống hổn tạp với sự khác nhau ở mức trưù tượng. Sự trộn có thứ bậc bất cứ mô hình tính toán
có thể sử dụng ở mức cao của hệ thống ,bên trong mỗi mức của hệ thống có thứ bậc nó có thể
có những Block đang chưá các Domain bên ngoài.Hệ thống hổn tạp có thứ bậc thì hầu hết khác
nhau từ những khái niệm của simulation backplane.
2.Độ phức tạp của giải thuật GCLP
Độ phức tạp cuả giải thuật GCLP được tính như sau:
S1.Tính toán GC:O(A+N)
S1.1.Lượng giá tập của những node di chuyển đến phần cứng:O(1)
S1.2.Tính toán thời gian hoàn thành thực tế:O(A+N).
S2.Xác đònh tập những node sẳn sàng:O(N)
S3.Tính toán thời gian thực thi hiệu quả:O(N)
S4.Tinh toán đường đi dài nhất:O(A).
S5.Chọn một node sẵn sàng với đường đi dài nhất lớn nhất:O(N)
S6.Xác đònh ánh xạ và thứ tự:O(1)
Trong bước S1.2 tính toán thời gian hoàn thành dùng giải thuật
COMPUTE_ACTUAL_FINISH_TIME sau:
Procedure COMPUTE_ACTUAL_FINISH_TIME
http:// www.diachiweb.com

Input:DAG với sự xác đònh lại ánh xạ và tưông ứng với thời gian thực
thi(t
exec
(I)) cho mỗi node i

Output:T
finish
=thời gian hoàn thành của DAG
Khởi tạo:dsp_finish_time=0,T
finish
=0:
S1.Gán nhãn cho tất cả các node với cấp của nó
S2.Gán mặt nạ cho tất cả các node cấp 0 như là node sẳn sàng
S3.while (ready nodes exist){
S3.1.Chọn node sẳn sàng i:O(i)
S3.2.Tìm T
start
(i):O(1)
S3.3.if (i in software)
T
start
(i)=max(max
j
(t
avail
(j)),dsp_finish_time)
/*j:inputs của node i*/
if (i in hardware)
T
start
(i)=max
j
(t
avail
(j))

S3.4 Cập nhật t
finish
(i)=t
start
(i)+t
exec
(i):O(1)
S3.5.if i là trong software:
Dsp_finish_time=(dsp_finish_time>t
finish
(i))?
Dsp_finish_time:t
finish
(i)
S3.6.Cho mỗi output k của node i set t
avail
(k)=t
finish
(i)
S3.7.Cho mỗi output k của node i ,truy cập node p nối đến nó
S3.7.1.Giảm bậc của node p
S3.7.2.Nếu bậc của p là 0 :cộng p vào list của những node sẳn sàng
S3.8.T
finish
=(T
finish
>t
finish
(i))? T
finish

:t
finish
(i)
}:O(A+N)
Procedure COMPUTE_LONGEST_PATH
input: G=(N,A),t
eff
(i) cho i,i thuộc N
output: đường đi dài nhấr d(i) cho i thuộc N
khởi tạo: biến đếm c=0,đ(i)=0 cho i thuộc N
S1.trả lại tất cả các cung của GRAPD
S2.thứ tự hình học của grapd (một thứ tự mà cung (i,j) có nghỉa node i là
tiền bối của node j)
S2.1 Gán nhản cho tất cả cá node với thứ bậc của nó:O(N)
S2.2 while (c<N) {
S2.2.1. đònh danh một node i với thứ bậc =0
S2.2.2. gán nhản i với c
S2.2.3. giảm bậc cuả tất cả các node nối đến i
S2.2.4. xóa node i và tất cả các cung bắt nguồn từ i
S2.2.5. c=c+1
}:O(A)
S3.phủ nhận thời gian thực thi hiệu quả của tất cả các node i thuộc
N.(t
eff
(i)=(-1).t
eff
(i)):O(N)
S4.duyệt graph trong thứ tự hình học:O(A)
S4.1. d(i)=min(d(i))+t
eff

(i) mà j thuộc tiền bối của i
S4.2. phủ đònh d(i) cho đường đi dài nhất cho mỗi i,i thuộc N:O(N)
http:// www.diachiweb.com

Ta thấy đối với ánh xạ và thứ tự thì thời gian tính toán là hằng .Do vậy tổng dộ phức tạp của
giải thuật GCLP ở mổi bước là O(N+A).gi thuật chạy N lần vậy tổng thời gian là
O(N.(N+A)).kiểu mẩu cho ứng dụng DSP thì A»N như vậy độ phức tạp xấu nhất của giải thuật
GCLP là O(N
2
)
3.Phân tích độ phức tạp cuả giải thuật Bin selection procedure
Độ phức tạp của giải thuật được tính toán như sau:
COMPLEXITY(BIN SELECTION)
S1.Tính toán BFC(Bin Selection Curve):O(B*(N+A))
S1.1.Cho mỗi BIN tính toán BIN FRACTION:O(N+A)
S1.1.1.Lượng giá những node di chuyển đến L bin
S1.1.2.Tính toán thời gian hoàn thành chính xác công nhận ánh xạ này và lựa chọn
bin
S2.Tính toán độ nhạy bin:O(B)
S3.Tính trọng cuả độ nhạy bin:O(B)
S4.Lựa chọn bin
Sự tính toán BIN FRACTION trong bước S1.1 thì tương tự như sự tính toán trong GC.Ở đây
độ phức tạp của giả thuật BIN FRACTION cho một BIN đặt biệt là O(N+A).Độ phức tạp
của bước S1 ở đây là O(B*(N+A)) cho B implementation bin.Độ phức tạp của những bước
khác thì đơn giản là thứ tự của số bin.Vậy độ phức tạp của giải thuật ở đây là:O(B.(N+A)).
4.Phân tích độ phức tạp của giải thuật MIBS(Mapping and Bin
Seclection)
Giải thuật MIBS áp dụng GCLP lựa chọn bin N lần cho tất cả những node trên graph.Độ
phức tạp của những bước nhỏ được tính toán như sau:
COMPLEXITY(MIBS)

S1.Xác đònh ánh xạ cho tất cả các các node free bằng cách chạy
GCLP:O(N
2
).
S2.Xác đònh những node sẳn sàng:O(N)
S3.Chọn node tagged :O(N).
S4.Tính toán hiện thực BIN cho node tagged sử dụng giải thuật BIN
SELECTION :O(B*(N+A))
Độ phức tạp của mổi bước cuả giải thuật là:O(N
2
+B.N).Mỗi bước lập lại N lần cho N node
.Vậy độ phức tạp của giải thuật là:O(N
3
+B*N
2
)
5. Giải thuật phát sinh DAG ngẫu nhiên :
Procedure Generate_random_Graph /* phát sinh thông số cho DAG */
Input : kích thước của đồ thò N
Output : Đồ thò lặp vòng trực tiếp , các cạnh không song song
S1 . a= random_int(N,N
2
) (số cung )
S2 . phát sinh hoán vò ngẫu nhiên 1 N trong dãy “perm”
S21 .for(i=0;i<N;i++) {perm[i]=i}
S22. For(i=0;i<N;i++){
S221.j=random_int(0,N-1);
S222.tmp=perm[i]
S223.perm[i]=perm[j];
S224. Perm[j]=tmp;

}
http:// www.diachiweb.com

S3 phát sinh cạng A từ (perm[i],perm[j]),i<j
For(i=0;i<A;i++){
Src=ramdom_int(0,N-2);
Dest=random_int(src+1,N-1);
If(!existsarc(src,dest)) add_arc(src,dest);
}
S4 phát sinh thông tin bên trong cho mỗi node i :size
i
,ts
i
.th
i
,as
i
,ah
i
.
S41. Xác đònh nếu node i là extremity node ,repeller node hay normal node
S411.y=ran1();
S412. If((y>=0)&&(y<0.33)) i:extremity node
S413. If((y>=0.33)&&(y<0.66)) i:repeller node
S414. If((y>=0.66)&&(y<1)) i:normal node
S42. Thiết lập không gian và thời gian cho node i ;
S5.phát sinh những ràng buộc :T,AH,AS
S51.T=random_int(sum_th,sum_ts);
S52.AH=random_int(ah_low,ah_high);
S53.AS=random_int(as_low,as_high);

Procedure Generate_extremity_node
Input :ts
min
,as
min
,th
min
,ah
min
, ts
max
,as
max
, th
max
, ah
max
,cutoff threshold
Output : ts, th ,ah, as
S1.tính toán giá trò threshold ts
th
,as
th ,
th
th
,ah
th
(ví dụ :ts
th
=ts

min
+ cutoff* (ts
max
–ts
min
))
S2 tính toán giá trò extremity max ,min
S21. xs
max
=ts
max
/ah
min

S22. xs
min
=ts
th
/ah
th

S23.xh
max
= ah
max
/ts
min

S24.xh
min

=ah
th
/ts
th

S25.delta
h
=xh
max
–xh
min

S26.delta
s
=xs
max
–xs
min

S3 xác đònh nếu node là hardware extremity hay software extremity
S31.z=ran1();
S32.if(z,0.5) hardware_extremity ;else software_extremity ;
S4.phát sinh đo lường extremity trong khoảng (0,0.5);
S5.if hardware extremity
S51.ah=random_int(ah
th
,ah
max
);
S52.ts=ah/((2*delta

h
*ex) +xh
min
);
S53.as=random_int(as
min
,as
th
);
S54.th=random_int(th
min
,th
th
);
S6.if software extremity :
S61.ts=random_int(ts
th
,ts
max
);
S62.ah=ts/((2*delta
s
*ex) +xs
min
);
S63.as=random_int(as
min
,as
th
);

S64.th=random_int(th
min
,th
th
);

Procedure Generate_repeller_node
Output: ts,th, as,ah;
http:// www.diachiweb.com

S1.phát sinh dãy giá trò TS,TH
S2.xác đònh nếu node là software repeller hay hardware repeller
S21.z=ran1();
S22if(z<0.5) hardware repeller ;else software repeller ;
S3.phát sinh đo lường repeller trong khoảng (0,0.5)(r=ran(0,0.5))
S4.if software repeller :
S41.ts=TS[random_int(0,5)];
S42.as=ts/2;
S43.ah=(1-r)*as;
S44.th=(1+ran1())*ah;
S5. If hardware repeller :
S51.th=TH[random_int(0,5)];
S52.ah=ah/2;
S53.as=(1-r)*ah;
S54.ts=(1+ran1())*th;
Procedure Generate_normal_node
Output ts,th , ah , as
S1.ts= random_int(ts
min
, ts

th
)
S2.as= ts/2
S3.th=ts/random_int(1,4)
S4.ah=th/2;

2.1 Một số thông số ban đầu :
·
Một DAG gồm :
N : tập node
A :tập cung
·
D :thời gian giới hạn khi thực thi
· AS :Dung lượng bộ nhớ,kích thước software không được vượt quá AS
·
AH :Không gian cho phép của hardware ,tổng không gian của các node hardware không
vượt quá AH .
·
ah
comm
:Không gian hardware yêu cầu truyền nhận dữ liệu .
·
as
comm
:Không gian software yêu cầu để truyền nhận dữ liệu .
·
t
comm
:Số chu kỳ yêu cầu cho truyền dữ liệu .


Trở về trang chủ
2.2 Phân chia nhò phân (binary partitioning) :
Vấn đề phân chia nhò phân (P1) :Cho trước một DAG ,lượng giá không gian ,thời gian
các node ánh xạ sang hardware ,software ,giá thông tin truyền nhận ,thời gian giới hạn thực thi
D. Mi là ánh xạ node i sang hardware hay software ,t
I
là thời gian bắt đầu của một node ,kết
quả cho được tổng không gian hardware là nhỏ nhất. Số trạng thái lớn nhất là O(2
|N|

)
Vấn đề ánh xạ sang hardware ,software và sắp xếp thứ tự có thể thành công thức như
một chương trình tuyến tính (ILP :integer linear program) và được giải quyềt một cách chính
xác ,nhưng những công thức nầy khó đúng cho những ứng dụng có kích thước vừa phải .Một số
heuristic cho phép gi quyết những khác nhau cuả vấn đề nầy
·
Giải thuật phân chia nhò phân :GCLP Algorithm
http:// www.diachiweb.com

2.2.1 Cơ sở giải thuật :
Cơ sở thứ tự khung công việc trong giải thuật GCLP dựa vào thứ tự duyệt qua một lượt
các node từ node nguồn ,với mỗi node chọn ánh xạ mà nó làm nhỏ nhất mục tiêu . P1 có các
mục tiêu :thời gian hoàn thành của node là nhỏ nhất (tổng thời gian bắt đầu và thời gian thực thi
) hay là không gian nhỏ nhất của mỗi node (không gian hardware hay kích thước của software
).Vấn đề đạt được các mục tiêu nầy có tính tương đối .
Giải thuật GCLP nó lựa chọn và chuyển đổi mục tiêu ở mổi bước để xác đònh ánh xạ và
trình tự














GC
Glocal (time)
Criticality
measure


D
Local phase delta
1.GC (Global criticality) :là sự đo lường trước mà nó lượng giá thời gian giới hạn ở mỗi
bước của giải thuật .GC sosánh với ngưỡng để xác đònh nếu thời gian là tới hạn .Nếu thời gian
là tới hạn , mục tiêu nhiệm vụ là thời gian hoàn thành nhỏ nhất được chọn ,nếu không thì
không gian nhỏ nhất được chọn .GC có thể thay đổi ở mỗi bước của giải thuật .
2.Pha cục bộ (local phase):LP là một sự phân loại của những node trên cơ sở tính đồng
nhất và thuộc tính bên trong của chúng .Mỗi node được phân loại như extremity (pha 1),hay
repeller (pha 2), hay normal (pha 3).Một sự đo lường gọi là delta pha cục bộ xác đònh số lượng
ánh xạ cục bộ thích hợp của node để ý đến sự thay đổi ngưỡng được dùng trong so sánh GC
.Lưu đồ giải thuật như sau :







Obj1
y Min(finish time)

n
Obj2
Min(% resource consumed )
threshole

0.5

>?
+
http:// www.diachiweb.com






















N
U
=N , N
M






i















|N| times no



Compute GC
Identify local phase
And compute delta
Select mapping Mi find
Start time Ti
N
M
{I}, N
U
=N
U
\ {I}
Update (T
remaining
)
NU =Þ?
Select node among
ready nodes
Select objective
http:// www.diachiweb.com

{M
i
,t

i
}

(hình 3) Giải thuật GCLP
N là tập nodes của DAG .
N
U
là tập nodes chưa được ánh xạ được tính lại tại mỗi vòng lặp .
N
M
là tập nodes được ánh xạ .
N
U
ban đầu được gán là N. N
M
ban đầu được gán là rổng .
Mỗi vòng lặp sẽ ánh xạ một node ,bước đầu tiên của mỗi vòng lặp thời gian giới hạn chung GC
được tính toán lại trên cơ sở yêu cầu giới hạn của những node đã được ánh xạ và chưa được ánh
xạ .Quá trình được lặp N lần cho đến khi không còn node nào chưa được ánh xạ .

2.2.2 :Giới hạn chung GC :
GC là sự đo lường trước mà nó lượng giá thời gian giới hạn ở mỗi bước của giải thuật . Để hiểu
vấn đề nầy ta xét ví dụ sau :









D
H u

(a1)
u

s
s

N
M
:những nodes được ánh xạ {1,2,3}.
N
U
:những nodes chưa được ánh xạ {4,5}
S:software ,h:hardware .D thời gian giới hạn chung .





(a2)
Hardware

times

1
3
5

4
2
1
3

2
http:// www.diachiweb.com

Software
T rem
D



·
T rem :thời gian còn lại (remaining time)

N
S
à
H

b)
Hardware


times

Software
T rem

D Ts

·
Ts thời gian chạy của node được ánh xạ sang software

N
S->H
là tập của những node được ánh xạ chuyển từ software sang hardware do vượt quá thời
gian giới hạn D .

(c)
Hardware


times

Software Th
T rem
D
Hình 4

·
T h :thời gian hoàn thành nếu node chuyển từ software sang hardware và được ánh xạ sang
hardware

å size
I

i


N
s->H

GC= 0<= GC <=1

å
size
I

i

N
u

Ở mỗi bước các node đang chuẩn bò được ánh xạ sang hardware hay software .Sử dụng trình tự
nầy vàø thời gian giới hạn D ,để đầu tiên xác đònh Trem.Bước tiếp theo tất cả các node chưa
1
3

2
4 5
1 3

2
4
5
http:// www.diachiweb.com

được ánh xạ (node 4 và node 5 trong ví dụ ) sẽ được ánh xạ sang software ,lúc nầy thời gian Ts
sẽ được tính toán .Giả sử rằng Ts vượt qua giới hạn D.Một số node trong tập node chưa được

ánh xạ phải di chuyển từ software sang hardware để thỏa mãn nhỏ hơn giới hạn D .Những node
nầy tạo thành tập N
S->H
(trong ví dụ tập nầy là {5} ).Lúc nầy thời gian hoàn thành Th được tính
toán lại .Trong giải thuật GC tại một bước nào đó có thể có nhiều node chưa được ánh xạ và
cần phải ánh xạ sang hardware vì vậy phải tìm kết quả khả thi ,(thời gian như là tài nguyên
đang bò tranh chấp ).
Giải thuật tính toán GC :
Procedure Compute_GC ;
Input :N
M
,N
U
,D ,t
si
,t
hi
.size
I
,với mọi I thuộc N;
Output GC
S1 :tìm tập N
S->H
của những node chưa được ánh xạ mà có thể chuyển tư software sang
hardware để thỏa mãn giới hạn D;
S11 Lưạ chọn những node trong N
U
,dùng ưu tiên Pf di chuyển từ software sang
hardware .
S12 Tính toán thời gian Thiết kế trên cơ sở node trong tập N

S->H
được ánh xạ sang
hardware
S13 Nếu Th > D quay lại S11




å
size
I

iỴN
s->H

S2 GC= 0<= GC <=1

å
size
I

iỴN
u

Trong S11 tập những node được chọn di chuyển sang hardware trên độ ưu tiên pf .một cách rõ
ràng pf là những node nầy được sắp xếp theo thứ tự giảm dần của ts
I
(thời gian thực thi bằng
software .Một khả năng thứ hai là sử dụng tỉ số (ts
i

/th
I
) để xếp thứ tự ưu tiên các node .Điều nầy
cho kết quả tốt nhất về thời gian khi di chuyển sang hardware .Khả năng thứ ba là sắp xếp các
node theo chiều tăng của ah
I
,những node có không gian hardware nhỏ hơn sẽ được di chuyển
khỏi software đầu tiên .Kinh nghiệm chỉ ra rằng tỉ số (ts
i
/th
I
) cho kết quả tốt nhất .
S12 được xác đònh hoặc di chuyển node trong tập N
s->h
đến hardware để thỏa mãn T
H

.thời gian hoàn thành là O(|A| + |N|)
GC được tính toán trong S2 là tỉ số của tổng kích thước của những node trong tập N
s->H

và tổng kích thước trong tập N
u
.kích thước của node được xem như số các phép toán nguyên tố
(cộng ,nhân,…) trong node .Mỗi node được đại diện bởi kích thước của nó từ những node có thể
không đồng nhất trong tổng thể .
GC đo lường thời gian giới hạn chung .GC có thể giải thích bằng một cách khác : nó đo
lường khả năng (nói đơn giản) là bất cứ node không ánh xạ thì ánh xạ sang hardware .khả năng
nầy có thể thay đổi ở mỗi bước của giải thuật .
2.2.3 Pha cục bộ (Local phase) :

GC là một đo lường trung bình trên tất cả những node chưa ánh xạ ở mỗi bước .Điều nầy
làm giảm tính chính xác đến thuộc tính cục bộ của node đang được ánh xạ .Để nhấn mạnh đặc
http:// www.diachiweb.com

trưng cục bộ của những node , người ta chia làm 3 loại : extremities (gọi là local phase 1) ,
repellers (gọi là local phase 2) , normal (gọi là local phase 3).
2.2.3.1 Local phase 1 (extremity nodes )
Những node sử dụng nhiều tài nguyên không cân đối khi ánh xạ so với ánh xạ khác được
gọi là extremities .Chẳng hạn như một hardware extremity yêu cầu không gian rộng lớn khi ánh
xạ sang hardware nhưng có thể hiện thực bằng software với giá không đắt .Việc ánh xạ thích
hợp của những node như vậy được xác đònh bởi extremity measure , làm thay đổi ngưởng dùng
trong sosánh GC .
Một hardware extremity node là node sử dụng không gian lớn trong hardware , nhưng
thời gian trong software tương đối nhỏ .
Một software extremity node là node sử dụng nhiều thời gian trong software nhưng sử
dụng không gian nhỏ khi ánh xạ sang hardware . Việc di chuyển hardware extremity node sang
software extremity node hay ngược lại là rõ ràng cần thiết .
Sự chênh lệch trong sử dụng tài nguyên của extremity node I được xác đònh bởi
extremity measure E
I
.extremity measure được sử dụng để thay đổi ngưỡng đưa vào so sánh với
GC khi lựa chọn mục tiêu ánh xạ .E
I
là local phase delta trong hình phần trước .
EXTREMITY MEASURE :
Procedure Compute_Extremity_measure
Input ts
I
,ah
I

,"iỴ N ,tỉ lệ a,b,
Output E
I ,
,
"
i

N ,-0.5 <= E
I
<=0.5
S1 tính toán biểu đồ của tất cả các node chú ý đến thời gian thực thi software(ts
I
) và không gian
hardware (ah
I
) .
S2 xác đònh ts(
a
), và ah(
b
) đáp ứng từ tỉ lệ
a

b
của t
s
và a
h
được chú ý trong biểu đồ .
S3 phân loại node vào tập software extremity node (EX

s
) và hardware extremity node (EX
h
)
chú ý :
If (ts
I
>=ts(
a
) and ah
I
<ah(
b
)) ,i

EX
s

If (ah
I
>= ah(
b
) and ts
I
<ts(
a
) ,i

EX
h


S4 xác đònh giá trò extremity x
I
cho node I :
If i

EX
s
then
Ts
i
/ts
max

,x
I
=
ah
i
/ah
max


else

ah
i
/ah
max


x
I
=
Ts
i
/ts
max


Trong đó :ts
max
=max
i
{
ts
i
}
và ah
max
=max
i
{
ah
i
}

S5 thứ tự những node trong EX
s
(EH
h

) cho bởi x .Trong đó giá tri extremity lớn nhất và giá trò
extremity nhỏ nhất là xs
max
(xh
max
) và xs
min
(xh
min
)
S6 tính toán extremity measure E
I
cho node I :
http:// www.diachiweb.com

If iỴ EX
s
then
x
I
-xs
min

E
I
= -0.5 * ,-0.5 <=E
I
<=0;
xs
max

-xs
min


else if iỴEX
h
then
x
I
-xh
min

E
I
= -0.5 * ,0<=E
I
<=0.5;
xh
max
-xh
min

Trong s1 tính toán phân phối những node chú ý đến thời gian thực thi software ts
I
và không
gian hardware ah
I
.thông số
a


b
đại diện cho tỉ lệ giới hạn của những phân phối nầy. Chẳng
hạn như trong S3 một node I được phân loại như là software extremity node , nếu nó vượt tỉ lệ a
trong biểu đồ ts (ts
I
>ts(
a
)) và dưới tỉ lệ
b
trong biểu đồ ah (ah
I
<ah(
b
)) .Tương tự một node I
được phân loại như hardware extremity nếu nó nằm trên tỉ lệ b trong biểu đồ ah (ah
I
>ah(b)) và
dưới tỉ lệ a trong biểu đồ ts (ts
I
<ts (a)). hình 5 sau trình bày các loại biểu đồ và nhận ra các
extremities .Ví dụ ta xem xét giá trò
a

b
nằm trong khoảng (0.5 ,0.75) được sử dụng .


















EX
h
EX
s








Số node trên ts



a
Cận trên

a






ts(
a
)

ts
Số node trên ah

b Cận trên b






ah(
b
) ah
http:// www.diachiweb.com










Hình 5

Tập Hardware (EX
h
) extremity và tập software (EX
s
) extremity
Sự thay đổi ngưỡng khi sử dụng đo lường extremity
Gc
k
biểu thò giá trò của GC ở bước thứ k khi một extremity node I được ánh xạ .Nếu không tính
đến E
I
thì ngưỡng được khởi động giá trò 0.5 và giá trò nầy bao trùm cho tất cả những node chưa
được ánh xạ ,việc ánh xạ của node I trong trừơng hợp nầy chỉ mới là cơ sở trên GC
k
.Một số chỉ
dẫn sau :
1.ánh xạ xấu (poor mapping): Giả sửï node i là một hardware extremity .Nếu GC
k
>=0.5
,đối tượng 1 (Obj1) được chọn thời gian là tối thiểu và i có thể ánh xạ sang hardware trên cơ sở
giới hạn thời gian .Tuy nhiên i là một hardware extremity và ánh xạ nó sang hardware hiển
nhiên là sự lựa chọn xấu .
2.ánh xạ không thể thực hiện (infeasible mapping) :Giả sửï node i là một software
extremity .Nếu GC

k
< 0.5, đối tượng 2 được chọn (Obj2) không gian là tối thiểu và i có thể được
ánh xạ đến software .Node i là một software extremity ,vì vậy ánh xạ nó sang software có thể
vượt quá giới hạn cho phép .
Bao trùm lên những vấn đề nầy ,đo lường extremity E
i
được sử dụng để thay đổi ngưỡng
mặt đònh trên ánh xạ thích hợp . Ngưỡng mới là 0.5 + E
i
.GC
k
được so sánh với ngưỡng thay đổi
nầy . Trong trường hợp software extremities thì –0.5 <= E
i
<=0 ; vì vậy 0<=ngưỡng
(threshold)<=0.5. Trong trường hợp hardware extremities thì 0<=E
i
<=0.5, vì vậy 0.5<=ngưỡng
(threshold)<=1.
2.2.3.2 Local phase 2 or Repeller nodes :
GCLP sử dụng khái niệm repeller hay local phase 2 node để thực hiện việc hoán đổi
giữa hardware và software của những node tương tự .Để làm điều nầy phải đồng nhất những
thuộc tính bên trong nào đó của node (được gọi là thuộc tính repeller) nó phản ảnh sự thích hợp
có sẵn của node để ánh xạ sang hardware cũng như software .Ví dụ phép toán bit (bit operation)
được điều khiển tốt hơn trong hardware ,trong khi đó những phép toán về memory (memory
operation) thì phù hợp hơn cho software .Như vậy một node với nhiều bit điều khiển bằng tay
(bit manipulation) liên hệ đến những node khác là software repeller , trong khi một node với
nhiều phép toán bộ nhớ quan hệ đến những node khác là hardware repeller .Việc di chuyển
một node với nhiều phép toán bit điều khiển bằng tay ra khỏi software gọi là repeller force .Từ
đó tỉ lệ của phép toán bit điều khiển bằng tay trong một node gọi là thuộc tính software repeller

(software repeller property). Tương tự tỉ lệ của phép toán bộ nhớ trong một node gọi là thuộc
tính hardware repeller (hardware repeller property) .Một thuộc tính repeller được xác đònh bằng
một giá trò repeller . Kết quả kết hợp của tất cả thuộc tính repeller trong một node được biểu thò
như là sự đo lường repeller của node .Tất cả những node được xếp hàng tùy theo sự đo lường
giá trò repeller của chúng .Chẳng hạn như cho 2 node N1 và N2 với đặc điểm software tương tự
http:// www.diachiweb.com

,nếu N1 có giá trò software repeller lớn hơn N2 và 1 trong 2 được lựa chọn ánh xạ sang
hardware thì ưu tiên N1 .
Một vài thuộc tính repeller có thể được nhận dạng cho mỗi node .Hổn hợp lệnh ở mức
bit và mức độ chính xác là những ví dụ cho thuộc tính software repeller ,trong khi những hổn
hợp lệnh tập trung bộ nhớ và hổn hợp lệnh tìm kiếm trong bảng có thể là thuộc tính hardware
repeller .Mỗi thuộc tính được xác đònh bởi giá trò thuộc tính . Kết quả kết hợp của tất cả thuộc
tính repeller trong một node được biểu thò như là sự đo lường repeller của node .
Chúng ta quan tâm đến hỗn hợp lệnh cấp độ bit (bit level instruction mix) là một thuộc
tính software repeller , thuộc tính nầy được xác đònh thông qua giá trò thuộc tính của nó gọi là
BLIM.BLIM
i
được đònh nghóa là tỉ lệ của những lệnh cấp độ bit trên tổng các lệnh trong một
node i (0 <=BLIM
i
<=1).Ví dụ DAG như hình vẽ 6 (a) : node 2 trong đồ thò là bộ lọc IIR ,node 5
là bộ trộn ,ở hình (b) trình bày đồ thò giá trò BLIM cho tất cả các node trong DAG .Ở hình (a)
node 5 ,bộ trộn có giá trò BLIM cao ,node 2 bộ lọc IIR không có bất kỳ một bit điều khiển bằng
tay nào và như vậy BLIM có giá trò 0 .Node có giá trò BLIM cao sẽ xấu khi ánh xạ sang
software
BLIM
IIR

1

scrambler


Scrambler IIR
°
0 1 2 3 4 5 node in graph
(a) (b)
(hình 6) Một ví dụ của thuộc tính repeller
Quan tâm 2 node N1 , N2 với không gian software (hardware ) là as
1
(ah
1
) và as
2
(ah
2
) .
Giả sử BLIM
1
>BLIM
2
, nếu as
1
@
as
2
thì ah
1
<ah
2

(bởi vì phép toán bit làm cho không gian
hardware nhỏ hơn ). Thật vậy N1 là software repeller so với N2 trên cơ sở thuộc tính hỗn hợp
lệnh cấp bit . Khi lựa chọn ánh xạ N1 hoặc N2 sang hardware thì chọn N1 thích hợp hơn (dựa
vào thuộc tính BLIM).
Những thuộc tính repeller khác được đề cập trước đây thì xác đònh tương tự dựa vào giá
trò thuộc tính của chúng .Kết quả tích lũy các thuộc tính repeller cho một node được quan tâm
khi ánh xạ node đó . Sự đo lường repeller (repeller measure) R
i
của một node là kết quả gộp
lại các giá trò repeller của node đó .Đo lường repeller được sử dụng để thay đổi lại ngưỡng mà
GC đã so sánh khi lựa chọn mục tiêu ánh xạ .
REPELLER MEASURE :
Procedure compute_repeller _measure
Input v
i,p
= giá trò của thuộc tính repeller p của node i, i

N,p

P .
Output đo lường repeller R
i
,"i Ỵ N,0.5 <= R
i
<=0.5.
S1. tính toán cho mỗi thuộc tính p :
s
2
(v
i,p

) = sự khác nhau của v
i,p
của tất cả node i .
min (v
i,p
)= min của v
i,p
của tất cả node i .
1
3
5
4
2
http:// www.diachiweb.com

max(v
i,p
) =max của v
i,p
của tất cả node i .
để RX = RH nếu p

RH hay RX = RS nếu p

RS.


s

2

(v
i,p
)
a
p

=
= trọng của thuộc tính repeller p,
å

s

2
(a
p
) =1 .
å s
2
(v
i,p
) pỴRX
p

RX
S2 . tính toán giá trò thuộc tính bình thườnh nv
i,p
cho mỗi thuộc tính p của node i
v
i,p
-min(v

i,p
)
nv
i,p
= .0<=nv
i,p
<=1.
max(v
i,p
)-min(v
i,p
)
S3.tính toán đo lường repeller R
i
cho mỗi node i
R
i
= 0.5(
å
a
p.
nv
i,p
-
å
a
p.
nv
i,p
), -0.5 <=R

i
<=0.5.
pỴ RH p ỴRS
Giải thuật mô tả tính toán đo lường repeller cho mỗi node i (R
i
) .Đặt RH tập thuộc tính repeller
hardware và RS là tập thuộc tính repeller software ,P là hội của 2 thuộc tính trên
Giá trò v
i.p
của mỗi thuộc tính repeller p của node i thu được nhờ sự phân tích node
.Chẳng hạn như xem xét thuộc tính trộn lệnh mức bit (bit level instruction mix) .Các phép toán
cấp bit như là (or ,and ,exor) đầu tiên được nhận ra trong node .Giá trò BLIM của node i là tỉ lệ
của số phép toán ở mức bit trên tổng số phép toán trong node .Giá trò thuộc tính repeller khác
được tính toán tương tự .
Trong S1 của giải thuật ,mỗi giá trò thuộc tính repeller về sự khác nhau ,giá trò nhỏ nhất
và giá trò lớn nhất được tính toán . Những giá trò thuộc tính được bình thường hóa trong S2 .
Trong S3 đo lường repeller cho mỗi node được tính toán như là một tổ hợp của các giá trò thuộc
tính bình thường hóa repeller .Trọng a
p
của thuộc tính p là tỉ lệ tương ứng với giá trò khác nhau
của giá trò node đó .
Thay đổi ngưỡng khi sử dụng đo lường repeller :
Như đã trình bày trong phần trước repeller thiết lập hoán đổi để thu giảm tất cả không
gian hardware .Có thể nói rằng đo lường repeller là đo lường của sự hoán đổi lại của 2 node
của phase 2 tương tự giữa ánh xạ hardware và software .Như đã nói cho một lựa chọn ánh xạ
của 2 node sang hardware ,thì node có đo lường repeller software cao hơn sẽ được chọn .
Cho một phase 2 node i với đo lường repeller software thích đáng , giải thuật sẽ cố
gắng hoàn thành việc đẩy node i ra khỏi software .Nó thay đổi ngưỡng mà mục tiêu được lựa
chọn sẽ thuận lợi hơn để hoàn thành việc ánh xạ. Việc hoán đổi nầy giải phóng tài nguyên hiện
thời cho node chưa được sắp thứ tự với đo lường thuộc tính repeller thấp , nhờ vậy cho phép thu

giảm toàn bộ không gian hardware .
D; repeller R
i
được sử dụng để thay đổi ngưỡng ,ngưỡng mới là 0.5+R
i
.Với software
repellers thì –0.5 <=R
i
<=0 ,vì vậy ngưỡng là 0<=ngưỡng (threshold)<= 0 , với hardware
repellers thì 0<=R
i
<=0.5 vì vậy ngưỡng là 0.5<=ngưỡng <=1.
2.2.3.3 Local phase 3 hay normal nodes :
Một node không là extremity node hay repeller node thì là node bình thường (normal
node ) được gọi là lacal phase 3 .Ngưỡng được thiết lập mặc đònh là 0.5 khi ánh xạ .Như vậy
mục tiêu ánh xạ được quản lý bởi GC .
Tóm lại node được phân thành 3 loại :extremity node ,repeller node ,và normal node
.Mỗi phase thích hợp của mỗi node được xác đònh bởi sự đo lường của nó , gọi chung là local
http:// www.diachiweb.com

phase delta (D) .Trong trường hợp node là extremity node thì D=E
i
,trong trường hợp node là
repeller node thì
D
=R
i
,và trường hợp normal node thì
D
= 0 .Local phase delta được dùng để

tính toán thay đổi ngưỡng :
Ngưỡng =0.5+
D
.
2.2.4 .GIẢI THUẬT GCLP
Algorithm : GCLP
Input ah
i
,as
i
, th
i
, ts
i
, E
i
(extremity measure) ,và R
i
(repeller measure)
"
i

N
Giá truyền nhận :ah
comm
,as
comm
và t
comm
và giới hạn AH , AS, và D.

Output :ánh xạ M
i
(M
i



{
hardware,software
}
,thời gian bắt đầu t
i
,
"
i

N
Khởi tạo :N
u
={ nodes chưa ánh xạ } =N ,N
M
={ nodes đã ánh xạ } =f
Procedure
While { |N
u
|> 0 } {
S1 Tính toán GC
S2 Xác đònh tập node sẵn sàng N
R


S3 Tính toán thời gian thực thi kết quả t
exec
(i) cho mỗi node i
If i Ỵ N
u
t
exec
(i) =GC .th
i
+ ( 1-GC).ts
i

Else if i Ỵ N
M
t
exec
(i) = th
i
.I(M
i
==hardware ) +ts
i
.I(M
i
==software )
S4 Tính toán đường dài nhất longestpath(i),
"
i

N

R
sử dụng t
exec
(i)
S5 Lựa chọn node i ,i Ỵ N
R
bằng ánh xạ :max(longestpath(i))
S6 Xác đònh ánh xạ M
i
cho i :
S61 if (E
i
<> 0) D =g.E
i
(local phase 1)

g
là extremity measure weight 0<=
g
<=1
else if (R
i
<>0)
D
=
n
.R
i
(local phase 2)
n là repeller measure weight 0<=n<=1

else if
D
=0 (local phase 3)
S62 ngưỡng =0.5 +
D
,0<=ngưỡng <=1
S63 if GC >=ngưỡng m:minimize(obj1)
else m:minimize(obj2)
s64 M
i
=m ; set(t
i
) ; N
u
=N
u
\
{
i
}
; N
M
ß
{
i
}

update (T
remaining
,AH

remaining
,AS
remaining
);
}
Giải thuật ánh xạ mỗi node ở một bước .Bước S1 Gc được tính toán và .Ở bước S2 xác
đònh tập node sẵn sàng nghóa là tập những node chưa được ánh xạ mà tiền bối của nó đã được
ánh xạ ,một trong những node sẵn sàng nầy sẽ được chọn để ánh xạ trong bước 5 .Đặc biệt nên
chọn node trên đường dài nhất của graph ,đường tới hạn chung bao gồm những node chưa ánh
xạ tính toán nó .Ở bước S3 tính toán thời gian thực thi đến kết quả của node i .Ở bước 4 tính
toán con đường dài nhất sử dụng thời gian thực thi đến kết quả của node i .Ở bước 5 lựa chọn
node i cho ánh xạ .Ở bước 6 xác đònh ánh xạ M
i
cho mỗi node i ,nếu node là extremity node
(hay repeller node ) thì dùng để thay đổi ngưỡng .Sự góp phần của đo lường extremity và
repeller có thể thay đổi bởi trọng
g
và v .Mục tiêu ánh xạ được lựa chọn nhờ vào việc so sánh
lại GC với ngưỡng .Nếu thời gian là tới hạn thì mục tiêu thời gian hoàn thành nhỏ nhất sẽ được
chọn , khác đi thì tiêu thụ tài nguyên nhỏ nhất được chọn .
Obj1 :t
fin
(i,m) ,trong đó mỴ {hardware ,software }
T
fin
(i,m) =max(max
p(i)
(t
fin
(p) +t

c
(p,i)),tf
last
(m))+t(i,m)
Trong đó :
http:// www.diachiweb.com

P(i) : tập tiền bối của node i ,p Ỵ P(i)
t
fin
(p) :thời gian hoàn thành của tiền bối p
t
c
(p,i) =thời gian truyền nhận giữa node tiền bối p và node i
tf
last
= thời gian hoàn thành của node cuối được gán bởi ánh xạ m =0 nếu m là hardware .
t(i,m) = thời gian thực thi của node i trên ánh xạ m

(as
i
+as
comm
tot
) (ah
i
+ah
comm
tot
)

Obj2 : .I(m=software ) + .I(m=hardware )
AS AH
remaining


Obj1 lựa chọn ánh xạ mà thời gian hoàn thành nhỏ nhất của node .Một node chỉ bắt
đầu thực thi sau khi tất cả các tiền bối của nó hoàn thành việc thực thi và dữ liệu đã được truyền
đến nó từ các tiền bối cũng vậy một node không thể bắt đầu thực thi trên một tài nguyên
software cho đến khi node cuối cùng được ánh xạ sang software hoàn thành việc thực thi .
Obj2 sử dụng đo lường số phần trăm tiêu thụ (percentage resource consumption) .Việc
đo lường nầy là phần nhỏ của không gian tài nguyên của một node (vùng không gian truyền
nhận ) trên tổng không gian tài nguyên .không gian ah
comm
tot
(as
comm
tot
) đưa vào tính toán giá
tổng cộng của sự truyền nhận (kết nối trong hardware và code trong software ) giữa node i trong
hardware (software ) và tất cả tiền bối của nó .Tài nguyên hardware là không gian tài nguyên
yêu cầu bởi node được chia xẽ bởi không gian hardware còn lại (AH
remaining
).
2.2.5 Tóm tắt giải thuật GCLP :
Cho đến đây chúng ta đã bàn luận giải thuật GCLP (global criticality /local phase ) để
giải quyết vấn đề phân chia nhò phân (P
1
) điểm chính yếu của giải thuật được tóm tắt như sau :
Giới hạn chung là một đo lường nhìn trước chung mà để xác đònh thời gian giới hạn ở
một bước của giải thuật đưa vào tính toán những node chưa ánh xạ hiện thời .GC so sánh với

ngưỡng để lựa chọn mục tiêu ánh xạ ở mỗi bước của giải thuật .Những node sử dụng số lượng
tài nguyên không cân đối trong khi ánh xạ sang hardware hay software thì được phân loại thành
extremities .Ngưỡng sử dụng để ánh xạ những node nầy được thay đổi để tính toán cho những
ánh xạ thích hợp .Tổng không gian hardware được thu giảm tốt hơn bởi việc sử dụng khái niệm
hoán đổi những node repeller (on line swaps between repeller node ). Repeller node được
phân loại và xác đònh trên cơ sở những thuộc tính bên trong của node .Ngưỡng được sử dụng cho
ánh xạ những node repeller được thay đổi cho phù hợp với quan hệ ánh xạ của nó .Giải thuật
có độ phức tạp (O(|N|
2
)) với kết quả so sánh là tối ưu .
Trở về trang chu
2.3 Phân chia mở rộng (Extended partition )
2.3.1 Giớùi thiệu :
Lý do cho việc giải quyết vấn đề phân chia mở rộng là do tính mềm dẽo của việc chọn
lựa một hướng hiện thực cho node thay vì phải cố đònh cách hiện thực , nhờ vậy mà nó có thể
thu giảm được không gian hardware hay thời gian thực thi software . Từ thực tiển trong việc
tổng hợp người ta thấy rằng kết quả của hiện thực hệ thống tốt hơn khi có phân chia mở rộng .
2.3.2 Giải thuật phân chia mở rộng :Mục tiêu thiết kế .
Giải thuật GCLP giải quyết vấn đề phân chia nhò phân P1 .Vấn đề phân chia mở rộng P2
đề cập đến tối ưu hoá việc ánh xạ như ‘implementation bin ‘(tạm dòch là ‘hiện thực bin’) cho
mỗi node .Quan tâm hiện thực bin được trình bày theo hình vẽ 7

×