Wykład 4:

21
Wykład 4: Architektury mikroprocesorów: von Neumanna, Harvard VLIW i EPIC, ARM, MIPS

description

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. - PowerPoint PPT Presentation

Transcript of Wykład 4:

Page 1: Wykład 4:

Wykład 4:

Architektury mikroprocesorów:

von Neumanna, HarvardVLIW i EPIC, ARM, MIPS

Page 2: Wykład 4:

Architektura typowego mikroprocesora

text

CPUCentral Processor Unit

ADRES(20/21, 32)

DANE(32)

PAMIEĆRAM( W TYMPAMIĘĆKARTY

GRAFICZNEJoraz

PAMIĘĆFLASH (BIOS))

AD

RE

S8

/16

DA

NE

8/1

6

URZĄDZENIA

Input/OutputKLAWIATURA, MYSZ, DYSKI, KARTA DŹWIĘKOWA,

INNE KARTY ROZSZERZEŃ

ALUArithmetic Logic Unit

KOPROCESOR

REJESTRY

Page 3: Wykład 4:

Etapy wykonywania instrukcji

ALUArithmetic Logic

Unit

KOPROCESOR

REJESTRY:

UNIWERSALNEEAX,EBX,... ESI, EDI

SEGMENTOWECS, DS, ES, SS

SPECJALNEEIP, SR

ADRES (20/21,32)

DANE (32)

MA

GIS

TR

AL

AA

DR

ES

OW

A

MA

GIS

TR

AL

AD

AN

YC

H

WE

WN

ĘT

RZ

NA

MA

GIS

TR

AL

A D

AN

YC

H

add EAX, 1234h

Page 4: Wykład 4:

Cykl rozkazowy procesora o pięciu fazach potoku

add EAX, 1234h = 05 34 12 00 00

krok ADRES DANE 1 IP Fetch: pobranie kodu instrukcji 2 - Decode (rozpoznanie instrukcji) 3 IP+1 Read: operand (00 00 12 34h) 4 - Execute (wykonywanie instrukcji) 5 xxxx Write: wynik dodawania 6 IP+5 Fetch: następna instrukcja 7 ... ...

HIPERPOTOK PROCESORA Intel Pentium 4                                                                                                                                                           

Page 5: Wykład 4:

Cykl rozkazowy procesora

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 z pamię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.

add EAX, 1234h = 05 34 12 00 00

Page 6: Wykład 4:

Praca potokowa

Potok o „głębokości” 5:

Wykonywanie każdej instrukcji trwa 5 cykli, ale efektywnie tylko jeden.

krok ADD [1234h],EBX ADD ECX,10 MOV BX,[22h] MOV DX,[22h] MOV DX,[22h] 1 FETCH 2 DECODE FETCH 3 READ DECODE FETCH 4 EXECUTE READ DECODE FETCH 5 WRITE EXECUTE READ DECODE FETCH 6 FETCH (nast. instr.) WRITE EXECUTE READ DECODE 7 DECODE FETCH (nast. instr.) WRITE EXECUTE READ 8 DECODE FETCH (nast. instr.) WRITE EXECUTE 9 DECODE FETCH (nast. instr.) WRITE

10 DECODE FETCH (nast. instr.)

Page 7: Wykład 4:

krok ADD EAX,1234h ADD EAX,EBX 1 FETCH 2 DECODE 3 READ 4 EXECUTE FETCH 5 WRITE DECODE 6 FETCH (nast. instr.) READ 7 DECODE EXECUTE 8 WRITE 9 FETCH (nast. instr.)

10 DECODE

krok ADD EAX,1234h ADD EAX,EBX 1 FETCH 2 DECODE FETCH 3 READ DECODE 4 EXECUTE READ 5 WRITE EXECUTE 6 FETCH (nast. instr.) WRITE 7 DECODE FETCH (nast. instr.) 8 DECODE 9

Praca potokowaPodstawowe 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

Page 8: Wykład 4:

Praca potokowa

Podstawowe problemy: rozgałęzienia programu

