寄存器優化
A. fortran怎樣使用寄存器變數優化fortran代碼提高程序效率還有哪些方法
……以前高性能計算之所以使用Fortran而不是擁有底層操作能力的c語言,就是因為Fortran格式的嚴格有利於計算機對程序進行優化。不需要你自己考慮這個層面的優化工作。最實際的方法還是查看編譯器的各種優化開關。如果耗時太長可以考慮將程序並行化。
B. 如何防止寄存器被優化掉
在這個BUF兩端的信號線上加上下面的屬性(Verilog HDL版本): wire bufin /* synthesis syn_keep=1 xc_props="X" */; 具體解釋:
1、syn_keep=1就是保專留這個信號屬線,是它成為一個instance(synplify的),然後就可以對它添加XILINX的約束屬性;
2、xc_props=「」是synplify為XILINX保留留的約束屬性,可以透傳到ISE的實現中去,從而約束實現過程。
3、「X」屬性是在MAP時識別的KEEP屬性,如果用XST綜合就只需要在信號線的兩端加上X屬性就可以透傳到MAP中去。但是synplify並不能識別,因此需要通過以上的方法將X屬性透傳到MAP中去。類似在 VHDL中也適用 attribute syn_keep of temp01 : signal is true; attribute xc_props of temp01 : signal is "X";
C. 關於匯編和c語言效率哪個高
當然是匯編語言效率高:
高級語言一般都是被編譯程序編譯成 匯編代碼,然後再轉換成機器碼.
匯編語言直接被編譯成機器碼.
如果樓主學了匯編語言就知道了,匯編語言更靠近硬體,是做病毒的好東西!
D. RISC技術的優化措施
這三者又有:程序執行時間=I*CPI*T,因此,從這個等式可看出減小其中任一個都可提高CPU的速度,因此RISC技術就從這三方面下手,對I、CPI、T進行優化改良,其措施如下:
1、採用多級指令流水線結構
採用流水線技術可使每一時刻都有多條指令重疊執行,以減小CPI的值,使CPU不浪費空周期。實例:Pentium Ⅱ/Pro/Celeron可同時發出執行五條指令,AMD-K6/K6-2可同時發出六條指令。
2、選取機器中使用頻率最高的簡單指令及部分復雜指令
這樣可減小時鍾周期數量,提高CPU速度,其實質是減小CPI下的值實現。實例:選取運算指令、載入、存儲指令和轉移指令作主指令集。
3、採用載入(Load)、存儲(Store)結構
只允許Load和Store指令執行存儲器操作,其餘指令均對寄存器操作。實例:Amd-K6/K6-2、PⅡ/Celeron/Pro均支持對寄存器的直接操作和重新命名,並大大增加通用寄存器的數量。
4、延遲載入指令和轉移指令
由於數據從存儲器到寄存器存在二者速度差、轉移指令要進行入口地址的計算,這使CPU執行速度大大受限,因此,RISC技術為保證流水線高速運行,在它們之間允許加一條不相關的可立即執行的指令,以提高速度。實例:主要體現於預測執行、非順序執行和數據傳輸等方面,除Intel P54/55C不支持,像K6-2、PⅡ均支持。
5、採用高速緩存(cache)結構
為保證指令不間斷地傳送給CPU運算器,CPU設置了一定大小的Cache以擴展存儲器的帶寬,滿足CPU頻繁取指需求,一般有兩個獨立Cache,分別存放「指令+數據」。實例:PⅡ/Celeron:16K+16K,AMD-K6/K6-2為32K+32K,Cyrix MⅡ:64K(實也為2個32K Cache,此作共享Cache),PⅡ還加了L2 Cache,更是大幅提高了CPU速度。
以上簡談了RISC的精髓,望對計算機愛好者有所幫助,希望你能在通向計算機寶庫的大道上邁進一步
E. 51單片機ram不夠用,怎麼優化程序
1.肯定的,嵌套越多,要壓棧保存的信息就越多,佔用的RAM就越多了,回對51來說,最多就是答CPU內256位元組的RAM。
2.是的。
3.沒用過這晶元……我用的最多的是AVR
4因為你定義了一個pagebuf[512],512位元組啊!51單片機的data撐死才256位元組(還沒算壓棧保存數據需要的RAM),所以編譯器自動將這個數組放在了XDATA中。
F. 如何設置提高電腦CPU處理性能
1.使用鍵盤上的快捷鍵Win+R,打開運行對話框,並在對話框中輸入「msconfig」命令。
(6)寄存器優化擴展閱讀:
CPU包括運算邏輯部件、寄存器部件和控制部件等。
邏輯部件
英文Logic components;運算邏輯部件。可以執行定點或浮點算術運算操作、移位操作以及邏輯操作,也可執行地址運算和轉換。
寄存器
寄存器部件,包括寄存器、專用寄存器和控制寄存器。 通用寄存器又可分定點數和浮點數兩類,它們用來保存指令執行過程中臨時存放的寄存器操作數和中間(或最終)的操作結果。 通用寄存器是中央處理器的重要部件之一。
控制部件
英文Control unit;控制部件,主要是負責對指令解碼,並且發出為完成每條指令所要執行的各個操作的控制信號。
其結構有兩種:一種是以微存儲為核心的微程序控制方式;一種是以邏輯硬布線結構為主的控制方式。
微存儲中保持微碼,每一個微碼對應於一個最基本的微操作,又稱微指令;各條指令是由不同序列的微碼組成,這種微碼序列構成微程序。中央處理器在對指令解碼以後,即發出一定時序的控制信號,按給定序列的順序以微周期為節拍執行由這些微碼確定的若干個微操作,即可完成某條指令的執行。
簡單指令是由(3~5)個微操作組成,復雜指令則要由幾十個微操作甚至幾百個微操作組成。
G. 請問:在Quartus II中編譯中,什麼情況下編譯綜合器會將程序中的寄存器優化掉,謝謝!
我碰到一種情況,三個寄存器產生的信號完全相同的時候,結果用signaltap看,只有一個寄存器生成了。