WYKŁAD 4 PSYCHICZNE I FIZYCZNE EFEKTY DZIAŁANIA SUBSTANCJI UZALEŻNIAJĄCYCH
Wykład 4:
-
Upload
wallace-sloan -
Category
Documents
-
view
33 -
download
2
description
Transcript of Wykład 4:
![Page 1: Wykład 4:](https://reader035.fdocuments.pl/reader035/viewer/2022062517/5681332e550346895d9a2b69/html5/thumbnails/1.jpg)
Wykład 4:
Architektury mikroprocesorów:
von Neumanna, HarvardVLIW i EPIC, ARM, MIPS
![Page 2: Wykład 4:](https://reader035.fdocuments.pl/reader035/viewer/2022062517/5681332e550346895d9a2b69/html5/thumbnails/2.jpg)
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:](https://reader035.fdocuments.pl/reader035/viewer/2022062517/5681332e550346895d9a2b69/html5/thumbnails/3.jpg)
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:](https://reader035.fdocuments.pl/reader035/viewer/2022062517/5681332e550346895d9a2b69/html5/thumbnails/4.jpg)
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:](https://reader035.fdocuments.pl/reader035/viewer/2022062517/5681332e550346895d9a2b69/html5/thumbnails/5.jpg)
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:](https://reader035.fdocuments.pl/reader035/viewer/2022062517/5681332e550346895d9a2b69/html5/thumbnails/6.jpg)
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:](https://reader035.fdocuments.pl/reader035/viewer/2022062517/5681332e550346895d9a2b69/html5/thumbnails/7.jpg)
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:](https://reader035.fdocuments.pl/reader035/viewer/2022062517/5681332e550346895d9a2b69/html5/thumbnails/8.jpg)
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:](https://reader035.fdocuments.pl/reader035/viewer/2022062517/5681332e550346895d9a2b69/html5/thumbnails/9.jpg)
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:](https://reader035.fdocuments.pl/reader035/viewer/2022062517/5681332e550346895d9a2b69/html5/thumbnails/10.jpg)
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:](https://reader035.fdocuments.pl/reader035/viewer/2022062517/5681332e550346895d9a2b69/html5/thumbnails/11.jpg)
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:](https://reader035.fdocuments.pl/reader035/viewer/2022062517/5681332e550346895d9a2b69/html5/thumbnails/12.jpg)
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:](https://reader035.fdocuments.pl/reader035/viewer/2022062517/5681332e550346895d9a2b69/html5/thumbnails/13.jpg)
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:](https://reader035.fdocuments.pl/reader035/viewer/2022062517/5681332e550346895d9a2b69/html5/thumbnails/14.jpg)
Architekturavon Neumanna i Harvard
![Page 15: Wykład 4:](https://reader035.fdocuments.pl/reader035/viewer/2022062517/5681332e550346895d9a2b69/html5/thumbnails/15.jpg)
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:](https://reader035.fdocuments.pl/reader035/viewer/2022062517/5681332e550346895d9a2b69/html5/thumbnails/16.jpg)
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:](https://reader035.fdocuments.pl/reader035/viewer/2022062517/5681332e550346895d9a2b69/html5/thumbnails/17.jpg)
Rozwój architektur CPU
![Page 18: Wykład 4:](https://reader035.fdocuments.pl/reader035/viewer/2022062517/5681332e550346895d9a2b69/html5/thumbnails/18.jpg)
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:](https://reader035.fdocuments.pl/reader035/viewer/2022062517/5681332e550346895d9a2b69/html5/thumbnails/19.jpg)
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:](https://reader035.fdocuments.pl/reader035/viewer/2022062517/5681332e550346895d9a2b69/html5/thumbnails/20.jpg)
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:](https://reader035.fdocuments.pl/reader035/viewer/2022062517/5681332e550346895d9a2b69/html5/thumbnails/21.jpg)
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)