krok ADD [1234h],EBX JC +10 MOV BX,[22h] MOV DX,[22h] MOV DX,[22h] 1 FETCH 2 DECODE FETCH 3 READ DECODE FETCH 4 EXECUTE READ DECODE FETCH 5 WRITE EXECUTE READ DECODE FETCH 6 FETCH (nast. instr.) WRITE EXECUTE READ DECODE 7 DECODE FETCH (nast. instr.) WRITE EXECUTE READ 8 DECODE FETCH (nast. instr.) WRITE EXECUTE 9 DECODE FETCH (nast. instr.) WRITE

10 DECODE FETCH (nast. instr.)

krok ADD [1234h],EBX JC +10 MOV AX, 0 MOV DX,[22h] MOV DX,[22h] 1 FETCH 2 DECODE FETCH 3 READ DECODE 4 EXECUTE READ 5 WRITE EXECUTE 6 FETCH (nast. instr.) WRITE 7 DECODE FETCH (nast. instr.) FETCH 8 DECODE DECODE FETCH 9 READ DECODE FETCH

10 EXECUTE READ DECODE 11 WRITE EXECUTE READ 12 FETCH (nast. instr.) WRITE EXECUTE

Page 9: Wykład 4:

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

Page 10: Wykład 4:

Magistrala - „wąskie gardło”

add [1234h],ebx = 01 1D 34 12 00 00

1. Różna długość instrukcji

2. Podwójne pobranie z pamięci

Efekt ten NIE WYSTĘPUJE w procesorach o architekturze RISC (LES)

krok ADRES DANE

1 IP Fetch: pobranie kodu instrukcji 2 - Decode (rozpoznanie instrukcji) 3 IP+2 Read: operand (00 00 12 34h) 4 00 00 12 34h Read: wartość zmiennej [00 00 12 34h] 5 - Execute (wykonywanie instrukcji) 6 00 00 12 34h Write: wynik dodawania 7 IP Fetch: następna instrukcja 8 ... ...

Page 11: Wykład 4:

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

Page 12: Wykład 4:

Architektury dostępu do pamięcivon Neumanna i Harvard

RAM

(PROGRAMUI DANYCH)

CPUADRES

DANE

RAMPROGRAMU

CPU

ADRES

DANE

RAMDANYCH

ADRES 2

DANE 2

Page 13: Wykład 4:

Architektura von Neumanna i Harvard

ALUArithmetic Logic

Unit

KOPROCESOR

REJESTRY:

UNIWERSALNEEAX,EBX,... ESI, EDI

SEGMENTOWEDS, ES

ADRES

DANE

AD

RE

S

DA

NE

WE

WN

ĘT

RZ

NA

MA

GIS

TR

AL

A D

AN

YC

H

SEGMENTOWECS

ADRESOWEEIP

ADRES 2

DANE 2 DA

NE

2

Page 14: Wykład 4:

Architekturavon Neumanna i Harvard

Page 15: Wykład 4:

Architektura VLIW - Very Long Instruction Word

ALUArithmetic Logic

Unit

KOPROCESOR

REJESTRY:

UNIWERSALNEEAX,EBX,... ESI, EDI

SEGMENTOWECS, DS, ES

SPECJALNEEIP, SR

ADRES (20/21,32)

DANE (32)

MA

GIS

TR

AL

AA

DR

ES

OW

A

MA

GIS

TR

AL

AD

AN

YC

H

WE

WN

ĘT

RZ

NA

MA

GIS

TR

AL

A D

AN

YC

H

ADD DI,BX

MOV CX,10

MOV SI,DX

MUL BX

FDIV ST(1)

ALU1 ALU2 ALU3 MOV FPU

Wada: brak skalowalności

Page 16: Wykład 4:

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

przedrostek INSTR 1 INSTR 2 INSTR 3

Page 17: Wykład 4:

Rozwój architektur CPU

Page 18: Wykład 4:

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 !!!

Page 19: Wykład 4:

Procesor ARMWersje:

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.

Page 20: Wykład 4:

Procesor MIPS Microprocessor without Interlocked Pipeline Stages

(Kalifornijski Uniwersytet 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".)

Page 21: Wykład 4:

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)