Come calcolare il numero massimo di MIPS

August 28

"MIPS" è l'acronimo di "milioni di istruzioni al secondo" ad processore del computer. Calcolo MIPS del computer può dare la documentazione della velocità della propria CPU. Inoltre, è possibile continuare a calcolare le MIPS fino a quando il computer raggiunge la sua capacità di picco. Calcolo MIPS massimo di una macchina può essere realizzata con i dati del computer stesso.

istruzione

1 Fai clic su "Start" e digitare "cmd". Premere Invio." Digitare il seguente codice e premere "Invio"

int TimeMe ()
{
// ..... Fare il lavoro per essere a tempo ....
}

int timeit ()
{
LARGE_INTEGER liFreq, liStart, liEnd, liElap;

QueryPerformanceFrequency (e liFreq);

QueryPerformanceCounter (e liStart);
TimeMe ();
QueryPerformanceCounter (e liEnd);

liElap.QuadPart = liEnd.QuadPart - liStart.QuadPart;

// Get nano (miliardesimo) di un secondo accuratezza
liElap.QuadPart * = 1000000000;
liElap.QuadPart / = liFreq.QuadPart;

printf ( "Il tempo era% nanosecondi I64d \ n", liElap.QuadPart);
}.

Questo ti dà il numero di istruzioni al secondo.

2 Dividere le istruzioni per quanto tempo ci vuole per l'istruzione. Ad esempio, "1,5 milioni / 0,06".

3 Dividere il risultato di 1 milione. Questo vi dirà quanti milioni di istruzioni sono implementate al secondo.

4 Calcola MIPS in modo alternativo per verificare i risultati. Dividere il numero di cicli di CPU per secondo per il numero di cicli per istruzione. Prendi il CPI premendo il tasto "Start", digitare "cmd" e premere "Invio". Digitare il seguente codice:

Option Explicit

Declare Function QueryPerformanceCounter Lib "Kernel32" _
(X As Currency) As Boolean
Declare Function QueryPerformanceFrequency Lib "Kernel32" _
(X As Currency) As Boolean
Declare Function GetTickCount Lib "Kernel32" () As Long
Declare Function timeGetTime Lib "winmm.dll" () As Long

Test_Timers sub ()
Dim Ctr1 Come valuta, Ctr2 Come valuta, Freq Come valuta
Dim quantità_1 As Long, quantità_2 As Long, Loops As Long
'
'Time QueryPerformanceCounter
'
Se QueryPerformanceCounter (Ctr1) Poi
QueryPerformanceCounter Ctr2
Debug.Print & quot; Valore iniziale: & quot ;; Format $ (Ctr1, & quot; 0.0000 & quot;)
Debug.Print & quot; valore finale: & quot ;; Format $ (Ctr2, & quot; 0.0000 & quot;)
QueryPerformanceFrequency Freq
Debug.Print & quot; QueryPerformanceCounter risoluzione minima: 1 / & quot; & Amp; _
Freq * 10000; & Quot; sec & quot;
Debug.Print & quot; API luminosa: & quot ;; (Ctr2 - Ctr1) / Freq; & Quot; & quot secondi;
Altro
Debug.Print & quot;. Contatore ad alta risoluzione non supportata & quot;
Finisci se
'
'Time GetTickCount
'
Debug.Print
Loops = 0
Count1 = GetTickCount ()
Fare
Count2 = GetTickCount ()
Loop = Loops + 1
Loop Fino quantità_1 & lt;> quantità_2
Debug.Print & quot; risoluzione minima GetTickCount: & quot ;; _
(Quantità_2 - Count1); & Quot; MS & quot;
Debug.Print & quot; & quot ;; Took Loops; & Quot; loops & quot;
'
'Time timeGetTime
'
Debug.Print
Loops = 0
Count1 = timeGetTime ()
Fare
Count2 = timeGetTime ()
Loop = Loops + 1
Loop Fino quantità_1 & lt;> quantità_2
Debug.Print & quot; risoluzione minima timeGetTime: & quot ;; _
(Quantità_2 - Count1); & Quot; MS & quot;
Debug.Print & quot; & quot ;; Took Loops; & Quot; loops & quot;
End Sub

Dividere il risultato per 1 milione.