編另一個程序,這個程序編得有些艱難,主要是需要直接操作底層硬件。
運算都是一樣的,重複進行10萬次15*15。
而且高振東在程序裡,必須把通訊時間扣掉,因為這是DJS-59向那塊試驗電路闆通信,控制其進行計算,然後再把數據傳回來。
運算可能會很快,但是通信的時間可就長了,高振東的目的,是扣掉這些通信時間,才能大緻算出運算所需的總時間來。
好在這個東西,也不算複雜,高振東動作也不慢。
一個小時後,高振東編譯完成啟動了程序。
這次的時間,比DJS-59計算的時間還長,高振東早有所料,很有耐心。
沒辦法,外設總線的通信速度比起内部總線來,差太遠了。
很久過去,屏幕上跳出了一個數字,高振東看了一眼,笑了,要的就是這個。
相比使用DJS-59進行計算,扣掉通信時間之後,這個IC實驗電路闆在相同頻率情況下,其速度快得離譜。
——二十五倍!
這就是高振東要的東西。
——單周期硬件乘法器!
DJS-59是沒有硬件乘法器的,别說單周期硬件乘法器了,就連多周期的、控制加法器實現乘法的硬件乘法器都沒有。
前者可以在一個指令周期内完成乘法的計算,後者不一定,比如51單片機,4個指令周期可以完成一次乘法運算。
不用說,前者快而貴,後者略快,略貴。
而DJS-59這個數字就龐大了,沒有硬件乘法器的它,隻能通過程序指令,一步一步的控制加法器和寄存器完成乘法運算。
對于DJS-59來說,大概15個指令才能完成一次8二進制位的整數乘法運算,其中又有不少多周期指令,綜合下來,大約是25個指令周期才能完成一次乘法運算。
而且這隻是8位的情況,如果擴展到16位、32位,那這個數字還會上升。
至于浮點數,那這個情況就更加惡劣了。
這就是DJS-59的弱點,也是早期大部分通用CPU的弱點,高級一點的數學運算它是不行的。
但是對于信号處理來說,乘法算是基本運算,也是使用最多的運算。
這就是通用CPU用到信号處理上非常羸弱的原因,算不過來,娘胎裡的毛病。
但是高振東的下一步,一切的一切,最終目标都基本上直指雷達,靠DJS-60D,哪怕是IC化了,也一樣是個弱雞,不夠好。
所以高振東就琢磨着自己做一個硬件乘法器,而且目标直指單周期浮點硬件乘法器,贊美互聯網,贊美導師,前世這東西,他是在VHDL上面實現過的,對于其結構,清楚得很。
VHDL,硬件描述語言,在CPLD/FPGA上的IC設計語言之一,能夠直接設計IC硬件結構。
雖然VHDL的最終結果是基于邏輯單元的,和用晶體管或者邏輯門直接搭的連接有區别,可是其依據的算法,高振東卻是門兒清,還是能換得過來的。
之所以這個乘法器的電路闆這麼大個,這就是原因,要隻是一個加法器實現的硬件乘法器,那就在DJS-60D裡面增加就好了,成本面積增加都不多,但是相應的,性能增加也就不多,這個事情要做,但是對于高振東的需求來說,還不夠!
而高振東搞這個,算是一個16位浮點數的單周期硬件乘法器,絕對絕對的遙遙領先。
高振東興高采烈的把第二個程序的乘數,換成了兩個16位浮點數,再次啟動了計算。
這一次,他沒有去折磨DJS-59了,這種計算,實在是太折磨DJS-59這個老家夥了,雖然它依然比人算得快得多。
很快,計算結果和耗時都跳了出來。
高振東對了對自己準備好的計算結果,完全一緻,至于時間,和算8位整數乘法是一樣的。
這就是單周期硬件乘法器的魅力,隻要不超出它的設計規格,參與計算的數在其設計範圍内,那不管算什麼,它都是一樣的速度——單指令周期。
高振東哈哈大笑起來,這雖然隻是個中間成果,僅僅是一塊原理電路闆而已,但是對于相當一部分同志來說,其實改改是已經能用了,畢竟相當多的雷達,對于體積的要求是不高的。
而且相比以前的後端信号處理電路,這塊50*50cm的闆子,絕對算得上是小巧玲珑!
高振東樂呵呵的跑到機要室,要了一個防工委領導的電話。
在電話裡,他隻向防工委領導說了一句話:“領導,麻煩召集級别夠的搞雷達的同志,我有好東西!”