Instrukcje na cykl
W architekturze komputerów instrukcje na cykl ( IPC ), powszechnie nazywane instrukcjami na zegar , to jeden z aspektów wydajności procesora : średnia liczba instrukcji wykonywanych w każdym cyklu zegara . Jest to multiplikatywna odwrotność liczby cykli przypadających na instrukcję .
Wyjaśnienie
Podczas gdy wczesne generacje procesorów wykonywały wszystkie kroki sekwencyjnego wykonywania instrukcji, nowoczesne procesory mogą wykonywać wiele czynności równolegle. Ponieważ nie można po prostu podwajać taktowania zegara, potok instrukcji i konstrukcja superskalarnego procesora ewoluowały, więc procesory mogą równolegle korzystać z różnych jednostek wykonawczych - przeglądając przychodzące instrukcje w celu ich optymalizacji. Prowadzi to do tego, że liczba instrukcji na ukończony cykl jest znacznie wyższa niż 1 i jest odpowiedzialna za znaczną poprawę szybkości w kolejnych generacjach procesorów.
Obliczanie IPC
Obliczenie IPC odbywa się poprzez uruchomienie ustalonego fragmentu kodu, obliczenie liczby instrukcji na poziomie maszyny wymaganych do jego wykonania, a następnie użycie wysokowydajnych timerów do obliczenia liczby cykli zegara wymaganych do wykonania go na rzeczywistym sprzęcie. Ostateczny wynik wynika z podzielenia liczby instrukcji przez liczbę cykli zegara procesora.
Liczbę instrukcji na sekundę i operacji zmiennoprzecinkowych na sekundę dla procesora można wyliczyć, mnożąc liczbę instrukcji na cykl przez częstotliwość zegara (liczbę cykli na sekundę podaną w hercach ) danego procesora. Liczba instrukcji na sekundę jest przybliżonym wskaźnikiem prawdopodobnej wydajności procesora.
Liczba instrukcji wykonywanych na zegar nie jest stałą dla danego procesora; zależy to od tego, w jaki sposób uruchamiane oprogramowanie współdziała z procesorem, a nawet całą maszyną, w szczególności hierarchią pamięci . Jednak niektóre cechy procesora zwykle prowadzą do projektów, które mają wyższe niż przeciętne wartości IPC; obecność wielu arytmetycznych jednostek logicznych (jednostka ALU to podsystem procesora, który może wykonywać elementarne operacje arytmetyczne i logiczne) oraz krótkie potoki. Podczas porównywania różnych zestawów instrukcji prostszy zestaw instrukcji może prowadzić do wyższej liczby IPC niż implementacja bardziej złożonego zestawu instrukcji przy użyciu tej samej technologii chipowej; jednak bardziej złożony zestaw instrukcji może być w stanie wykonać bardziej użyteczną pracę przy mniejszej liczbie instrukcji. W związku z tym porównywanie liczb IPC między różnymi zestawami instrukcji (na przykład x86 vs ARM) jest zwykle bez znaczenia.
Czynniki rządzące IPC
Określony poziom instrukcji na sekundę można osiągnąć przy wysokim IPC i niskiej częstotliwości taktowania (jak AMD Athlon i wczesna seria Core firmy Intel ) lub przy niskim IPC i wysokiej częstotliwości taktowania (jak Intel Pentium 4 i do mniejszej zakres AMD Bulldozer ). Oba są poprawnymi projektami procesorów, a wybór między nimi jest często podyktowany historią, ograniczeniami technicznymi lub presją marketingową. [ oryginalne badania? ] Jednak wysoki IPC z wysoką częstotliwością zawsze zapewni najlepszą wydajność.
Szybkość komputera
Użyteczna praca, którą można wykonać na dowolnym komputerze, zależy od wielu czynników oprócz szybkości procesora. Czynniki te obejmują architekturę zestawu instrukcji , mikroarchitekturę procesora i organizację systemu komputerowego (taką jak projekt systemu pamięci dyskowej oraz możliwości i wydajność innych podłączonych urządzeń), wydajność systemu operacyjnego oraz wysoki poziom projektowanie oprogramowania aplikacyjnego .
Dla użytkowników i nabywców komputerów testy porównawcze aplikacji , a nie instrukcje na cykl, są zazwyczaj znacznie bardziej użytecznym wskaźnikiem wydajności systemu. Jednak IPC dostarcza przykładu, dlaczego szybkość zegara nie jest jedynym czynnikiem mającym znaczenie dla wydajności komputera.