新西蘭程序輔導

留學生程序輔導,輔導編程,解決各類編程與作業, CS Assignment, 輔導各類CS作業

C++ code optimiaztion via gprof and gcov

CS作業代寫

Due date: April 2, in class

<标题>Read about the linpack benchmark at

<标题>http://www.netlib.org/utk/people/JackDongarra/faq-linpack.html

Download the (slightly modified) file linpack.c from

http://www.cas.mcmaster.ca/~nedialk/COURSES/3f03/private/linpack.c

When running this benchmark on a 2.66GHz Dual-Core Intel Xeon, I obtain this table (MFLOPS

is million floating-point operations per second):

n max MFLOPS compiler flags

<标题>100 329.813 gcc

<标题>1000 410.306

330.914 -O0

931.276 -O1

<标题>930.425 -O2

<标题>1276.764 -O3

<标题>408.111 -O0

1208.931 -O1

<标题>1220.399 -O2

1619.045 -O3

<标题>Problem 1 (6 points) Study the compile options of the gcc compiler, and in particular the

optimization flags, and the flags that are related to SSE instructions.

<标题>Produce the same table for each of penguin, mills, and your own computer. Keep the same

flags as above, but you can also add other flags. Try to obtain as high count as you can. Submit

the three tables and a discussion on your results.

Note. You can obtain information about your system

FIFO設計 verilog代寫

同步FIFO的設計思路:

<标题>1.同步FIFO的基本原理:

FIFO(First In First Out)——是一種可以實現數據先入先出的存儲器件。FIFO就像一個單向管道,數據只能按固定的方向從管道一頭進來,再按相同的順序從管道另一頭出去,最先進來的數據必定是最先出去。FIFO被普遍用作數據緩沖器。

FIFO的基本單元是寄存器,作為存儲器件,FIFO的存儲能力是由其內部定義的存儲寄存器的數量決定的。本題中所設計的是同步FIFO(即輸出輸入端時鐘頻率一致),異步復位,其存儲能力為(4×4,設計的這么小主要是由于板子的寄存器數量非常有限當然也可以使用4×8或者4×16),輸出兩個狀態信號:full與empty,以供后繼電路使用。

<标题>2.本組同步FIFO的設計分析與框架:

同步FIFO整體架構:

<标题>解釋與說明:上圖中最大的矩形框所包圍的內部部分為所設計的同步FIFO,由FIFO主控體和RAM構成。FIFO主控體接收來自外部的讀寫控制信號(read_n,write_n)、復位信號(reset_n)和時鐘信號(clock),并在時鐘上升沿到來時根據從RAM返回的counter信號進行讀寫控制判斷以及讀寫指針的計算,并將所得結果以mwrite_n,mread_n,wr_pointer ,rd_pointer信號的形式傳遞給RAM進行相應的讀寫操作。其中counter信號代表RAM體內已存儲未讀數據的數據個數。整個同步FIFO包括八條外部數據信號線(包括總線)和五條內部數據信號線。

 

 

同步FIFO的具體設計:

程序開始先進行復位判斷,假如復位鍵按下,則進行復位。接著判斷讀信號是否有效,假如無效,則判斷寫是否有效,假如有效,并且存儲體不滿的話則進行寫操作,先產生正確的寫指針,然后將輸入的數據寫入對應的RAM空間內。讀雷同。當讀寫都有效時,counter不做更改,而直接產生讀寫指針,然后進行讀寫操作,當然在讀寫之前要先判斷是否空滿。