220 likes | 350 Views
Wykład 4:. Architektury mikroprocesorów: von Neumanna, Harvard VLIW i EPIC, ARM, MIPS. Architektura typowego mikroprocesora. Etapy wykonywania instrukcji. add EAX, 1234h. HIPERPOTOK PROCESORA Intel Pentium 4. Cykl rozkazowy procesora o pięciu fazach potoku.
E N D
Wykład 4: • Architektury mikroprocesorów: • von Neumanna, Harvard • VLIW i EPIC, • ARM, MIPS
Architektura typowego mikroprocesora
Etapy wykonywania instrukcji add EAX, 1234h
HIPERPOTOK PROCESORA Intel Pentium 4 Cykl rozkazowy procesora o pięciu fazach potoku add EAX, 1234h = 05 34 12 00 00
Cykl rozkazowy procesora add EAX, 1234h = 05 34 12 00 00 • W wykonaniu każdej instrukcji przez procesor można wyróżnić kilka faz. Typowo wyróżnia się następujące fazy: • FETCH - pobranie instrukcji • DECODE - dekodowanie obrazu binarnego instrukcji • READ - odczyt argumentów instrukcji z rejestrów procesora lub zpamięci • EXECUTE - wykonanie operacji arytmetycznej lub logicznej • WRITE - zapis wyniku do rejestru lub pamięci • Należy zauważyć, że dla wielu instrukcji niektóre z wymienionych faz są zbędne, np. instrukcja przesłania międzyrejestrowego nie wymaga użycia jednostki arytmetyczno-logicznej.
Praca potokowa Potok o „głębokości” 5: Wykonywanie każdej instrukcji trwa 5 cykli, ale efektywnie tylko jeden.
Praca potokowa Podstawowe problemy:oczekiwanie na wyniki synchronizacja potoku - "odczyt po zapisie„ (RAW - Read After Write) -SCOREBOARDING - flagi wskazujące na ważność zawartości rejestrów procesora -BYPASSES (obejścia) - dodatkowe szyny wewnątrz procesora
Praca potokowa Podstawowe problemy:rozgałęzienia programu
Praca potokowa - sposoby minimalizacji wad - Przewidywanie skoków Współczesne procesory potrafią przewidywać skoki z 90% skutecznością - Wykonywanie jednoczesne obu rozgałezień programu (architektura hiperskalarna)do czasu sprawdzenia warunku rozgałęzienia - Opóźnienie skoków w potoku: Skok opóźniony (delayed branch): wykonaj następną instrukcję za bieżącą, a potem skocz
Magistrala - „wąskie gardło” add [1234h],ebx = 01 1D 34 12 00 00 • Różna długość instrukcji • Podwójne pobranie z pamięci • Efekt ten NIE WYSTĘPUJE w procesorach o architekturze RISC (LES)
Magistrala dostępu do pamięci – „wąskie gardło” -konieczność pobierania równocześnie instrukcji (kodu) oraz argumentów instrukcji (danych) z tej samej pamięci
Architektury dostępu do pamięci von Neumanna i Harvard
Architektura von Neumanna i Harvard
Architektura von Neumanna i Harvard
Architektura VLIW - Very Long Instruction Word ADD DI,BX MOV CX,10 MOV SI,DX MUL BX FDIV ST(1) Wada: brak skalowalności
Architektura EPIC(Intel Itanium) Explicitly Parallel Instruction Computing - przetwarzanie jawnie równoległe Grupowanie instrukcji i oznaczaniu ich wzajemnych relacji już na etapie kompilacji programu. Instrukcje są zamknięte w tzw. paczkach (po trzy instrukcje), które są ładowane do procesora równocześnie. Każda paczka zawiera przedrostek - grupę bitów informujących procesor o tym, do których jednostek ma skierować poszczególne rozkazy. W przedrostku znajdują się też informacje o tzw. barierach wykonań służących do koordynacji wykonywania poszczególnych instrukcji. Jeśli pomiędzy dwoma ciągami rozkazów znajdują się bariery wykonania, to drugi ciąg zostanie wykonany dopiero wtedy gdy znane będą wyniki działania rozkazów z pierwszego ciągu. Skalowalność: Kod nie jest on dostosowany ściśle do budowy procesora (jak w układach VLIW) - zamiast równoległych instrukcji i odwołań zawiera tylko informacje, które instrukcje mogą się wykonać równolegle
Procesor ARM -”najelegantszy” procesor Najprostszy procesor 32-bitowy o architekturze RISC występujący w wielu odmianach (wersje jądra 1..6) – zawiera tylko ok. 35 tys. tranzystorów. Skonstruowany całkowicie od podstaw w 1983 roku na zlecenie brytyjskiej firmy Acorn przez grupę inżynierów kierowaną przez Rogera Wilsona i Steve'a Furbera. Skonstruowany poprzez udoskonalenie procesora 65xx (np. Atari (6502), Commodore (6510), Apple II). Krótka lista rozkazów (nieco ponad 50 instrukcji). 16 uniwersalnych rejestrów, kilka trybów pracy (użytkownika, systemu, przerwań, itp. …) Jądro może być łączone z różnymi dedykowanymi do konkretnych zastosowań modułami rozszerzeń (tzw. mikrokontrolery oparte na ARM). Nazwa to skrót: Acorn RISC Machine, „przechrzczony” po kupieniu Acorna przez Olivetti na Advanced RISC Machine Prosta konstrukcja przekładająca się na bardzo mały pobór mocy: Np. procesor Strong ARM, pracuje z zegarami w zakresie 100-300 MHz przy poborze mocy rzędu zaledwie 1 W !!!
Procesor ARM Wersje: 1987: ARM2 , 1989: ARM3 , 1991: ARM6 , 1993: ARM7(v.4) , 1995: ARM8 , 1998: ARM10 (v.7) Producenci: IBM, Infineon, Intel, Freescale (dawniej Motorola), NEC, Philips, Samsung, Texas Instruments, Toshiba, NetSilicon, Atmel, … Zastosowany min. w komputerach BBC (moduł z procesorem rozszerzającym możliwości komputera 8-bitowego) oraz w komputerze Apple Newton (pierwowzór dzisiejszych kieszonkowych PDA - Personal Digital Asistants), telefonach komórkowych, .. i w bardzo wielu innych urządzeniach. Każda z instrukcji zawiera 4-bitowy kod, określający warunki jej wykonania, a także bit wskazujący na to, czy dana instrukcja może zmienić zawartość rejestru stanu procesora. IF warunek INSTRUKCJA Konstrukcja taka pozwala na eliminację wielu rozgałęzień programu, upraszcza znacznie logikę procesora, a równocześnie przyspiesza wykonanie programu dzięki zmniejszeniu objętości kodu.
Procesor MIPS Microprocessor withoutInterlocked Pipeline Stages (KalifornijskiUniwersytet Stanford) Pomiedzy poszczególnymi fazami potoku nie występują relacje wymagające sprzętowego uzależnienia. Obowiązek odpowiedniego ułożenia kodu programu spada na kompilatory - Idea w praktyce bardzo trudna do spełnienia. Najnowsze z procesorów MIPS - R10000 i R12000 (64 bitowe)- wyposażone są w zwielokrotnione jednostki zmiennoprzecinkowe, oraz w superskalarne jednostki wykonawcze (do 5 instrukcji równocześnie). Układy MIPS stanowią serce graficznych stacji roboczych Silicon Graphics. (Filmy „Toy Story", „Jurassic Park", „Dawno temu w trawie".)
Rodziny procesorów • Pierwsze mikrokomputery „domowe”: – 8-bitowy Z80: Sinclair ZX-81, ZX-Spectrum 48; 6502, 6510: ATARI 800XL, Commodore 64, • Intel x86 (komputery PC): – 16 bitowe: 8086/88, 80286 – 32 bitowe: i386, i486, Pentium, Pentium Pro, Pentium II, Celeron, Pentium III, Celeron II, Pentium IV (CISC/RISC) – 64 bitowe: Itanium (architektura EPIC) • AMD (zgodna z x86): – 32 bitowe: AMD486, 5x86, K5, K6, Athlon, Duron • Motorola 68k (komputery Apple): – 68000, 68020 (16-bit), 68030, 68040, 68060 (32-bit) • architektury RISC (32, 64- bitowe – systemy UNIX): – Alpha (DEC/Compaq), MIPS (SGI), SPARC (Sun), PA (HP), Power (IBM), PowerPC(IBM/Motorola) • Procesory sygnałowe (Harvard + praca potokowa + zwielokrotnione jednostki ALU/FPU)