Organizacja i Architektura Komputerów Literatura Literatura

Transcription

Organizacja i Architektura Komputerów Literatura Literatura
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Organizacja i Architektura
Komputerów
prof. dr hab. in . Ryszard Pe!ka
e-mail: [email protected]
Wprowadzenie
1
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Literatura
[1]
W. Stallings, Organizacja i architektura
komputerów, WNT, 2004 (t!um. wydania 4)
[2]
B.S. Chalk, Organizacja i architektura komputerów, WNT, 1998
Literatura uzupe niaj!ca
[1]
D.A. Patterson, J.L. Hennessy, Computer Organization
and Design: The Hardware/Software Interface, Morgan
Kaufmann, 3rd edition, 2005
[3]
P. Metzger, Anatomia PC, Helion, 2007
[4]
A. Kowalczyk, Asembler, Croma, 1999
[2]
[5]
A. Skorupski, Podstawy budowy i dzia ania komputerów,
WK#, 2005
J.P. Hayes, Computer Architecture Organization,
McGraw-Hill, 4th edition, 2002
[3]
W. Stallings, Computer Organization and Architecture,
Prentice Hall, 6th edition, 2003
4
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Internet
[1]
Plan przedmiotu
Computer Architecture WWW Home Page
http://www.cs.wisc.edu/~arch/www
strona Uniwersytetu Wisconsin
Wprowadzenie
–
[2]
–
AMD web site
http://www.amd.com
–
–
[3]
–
Intel Developer’s Site
http://developer.intel.com
5
6
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Plan przedmiotu (cd.)
Plan przedmiotu (cd.)
Historia i ewolucja komputerów
–
–
–
Procesor (CPU)
wp!yw technologii na rozwój komputerów
wydajno%& komputerów
programy testuj"ce wydajno%& (benchmarki)
–
–
–
Arytmetyka komputerów
–
–
–
–
kody liczbowe, konwersja kodów
operacje arytmetyczne
arytmetyka zmiennopozycyjna
–
–
–
–
–
standardowa architektura procesora
jednostka wykonawcza i steruj"ca
cykl wykonania rozkazu
stos
przerwania
Architektury wspó!czesnych procesorów
Uk!ady i bloki cyfrowe
7
Podstawowe poj$cia, terminologia
Co to jest architektura komputerów?
Co to jest organizacja komputerów?
Bloki funkcjonalne komputerów
Podstawowe zasady wspó!pracy bloków funkcjonalnych
–
bramki, przerzutniki, rejestry, liczniki, multipleksery
pó!sumator i sumator
jednostka arytmetyczno-logiczna ALU
uk!ady mno enia i dzielenia
–
–
8
ogólna architektura procesorów IA-32 i IA-64
rejestry
segmentacja pami$ci
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Plan przedmiotu (cd.)
Plan przedmiotu (cd.)
J$zyk asemblera
Pami$&
j$zyk asemblera i wysokiego poziomu
tryby adresowania argumentów
formaty instrukcji
lista instrukcji (ISA), grupy instrukcji
–
–
–
–
–
–
–
–
instrukcje przes!a'
operacje arytmetyczne
operacje logiczne, operacje na bitach
skoki, p$tle, instrukcje steruj"ce
–
–
–
przyk!ady programów
makroasemblery
debugery
–
–
–
Pami$& cache
–
–
–
9
technologie wytwarzania pami$ci
pami$ci RAM, SRAM, DRAM
pami$ci ROM, PROM, EEPROM i Flash
wspó!praca procesora z pami$ciami
bezpo%redni dost$p do pami$ci (DMA)
segmentacja i stronicowanie
pami$& wirtualna
hierarchia systemu pami$ci
metody odwzorowywania pami$ci cache
spójno%& pami$ci cache
10
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Plan przedmiotu (cd.)
Plan przedmiotu (cd.)
Architektura RISC
Potok instrukcji (pipeline)
–
–
–
–
–
dzia!anie przetwarzania potokowego
przewidywanie skoków
optymalizacja potoku instrukcji
przyk!ady implementacji
–
–
–
–
Architektura superskalarna
–
Podstawowe w!asno%ci
Banki i okna rejestrów
Przetwarzanie potokowe w architekturze RISC
Przyk!ady procesorów
Porównanie architektur RISC i CISC
Architektura VLIW
Zagadnienia fakultatywne:
przyk!ady procesorów
–
–
Przetwarzanie równoleg!e, systemy wieloprocesorowe
Architektury wielordzeniowe
Podsumowanie
11
12
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Egzamin
Wyniki i obecno"# na wyk adach
100
90
80
70
60
50
40
30
20
10
0
pisemny test
–
–
–
–
oko!o 10 zada' sprawdzaj"cych
znajomo%& g!ównych zagadnie'
poruszanych na wyk!adach
zadania koncepcyjne i rachunkowe
tematyka w ca!o%ci zwi"zana z wyk!adem
szczegó!owe zagadnienia egzaminacyjne i przyk!ady
zada' – w trakcie wyk!adu
pozytywnie
negatywnie
Obecno"#
>75%
Obecno"#
< 30%
Dane z roku akademickiego 2006/2007 – dla wybranych grup
studentów poddanych ankietyzacji
13
14
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Architektura i organizacja (1)
Architektura i organizacja cd.
... the attributes of a [computing] system as seen by the
programmer, i.e. the conceptual structure and functional
behavior, as distinct from the organization of the data flows
and controls the logic design, and the physical
implementation.
Architektura to atrybuty komputera „widoczne”
dla programisty:
–
–
lista instrukcji, liczba bitów stosowana do
reprezentacji danych, mechanizm I/O, techniki
adresowania
np. czy dost$pna jest operacja mno enia?
– Amdahl, Blaaw, and Brooks, 1964
Organizacja oznacza sposób implementacji
architektury
–
–
15
(...atrybuty systemu komputerowego widziane przez
programist$, tzn. koncepcyjna struktura i zachowanie
funkcjonalne, w odró nieniu od organizacji przep!ywu
danych, sterowania uk!adami logicznymi i fizycznej
implementacji)
sygna!y steruj"ce, interfejsy, technologia wykonania
pami$ci itp.
np. czy mno enie jest realizowane sprz$towo, czy
przez sekwencj$ dodawa'?
16
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Architektura i organizacja cd.
Architektura i organizacja cd.
wszystkie procesory Intel x86 maj" podobn"
podstawow" architektur$
to zapewnia zgodno%& programow"
–
przynajmniej w dó! (backward compatibility)
organizacja poszczególnych wersji procesorów
Intel x86 jest ró na
Software Design
Hardware Design
17
18
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Architektura i organizacja cd.
Ewolucja poj$cia „architektura”
1950s to 1960s: Computer Architecture Course:
Computer Arithmetic
1970s to mid 1980s: Computer Architecture Course:
Instruction Set Design, especially ISA appropriate for compilers
1990s: Computer Architecture Course:
Design of CPU, memory system, I/O system, Multiprocessors,
Networks
2010s: Computer Architecture Course:
Self adapting systems? Self organizing structures?
DNA Systems/Quantum Computing?
Architektura komputera =
architektura listy instrukcji + ...
John Kubiatowicz, Berkeley University
19
20
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Przyk ady ISA (Instruction Set Architecture)
Digital Alpha
v1, v3 ...
1992
HP PA-RISC
v1.1, v2.0
1986
Sun Sparc
v8, v9
1987
MIPS / ARM
MIPS I, II, III, IV, V, 10k, 20k, 1986
ARM7, ARM9, ARM11, Cortex
Funkcje i g ówne bloki komputera
Funkcje
–
Intel / AMD
8086,80286,80386,
80486,Pentium, MMX,
Pentium II, III, IV, ...
–
–
–
Bloki funkcjonalne
1978
–
–
–
–
21
przechowywanie danych
przesy!anie danych
przetwarzanie danych
funkcje steruj"ce
pami$&
podsystem I/O
procesor (arytmometr)
procesor (uk!ad steruj"cy)
22
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Bloki funkcjonalne komputera
... ale ró%ni! si$ wydajno"ci!
Od 1946 r. komputery niezmiennie sk!adaj" si$ z 5 tych
samych bloków:
Procesor
Wej"cie
Sterowanie
Pami !
Arytmometr
Wyj"cie
http://hrst.mit.edu/hrs/apollo/public/index.htm
23
24
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Komputer statku Apollo
Komputer statku Apollo cd.
25
26
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Komputer statku Apollo cd., &ród o: M.I.T.
Struktura komputera
Apollo Guidance Computer (AGC)
! Word length: 16 bits (15 bits data + parity bit)
! First computer using integrated circuits (ICs)
! Magnetic core memory
! Fixed memory (ROM):
! Erasable memory (RAM):
36,864 words
2,048 words
! Number of instructions: 34
! Cycle time: 11.7 sec
! Clock frequency: 85 kHz (!)
! Number of logic gates: 5,600 (2,800 packages)
! Weight: 30 kg
! Power consumption: 70 W
27
28
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Operacja 1 – przesy anie danych
Operacja 2 – pami$tanie danych
(I/O)
Przyk!ad:
Przyk!ad:
MOV port_x, port_y
MOV port_x, [mem]
MOV [mem], port_y
29
30
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Przetwarzanie z pami$ci do I/O
Przetwarzanie z/do pami$ci
31
Przyk!ad:
Przyk!ad:
ADD [mem], data
ADD [mem], port_x
32
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Struktura komputera – wysoki poziom
Struktura CPU
CPU
Computer
Computer
Peripherals
Registers
I/O
Main
Memory
Central
Processing
Unit
System
Bus
CPU
Internal CPU
Interconnection
Memory
Systems
Interconnection
Computer
Arithmetic
and
Logic Unit
Control
Unit
Input
Output
Communications
lines
33
34
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Struktura uk adu sterowania
Przyk adowa organizacja
TI SuperSPARCtm TMS390Z50 in Sun SPARCstation20
Control Unit
MBus Module
SuperSPARC
CPU
Floating-point Unit
Sequencing
Logic
ALU
Internal
Bus
Control Unit
Registers and
Decoders
Registers
L2
Integer Unit
Control
Unit
Inst
Cache
Ref
MMU
CC
MBus
Data
Cache
L64852 MBus control
M-S Adapter
DRAM
Controller
STDIO
SBus
Control
Memory
Store
Buffer
Bus Interface
35
DMA
SBus
Cards
serial
kbd
mouse
audio
RTC
Boot PROM
Floppy
36
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Podstawowe poj$cia
Podstawowe poj$cia
Pami$#
–
–
–
–
–
pami$& o niewielkiej pojemno%ci (najcz$%ciej 8, 16, 32 lub 64
bitów) wbudowana do procesora lub innego uk!adu cyfrowego
VLSI, wykonana zwykle jako SRAM (zbiór przerzutników)
–
37
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Podstawowe poj$cia
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Podstawowe poj$cia
cd.
–
–
j$zyk programowania operuj"cy z!o onymi instrukcjami,
niezrozumia!ymi dla procesora; program przed wykonaniem musi
by& przet!umaczony na j$zyk asemblera
–
–
zbiór linii przesy!aj"cych sygna!y mi$dzy blokami cyfrowymi
systemu (adresy, dane, sygna!y steruj"ce)
I/O – input/output
–
Complex Instruction Set Computer
procesor wykorzystuj"cy bogaty zestaw (list$) instrukcji i liczne
sposoby adresowania argumentów; charakterystyczn" cech"
jest zró nicowana d!ugo%& instrukcji (w bajtach) i czas ich
wykonania
Architektura RISC (np. PowerPC, MIPS, ARM)
Szyna, magistrala
–
cd.
Architektura CISC (np. Pentium)
j$zyk programowania operuj"cy elementarnymi instrukcjami
zrozumia!ymi dla procesora
J$zyk wysokiego poziomu (C, C++, C#, Python, Java)
–
generator impulsów taktuj"cych bloki funkcjonalne systemu
cyfrowego
38
J$zyk asemblera
–
procesor z wieloma potokami instrukcji i wieloma uk!adami
wykonawczymi (arytmometrami)
Zegar
–
zmiennoprzecinkowy zapis liczb (znak, mantysa, wyk!adnik)
ci"g instrukcji (zwykle kilku lub kilkunastu) pobranych przez
procesor i wykonywanych etapami, tak jak na ta%mie
produkcyjnej
Procesor superskalarny
arytmometr, g!ówny element bloku wykonawczego procesora
zdolny do realizacji podstawowych operacji arytmetycznych i
logicznych
FP (floating-point)
–
nazywana podr$czn" lub kieszeniow" – dodatkowa pami$&
buforowa umieszczona mi$dzy g!ówn" pami$ci" komputera
(operacyjn") a procesorem; jej zadaniem jest przyspieszenie
komunikacji procesora z pami$ci" g!ówn"
Potok instrukcji (pipeline)
ALU (arithmetic-logic unit)
–
cd.
Pami$# cache
w ogólnym znaczeniu – blok funkcjonalny do przechowywania
informacji na okre%lonym no%niku (zwykle magnetycznym lub
pó!przewodnikowym)
pami$& RAM – pami$& pó!przewodnikowa zbudowana z
przerzutników (SRAM) lub tranzystorów MOS (DRAM)
Rejestr
39
SCSI
Ethernet
SBus
uk!ady wej%cia/wyj%cia do komunikacji z otoczeniem
40
Reduced Instruction Set Computer
procesor wykorzystuj"cy niewielki zbiór elementarnych
rozkazów o zunifikowanej d!ugo%ci i takim samym czasie
wykonania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Podsumowanie
Architektura komputera oznacza jego w!a%ciwo%ci
„widziane” przez programist$ (struktura rejestrów, lista
instrukcji itp..)
Organizacja komputera oznacza konkretn"
implementacj$ (realizacj$) architektury przy u yciu
okre%lonych uk!adów i bloków cyfrowych
Komputer sk!ada si$ z 5 podstawowych elementów:
uk!adu wykonawczego, uk!adu sterowania, pami$ci,
uk!adów wej%cia i wyj%cia
Uk!ad wykonawczy i steruj"cy tworz" jednostk$
centraln" (CPU)
41
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
ENIAC – pierwszy komputer
Electronic Numerical Integrator And Computer
konstruktorzy: Eckert and Mauchly
University of Pennsylvania
obliczenia trajektorii pocisków (balistyka)
pocz"tek projektu: 1943
zako#czenie projektu: 1946
Organizacja i Architektura
Komputerów
Ewolucja komputerów i ich architektury
–
za pó$no by wykorzysta% ENIAC w II wojnie &wiatowej
u ywany do 1955
1
2
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
ENIAC
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
ENIAC – programowanie
Eckert and Mauchly
1st working electronic
computer (1946)
18,000 Vacuum tubes
1,800 instructions/sec
3,000 ft3
3
4
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
ENIAC – serwis
Testowanie komputera
Wymiana
uszkodzonej
lampy
wymaga!a
sprawdzenia
18 000
mo liwo&ci
g!ównym narz'dziem jest
oscyloskop
stosuje si' specjalne
matryce do generowania
testowych sekwencji
bitów
5
6
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
ENIAC – parametry techniczne
EDSAC 1 - 1949
Maurice Wilkes
arytmetyka dziesi'tna (nie dwójkowa)
20 akumulatorów po 10 cyfr w ka dym
programowany r'cznie prze!"cznikami
18,000 lamp, 70,000 rezystorów, 10,000 kondensatorów,
6,000 prze!"czników
masa 30 ton
powierzchnia 1,500 stóp2, (30 x 50 stóp)
pobór mocy 140 kW
5,000 operacji dodawania na sekund' (0,005 MIPS)
1st store program computer
650 instructions/sec
1,400 ft3
http://www.cl.cam.ac.uk/UoCCL/misc/EDSAC99/
7
8
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Architektura von Neumanna
John von Neumann
program przechowywany w pami'ci
program i dane rezyduj" we
wspólnej pami'ci
ALU pracuje na danych dwójkowych
jednostka steruj"ca interpretuje
i wykonuje rozkazy pobierane z pami'ci
jednostka steruj"ca zarz"dza systemem I/O
Princeton Institute for Advanced Studies
–
1903 – 1957
matematyk ameryka#ski pochodzenia w'gierskiego
od 1933 profesor ISA w Princeton
od 1937 cz!onek Akademii Nauk w Waszyngtonie
od 1954 cz!onek Komisji do Spraw Energii Atomowej
USA
1945 – 1955: dyrektor Biura Projektów Komputerów
Cyfrowych w USA
IAS (tak samo nazwano prototypowy komputer)
zako#czenie projektu: 1952
9
10
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Architektura von Neumanna
IAS – parametry
1000 s!ów po 40 bitów
–
–
arytmetyka dwójkowa
format instrukcji 2 x 20 bitów
Zbiór rejestrów (zawarty w CPU)
–
–
–
–
–
–
–
11
Memory Buffer Register (MBR - rejestr bufora pami'ci)
Memory Address Register (MAR - rejestr adresowy)
Instruction Register (IR - rejestr instrukcji)
Instruction Buffer Register (IBR - rejestr bufora instrukcji)
Program Counter (PC - licznik rozkazów)
Accumulator (A - akumulator)
Multiplier Quotient (MQ - rejestr ilorazu)
12
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
IAS – struktura
Pierwsze komputery komercyjne
Central Processing Unit
1947 - Eckert-Mauchly Computer Corporation
UNIVAC I (Universal Automatic Computer)
Arithmetic and Logic Unit
Accumulator
MQ
–
Arithmetic & Logic Circuits
MBR
Input
Output
Instructions
& Data
1950 - US Bureau of Census, obliczenia biurowe
powstaje Sperry-Rand Corporation
koniec lat 50-tych - UNIVAC II
Main
Memory
–
–
wi'ksza szybko&%
wi'ksza pami'%
PC
IBR
MAR
IR
Control
Circuits
Program Control Unit
Address
13
14
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
IBM
Pami ! ferrytowa
produkcja urz"dze# do perforowania kart
1953 - model 701
–
–
radykalna poprawa niezawodno&ci
brak ruchomych cz'&ci
pami'% nieulotna
relatywnie niski koszt
wi'ksze pojemno&ci
pierwszy komputer IBM oferowany na rynku
obliczenia naukowe
1955 - model 702
–
zastosowania biurowe (banki, administracja)
pocz"tek serii komputerów 700/7000
15
16
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Tranzystor
2 generacja komputerów
nast'pca lamp
znacznie mniejszy
ta#szy
mniejszy pobór mocy
wykonany z pó!przewodnika
wynaleziony w 1947 w Bell Labs
William Shockley et al.
podstawowym elementem jest tranzystor
NCR & RCA – „ma!e” komputery
IBM 7000
DEC - 1957
–
model PDP-1
Raytheon CK722
1954
17
18
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Minikomputery – IBM 360
DEC PDP – 8
1964
IBM 360 zast'puje seri' 7000
–
1964
pierwszy minikomputer
klimatyzacja pomieszczenia
nie jest wymagana
mie&ci si' na biurku
cena $16,000
brak kompatybilno&ci
pierwsza rodzina popularnych
komputerów
–
–
–
–
–
–
podobne lub identyczne
listy instrukcji
podobny lub taki sam OS
rosn"ca szybko&%
wzrost liczby uk!adów I/O
(terminali)
wzrost pojemno&ci pami'ci
kolejne modele kosztuj"
coraz wi'cej
IBM 360/40
• 1964 rok
• 1.6 MHz CPU
• 32 – 256 KB RAM
• $ 225 000
–
wbudowane aplikacje & OEM
nowatorska struktura szyn (OMNIBUS)
pojawiaj" si' emulatory dla
serii 7000 - /1400
19
dla porównania IBM 360 kosztuje $100k+
20
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Pmi ! pó"przewodnikowa
Rozwój mikroelektroniki
1970
Fairchild
rozmiar pojedynczego rdzenia ferrytowego
–
podstawowy element – uk!ad scalony
uk!ady SSI, potem MSI, wreszcie LSI i VLSI
seryjna produkcja uk!adów scalonych na bazie
krzemu
ca!a pami'% ma teraz taki rozmiar jak wcze&niej
komórka 1-bitowa
pojemno&% 256 bitów
odczyt nie niszczy zawarto&ci
znacznie wi'ksza szybko&% ni dla pami'ci
ferrytowych
pojemno&% podwaja si' co rok
21
22
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Generacje uk"adów elektronicznych
lampa – 1946 -1957
tranzystor – 1958 -1964
uk!ady scalone ma!ej skali integracji (SSI) – od 1965
–
do 100 elementów w uk!adzie
&rednia skala integracji (MSI) - od 1971
–
100 - 3,000 elementów w uk!adzie
wielka skala integracji (LSI) – 1971 - 1977
–
3,000 - 100,000 elementów w uk!adzie
bardzo wielka skala integracji (VLSI) - 1978 do dzi&
–
100,000 - 100,000,000 elementów w uk!adzie
ultra wielka skala integracji (UVLSI) – koniec lat 90’
–
23
ponad 100,000,000 elementów w uk!adzie
24
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Prawo Moore’a
Prawo Moore’a
opisuje tempo wzrostu liczby elementów w uk!adzie
Gordon Moore – wspó!za!o yciel Intela
liczba tranzystorów w uk!adzie podwaja si' co roku
od roku 1970 wzrost zosta! nieco zahamowany
–
liczba tranzystorów podwaja si' co 18 miesi'cy
koszt uk!adu pozostaje niemal bez zmian
wi'ksza g'sto&% upakowania elementów skraca
po!"czenia, przez co wzrasta szybko&% uk!adów
zmniejsza si' rozmiar uk!adów
zmniejszaj" si' wymagania na moc zasilania i
ch!odzenie
mniejsza liczba po!"cze# w systemie cyfrowym
poprawia niezawodno&%
25
26
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Prawo Moore’a
2 prawo Moore’a
Koszt wdro#enia produkcji uk"adu
w mln $
Koszt uruchomienia produkcji nowego uk!adu CPU UVLSI
wzrasta wyk!adniczo
27
28
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wzrost pojemno$ci DRAM
Rozwój mikroprocesorów i DRAM
Rok Rozmiar
1980 64 Kb
10000
256 Kb
1 Mb
4 Mb
16 Mb
64 Mb
256 Mb
1 Gb
?
29
Performance
1983
1986
1989
1992
1996
1999
2002
2010
100000
1000
100
10
1
1980
1985
1990
CPU
1995
2005
Memory
30
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Szybko$! DRAM i CPU
Rozwi%zania
(DRAM vs. CPU)
zwi'kszy% liczb' bitów odczytywanych w jednym
cyklu
Szybko&% procesorów ros!a pr'dzej ni
szybko&% pami'ci RAM
–
DRAM powinna by% „szersza” a nie „g!'bsza”
zmieni% interfejs DRAM
Jakie problemy wynikaj" st"d dla konstruktorów
komputerów?
–
pami'% cache
zmniejszy% cz'sto&% dost'pów do pami'ci
–
bardziej skomplikowana pami'% cache umieszczona
w CPU
zwi'kszy% przep!ywno&% szyn
–
–
31
2000
32
szyny typu high-speed
szyny hierarchiczne
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wzrost z"o#ono$ci procesorów
Post p technologii
Procesor
–
–
z!o ono&% uk!adowa: 30% na rok
cz'stotliwo&% zegara: 20% na rok
Pami'%
–
–
–
DRAM pojemno&%: oko!o 60% na rok (4x co 3 lata)
szybko&% pami'ci: oko!o 10% na rok
koszt za 1 bit: maleje o 25% na rok
Dysk
–
pojemno&%: 60% na rok
Przep!ywno&% w sieciach
–
33
wzrost o wi'cej ni 100% na rok!
34
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Post p technologii
Koszt procesorów (Intel)
Inne uj'cie, wed!ug prof. Tyagi (2003)
Pojemno&%
Szybko&%
Uk!ady cyfrowe
2x / 3 lata
2x / 3 lata
DRAM
4x / 3 lata
2x / 10 lat
Dyski
4x / 3 lata
2x / 10 lat
35
36
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Koszt pami ci
Intel – pierwsze procesory
1971 – uk!ad 4004
–
–
–
uwa any za pierwszy microprocessor na &wiecie
wszystkie elementy CPU w jednym uk!adzie
4 – bitowy format danych
Zast"piony w 1972 przez uk!ad 8008
–
–
8 – bitowy format danych
obydwa uk!ady zaprojektowano do specjalistycznych
zastosowa#
1974 – uk!ad 8080
pierwszy mikroprocesor Intel ogólnego
przeznaczenia
37
38
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Ewolucja Pentium
Ewolucja Pentium cd.
8080
–
–
–
80486
pierwszy mikroprocesor ogólnego przeznaczenia
8-bitowa szyna danych
zastosowany w pierwszym komputerze osobistym Altair
–
–
Pentium
8086
–
–
–
–
–
znacznie wi'ksza moc obliczeniowa, u yty w IMB PC XT
16-bitowa szyna danych, przestrze# adresowa 1MB
pami'% cache programu, pobieranie kilku instrukcji na zapas
wersja 8088 (8-bitowa zewn'trzna szyna danych)
–
–
–
przestrze# adresowa 16 MB
–
80386
–
–
39
architektura superskalarna
równocze&nie wykonuje si' wiele instrukcji
Pentium Pro
80286
–
zaawansowana pami'% cache i potok instrukcji
wbudowany koprocesor arytmetyczny
–
architektura 32-bitowa
wielozadaniowo&% (multitasking)
–
40
ulepszona architektura superskalarna
technika przemianowywania rejestrów
przewidywanie skoków
analiza przep!ywu danych
spekulacyjne wykonywanie instrukcji
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Ewolucja Pentium cd.
Granice technologii ?
Pentium II
–
–
Dzi& (2008) Intel i AMD stosuj"
technologi' 90 / 65 nm, trwaj"
prace nad wdro eniem technologii
45 nm
technologia MMX
przetwarzanie grafiki, audio & video
Pentium III
–
dodatkowe instrukcje zmiennoprzecinkowe dla grafiki 3D
Pentium 4
–
–
uwaga – pierwsze oznaczenie cyfr" arabsk", a nie rzymsk" !
dalsze ulepszenia FPU i operacji multimedialnych
Itanium / Itanium 2
–
–
–
–
architektura 64-bitowa
EPIC – Explicit Paralell Instruction Computing
rejestry 128-bitowe
Instrukcje 41-bitowe w pakietach 128-bitowych (3 instr.
+ 5 bitów pokazuj"cych typ i wspó!zale no&ci)
41
42
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Granice technologii ?
43
44
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Trend rozwoju technologii
Wspó"czesny procesor
Intel Core 2 Duo: Courtesy: Intel Corp.
P4HT: Courtesy: Intel Corp.
45
46
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Technologia wielowarstwowa
Technologia wielowarstwowa cd..
Fragment procesora UVLSI, zdj'cie z mikroskopu elektronowego
Courtesy IBM Corp.
47
48
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Prognozy bywaj% niedok"adne
Prognozy bywaj% niedok"adne cd..
Twój PC w 2005 roku wed ug J. Breechera, Clarc
University, 2002
zegar procesora 8 GHz
pojemno&% pami'ci RAM 1 GB
pojemno&% dysku 240 GB (0,24 TB)
Potrzebujemy kolejnych jednostek miar:
Mega
Giga
Tera
!!!
YEAR
2002
TECHNOLOGY
130 nm
2008
100 nm
600 mm
2011
70 nm
2
750 mm
800 mm
ITRS International
Technology
Roadmap for
Semiconductors
2014
50 nm
2
35 nm
2
900 mm
2
CHIP SIZE
400 mm
NUMBER OF
TRANSISTORS
(LOGIC)
400 M
1 Billion
3 Billion
6 Billion
16 Billion
DRAM
CAPACITY
2 Gbits
10 Gbits
25 Gbits
70 Gbits
200 Gbits
MAXIMUM
CLOCK
FREQUENCY
1.6 GHz
2.0 GHz
2.5 GHz
3.0 GHz
3.5 GHz
MINIMUM
SUPPLY
VOLTAGE
1.5 V
1.2 V
0.9 V
0.6 V
0.6 V
MAXIMUM
POWER
DISSIPATION
130 W
160 W
170 W
175 W
180 W
2500
4000
4500
5500
6000
MAXIMUM
NUMBER OF
I/O PINS
49
2005
2
prognoza
z 1999 roku
50
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
50 lat rozwoju komputerów
Systemy „desktop” i wbudowane
51
52
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Rynek procesorów RISC
2001
PowerPC SPARC
1%
3%
SHx
8%
&a'cuch pokarmowy
2007
SPARC
1% Other
1%
Other
2%
PowerPC
8%
MIPS
11%
MIPS
14%
SHx
10%
Big Fishes Eating Little Fishes
ARM
66%
ARM
75%
53
54
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
1988 Computer Food Chain
2008 Computer Food Chain
MiniMinisupercomputer computer
Mainframe
MPPs, clusters
Supercomputer
MiniMinisupercomputer computer
Work- PC
station
Mainframe
Server
Massively Parallel
Processors
55
Supercomputer
56
Work- PC
station
Now who is eating whom?
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Komputery przysz"o$ci
Podsumowanie
pierwszy komputer – ENIAC
architektura von Neumanna – IAS
prawo Moore’a
generacje uk!adów cyfrowych i komputerów
szybko&% procesorów ro&nie w wi'kszym tempie ni
szybko&% pami'ci – konsekwencje i rozwi"zania
ewolucja procesorów x86
granice technologii
komputery przysz!o&ci
• Molecular Computing
• http://www.nytimes.com/2002/10/25/technology/25COMP.html?ex=
1036558800&en=10e57e62ea60c115&ei=5062
• http://pcquest.ciol.com/content/technology/10004402.asp
• http://www.ddj.com/articles/2000/0013/0013b/0013b.htm
• DNA Computing
• http://arstechnica.com/reviews/2q00/dna/dna-1.html
• http://www.englib.cornell.edu/scitech/w96/DNA.html
• Quantum Computing
• http://www.qtc.ecs.soton.ac.uk/lecture1/lecture1a.html
• http://www.mills.edu/ACAD_INFO/MCS/CS/S01MCS125/QuantumComputing/
concepts.html
• http://www.cs.caltech.edu/~westside/quantum-intro.html
57
58
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Metryki marketingowe
MIPS
–
Organizacja i Architektura
Komputerów
–
Millions Instructions Per Second
(liczba instrukcji / 106) / czas CPU
MFLOPS
–
–
Millions Float Point Operations Per Second
(liczba operacji FP / 106) / czas CPU
Zalety MIPS, MFLOPS i innych MOPS
–
Wydajno#$ komputerów
Prosta i zrozumia!a dla laików definicja, !atwo#$ okre#lenia
Wady
–
–
–
1
Metryki MIPS i MFLOPS zale " od architektury ISA tote
porównanie ró nych architektur jest niemo liwe
Dla ró nych programów wykonywanych przez ten sam komputer
otrzymuje si% ró ne warto#ci metryk
W skrajnych przypadkach metryki MIPS i MFLOPS mog" dawa$
odwrotne wyniki ni metryki oparte na pomiarach CPU time
2
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Przyk ady metryki MIPS (Intel)
Procesor
Data
Liczba tranzystorów
MIPS
4004
11/71
2300
0.06
8008
4/72
3500
0.06
8080
4/74
6000
0.1
8086
6/78
29000
0.3
8088
6/79
29000
0.3
286
2/82
134000
0.9
386
10/85
275000
5
486
4/89
1.2M
20
Pentium
3/93
3.1M
100
Pentium Pro
3/95
5.5M
300
Pentium III (Xeon)
Pentium 4 HT
2/99
10/2002
10M
108M
500
>1000
3
Czas w systemie komputerowym
polecenie time w systemie UNIX
Przyk!ad:
90.7u 12.9s 2:39 65%
user CPU time
= 90.7 s
system CPU time
elapsed time
user CPU/elapsed
= 12.9 s
= 2 min 39 s (159 s)
= 65 % = (90.7 + 12.9)/159
4
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wydajno!" komputera
Wydajno!" cd.
Metryki wydajno#ci procesora
Wydajno#$ - Computer Performance
–
czas oczekiwania na wynik
CPU execution time ! CPU clock cycles/pgm clock cycle time
CPU clock cycles/pgm ! Instructions/pgm avg. clock cycles per instruction(CPI)
Response time (latency)
–
przepustowo#$ systemu
Throughput
Przedmiotem uwagi OAK jest szczególnie
–
CPI (cycles per instruction) – #rednia liczba cykli
procesora potrzebna do wykonania instrukcji wi" e si% z:
czas CPU wykorzystany przez u ytkownika
–
User CPU time
czas zu yty przez CPU na wykonanie programu
5
–
6
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wydajno!" cd.
Wydajno!" cd.
Definicja wydajno#ci
Aby okre#li$ wydajno#$ komputera nale y:
1
Performancex !
Execution timex
–
zmierzy$ czas wykonania programu testowego (benchmark)
Aby obliczy$ czas wykonania nale y zna$:
Maszyna X jest n razy szybsza od maszynyY je#li
–
–
Performancex
!n
Performance y
czas trwania cyklu CPU (z danych katalogowych CPU)
!"czn" liczb% cykli CPU dla danego programu
Aby oszacowa$ liczb% cykli CPU w programie nale y
zna$:
–
–
7
architektur" listy instrukcji (ISA)
implementacj" ISA
8
liczb% instrukcji w programie
przeci%tn" warto#$ CPI (average CPI)
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wydajno!" cd.
Wydajno!" cd.
Cz%stotliwo#$ zegara CPU (CPU clock rate)
–
–
Liczba cykli zegara CPU w programie
liczba cykli na sekund% (1 Hz = 1 cykl / s)
CPU cycle time = 1/CPU clock rate
liczba cykli = liczba instrukcji ?
b!"d !
ró ne instrukcje wymagaj" ró nej liczby cykli dla ró nych
komputerów
–
–
–
Przyk!ad:
Pentium4 2.4 GHz CPU
CPU cycle time
!
Wa na uwaga:
1
zmiana czasu cyklu CPU (cz%stotliwo#ci zegara) cz%sto
powoduje zmian% liczby cykli potrzebnych do wykonania ró nych
instrukcji
–
9
!
2.4 10
0.4167 10 "9 s
!
0.4167 ns
9
10
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Definicja CPI
Przyk ad wykorzystania CPI
&rednia liczba cykli na instrukcj% CPI (average cycles
per instruction)
Za!ó my, e typowy program wykonywany przez CPU
analizowanego systemu komputerowego ma
nast%puj"c" charakterystyk%:
n
# CPI
CPI !
i
i !1
IC
IC i
n
!
# CPI
i !1
i
) ICi & n
'
$ ! # CPI i
( IC % i !1
Fi
–
–
gdzie:
–
–
–
–
–
CPIi – liczba cykli potrzebnych do wykonania instrukcji typu i
ICi – liczba instrukcji typu i w programie
IC – ogólna liczba instrukcji w programie
Fi - wzgl%dna cz%sto#$ wyst%powania instrukcji typu i w
programie
11
–
–
cz%sto#$ wyst%powania operacji FP = 25%
CPI operacji FP = 4.0
CPI innych instrukcji = 1.33
cz%sto#$ wyst%powania operacji FPSQR = 2%
CPI operacji FPSQR = 20
12
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Przyk ad wykorzystania CPI cd.
Przyk ad wykorzystania CPI cd.
Rozwi"zanie:
Nale y zauwa y$, e zmienia si% tylko CPI, natomiast liczba instrukcji
cz%stotliwo#$ zegara pozostaje bez zmiany.
Obliczamy CPIorg przed dokonaniem zmian w procesorze:
Konstruktorzy chc" zwi%kszy$ wydajno#$ systemu
przez przeprojektowanie CPU. Maj" dwa alternatywne
rozwi"zania:
1.
Zmniejszy$ CPI operacji FPSQR z 20 do 2
2.
Zmniejszy$ CPI wszystkich operacji FP do 2
CPIorg = (4 x 25%) + (1.33 x 75%) = 2.0
Obliczamy CPInew FPSQR dla procesora z ulepszonym uk!adem
obliczania pierwiastka odejmuj"c od CPIorg zysk spowodowany
ulepszeniem:
Które z tych rozwi"za' jest lepsze w sensie metryki
(CPU time) ?
13
CPInewFPSQR = CPIorg – 2% x (CPIoldFPSQR – CPIof new FPSQR)
= 2.0 – 2% x (20 – 2) = 1.64
14
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Przyk ad wykorzystania CPI cd.
Przyk ad wykorzystania CPI doko#czenie
Obliczmy wzrost wydajno#ci systemu po ulepszeniu
uk!adu FPU
Obliczamy CPI new FP dla procesora z ulepszonym ca!ym blokiem FPU
CPI new FP = (75% x 1.33) + (25% x 2.0) = 1.5
Speedup new FP !
Odpowied(: ulepszenie ca!ego bloku FP jest lepszym rozwi"zaniem ni
ulepszenie samego uk!adu obliczania FPSQR, poniewa
!
CPI new FP = 1.5 < CPI new FPSQR = 1.64
15
16
CPU timeorg
CPU timenew FP
CPI org
CPI new FP
!
IC Clock cycle CPI org
IC Clock cycle CPI new FP
! 2.0 / 1.5 ! 1.33
!
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Problem
Wydajno!" - wspó zale$no!ci
Je#li dwa komputery maj" tak" sam" architektur% ISA, to
które z wymienionych wielko#ci b%d" w obu przypadkach
identyczne?
Program
Kompilator
Lista instrukcji
Organizacja
Technologia
cz%stotliwo#$ zegara
CPI
czas wykonania programu (CPU time)
liczba instrukcji (IC)
MIPS
–
–
–
–
–
Liczba
instrukcji
X
X
X
CPI
Cykl zegara
X
X
X
X
X
Odpowied(: CPI i liczba instrukcji (IC)
17
18
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Prawo Amdahla
Prawo Amdahla – przyk ad
Okre#la wspó!czynnik poprawy wydajno#ci Speed up w rezultacie ulepszenia
systemu komputerowego
Dla wcze#niej analizowanego przyk!adu dotycz"cego ulepszenia
bloków realizuj"cych obliczenia FP i FPSQR otrzymujemy
nast%puj"ce wyniki:
2
Frac enh /
0*1 " Frac enh + ,
Speedupenh .
1
CPUtimenew ! CPUtimeold
Speedup FPSQR !
Speedupoverall !
19
CPUtimeold
!
CPUtimenew
1
*1 " Fracenh + ,
Frac enh
Speedupenh
Gdzie:
Fracenh – wspó!czynnik wykorzystania ulepszonej cz%#ci systemu (w sensie
czasu), np. Fracenh = 0.3 oznacza, e ulepszona cz%#$ jest wykorzystywana
przez 30% czasu wykonania programu
Speedupenh – wspó!czynnik poprawy wydajno#ci ulepszonej cz%#ci systemu
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Speedup FP !
!
1
! 1.33
0.75
W profesjonalnych badaniach wydajno#ci komputerów wykorzystuje
si% pomiar czasu wykonania rzeczywistych programów
–
–
najlepiej jest u y$ typowych aplikacji, które b%d" wykonywane przez
system podczas normalnej eksploatacji
lub wykorzysta$ klasy aplikacji, np. kompilatory, edytory, programy
oblicze' numerycznych, programy graficzne itp.
Krótkie programy testowe (benchmarks)
–
% czasu pracy cache
*1 " % czasu pracy cache+ ,
Speedup z zastosowania cache
*1 " 0.9 + , 0.9
10
!
Pomiary wydajno!ci
1
1
*1 " 0.5+ , 0.5
2.0
1
! 1.22
0.82
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Proste zastosowanie prawa Amdahla
!
1
!
20
Za!ó my, e dost%p do pami%ci cache jest 10 razy szybszy ni
dost%p do pami%ci operacyjnej. Za!ó my ponadto, e pami%$ cache
jest wykorzystywana przez 90% czasu. Obliczy$ wspó!czynnik
wzrostu wydajno#ci systemu spowodowany dodaniem pami%ci
cache.
Speedup !
*1 " 0.2+ , 0.2
10
ten sam wynik co uzyskany wcze#niej przy u yciu analizy CPI
Jeszcze jeden przyk ad
–
1
–
1
! 5.3
0.19
wygodne dla architektów i projektantów
!atwe w standaryzacji testów
SPEC (System Performance Evaluation Cooperative)
–
–
–
21
22
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
http:// www.spec.org
producenci sprz%tu uzgodnili zestawy programów testowych
(benchmarków)
warto#ciowe wyniki do oceny wydajno#ci komputerów i jako#ci
kompilatorów
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
SPEC benchmarks
SPEC benchmarks cd.
SPEC89 – 1989
Druga runda – 1992
10 krótkich
testów
800
–
700
–
wynik w postaci
jednej liczby,
#redniej wa onej
600
500
400
–
SPECint92 – zestaw 6 programów testowych operuj"cych na
liczbach ca!kowitych (integer)
SPECfp92 – zestaw 14 programów testowych operuj"cych na
liczbach zmiennoprzecinkowych
SPECbase
300
Trzecia runda – 1995
200
100
–
fpppp
–
tomcatv
matrix300
li
eqntott
nasa7
spice
doduc
gcc
epresso
0
–
Benchmark
23
24
SPECint95 – zestaw 8 programów (integer)
SPECfp95 – zestaw 10 programów (FP)
SPECint_base95 i SPECfp_base95
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
SPEC’95 – zestaw testów
25
SPECint95 - przyk ad
26
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
SPEC’2000
SPEC_2006 zestaw testów
CFP 2006
CINT 2006
27
28
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
29
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
30
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
SYSmark 2002
Raporty CFP - przyk ady
1
2.8 GHz
31
32
Intel's advanced 0.13
micron process and 512K
L2 Cache, 400-MHz
system bus, PC800-40
RDRAM
2
Intel's advanced 0.13
micron process and 512K
L2 Cache, 533-MHz
system bus, PC1066-32
RDRAM
3
Intel® Pentium® 4
Processor 3.06 GHz
supporting HyperThreading Technology
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
SYSmark 2002 cd.
SYSmark 2002
Office Productivity:
Internet Content Creation:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
33
Dragon* Naturally
Speaking* Preferred v5
McAfee* VirusScan 5.13
Microsoft* Access 2002
Microsoft Excel* 2002
Microsoft Outlook 2002
Microsoft PowerPoint* 2002
Microsoft Word* 2002
Netscape* Communicator*
6.0
WinZip* 8.0
Adobe* Photoshop* 6.01
Adobe Premiere* 6.0
Macromedia Dreamweaver 4
Macromedia Flash 5
Microsoft Windows Media
Encoder* 7.1
34
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Benchmarki dla amatorów
Architektury superkomputerów
Karty graficzne
–
3DMark SE
Dyski
–
–
HDTach
WinBench
Procesory
–
–
SPECcpu2006
SYSmark 2002
Pami#ci
–
ScienceMark 1.0
Kompletny system komputerowy
–
PCMark
35
36
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Procesory w superkomputerach
37
Procesory w superkomputerach
38
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Moc obliczeniowa - przewidywania
39
Wydajno ! i architektura
40
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Podsumowanie
Metryki wydajno$ci komputera
–
–
CPU time, CPI
metryki komercyjne MIPS, MFLOPS
Prawo Amdahla – wp!yw ulepsze% systemu na
wydajno$&
Benchmarki
–
–
–
–
–
41
SPEC’89
SPEC’92
SPEC’95
SPEC’2000 i 2006
SYSmark 2002
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Alfabet: 0, 1
Dane w komputerach s" reprezentowane wy!"cznie przy
u yciu alfabetu dwójkowego (binarnego)
Organizacja i Architektura
Komputerów
Arytmetyka komputerów
1
2
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Bity, bajty, s owa
Kody liczbowe
Bity s" grupowane w wi#ksze zespo!y o d!ugo$ci
b#d"cej pot#g" liczby 2:
tetrada: 4 bity (nibble)
– bajt: 8 bitów
– s!owo: 16, 32, 64 lub 128 bitów
– podwójne s!owo (doubleword)
– pó!s!owo (halfword)
radix))
baza ((radix
–
D!ugo$% s!owa zale y od organizacji komputera
3
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
dwó
dwójkowy (binarny)
10100111100
1211122
110330
Podstawy u ywane w
20330
10112
systemach cyfrowych
3623
oktalny
talny
2474
1748
dziesi#
dziesi#tny
1340
1009
938
7C1
6BA
5E5
szesnastkowy, heksadecymalny,
53C
‘hex’
hex’
4
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Konwersja HEX – radix 10
Kod szesnastkowy HEX
Powszechnie
u ywany przez
programistów
programuj"cych w
j#zyku asemblera
Skraca d!ugo$%
notacji liczby
&atwa konwersja na
kod NKB i odwrotnie
Ka da tetrada
reprezentuje cyfr#
szesnastkow"
Cyfra HEX
kod binarny
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
5
6
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Konwersja binarna – HEX
Kod BCD
BCD (binary coded decimal)
–
ka da cyfra dziesi#tna jest
reprezentowana jako 4 bity
–
kod opracowany dla
wczesnych kalkulatorów
–
przyk!ad: 35910 =
–
kod !atwy do zrozumienia
przez cz!owieka, niewygodny
dla komputerów
= 0011 0101 1001bcd
cyfra
dziesi#tna
0
1
2
3
4
5
6
7
8
9
BCD
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
Kody od 1010 do 1111
nie s! u"ywane
7
8
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Porz!dek bajtów w pami#ci
Kolejno$% bajtów w pami#ci
Problem
–
–
Rozwi"zanie
Pami#% jest zwykle adresowana bajtami
Jak zapisa% w pami#ci s!owo 32-bitowe ?
–
–
podziel s!owo na bajty
zapisz kolejne bajty w kolejnych komórkach
8 bitó
bitów
8 bitów
...
0x13579BDF
...
0x13579BCF
1 bajt tutaj
1248
?
1250
1251
...
9
ka"da cyfra
HEX
reprezentuje
tertad#, zatem
dwie cyfry
tworz! bajt
1249
kolejny bajt
tutaj
1250
ostatni bajt
tutaj
1251
adresy
adresy
1249
adresy
adresy
s owo 3232bitowe
w kodzie HEX
1248
nast#pny
bajt tutaj
...
10
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Kolejno$% bajtów cd.
Kolejno$% bajtów cd.
W jakiej kolejno$ci zapisywa% bajty?
–
W jakiej kolejno$ci zapisywa% bajty?
Zaczynaj"c od najbardziej znacz"cego (“big” end)?
–
Zaczynaj"c od najmniej znacz"cego (“little” end)?
...
1250
0x13579BDF
1251
kierunek
analizy
...
11
0xDF
0x9B
0x57
0x13
1248
1249
1250
adresy
kierunek
analizy
1249
adresy
0x13579BDF
0x13
0x57
0x9B
0xDF
...
1248
1251
...
12
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Kolejno$% bajtów cd.
Kolejno$% bajtów cd.
Wybór wersji kolejno$ci zapisu bajtów zale y od
konstruktorów procesora
Stosuje si# dwa sposoby zapisu s!ów w pami#ci
Big Endian
–
–
–
most significant byte in lowest address
store least significant byte in highest address
Motorola 680x0 (Amiga/Atari ST/Mac)
IBM/Motorola PowerPC (Macintosh)
MIPS (SGI Indy/Nintendo 64)
Motorola 6800
Little Endian
–
–
–
Little Endian
Intel 80x86/Pentium (IBM PC)
Rockwell 6502 (Commodore 64)
MIPS (Sony Playstation/Digital DECstation)
store least significant byte in lowest address
store most significant byte in highest address
–
13
Big Endian
Niektóre procesory (np. MIPS) mo na konfigurowa% zarówno w
trybie Big Endian jak i Little Endian
14
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
ALU
ALU – wej$cia i wyj$cia
Jednostka arytmetyczno-logiczna (ALU – arithmetic-logic unit)
wykonuje operacje arytmetyczne na liczbach w kodzie dwójkowym
ALU jest centralnym blokiem komputera; wszystkie inne bloki
funkcjonalne s!u " do w!a$ciwej obs!ugi ALU
Proste ALU wykonuje operacje na liczbach ca!kowitych (integer)
Bardziej z!o one ALU mo e wykonywa% operacje
zmiennoprzecinkowe FP na liczbach rzeczywistych
Najcz#$ciej ALU_INT i ALU_FP (FPU – Floating Point Unit) s"
wykonane jako dwa osobne bloki cyfrowe
15
–
FPU mo e by% wykonane jako osobny uk!ad scalony (koprocesor)
–
FPU mo e by% wbudowane do procesora
• CU – uk!ad sterowania (Control Unit)
• Registers – rejestry wbudowane do CPU
• Flags – wska'niki, znaczniki stanu, flagi, warunki: zespó! wska'ników
bitowych okre$laj"cych specyficzne w!a$ciwo$ci wyniku operacji
(zero, znak, przeniesienie itp.)
16
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
ALU – symbol logiczny
Kod operacji pochodzi z
uk!adu sterowania (CU)
Liczba bitów wyniku jest
taka sama jak liczba bitów
argumentów (operandów)
– w tym przyk!adzie
wynosi 32
ALU nie tylko generuje bity
wska'ników, ale tak e
uwzgl#dnia poprzedni stan
wska'ników
operacja
a
32
Wieloznaczno$% informacji
ALU
wynik
operacji
32
Co oznacza poni szy zapis?
10010111
• Liczb ca!kowit" bez znaku: 151
• Liczb ca!kowit" w kodzie znak-modu!: - 23
• Liczb ca!kowit" w kodzie uzupe!nie# do dwóch: - 105
• Znak w rozszerzonym kodzie ASCII (IBM Latin 2): $
• Kod operacji procesora x86: XCHG AX,DI
b
To zale%y od kontekstu
32
wska&niki
17
18
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Liczby ca kowite bez znaku
Kod znak-modu (ZM)
Najbardziej znacz"cy bit
oznacza znak
0 oznacza liczb dodatni"
1 oznacza liczb ujemn"
A$
Przyk!ad
+18 = 00010010
#18 = 10010010
Problemy
Uk!ady arytmetyczne musz"
osobno rozpatrywa& bit znaku
i modu!
Wyst puj" dwie reprezentacje
zera:
+0 = 00000000
#0 = 10000000
u%ywane s" tylko cyfry 0 i 1
A $ a n #1 a n # 2 . . . a1 a 0
ai % 0, 1 !
n #1
A $ " 2 i ai
Przyk!ady:
i $0
kod ten bywa nazywany NKB
(naturalny kod binarny)
zakres reprezentacji liczb dla
s!owa n-bitowego wynosi:
<0, 2 i – 1>
dla n = 8: <0, 255>
dla n = 16: <0, 65 535>
00000000 = 0
00000001 = 1
00101001 = 41
10000000 = 128
11111111 = 255
19
gdy a n #1 $ 0
gdy a n #1 $ 1
20
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Kod uzupe nie! do 2 (U2)
Najbardziej znacz"cy bit
oznacza znak liczby
0 – liczba dodatnia
1 – liczba ujemna
Tylko jedna reprezentacja
zera:
+0 = 00000000
Ogólna posta& U2:
n#2
A $ #2 n #1 a n #1 * " 2 i ai
Konwersja NKB – U2
Przyk!ady:
+3
+2
+1
+0
-1
-2
-3
=
=
=
=
=
=
=
liczba
binarna
ujemna
00000011
00000010
00000001
00000000
11111111
11111110
11111101
dodatnia
liczba
U2
i $0
21
uzupe nienie
0
1
1
0
+1
22
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Zalety kodu U2
Kod U2 – ilustracja geometryczna
Jedna reprezentacja zera
Uk!ady arytmetyczne (ALU) maj" prostsz" budow
(wyka%emy to pó'niej)
Negacja (zmiana znaku liczby) jest bardzo prosta:
3 = 00000011
uzupe!nienie do 1(negacja boolowska)
dodanie 1
11111100
11111101
#3 = 11111101
23
) n#2 i
& " 2 ai
& i $0
( n#2
&# 2 i a
i
&' "
i $0
24
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wada kodu U2
Negacja w U2 – przypadki specjalne
Zakres reprezentowanych liczb jest niesymetryczny
0=
00000000
negacja bitowa
11111111
dodaj 1 do LSB
+1
wynik
1 00000000
przepe!nienie jest ignorowane
wi c
0=0+
najmniejsza liczba: #2n#1 (minint)
najwi ksza liczba: 2n#1#1 (maxint)
dla n=8
najmniejsza liczba: #128
najwi ksza liczba: +127
128 =
10000000
negacja bitowa
01111111
dodaj 1 do LSB
+1
wynik
10000000
wi c
( 128) = 128 X
dla n=16
najmniejsza liczba: #32 768
najwi ksza liczba: +32 767
25
Wniosek:
nale%y sprawdza& bit znaku
po negacji
(powinien si zmieni&)
26
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Konwersja d ugo"ci s owa w U2
Dodawanie i odejmowanie w U2
Liczby dodatnie uzupe!nia si wiod"cymi zerami
Obydwie operacje wykonuje si u%ywaj"c zwyk!ego
dodawania liczb dwójkowych
Nale%y sprawdza& bit znaku, aby wykry& nadmiar
(overflow)
+18 =
00010010
+18 = 00000000 00010010
Liczby ujemne uzupe!nia si wiod"cymi jedynkami
Odejmowanie wykonuje si przez negowanie odjemnej i
dodawanie:
a b = a + ( b)
18 =
10010010
18 = 11111111 10010010
Do realizacji dodawania i odejmowania potrzebny jest
zatem tylko uk!ad negacji bitowej i sumator
Ogólnie bior"c, powiela si bit MSB (bit znaku)
27
28
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Uk ad dodawania i odejmowania U2
Mno#enie
Mno%enie liczb dwójkowych jest znacznie
bardziej z!o%one od dodawania i odejmowania
Podstawowy algorytm jest taki sam jak przy
pi(miennym mno%eniu liczb:
29
okre(la si iloczyny cz"stkowe dla ka%dej cyfry
mno%nika
–
kolejne iloczyny cz"stkowe nale%y umieszcza& z
przesuni ciem o jedn" pozycj (kolumn ) w lewo
–
nale%y doda& do siebie iloczyny cz"stkowe
30
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Przyk ad mno#enia (liczby bez znaku)
1011
Uk ad mno#enia liczb bez znaku
mno%na (11 w kodzie dziesi tnym)
x 1101
1011
0000
1011
1011
10001111
mno%nik (13 w kodzie dziesi tnym)
iloczyny cz"stkowe
Uwaga: je(li bit mno%nika jest równy 1,
iloczyn cz"stkowy jest równy mno%nej,
w przeciwnym przypadku jest równy 0
wynik mno%enia (143 w kodzie dziesi tnym)
Uwaga #1:
wynik ma podwójn" d!ugo(&; potrzebujemy s!owa
o podwójnej precyzji
powy%szy algorytm funkcjonuje tylko dla liczb bez
znaku; je(li przyj"& kod U2 mno%na = 5,
mno%nik = 3, natomiast iloraz wynosi!by 113,
co oczywi(cie jest nieprawd"
Uwaga #2:
31
–
32
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Przyk ad mno#enia liczb bez znaku
Mno#enie liczb bez znaku cd.
wynik mno%enia
33
34
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Mno#enie liczb ze znakiem
Algorytm Booth’sa
Q-1 dodatkowy bit
(przerzutnik) pami taj"cy
najmniej znacz"cy bit
rejestru Q opuszczaj"cy ten
rejestr przy przesuni ciu w
prawo
Prosty algorytm podany wcze(niej nie dzia!a
Rozwi"zanie 1
–
–
–
zamieni& czynniki ujemne na dodatnie
pomno%y& liczby korzystaj"c z podanego wcze(niej
algorytmu
je(li znaki czynników (przed wykonaniem negacji)
by!y ró%ne, zanegowa& iloczyn
Przesuni cie arytmetyczne w
prawo – przesuni cie z
powieleniem bitu znaku
Rozwi"zanie 2
–
algorytm Booth’sa
35
36
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Przyk ad dzia ania metody Booth’sa
Algorytm Booth’sa (znak dowolny)
iloczyn: 3 x 7 = 21 testowane bity: 10 A:=A-M
01 A:=A+M
37
38
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Dzielenie
Liczby rzeczywiste
Dzielenie liczb dwójkowych jest znacznie bardziej skomplikowane
od mno%enia
Liczby ujemne sprawiaj" spore k!opoty (Stallings, s. 341-342)
Podstawowy algorytm podobny do dzielenia liczb na papierze:
kolejne operacje przesuwania, dodawania lub odejmowania
Przyk!ad: dzielenie liczb bez znaku:
Iloraz
(Quotient)
00001101
Dzielnik
Dzielna
1011 10010011
(Divisor)
(Dividend)
Reszty
cz"stkowe
(Partial
Remainders)
39
1011
001110
1011
001111
1011
100
Liczby z cz (ci" u!amkow"
Mo%na je zapisa& korzystaj"c z kodu NKB i dodatkowo
znaków ‘-’ oraz ‘.’
1001.1010 = 24 + 20 +2-1 + 2-3 =9.625
Problem: gdzie znajduje si kropka dziesi tna?
W sta!ym miejscu?
–
rozwi"zanie niedobre z punktu widzenia metod numerycznych
Na zmiennej pozycji?
Reszta
(Remainder)
–
40
jak poda& informacj o miejscu po!o%enia kropki?
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Liczby zmiennoprzecinkowe (FP)
FP – mantysa
bit znaku
Mantysa jest zapisana w kodzie U2
przesuni$ty
wyk adnik
(exponent)
mantysa (significand or mantissa)
Wyk!adnik jest zapisany z przesuni ciem (excess or
biased notation)
–
Warto(& liczby: +/- 1. mantysa x 2 wyk!adnik
–
Podstawa 2 jest ustalona i nie musi by& przechowywana
Po!o%eniu punktu dziesi tnego jest ustalone: na lewo od
najbardziej znacz"cego bitu mantysy
–
–
–
41
np. przesuni cie równe 127 oznacza:
8-bitowe pole wyk!adnika
zakres liczb 0-255
od przesuni tego wyk!adnika nale%y odj"& 127 aby otrzyma&
prawdziw" warto(&
zakres warto(ci wyk!adnika -127 to +128
42
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
FP – normalizacja
FP – przyk ad
Liczby FP s" zwykle normalizowane, tzn. wyk!adnik jest
tak dobierany, aby najbardziej znacz"cy bit (MSB)
mantysy by! równy 1
Poniewa% bit ten jest zawsze równy 1, nie musi by&
przechowywany. Dlatego 23-bitowe pole mantysy w
rzeczywisto(ci odpowiada mantysie 24-bitowej, z cyfr" 1
na najbardziej znacz"cej pozycji (mantysa mie(ci si
zatem w przedziale od 1 do 2
1,1010001 x 210100 =
- 1,1010001 x 210100 =
1,1010001 x 2-10100 =
- 1,1010001 x 2-10100 =
Uwaga: w notacji naukowej FP (Scientific notation) liczby
s" normalizowane inaczej, tak aby mantysa mia!a jedn"
znacz"c" cyfr przed kropk" dziesi tn",
np. 3.123 x 103
43
0 10010011 10100010000000000000000
1 10010011 10100010000000000000000
0 01101011 10100010000000000000000
1 01101011 10100010000000000000000
pozycje mantysy
uzupe niane s% zerami
44
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Zakres reprezentacji liczb FP
Zakresy liczb FP i U2 (format 32-bitowy)
Dla formatu 32-bitowego
8-bitowy wyk!adnik
+/- 2256 , 1.5 x 1077
Dok!adno(&
–
–
–
efekt nierównomiernego pokrycia osi liczb
rzeczywistych (zmienna warto(& LSB mantysy)
23-bitowa mantysa: 2-23 , 1.2 x 10-7
oko!o 6 pozycji dziesi tnych
45
46
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
ANSI/IEEE Standard Floating-Point Format (IEEE 754)
Standard IEEE 754
Revision (IEEE 754R) is being considered by a committee
Dwa warianty: 32- i 64-bitowy format liczb
8- lub 11-bitowy wyk!adnik (bias = 127 lub 1023)
IEEE 754 dopuszcza ponadto tzw. formaty rozszerzone (extended
formats) dla oblicze# po(rednich w systemach cyfrowych
Short (32-bit) format
8 bits,
bias = 127,
23 bits for fractional part
(plus hidden 1 in integer part)
Short exponent range is –127 to 128
but the two extreme values
are reserved for special operands
(similarly for the long format)
–126 to 127
Sign Exponent
11 bits,
bias = 1023,
–1022 to 1023
Significand
52 bits for fractional part
(plus hidden 1 in integer part)
Long (64-bit) format
The two ANSI/IEEE standard floating-point formats.
47
48
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Standard IEEE 754
Some features of ANSI/IEEE standard floating-point formats
W rzeczywisto(ci standard IEEE 754 jest
bardziej skomplikowany:
–
–
–
–
–
dodatkowe dwa bity: guard i round
cztery warianty zaokr"glania
liczba dodatnia podzielona przez 0 daje
niesko#czono(&
niesko#czono(& dzielona przez niesko#czono(& daje
NaN (not a number)
niektóre procesory nie s" w pe!ni zgodne z IEEE
754, skutki s" na ogó! niedobre (Pentium bug)
49
Feature
Single/Short
Double/Long
Word width in bits
32
64
Significand in bits
23 + 1 hidden
52 + 1 hidden
Significand range
[1, 2 – 2–23]
[1, 2 – 2–52]
Exponent bits
8
11
Exponent bias
127
1023
Zero (±0)
Denormal
e + bias = 0, f = 0
e + bias = 0, f 0
represents ±0.f - 2–126
e + bias = 0, f = 0
e + bias = 0, f 0
represents ±0.f - 2–1022
Infinity (.!)
e + bias = 255, f = 0
e + bias = 2047, f = 0
Not-a-number (NaN)
Ordinary number
e + bias = 255, f 0
e + bias % [1, 254]
e % [–126, 127]
represents 1.f - 2e
e + bias = 2047, f 0
e + bias % [1, 2046]
e % [–1022, 1023]
represents 1.f - 2e
min
2–126 / 1.2 - 10–38
2–1022 / 2.2 - 10–308
max
/ 2128 / 3.4 - 1038
/ 21024 / 1.8 - 10308
50
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Arytmetyka FP +/-
Arytmetyka FP x / 0
W arytmetyce FP dodawanie i odejmowanie s"
bardziej z!o%onymi operacjami ni% mno%enie i
dzielenie (powodem jest konieczno(& tzw.
wyrównywania sk!adników)
Etapy mno%enia i dzielenia
–
–
–
–
–
Etapy dodawania i odejmowania
–
–
–
–
–
Sprawdzenie zer
Wyrównanie mantys (i korekcja wyk!adników)
Dodawanie lub odj cie mantys
Normalizowanie wyniku
51
52
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Mno#enie FP
53
Dzielenie FP
54
Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania
Podsumowanie
Zapis s!ów w pami ci (Endian)
Reprezentacje liczb: NKB, ZM, U2, BCD, HEX
Ogólna charakterystyka ALU
Operacje na liczbach ca!kowitych bez znaku
Operacje na liczbach ca!kowitych ze znakiem
Mno%enie – algorytm Booth’sa
Liczby zmiennoprzecinkowe FP
Formaty liczb FP, IEEE 754
Operacje na liczbach FP
55
sprawdzenie zer
dodawanie/odejmowanie wyk!adników
mno%enie/dzielenie mantys (uwaga na znak)
normalizacja
zaokr"glanie
Uwaga: wszystkie wyniki oblicze# po(rednich
powinny by& wykonywane w podwójnej precyzji
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Bloki kombinacyjne
Przyk!ady: elementy 32-bitowego procesora
Organizacja i Architektura
Komputerów
Select
CarryIn
A
Suma
32
B
Carry
32
sumator
1
ALU
B
32
32
32
ALU
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Bramki logiczne
Dekoder binarny
Dowolny blok kombinacyjny mo na zbudowa# z bramek
n wej$#, 2n wyj$#
tylko jedno wyj$cie jest w stanie ‘1’ dla danej kombinacji
stanów na wej$ciu (funkcja ‘1 z n’)
Symbol prostok"tny
ANSI/IEEE
Symbol tradycyjny
IEC
&
•
•
•
•
•
•
iloczyn logiczny AND
zanegowany iloczyn logiczny NAND
suma logiczna OR
zanegowana suma logiczna NOR
negator (inwerter) NOT
suma modulo 2 (exclusive OR) XOR
n
wej !
3
2n wyj !
dekoder
binarny
4
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Dekoder binarny – implementacja
2+2=3?
Prosty dekoder 2-bitowy:
X0
X1
X0
&
Y0
&
Y1
&
Y2
&
Y0
Y1
Y2
Y3
dekoder
2-bitowy
X1
NOT
X2
Y4
Y5
Y6
Y7
dekoder
2-bitowy
Y3
Enable (zezwolenie)
5
Dwa dekodery 2-bitowe tworz" dekoder 3-bitowy
6
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Multiplekser
Koder kodu ‘1 z n” na kod NKB
Dzia!a jak prze!"cznik; nazywany
multiplekserem lub w skrócie MUX
X0
X1
NC
s1
s2
Y0
Tablica prawdy
a
X2
X3
b
Y1
multiplekser
(MUX)
c
X4
...
X7
y
d
Y2
s
a
b
suma logiczna
7
Y
Wynik
32
2
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
32
multiplekser
OP
A
32
MUX
Elementy i bloki cyfrowe
Sum.
B
A
32
8
y
symbol
alternatywny
(dla dwubitowego MUX)
s2 s1 y
_______
0 0 a
0 1 b
1 0 c
1 1 d
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Multiplekser – implementacja
s1
Multiplekser grupowy
S
s0 s1
s2
A
dekoder
B
a0
b0
c0
d0
&
a
S
2
y
&
c
A
a3
b3
c3
d3
&
d
9
Y
D
&
b
B
y3
MUX
C
D
4
4
4
MUX
4
Y
4
10
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
J"zyk VHDL – przyk#ad
entity MUX32X2 is
generic (output_delay : TIME := 4 ns);
port(A,B:
in vlbit_1d(31 downto 0);
DOUT:
out vlbit_1d(31 downto 0);
SEL:
in vlbit);
end MUX32X2;
Pó#sumator – HA (half adder)
• VHDL – Very (High
Speed Integrated
Circuit) Hardware
Description Language
Sum " (a ! b) # (a ! b ) " (a # b ) ! (a # b)
Carry " a ! b
• Opracowany w latach
80-tych przez
Departament Obrony
USA
architecture behavior of MUX32X2 is
begin
mux32x2_process: process(A, B, SEL)
begin
if (vlb2int(SEL) = 0) then
DOUT <= A after output_delay;
else
DOUT <= B after output_delay;
end if;
end process;
end behavior;
• Norma IEEE Standard
1076 (1987, 1993,
2001)
11
a
b
HA
a
b
&
Sum
cout
a
b
0
0
1
1
0
1
0
1
Sum Carry
0
1
1
0
0
0
0
1
cout
&
Sum
12
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Sumator: HA + HA = A (adder)
Sumator wielobitowy, szeregowy
a7 b7
a
b
cin
a
b
a
b
cin Sum
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
a7 b6
a1 b1
cout
Sum
sumator
cout
pó#sumator
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
cout
cin
$
sum7
c7
$
c6
....
c2
$
....
sum6
sum1
a0 b0
c1
$
c0
sum0
• Szeregowa propagacja przeniesie% (ripple-carry)
cout
pó#sumator
• Wada: d!ugi czas ustalania wyniku; sygna! przeniesienia
propaguje przez wszystkie stopnie sumatora
Sum
13
14
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Sumator równoleg#y (4-bitowy)
Sumator równoleg#y cd.
Okre$lamy funkcj& gi generuj"c" przeniesienie i funkcj& pi
okre$laj"c" propagacj& przeniesienia
a nast&pnie, po dokonaniu podstawie%, w postaci:
ci #1 " g i # pi ci
g i " ai bi
ci # 2 " g i #1 # pi #1 g i # pi #1 pi ci
pi " ai % bi
ci #3 " g i # 2 # pi # 2 g i #1 # pi # 2 pi #1 g i # pi # 2 pi #1 pi ci
ci # 4 " g i #3 # pi #3 g i # 2 # pi #3 pi # 2 g i #1 # pi #3 pi # 2 pi #1 g i # pi #3 pi # 2 pi #1 pi ci
Kolejne przeniesienia mo na teraz zapisa# w postaci:
ci #1 " g i # pi ci
wprowadzaj"c oznaczenia:
g (i ,i #3) " g i #3 # pi #3 g i # 2 # pi #3 pi # 2 g i #1 # pi #3 pi # 2 pi #1 g i
ci # 2 " g i #1 # pi #1ci #1
p (i ,i #3) " pi #3 pi # 2 pi #1 pi
ci # 3 " g i # 2 # p i # 2 ci # 2
otrzymujemy ostatecznie:
ci # 4 " g i # 3 # p i # 3 ci # 3
15
MUX
C
y0
MUX
c i # 4 " g ( i ,i # 3 ) # p ( i , i # 3 ) c i
16
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Sumator równoleg#y cd.
Sumator równoleg#y cd.
Równanie z poprzedniego slajdu okre$laj" metod&
nazywan" CLA – carry-look-ahead, w której przeniesienia
s" generowane przez blok CLA:
Budujemy z bramek zmodyfikowany sumator 1-bitowy:
g i #3 pi #3
g i # 2 pi # 2
g i #1 pi #1
ai
g i pi
ai
bi
bi
&
ci
$
ci # 4
=1
=
ci
ci
CLA
=1
11 bramek AND + 5 bramek OR
sumi
g i pi
ci # 3
g ( i ,i # 3 ) p ( i ,i # 3 )
17
pi
gi
ci #1
ci # 2
sumi
=1 bramka XOR
18
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Sumator równoleg#y cd.
Sumator równoleg#y doko$czenie
4-bitowy sumator z równoleg!" generacj" przeniesie%
ai # 2 bi # 2
ai #3 bi #3
ci # 3
$
g i #3
pi #3
sumi #3
ci # 2
$
g i#2
ai #1 bi #1
ci #1
$
sumi # 2
g i #1
pi # 2
pi #1
Ustalanie wyniku oraz propagacja przeniesie% w metodzie CLA s"
znacznie szybsze ni w metodzie ripple-carry:
ai bi
sumi #1
$
gi
propagacja
c1 do ci+1
c1 do ci+2
c1 do ci+3
c1 do ci+4
ci
sumi
pi
ripple
4.8
9.6
14.4
19.2
CLA
4.8
5.6
6.4
4.8
czas propagacji w ns
ci # 4
U ywaj"c 4-bitowego sumatora CLA z poprzedniego slajdu mo na
budowa# sumatory 8-, 12-, 16-, b"d' ogólnie 4 x n bitowe
Sumatory CLA mo na !"czy# tak, by przeniesienia mi&dzy nimi
propagowa!y szeregowo (ripple), lub wprowadzi# uk!ad CLA
drugiego poziomu, zbudowany na takiej samej zasadzie jak uk!ad
CLA pierwszego poziomu
CLA
p ( i ,i # 3 )
g ( i ,i # 3 )
19
20
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Krok 1
Budujemy ALU
Za!o enia projektowe
–
–
–
4-bitowe argumenty A i B
4-bitowy wynik operacji
Operacje arytmetyczne
A
B
4
4
dekrementacja A
inkrementacja A
dodawanie A+B
odejmowanie A–B
–
Operacje logiczne
Funkcja Opis
0
1
A+B
A+B’+1
Dodawanie
Odejmowanie
a2
b3
$
F
a1
b2
a0
b1
b0
4
=1
=1
=1
=1
f(A,B)
c4
$
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
$
f3
22
$
f2
$
f1
f0
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Krok 2
Krok 3 – projekt AE
Wniosek z kroku 1: sumator z ekstenderem mo e
realizowa# wi&cej funkcji ni samo dodawanie
Ogólna koncepcja ALU:
a3
b3
LE
c4
S
c4
S
Wska'niki: przeniesienie i nadmiar
x3
B
Wska%niki
21
AE
y3
$
f3
a2
b2
LE
x2
AE
y2
$
f2
a1
b1
LE
x1
AE
y1
$
f1
a0
b0
LE
x0
AE
y0
c0
$
f0
LE – logic extender, AE – arithmetic extender
23
S
a3
ALU
Sterowanie
negacja A (uzupe!nienie do 1)
iloczyn logiczny A and B
to samo$# A
suma logiczna A or B
–
A
Sumator z funkcj" odejmowania
24
M S1 S0
Funkcja
F
X
1
1
1
1
dekrementacja
dodawanie
odejmowanie
inkrementacja
A–1
A+B
A+B’+1
A+1
A
A
A
A
0
0
1
1
0
1
0
1
M S1 S0 bi
yi
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
Y
1...11
B
B’
0...00
c0
0
0
1
1
Tablica prawdy
M
wybór funkcji: 1 – arytmetyczne,
0 – logiczne
S1, S0 wybór operacji
yi
stan na wyj$ciu i-tego bloku AE
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Krok 4 – realizacja AE
S1S0
00
bi
0
01
11
1
1
S0
10
NOT
1
1
Krok 5 – projekt LE
bi
NOT
S1
M S1 S0
Funkcja
F
X
Y
c0
0
0
0
0
negacja bitowa
iloczyn logiczny
to samo$#
suma logiczna
A’
A and B
A
A or B
A’
A and B
A
A or B
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
NOT
1
M
y i " M S1bi # M S 0 b i
&
&
AE
yi
25
ai
zbudowa# map& Karnaugh’a dla
tablicy prawdy LE z poprzedniego
slajdu i sprawdzi#, e:
S1
M
a’i
aibi
ai
ai+bi
ai
0
0
1
1
x
0
1
0
1
x
Tablica prawdy
M
wybór funkcji: 1 – arytmetyczne,
0 – logiczne
wybór operacji
stan na wyj$ciu i-tego bloku LE
S1, S0
xi
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Krok 6 – LE
S0
xi
0
0
0
0
1
26
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
(wiczenie domowe:
M S1 S0
Krok 7 – projekt ko$cowy
bi
NOT
a3
b3
a2
b2
a1
b1
a0
b0
LE
AE
LE
AE
LE
AE
LE
AE
y3
x2
y2
x1
y1
x0
S0
NOT
S1
M
NOT
NOT
xi " M S1 S 0 ai # M S1 S 0 bi #
x3
&
# S 0 ai bi # S1 a1 # Mai
&
&
&
&
c4
$
c3
f3
=1
LE
$
$
f2
y0
$
f1
c0
&
f0
nadmiar (overflow)
xi
27
28
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Rozwi zanie alternatywne ALU
Rozwi zanie alternatywne cd.
Operation
CarryIn
Komórka ALU wzbogacona o funkcj# odejmowania
Komórka ALU zbudowana przy u yciu
multipleksera oraz schemat 32-bitowego
ALU
a0
b0
CarryIn
Result0
ALU0
Binvert
Operation
CarryOut
CarryIn
O peration
CarryIn
a1
b1
a
CarryIn
a
Result1
ALU1
0
CarryOut
0
1
1
a2
R esult
b2
Result2
ALU2
CarryOut
0
b
2
2
1
b
a31
C arryO ut
b31
Operacje: +, and, or
CarryIn
CarryOut
Result31
ALU31
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Elementy i bloki sekwencyjne
Przerzutniki cd.
Przerzutnik D – schemat logiczny i tablica stanów
Przerzutnik – podstawowy element sekwencyjnych bloków
funkcjonalnych komputerów
S
R
S
R
Q
Q
0
1
1
0
1
0
1
0
1
0
0
1
stan
niedozwol.
S
D
Q
Clk
Q
D
Q
Q
Q
D PR Q
R
31
Result
CarryIn
Q
Clk
Q
CLR
32
Clock
Q
0
0
1
1
Przerzutnik D
z asynchronicznymi
wej$ciami do ustawiania
(PR – preset) i zerowania
(CLR – clear)
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Przerzutniki cd.
Rejestry
Przerzutnik J-K – schemat logiczny
J
K
0
0
1
1
0
1
0
1
Clock
Q
Data In
J PR Q
>Clk
K
Q
CLR
bez zmian
0
1
stan przeciwny
J
>
K
Q
J
>
K
J
>
K
Q
Q
J
>
K
• Je$li WE = 1, stan Data In zostaje
wraz z opadaj"cym zboczem zegara
wpisany do rejestru i przeniesiony na
wyj$cie Data Out
n
Clk
• W technice komputerowej najcz#$ciej wykorzystuje si# rejestry przesuwaj"ce, które oprócz zapami#tywania n-bitowego s!owa mog" je przesuwa%
Vcc
X2
X1
Data Out
n
4-bitowy licznik binarny z przeniesieniami szeregowymi
X0
• Najcz#$ciej zbudowany z
zatrzaskowych przerzutników typu D
(latch)
Write Enable
• Najprostsze rejestry przesuwaj"ce przesuwaj" swoj" zawarto$% tylko w
jednym kierunku o 1 pozycj# (1 bit)
X3
• Bardziej z!o one rejestry przesuwaj" dane w obu kierunkach (SL – shift left,
SR – shift right)
Q
• Na wyj$ciu ALU znajduje si# zwykle szybki rejestr przesuwaj"cy (barrel
shifter)
33
34
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Plik (bank) rejestrów
Pami!"
Przyk!adowy plik rejestrów pokazany
obok sk!ada si# z 32 rejestrów:
Szyny
–
–
dwie 32-bitowe szyny wyj$ciowe busA
i busB
–
jedna 32-bitowa szyna wej$ciowa:
busW
sygna! zegara ma znaczenie tylko
przy zapisie; przy odczycie uk!ad
dzia!a jak uk!ad kombinacyjny
–
RW RA RB
WE 5 5 5
busA
busW
32
32 32-bit
32
Registers busB
Clk
–
–
32
–
RA – numer rejestru
wyprowadzanego na szyn# busA
–
RB – numer rejestru
wyprowadzanego na szyn# busB
–
RW – numer rejestru zapisywanego z
szyny busW je$li WE=1
35
DataIn
–
–
DataOut
n
Clk
adres o d!ugo$ci zale nej od
pojemno$ci pami#ci
sygna! WE = 1
Schemat logiczny bloku
pami#ci n-bitowej
(wyidealizowany)
Sygna! zegara Clock (CLK)
Przyk!ad pliku
rejestrów o organizacji
32 x 32 bity
Adres
n
S!owo n-bitowe zapisane w
pami#ci jest wybierane przez:
Rejestry s" wybierane przez:
–
WE
jedna szyna wej$ciowa: Data In
jedna szyna wyj$ciowa: Data
Out
sygna! CLK ma znaczenie tylko
przy zapisie
przy odczycie uk!ad zachowuje
si# jak kombinacyjny
36
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Multiplikator
Elementy trzystanowe
W systemach komputerowych cz#sto zachodzi potrzeba !"czenia
wyj$% ró nych uk!adów cyfrowych na wspólnej szynie. Wygodnym
rozwi"zaniem s" wyj$cia trzystanowe. W trzecim stanie (wysokiej
impedancji) wyj$cie stanowi wysok" impedancj# umo liwiaj"c"
traktowanie po!"czenia jako rozwarcie.
enablein
Szyna
Uk!ad
enableout
Inwertery i bufory z wyj$ciem trzystanowym s" cz#sto u ywane do
po!"czenia uk!adów z szynami (bus drivers)
–
–
dwa drivery umo liwiaj" realizacj# po!"czenia dwukierunkowego
dodatkowym zadaniem driverów jest wzmocnienie sygna!u, dzi#ki
czemu szyny mog" by% d!u sze
37
38
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Przyk#ad mno$enia
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
1101 (13)
Stan
pocz"tkowy
Qo =1: dodaj mno$n
x1011 (11)
Counter
1 1 0 1
0
C
1
39
0 0 0 0
1
C
Reg A
0
1 0 1 1
40
0 1
1 1 0 1
0
Reg A
0
1 1
3
1 1 0 1
3
1 1
0 1
1 0 1 1
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Przesu% wynik cz stkowy
Qo =1: dodaj mno$n
dekrementuj
licznik
1 1 0 1
2
0
1
1 1
2
0 1
0
C
Reg A
0
1
0 1 1 0
C
1 1 0 1
Reg A
1
0 0
wynik cz"stkowy
1 1
1 1 0 1
wynik cz"stkowy
41
42
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Przesu% wynik cz stkowy
Qo=0: przesu% (nie dodawaj)
po przesuni#ciu:
1 1 0 1
1
1 1
0
0 1
Qo =0
0
0
0
C
Reg A
0
1
1 0 0 1
C
1 1 1 0
Reg A
0
0 1 0
wynik cz"stkowy
43
0 1 1 1
44
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Qo=1: dodaj mno$n
Przesu% (koniec, Z=1)
1 1 0 1
0
1
C
C
Reg A
0 0 0 1
1 1 1 1
45
Podsumowanie
Elementy i bloki kombinacyjne
–
bramki, bufory (w tym trzystanowe)
kodery i dekodery
multipleksery
Synteza pó!sumatora i sumatora (look-ahead)
Synteza ALU
Elementy i bloki sekwencyjne
–
–
–
–
–
przerzutniki
liczniki
rejestry
pliki rejestrów
pami#ci
Metody opisu bloków cyfrowych (j#zyk VHDL)
Synteza uk!adu mno enia
1 0 0
0
1 1 1 1
wynik ko&cowy
46
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Reg A
0
wynik cz"stkowy
–
0 1
1
1
–
1 1
0
1
47
0
wynik cz"stkowy
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Budowa mikrokomputera
Organizacja i Architektura
Komputerów
Struktura i dzia!anie jednostki centralnej
1
2
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Struktura CPU
Zadania CPU
CPU wykonuje nast#puj"ce zadania:
–
–
–
–
–
pobiera instrukcje programu z pami#ci (instruction
fetch)
interpretuje (dekoduje) instrukcje
pobiera dane (data fetch)
przetwarza dane
zapisuje dane
3
4
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Standardowa architektura CPU
Rejestr wska ników
Przyk!adowa struktura rejestru wska$ników: procesor 80C51 XA (Philips)
5
6
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Bit Z - przyk!ad
Bit C - przyk!ad
Przyk!ad operacji dodawania z uwzgl#dnieniem bitu przeniesienia C
Przyk!ad wykorzystania bitu Z do
organizacji p#tli w programie; p#tla
jest powtarzana 10 razy, a
zawarto%& akumulatora stanie si#
równa zeru
7
adc ax,71h
8
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Stos – operacja zapisu
Stos – operacja odczytu
• typowa notacja w j#zyku
asemblera:
• typowa notacja w j#zyku
asemblera:
push x
pop
• w podanym przyk!adzie stos
rozbudowuje si# w stron#
wzrastaj"cych adresów pami#ci
(np. Intel x51)
x
• w podanym przyk!adzie stos
rozbudowuje si# w stron#
wzrastaj"cych adresów pami#ci
• wiele innych procesorów
wykorzystuje stos rozbudowywany
w stron# malej"cych adresów, np.
Intel Pentium, Motorola 68HC16
9
10
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Funkcje i w!a"ciwo"ci stosu
Stos – wywo!anie podprogramu
Stos jest pami#ci" typu LIFO (last-in-first-out)
Ilustracja wykorzystania stosu do zapami#tania adresu powrotu
(zawarto%ci licznika rozkazów IP) przy wywo!aniu podprogramu
(asembler Pentium)
Typowe zastosowania stosu
–
przy wywo!aniu podprogramu zapami#tuje adres powrotu do programu
g!ównego
–
przy przej%ciu do programu obs!ugi przerwania zapami#tuje adres
powrotu do przerwanego programu
Program g!ówny:
–
s!u y do chwilowego przechowywania zawarto%ci rejestrów w celu
uwolnienia ich do innych zada'
–
mo e by& u yty do przekazywania parametrów do podprogramów
...
...
call read_key
...
...
Programista musi dba& o zbilansowanie liczby operacji zapisu i
odczytu oraz o zachowanie w!a%ciwej kolejno%ci zapisu i odczytu
(odczyt warto%ci przebiega w odwrotnej kolejno%ci ni przy zapisie)
11
Programista musi dba& o to, by stos nie rozrós! si# nadmiernie i nie
przekroczy! limitu pami#ci (stack overflow) – cz#sty b!"d w
przypadku programów rekurencyjnych lub przy wyst"pieniu
niesko'czonej p#tli
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
–
Rejestry adresowe
–
mniej rejestrów GP – cz#stsze odwo!ania do pami#ci
–
znaczne zwi#kszenie liczby rejestrów GP nie wp!ywa znacz"co
na zmniejszenie liczby odwo!a' do pami#ci
–
wystarczaj"cy do przechowywania adresu
–
wystarczaj"cy do przechowywania pe!nego s!owa danych
Cz#sto mo na !"czy& ze sob" dwa rejestry, dzi#ki czemu
mo na !atwo reprezentowa& typowe formaty danych w
j#zykach wysokiego poziomu, np. w C:
Architektura oparta na specjalizowanych rejestrach upraszcza
budow# procesora i przyspiesza wykonanie rozkazu, ale ogranicza
programist#
–
double int a
–
long int a
14
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Rejestry cd.
Rejestry cd.
Przyk!ad architektury pliku rejestrów: procesor Motorola 68HC12
15
–
Rozmiar rejestru
Architektura oparta na rejestrach GP jest bardzie elastyczna przy
programowaniu, ale procesor jest bardziej z!o ony a czas
wykonania rozkazu d!u szy
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
near
Typowa liczba rejestrów GP w CPU: 8 – 32
Rejestr wska$ników (stanu, warunków, flag)
13
read_key
proc
...
...
ret
endp
Rejestry cd.
Rejestry mog" pe!ni& rozmaite funkcje:
Rejestry danych (np. akumulator)
read_key
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Liczba rejestrów i ich funkcje ró ni" si# dla ró nych procesorów
Rejestry ogólnego przeznaczenia (GP – general purpose)
Podprogram:
12
Niewielka pami#& robocza CPU do przechowywania tymczasowych
wyników oblicze'
–
zapisz IP
na stos
odczytaj IP
ze stosu
Rejestry
–
Uwaga: rejestr IP (instruction pointer)
bywa w wielu innych procesorach
nazywany PC (program counter)
Rejestr wska$ników w procesorze Motorola 68HC12
16
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Rejestry cd.
Przyk!ad architektury
rejestrów GP:
Philips 80C51 XA
Rejestry cd.
rejestry GP
Przyk!ad architektury pliku
rejestrów:
rejestry indeksowe
procesor Intel Pentium
rejestr bazowy
wska$nik stosu
rejestry segmentów
rejestr wska$ników
licznik rozkazów
17
18
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Cykl wykonania rozkazu
Format rozkazu
W procesorach o architekturze CISC rozkazy maj" niejednolit"
posta& (format):
• instrukcja zapisana binarnie mo e mie& ró n" d!ugo%&
• stosuje si# ró ne sposoby adresowania argumentów
Przyk!ad (Pentium):
mov
fetch – pobranie binarnego kodu rozkazu z pami#ci
10001011
11000001
W celu przyspieszenia wykonywania rozkazu stosuje si# niekiedy
cykl prefetch – pobieranie kodu rozkazu jeszcze przed zako'czeniem
wykonania poprzedniego rozkazu. Rozwój tej koncepcji doprowadzi!
do cachingu i pipeliningu
19
ax,cx
mov
kod operacji
ax,[e42d]
10100001
00101101
11100100
argument lub adres
little endian!
20
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Cykl wykonania rozkazu cd.
Pobranie rozkazu
MEMR
21
22
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wykonanie rozkazu
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Ri
Wykonanie rozkazu cd. A
A
Przyk!ad wykonania rozkazu przes!ania zawarto%ci rejestru Ri do
akumulatora
23
M ( R0, R1)
Przyk!ad: wykonanie rozkazu przes!ania zawarto%ci akumulatora A
do komórki pami#ci o adresie zawartym w parze rejestrów R0 i R1
24
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wykonanie rozkazu cd.
Wykonanie rozkazu cd.
Przebiegi w trakcie pobrania i wykonania rozkazu: A
M ( R 0, R1)
Analizowane poprzednio rozkazy w prostych
procesorach 8-bitowych zajmuj" tylko 1 bajt zawieraj"cy
kod operacji
25
–
informacja o rejestrach bior"cych udzia! w operacji mie%ci si#
na kilku bitach w kodzie operacji
–
wymagany jest tylko jeden cykl dost#pu do pami#ci w fazie
fetch
–
w przypadku rozkazu Ri
przy zapisie wyniku
–
M ( R 0, R1) potrzebny jest jeden cykl
w przypadku rozkazu A
dost#pu do pami#ci przy zapisie wyniku
A nie trzeba dost#pu do pami#ci
26
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wykonanie rozkazu cd.
Wykonanie rozkazu cd.
Przyk!ad rozkazu wielobajtowego
Przyk!ad rozkazu wielobajtowego:
add a,7bh
;dodaj do akumulatora liczb
;zapisan! w kodzie hex
7b
add
a,[1c47h]
;dodaj do A zawarto#$ komórki
;o adresie 1c47 w kodzie hex
wykonanie
wykonanie
IR
PC
Temp
PC
A
M(PC)
PC+1
M(PC)
PC+1
ALU+
IR
PC
RAH
PC
RAL
PC
Temp
A
;pobierz kod operacji do IR
;inkrementuj licznik programu PC
;za"aduj do Temp argument z pami ci
;inkrementuj PC
;prze#lij wynik dodawania A+Temp do A
27
M(PC)
PC+1
M(PC)
PC+1
M(PC)
PC+1
M(RA)
ALU+
;pobierz kod operacji do IR
;inkrementuj licznik programu PC
;"aduj bardziej znacz!cy bajt adresu
;inkrementuj PC
;"aduj mniej znacz!cy bajt adresu
;inkrementuj PC
;"aduj dodajnik do rejestru Temp
;prze#lij wynik dodawania do A
28
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Cykl rozkazowy – wnioski
Instrukcje i mikrooperacje
Wykonanie programu polega na wykonaniu ci"gu cykli
rozkazowych
Cykl rozkazowy sk!ada si# z dwóch podstawowych faz:
cyklu pobrania rozkazu i wykonania rozkazu
W zale no%ci od d!ugo%ci kodu rozkazu i sposobu
adresowania argumentów wykonanie rozkazu zajmuje
ró n" liczb# elementarnych cykli maszynowych
realizowanych przez jednostk# steruj"c"
Elementarne operacje sk!adaj"ce si# na wykonanie
rozkazu s" nazywane mikrooperacjami (!OP)
29
30
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Uk!ad sterowania
Sterowanie w prostym CPU
Zadaniem jednostki steruj"cej jest wygenerowanie sekwencji sygna!ów
steruj"cych, które spowoduj" wykonanie sekwencji mikrooperacji
realizuj"cej dany rozkaz
31
32
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Mikrooperacje i sterowanie
Uk!ad sterowania cd.
Przyk!ad realizacji prostej operacji dla CPU z poprzedniego rysunku:
add
cykl
mikrooperacja
t1
t2
MAR
MBR
PC
IR
MAR
MBR
AC
t3
t4
t5
t6
Zastosowanie dekodera
upraszcza budow# uk!adu
sterowania
ac,[adres]
sygna"y steruj!ce
PC
memory
PC+1
MBR
IR(adres)
memory
AC+MBR
C2
C5
C4
C8
C5
C6,C7,C9
33
34
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Warianty realizacji CU
Mikroprogramowanie
Mikroprogramowana jednostka CU (M.V. Wilkes, 1951):
Stosuje si# dwa sposoby realizacji jednostki steruj"cej:
Sekwencje sygna!ów steruj"cych s" przechowywane w wewn#trznej
pami#ci CU i tworz" mikroprogram; ka dy rozkaz CPU ma w!asny
kod mikroprogramu
• w postaci typowego uk!adu sekwencyjnego (hardwired CU)
• z wykorzystaniem mikroprogramowania (microprogrammed CU)
Praca CU polega na sekwencyjnym odczytywaniu kolejnych s!ów
mikroprogramu
• Jednostka CU typu hardwired :
• Zaprojektowana jako uk!ad sekwencyjny – automat o
sko'czonej liczbie stanów (FSM – finite state machine), z
wykorzystaniem klasycznych metod syntezy uk!adów
sekwencyjnych
Zalety:
• Zalety: du a szybko%& dzia!ania, zoptymalizowana liczba
elementów logicznych
–
przejrzysta, usystematyzowana budowa CU
–
!atwo%& modyfikacji pami#ci mikroprogramu
Wady:
–
mniejsza szybko%& dzia!ania w porównaniu z jednostk" CU typu
hardwired
–
wi#ksza liczba elementów logicznych (w tym pami#ciowych)
• Wada: trudna modyfikacja w razie konieczno%ci zmiany projektu
• Jednostki CU typu hardwired s" preferowane w architekturze
RISC
35
36
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Kodowanie mikrorozkazów
Mikroprogramowanie cd.
kodowanie poziome
Schemat funkcjonalny
mikroprogramowanej
jednostki steruj"cej
kodowanie pionowe
37
38
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Przerwanie
Koncepcja systemu przerwa#
Program g!ówny
Przerwanie
(Interrupt)
Program obs!ugi
przerwania
(Interrupt handler)
39
40
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Przerwania –
zysk czasu CPU
Przerwania zewn$trzne
Przerwania zewn$trzne (interrupts) spowodowane
zdarzeniem poza CPU, sygnalizowane sygna!em
doprowadzonym do odpowiedniego wej%cia procesora
1,2,3 – program g!ówny
4 – inicjacja operacji I/O
5 – obs!uga przerwania
z przerwaniami
bez przerwa'
41
–
Maskowane – sygnalizowane przez wej%cie INTR; CPU
reaguje na przerwanie maskowane je%li bit zezwolenia na
przerwanie IF w rejestrze wska$ników (w Pentium EFLAGS)
jest ustawiony
–
Niemaskowane – sygnalizowane przez wej%cie NMI; CPU
zawsze reaguje na takie przerwanie
42
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Przerwania wewn$trzne - wyj%tki
Cykl rozkazu a przerwania
Wyj%tki (exceptions) powoduj" takie same efekty jak
przerwania zewn#trzne, ale s" wynikiem realizacji
programu
–
B!$dy – w przypadku wykrycia b!#du uniemo liwiaj"cego
wykonanie instrukcji CPU generuje wyj"tek
–
Wyj%tki programowane – generowane celowo przez
programist# przy u yciu specjalnych instrukcji (INTO, INT3,
INT, BOUND – Pentium)
43
44
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Przerwania – problemy projektowe
Przerwania – handler (problem 1)
Przyk!ad realizacji wspó!pracy programu g!ównego z handlerem (Pentium)
1. Jak zapobiec interferencji programu g!ównego i handlera
(obydwa dzia!aj" na tych samych zasobach CPU) ?
program g!ówny
2. W jakim obszarze pami#ci nale y umie%ci& programy obs!ugi
przerwa' (handlery) ?
instrukcja
instrukcja
instrukcja
instrukcja
...
...
3. Je%li w systemie jest wiele $róde! przerwa', jak rozpozna&, które
z urz"dze' zg!osi!o przerwanie ?
4. Co zrobi&, je%li jednocze%nie wyst"pi wi#cej ni jedno "danie
przerwania ?
1
2
3
4
handler
hand_1
(1)
(2)
hand_1
proc
push
push
...
...
pop
pop
iret
endp
far
ax
bp
bp
ax
(1)
EFLAGS stos
I,T flags = 0
CS stos
IP stos
IP:CS hand_1
(2)
IP stos
CS stos
EFLAGS
stos
• czynno%ci (1) i (2) s" wykonywane automatycznie przez CPU
• ochron# rejestrów w handlerze (w tym przypadku ax i bp) programista
musi zorganizowa& samodzielnie
46
45
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Adresy handlerów (problem 2)
Przerwania wielokrotne (problemy 3 i 4)
• Sposób rozmieszczenia adresów handlerów przerwa' i wyj"tków
jest w wi#kszo%ci procesorów ustalony na sta!e przez producenta
CPU – u ytkownik mo e definiowa& cz#%& adresów, reszta jest
ustalona przez system
• Najcz#%ciej adresy handlerów s" umieszczone na samej górze
(Motorola) lub na samym dole przestrzeni adresowej (Intel)
Zablokowanie (maskowanie przerwa')
–
CPU ignoruje kolejne sygna!y przerwa' i wykonuje aktualny
handler
–
zg!oszenia przerwa' s" pami#tane; CPU zacznie je obs!ugiwa&
w kolejno%ci zg!oszenia, po zako'czeniu wykonywania
aktualnego handlera
Przyk!ad: adresy handlerów przerwa' w MC68HC12
Przerwania priorytetowe
–
obs!uga przerwa' o ni szym priorytecie mo e by& przerywana
przez przerwania o wy szym priorytecie
–
po zako'czeniu obs!ugi przerwania o wy szym priorytecie CPU
wraca do obs!ugi przerwania o ni szym priorytecie
watchdog
NMI
NMI
59 x NMI
47
48
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Przerwania wielokrotne - sekwencyjne
Przerwania wielokrotne - zagnie&d&one
49
50
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Cykl rozkazu
Identyfikacja ród!a przerwa" (1)
Organizacja prostego
systemu identyfikacji
przerwa przez
programowe
przegl!danie (polling)
Diagram cyklu
rozkazowego z
uwzgl#dnieniem obs!ugi
wyj"tków i przerwa'
51
52
Wy"sza Szko#a Informatyki Stosowanej i Zarz!dzania
Wy"sza Szko#a Informatyki Stosowanej i Zarz!dzania
Identyfikacja ród!a przerwa" (2)
53
Organizacja systemu identyfikacji $ród#a przerwa z #a cuchowaniem
urz!dze I/O (daisy-chain)
Wy"sza Szko#a Informatyki Stosowanej i Zarz!dzania
Podsumowanie
Struktura i dzia#anie CPU
–
–
–
rejestr wska$ników
plik rejestrów
segmentacja pami%ci
Stos
Budowa i dzia#anie jednostki steruj!cej
–
–
–
cykl wykonania rozkazu
warianty realizacji jednostki steruj!cej
mikroprogramowana jednostka steruj!ca
Przerwania
–
–
–
–
55
koncepcja systemu przerwa , przerwania i wyj!tki
handlery i ich adresy, przerwania wektoryzowane
przerwania wielokrotne
identyfikacja $ród#a przerwania
Identyfikacja ród!a przerwa" (3)
Prosty uk#ad realizuj!cy przerwania wektoryzowane
54
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wydajno !: CPU i pami"!
10 6
Relative performance
Organizacja i Architektura
Komputerów
Pami#$ cache
Processor
10 3
Memory
1
1980
1990
2000
2010
Calendar year
Memory density and capacity have grown along with the CPU
power and complexity, but memory speed has not kept pace.
1
2
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Pami"! cache – koncepcja
Pami"! cache – koncepcja
niewielka, ale szybka pami#$ RAM
umieszczona mi#dzy CPU a pami#ci" g!ówn"
(operacyjn")
mo e by$ umieszczona w jednym uk!adzie scalonym z
CPU lub poza CPU
3
Cache is transparent to user;
transfers occur automatically
CPU
Main
(slow)
memory
Cache
(fast)
memory
Reg
file
4
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Hierarchiczny system pami"ci
Capacity
Access latency
100s B
ns
10s KB
a few ns
MBs
10s ns
100s MB
100s ns
10s GB
10s ms
TBs
min+
Cache 2
Main
Secondary
CPU
registers
CPU
$Millions
Cache 1
Speed
gap
Po#$czenie CPU z cache
Cost per GB
Reg’s
Cleaner and
easier to analyze
CPU
CPU
registers
$100s Ks
$10s Ks
Level-1
cache
Level-2
cache
Main
memory
Level-2
cache
Level-1
cache
Main
memory
$1000s
$10s
Tertiary
(a) Level 2 between level 1 and main
(b) Level 2 connected to “backside” bus
$1s
Cache memories act as intermediaries between the superfast
processor and the much slower main memory.
Names and key characteristics of levels in a memory hierarchy.
5
6
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Dzia#anie pami"ci cache
Zasady lokalno ci
CPU "da odczytu pami#ci
sprawdza si#, czy potrzebne dane znajduj" si#
w cache
je%li tak, nast#puje szybki odczyt z cache
je%li nie, przesy!a si# potrzebny blok danych z
pami#ci g!ównej do cache
nast#pnie "dane dane s" przesy!ane do CPU
pami#$ cache jest wyposa ona w znaczniki
(tags) pozwalaj"ce ustali$, które bloki pami#ci
g!ównej s" aktualnie dost#pne w pami#ci cache
7
Line
Word
Lokalno%$ w sensie czasu: je%li CPU odwo!uje si#
do okre%lonej komórki pami#ci, jest
prawdopodobne, e w najbli szej przysz!o%ci
nast"pi kolejne odwo!anie do tej komórki
Lokalno%$ w sensie przestrzeni adresowej: je%li
CPU odwo!uje si# do okre%lonej komórki pami#ci,
jest prawdopodobne, e w najbli szej przysz!o%ci
nast"pi odwo!anie do s"siednich komórek pami#ci
8
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Terminologia
Terminologia cd.
cache hit (trafienie): sytuacja, gdy "dana
informacja znajduje si# w pami#ci cache
wy szego poziomu
cache miss (chybienie, brak trafienia): sytuacja,
gdy "danej informacji nie ma w pami#ci cache
wy szego poziomu
line, slot (linijka, wiersz, blok): najmniejsza
porcja (kwant) informacji przesy!anej mi#dzy
pami#ci" cache, a pami#ci" wy szego poziomu.
Najcz#%ciej stosuje si# linijki o wielko%ci 32
bajtów
9
hit rate (wspó!czynnik trafie&): stosunek liczby
trafie& do !"cznej liczby odwo!a& do pami#ci
miss rate (wspó!czynnik chybie&): 1 – hit rate
hit time (czas dost#pu przy trafieniu): czas
dost#pu do "danej informacji w sytuacji gdy
wyst"pi!o trafienie. Czas ten sk!ada si# z dwóch
elementów:
–
–
10
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Terminologia cd.
Problemy
W jaki sposób ustali$, czy "dana informacja znajduje
si# w pami#ci cache?
Je%li ju ustalimy, e potrzebna informacja jest w
pami#ci cache, w jaki sposób znale'$ j" w tej pami#ci
(jaki jest jej adres?)
Je%li informacji nie ma w pami#ci cache, to do jakiej
linijki j" wpisa$ z pami#ci g!ównej?
Je%li cache jest pe!na, to wed!ug jakiego kryterium
usuwa$ linijki aby zwolni$ miejsce na linijki sprowadzane
z pami#ci g!ównej?
W jaki sposób inicjowa$ zawarto%$ pami#ci cache?
miss penalty (kara za chybienie): czas potrzebny
na wymian# wybranej linijki w pami#ci cache i
zast"pienie jej tak" linijk" z pami#ci g!ównej,
która zawiera "dan" informacj#
czas hit time jest znacznie krótszy od czasu
miss penalty (w przeciwnym przypadku
stosowanie pami#ci cache nie mia!oby sensu!)
11
12
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Odwzorowanie bezpo rednie
Funkcja odwzorowuj$ca
direct-mapped cache
Najprostsza metoda odwzorowania polega na
wykorzystaniu najmniej znacz"cych bitów
adresu
Na przyk!ad, wszystkie linijki w pami#ci g!ównej,
których adresy ko&cz" si# sekwencj" 000 b#d"
odwzorowane na t" sam" linijk# w pami#ci
cache
Powy sza metoda wymaga, by rozmiar pami#ci
cache (wyra ony w linijkach) by! pot#g" liczby 2
ka dy blok (linijka) w pami#ci g!ównej jest
odwzorowywana (przyporz"dkowana) tylko
jednej linijce w pami#ci cache
poniewa cache jest znacznie mniejsza od
pami#ci g!ównej, wiele ró nych linijek pami#ci
g!ównej jest odwzorowanych na t" sam" linijk#
w cache
13
14
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Co znajduje si" w linijce 000?
Odwzorowanie bezpo rednie
Cache
Wci" nie wiemy, która linijka z pami#ci g!ównej (z wielu
mo liwych) znajduje si# aktualnie w konkretnej linijce
pami#ci cache
Musimy zatem zapami#ta$ adres linijki przechowywanej
aktualnie w linijkach pami#ci cache
Nie trzeba zapami#tywa$ ca!ego adresu linijki, wystarczy
zapami#ta$ tylko t# jego cz#%$, która nie zosta!a
wykorzystana przy odwzorowaniu
T# cz#%$ adresu nazywa si# znacznikiem (tag)
Znacznik zwi"zany z ka d" linijk" pami#ci cache
pozwala okre%li$, która linijka z pami#ci g!ównej jest
aktualnie zapisana w danej linijce cache
000
001
010
011
100
101
110
111
00001
15
czasu potrzebnego do ustalenia, czy "dana
informacja jest w pami#ci cache
czasu potrzebnego do przes!ania informacji z
pami#ci cache do procesora
00101
01001
01101
10001
Memory
10101
11001
11101
16
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Znaczniki – ilustracja
Inicjalizacja cache
Pami"! g#ówna
Pocz"tkowo pami#$ cache jest pusta
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Dane
–
Znaczniki
wszystkie bity w pami#ci cache (w!"cznie z bitami
znaczników) maj" losowe warto%ci
Po pewnym czasie pracy systemu pewna cz#%$
znaczników ma okre%lon" warto%$, jednak
pozosta!e s" nadal wielko%ciami losowymi
Jak ustali$, które linijki zawieraj" rzeczywiste
dane, a które nie zosta!y jeszcze zapisane?
17
18
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Bit wa%no ci (valid bit)
Rewizyta w cache
Nale y doda$ przy ka dej linijce pami#ci cache
dodatkowy bit, który wskazuje, czy linijka zawiera wa ne
dane, czy te jej zawarto%$ jest przypadkowa
Na pocz"tku pracy systemu bity wa no%ci s" zerowane,
co oznacza, e pami#$ cache nie zawiera wa nych
danych
Przy odwo!aniach CPU do pami#ci, w trakcie
sprawdzania czy potrzebne dane s" w cache nale y
ignorowa$ linijki z bitem wa no%ci równym 0
Przy zapisie danych z pami#ci g!ównej do pami#ci cache
nale y ustawi$ bit wa no%ci linijki
19
Memory
Valid
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Tags
Data
20
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Prosta symulacja cache
Za#o%enie: sekwencja odwo#a& CPU
do pami"ci
U yjemy prostej struktury z pami#ci" cache L1
zbudowan" tylko z czterech linijek, podobn" do
opisanej wcze%niej
Za!o ymy, e na pocz"tku bity wa no%ci zosta!y
wyzerowane
21
Adres binarny
Linijka
hit / miss
3
8
3
2
4
8
0011
1000
0011
0010
0100
1000
11 (3)
00 (0)
11 (3)
10 (2)
00 (0)
00 (0)
miss
miss
hit
miss
miss
miss
22
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Address
Binary Address
Slot
hit or miss
Address
Binary Address
Slot
hit or miss
3
0011
11 (3)
miss
3
0011
11 (3)
miss
8
1000
00 (0)
miss
8
1000
00 (0)
miss
3
0011
11 (3)
hit
3
0011
11 (3)
hit
2
0010
10 (2)
miss
2
0010
10 (2)
miss
4
0100
00 (0)
miss
4
0100
00 (0)
miss
8
1000
00 (0)
miss
8
1000
00 (0)
miss
Slot
V Tag
Data
Inicjalizacja
bitów
wa no%ci
00
Slot
V Tag
00
0
01
01
0
10
10
0
11
0
11
23
Adres
24
Data
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Address
Binary Address
Slot
hit or miss
Address
Binary Address
Slot
hit or miss
3
0011
11 (3)
miss
3
0011
11 (3)
miss
8
1000
00 (0)
miss
8
1000
00 (0)
miss
3
0011
11 (3)
hit
3
0011
11 (3)
hit
2
0010
10 (2)
miss
2
0010
10 (2)
miss
4
0100
00 (0)
miss
4
0100
00 (0)
miss
8
1000
00 (0)
miss
8
1000
00 (0)
miss
First Access
Slot
V Tag
Data
2nd Access
V Tag
00
0
00
1
01
0
01
0
10
0
10
0
11
1
11
1
00
Mem[3]
25
Data
10
Mem[8]
00
Mem[3]
26
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Address
Binary Address
Slot
hit or miss
Address
Binary Address
Slot
hit or miss
3
0011
11 (3)
miss
3
0011
11 (3)
miss
8
1000
00 (0)
miss
8
1000
00 (0)
miss
3
0011
11 (3)
hit
3
0011
11 (3)
hit
2
0010
10 (2)
miss
2
0010
10 (2)
miss
4
0100
00 (0)
miss
4
0100
00 (0)
miss
8
1000
00 (0)
miss
8
1000
00 (0)
miss
3rd Access
Slot
V Tag
00
1
01
Data
4th Access
Slot
V Tag
00
1
0
01
0
10
0
10
11
1
11
10
Mem[8]
00
Mem[3]
27
Data
10
Mem[8]
1
00
Mem[2]
1
00
Mem[3]
28
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Address
Binary Address
Slot
hit or miss
Address
Binary Address
Slot
hit or miss
3
0011
11 (3)
miss
3
0011
11 (3)
miss
8
1000
00 (0)
miss
8
1000
00 (0)
miss
3
0011
11 (3)
hit
3
0011
11 (3)
hit
2
0010
10 (2)
miss
2
0010
10 (2)
miss
4
0100
00 (0)
miss
4
0100
00 (0)
miss
8
1000
00 (0)
miss
8
1000
00 (0)
miss
5th Access
Slot
V Tag
Data
00
1
01
0
10
1
00
Mem[2]
11
1
00
Mem[3]
10
01
6th Access
Mem[8]
Mem[4]
29
Slot
V Tag
00
1
01
0
10
11
Data
01
10
Mem[4]
Mem[8]
1
00
Mem[2]
1
00
Mem[3]
30
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Problem
Rozwi$zanie
Pami#$ zawiera 230 s!ów
Cache zawiera 16K = 214 linijek (s!ów).
Ka da linijka mo e przechowywa$ jedn" z 230/214 =
216 linijek pami#ci g!ównej, st"d znacznik musi mie$
16 bitów
216 linijek w pami#ci g!ównej ma !"czn" pojemno%$
równ" 64K linijek – taki obszar jest
przyporz"dkowany ka dej linijce w pami#ci cache
("czna pojemno%$ pami#ci cache wyra ona w bitach
wynosi 214 x (32+16+1) = 49 x 16K = 784 Kb
(98 KB!)
Za!o enia projektowe:
–
–
–
(232
230
32-bitowe adresy
bajtów w pami#ci g!ównej,
s!ów
4-bajtowych)
64 KB cache (16 K s!ów). Ka da linijka przechowuje 1 s!owo
Odwzorowanie bezpo%rednie (Direct Mapped Cache)
Ile bitów b#dzie mia! ka dy znacznik?
Ile ró nych linijek z pami#ci g!ównej b#dzie
odwzorowanych na t# sam" linijk# w pami#ci cache?
Ile bitów b#dzie zajmowa$ !"cznie kompletna linijka w
pami#ci cache? (data + tag + valid).
31
Slot
32
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Problem z zapisem
Zapis jednoczesny (write through)
Write through – zapis jednoczesny: dane s"
zapisywane jednocze%nie do cache i pami#ci g!ównej.
Zaleta: zapewnienie sta!ej aktualno%ci danych w pami#ci
g!ównej (memory consistency)
Wada: du y przep!yw danych do pami#ci
–
–
W metodzie write through procesor zapisuje dane
jednocze%nie do cache i do pami#ci g!ównej
–
–
–
–
33
w zapisie do pami#ci g!ównej po%redniczy bufor
przepisywanie danych z bufora do pami#ci g!ównej obs!uguje
specjalizowany kontroler
Bufor jest niewielk" pami#ci" FIFO (first-in-first-out)
Zaleta: mniejszy przep!yw danych do pami#ci
Wada: problemy ze spójno%ci" danych w pami#ci
–
DRAM
Write Buffer
Write back – zapis opó'niony: aktualizuje si# tylko
pami#$ cache. Fakt ten odnotowuje si# w specjalnym
dodatkowym bicie (dirty, updated). Przy usuwaniu
linijki z cache nast#puje sprawdzenie bitu i
ewentualna aktualizacja linijki w pami#ci g!ównej.
–
Cache
Procesor
typowo zawiera 4 pozycje
metoda dzia!a dobrze, je%li czesto%$ operacji zapisu jest
znacznie mniejsza od 1 / DRAM write cycle
34
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Projekt cache - przyk#ad
Projekt cache - rozwi$zanie
Address (showing bit positions)
31
Za!o enia projektowe:
–
Hit
4 s!owa w linijce
4 32 1 0
12
2 Byte
offset
Tag
Data
Index
do przeprowadzenia odwzorowania pami#ci u ywamy
adresów linijek
adres linijek jest okre%lany jako adres/4.
przy odwo!aniu ze strony CPU potrzebne jest pojedyncze
s!owo, a nie ca!a linijka (mo na wykorzysta$ multiplekser
sterowany dwoma najmniej znacz"cymi bitami adresu)
–
16 15
16
V
Block offset
16 bits
128 bits
Tag
Data
4K
entries
Cache 64KB
16
16 Bajtów w linijce
4K linijek
32
32
32
32
Mux
32
35
36
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wielko ! linijki a wydajno !
Czy du%a linijka jest lepsza?
Przyk!ad: DecStation 3100 cache z linijk"
o rozmiarze 1 lub 4 s!ów
Rozmiar
Program
Zwi#kszanie rozmiaru linijki (przy ustalonym rozmiarze
pami#ci cache) oznacza, e liczba linijek
przechowywanych w pami#ci jest mniejsza
Miss Rate
linijki
Instrukcje
Dane
Instr. + Dane
–
5.4%
–
gcc
1
6.1%
2.1%
gcc
4
2.0%
1.7%
1.9%
spice
1
1.2%
1.3%
1.2%
spice
4
0.3%
0.6%
0.4%
37
Prosz# rozwa y$ skrajny przypadek, gdy ca!a pami#$
cache tworzy jedn" du " linijk#!
38
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Rozmiar linijki a miss rate
Miss
Rate
Rozmiar linijki a miss penalty
Im wi#kszy jest rozmiar linijki, tym wi#cej czasu potrzeba na
przes!anie linijki mi#dzy pami#ci" g!ówn" a pami#ci" cache
Rozmiar cache (bajty)
25%
20%
1K
15%
4K
W przypadku chybienia czas sprowadzenia linijki wzrasta
(parametr miss penalty ma wi#ksz" warto%$)
Mo na budowa$ pami#ci zapewniaj"ce transfer wielu bajtów w
jednym cyklu odczytu, ale tylko dla niewielkiej liczby bajtów
(typowo 4)
16K
10%
Przyk!ad: hipotetyczne parametry dost#pu do pami#ci g!ównej:
64K
5%
256K
–
1 cykl CPU na wys!anie adresu
–
15 cykli na inicjacj# ka dego dost#pu
–
1 cykl na transmisj# ka dego s!owa
Parametr miss penalty dla linijki z!o onej z 4 s!ów:
256
128
64
32
16
0%
1 + 4x15 + 4x1 = 65 cykli.
Rozmiar linijki (bajty)
39
konkurencja o miejsce w pami#ci cache jest wi#ksza
parametr miss rate wzrasta
40
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wydajno ! cache
Wydajno ! cache
Wydajno%$ cache zale y g!ównie od dwóch czynników:
)redni czas dost#pu do pami#ci
AMAT – average memory access time
–
Poprawa wydajno%ci pami#ci cache polega na
skróceniu czasu AMAT przez:
1. ograniczenie chybie& (zmniejszenie miss rate,
zwi#kszenie hit rate)
2. zmniejszenie miss penalty
3.
–
miss penalty
Zale y tylko od organizacji komputera (organizacji pami#ci
i czasu dost#pu do pami#ci)
Je%li podwoimy cz#stotliwo%$ zegara nie zmienimy
adnego z tych parametrów (czas dost#pu do pami#ci
pozostanie taki sam)
zmniejszenie hit time
41
miss rate
Zale y od organizacji procesora (hardware) i od
przetwarzanego programu (miss rate mo e si# zmienia$).
AMAT = Hit time + Miss rate x Miss penalty
Dlatego parametr speedup wzro%nie mniej ni
dwukrotnie
42
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wydajno ! cache - przyk#ad
Jak zmniejszy! miss rate?
Za!ó my, e w pami#ci cache z odwzorowaniem
bezpo%rednim co 64 element pami#ci jest
odwzorowany w tej samej linijce. Rozwa my
program:
Oczywi%cie zwi#kszenie pami#ci cache
spowoduje ograniczenie chybie&, czyli
zmniejszenie parametru miss rate
Mo na te zmniejszy$ miss rate ograniczaj"c
konkurencj# przy obsadzie linijek pami#ci cache
for (i=0;i<10000;i++) {
a[i] = a[i] + a[i+64] + a[i+128];
a[i+64] = a[i+64] + a[i+128];
}
–
Trzeba pozwoli$ linijkom z pami#ci g!ównej na
rezydowanie w dowolnej linijce pami#ci cache
a[i], a[i+64] i a[i+128] u ywaj" tej samej linijki
Pami#$ cache jest w powy szym przyk!adzie
bezu yteczna
43
44
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Odwzorowanie skojarzeniowe
Odwzorowanie skojarzeniowe
Fully associative mapping
Zamiast odwzorowania bezpo%redniego zezwalamy na
lokacj# linijek w dowolnym miejscu pami#ci cache
Teraz sprawdzenie czy dane s" w pami#ci cache jest
trudniejsze i zajmie wi#cej czasu (parametr hit time
wzro%nie)
Potrzebne s" dodatkowe rozwi"zania sprz#towe
(komparator dla ka dej linijki pami#ci cache)
Ka dy znacznik jest teraz kompletnym adresem linijki w
pami#ci g!ównej
45
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Dane
Znaczniki
46
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Rozwi$zanie kompromisowe
Set Associative Mapping
Odwzorowanie skojarzeniowe jest bardziej
elastyczne, dlatego parametr miss rate ma
mniejsz" warto%$
Odwzorowanie bezpo%rednie jest prostsze
sprz#towo, czyli ta&sze w implementacji
–
Ka da linijka z pami#ci g!ównej mo e by$
ulokowana w pewnym dozwolonym podzbiorze
linijek pami#ci cache
Poj#cie n-way set associative mapping
(odwzorowanie n-dro ne sekcyjnoskojarzeniowe) oznacza, e istnieje n miejsc
(linijek) w pami#ci cache, do których mo e trafi$
dana linijka z pami#ci g!ównej placed.
Pami#$ cache jest zatem podzielona na pewn"
liczb# podzbiorów linijek, z których ka dy
zawiera n linijek
Ponadto lokalizacja danych w pami#ci cache jest
szybsza (parametr hit time ma mniejsz" warto%$)
Szukamy kompromisu mi#dzy miss rate a hit
time.
Rozwi"zanie po%rednie: odwzorowanie
sekcyjno-skojarzeniowe (set associative)
47
Bit
wa%no ci
Pami"!
48
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Porównanie odwzorowa&
Wydajno ! a n-dro%no ! cache
Przyk!ad: cache sk!ada si# z 8 linijek, rozpatrujemy lokalizacj#
linijki z pami#ci g!ównej o adresie 12
Direct mapped
Block # 0 1 2 3 4 5 6 7
Data
Set associative
Set #
0
1
2
1
2
Search
Tag
Data
1
2
Search
49
0.2
Fully associative
3
Data
Tag
0.3
Linijka 12 mo e si# znale'$
w dowolnej linijce cache
Miss rate
Linijka 12 mo e si#
znale'$ tylko w linijce 4
Linijka 12 mo e si#
znale'$ w jednej z dwóch
linijek zbioru 0
Tag
0
Direct
1
2
Search
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
4-way
8-way
16-way
32-way
64-way
Performance improvement of caches with increased associativity.
50
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Algorytm wymiany linijek
Odwzorowanie bezpo%rednie jest szczególnym
przypadkiem n-dro nego odwzorowania sekcyjnoskojarzeniowego przy n = 1 (1 linijka w zbiorze)
Odwzorowanie skojarzeniowe jest szczególnym
przypadkiem n-dro nego odwzorowania sekcyjnoskojarzeniowego przy n równym liczbie linijek w pami#ci
cache
Poprzedni przyk!ad pokazuje, e odwzorowanie
4-dro ne mo e nie dawa$ zauwa alnej poprawy
wydajno%ci cache w porównaniu z odwzorowaniem
2-dro nym.
51
2-way
Associativity
Odwzorowanie n-dro%ne
W metodzie odwzorowania bezpo%redniego nie
mamy wyboru przy zast#powaniu linijek –
problem strategii wymiany linijek nie istnieje
W metodzie odwzorowania sekcyjnoskojarzeniowego nale y okre%li$ strategi#
wyboru linijek, które maj" by$ usuni#te przy
wprowadzaniu do cache nowych linijek
52
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Algorytm LRU
Implementacja LRU
LRU: Least recently used.
–
system zarz"dzania pami#ci" cache rejestruje
histori# ka dej linijki
–
je%li trzeba wprowadzi$ do cache now" linijk#, a w
dopuszczalnym zbiorze linijek nie ma wolnego
miejsca, usuwana jest najstarsza linijka.
–
przy ka dym dost#pie do linijki (hit) wiek linijki jest
ustawiany na 0
–
przy ka dym dost#pie do linijki wiek wszystkich
pozosta!ych linijek w danym zbiorze linijek jest
zwi#kszany o 1
53
Realizacja algorytmu LRU jest wykonywana sprz#towo
Obs!uga LRU w pami#ciach 2-dro nych jest !atwa –
wystarczy tylko 1 bit aby zapami#ta$, która linijka (z
dwóch) w zbiorze jest starsza
Algorytm LRU w pami#ciach 4-dro nych jest znacznie
bardziej z!o ony, ale stosowany w praktyce
W przypadku pami#ci 8-dro nych sprz#towa realizacja
LRU staje si# kosztowna i skomplikowana. W praktyce
u ywa si# prostszego algorytmu aproksymuj"cego
dzia!anie LRU
54
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy$sza Szko%a Informatyki Stosowanej i Zarz#dzania
Wielopoziomowa pami"! cache
Wspólna a rozdzielona cache
We wspólnej pami"ci cache dane i instrukcje s# przechowywane
razem (architektura von Neumanna)
W rozdzielonej pami"ci cache dane i instrukcje s# przechowywane w
osobnych pami"ciach (architektura harwardzka)
Dlaczego pami"! cache przechowuj#ca instrukcje ma znacznie
mniejszy wspó%czynnik miss rate?
Wielko ! pami"ci cache wbudowanej do procesora jest
ograniczona ze wzgl"dów technologicznych
Ekonomicznym rozwi#zaniem jest zastosowanie
zewn"trznej pami"ci cache L2
Zwykle zewn"trzna pami"! cache jest szybk# pami"ci#
SRAM (czas miss penalty jest znacznie mniejszy ni$ w
przypadku pami"ci g%ównej)
Size
1 KB
2 KB
4 KB
8 KB
16 KB
32 KB
64 KB
128 KB
Dodanie pami"ci cache L2 wp%ywa na projekt pami"ci
cache L1 – d#$y si" do tego, by parametr hit time dla
pami"ci L1 by% jak najmniejszy
55
0.1
56
Instruction Cache
Data Cache
Unified Cache
3.06%
2.26%
1.78%
1.10%
0.64%
0.39%
0.15%
0.02%
24.61%
20.57%
15.94%
10.19%
6.47%
4.82%
3.77%
2.88%
13.34%
9.78%
7.24%
4.57%
2.87%
2.48%
1.35%
0.95%
Wy$sza Szko%a Informatyki Stosowanej i Zarz#dzania
Wy$sza Szko%a Informatyki Stosowanej i Zarz#dzania
Wspólna a rozdzielona cache
Wspólna a rozdzielona cache
Które rozwi#zanie zapewnia krótszy czas dost"pu
AMAT?
–
–
AMAT = %instr x (instr hit time + instr miss rate x instr miss penalty) +
%data x (data hit time + data miss rate x data miss penalty)
pami"! rozdzielona: 16 KB instrukcje + 16 KB dane
pami"! wspólna: 32 KB instrukcje + dane
Dla rozdzielonej pami"ci cache:
Za%o$enia:
–
–
–
–
–
AMAT = 75% x (1 + 0.64%x 50) + 25% x (1 + 6.47% x 50) = 2.05
nale$y u$y! danych statystycznych dotycz#cych miss rate z
poprzedniego slajdu
zak%adamy, $e 75% dost"pów do pami"ci dotyczy odczytu
instrukcji, a 25% dost"pów dotyczy danych
miss penalty = 50 cykli
hit time = 1 cykl
operacje odczytu i zapisu zajmuj# dodatkowo 1 cykl, poniewa$
jest tylko jeden port dla instrukcji i danych
57
Dla wspólnej pami"ci cache:
AMAT = 75% x (1 + 2.48%x 50) + 25% x (1 + 2.48% x 50) = 2.24
W rozwa$anym przyk%adzie lepsz# wydajno ! (krótszy czas dost"pu
AMAT) zapewnia rozdzielona pami"! cache
58
Wy$sza Szko%a Informatyki Stosowanej i Zarz#dzania
Wy$sza Szko%a Informatyki Stosowanej i Zarz#dzania
Przyk ad – cache w Pentium
Regs.
L1 Data
1 cycle latency
16KB
4-way assoc
Write-through
32B lines
L1 Instruction
16KB, 4-way
32B lines
Podsumowanie
Zasada lokalno ci
Hierarchiczny system pami"ci
Koncepcja budowy i dzia%ania pami"ci cache
Metody odwzorowania pami"ci g%ównej i pami"ci cache
L2 Unified
128KB--2 MB
4-way assoc
Write-back
32B lines
–
Main
Memory
Up to 4GB
–
–
Zapis danych i problem spójno ci zawarto ci pami"ci
Wydajno ! pami"ci cache, metody optymalizacji,
ograniczenia
Wymiana linijek w pami"ci cache - algorytm LRU
Przyk%ady organizacji i architektury pami"ci cache
Wspólna a rozdzielona pami"! cache
Processor Chip
59
odwzorowanie bezpo rednie (mapowanie bezpo rednie)
odwzorowanie asocjacyjne (pe%na asocjacja)
cz" ciowa asocjacja
60
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Pipelining – wprowadzenie
Pipelining: technika wykonywania ci"gu
instrukcji, w której kilka kolejnych
instrukcji jest wykonywanych
równolegle
A
Przyk!ad: pralnia
Ania, Basia, Celina i Dorota
maj" po kompletnym !adunku odzie y,
do prania, wysuszenia i wyprasowania
Pranie trwa 30 minut
Suszenie zajmuje 40 minut
Prasowanie trwa 20 minut
Organizacja i Architektura
Komputerów
Przetwarzanie potokowe.
Architektury superskalarne
1
B
C
D
2
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wersja 1 – pralnia sekwencyjna
6
7
8
9
10
11
Wersja 2 – pralnia potokowa
pó noc
6
7
8
9
10
11
pó noc
czas
czas
30 40
A
Kolejno ! zada"
Kolejno ! zada"
30 40 20 30 40 20 30 40 20 30 40 20
B
C
D
40
40
40 20
A
• Metoda „start ASAP”
B
• Pranie 4 !adunków
zajmuje 3,5 godziny
C
• Speedup 6/3,5 = 1,7
D
Sekwencyjne pranie 4 !adunków zajmuje 6 godzin
3
4
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Pipelining – wnioski
Wnioski cd.
Architektura RISC zapewnia lepsze wykorzystanie
mo liwo$ci przetwarzania potokowego ni architektura
CISC. W architekturze RISC:
Pipelining nie zmienia czasu wykonania pojedynczej instrukcji
(latency), wp!ywa natomiast na czas wykonania ci"gu instrukcji
(throughput)
Cz#sto$% z jak" pracuje potok jest ograniczona przez czas pracy
najwolniejszego stopnia w potoku (slowest pipeline stage)
Wiele instrukcji jest wykonywanych równolegle (instruction level
parallelism)
Potencjalne zwi#kszenie wydajno$ci jest tym wi#ksze, im wi#ksza jest
liczba stopni w potoku
Du e zró nicowanie czasu trwania operacji w poszczególnych
stopniach ogranicza wzrost wydajno$ci
wi#kszo$% operacji dotyczy rejestrów
–
odwo!ania do pami#ci, które mog" ewentualnie powodowa%
kolizje s" rzadsze i wyst#puj" tylko w przypadku specjalnie do
tego celu u ywanych instrukcji load i store
6
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Cykl prefetch
Prefetch cd.
Najprostsza wersja przetwarzania potokowego
Pobranie kolejnej instrukcji (cykl fetch) wymaga
dost#pu do pami#ci
Wykonanie instrukcji zazwyczaj nie wymaga
dost#pu do pami#ci
Wniosek: mo na pobra% nast#pn" instrukcj# z
pami#ci podczas wykonywania poprzedniej
instrukcji
Metoda nazywana „pobraniem wst#pnym” instruction prefetch
7
instrukcje maj" tak" sam" d!ugo$%
–
W architekturze CISC instrukcje maj" ró n" d!ugo$%,
wyst#puje bogactwo sposobów adresowania danych w
pami#ci
Czas potrzebny na nape!nienie potoku i opró nienie go ogranicza
wzrost wydajno$ci
5
–
Wprowadzenie cyklu prefetch poprawia wydajno$% (ale
nie podwaja):
–
pobranie kodu operacji trwa zwykle krócej ni faza wykonania
–
ka dy rozkaz skoku powoduje utrat# korzy$ci z fazy prefetch
mo e pobiera% wi#cej ni jeden rozkaz w fazie prefetch?
Wnioski s" niejednoznaczne:
8
–
z jednej strony korzystnie by!oby zwi#kszy% liczb# stopni w
potoku
–
z drugiej jednak d!ugi potok w przypadku skoku musi by%
opró niony i nape!niony od nowa
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Punkt wyj!cia – brak potoku
System
bez potoku
(przyk ad)
300ps
30ps
Uk!ad
kombinacyjny
R
E
G
Potok 3-stopniowy
latency = 330ps
throughput = 3.12 GOPS
100ps
20ps
100ps
20ps
100ps
uk!ad
komb.
R
E
G
uk!ad
komb.
R
E
G
uk!ad
komb.
Clock
Op1
Op2
Clock
Op3
–
Op1
??
–
Op2
Czas
–
Op3
–
–
Op4
Ka da operacja musi by% zako&czona zanim zacznie si#
wykonywanie nast#pnej operacji
W podanym przyk!adzie czas wykonania operacji wynosi 330ps
??
Czas
9
20ps
R
E latency = 360ps
G throughput = 8.33 GOPS
Wykonanie kolejnych instrukcji
zaczyna si# co120ps
3 instrukcje s" wykonywane
równolegle
Czas oczekiwania na
wykonanie instrukcji wzrós! z
330ps do 360ps, ale
przepustowo$% wzros!a z 3.12
do 8.33 GOPS
10
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Diagramy czasowe
Ograniczenie – ró"nice opó#nie$
Bez potoku
OP1
OP2
20 ps
150 ps
20 ps
100 ps
Comb.
logic
R
e
g
Comb.
logic
B
R
e
g
Comb.
logic
C
A
OP3
–
50 ps
Kolejna operacja nie mo e si# zacz"% przed zako&czeniem
poprzedniej
A
OP1
OP2
B
C
A
B
A
OP3
OP1
OP2
A
B
B
A
C
B
–
C
–
–
Do 3 instrukcji wykonuje si# równolegle
11
Przepustowo$% ograniczona przez najwolniejszy stopie&
Pozosta!e (szybsze) stopnie s" przez znaczny czas bezczynne
Nale y d" y% do budowy potoku o zbli onych czasach operacji
w poszczególnych stopniach
12
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
G %boki potok – problemy
Cykl wykonania instrukcji
50 ps 20 ps 50 ps 20 ps 50 ps 20 ps 50 ps 20 ps 50 ps 20 ps 50 ps 20 ps
R
e
g
Comb.
logic
R
e
g
Comb.
logic
R
e
g
Clock
–
–
R
e
g
Comb.
logic
R
e
g
Comb.
logic
R
e
g
latency = 420 ps, throughput = 14.29 GOPS
W miar# wyd!u ania (zwi#kszania g!#boko$ci) potoku opó'nienia
rejestrów staj" si# coraz bardziej znacz"ce
Procentowy udzia! czasu opó'nienia rejestrów w potoku:
1-stopie&:
3-stopnie:
6-stopni:
–
Comb.
logic
6.25%
16.67%
28.57%
Problem ma du e znaczenie, poniewa wspó!czesne procesory
o du ej wydajno$ci maj" coraz g!#bsze potoki
13
14
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Potok 6-stopniowy
Typowe 6 stopni potoku
Pobranie instrukcji (fetch instruction - FI)
Dekodowanie instrukcji (decode instruction - DI)
Obliczenie adresu argumentu (calculate operand – CO)
Pobranie argumentu (fetch operand – FO)
Wykonanie instrukcji (execute instruction - EI)
Zapis wyniku (write - WO)
15
C
Time
A, B, C – fazy wykonania
instrukcji
C
B
Clock
C
A
OP3
Time
Comb.
logic
R
latency = 510 ps
e
throughput = 5.88 GOPS
g
Time
3-stopniowy potok
–
20 ps
16
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Instrukcja skoku
Skoki a potok
Warianty przetwarzania potokowego w
przypadku instrukcji skoków (branch):
–
Rozkaz 3 – rozga!#zienie warunkowe
do rozkazu 15
–
Zawarto$% potoku, która musi
by% usuni#ta
–
17
Multiple Streams – dwa potoki; w przypadku rozga!#zienia
ka dy z potoków jest !adowany kodem odpowiadaj"cym
wykonaniu b"d' niewykonaniu skoku; metoda zawodna w
przypadku skoków wielokrotnych
Prefetch Branch Target – kod z obu dróg rozga!#zienia jest
!adowany do potoku i przechowywany a do chwili wykonania
skoku; metoda zastosowana w IBM 360/91
Loop buffer – instrukcje s" pobierane do ma!ej szybkiej pami#ci
dzia!aj"cej podobnie jak cache, ale sterowanej przez uk!ad
sterowania potokiem; metoda efektywna w przypadku p#tli
obejmuj"cych niewiele instrukcji; zastosowana w Cray-1
18
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Skoki a potok cd.
Opó#nianie skoków - przyk ad
Adres
100
101
102
103
104
105
106
Warianty przetwarzania potokowego w
przypadku instrukcji skoków (branch):
–
–
Delayed Branching – opó'nianie skoku; metoda szeregowania
instrukcji poprzedzaj"cych i nast#puj"cych po skoku
wykonywana w trakcie kompilacji; kompilator stara si#
przenie$% instrukcje poprzedzaj"ce skok i umie$ci% je za
skokiem; dzi#ki temu w przypadku skoku potok nie musi by%
opró niany i instrukcje mog" by% wykonywane nadal; w takim
przypadku wykonanie skoku jest wstrzymywane a do
zako&czenia wykonania przestawionych instrukcji
Branch Prediction – przewidywanie skoków; najbardziej
popularna i najbardziej efektywna metoda stosowana we
wspó!czesnych procesorach
19
20
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Delayed
LOAD A,X
ADD A,1
JUMP 106
NOP
ADD B,A
SUB B,C
STORE Z,A
• W tym przyk!adzie kompilator wstawia po rozkazie skoku JUMP
jedn" instrukcj# pust" (one delay slot). Jest ni" instrukcja NOP
(no operation – nic nie rób)
• Wykorzystano j#zyk asemblera hipotetycznego procesora, dla
uproszczenia za!o ono, e ka da instrukcja zajmuje 1 s!owo
W porównaniu z normalnym szeregowaniem rozkazów nic nie
tracimy, a mo emy zyska%
Dobry kompilator zapewnia nast#puj"c" efektywno$% przy opó'nianiu
skoków:
– oko!o 60% slotów zostaje wype!nionych
– oko!o 80% instrukcji umieszczonych w slotach jest przydatnych w
dalszym wykonywaniu programu
– !"cznie 48% (60% x 80%) wszystkich slotów jest wykorzystanych
z korzy$ci" dla wydajno$ci systemu
Zalety i wady metody opó'niania skoków
– Zaleta: optymalizacja kompilatora ma wp!yw na prac# pipeliningu
– Wada: w nowoczesnych procesorach z g!#bokim potokiem (deep
pipeline) metoda opó'niania skoków jest ma!o skuteczna
Optimized
LOAD A,X
JUMP 105
ADD A,1
ADD B,A
SUB B,C
STORE Z,A
21
22
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Przewidywanie skoków
Przewidywanie skoków
Metody statyczne
–
Metody dynamiczne
Zak!adamy, e skok nie b#dzie nigdy wykonany
Metoda – branch never will be taken
–
Prognoza skoku jest ustalana dynamicznie, w trakcie
wykonania programu
–
Przewidywanie jest wykonywane na podstawie
historii ka dego skoku zapisanej w tablicy historii
skoków BTB (branch target buffer)
–
BTB sk!ada si# zwykle z 128 – 1024 rekordów o
postaci:
Do potoku pobiera si# zawsze instrukcj# nast#puj"c" po skoku
Metoda stosowana w procesorach Motorola 68020 i VAX 11/780
–
Zak!adamy, e skok b#dzie zawsze wykonany
Metoda – branch always will be taken
Do potoku pobiera si# instrukcj# wskazywan" przez adres skoku
(branch target)
–
O tym czy skok b#dzie, czy te nie b#dzie wykonany
wnioskujemy na podstawie rodzaju skoku (kodu operacji)
Przes!ank" metody jest spostrze enie, e pewne rodzaje skoków
s" wykonywane z du ym, a inne z ma!ym prawdopodobie&stwem
Adres instrukcji
Badania pokazuj", e mo na uzyska% nawet 75% sukcesów
23
one delay slot
Efektywno!& opó#niania skoków
Mo na ulepszy% program z poprzedniego slajdu dokonuj"c przestawienia
instrukcji. Nale y zauwa y%, e ADD A,1 zawsze dodaje 1 do akumulatora
A, zatem instrukcja ta mo e by% przesuni#ta przez kompilator i u yta w
miejsce NOP
Normal
LOAD A,X
ADD A,1
JUMP 105
ADD B,A
SUB B,C
STORE Z,A
Delayed
LOAD A,X
ADD A,1
JUMP 106
NOP
ADD B,A
SUB B,C
STORE Z,A
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Opó#nianie skoków cd.
Adres
100
101
102
103
104
105
106
Normal
LOAD A,X
ADD A,1
JUMP 105
ADD B,A
SUB B,C
STORE Z,A
24
Adres skoku (target)
Stan
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Predykcja skoków – diagram BTB
Rozmiar BTB
Przyk!adowe
kodowanie
stanów:
Stan: 10
Stan: 11
Stan: 01
Stan: 00
Im wi#kszy jest rozmiar BTB (czyli im wi#cej rekordów
mie$ci tablica), tym bardziej trafne jest przewidywanie
skoków
00 – mocna hipoteza
o braku skoku
01 – s!aba hipoteza
o braku skoku
10 – s!aba hipoteza
o skoku
11 – mocna hipoteza
o skoku
25
Rozmiar BTB
(rednia liczba
trafnych prognoz [%]
16
32
64
128
256
512
1024
2048
40
50
65
72
78
80
85
87
26
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
G %boko!& potoku
G %boko!& potoku cd.
Liczba stopni przetwarzania danych typu integer w potokach
popularnych procesorów
Wyniki bada& pokazuj", e istnieje teoretyczna
optymalna warto$% g!#boko$ci potoku równa oko!o 8
stopni
–
–
CPU
z jednej strony im g!#bszy potok, tym lepiej dzia!a równoleg!e
przetwarzanie instrukcji
z drugiej strony g!#boki potok w przypadku 'le przewidzianego
skoku powoduje du " strat# czasu (branch penalty)
P
MMX
P-Pro
P-II
P-III
P-4
M1-2
K5
K6
K7
W nowych procesorach stosuje si# ulepszone warianty
przetwarzania potokowego (hyperpipeline) dostosowane
do pracy z bardzo szybkim zegarem
–
w takich procesorach optymalna g!#boko$% potoku jest wi#ksza
i dochodzi nawet do 20 (przyk!ad – Pentium 4)
27
liczba stopni w potoku
5
6
12
12
10
20
7
7
6
11
28
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Zjawisko hazardu
Zjawisko hazardu cd.
Równoleg!e przetwarzanie instrukcji w potoku prowadzi cz#sto do
niekorzystnych zjawisk nazywanych hazardem. Hazard polega na
braku mo liwo$ci wykonania instrukcji w przewidzianym dla niej
cyklu. Wyró nia si# trzy rodzaje hazardu:
1.
Hazard zasobów (structural hazard) – kiedy dwie instrukcje odwo!uj"
si# do tych samych zasobów
Podstawowym sposobem rozwi"zywania problemów
wynikaj"cych z hazardu jest chwilowe zatrzymanie
potoku na jeden lub wi#cej cykli zegara. W tym celu do
potoku wprowadza si# tzw. przegrody (stalls), które s"
faktycznie operacjami pustymi („bubbles”)
2.
Hazard danych (data hazard) – kiedy wykonanie instrukcji zale y od
wyniku wcze$niejszej, nie zako&czonej jeszcze instrukcji znajduj"cej
si# w potoku
Przegrody wp!ywaj" oczywi$cie na zmniejszenie
wydajno$ci CPU
3.
Hazard sterowania (control hazard) – przy przetwarzaniu instrukcji
skoków i innych instrukcji zmieniaj"cych stan licznika rozkazów (np.
wywo!ania podprogramów)
Ze wzgl#du na wyst#powanie zjawisk hazardu
rzeczywista wydajno$% CPU jest zawsze mniejsza od
wydajno$ci teoretycznej, obliczonej przy za!o eniu e
hazardy nie wyst#puj"
Hazard sterowania zosta! omówiony ju wcze$niej – teraz
zajmiemy si# hazardem zasobów i danych
29
30
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Hazard zasobów
Hazard zasobów - przyk ad
czas (cykle zegara)
Nazywany te hazardem strukturalnym lub konfliktem
zasobów (resource conflict)
!danie odczytu z pami"ci
Kolejne instrukcje
Reg
Mem
Reg
Mem
Reg
Mem
Reg
Mem
Reg
Mem
Reg
Mem
Reg
Mem
Instr 3
Instr 4
32
Reg
ALU
Instr 2
Mem
Mem
ALU
Rozwi"zanie polega na wprowadzeniu jednej (lub kilku
przegród). W efekcie wzrasta CPI i spada wydajno$%
procesora
Instr 1
Reg
ALU
Typowy hazard zasobów wyst#puje, gdy jedna z
instrukcji wykonuje !adowanie danych z pami#ci podczas
gdy inna ma by% w tym samym cyklu !adowana
(instruction fetch)
Mem
ALU
Load
ALU
Powodem hazardu tego typu jest jednoczesne "danie
dost#pu do tego samego zasobu (zwykle pami#ci) przez
dwa ró ne stopnie potoku
31
P – Pentium
M – Cyrix
K – AMD
Cykl IF instr 3
Reg
Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania
Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania
Hazard zasobów – przyk ad cd.
Hazard danych
czas (cykle zegara)
Kolejne instrukcje
Reg
Reg
Mem
Reg
Mem
Reg
ALU
Instr 2
Mem
Mem
ALU
Instr 1
Reg
ALU
Load
Mem
Mem
Hazard danych wyst"puje, poniewa# potok zmienia
kolejno%& operacji odczytu/zapisu argumentów w
stosunku do kolejno%ci, w jakiej te operacje wyst"puj! w
sekwencyjnym zapisie programu
Reg
Przyk$ad:
stall
Reg
ALU
Mem
Instr 3
Mem
mov
cx,ax
34
Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania
Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania
Hazard typu RAW
Hazard typu WAR
Hazard WAR (write after read) wyst"puje gdy pojawi si"
#!danie zapisu danych przed zako'czeniem ich odczytu
Przyk$ad:
Wyró#nia si" trzy typy (rodzaje) hazardu danych: RAW,
WAR i WAW:
Hazard RAW (read after write) wyst"puje gdy pojawi si"
#!danie odczytu danych przed zako'czeniem ich zapisu
Przyk$ad (taki sam jak na poprzednim slajdzie)
add
ax,bx
mov
cx,ax
35
mov
bx,ax
add
ax,cx
CPU chce zapisa& do akumulatora ax now! warto%&
równ! sumie ax+cx, podczas gdy instrukcja przes$ania
mov jeszcze nie odczyta$a starej zawarto%ci ax i nie
przes$a$a jej do rejestru bx
36
Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania
Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania
Hazard typu WAW
Problem
Hazard WAW (write after write) wyst"puje gdy pojawi si"
#!danie zapisu danych przed zako'czeniem wcze%niejszej
operacji zapisu
Przyk$ad:
mov
ax,[mem]
add
ax,bx
Czy mo#e powsta& hazard danych RAR (read after read) ?
Przyk$ad:
37
add
bx,ax
mov
cx,ax
Odpowied(: taka sytuacja nie powoduje hazardu danych,
poniewa# zawarto%& rejestru ax nie zmienia si". Mo#e
natomiast wyst!pi& konflikt równoczesnego dost"pu
(hazard zasobów). Problem mo#na rozwi!za& stosuj!c
rejestry typu dual-port
CPU chce zapisa& do akumulatora ax now! warto%& równ!
sumie ax+bx, podczas gdy poprzednia instrukcja nie
zd!#y$a jeszcze pobra& do ax zawarto%ci komórki pami"ci
[mem]
38
Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania
Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania
Zapobieganie hazardom danych
Szeregowanie statyczne
Najprostsz! metod! jest, jak poprzednio, zatrzymywanie
potoku (stalls)
–
Przyk$ad:
Kod oryginalny
add ax,15
mov cx,ax
mov [mem],bx
metoda ta obni#a wydajno%& CPU i jest stosowana w
ostateczno%ci
Szeregowanie statyczne (static scheduling)
39
ax,bx
Instrukcja mov cx,ax ma pobra& zawarto%& akumulatora
ax, podczas gdy potok jeszcze nie okre%li$ tej zawarto%ci
w poprzedniej instrukcji dodawania
Reg
33
add
–
wykonywane programowo podczas kompilacji
–
polega na zmianie kolejno%ci instrukcji, tak aby zlikwidowa&
hazardy
–
likwidacja hazardów nie zawsze jest mo#liwa
–
dobre kompilatory potrafi! usun!& znaczn! cz"%& potencjalnych
hazardów danych
Kod po uszeregowaniu
add ax,15
mov [mem],bx
mov cx,ax
Zmiana kolejno%ci instrukcji nie wp$ywa na dzia$anie
programu
Hazard RAW zosta$ zlikwidowany, poniewa# instrukcja
dodawania zd!#y by& wykonana przed pobraniem
argumentu przez instrukcj" przes$ania ax do cx
40
Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania
Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania
Szeregowanie dynamiczne
Procesory superskalarne
Dynamic scheduling – wspólna nazwa technik
polegaj!cych na usuwaniu problemów z hazardem
danych w trakcie wykonywania programu, a nie w fazie
kompilacji
Procesory, które wykonuj! równolegle wi"cej ni# jeden
rozkaz (paralelizm na poziomie rozkazu)
Podstawowe bloki funkcjonalne CPU s! zwielokrotnione:
–
realizacja sprz"towa w CPU
–
dwa potoki (lub wi"cej)
–
najwa#niejsze techniki:
–
kilka jednostek ALU (zwykle osobne ALU dla operacji integer i
FP)
wyprzedzanie argumentów (operand forwarding)
Termin „superskalarny” u#yty po raz pierwszy w 1987
roku oznacza, #e CPU przetwarza w danej chwili kilka
argumentów skalarnych (liczb), a nie tylko jedn!
wielko%& skalarn!
wyprzedzanie wyników operacji (result forwarding)
–
w procesorach superskalarnych stosuje si" ponadto
notowanie (scorebording)
przemianowywanie rejestrów (register renaming)
41
42
Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania
Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania
Procesor superskalarny - koncepcja
43
Superskalar – koncepcja cd.
44
Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania
Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania
Superskalar cd.
Superskalar
- problemy
Porównanie koncepcji CPU:
Zagadnienie
wspó$zale#no%ci instrukcji
w procesorach
superskalarnych jest
jeszcze trudniejsze ni#
problem hazardów w
pojedynczym potoku
1) z potokiem instrukcji
2) z superpotokiem
3) superskalarnej
Superpotok jest taktowany
podwójn! czesto%ci! zegara
Rozwi!zanie superskalarne
zapewnia najwi"ksz!
wydajno%&
45
46
Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania
Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania
Superskalar – problemy cd.
Superskalar
– przyk ad
W celu odpowiedniego wykorzystania zalet architektury
superskalarnej stosuje si" rozmaite techniki:
Przemianowywanie rejestrów – metoda usuwania uzale#nie'
mi"dzy instrukcjami przy u#yciu zbioru pomocniczych rejestrów
Uproszczony schemat
blokowy procesora
superskalarnego
UltraSparc IIi (Sun)
Okna rejestrów – parametry s! przekazywane w bloku rejestrów
nazywanym oknem; zmiana bloku (i tym samym parametrów)
wymaga zmiany samego wska(nika okna
Statyczna optymalizacja kodu (w fazie kompilacji)
Zaawansowane dynamiczne metody szeregowania instrukcji
(parowanie, technika zmiany kolejno%ci wykonywania rozkazów –
out-of-order completion)
Ze wzgl"du na swoje cechy architektura RISC znacznie lepiej
sprzyja technice superskalarnej ni# architektura CISC
47
48
Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania
Podsumowanie
Koncepcja przetwarzania potokowego
–
–
–
g$"boko%& potoku
potok a skoki – przewidywanie skoków
zjawisko hazardu
sterowania
danych
zasobów
–
szeregowanie statyczne i dynamiczne
Architektura superskalarna
–
–
–
–
49
metody zwi"kszania wydajno%ci
przemianowywanie rejestrów
okna rejestrów
statyczne i dynamiczne szeregowanie rozkazów
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Architektura IA-32
Intel Architecture 32
–
Organizacja i Architektura
Komputerów
–
pierwszy procesor IA-32 – 8086 (1978)
podstawowa architektura utrzymana do 1993 r (pierwszy
procesor Pentium – superskalar, 2 potoki)
Architektura P6
–
pierwszy procesor – Pentium Pro (1995)
3-potokowy superskalar
5 jednostek wykonawczych
8+8KB L1 cache, 256 KB L2 cache
Architektury IA-32 i IA-64
–
Pentium III (1999)
16+16 KB L1 cache, 256 lub 512 L2 cache
Streaming SIMD Extension (SSE) – równoleg!e operacje na
spakowanych 32-bitowych liczbach FP w rejestrach SSE o
rozmiarze 128 bitów
–
1
Pentium III Xeon – ulepszona pami#$ cache
2
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Pentium CPU (1993)
Mikroarchitektura P6
• dwa potoki U i V
• instrukcje s"
dobierane parami
Zapocz"tkowana w Pentium Pro (1995)
–
–
U ywana w procesorach Intel wcze%niejszych od P4
Mieszana architektura CISC-RISC
lista instrukcji typu CISC
translacja kodu programu na ci"g mikrooperacji RISC
–
3 potokowy superskalar, out-of-order execution
–
Potok sk!ada si# z 3 cz#%ci:
14-stopniowy potok instrukcji
wydawanie instrukcji: in-order
wykonanie instrukcji: out-of-order (RISC core)
ko&czenie instrukcji (retire): in-order
3
4
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Mikroarchitektura P6 cd.
Mikroarchitektura P6 cd.
5
6
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
P6 – Pentium III Xeon
Pentium 4
Nazwa projektu: Willamette
Architektura NetBurst
G!#boki potok – 20 stopni
–
–
zaprojektowany do pracy z szybkim zegarem >1,5 GHz
ró ne cz#%ci CPU pracuj" z ró n" cz#stotliwo%ci" zagara
Trzy sekcje:
–
–
–
wydawanie instrukcji (dispatch) – in-order
wykonanie instrukcji – out-of-order
ko&czenie instrukcji – in-order
Technologia SSE2
–
7
8
ulepszone technologie MMX i SSE
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Intel NetBurst
Pentium 4 – trace cache
IA32
Instrs.
L2 Cache
uops
Instruct.
Decoder
Trace
Cache
Operations
Trace Cache
–
–
–
9
zast#puje tradycyjn" pami#$ cache
instrukcje s" przechowywane w zdekodowanej
postaci (jako mikrooperacje)
zmniejsza wymagania dotycz"ce szybko%ci pracy
dekodera
10
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Ulepszenia w NetBurst wobec P6
Pentium 4 – uk ady wykonawcze
Trace cache – 12K mikrooperacji
8 KB L1 cache, czas dost#pu 2 cykle
256 KB L2 cache, czas dost#pu 7 cykli
ALU taktowane podwójn" cz#stotliwo%ci" zegara
20-stopniowy potok, cz#stotliwo%$ > 1,5 GHz
Poczwórna przep!ywno%$ szyny (400 MHz) –
quad-pumped
Technologia SSE2
11
12
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Hyper-Threading
13
Rejestry P4
14
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Rejestry P4 cd.
15
Rejestry P4 cd.
16
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Modele pami!ci
• Flat Model
p!aski model pami#ci – bez
podzia!u na segmenty
Segmentacja pami!ci
Rejestry segmentów
Segment kodu programu
Segment danych
Segment stosu
• Segmented Model
pami#$ podzielona na
segmenty
Dodatkowe segmenty
danych
• Real-Address-Model
segmentacja typu x86
17
18
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Segmentacja pami!ci cd.
19
Segmentacja
20
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Segmentacja cd.
21
Segmentacja cd.
22
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Segmentacja cd.
23
Segmentacja cd.
24
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Segmentacja cd.
25
Segmentacja cd.
26
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Protekcja
27
Wska"niki P4
28
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Koncepcja IA-64
29
Koncepcja IA-64
30
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Koncepcja IA-64 cd.
31
Architektura IA-64
32
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Rejestry IA-64
33
Format instrukcji IA-64
34
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Predykaty IA-64
35
Predykaty IA-64
36
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Spekulacja IA-64
37
Spekulacja IA-64
38
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Licznik p!tli IA-64
39
Obroty rejestrów IA-64
40
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Pami!# IA-64 – proces
Pami!# IA-64 – proces
41
42
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Pami!# IA-64 – system
43
Pami!# IA-64 – regiony
44
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Architektura IA-64
Podsumowanie
Mikroarchitektura P6
Architektura Pentium 4
Itanium
–
–
opracowany w 2000 roku
oko!o 10 mln tranzystorów
–
–
–
Modele pami#ci
Segmentacja pami#ci
Protekcja
Architektura IA-64 (Itanium)
Itanium 2
–
–
–
–
opracowany w 2002 roku
cache L3 on chip
6 jednostek ALU
linijka L1 – 64 bajty
–
–
–
–
45
NetBurst
trace cache
Hyper-Threading
46
EPIC (wariant VLIW)
predykaty
spekulacja
organizacja pami#ci (regiony)
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Lista instrukcji
Zbiór polece# (instrukcji) zrozumia!ych dla CPU
–
Organizacja i Architektura
Komputerów
Instrukcje s" zapisywane w postaci binarnej
–
Architektura listy instrukcji – ISA
ka da instrukcja ma swój unikatowy kod binarny (kod
operacji)
W programach %ród!owych zapisanych w j&zyku
asemblera zamiast kodów binarnych stosuje si&
zapis symboliczny operacji
–
1
lista instrukcji powinna by$ funkcjonalnie pe!na, tzn.
umo liwia$ zapis dowolnego algorytmu
np. add, mov
2
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Elementy instrukcji
1.
2.
3.
4.
Reprezentacja instrukcji
Kod operacji (op code), okre'la czynno'$ wykonywan"
przez instrukcj&
Wskazanie na argument %ród!owy (source operand)
Wskazanie na argument docelowy (destination operand)
Wskazanie na kolejn" instrukcj& programu, która ma by$
wykonana jako nast&pna
Przyk!ad:
mov
Mnemonik
(rodzaj operacji)
ax,cx
Posta$ symboliczna (j&zyk asemblera)
mov
Zapis funkcjonalny
ax
cx
Posta$ binarna w pami&ci programu
10001011
11000001
;prze lij cx do ax
Argument
docelowy
ax,cx
Argument %ród!owy
w postaci binarnej kod operacji jest zapisywany jako
pierwszy, dalej nast&puj" argumenty
Element 1) jest obligatoryjny, elementy 2) – 4) s" opcjonalne
3
4
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Reprezentacja instrukcji cd.
Liczba argumentów
Istotnym czynnikiem przy projektowaniu ISA jest liczba
argumentów (lub odniesie# do argumentów) zawartych w
instrukcji
Typowy format instrukcji z odniesieniami do dwóch
argumentów
Kod operacji
Argument 1
–
Argument 2
–
wp!yw na d!ugo'$ s!owa instrukcji oraz z!o ono'$ CPU
du a liczba argumentów wymaga d!ugiego s!owa instrukcji
Rozwa my, ile argumentów wymaga instrukcja
dodawania ADD
Binarny kod
operacji okre'laj"cy
jednoznacznie
rodzaj rozkazu;
zdeterminowany
przez mnemonik
instrukcji (np. MOV,
ADD itp.)
Odniesienie do
argumentu nr. 1
• jawnie (wprost)
podana warto'$
argumentu lub
• adres lub
• inne wskazanie na
argument
Odniesienie do
argumentu nr. 2
• jawnie (wprost)
podana warto'$
argumentu lub
• adres lub
• inne wskazanie na
argument
5
–
–
–
zwykle domy'lnie przyjmuje si&, e b&dzie to kolejna instrukcja w
programie, ale czasem chcemy wykona$ skok w inne miejsce
programu
do wskazania miejsca skoku potrzebny jest czwarty adres
6
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Liczba argumentów cd.
Przyk ad – procesor 3–adresowy
Je'li mamy procesor 3 – adresowy, mo emy okre'li$
adresy dwóch argumentów i adres wyniku.
Poni ej podano sekwencj& instrukcji obliczaj"c" warto'$
wyra enia:
Y = (A - B) / (C + (D * E))
W praktyce procesory czteroadresowe nie s" stosowane
–
–
–
zbyt skomplikowana budowa CPU
d!ugie s!owo instrukcji
nie zawsze instrukcja wymaga a czterech adresów
Wi&kszo'$ instrukcji wymaga jednego, dwóch lub
najwy ej trzech adresów
–
SUB
MUL
ADD
DIV
adres kolejnej instrukcji w programie jest okre'lany przez
inkrementacj& licznika rozkazów (z wyj"tkiem instrukcji skoków)
Rozwa my ci"g instrukcji hipotetycznego procesora
wykonuj"cego obliczenie warto'ci wyra enia:
R1,
R2,
R2,
R1,
A, B
D, E
R2, C
R1, R2
;
;
;
;
Rejestr
Rejestr
Rejestr
Rejestr
R1
R2
R2
R1
!
!
!
!
A – B
D * E
R2 + C
R1 / R2
Instrukcje 3-adresowe s" wygodne w u yciu, bowiem
mo na wskaza$ adres wyniku. Nale y zauwa y$, e w
podanym przyk!adzie oryginalne zawarto'ci komórek A,
B, C, D i E nie zosta!y zmienione
Y = (A - B) / (C + (D * E))
7
je'li chcemy doda$ do siebie zawarto'$ dwóch komórek pami&ci
potrzebujemy dwóch adresów
gdzie umie'ci$ wynik dodawania? Potrzebny jest trzeci adres
która instrukcja w programie ma by$ wykonana jako nast&pna?
8
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Procesor 2–adresowy
Przyk ad – procesor 2–adresowy
Jak zmniejszy$ liczb& adresów?
–
Przy za!o eniu, e argumenty znajduj" si& w
rejestrach, podana sekwencja instrukcji oblicza
warto'$ wyra enia:
d" ymy do skrócenia s!owa instrukcji i uproszczenia budowy
CPU
Typowa metoda polega na domy'lnym za!o eniu
odno'nie adresu wyniku operacji
–
–
Y = (A-B) / (C + (D * E))
wynik jest umieszczany w miejscu, sk"d pobrano jeden z
argumentów %ród!owych
taka metoda oczywi'cie niszczy (zamazuje) pierwotn" warto'$
argumentu
SUB
MUL
ADD
DIV
Najcz&'ciej przyjmuje si&, e wynik jest umieszczany w
miejscu, sk"d pobrano pierwszy argument (np. Pentium)
–
;
;
;
;
Rejestr
Rejestr
Rejestr
Rejestr
A
D
D
A
!
!
!
!
A
D
D
A
*
+
/
B
E
C
D
10
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Przyk ad – procesor 2–adresowy cd.
Procesor 1–adresowy
Je'li chcemy zachowa$ oryginaln" zawarto'$
rejestrów, musimy skopiowa$ j" do innych
rejestrów:
MOV
MOV
SUB
MUL
ADD
DIV
R1,
R2,
R1,
R2,
R2,
R1,
A
D
B
E
C
R2
;
;
;
;
;
;
W instrukcji jawnie wskazany jest tylko jeden argument
Drugi argument znajduje si& w domy'lnym miejscu
Kopiuj A do rejestru R1
Kopiuj D do rejestru R2
Rejestr R1 ! R1-B
Rejestr R2 ! R2*E
Rejestr R2 ! R2+C
Rejestr R1 ! R1 / R2
11
–
zwykle w akumulatorze
–
akumulator w ró nych j&zykach asemblera ma ró ne oznaczenie,
najcz&'ciej A, AX, ACC
Wynik jest umieszczany równie w domy'lnym miejscu,
typowo w akumulatorze
–
Teraz wszystkie rejestry A-E zostaj" zachowane,
ale kosztem kilku dodatkowych instrukcji
warto'$ drugiego argumentu zostaje zniszczona (zamazana
przez wynik operacji)
12
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Przyk ad – procesor 1–adresowy
Procesor 0–adresowy
W skrajnym przypadku mo na stosowa$ instrukcje nie
zawieraj"ce adresów
Obliczenia s" wykonywane na stosie
Obliczamy warto'$ wyra enia: Y = (A-B) / (C + (D * E))
LDA
MUL
ADD
STO
LDA
SUB
DIV
D
E
C
R1
A
B
R1
;
;
;
;
;
;
;
Load ACC with D
Acc ! Acc * E
Acc ! Acc + C
Store Acc to R1
Acc ! A
Acc ! Acc-B
Acc ! Acc / R1
–
–
–
argumenty umieszcza si& w odpowiedniej kolejno'ci na stosie
operacje s" wykonywane na szczytowych komórkach stosu
wynik umieszcza si& na szczycie stosu
Koncepcj& przetwarzania 0-adresowego poda! po raz
pierwszy polski logik i filozof Jan (ukasiewicz (1878-1956)
W wielu wczesnych komputerach stosowano procesory
1-adresowe, poniewa maj" one prostsz" konstrukcj&
–
Jak wida$ z powy szego przyk!adu, architektura
1-adresowa wymaga jednak d!u szych programów
–
13
–
–
notacja beznawiasowa
RPN – Reverse Polish Notation, odwrotna notacja polska
stosowana w niektórych komputerach i kalkulatorach (np. HP)
korzystaj"c z metody RPN opracowano ciekawe j&zyki
programowania, np. FORTH
14
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Przyk ad – procesor 0–adresowy
Liczba adresów – wnioski
Wi&cej adresów
Obliczamy wyra enie: Y = (A-B) / (C + (D * E))
–
PUSH
PUSH
SUB
PUSH
PUSH
MUL
PUSH
ADD
DIV
15
B
E
C
D
Otrzymujemy ten sam wynik co wcze'niej, ale
teraz zawarto'$ rejestrów A i D uleg!a zmianie
pierwszy argument mo e si& znajdowa$ w rejestrze, komórce
pami&ci itp.
9
A,
D,
D,
A,
B
A
E
D
C
;
;
;
;
;
;
;
;
;
B
B, A
(A-B)
(A-B), E
(A-B), E, D
(A-B), (E*D)
(A-B), (E*D), C
(A-B), (E*D+C)
(A-B) / (E*D+C)
–
–
bardziej skomplikowane, ale te wygodne w u yciu
instrukcje
d!u sze s!owo instrukcji
wi&ksza liczba rejestrów
operacje na rejestrach s" szybsze ni operacje na zawarto'ci
pami&ci
–
krótsze programy (w sensie liczby instrukcji)
Mniej adresów
–
–
–
16
mniej skomplikowane instrukcje
d!u sze programy (w sensie liczby instrukcji)
krótszy cykl pobrania instrukcji
Wi&kszo'$ wspó!czesnych procesorów stosuje
architektur& 2-adresow" lub 3-adresow"
Szczególne koncepcje ISA (RISC, VLIW, EPIC)
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Rodzaje argumentów
Format danych – Pentium
8 bit byte
16 bit word
32 bit double word
64 bit quad word
adresowanie pami&ci odbywa si& bajtami (ka dy
kolejny bajt w pami&ci ma swój adres)
dane 32-bitowe (double word) musz" by$
ulokowane pocz"wszy od adresu podzielnego
przez 4
Adresy (addresses)
Liczby (numbers)
–
Integer/floating point
Znaki (characters)
–
ASCII
Dane logiczne (logical data)
–
Bits or flags
17
18
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Interpretacja (kodowanie) danych
Typy instrukcji
Data Transfer – przesy!anie danych (np. MOV)
Arithmetic – operacje arytmetyczne (np. ADD)
Logical – operacje logiczne (np. OR)
Conversion – konwersja danych, np. liczb binarnych na
BCD
I/O – operacje wej'cia/wyj'cia
System Control
General – dowolna liczba binarna
Integer – liczba binarna ze znakiem (U2)
Ordinal – liczba ca!kowita bez znaku (NKB)
Unpacked BCD – jedna cyfra BCD na bajt
Packed BCD – 2 cyfry BCD na bajt
Near Pointer – 32-bitowy offset w segmencie
Bit field – pole bitowe, ci"g bitów
Byte String – ci"g bajtów
Floating Point – liczba zmiennoprzecinkowa
19
–
Transfer of Control (np. JMP)
–
skoki, wywo!anie podprogramów itp..
20
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Tryby adresowania
Adresowanie rejestrowe
Argumenty operacji znajduj" si& w rejestrach procesora
Przyk!ad:
Sposoby wskazywania na argumenty instrukcji
Podstawowe tryby adresowania u ywane we
wspó!czesnych procesorach:
–
–
–
–
–
–
–
mov
inc
dec
sub
Register – rejestrowy, wewn&trzny
Immediate – natychmiastowy
Direct – bezpo'redni
Register indirect – rejestrowy po'redni
Base + Index – bazowo-indeksowy
Register relative – wzgl&dny
Stack addressing – adresowanie stosu
21
al,bl
bx
al
dx,cx
;prze lij bl do al
;zwi!ksz bx o 1
;zmniejsz al o 1
;odejmij cx od dx
Poniewa procesory zawieraj" niewiele rejestrów GP,
wystarczy tylko kilka bitów do wskazania rejestrów w
instrukcji; ich kody s" zwykle umieszczone w kodzie
instrukcji
Zalety: krótki kod binarny instrukcji, szybkie wykonanie
22
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Adresowanie rejestrowe cd.
Adresowanie natychmiastowe
Argument operacji znajduje si& w postaci jawnej w
instrukcji, zaraz po kodzie operacji
Przyk!ady:
W procesorach RISC stosuje si& zwykle zasad&
pe!nej symetrii, która oznacza, e instrukcje
mog" operowa$ na dowolnych rejestrach
W procesorach CISC niektóre kombinacje
instrukcji i rejestrów nie s" dozwolone:
Przyk!ad (x86):
23
specjalne operacje systemowe, np. sterowanie stanem
procesora, zarz"dzanie protekcj" itp.
mov
cs,ds
mov
bl,bx
mov
mov
mov
add
bl,44
ah,44h
di,2ab4h
ax,867
;prze lij 44 (dziesi!tnie) do bl
;prze lij 44 (hex) do ah
;prze lij 2ab4 (hex) do di
;dodaj 867 (dec) do ax
Argument natychmiastowy jest pobierany przez
procesor razem z kodem operacji, dlatego nie jest
potrzebny osobny cykl pobrania argumentu (data fetch)
Tryb natychmiastowy mo na stosowa$ tylko w
odniesieniu do sta!ych, których warto'ci s" znane w
trakcie pisania programu
;nie mo"na przesy#a$
;rejestrów segmentów
;rozmiary rejestrów
;musz% by$ takie same
;bl – 8 bitów, bx – 16 bitów
24
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Adresowanie bezpo!rednie
Adresowanie bezpo!rednie cd.
Instrukcje stosuj"ce adresowanie bezpo'rednie
odwo!uj" si& do argumentów umieszczonych w pami&ci
Adres argumentu w architekturze x86 sk!ada si& z
dwóch elementów: selektora segmentu i ofsetu (offset) i
jest zapisywany w postaci:
Zwykle w instrukcjach podaje si& tylko ofset, natomiast
wskazanie na segment znajduje si& w domy'lnym
rejestrze
–
–
segment:offset
–
Przyk!ad
Je'li jest taka potrzeba, mo na zastosowa$ inny rejestr
segmentu ni domy'lny, wtedy adres trzeba poprzedzi$
tzw. prefiksem podaj"cym rejestr segmentu
Przyk!ad: mov ax,[di]
;domy'lny adres ds:di
mov ax,es:[di] ;adres es:di
1045h:a4c7h
oznacza komórk& o adresie a4c7h w segmencie 1045h
Ofset bywa nazywany równie przesuni&ciem (ang.
displacement, w skrócie disp)
25
26
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Adresowanie bezpo!rednie cd.
Adresowanie bezpo!rednie cd.
W trybie segmentacji standardowej obliczanie
adresu efektywnego na przebiega nast&puj"co:
Obliczanie adresu efektywnego (EA) na
podstawie wskazania segmentu i ofsetu odbywa
si& na dwa ró ne sposoby, w zale no'ci od
zastosowanego modelu pami&ci.
Wyró nia si& dwa podstawowe rodzaje
segmentacji:
–
–
–
–
Standardow" (segmented mode) stosowan"
powszechnie przez aplikacje 32-bitowe IA-32
Tryb adresów rzeczywistych (real-address mode)
stosowan" w starych aplikacjach 16-bitowych
–
27
16-bitowy rejestr segmentu zawiera selektor
segmentu, który wskazuje pewien deskryptor
segmentu w tablicy deskryptorów segmentów
Z deskryptora segmentu pobiera si& 32-bitowy adres
bazowy segmentu
Adres efektywny oblicza si& jako sum& 32-bitowego
adresu bazowego i 32-bitowego ofestu podanego w
instrukcji
Przyk!ad
–
w trakcie wyk!adu
28
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Adresowanie bezpo!rednie cd.
Adresowanie bezpo!rednie cd.
W trybie adresów rzeczywistych obliczanie adresu
efektywnego na przebiega nast&puj"co:
–
–
Argument jest umieszczony w komórce pami&ci; adres
tej komórki jest podany w instrukcji
Przyk!ady:
16-bitowy rejestr segmentu po pomno eniu przez 16 daje
bezpo'rednio adres bazowy segmentu (nie stosuje si&
deskryptorów segmentów)
Adres efektywny oblicza si& jako sum& adresu bazowego i 16bitowego ofsetu
Adres ds:offset jest zatem przekszta!cany na adres
efektywny wed!ug zale no'ci:
Przyk!ad
–
al,DANA
mov
ax,news
;prze lij bajt z komórki
;pami!ci o adresie DS:DANA
;do rejestru al.
;prze lij ax do adresu DS:NEWS
kod operacji
02
10
w trakcie wyk!adu
29
mov
Uwaga: x86 stosuje konwencj& little-endian, dlatego je'li
za!o ymy, e offset DANA=1002h, pierwsza z
powy szych przyk!adowych instrukcji b&dzie w pami&ci
zapisana jako ci"g bajtów:
EA = 16*ds + offset
30
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Adresowanie bezpo!rednie cd.
Adresowanie po!rednie rejestrowe
Zamiast ofsetu w postaci nazwy symbolicznej mo na
poda$ ofset w postaci liczbowej (dziesi&tnie lub
szesnastkowo):
Przyk!ad: mov al,[1234h]
Nawias u yty w powy szym przyk!adzie wskazuje
kompilatorowi, e zastosowano adresowanie
bezpo'rednie
Je'liby nawias zosta! pomini&ty, kompilator
zinterpretowa!by argument jako natychmiastowy
–
31
Instrukcje operuj"ce na danych w pami&ci u ywaj" domy'lnie
rejestru DS.
Instrukcje operuj"ce na stosie u ywaj" domy'lnie rejestru SS
Instrukcje skoków u ywaj" domy'lnie segmentu CS
Adresowanie po'rednie rejestrowe dzia!a podobnie jak
adresowanie bezpo'rednie, z t" ró nic", e ofset jest
podany w rejestrze, a nie bezpo'rednio w instrukcji
–
eby uzyska$ ofset trzeba zatem wykona$ dodatkowy, po'redni
krok polegaj"cy na si&gni&ciu do zawarto'ci rejestru
W procesorach x86 do adresowania rejestrowego
po'redniego mo na wykorzystywa$ rejestry: bx, bp,
si, di
Nale y pami&ta$, e rejestry bx, si, di domy'lnie
wspó!pracuj" z rejestrem segmentu ds, natomiast
rejestr bp wspó!pracuje domy'lnie z rejestrem segmentu
ss
w powy szym przyk!adzie liczba 1234h zosta!aby potraktowana
jako gotowy argument natychmiastowy, a nie ofset adresu
argumentu znajduj"cego si& w pami&ci
32
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Adresowanie po!rednie rejestrowe
Adresowanie bazowo-indeksowe
Podobne do adresowania rejestrowego po'redniego
Ró nica polega na tym, e ofset jest obliczany jako
suma zawarto'ci dwóch rejestrów
Przyk!ad: mov dx,[bx+di]
Adresowanie bazowo-indeksowe jest przydatne przy
dost&pie do tablic
Przyk!ady:
mov
–
mov
–
[bp],dl
bajt z dl jest kopiowany do segmentu stosu pod adres podany
w rejestrze bp
mov
–
cx,[bx]
16-bitowe s!owo z komórki adresowanej przez ofset w rejestrze
bx w segmencie danych (ds) jest kopiowane do rejestru cx
–
–
Jako rejestr bazowy mo na wykorzysta$ rejestry bp lub
bx (uwaga: bx wspó!pracuje z ds, natomiast bp
wspó!pracuje z ss)
Jako rejestry indeksowe mo na wykorzysta$ rejestry di
lub si
[di],[bx]
przes!ania typu pami&$-pami&$ nie s" dozwolone (z wyj"tkiem
szczególnych instrukcji operuj"cych na !a#cuchach znaków –
stringach)
33
Rejestr bazowy wskazuje adres pocz"tku tablicy
Rejestr indeksowy wskazuje okre'lony element tablicy
34
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Adresowanie rejestrowe wzgl"dne
Adresowanie rejestrowe wzgl"dne cd.
Adresowanie rejestrowe wzgl&dne jest alternatywnym (w
stosunku do adresowania bazowo-indeksowego)
sposobem dost&pu do elementów tablic
Przyk!ady:
mov array[si],bl
bajt z rejestru bl jest zapami&tany w segmencie
danych, w tablicy o adresie pocz"tkowym (podanym
przez nazw& symboliczn") array, w elemencie o
numerze podanym w si
mov di,set[bx]
rejestr di jest za!adowany s!owem 16-bitowym z
segmentu danych, z tablicy set, z elementu o numerze
podanym w bx
Podobne do adresowania bazowo-indeksowego
Ofset jest obliczany jako suma zawarto'ci rejestru
bazowego lub indeksowego (bp, bx, di lub si) oraz
liczby okre'laj"cej baz&
Przyk!ad:
mov ax,[di+100h]
powy sza instrukcja przesy!a do ax s!owo z komórki
pami&ci w segmencie ds o adresie równym sumie
zawarto'ci rejestru di i liczby 100h
Podobnie jak w innych trybach adresowych, rejestry bx,
di oraz si wspó!pracuj" domy'lnie z rejestrem
segmentu danych ds, natomiast rejestr bp wspó!pracuje
z rejestrem segmentu stosu ss
35
36
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Adr. wzgl"dne bazowo-indeksowe
Adresowanie stosu
Adresowanie wzgl&dne bazowo-indeksowe jest kombinacj" dwóch
trybów:
–
–
Jest u ywane przy dost&pie do stosu
Przyk!ady
bazowo-indeksowego
rejestrowego wzgl&dnego
popf
pushf
push ax
pop bx
push ds
pop cs
push [bx]
Przyk!ady:
mov dh,[bx+di+20h]
rejestr dh jest !adowany z segmentu danych, z komórki o adresie
równym sumie bx+di+20h
mov ax,file[bx+di]
rejestr ax jest !adowany z segmentu danych, z komórki o adresie
równym sumie adresu pocz"tkowego tablicy file, rejestru bx oraz
rejestru di
mov list[bp+di],cl
rejestr cl jest zapami&tany w segmencie stosu, w komórce o
adresie równym sumie adresu pocz"tkowego tablicy list, rejestru
bp oraz rejestru di
37
;pobierz s!owo wska%ników (flagi) ze stosu
;wy'lij s!owo wska%ników na stos
;wy'lij ax na stos
;odczytaj bx ze stosu
;wy'lij rejestr segmentu ds na stos
;odczytaj rejestr segmentu ze stosu
;zapisz komórk& pami&ci o adresie podanym
;w bx na stos
38
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Adresowanie danych – uwaga
Adresowanie w instrukcjach skoku
Adres w instrukcjach skoków mo e mie$ ró n" posta$:
We wszystkich przyk!adach z kilkunastu ostatnich plansz
ilustruj"cych tryby adresowania argumentów u yto dla
uproszczenia wy!"cznie rejestrów 8-bitowych (np. al, ah,
bl) lub 16-bitowych (np. ax, bx, cx)
–
–
–
krótk" (short)
blisk" (near)
dalek" (far)
Adresy mog" by$ podane w ró ny sposób:
W ogólnym przypadku, w architekturze IA-32 mo na
równie u ywa$ rejestrów 32-bitowych. Wówczas w
podanych przyk!adach mog!yby wyst"pi$ rejestry eax,
ebx itd.
39
–
–
–
40
Wprost w cz&'ci adresowej instrukcji – tryb bezpo'redni (direct)
W rejestrze
W komórce pami&ci adresowanej przez rejestr
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Skoki krótkie (short)
Skoki bliskie (near)
Adres jest jednobajtow" liczb" w kodzie U2
Skok polega na dodaniu tej liczby do rejestru IP
Krótki skok ma zakres od –128 do +127 bajtów w stosunku do
aktualnej warto'ci IP i odbywa si& w obr&bie tego samego segmentu
wskazanego przez cs
Przyk!ad:
label2
label1
Skok mo e by$ wykonany do dowolnej instrukcji w obr&bie
segmentu wskazanego przez aktualn" warto'$ w rejestrze cs
W trybie adresów rzeczywistych adres skoku jest 16-bitowy,
natomiast segment ma rozmiar 64 kB
W trybie segmentowym IA-32 adres jest 32-bitowy
Ogólna posta$ skoku:
jmp short label1
....
jmp label2
jmp near ptr etykieta_docelowa
Przyk!ad:
Uwaga: w pierwszej instrukcji skoku trzeba u y$ s!owa short aby
wskaza$ kompilatorowi, e skok jest krótki, poniewa podczas
kompilacji w tym miejscu nie wiadomo jeszcze jaka jest jego
d!ugo'$. W drugiej instrukcji skoku s!owo short jest zb&dne.
Kompilator sam zoptymalizuje kod i zastosuje skok krótki, poniewa
znana jest ju odleg!o'$ do etykiety label2
41
jmp near ptr dalej
....
....
dalej ...
42
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Skoki dalekie (far)
Skoki – przyk ady
jmp ax
Skok mo e by$ wykonany do dowolnej instrukcji w obr&bie
dowolnego innego segmentu
W rozkazie skoku nale y poda$ nie tylko adres skoku tak jak w
przypadku skoków bliskich, ale ponadto równie now" warto'$
rejestru segmentu cs
jmp near ptr [bx]
; skocz w obr&bie tego samego segmentu
; do adresu wskazanego w komórce pami&ci
; w segmencie danych wskazanej przez bx
Ogólna posta$ skoku:
jmp far ptr etykieta_docelowa
jmp table[bx]
; skocz w obr&bie tego samego segmentu
; do adresu wskazanego w wektorze table,
; przechowywanym w segmencie danych,
; w elemencie o numerze podanym w bx
etykieta docelowa znajduje si& w innym segmencie kodu programu
ni instrukcja skoku
Elementy instrukcji skoku dalekiego s" w zakodowanej instrukcji
przechowywane w nast&puj"cej kolejno'ci: kod operacji skoku, ofset
(adres skoku), nowa zawarto'$ cs. Ofset i cs s" przechowywane w
postaci little-endian
43
44
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Tryby adresowania – podsumowanie
Tryby adresowania – podsumowanie
Pentium
Adresowanie pami&ci
Adresy 16-bitowe
Pentium
Adresy 32-bitowe
45
46
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
47
; skocz w obr&bie tego samego segmentu
; do adresu podanego w ax
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Tryby adresowania – podsumowanie
Tryby adresowania – podsumowanie
Pentium – adresy 32-bitowe
Pentium – ró nice adresowania 32- i 16-bitowego
48
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Tryby adresowania – podsumowanie
Tryby adresowania – podsumowanie
Przyk!ad: niech domy'lnym trybem b&dzie tryb 16-bitowy
• Sk"d procesor Pentium wie czy adres jest 32- czy 16-bitowy?
• Wykorzystuje si& bit D w deskryptorze segmentu CS
Przyk ad 1: zmiana rozmiaru argumentu
D=0
» domy'lny rozmiar argumentów i adresów – 16 bitów
D=1
» domy'lny rozmiar argumentów i adresów – 32 bity
mov ax,123 ==> b8 007b
mov eax,123 ==> 66 | b8 0000007b
• Programista mo e zmieni$ warto'ci domy'lne
• W Pentium instrukcj& mo na poprzedzi$ tzw. Prefiksem
(jednobajtowym przedrostkiem, który zmienia domy'lne d!ugo'ci
argumentów i adresów)
Przyk ad 2: zmiana d!ugo'ci adresu
mov ax,[ebx*esi+2] ==> 67 | 8b0473
Przyk ad 3: zmiana rozmiaru argumentu i d!ugo'ci adresu
66H prefiks zmiany d!ugo'ci argumentu
67H prefiks zmiany d!ugo'ci adresu
mov eax,[ebx*esi+2] ==> 66 | 67 | 8b0473
• Stosuj"c prefiksy mo na miesza$ ze sob" tryby 32- i 16-bitowe
49
50
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Podsumowanie
Sposób zapisu instrukcji
–
mnemonik, argumenty
–
zapis w j&zyku asemblera, zapis funkcjonalny, zapis binarny
Liczba adresów instrukcji
–
procesory 3-, 2-, 1- i 0-adresowe
Tryby adresowania argumentów (danych)
Tryby adresowania programu w instrukcjach skoków
51
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Asembler i j zyki wysokiego poziomu
Niektóre instrukcje j#zyka C mo na zast"pi$ pojedynczymi
instrukcjami w j#zyku asemblera
Organizacja i Architektura
Komputerów
J#zyk asemblera (Pentium)
1
2
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Program w j zyku asemblera
Asembler i j zyki wysokiego poziomu
Trzy rodzaje polece&
Wi#kszo%$ instrukcji j#zyka C jest jednak równowa na
wi#kszej liczbie instrukcji w j#zyku asemblera
–
Instrukcje
Mówi" procesorowi co ma robi$
S" wykonywane przez CPU, rodzaj instrukcji jest okre%lony przez
kod operacji (Opcode)
–
Dyrektywy (pseudo-ops)
Wskazówki dla kompilatora (asemblera) dotycz"ce procesu
t!umaczenia
Nie s" wykonywane przez CPU, nie generuj" instrukcji w kodzie
wynikowym programu
–
Macro
Sposób skróconego zapisu grupy instrukcji
Technika podobna do podprogramów, ale realizowana na
poziomie kompilacji, a nie w trakcie wykonania podprogramu
3
4
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Linia programu asemblera
Linia programu asemblera cd.
Format linii programu w j#zyku asemblera:
[label]
–
–
mnemonic
[operands]
–
Komentarze, zaczynaj" si# od znaku %rednika
Mog" by$ umieszczone w tej samej linii co instrukcja lub
tworzy$ osobn" lini#
[;comment]
Pola w nawiasach [ ] s" opcjonalne
Etykieta s!u y do dwóch celów:
Przyk!ad
Oznacza instrukcje, do których s" wykonywane skoki
Oznacza identyfikatory zmiennych i sta!ych, do których
mo na w programie odwo!ywa$ si# przez nazw# etykiety
repeat:
CR
–
Mnemonik okre%la rodzaj operacji, np. add, or
–
–
Operandy (argumenty) oznaczaj" dane
wykorzystywane przez instrukcj#
–
inc
equ
result
0dh
;zwi ksz zmienn! result o 1
;znak powrotu karetki (CR)
W powy szym przyk!adzie etykieta repeat umo liwia wykonanie
skoku do instrukcji inc
Etykieta CR oznacza sta!" o nazwie CR i o warto%ci 0dh nadanej
przez dyrektyw# equ
W Pentium instrukcje mog" mie$ 0, 1, 2 lub 3 operandy
5
6
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Alokacja danych
Alokacja danych cd.
Deklaracja zmiennych w j#zyku wysokiego poziomu, np. w
j#zyku C:
char
int
float
double
W j#zyku asemblera do alokacji danych u ywa si#
dyrektywy define
response
value
total
average_value
–
–
–
Dyrektywa define nie okre%la typu danej
Okre%la
–
–
–
–
Wymagany rozmiar pami#ci (1 bajt, 2 bajty, ...)
Nazw# (etykiet#) identyfikuj"c" zmienn" (response, value, ...)
Typ zmiennej (int, char, ... )
–
7
Interpretacja typu danej jest zale na od programu, który operuje
na danej
Dyrektywy define s" lokalizowane w cz#%ci .DATA
programu
Ogólny format dyrektywy define:
Ta sama liczba binarna mo e by$ interpretowana w ró ny sposób,
np. 1000 1101 1011 1001 oznacza
–
Rezerwuje miejsce w pami#ci
Etykietuje miejsce w pami#ci
Inicjalizuje dan"
[var-name]
Liczb# –29255 (signed integer)
Liczb# 36281 (unsigned)
8
d?
init-value [,init-value], ...
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Alokacja danych cd.
Alokacja danych cd.
Wielokrotne definicje mog" by$ zapisane w postaci
skróconej
Przyk!ad
Mamy 5 rodzajów dyrektywy define:
db
dw
dd
dq
dt
definiuj bajt (alokacja 1 bajtu)
definiuj s!owo (alokacja 2 bajtów)
definiuj podwójne s!owo (alokacja 4 bajtów)
definiuj poczwórne s!owo (alokacja 8 bajtów)
definiuj 10 bajtów (alokacja 10 bajtów)
message
db
db
db
db
db
Przyk!ady:
sorted
response
value
float1
db
db
dw
dq
‘y’
?
;brak inicjalizacji
25159
1.234
mo na zapisa$ jako:
message
db
‘B’,’y’,’e’,0dh,0ah
lub w jeszcze bardziej skróconej postaci:
message
9
‘B’
‘y’
‘e’
0dh
0ah
db
‘Bye’,0dh,0ah
10
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Alokacja danych cd.
Alokacja danych cd.
Wielokrotna inicjalizacja
–
–
Dyrektywa DUP mo e by$ zagnie d ana
Dyrektywa DUP umo liwia nadanie tej samej warto%ci wielu
obiektom (bajtom, s!owom. itd.)
Tablica o nazwie marks z!o ona z 8 s!ów mo e by$
zadeklarowania i wst#pnie wyzerowana w nast#puj"cy sposób:
marks dw 8 DUP (0)
Przyk!ad
stars
rezerwuje 40 bajtów i nadaje im warto%$:
***??!!!!!***??!!!!!***??!!!!!***??!!!!!
Przyk!ady:
table
dw
message db
name1
db
10
DUP (?)
3 DUP (‘Bye!’)
30 DUP (‘?’)
Przyk!ad
;10 s"ów, bez
;inicjalizacji
;12 bajtów
;zainicjowanych jako
;‘Bye!Bye!Bye!’
;30 bajtów, ka#dy
;zainicjowany jako
;znak ‘?’
11
db 4 DUP(3 DUP (‘*’),2 DUP (‘?’),5 DUP (‘!’))
matrix
–
–
dw
10
DUP
(5
DUP
(0))
definiuje macierz 10 x 5 i wst#pnie zeruje jej elementy
t# sam" deklaracj# mo na zapisa$ jako:
matrix
dw
50
DUP (0)
12
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Alokacja danych cd.
Alokacja danych cd.
Podczas kompilacji asembler buduje tablic# symboli, w
której umieszcza napotkane w programie etykiety, w tym
etykiety oznaczaj"ce dane
Rozmiary danych w j#zyku asemblera i
odpowiadaj"ce im typy danych w j#zyku C
Przyk!ad:
13
14
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Alokacja danych cd.
Alokacja danych cd.
Dyrektywa label
–
Jest innym sposobem nadania nazwy danym umieszczonym w
pami#ci
–
Ogólny format:
–
Dost#pnych jest pi#$ typów danych
name label
Dyrektywa label
Przyk!ad
.DATA
count
label word
Lo_count db
0
Hi_count db
0
.CODE
...
mov Lo_count,al
mov Hi_count,cl
type
byte
1 bajt
word
dword
qword
tword
2 bajty
4 bajty
8 bajtów
10 bajtów
–
–
–
15
16
count oznacza warto%$ 16-bitow" (dwa bajty)
Lo_count oznacza mniej znacz"cy bajt
Hi_count oznacza bardziej znacz"cy bajt
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Adresowanie argumentów
Adresowanie argumentów cd.
Adresowanie natychmiastowe (immediate)
Adresowanie rejestrowe (register)
–
–
–
Argumenty znajduj" si# w wewn#trznych rejestrach
CPU
Najbardziej efektywny tryb adresowania
–
–
Przyk!ady
mov eax,ebx
mov bx,cx
–
–
Przyk!ad
mov al,75
–
Instrukcja mov
mov destination, source
Kopiuje dane z source do destination
17
–
Liczba 75 (dziesi#tna) jest !adowana do rejestru al
(8-bitowego)
Powy sza instrukcja u ywa trybu rejestrowego do wskazania
argumentu docelowego oraz trybu natychmiastowego do
wskazania argumentu 'ród!owego
18
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Adresowanie argumentów cd.
Adresowanie argumentów cd.
Adresowanie bezpo%rednie
Przyk!ad
Adresowanie bezpo%rednie (direct)
–
Dane znajduj" si# w segmencie danych
–
Adres ma dwa elementy: segment:offset
–
Ofset w adresowaniu bezpo%rednim jest podawany w instrukcji,
natomiast wskazanie na segment odbywa si# z wykorzystaniem
domy%lnego rejestru segmentu (DS), chyba e w instrukcji
zastosowano prefiks zmiany segmentu na inny
mov
–
Asembler oblicza ofset na podstawie warto%ci liczbowej etykiety
–
W tym celu wykorzystywana jest tablica symboli
19
al,response
Asembler zast#puje symbol response przez jego
liczbow" wato%$ (ofset) z tablicy symboli
mov
table1,56
Za!ó my, e obiekt table1 jest zadeklarowany jako
table1 dw 20 DUP (0)
Instrukcja mov odnosi si# w tym przypadku do pierwszego
elementu wektora table1 (elementu o numerze 0)
W j#zyku C równowa ny zapis jest nast#puj"cy:
table1[0] = 56
Je%li w programie u ywamy etykiet przy dyrektywach db,
dw, label, ....
20
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Adresowanie argumentów cd.
Adresowanie argumentów cd.
Adresowanie po%rednie (indirect)
Adresowanie bezpo%rednie – problemy
–
Tryb bezpo%redni jest wygodny tylko przy
adresowaniu prostych zmiennych
–
Przy adresowaniu tablic powstaj" powa ne k!opoty
–
–
–
Jako przyk!ad warto rozwa y$ dodawanie elementów tablic
–
Adresowanie bezpo%rednie nie nadaje si# do u ycia w
p#tlach programowych z iteracyjnie zmienianym
wska'nikiem elementów tablic
–
Ofset jest okre%lony po%rednio, z wykorzystaniem rejestru
Tryb ten czasem jest nazywany po%rednim rejestrowym
(register indirect)
Przy adresowaniu 16-bitowym ofset znajduje si# w jednym z
rejestrów: bx, si lub di
Przy adresowaniu 32-bitowym ofset mo e znajdowa$ si# w
dowolnym z 32-bitowych rejestrów GP procesora
Przyk!ad
Rozwi"zaniem jest zastosowanie adresowania
po%redniego (indirect)
21
–
mov ax,[bx]
Nawiasy [ ] oznaczaj", e rejestr bx zawiera ofset, a nie
argument
22
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Adresowanie argumentów cd.
Adresowanie argumentów cd.
U ywaj"c adresowania po%redniego mo na
przetwarza$ tablice przy pomocy p#tli
programowej
Przyk!ad: sumowanie elementów tablicy
–
–
(adowanie ofsetu do rejestru
Za!ó my, e chcemy za!adowa$ do bx ofset tablicy o
nazwie table1
–
Nie mo emy zapisa$:
–
Dwa sposoby za!adowania ofsetu do bx
bx,table1
Z wykorzystaniem dyrektywy offset
Powtarzaj nast#puj"ce czynno%ci w p#tli
–
–
mov
Za!aduj adres pocz"tkowy tablicy (czyli ofset) do
rejestru bx
–
Pobierz element z tablicy u ywaj"c ofsetu z bx
Operacja zostanie wykonana podczas kompilacji
Z wykorzystaniem instrukcji lea (load effective address)
Wykorzystaj adresowanie po%rednie
–
Dodaj element do bie "cej sumy cz#%ciowej
Zmie& ofset w bx aby wskazywa! kolejny element w tablicy
23
Argument jest zapisany w instrukcji jako jej cz#%$
Tryb jest efektywny, poniewa nie jest potrzebny osobny cykl
!adowania argumentu
U ywany w przypadku danych o sta!ej warto%ci
24
Operacja zostanie wykonana przez CPU w trakcie realizacji
programu
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Adresowanie argumentów cd.
Adresowanie argumentów cd.
Co lepiej zastosowa$ – offset czy lea ?
Wykorzystanie dyrektywy offset
–
–
Poprzedni przyk!ad mo na rozwi"za$ pisz"c
mov
Nale y stosowa$ dyrektyw# offset je%li tylko jest to mo liwe
Dyrektywa offset wykonuje si# podczas kompilacji
Instrukcja lea wykonuje si# w trakcie realizacji programu
bx,offset table1
–
Wykorzystanie instrukcji lea
Czasem u ycie instrukcji lea jest konieczne
Je%li dana jest dost#pna tylko w trakcie wykonywania programu
–
–
Ogólny format instrukcji lea
np. gdy dost#p do danej jest przez indeks podany jako parametr
podprogramu
Mo emy zapisa$
lea
–
register,source
lea
Zastosowanie lea w poprzednim przyk!adzie
lea
bx,table1
25
bx,table[si]
aby za!adowa$ bx adresem elementu tablicy table1, którego
indeks jest podany w rejestrze si
W tym przypadku nie mo na u y$ dyrektywy offset
26
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Instrukcje przes!a" danych
Instrukcje przes!a" danych cd.
Najwa niejsze instrukcje tego typu w asemblerze Pentium to:
mov (move) – kopiuj dan"
xchg (exchange) – zamie& ze sob" dwa argumenty
xlat (translate) – transluje bajt u ywaj"c tablicy translacji
Instrukcja mov
– Format
mov destination,source
– Kopiuje warto%$ z source do destination
– Argument 'ród!owy source pozostaje niezmieniony
– Obydwa argumenty musz" mie$ ten sam rozmiar (np. bajt,
s!owo itp.)
– Source i destination nie mog" równocze%nie oznacza$
adresu pami#ci
W instrukcji mov mo na stosowa$ 5 ró nych kombinacji
trybów adresowania:
Tryby te mo na stosowa$ równie we wszystkich innych
instrukcjach Pentium z dwoma argumentami
Jest to cecha wi#kszo%ci instrukcji Pentium
Pentium ma specjalne instrukcje, które u!atwiaj" kopiowanie
bloków danych z pami#ci do pami#ci
27
28
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Instrukcje przes!a" danych cd.
Instrukcje przes!a" danych cd.
Niejednoznaczno%$ operacji mov
Za!ó my nast#puj"c" sekwencj# deklaracji:
. DATA
table1
status
dw
db
Niejednoznaczno%$ instrukcji mov z poprzedniego
przyk!adu mo na usun"$ u ywaj"c dyrektywy ptr
Ostatnie dwie instrukcje mov z poprzedniej planszy
mo na zapisa$ jako:
20 DUP (0)
7 DUP (1)
mov word ptr [bx],100
mov byte ptr [si],100
– S!owa word i byte s" nazywane specyfikacj" typu
W podanej ni ej sekwencji instrukcji przes!a& dwie
ostatnie sa niejednoznaczne:
mov
mov
mov
mov
bx,offset table1
si,offset status
[bx],100
[si],100
Mo na u ywa$ ponadto nast#puj"cych specyfikacji typu:
–
–
Nie jest jasne, czy asembler ma u y$ bajtu czy s!owa do
reprezentacji liczby 100
29
–
30
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Instrukcje przes!a" danych cd.
Instrukcje przes!a" danych cd.
Instrukcja xchg
Instrukcja xchg jest przydatna przy konwersji
16-bitowych danych mi#dzy formatami littleendian i big-endian
Przyk!ad
Ogólny format
xchg operand1,operand2
Zamienia warto%ci argumentów operand1 i operand2
Przyk!ady
xchg
xchg
xchg
xchg al,ah
Zamienia dane w ax na przeciwny format endian
eax,edx
response,cl
total,dx
Pentium ma podobn" instrukcj# bswap do
konwersji danych 32-bitowych:
Bez instrukcji xchg operacja zamiany argumentów
wymaga!aby dwóch instrukcji mov i pomocniczego
rejestru
31
dword – dla warto%ci typu doubleword
qword – dla warto%ci typu quadword
tword – dla warto%ci z!o onych z 10 bajtów
bswap 32-bit_register
Instrukcja bswap dzia!a tylko na rejestrach 32-bitowych
32
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Instrukcje przes!a" danych cd.
Instrukcje przes!a" danych cd.
Przyk!ad dzia!ania instrukcji xlat – szyfrowanie
Instrukcja xlat transluje bajty
–
Format
–
xlatb
Przed u yciem instrukcji xlat nale y:
–
–
–
–
Tablica translacji mo e mie$ najwy ej 256 elementów
(rejestr al jest 8-bitowy)
34
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Instrukcje asemblera - przegl#d
Instrukcje arytmetyczne
Instrukcje inc oraz dec
Format:
Oprócz omówionych instrukcji przes!a& danych procesor
Pentium realizuje wiele innych operacji.
Najwa niejsze grupy operacji w Pentium:
–
–
–
–
–
–
inc
dec
Instrukcje arytmetyczne
Instrukcje skoków
Instrukcje p#tli
Instrukcje logiczne
Instrukcje przesuni#$ logicznych (shift)
Instrukcje przesuni#$ cyklicznych (rotate)
destination
destination
Dzia!anie
destination = destination +/– 1
Argument destination mo e by$ 8-, 16- lub 32bitowy, w pami#ci lub w rejestrze
–
W dalszej cz#%ci wyk!adu s" omówione najwa niejsze
instrukcje z tych grup, które pozwalaj" napisa$ wiele
prostych, ale bardzo u ytecznych programów w j#zyku
asemblera
35
Nie mo na stosowa$ trybu natychmiastowego
Przyk!ady
inc
dec
bx
value
; bx = bx + 1
; value = value – 1
36
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Instrukcje arytmetyczne cd.
Instrukcje arytmetyczne cd.
Instrukcja dodawania add
Instrukcja odejmowania sub
Format
Format
add
destination,source
sub
Dzia!anie
destination = destination + source
add
add
destination = destination - source
Przyk!ady
ebx,eax
value,35
U ycie inc
destination,source
Dzia!anie
Przyk!ady
eax
sub
sub
jest lepsze ni
add
ebx,eax
value,35
U ycie dec
eax,1
eax
jest lepsze ni
sub
eax,1
–
Instrukcja inc jest krótsza w kodzie binarnym
–
Instrukcja dec jest krótsza w kodzie binarnym
–
Obydwie instrukcje wykonuj" si# w tym samym czasie
–
Obydwie instrukcje wykonuj" si# w tym samym czasie
37
38
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Instrukcje arytmetyczne cd.
Instrukcje skoków
Instrukcja porównania cmp
Format
cmp
Skok bezwarunkowy jmp
Format
destination,source
jmp
Dzia!anie
label
Dzia!anie
destination – source
– zarówno destination jak i source nie ulegaj" zmianie, CPU
wykonuje jedynie wirtualne odejmowanie by porówna$
argumenty (zbada$ relacj# mi#dzy nimi: >, =)
–
CPU przechodzi do realizacji instrukcji oznaczonej etykiet"
label
Przyk!ad – niesko&czona p#tla
mov eax,1
inc_again:
inc eax
jmp inc_again
mov ebx,eax
Przyk!ady
cmp ebx,eax
cmp count,100
Instrukcja cmp jest u ywana razem z instrukcjami skoków
warunkowych do realizacji rozga!#zie& w programie uzale nionych
od relacji mi#dzy argumentami cmp
39
0 1 2 3 4 5 6 7 8 9
4 6 9 5 0 3 1 8 7 2
.DATA
xlat_table db ‘4695031872’
...
.CODE
mov
bx,offset xlat_table
getCh al
sub
al,’0’ ;konwersja cyfry (ASCII) na indek
xlatb
putCh al
W rejestrze bx umie%ci$ adres pocz"tkowy tablicy translacji
al Musi zawiera$ indeks do tablicy (indeksowanie zaczyna si#
od warto%ci równej 0)
Instrukcja xlat odczytuje z tablicy translacji bajt wskazany
przez indeks i zapisuje go w al
Warto%$ w al zostaje utracona
33
Cyfry na wej%ciu:
Cyfry na wyj%ciu:
40
; ta instrukcja nigdy si
; nie wykona
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Instrukcje skoków cd.
Instrukcje skoków cd.
Skoki warunkowe
Format
j<cond>
Wybrane instrukcje skoków warunkowych
–
label
Dzia!anie
–
CPU przechodzi do realizacji instrukcji oznaczonej etykiet" label je%li
warunek <cond> jest spe!niony
skocz gdy równe (equal)
skocz gdy wi#ksze (greater)
skocz gdy mniejsze (less)
skocz gdy wi#ksze lub równe (greater or equal)
skocz gdy mniejsze lub równe (less or equal)
skocz gdy ró ne (not equal)
je
jg
jl
jge
jle
jne
Przyk!ad – testowanie wyst"pienia znaku powrotu karetki CR
getCh al
cmp
al,0dh ; 0dh = ASCII CR
je
CR_received
inc
cl
...
CR_received:
...
41
Argumenty w poprzedzaj"cej instrukcji cmp sa
traktowane jako liczby ze znakiem
42
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Instrukcje skoków cd.
Instrukcje skoków cd.
Instrukcja p#tli loop
Format
Skoki warunkowe mog" równie testowa$ stan
poszczególnych bitów w rejestrze wska'ników
(eflags)
loop
–
jz
jnz
jc
jnc
skocz gdy zero (jump if ZF = 1)
skocz gdy nie zero (jump if ZF = 0)
skocz gdy przeniesienie (jump if CF = 1)
skocz gdy brak przeniesienia (jump if CF = 0)
–
44
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
and
or
not
destination,source
destination,source
destination
Dzia!anie
–
–
Wykonuje odpowiedni" operacj# logiczn" na bitach
Wynik jest umieszczany w destination
Instrukcja test jest odpowiednikiem instrukcji
and, ale nie niszczy destination (podobnie
jak cmp) tylko testuje argumenty
Nieco zaskakuj"cy jest fakt, e para instrukcji dec oraz
jnz wykonuje si# szybciej ni instrukcja loop z
przyk!adu na poprzedniej planszy
test
destination,source
46
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Instrukcje logiczne cd.
Instrukcje przesuni $ logicznych
Przyk!ad – testowanie, czy w rejestrze al jest liczba
parzysta, czy nieparzysta
Format
test al,01h ; testuj najmniej znacz!cy bit al
jz liczba_parzysta
liczba_nieparzysta:
...
; przetwarzaj przypadek liczby
; nieparzystej
jmp skip
liczba_parzysta:
...
; przetwarzaj przypadek liczby
; parzystej
skip:
...
47
licznik p tli = 50
etykieta pocz!tku p tli
instrukcje stanowi!ce
tre$% p tli
koniec p tli
Format
licznik p tli = 50
etykieta pocz!tku p tli
instrukcje stanowi!ce
tre$% p tli
dekrementuj licznik
45
;
;
;
;
;
Instrukcje logiczne
Poprzedni przyk!ad jest równowa ny zapisowi
;
;
;
;
;
mov cx,50
repeat:
...
...
loop repeat
...
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Instrukcje skoków cd.
mov cx,50
repeat:
...
...
dec cx
jnz repeat
...
Dekrementuje cx i skacze do etykiety target je%li cx nie jest
zerem
Przed wej%ciem w p#tl# do rejestru cx nale y wpisa$ liczb#
powtórze& p#tli
Przyk!ad
Instrukcja jz jest synonimem je
Instrukcja jnz jest synonimem jne
43
target
Dzia!anie
–
Przesuni#cia w lewo
shl destination,count
shl destination,cl
–
Przesuni#cia w prawo
shr destination,count
shr destination,cl
Dzia!anie
–
–
48
Wykonuje przesuni#cie argumentu destination w lewo lub w
prawo o liczb# bitów podan" w count lub w rejestrze cl
Zawarto%$ rejestru cl nie ulega zmianie
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Instrukcje przesuni $ logicznych
Instrukcje przesuni $ logicznych
Liczba count jest argumentem natychmiastowym
Bit opuszczaj"cy przesuwany obiekt trafia do bitu przeniesienia w
rejestrze wska'ników
Na woln" pozycj# wprowadzany jest bit równy zero
–
Przyk!ad
shl ax,5
Specyfikacja count o warto%ci wi#kszej ni 31 jest
niedozwolona
–
Je%li podana liczba count jest wi#ksza ni 31 instrukcja u yje
tylko 5 najmniej znacz"cych bitów count
Wersja instrukcji z u yciem rejestru cl jest przydatna,
je eli liczba bitów, o które nale y przesun"$ argument
jest znana dopiero w czasie wykonania programu
49
50
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Instrukcje przesuni $ cyklicznych
Instrukcje przesuni $ cyklicznych
Dwa typy instrukcji rotate
–
Przesuni#cie cykliczne przez bit przeniesienia
rcl
(rotate through carry left)
rcr
(rotate through carry right)
–
Przesuniu#cie cykliczne bez pitu przeniesienia
rol
(rotate left)
ror
(rotate right)
Instrukcje przesuni#$ cyklicznych z wy!"czeniem bitu
przeniesienia dzia!aj" wed!ug poni szego diagramu:
Format instruckji rotate jest taki sam jak instrukcji
shift
–
Mo na stosowa$ natychmiastowy argument count lub
podawa$ liczb# pozycji, o które ma nast"pi$ rotacja u ywaj"c
rejestru cl
51
52
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Instrukcje przesuni $ cyklicznych
Definiowanie sta!ych
Asembler przewiduje dwa sposoby definiowania sta!ych:
Instrukcje przesuni#$ cyklicznych z udzia!em bitu
przeniesienia dzia!aj" wed!ug poni szego diagramu:
–
Dyrektywa equ
Definicja nie mo e by$ zmieniona
Mo na definiowa$ !a&cuchy (strings)
–
Dyrektywa =
Definicja mo e by$ zmieniona
Nie mo na definiowa$ !a&cuchów
Definiowanie sta!ych zamiast podawanie ich w
instrukcjach w postaci natychmiastowej ma dwie wa ne
zalety:
–
–
53
54
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Definiowanie sta!ych
Definiowanie sta!ych
Dyrektywa equ
Sk!adnia
Dyrektywa =
Sk!adnia
name equ expression
– Przypisuje warto%$ wyra enia expression sta!ej o nazwie
name
– Wyra enie jest obliczane podczas kompilacji
name = expression
– Dzia!anie podobne dzia!anie jak dla dyrektywy equ
– Dwie zasadnicze ró nice
Redefiniowanie jest dozwolone
count = 0
...
count = 99
jest legalnym zapisem
Podobne dzia!anie jak #define w j#zyku C
Przyk!ady
NUM_OF_ROWS
NUM_OF_COLS
ARRAY_SIZE
equ
equ
equ
50
10
NUM_OFROWS * NUM_OF_COLS
–
Mo na tak e definiowa$ !a&cuchy znaków, np.
JUMP
55
Poprawia czytelno%$ programu
U!atwia dokonywanie zmian w programie (wystarczy zmieni$
definicj# i przekompilowa$ program, zamiast zmienia$
wszystkie wyst"pienia sta!ych liczbowych)
equ
–
jmp
Nie mo na definiowa$ sta!ych !a&cuchów i przedefiniowywa$
s!owa kluczowe asemblera lub mnemoniki instrukcji
Przyk!ad
Zapis JUMP = jmp jest nielegalny
56
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania
Przyk!ady programów
Podsumowanie
W za!"czonym pliku programy_asm.pdf znajduj" si#
teksty 'ród!owe kilku prostych programów napisanych w
j#zyku asemblera procesora Pentium:
–
–
–
–
–
57
Linie programu asemblerowego
Alokacja danych
Tryby adresowania argumentów
BINCHAR.ASM – konwersja tekstu ASCII na reprezentacj#
binarn"
HEXI1CHAR.ASM – konwersja tekstu ASCII na kod
szesnastkowy
HEX2CHAR.ASM – konwersja tekstu ASCII na kod
szesnastkowy z wykorzystaniem instrukcji xlat
–
rejestrowy, natychmiastowy, bezpo%redni, po%redni
Instrukcje przes!a& danych
Przegl"d najwa niejszych instrukcji asemblera Pentium
–
TOUPPER.ASM – konwersja ma!ych liter na du e litery przez
manipulacj# znakami
ADDIGITS.ASM – sumowanie poszczególnych cyfr w liczbie
instrukcje arytmetyczne, skoki bezwarunkowe i warunkowe,
instrukcje logiczne, przesuni#cia logiczne i cykliczne
Definiowanie sta!ych
Przyk!ady programów
58