第四章 結果討論與未來展望
4.1 產生實驗結果
圖 4-1 是執行程式的整個流程,首先我們必須先在 EDK 這套軟體上執行軟 體端的程式,若執行成功則會產生一個副檔名.elf 的執行檔,接下來則執行硬體 端的程式,首先是 Generate Netlist,然後執行 Generate Bitstream,此時會產生一 個名為 system.bit 的檔案,最後再執行 Update Bitstream 產生新的 download.bit 檔,
配合我們寫的一個批次檔,內容如下:
xmd -tcl genace.tcl -hw ../implementation/download.bit -elf ../fbp/executable.elf -ace ../data/ace/fbp_fin.ace -board ml310
表 4-1 合併軟硬體執行檔之批次檔內容
這個批次檔主要的作用就是將.elf 檔以及 download.bit 檔合併,也就是將軟 體與硬體分別執行後的檔案做結合,產生最後的可執行檔,我們暫時將之命名為 fbp_fin.ace,此時只要將 fbp_fin.ace 檔案以及用來重建的 sinogram 影像複製至 CompacFlash card 上,則當我們啟動 ML310 Development Board 時,就可以利用 電腦的終端機視窗來下指令去執行 CompacFlash card 上的 fbp_fin.ace 檔,如此就
可以順利的跑完整個程式,重建回原來真實的影像。
Build project
軟體 硬體
Generate Netlist
Generate Bitstream
圖 4-1 產生實驗結果之流程
4.2 結果比較與討論
在這個小節裡,我們將會對軟硬體共同設計的方法以及純粹使用軟體實作 FBP 演算法的嵌入式系統做一個比較,表 4-2 是兩者間的比較結果,由表中我們 可以看出,利用軟硬體共同設計的方式會比單獨使用軟體實作嵌入式系統來的有 效率許多,以 128x128 pixels 大小為例,可以將執行時間由使用軟體實作嵌入式 系統的三分鐘左右縮短至不到 5 秒,在效能上算是有不錯的提升。
產生副檔名 .elf 的執行檔
Update Bitstream
產生 download.bit
產生副檔名 .ace 的執行檔
比較項目 Filter 時間 Backproject 時間
軟硬體共同設計 約 1 秒 約 4 秒
128x128
以軟體實作嵌入式系統 約 2 分鐘 約 1 分鐘
軟硬體共同設計 約 1 秒 約 30 秒
256x256
以軟體實作嵌入式系統 約 10 分鐘 約 8 分鐘
表 4-2 效能比較表
下面我們附上實作過程所佔用的電路資源及系統的時脈等相關資訊。
z 時脈資訊:
Minimum period: 9.951ns (Maximum frequency: 100.492MHz) Maximum path delay from/to any node: 2.220ns
z FPGA 資源使用率
Number of MULT18X18s: 38 out of 136 27%
Number of Block RAMs: 76 out of 136 55%
Number of occupied Slices: 11,313 out of 13,696 82%
圖 4-2 是我們以 128x128 pixels 大小的”head phantom”圖重建的結果,其中圖 4-2(a)是原圖,圖 4-2(b)是圖(a)的 sinogram 影像,而圖 4-2(c)是以軟體利用 4x4 block _size 大小重建回來的影像,4-2(d)則是以硬體利用 4x4 block _size 大小重建 回來的影像。
(a) (b)
(c) (d)
圖 4-2 128x128 原圖以及重建結果
圖 4-3 則是我們以 256x256 pixels 大小的”head phantom”圖重建的結果,同樣 的,其中圖 4-2(a)是原圖,圖 4-2(b)是圖(a)的 sinogram 影像,而圖 4-2(c)是以軟 體利用 4x4block _size 大小重建回來的影像,4-2(d)則是以硬體利用 4x4 block _size 大小重建回來的影像。
(a) (b)
(c) (d)
圖 4-3 256x256 原圖以及重建結果
4.3 結論與未來展望
關於實驗的結果,以 128x128 pixels 大小為例,在效能上重建影像所需要 的時間大約需要花到 4~5 秒,其中大約有一秒花在軟體計算上,其餘時間皆花費 在資料傳輸與硬體計算上,看起來其實是還有改善的空間有,但由於受限於硬體 資源所致(主要是 Number of occupied Slices 一項,使用率約 82%),我們的演算 法在硬體實作上只能採用 block size=4x4 的大小,而由軟體的經驗得知,如果 我們可以採用較大的 block size,在效能上不管是軟體的運算、資料傳輸與硬 體 計 算 上 都 可 以 有 大 幅 的 減 少 , 更 重 要 的 是 可 以 減 少 重 建 回 來 影 像 上 的 artifacts,能夠更接近真實的影像。
因此在未來的方向上,我們可以朝向如何簡化實作上的硬體資源,或者是利 用有更多硬體資源可直接使用的版子,如此一來就可以採用較大的 block size 來實作此一演算法,更可提高平行處理的能力,充分發揮其效能及改善重建品 質,設計出我們心目中理想的晶片。
參考文獻
[1] Alexandro M.S. Adario, Eduardo L. Roehe, Sergio Bampi,
“Dynamically Reconfigurable Architecture for Image Processor Applications", DAC99, New Orleans, Louisiana, ACM, 1999
[2] Didier LATTARD, Guy MAZARE, “Image reconstruction using an original asynchronous cellular array", ISCAS IEEE, 1989
[3] Anup B. Sharma, Keith R. Allen and Roy P. Pargas, “Some new systolic designs for two-dimensional convolution", ACM, 1988
[4] Bei-Chuan Chen, Yu-Tai Ching, “A new antialiased line drawing algorithm", Computers & Graphics, 2001
[5] Bertil Schmidt, Manfred Schimmler, Heiko Schroder, “Tomographic Image Reconstruction on the Instruction Systolic Array”, Computers and Artificial Intelligence, 1995
[6] A.V. Lakshminarayanan, "Reconstruction from divergent ray data,"
tech. rep., Dept.Computer Science, State University of New York at Buffalo, 1975.