基于消息機制的片上多處理器系統(tǒng)的研究
由上述公式可見,前向DCT變換是相當(dāng)耗時的一部分,因為該部分需要求取余弦值,然后求積與求和,并且進行的都是浮點運算;運用快速算法可減少該部分的處理時間。在JPEG編碼框圖中,前向DCT處理的都是8×8大小的數(shù)據(jù)塊,每個數(shù)據(jù)塊之間相互獨立,因此可同時進行計算。在熵編碼過程中,對直流系數(shù)DC的編碼采用的是差分脈沖編碼調(diào)制(DPCM)方法,需要用到前一塊MCU數(shù)據(jù)的DC值,所以需要等待前一塊MCU的量化結(jié)果,結(jié)合本文所設(shè)計的系統(tǒng),采用1:1:1的壓縮比,可將JPEG編碼算法按圖4所示的流程進行分解處理。本文引用地址:http://cafeforensic.com/article/189737.htm
在Altera公司的芯片EP3C25F324C8上利用SOPC完成了圖1所示的系統(tǒng)體系結(jié)構(gòu)。用Quartus軟件進行綜合,綜合結(jié)果如表1所列。利用Nios II IDE完成了JPEG編碼程序。程序運行時,利用時間戳(timestamp)測得圖像編碼所用的時間,并用公式Sp==T1/Tp計算得到加速比Sp,其中T1是單處理器時的運行時間,Tp為有p個處理器時的運行時間。結(jié)果如表2所列。
在FPGA中,LE的開銷量Z可分為處理器用量X與系統(tǒng)用量Y,因此Z≈N×X+Y,結(jié)合表1的數(shù)據(jù)可計算得出,一個處理器對應(yīng)的LE使用量約為3 769,占總量的15.3%。
在表2中,PC機的處理頻率是FPGA軟處理器的頻率的2 000/100=20倍,F(xiàn)PGA單處理器的處理時間是PC機的5 601 730/20 861≈268倍,可見與頻率不成正比。主要原因為PC機支持浮點運算,而FPGA的軟核處理器為定點運算。
由表2可看出,每增加一個處理器,加速比可提升50%,因此增加處理器的數(shù)量可明顯提升系統(tǒng)性能,而增加一個處理器在硬件上只需增加15.3%的開銷,因而具有一定的性價比。另外,由于處理器之間是相互獨立的,并在硬件結(jié)構(gòu)與軟件設(shè)計上保持一致,這使得當(dāng)增加處理器時,只需修改一些配置參數(shù)即可,這有利于減少增加處理時的工作量和開發(fā)成本。
系統(tǒng)運行于4個處理器時,運行過程中突然斷開一個處理器,模擬處理器出現(xiàn)問題的情況,測得系統(tǒng)仍能正常輸出,運行時間為2 551 542 μs。相比正常情況的2 108 085μs,顯然處理時間有所延長,但此時系統(tǒng)仍能正常輸出,因而證實了該系統(tǒng)具有一定的容錯性。
結(jié)語
針對目前多處理器系統(tǒng)針對性強、開發(fā)難度大、不具備容錯性的不足,本文提出了一種基于消息機制的多處理器系統(tǒng),實現(xiàn)了多處理器系統(tǒng)的通用性設(shè)計,簡化系統(tǒng)的設(shè)計難度,同時具有一定的容錯性與穩(wěn)定性。在文中利用FPGA技術(shù)進行仿真驗證。系統(tǒng)實驗表明,增加處理器數(shù)量可明顯提升系統(tǒng)的性能,并具有一定的性價比。在系統(tǒng)中的某一個處理器出現(xiàn)問題時,系統(tǒng)仍能正常輸出,具有一定的容錯性。
評論