(原創) 硬體是如何加速軟體呢? (IC Design) (Verilog)

本文探讨了提高程序运行效率的四种主要方法:优化代码写法、改进算法、关键部分改用汇编语言,以及利用硬件加速软件。通过具体实例说明了如何在不同层面提升程序性能。

有些程序非常耗CPU運算,無論CPU怎麼進步,還是永遠覺得不夠快,如影像方面的程式,隨著解析度越來越高,運算量就越來越大,再如資料備份的壓縮解壓縮,當資料量很大時,運算量也是非常大,要改進執行速度,通常會用以下幾種方式著手。

1.修改程式碼寫法 : 一些不當的程式寫法,的確會影響速度,如使用pointer或reference可加速,卻使用copy的方式。這點好好閱讀Scott Meyers的Effective C++,More Effective C++, Effective STL就可寫出有效率的程式碼。

2.演算法的改進:演算法的好壞對於效率影響很大,這也是最經濟的方式,是純軟體的方法。

3.將關鍵部份改用組合語言撰寫:如某個關鍵程式需要回圈重複執行上萬次,將這段關鍵的程式改用組合語言撰寫,就可加快速度,也是軟體的方法,算是軟體的極限了。

4.將關鍵部份改用硬體:常常聽到用硬體加速軟體,但到底硬體是怎麼加速軟體呢?今天做了Altera DE2 SOPC的實驗,總算知道硬體是怎麼加速軟體了。

一般CPU都會提供組合語言,讓軟體使用,但DE2上的FPGA晶片,讓我們可以設計自己的組合語言,也就是說,我們可以自己將軟體很耗時很關鍵的部份,用Verilog寫RTL,自訂一個組合語言指令,然後Load進FPGA,然後用軟體直接call自己建立的組合語言指令,為什麼這樣比較快呢?本來某些動作,須靠多個組合語言指令才能完成,但現在因為自訂了一個新的組合語言指令,且是為某特定要求量身訂做的指令,必定比原本的組合語言指令快,這樣就可以透過硬體的方式來加速軟體了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值