76
1 Wysza Szkoa Informatyki Stosowanej i Zarzdzania Organizacja i Architektura Komputerów Wprowadzenie Wysza Szkoa Informatyki Stosowanej i Zarzdzania prof. dr hab. in. Ryszard Peka e-mail: [email protected] Literatura [1] W. Stallings, Organizacja i architektura Wysza Szkoa Informatyki Stosowanej i Zarzdzania komputerów, WNT, 2004 (tum. wydania 4) [2] B.S. Chalk, Organizacja i architektura komputerów, WNT, 1998 [3] P. Metzger, Anatomia PC, Helion, 2007 [4] A. Kowalczyk, Asembler, Croma, 1999 [5] A. Skorupski, Podstawy budowy i dziaania komputerów, WK, 2005 4 Wysza Szkoa Informatyki Stosowanej i Zarzdzania Literatura uzupeniajca [1] D.A. Patterson, J.L. Hennessy, Computer Organization and Design: The Hardware/Software Interface, Morgan Kaufmann, 3rd edition, 2005 [2] J.P. Hayes, Computer Architecture Organization, McGraw-Hill, 4th edition, 2002 [3] W. Stallings, Computer Organization and Architecture, Prentice Hall, 6th edition, 2003 5 Wysza Szkoa Informatyki Stosowanej i Zarzdzania Internet [1] Computer Architecture WWW Home Page http://www.cs.wisc.edu/~arch/www strona Uniwersytetu Wisconsin [2] AMD web site http://www.amd.com [3] Intel Developer’s Site http://developer.intel.com 6 Wysza Szkoa Informatyki Stosowanej i Zarzdzania Plan przedmiotu Wprowadzenie Podstawowe pojcia, terminologia Co to jest architektura komputerów? Co to jest organizacja komputerów? Bloki funkcjonalne komputerów Podstawowe zasady wspópracy bloków funkcjonalnych 7 Wysza Szkoa Informatyki Stosowanej i Zarzdzania Plan przedmiotu (cd.) Historia i ewolucja komputerów wpyw technologii na rozwój komputerów wydajno komputerów programy testujce wydajno (benchmarki) Arytmetyka komputerów kody liczbowe, konwersja kodów operacje arytmetyczne arytmetyka zmiennopozycyjna Ukady i bloki cyfrowe bramki, przerzutniki, rejestry, liczniki, multipleksery pósumator i sumator jednostka arytmetyczno-logiczna ALU ukady mnoenia i dzielenia 8 Wysza Szkoa Informatyki Stosowanej i Zarzdzania Plan przedmiotu (cd.) Procesor (CPU) standardowa architektura procesora jednostka wykonawcza i sterujca cykl wykonania rozkazu stos przerwania Architektury wspóczesnych procesorów ogólna architektura procesorów IA-32 i IA-64 rejestry segmentacja pamici

wit.uber.pl Semestr II/Organizacja i architektura... · 1 Wy sza Szko !a Informatyki Stosowanej i Zarz "dzania Organizacja i Architektura Komputerów Wprowadzenie Wy sza Szko !a Informatyki

  • Upload
    dokhanh

  • View
    218

  • Download
    1

Embed Size (px)

Citation preview

1

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Organizacja i Architektura Komputerów

Wprowadzenie

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

prof. dr hab. in . Ryszard Pe!ka

e-mail: [email protected]

Literatura

[1] W. Stallings, Organizacja i architektura

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

komputerów, WNT, 2004 (t!um. wydania 4)

[2] B.S. Chalk, Organizacja i architektura komputerów, WNT, 1998

[3] P. Metzger, Anatomia PC, Helion, 2007

[4] A. Kowalczyk, Asembler, Croma, 1999

[5] A. Skorupski, Podstawy budowy i dzia ania komputerów,

WK#, 2005

4

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Literatura uzupe niaj!ca

[1] D.A. Patterson, J.L. Hennessy, Computer Organization

and Design: The Hardware/Software Interface, Morgan

Kaufmann, 3rd edition, 2005

[2] J.P. Hayes, Computer Architecture Organization,

McGraw-Hill, 4th edition, 2002

[3] W. Stallings, Computer Organization and Architecture,

Prentice Hall, 6th edition, 2003

5

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Internet

[1] Computer Architecture WWW Home Page

http://www.cs.wisc.edu/~arch/www

strona Uniwersytetu Wisconsin

[2] AMD web site

http://www.amd.com

[3] Intel Developer’s Site

http://developer.intel.com

6

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Plan przedmiotu

Wprowadzenie

– 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

7

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Plan przedmiotu (cd.)

Historia i ewolucja komputerów– 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

Uk!ady i bloki cyfrowe– bramki, przerzutniki, rejestry, liczniki, multipleksery

– pó!sumator i sumator

– jednostka arytmetyczno-logiczna ALU

– uk!ady mno enia i dzielenia

8

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Plan przedmiotu (cd.)

Procesor (CPU)

– standardowa architektura procesora

– jednostka wykonawcza i steruj"ca

– cykl wykonania rozkazu

– stos

– przerwania

Architektury wspó!czesnych procesorów

– ogólna architektura procesorów IA-32 i IA-64

– rejestry

– segmentacja pami$ci

9

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Plan przedmiotu (cd.)

J$zyk asemblera– 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

10

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Plan przedmiotu (cd.)

Pami$&

– 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

Pami$& cache

– hierarchia systemu pami$ci

– metody odwzorowywania pami$ci cache

– spójno%& pami$ci cache

11

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Plan przedmiotu (cd.)

Potok instrukcji (pipeline)

– dzia!anie przetwarzania potokowego

– przewidywanie skoków

– optymalizacja potoku instrukcji

– przyk!ady implementacji

Architektura superskalarna

– przyk!ady procesorów

12

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Plan przedmiotu (cd.)

Architektura RISC

– 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:

– Przetwarzanie równoleg!e, systemy wieloprocesorowe

– Architektury wielordzeniowe

Podsumowanie

13

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Egzamin

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

14

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wyniki i obecno"# na wyk adach

0

10

20

30

40

50

60

70

80

90

100

Obecno"#

>75%

Obecno"#

< 30%

pozytywnie

negatywnie

Dane z roku akademickiego 2006/2007 – dla wybranych grup studentów poddanych ankietyzacji

15

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Architektura i organizacja (1)

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?

Organizacja oznacza sposób implementacji architektury

– 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

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.

– Amdahl, Blaaw, and Brooks, 1964

(...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)

17

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Architektura i organizacja cd.

Hardware Design

Software Design

18

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

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

19

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Architektura i organizacja cd.

Architektura komputera =

architektura listy instrukcji + ...

20

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

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?

John Kubiatowicz, Berkeley University

21

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

Intel / AMD 8086,80286,80386, 1978

80486,Pentium, MMX,

Pentium II, III, IV, ...

22

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Funkcje i g ówne bloki komputera

Funkcje

– przechowywanie danych

– przesy!anie danych

– przetwarzanie danych

– funkcje steruj"ce

Bloki funkcjonalne

– pami$&

– podsystem I/O

– procesor (arytmometr)

– procesor (uk!ad steruj"cy)

23

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Bloki funkcjonalne komputera

Od 1946 r. komputery niezmiennie sk!adaj" si$ z 5 tych samych bloków:

Pami !

Wej"cie

Procesor

Sterowanie

Arytmometr Wyj"cie

24

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

... ale ró%ni! si$ wydajno"ci!

http://hrst.mit.edu/hrs/apollo/public/index.htm

25

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Komputer statku Apollo

26

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Komputer statku Apollo cd.

27

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Komputer statku Apollo cd., &ród o: M.I.T.

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): 36,864 words

! Erasable memory (RAM): 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

28

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Struktura komputera

29

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Operacja 1 – przesy anie danych

(I/O)

Przyk!ad:

MOV port_x, port_y

30

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Operacja 2 – pami$tanie danych

Przyk!ad:

MOV port_x, [mem]MOV [mem], port_y

31

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przetwarzanie z/do pami$ci

Przyk!ad:

ADD [mem], data

32

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przetwarzanie z pami$ci do I/O

Przyk!ad:

ADD [mem], port_x

33

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Struktura komputera – wysoki poziom

Computer

Main

Memory

Input

Output

Systems

Interconnection

Peripherals

Communications

lines

Central

Processing

Unit

Computer

34

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Struktura CPU

Computer

Arithmetic

and

Logic Unit

Control

Unit

Internal CPU

Interconnection

Registers

CPU

I/O

Memory

System

Bus

CPU

35

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Struktura uk adu sterowania

CPU

Control

Memory

Control Unit

Registers and

Decoders

Sequencing

LogicControl

Unit

ALU

Registers

Internal

Bus

Control Unit

36

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przyk adowa organizacja

TI SuperSPARCtm TMS390Z50 in Sun SPARCstation20

Floating-point Unit

Integer Unit

Inst

Cache

Ref

MMU

Data

Cache

Store

Buffer

Bus Interface

SuperSPARC

L2 CC

MBus Module

MBus

L64852MBus control

M-S Adapter

SBus

DRAM

Controller

SBusDMA

SCSI

Ethernet

STDIO

serial

kbdmouse

audio

RTC

Boot PROM

Floppy

SBus

Cards

37

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Podstawowe poj$cia

Pami$#– 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– 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)

ALU (arithmetic-logic unit)– arytmometr, g!ówny element bloku wykonawczego procesora

zdolny do realizacji podstawowych operacji arytmetycznych i logicznych

FP (floating-point)– zmiennoprzecinkowy zapis liczb (znak, mantysa, wyk!adnik)

38

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Podstawowe poj$cia cd.

Pami$# cache– 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)– ci"g instrukcji (zwykle kilku lub kilkunastu) pobranych przez

procesor i wykonywanych etapami, tak jak na ta%mie produkcyjnej

Procesor superskalarny– procesor z wieloma potokami instrukcji i wieloma uk!adami

wykonawczymi (arytmometrami)

Zegar– generator impulsów taktuj"cych bloki funkcjonalne systemu

cyfrowego

39

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Podstawowe poj$cia cd.

J$zyk asemblera

– j$zyk programowania operuj"cy elementarnymi instrukcjami

zrozumia!ymi dla procesora

J$zyk wysokiego poziomu (C, C++, C#, Python, Java)

– j$zyk programowania operuj"cy z!o onymi instrukcjami,

niezrozumia!ymi dla procesora; program przed wykonaniem musi

by& przet!umaczony na j$zyk asemblera

Szyna, magistrala

– zbiór linii przesy!aj"cych sygna!y mi$dzy blokami cyfrowymi

systemu (adresy, dane, sygna!y steruj"ce)

I/O – input/output

– uk!ady wej%cia/wyj%cia do komunikacji z otoczeniem

40

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Podstawowe poj$cia cd.

Architektura CISC (np. Pentium)

– 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)

– Reduced Instruction Set Computer

– procesor wykorzystuj"cy niewielki zbiór elementarnych

rozkazów o zunifikowanej d!ugo%ci i takim samym czasie

wykonania

41

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)

1

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Organizacja i Architektura Komputerów

Ewolucja komputerów i ich architektury

2

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

– za pó$no by wykorzysta% ENIAC w II wojnie &wiatowej

u ywany do 1955

3

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

ENIAC Eckert and Mauchly

1st working electronic

computer (1946)

18,000 Vacuum tubes

1,800 instructions/sec

3,000 ft3

4

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

ENIAC – programowanie

5

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

ENIAC – serwis

Wymiana

uszkodzonej

lampy

wymaga!a

sprawdzenia

18 000

mo liwo&ci

6

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Testowanie komputera

g!ównym narz'dziem jest

oscyloskop

stosuje si' specjalne

matryce do generowania

testowych sekwencji

bitów

7

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

ENIAC – parametry techniczne

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)

8

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

EDSAC 1 - 1949

Maurice Wilkes

1st store program computer

650 instructions/sec

1,400 ft3

http://www.cl.cam.ac.uk/UoCCL/misc/EDSAC99/

9

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Architektura von Neumanna

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 – IAS (tak samo nazwano prototypowy komputer)

zako#czenie projektu: 1952

10

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

John von Neumann

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

11

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Architektura von Neumanna

12

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

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)

– 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)

13

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

IAS – strukturaCentral Processing Unit

Main

Memory

Arithmetic and Logic Unit

Program Control Unit

Input

Output

MBR

Arithmetic & Logic Circuits

MQAccumulator

MAR

Control

Circuits

IBR

IR

PC

Instructions

& Data

Address

14

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Pierwsze komputery komercyjne

1947 - Eckert-Mauchly Computer Corporation

UNIVAC I (Universal Automatic Computer)

– 1950 - US Bureau of Census, obliczenia biurowe

powstaje Sperry-Rand Corporation

koniec lat 50-tych - UNIVAC II

– wi'ksza szybko&%

– wi'ksza pami'%

15

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

IBM

produkcja urz"dze# do perforowania kart

1953 - model 701

– pierwszy komputer IBM oferowany na rynku

– obliczenia naukowe

1955 - model 702

– zastosowania biurowe (banki, administracja)

pocz"tek serii komputerów 700/7000

16

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Pami ! ferrytowa

radykalna poprawa niezawodno&ci

brak ruchomych cz'&ci

pami'% nieulotna

relatywnie niski koszt

wi'ksze pojemno&ci

17

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Tranzystor

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.

Raytheon CK722

1954

18

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

2 generacja komputerów

podstawowym elementem jest tranzystor

NCR & RCA – „ma!e” komputery

IBM 7000

DEC - 1957

– model PDP-1

19

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Minikomputery – IBM 360

IBM 360/40

• 1964 rok

• 1.6 MHz CPU

• 32 – 256 KB RAM

• $ 225 000

1964

IBM 360 zast'puje seri' 7000

– 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

pojawiaj" si' emulatory dla serii 7000 - /1400

20

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

DEC PDP – 8

1964

pierwszy minikomputer

klimatyzacja pomieszczenia

nie jest wymagana

mie&ci si' na biurku

cena $16,000

– dla porównania IBM 360 kosztuje $100k+

wbudowane aplikacje & OEM

nowatorska struktura szyn (OMNIBUS)

21

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Pmi ! pó"przewodnikowa

1970

Fairchild

rozmiar pojedynczego rdzenia ferrytowego– 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

22

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Rozwój mikroelektroniki

podstawowy element – uk!ad scalony

uk!ady SSI, potem MSI, wreszcie LSI i VLSI

seryjna produkcja uk!adów scalonych na bazie

krzemu

23

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’– ponad 100,000,000 elementów w uk!adzie

24

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

25

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

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&%

26

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Prawo Moore’a

27

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Prawo Moore’a

28

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

2 prawo Moore’a

Koszt uruchomienia produkcji nowego uk!adu CPU UVLSI

wzrasta wyk!adniczo

Ko

szt

wd

r o#e

nia

pro

du

kc

ji u

k"a

du

w m

l n$

29

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wzrost pojemno$ci DRAM

Rok Rozmiar

1980 64 Kb

1983 256 Kb

1986 1 Mb

1989 4 Mb

1992 16 Mb

1996 64 Mb

1999 256 Mb

2002 1 Gb

2010 ?30

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Rozwój mikroprocesorów i DRAM

1

10

100

1000

10000

100000

1980 1985 1990 1995 2000 2005

CPU Memory

Perf

orm

an

ce

31

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Szybko$! DRAM i CPU

Szybko&% procesorów ros!a pr'dzej ni

szybko&% pami'ci RAM

Jakie problemy wynikaj" st"d dla konstruktorów

komputerów?

32

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Rozwi%zania (DRAM vs. CPU)

zwi'kszy% liczb' bitów odczytywanych w jednym cyklu

– DRAM powinna by% „szersza” a nie „g!'bsza”

zmieni% interfejs DRAM– pami'% cache

zmniejszy% cz'sto&% dost'pów do pami'ci– bardziej skomplikowana pami'% cache umieszczona

w CPU

zwi'kszy% przep!ywno&% szyn– szyny typu high-speed

– szyny hierarchiczne

33

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wzrost z"o#ono$ci procesorów

34

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

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

– wzrost o wi'cej ni 100% na rok!

35

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Post p technologii

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

36

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Koszt procesorów (Intel)

37

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Koszt pami ci

38

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

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

39

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Ewolucja Pentium

8080– pierwszy mikroprocesor ogólnego przeznaczenia

– 8-bitowa szyna danych

– zastosowany w pierwszym komputerze osobistym Altair

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)

80286– przestrze# adresowa 16 MB

80386– architektura 32-bitowa

– wielozadaniowo&% (multitasking)40

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Ewolucja Pentium cd.

80486

– zaawansowana pami'% cache i potok instrukcji

– wbudowany koprocesor arytmetyczny

Pentium

– architektura superskalarna

– równocze&nie wykonuje si' wiele instrukcji

Pentium Pro

– ulepszona architektura superskalarna

– technika przemianowywania rejestrów

– przewidywanie skoków

– analiza przep!ywu danych

– spekulacyjne wykonywanie instrukcji

41

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Ewolucja Pentium cd.

Pentium II– 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)

42

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Granice technologii ?

Dzi& (2008) Intel i AMD stosuj"

technologi' 90 / 65 nm, trwaj"

prace nad wdro eniem technologii

45 nm

43

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Granice technologii ?

44

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

45

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Trend rozwoju technologii

46

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wspó"czesny procesor

Intel Core 2 Duo: Courtesy: Intel Corp.

P4HT: Courtesy: Intel Corp.

47

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Technologia wielowarstwowa

48

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Technologia wielowarstwowa cd..

Fragment procesora UVLSI, zdj'cie z mikroskopu elektronowego

Courtesy IBM Corp.

49

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Prognozy bywaj% niedok"adne

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

50

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Prognozy bywaj% niedok"adne cd..

ITRS -International Technology Roadmap for Semiconductors

prognozaz 1999 roku

YEAR 2002 2005 2008 2011 2014

TECHNOLOGY 130 nm 100 nm 70 nm 50 nm 35 nm

CHIP SIZE 400 mm2

600 mm2

750 mm2

800 mm2

900 mm2

NUMBER OFTRANSISTORS(LOGIC)

400 M 1 Billion 3 Billion 6 Billion 16 Billion

DRAMCAPACITY

2 Gbits 10 Gbits 25 Gbits 70 Gbits 200 Gbits

MAXIMUMCLOCKFREQUENCY

1.6 GHz 2.0 GHz 2.5 GHz 3.0 GHz 3.5 GHz

MINIMUMSUPPLYVOLTAGE

1.5 V 1.2 V 0.9 V 0.6 V 0.6 V

MAXIMUMPOWERDISSIPATION

130 W 160 W 170 W 175 W 180 W

MAXIMUMNUMBER OFI/O PINS

2500 4000 4500 5500 6000

51

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

50 lat rozwoju komputerów

52

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Systemy „desktop” i wbudowane

53

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Rynek procesorów RISC

2001 2007

MIPS

14%

ARM

66%

SHx

10%

PowerPC

8%

Other

1%

SPARC

1%

MIPS

11%

ARM

75%

SHx

8%

Other

2%PowerPC

3%

SPARC

1%

54

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

&a'cuch pokarmowy

Big Fishes Eating Little Fishes

55

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

1988 Computer Food Chain

PCWork-station

Mini-computer

Mainframe

Mini-supercomputer

Supercomputer

Massively Parallel Processors

56

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

2008 Computer Food Chain

Mini-supercomputer

MPPs, clusters

Mini-computer

PCWork-station

Mainframe

Supercomputer Now who is eating whom?

Server

57

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

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

58

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

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

1

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Organizacja i Architektura Komputerów

Wydajno#$ komputerów

2

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Metryki marketingowe

MIPS– 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– Prosta i zrozumia!a dla laików definicja, !atwo#$ okre#lenia

Wady– 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

3

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

4

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

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 = 12.9 s

elapsed time = 2 min 39 s (159 s)

user CPU/elapsed = 65 % = (90.7 + 12.9)/159

5

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wydajno!" komputera

Wydajno#$ - Computer Performance

– czas oczekiwania na wynik

Response time (latency)

– przepustowo#$ systemu

Throughput

Przedmiotem uwagi OAK jest szczególnie

– czas CPU wykorzystany przez u ytkownika

User CPU time

czas zu yty przez CPU na wykonanie programu

6

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wydajno!" cd.

Metryki wydajno#ci procesora

CPI (cycles per instruction) – #rednia liczba cykli procesora potrzebna do wykonania instrukcji wi" e si% z:

– architektur" listy instrukcji (ISA)

– implementacj" ISA

n(CPI)instructiopercyclesclockavgns/pgmInstructiocycles/pgmclockCPU

timecycleclockcycles/pgmCPU clock ion timeCPU execut

. !

!

7

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wydajno!" cd.

Definicja wydajno#ci

Maszyna X jest n razy szybsza od maszynyY je#li

x

xtimeExecution

1ePerformanc !

nePerformanc

ePerformanc

y

x !

8

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wydajno!" cd.

Aby okre#li$ wydajno#$ komputera nale y:

– zmierzy$ czas wykonania programu testowego (benchmark)

Aby obliczy$ czas wykonania nale y zna$:

– 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$:

– liczb% instrukcji w programie

– przeci%tn" warto#$ CPI (average CPI)

9

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wydajno!" cd.

Cz%stotliwo#$ zegara CPU (CPU clock rate)

– liczba cykli na sekund% (1 Hz = 1 cykl / s)

– CPU cycle time = 1/CPU clock rate

Przyk!ad: Pentium4 2.4 GHz CPU

0.4167 ns

s100.4167

102.4

1

timecycleCPU

9

9

!

!

!

"

10

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wydajno!" cd.

Liczba cykli zegara CPU w programie

– liczba cykli = liczba instrukcji ?

– b!"d !

– ró ne instrukcje wymagaj" ró nej liczby cykli dla ró nych komputerów

Wa na uwaga:

– zmiana czasu cyklu CPU (cz%stotliwo#ci zegara) cz%sto

powoduje zmian% liczby cykli potrzebnych do wykonania ró nych instrukcji

11

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Definicja CPI

&rednia liczba cykli na instrukcj% CPI (average cycles

per instruction)

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

###

!!

! !$%

&'(

) !

!n

i

ii

n

i

i

i

n

1i

ii

FCPIIC

ICCPI

IC

ICCPI

CPI11

12

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przyk ad wykorzystania CPI

Za!ó my, e typowy program wykonywany przez CPU

analizowanego systemu komputerowego ma

nast%puj"c" charakterystyk%:

– 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

13

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przyk ad wykorzystania CPI cd.

Konstruktorzy chc" zwi%kszy$ wydajno#$ systemu

przez przeprojektowanie CPU. Maj" dwa alternatywne

rozwi"zania:

Które z tych rozwi"za' jest lepsze w sensie metryki

(CPU time) ?

1. Zmniejszy$ CPI operacji FPSQR z 20 do 2

2. Zmniejszy$ CPI wszystkich operacji FP do 2

14

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

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:

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:

CPInewFPSQR = CPIorg – 2% x (CPIoldFPSQR – CPIof new FPSQR)

= 2.0 – 2% x (20 – 2) = 1.64

15

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przyk ad wykorzystania CPI cd.

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

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

16

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przyk ad wykorzystania CPI doko#czenie

Obliczmy wzrost wydajno#ci systemu po ulepszeniu

uk!adu FPU

33.15.1/0.2 !!!

!

!!

FPnew

org

FPnew

org

FPnew

org

FPnew

CPI

CPI

CPIcycleClockIC

CPIcycleClockIC

timeCPU

timeCPUSpeedup

17

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Problem

Je#li dwa komputery maj" tak" sam" architektur% ISA, to

które z wymienionych wielko#ci b%d" w obu przypadkach

identyczne?

– cz%stotliwo#$ zegara

– CPI

– czas wykonania programu (CPU time)

– liczba instrukcji (IC)

– MIPS

Odpowied(: CPI i liczba instrukcji (IC)

18

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wydajno!" - wspó zale$no!ci

Liczba

instrukcji

CPI Cykl zegara

Program X

Kompilator X X

Lista instrukcji X X

Organizacja X X

Technologia X

19

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Prawo AmdahlaOkre#la wspó!czynnik poprawy wydajno#ci Speed up w rezultacie ulepszenia systemu komputerowego

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

* +

* +enh

enh

enhnew

old

overall

enh

enh

enholdnew

Speedup

FracFrac

CPUtime

CPUtimeSpeedup

Speedup

FracFracCPUtimeCPUtime

,"

!!

-.

/01

2," !

1

1

1

20

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Prawo Amdahla – przyk ad

Dla wcze#niej analizowanego przyk!adu dotycz"cego ulepszenia bloków realizuj"cych obliczenia FP i FPSQR otrzymujemy nast%puj"ce wyniki:

ten sam wynik co uzyskany wcze#niej przy u yciu analizy CPI

* +

* +33.1

75.0

1

0.2

5.05.01

1

22.182.0

1

10

2.02.01

1

!!

,"

!

!!

,"

!

FP

FPSQR

Speedup

Speedup

21

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Jeszcze jeden przyk ad

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.

– Proste zastosowanie prawa Amdahla

* +

* +5.3

0.19

1

10

0.90.91

1

cacheiazastosowanzSpeedup

cachepracyczasu%cachepracyczasu%1

1Speedup

!!

,"

!

,"

!

22

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Pomiary wydajno!ci

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)

– wygodne dla architektów i projektantów

– !atwe w standaryzacji testów

SPEC (System Performance Evaluation Cooperative)

– 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

23

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

SPEC benchmarks

SPEC89 – 1989

Benchmark

0

100

200

300

400

500

600

700

800

gcc

ep

resso

sp

ice

doduc

nasa7 li

eq

nto

tt

matr

ix300

fpppp

tom

ca

tv

10 krótkich testów

wynik w postaci jednej liczby,

#redniej wa onej

24

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

SPEC benchmarks cd.

Druga runda – 1992

– 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

Trzecia runda – 1995

– SPECint95 – zestaw 8 programów (integer)

– SPECfp95 – zestaw 10 programów (FP)

– SPECint_base95 i SPECfp_base95

25

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

SPEC’95 – zestaw testów

26

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

SPECint95 - przyk ad

27

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

SPEC’2000

28

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

SPEC_2006 zestaw testówCFP 2006

CINT 2006

29

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

30

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

31

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Raporty CFP - przyk ady

2.8 GHz

32

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

SYSmark 20021 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 Hyper-

Threading Technology

33

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

SYSmark 2002 cd.

34

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

SYSmark 2002

Internet Content Creation:

• Adobe* Photoshop* 6.01

• Adobe Premiere* 6.0

• Macromedia Dreamweaver 4

• Macromedia Flash 5

• Microsoft Windows Media

Encoder* 7.1

Office Productivity:

• 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

35

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Benchmarki dla amatorów

Karty graficzne– 3DMark SE

Dyski– HDTach

– WinBench

Procesory– SPECcpu2006

– SYSmark 2002

Pami#ci– ScienceMark 1.0

Kompletny system komputerowy– PCMark

36

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Architektury superkomputerów

37

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Procesory w superkomputerach

38

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Procesory w superkomputerach

39

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Moc obliczeniowa - przewidywania

40

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wydajno ! i architektura

41

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– SPEC’89

– SPEC’92

– SPEC’95

– SPEC’2000 i 2006

– SYSmark 2002

1

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Organizacja i Architektura Komputerów

Arytmetyka komputerów

2

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)

3

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Bity, bajty, s owa

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)

D!ugo$% s!owa zale y od organizacji komputera

4

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Kody liczbowe

22

33

44

55

66

77

88

99

1010

1111

1212

1313

1414

1515

1616

1010011110010100111100

12111221211122

110330110330

2033020330

1011210112

36233623

24742474

17481748

13401340

10091009

938938

7C17C1

6BA6BA

5E55E5

53C53C

bbaaza (

za (ra

dix

radix

))

dwdwóójkowy (binarny)jkowy (binarny)

ookktaltalnyny

dziesidziesi##tnytny

szesnastkowy, heksadecymalny, szesnastkowy, heksadecymalny,

‘‘hexhex’’

Podstawy u ywane w systemach cyfrowych

5

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

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 00001 00012 00103 00114 01005 01016 01107 01118 10009 1001A 1010B 1011C 1100D 1101E 1110F 1111

6

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Konwersja HEX – radix 10

7

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Konwersja binarna – HEX

8

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Kod BCD cyfra

dziesi#tna BCD

0 0000

1 0001

2 0010

3 0011

4 0100

5 0101

6 0110

7 0111

8 1000

9 1001

Kody od 1010 do 1111

nie s! u"ywane

BCD (binary coded decimal)

– ka da cyfra dziesi#tna jest

reprezentowana jako 4 bity

– kod opracowany dla

wczesnych kalkulatorów

– przyk!ad: 35910 =

= 0011 0101 1001bcd

– kod !atwy do zrozumienia

przez cz!owieka, niewygodny

dla komputerów

9

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Porz!dek bajtów w pami#ci

Problem

– Pami#% jest zwykle adresowana bajtami

– Jak zapisa% w pami#ci s!owo 32-bitowe ?

0x13579BDF0x13579BDF

ss owo 32owo 32--

bitowebitowe

w kodzie HEXw kodzie HEX

8 bit8 bitóóww

......

12481248

ad

ad

resy??

1249 resy

1249

12501250

12511251

......

10

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Kolejno$% bajtów w pami#ci

Rozwi"zanie

– podziel s!owo na bajty

– zapisz kolejne bajty w kolejnych komórkach

0x13579BCF0x13579BCF

ka"da cyfra HEX

reprezentuje tertad#, zatem

dwie cyfry tworz! bajt

8 bitów

0x13579BCF0x13579BCF0x13579BCF0x13579BCF0x13579BCF0x13579BCF0x13579BCF0x13579BCF0x13579BCF0x13579BCF0x13579BCF0x13579BCF0x13579BCF0x13579BCF0x13579BCF0x13579BCF......

1 bajt tutaj1248

ad

ad

resy

nast#pny bajt tutaj 1249 re

sy

kolejny bajt tutaj 1250

ostatni bajt tutaj 1251

......

11

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Kolejno$% bajtów cd.

W jakiej kolejno$ci zapisywa% bajty?

– Zaczynaj"c od najbardziej znacz"cego (“big” end)?

......

0x130x13 1248 adre

sy

1249

1250

1251

......

0x13579BDF0x13579BDF

kierunek kierunek

0x570x57

0x9B0x9B

0xDF0xDF

analizyanalizy

12

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Kolejno$% bajtów cd.

W jakiej kolejno$ci zapisywa% bajty?

– Zaczynaj"c od najmniej znacz"cego (“little” end)?

......

0xDF0xDF 1248

aadre

sy

dre

sy

1249

1250

1251

......

0x13579BDF0x13579BDF

kierunek kierunek

0x9B0x9B

0x570x57

0x130x13

analizyanalizy

13

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Kolejno$% bajtów cd.

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

Little Endian

– store least significant byte in lowest address

– store most significant byte in highest address

14

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Kolejno$% bajtów cd.

Wybór wersji kolejno$ci zapisu bajtów zale y od

konstruktorów procesora

– Big Endian

Motorola 680x0 (Amiga/Atari ST/Mac)

IBM/Motorola PowerPC (Macintosh)

MIPS (SGI Indy/Nintendo 64)

Motorola 6800

– Little Endian

Intel 80x86/Pentium (IBM PC)

Rockwell 6502 (Commodore 64)

MIPS (Sony Playstation/Digital DECstation)

– Niektóre procesory (np. MIPS) mo na konfigurowa% zarówno w

trybie Big Endian jak i Little Endian

15

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

ALU

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

– FPU mo e by% wykonane jako osobny uk!ad scalony (koprocesor)

– FPU mo e by% wbudowane do procesora

16

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

ALU – wej$cia i wyj$cia

• 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.)

17

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

32

32

32

operacja

wynikoperacji

a

b

ALU

wska&niki

18

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wieloznaczno$% informacji

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

To zale%y od kontekstu

19

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

Liczby ca kowite bez znaku

u%ywane s" tylko cyfry 0 i 1

!

"#

$

##

$

%$

1

0

0121

2

1,0...

n

i

i

i

inn

aA

aaaaaA

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>

Przyk!ady:

00000000 = 0

00000001 = 1

00101001 = 41

10000000 = 128

11111111 = 255

20

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

Kod znak-modu (ZM)

Najbardziej znacz"cy bit

oznacza znak

0 oznacza liczb dodatni"

1 oznacza liczb ujemn"

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

&&

'

&&

(

)

$#

$

$

"

"

#

$

#

#

$

#

2

0

1

2

0

1

12

02

n

i

ni

i

n

i

ni

i

agdya

agdya

A

21

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:

Przyk!ady:

+3 = 00000011

+2 = 00000010

+1 = 00000001

+0 = 00000000

-1 = 11111111

-2 = 11111110

-3 = 11111101"#

$

#

#*#$

2

0

1

122

n

i

i

i

n

n aaA

22

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

Konwersja NKB – U2

liczba

binarna

liczba

U2

dodatnia

ujemna

uzupe nienie0 1 1 0

+1

23

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

Zalety kodu U2

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) 11111100

dodanie 1 11111101

#3 = 11111101

24

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

Kod U2 – ilustracja geometryczna

25

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wada kodu U2

Zakres reprezentowanych liczb jest niesymetryczny

najmniejsza liczba: #2n#1 (minint)

najwi ksza liczba: 2n#1#1 (maxint)

dla n=8

najmniejsza liczba: #128

najwi ksza liczba: +127

dla n=16

najmniejsza liczba: #32 768

najwi ksza liczba: +32 767

26

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

Negacja w U2 – przypadki specjalne

0 = 00000000

negacja bitowa 11111111

dodaj 1 do LSB +1

wynik 1 00000000

przepe!nienie jest ignorowane

wi c 0 = 0 +

128 = 10000000

negacja bitowa 01111111

dodaj 1 do LSB +1

wynik 10000000

wi c ( 128) = 128 X

Wniosek:

nale%y sprawdza& bit znaku po negacji

(powinien si zmieni&)

27

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

Konwersja d ugo"ci s owa w U2

Liczby dodatnie uzupe!nia si wiod"cymi zerami

+18 = 00010010

+18 = 00000000 00010010

Liczby ujemne uzupe!nia si wiod"cymi jedynkami

18 = 10010010

18 = 11111111 10010010

Ogólnie bior"c, powiela si bit MSB (bit znaku)

28

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

Dodawanie i odejmowanie w U2

Obydwie operacje wykonuje si u%ywaj"c zwyk!ego

dodawania liczb dwójkowych

Nale%y sprawdza& bit znaku, aby wykry& nadmiar

(overflow)

Odejmowanie wykonuje si przez negowanie odjemnej i

dodawanie:

a b = a + ( b)

Do realizacji dodawania i odejmowania potrzebny jest

zatem tylko uk!ad negacji bitowej i sumator

29

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

Uk ad dodawania i odejmowania U2

30

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

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:

– 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

31

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przyk ad mno#enia (liczby bez znaku)

1011 mno%na (11 w kodzie dziesi tnym)

x 1101 mno%nik (13 w kodzie dziesi tnym)

1011 iloczyny cz"stkowe

0000 Uwaga: je(li bit mno%nika jest równy 1,

1011 iloczyn cz"stkowy jest równy mno%nej,

1011 w przeciwnym przypadku jest równy 0

10001111 wynik mno%enia (143 w kodzie dziesi tnym)

Uwaga #1: wynik ma podwójn" d!ugo(&; potrzebujemy s!owa

o podwójnej precyzji

Uwaga #2: 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"32

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

Uk ad mno#enia liczb bez znaku

33

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przyk ad mno#enia liczb bez znaku

wynik mno%enia

34

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

Mno#enie liczb bez znaku cd.

35

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

Mno#enie liczb ze znakiem

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

Rozwi"zanie 2

– algorytm Booth’sa

36

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

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

Przesuni cie arytmetyczne w

prawo – przesuni cie z

powieleniem bitu znaku

37

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przyk ad dzia ania metody Booth’sa

iloczyn: 3 x 7 = 21 testowane bity: 10 A:=A-M

01 A:=A+M

38

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

Algorytm Booth’sa (znak dowolny)

39

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

Dzielenie 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)

001111

00001101

100100111011

1011

0011101011

1011

100

Dzielnik

(Divisor)Dzielna

(Dividend)

Reszty

cz"stkowe

(Partial

Remainders) Reszta

(Remainder)

40

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

Liczby rzeczywiste

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?– jak poda& informacj o miejscu po!o%enia kropki?

41

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

Liczby zmiennoprzecinkowe (FP)b

it z

na

ku

przesuni$ty

wyk adnik

(exponent)mantysa (significand or mantissa)

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

42

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

FP – mantysa

Mantysa jest zapisana w kodzie U2

Wyk!adnik jest zapisany z przesuni ciem (excess or

biased notation)

– 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

43

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

FP – normalizacja

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

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

44

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

FP – przyk ad

1,1010001 x 210100 = 0 10010011 10100010000000000000000

- 1,1010001 x 210100 = 1 10010011 10100010000000000000000

1,1010001 x 2-10100 = 0 01101011 10100010000000000000000

- 1,1010001 x 2-10100 = 1 01101011 10100010000000000000000

pozycje mantysy

uzupe niane s% zerami

45

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

Zakres reprezentacji liczb FP

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

46

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

Zakresy liczb FP i U2 (format 32-bitowy)

47

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

Standard IEEE 754

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

48

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

ANSI/IEEE Standard Floating-Point Format (IEEE 754)

Revision (IEEE 754R) is being considered by a committee

Short (32-bit) format

Long (64-bit) format

Sign Exponent Significand

8 bits, bias = 127, –126 to 127

11 bits, bias = 1023, –1022 to 1023

52 bits for fractional part (plus hidden 1 in integer part)

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)

The two ANSI/IEEE standard floating-point formats.

49

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

Standard IEEE 754

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)

50

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

Some features of ANSI/IEEE standard floating-point formats

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) e + bias = 0, f = 0 e + bias = 0, f = 0

Denormal e + bias = 0, f 0represents ±0.f - 2–126

e + bias = 0, f 0represents ±0.f - 2–1022

Infinity (.!) e + bias = 255, f = 0 e + bias = 2047, f = 0

Not-a-number (NaN) e + bias = 255, f 0 e + bias = 2047, f 0

Ordinary number e + bias % [1, 254]e % [–126, 127]represents 1.f - 2e

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

51

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

Arytmetyka FP +/-

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 dodawania i odejmowania

– Sprawdzenie zer

– Wyrównanie mantys (i korekcja wyk!adników)

– Dodawanie lub odj cie mantys

– Normalizowanie wyniku

52

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

Arytmetyka FP x / 0

Etapy mno%enia i dzielenia

– 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

53

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

Mno#enie FP

54

Wy%sza Szko!a Informatyki Stosowanej i Zarz"dzania

Dzielenie FP

55

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

1

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Organizacja i Architektura Komputerów

Elementy i bloki cyfrowe

2

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Bloki kombinacyjne

Przyk!ady: elementy 32-bitowego procesora

32

32

A

B32

Suma

Carry

32

32

A

B32

Wynik

OP

32A

B32

Y32

Select

Sum

.

MU

X

ALU

CarryIn

multipleksersumator

ALU

3

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Bramki logiczne

Dowolny blok kombinacyjny mo na zbudowa# z bramek

Symbol prostok"tny

ANSI/IEEESymbol 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

4

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Dekoder binarny

n wej$#, 2n wyj$#

tylko jedno wyj$cie jest w stanie ‘1’ dla danej kombinacji stanów na wej$ciu (funkcja ‘1 z n’)

dekoder

binarny

n

wej !2n wyj !

5

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Dekoder binarny – implementacja

Prosty dekoder 2-bitowy:

&

&

&

&

X1

X0

Y0

Y1

Y2

Y3

Enable (zezwolenie)6

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

2 + 2 = 3 ?

dekoder

2-bitowy

Y0Y1Y2Y3

dekoder

2-bitowy

Y4Y5Y6Y7

NOT

X0

X1

X2

Dwa dekodery 2-bitowe tworz" dekoder 3-bitowy

7

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Koder kodu ‘1 z n” na kod NKB

Y0

Y1

Y2

X1

X2X3

X4...

X7

X0 NC

suma logiczna

8

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Dzia!a jak prze!"cznik; nazywanymultiplekserem lub w skrócie MUX

Multiplekser

multiplekser

(MUX)

a

b

c

d

y

s1 s2

Tablica prawdy

s2 s1 y_______

0 0 a

0 1 b

1 0 c

1 1 ds

yab

symbol

alternatywny

(dla dwubitowego MUX)

9

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Multiplekser – implementacjas1 s2

dekoder

&

&

&

&

a

y

b

c

d

10

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Multiplekser grupowy

MUX

A

B

C

D

S

Y

MUX

a0b0c0d0

s0 s1

y0

MUX

a3b3c3d3

y3

S

MUX

A

B

C

D

Y

4

4

4

4

2

4

11

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;

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;

• VHDL – Very (High

Speed Integrated

Circuit) Hardware

Description Language

• Opracowany w latach

80-tych przez

Departament Obrony

USA

• Norma IEEE Standard

1076 (1987, 1993,

2001)

12

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Pó#sumator – HA (half adder)

ba

babababa

!"

#!#"!#!"

Carry

)()()()(Sum

a b Sum Carry

0 0 0 0

0 1 1 0

1 0 1 0

1 1 0 1

HAa

b

Sum

cout

&

&

a

bcout

Sum

13

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Sumator: HA + HA = A (adder)

sumator

a b cin Sum cout

0 0 0 0 0

0 0 1 1 0

0 1 0 1 0

0 1 1 0 1

1 0 0 1 0

1 0 1 0 1

1 1 0 0 1

1 1 1 1 1

a

b

cin

Sum

cout

pó#-

sumator

pó#-

sumator

a

b

cinSum

cout

14

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Sumator wielobitowy, szeregowy

a7 b7

sum7

$

a7 b6

sum6

c7

$

a1 b1

sum1

$

a0 b0

sum0

. . . .cout c2 c1 c0c6

$. . . .

• Szeregowa propagacja przeniesie% (ripple-carry)

• Wada: d!ugi czas ustalania wyniku; sygna! przeniesienia

propaguje przez wszystkie stopnie sumatora

15

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Sumator równoleg#y (4-bitowy)

Okre$lamy funkcj& gi generuj"c" przeniesienie i funkcj& piokre$laj"c" propagacj& przeniesienia

iii

iii

bap

bag

%"

"

Kolejne przeniesienia mo na teraz zapisa# w postaci:

3334

2223

1112

1

####

####

####

#

#"

#"

#"

#"

iiii

iiii

iiii

iiii

cpgc

cpgc

cpgc

cpgc

16

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Sumator równoleg#y cd.

a nast&pnie, po dokonaniu podstawie%, w postaci:

iiiiiiiiiiiiiiii

iiiiiiiiiii

iiiiiii

iiii

cppppgpppgppgpgc

cpppgppgpgc

cppgpgc

cpgc

1231231232334

12121223

1112

1

#############

########

####

#

####"

###"

##"

#"

wprowadzaj"c oznaczenia:

iiiiii

iiiiiiiiiiii

ppppp

gpppgppgpgg

123)3,(

123123233)3,(

####

##########

"

###"

otrzymujemy ostatecznie:

iiiiii cpgc)3,()3,(4 ###

#"

17

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

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:

CLA

33 ## ii pg22 ## ii pg

11 ## ii pg ii pg

11 bramek AND + 5 bramek OR

1#ic

ic4#ic

3#ic 2#ic)3,( #iip)3,( #iig

18

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Sumator równoleg#y cd.

Budujemy z bramek zmodyfikowany sumator 1-bitowy:

$

ia ib

ic

isum

ipig

&

=1

=1

ic

ibia

isumipig

=

=1 bramka XOR

19

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Sumator równoleg#y cd.

4-bitowy sumator z równoleg!" generacj" przeniesie%

$

ia ib

ic

isum

ipig

$

1#ia 1#ib

1#ic

1#isum

1#ip1#ig

$

2#ia 2#ib

2#ic

2#isum

2#ip2#ig

$

3#ia 3#ib

3#ic

3#isum

3#ip3#ig

CLA 4#ic

)3,( #iig )3,( #iip

20

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Sumator równoleg#y doko$czenie

Ustalanie wyniku oraz propagacja przeniesie% w metodzie CLA s"

znacznie szybsze ni w metodzie ripple-carry:

propagacja ripple CLA

c1 do ci+1 4.8 4.8 czas propagacji w ns

c1 do ci+2 9.6 5.6

c1 do ci+3 14.4 6.4

c1 do ci+4 19.2 4.8

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

21

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Budujemy ALU

Za!o enia projektowe

– 4-bitowe argumenty A i B

– 4-bitowy wynik operacji

– Operacje arytmetyczne

dekrementacja A

inkrementacja A

dodawanie A+B

odejmowanie A–B

– Operacje logiczne

negacja A (uzupe!nienie do 1)

iloczyn logiczny A and B

to samo$# A

suma logiczna A or B

– Wska'niki: przeniesienie i nadmiar

ALU

Sterowanie Wska%niki

A B

f(A,B)

4

4 4

22

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Krok 1A B

Sumator z funkcj" odejmowania

$S

S Funkcja Opis

0 A+B Dodawanie

1 A+B’+1 Odejmowanie

c4

F

$

=1

$

=1

$

=1

$

=1

a0a3 a2 a1b3 b2 b1 b0

S

c4

f3 f2 f1 f0

23

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Krok 2

Wniosek z kroku 1: sumator z ekstenderem mo e realizowa# wi&cej funkcji ni samo dodawanie

Ogólna koncepcja ALU:

a3 a2 a1 a0b3 b2 b1 b0

$ $ $ $

LE AE LE AE LE AE LE AE

x0x1x2x3 y0y1y2y3

c4 c0

f3 f2 f1 f0

LE – logic extender, AE – arithmetic extender

24

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Krok 3 – projekt AE

M S1 S0 Funkcja F X Y c0

1 0 0 dekrementacja A–1 A 1...11 0

1 0 1 dodawanie A+B A B 0

1 1 0 odejmowanie A+B’+1 A B’ 1

1 1 1 inkrementacja A+1 A 0...00 1

M S1 S0 bi yi

1 0 0 0 1

1 0 0 1 1

1 0 1 0 0

1 0 1 1 1

1 1 0 0 1

1 1 0 1 0

1 1 1 0 0

1 1 1 1 0

Tablica prawdy

M wybór funkcji: 1 – arytmetyczne,

0 – logiczne

S1, S0 wybór operacji

yi stan na wyj$ciu i-tego bloku AE

25

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Krok 4 – realizacja AEb

i

AE

&

NOT

&

NOT

NOT00 01 11 10

0

1

S1S

0

bi

1

1 1

1

S0

S1

M

iii bSMbSMy 01#"

yi

26

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Krok 5 – projekt LE

M S1 S0 Funkcja F X Y c0

0 0 0 negacja bitowa A’ A’ 0 0

0 0 1 iloczyn logiczny A and B A and B 0 0

0 1 0 to samo$# A A 0 0

0 1 1 suma logiczna A or B A or B 0 0

M S1 S0 xi

0 0 0 a’i0 0 1 aibi

0 1 0 ai

0 1 1 ai+bi

1 x x ai

Tablica prawdy

M wybór funkcji: 1 – arytmetyczne,

0 – logiczne

S1, S0 wybór operacji

xi stan na wyj$ciu i-tego bloku LE

27

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Krok 6 – LE

iii

iii

MaaSbaS

bSSMaSSMx

###

##"

110

0101

LE

bi

xi

S0

S1

M

NOT

NOT

NOT

NOT

& & & & &

ai

(wiczenie domowe:

zbudowa# map& Karnaugh’a dla

tablicy prawdy LE z poprzedniego

slajdu i sprawdzi#, e:

28

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Krok 7 – projekt ko$cowy

a3 a2 a1 a0b3 b2 b1 b0

c4 $ $ $ $

LE AE LE AE LE AE LE AE

x0x1x2x3 y0y1y2y3

f0f1f2f3

c0&

=1

c3

S0

S1

M

nadmiar (overflow)

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Rozwi zanie alternatywne ALU

Result31

a31

b31

Result0

CarryIn

a0

b0

Result1

a1

b1

Result2

a2

b2

Operation

ALU0

CarryIn

CarryOut

ALU1

CarryIn

CarryOut

ALU2

CarryIn

CarryOut

ALU31

CarryIn

Komórka ALU zbudowana przy u yciu

multipleksera oraz schemat 32-bitowego

ALU

b

0

2

Result

Operation

a

1

CarryIn

CarryOut

Operacje: +, and, or

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Rozwi zanie alternatywne cd.

Komórka ALU wzbogacona o funkcj# odejmowania

0

2

Result

Operation

a

1

CarryIn

CarryOut

0

1

Binvert

b

31

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Elementy i bloki sekwencyjne

Przerzutnik – podstawowy element sekwencyjnych bloków funkcjonalnych komputerów

S

R

Q

QS R Q Q

0 1 1 0

1 0 0 1

1 1 stan

0 0 niedozwol.

S

RQ

Q

32

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przerzutniki cd.

Przerzutnik D – schemat logiczny i tablica stanów

D Clock Q

0 0

1 1

D

Clk

Q

Q

D

Clk

Q

Q

PR

CLR

Przerzutnik D

z asynchronicznymi

wej$ciami do ustawiania

(PR – preset) i zerowania

(CLR – clear)

33

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przerzutniki cd.

Przerzutnik J-K – schemat logiczny

J

K

Q

Q

PR

CLR

>Clk

J K Clock Q

0 0 bez zmian

0 1 0

1 0 1

1 1 stan przeciwny

4-bitowy licznik binarny z przeniesieniami szeregowymi

>

J

K

Q

X0

>

J

K

Q

X1

>

J

K

Q

X2

>

J

K

Q

X3

Vcc

34

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Rejestry• Najcz#$ciej zbudowany z

zatrzaskowych przerzutników typu D

(latch)

• Je$li WE = 1, stan Data In zostaje

wraz z opadaj"cym zboczem zegara

wpisany do rejestru i przeniesiony na

wyj$cie Data OutClk

Data In

Write Enable

n n

Data Out

• W technice komputerowej najcz#$ciej wykorzystuje si# rejestry przesu-

waj"ce, które oprócz zapami#tywania n-bitowego s!owa mog" je przesuwa%

• Najprostsze rejestry przesuwaj"ce przesuwaj" swoj" zawarto$% tylko w

jednym kierunku o 1 pozycj# (1 bit)

• Bardziej z!o one rejestry przesuwaj" dane w obu kierunkach (SL – shift left,

SR – shift right)

• Na wyj$ciu ALU znajduje si# zwykle szybki rejestr przesuwaj"cy (barrel

shifter)

35

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Plik (bank) rejestrów

Clk

busW

WE

3232

busA

32

busB

5 5 5

RW RA RB

32 32-bit

Registers

Przyk!adowy plik rejestrów pokazany obok sk!ada si# z 32 rejestrów:

– dwie 32-bitowe szyny wyj$ciowe busAi 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

Rejestry s" wybierane przez:

– 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

Przyk!ad pliku

rejestrów o organizacji

32 x 32 bity

36

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Pami!"

Szyny

– jedna szyna wej$ciowa: Data In

– jedna szyna wyj$ciowa: Data

Out

S!owo n-bitowe zapisane w

pami#ci jest wybierane przez:

– adres o d!ugo$ci zale nej od

pojemno$ci pami#ci

– sygna! WE = 1

Sygna! zegara Clock (CLK)

– sygna! CLK ma znaczenie tylko

przy zapisie

– przy odczycie uk!ad zachowuje

si# jak kombinacyjny

Clk

DataIn

WE

n n

DataOut

Adres

Schemat logiczny bloku

pami#ci n-bitowej

(wyidealizowany)

37

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

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.

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

enableout

enablein

Uk!ad Szyna

38

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Multiplikator

39

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przyk#ad mno$enia

1 1 0 1

1 0 1 10 0 0 00

C Reg A

Stan

pocz"tkowy

1 1 0 1

3

Counter

0

1

1101 (13)

x1011 (11)

40

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Qo =1: dodaj mno$n

1 1 0 1

1 0 1 10

C Reg A

1 1 0 1

1 1 0 1

3

0

1

41

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przesu% wynik cz stkowy

1 1 0 1

1 1 0 10

C Reg A

0 1 1 0

wynik cz"stkowy

2

0

1

dekrementuj

licznik

42

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Qo =1: dodaj mno$n

1 1 0 1

1 1 0 11

C Reg A

0 0 1 1

2

0

1

wynik cz"stkowy

43

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przesu% wynik cz stkowy

1 1 0 1

1 1 1 00

C Reg A

1 0 0 1

Qo =0

1

0

0

wynik cz"stkowy

44

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Qo=0: przesu% (nie dodawaj)

1 1 0 1

0 1 1 10

C Reg A

0 1 0 0

po przesuni#ciu:

0

0

1

wynik cz"stkowy

45

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Qo=1: dodaj mno$n

1 1 0 1

1 1 1 11

C Reg A

0 0 0 1

0

1

1

wynik cz"stkowy

46

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przesu% (koniec, Z=1)

1 1 0 1

1 1 1 10

C Reg A

1 0 0 0

0

1

wynik ko&cowy

47

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

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

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Organizacja i Architektura Komputerów

Struktura i dzia!anie jednostki centralnej

2

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Budowa mikrokomputera

3

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

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

4

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Struktura CPU

5

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Standardowa architektura CPU

6

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Rejestr wska ników

Przyk!adowa struktura rejestru wska$ników: procesor 80C51 XA (Philips)

7

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Bit Z - przyk!ad

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

8

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Bit C - przyk!ad

Przyk!ad operacji dodawania z uwzgl#dnieniem bitu przeniesienia C

adc ax,71h

9

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Stos – operacja zapisu

• typowa notacja w j#zyku

asemblera:

push x

• w podanym przyk!adzie stos

rozbudowuje si# w stron#

wzrastaj"cych adresów pami#ci

(np. Intel x51)

• wiele innych procesorów

wykorzystuje stos rozbudowywany

w stron# malej"cych adresów, np.

Intel Pentium, Motorola 68HC16

10

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Stos – operacja odczytu

• typowa notacja w j#zyku

asemblera:

pop x

• w podanym przyk!adzie stos

rozbudowuje si# w stron#

wzrastaj"cych adresów pami#ci

11

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Funkcje i w!a"ciwo"ci stosu

Stos jest pami#ci" typu LIFO (last-in-first-out)

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

– 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

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)

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

12

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Stos – wywo!anie podprogramu

Ilustracja wykorzystania stosu do zapami#tania adresu powrotu

(zawarto%ci licznika rozkazów IP) przy wywo!aniu podprogramu

(asembler Pentium)

Program g!ówny:

...

...

call read_key

...

...

Podprogram:

read_key proc near

...

...

ret

read_key endp

zapisz IP

na stos

odczytaj IP

ze stosu

Uwaga: rejestr IP (instruction pointer)

bywa w wielu innych procesorach

nazywany PC (program counter)

13

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Rejestry

Niewielka pami#& robocza CPU do przechowywania tymczasowych wyników oblicze'

Liczba rejestrów i ich funkcje ró ni" si# dla ró nych procesorów

Rejestry mog" pe!ni& rozmaite funkcje:

– Rejestry ogólnego przeznaczenia (GP – general purpose)

– Rejestry danych (np. akumulator)

– Rejestry adresowe

– Rejestr wska$ników (stanu, warunków, flag)

Architektura oparta na rejestrach GP jest bardzie elastyczna przy programowaniu, ale procesor jest bardziej z!o ony a czas wykonania rozkazu d!u szy

Architektura oparta na specjalizowanych rejestrach upraszcza budow# procesora i przyspiesza wykonanie rozkazu, ale ogranicza programist#

14

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Rejestry cd.

Typowa liczba rejestrów GP w CPU: 8 – 32

– 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

Rozmiar rejestru

– 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:

– double int a

– long int a

15

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Rejestry cd.

Przyk!ad architektury pliku rejestrów: procesor Motorola 68HC12

16

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Rejestry cd.

Rejestr wska$ników w procesorze Motorola 68HC12

17

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Rejestry cd.

Przyk!ad architektury

rejestrów GP:

Philips 80C51 XA

18

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Rejestry cd. rejestry GP

rejestry indeksowe

rejestr bazowywska$nik stosu

rejestry segmentów

rejestr wska$ników

licznik rozkazów

Przyk!ad architektury pliku

rejestrów:

procesor Intel Pentium

19

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Cykl wykonania rozkazu

fetch – pobranie binarnego kodu rozkazu z pami#ci

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

20

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

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 ax,cx mov ax,[e42d]

10001011 kod operacji 10100001

11000001 00101101

11100100

argument lub adres little endian!

21

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Cykl wykonania rozkazu cd.

22

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Pobranie rozkazu

MEMR

23

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wykonanie rozkazu ARi Przyk!ad wykonania rozkazu przes!ania zawarto%ci rejestru Ri do

akumulatora

24

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wykonanie rozkazu cd. )1,0( RRMA

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

25

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wykonanie rozkazu cd.

)1,0( RRMA Przebiegi w trakcie pobrania i wykonania rozkazu:

26

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wykonanie rozkazu cd.

Analizowane poprzednio rozkazy w prostych procesorach 8-bitowych zajmuj" tylko 1 bajt zawieraj"cy kod operacji

– 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 nie trzeba dost#pu do pami#ci przy zapisie wyniku

– w przypadku rozkazu potrzebny jest jeden cykl dost#pu do pami#ci przy zapisie wyniku

ARi

)1,0( RRMA

27

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wykonanie rozkazu cd.

Przyk!ad rozkazu wielobajtowego:

add a,7bh ;dodaj do akumulatora liczb 7b

;zapisan! w kodzie hex

wykonanie

IR M(PC) ;pobierz kod operacji do IR

PC PC+1 ;inkrementuj licznik programu PC

Temp M(PC) ;za"aduj do Temp argument z pami ci

PC PC+1 ;inkrementuj PC

A ALU+ ;prze#lij wynik dodawania A+Temp do A

28

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wykonanie rozkazu cd.

Przyk!ad rozkazu wielobajtowego

add a,[1c47h] ;dodaj do A zawarto#$ komórki ;o adresie 1c47 w kodzie hex

wykonanie

IR M(PC) ;pobierz kod operacji do IR

PC PC+1 ;inkrementuj licznik programu PC

RAH M(PC) ;"aduj bardziej znacz!cy bajt adresu

PC PC+1 ;inkrementuj PC

RAL M(PC) ;"aduj mniej znacz!cy bajt adresu

PC PC+1 ;inkrementuj PC

Temp M(RA) ;"aduj dodajnik do rejestru Temp

A ALU+ ;prze#lij wynik dodawania do A

29

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Cykl rozkazowy – wnioski

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)

30

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Instrukcje i mikrooperacje

31

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Uk!ad sterowania

Zadaniem jednostki steruj"cej jest wygenerowanie sekwencji sygna!ów

steruj"cych, które spowoduj" wykonanie sekwencji mikrooperacji

realizuj"cej dany rozkaz

32

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Sterowanie w prostym CPU

33

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Mikrooperacje i sterowanie

Przyk!ad realizacji prostej operacji dla CPU z poprzedniego rysunku:

add ac,[adres]

cykl mikrooperacja sygna"y steruj!ce

t1 MAR PC C2

t2 MBR memory C5

PC PC+1

t3 IR MBR C4

t4 MAR IR(adres) C8

t5 MBR memory C5

t6 AC AC+MBR C6,C7,C9

34

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Uk!ad sterowania cd.

Zastosowanie dekodera

upraszcza budow# uk!adu

sterowania

35

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Warianty realizacji CU

Stosuje si# dwa sposoby realizacji jednostki steruj"cej:

• w postaci typowego uk!adu sekwencyjnego (hardwired CU)

• z wykorzystaniem mikroprogramowania (microprogrammed CU)

• 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: du a szybko%& dzia!ania, zoptymalizowana liczba

elementów logicznych

• Wada: trudna modyfikacja w razie konieczno%ci zmiany projektu

• Jednostki CU typu hardwired s" preferowane w architekturze

RISC36

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Mikroprogramowanie

Mikroprogramowana jednostka CU (M.V. Wilkes, 1951):

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

Praca CU polega na sekwencyjnym odczytywaniu kolejnych s!ów mikroprogramu

Zalety:

– 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)

37

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Mikroprogra-mowanie cd.

Schemat funkcjonalny

mikroprogramowanej

jednostki steruj"cej

38

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Kodowanie mikrorozkazów

kodowanie poziome

kodowanie pionowe

39

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przerwanie

Przerwanie

(Interrupt)

Program g!ówny

Program obs!ugi

przerwania

(Interrupt handler)

40

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Koncepcja systemu przerwa#

41

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przerwania –zysk czasu CPU

1,2,3 – program g!ówny

4 – inicjacja operacji I/O

5 – obs!uga przerwania

bez przerwa'

z przerwaniami

42

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przerwania zewn$trzne

Przerwania zewn$trzne (interrupts) spowodowane

zdarzeniem poza CPU, sygnalizowane sygna!em

doprowadzonym do odpowiedniego wej%cia procesora

– 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

43

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przerwania wewn$trzne - wyj%tki

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)

44

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Cykl rozkazu a przerwania

45

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przerwania – problemy projektowe

1. Jak zapobiec interferencji programu g!ównego i handlera

(obydwa dzia!aj" na tych samych zasobach CPU) ?

2. W jakim obszarze pami#ci nale y umie%ci& programy obs!ugi

przerwa' (handlery) ?

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 ?

46

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przerwania – handler (problem 1)

Przyk!ad realizacji wspó!pracy programu g!ównego z handlerem (Pentium)

(1)

EFLAGS stos

I,T flags = 0

CS stos

IP stos

IP:CS hand_1

(2)

IP stos

CS stos

EFLAGS stos

program g!ówny handler

instrukcja 1 hand_1 proc far

instrukcja 2 push ax

instrukcja 3 push bp

instrukcja 4 ...

... ...

... pop bp

pop ax

iret

hand_1 endp

(1)

(2)

• 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

47

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Adresy handlerów (problem 2)

• 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)

Przyk!ad: adresy handlerów przerwa' w MC68HC12

watchdog

NMINMI59 x NMI

48

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przerwania wielokrotne (problemy 3 i 4)

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

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

49

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przerwania wielokrotne - sekwencyjne

50

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przerwania wielokrotne - zagnie&d&one

51

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Cykl rozkazu

Diagram cyklu

rozkazowego z

uwzgl#dnieniem obs!ugi

wyj"tków i przerwa'

52

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Identyfikacja ród!a przerwa" (1)

Organizacja prostego

systemu identyfikacji

przerwa przez

programowe

przegl!danie (polling)

53

Wy"sza Szko#a Informatyki Stosowanej i Zarz!dzania

Identyfikacja ród!a przerwa" (2)

Organizacja systemu identyfikacji $ród#a przerwa z #a cuchowaniem

urz!dze I/O (daisy-chain)54

Wy"sza Szko#a Informatyki Stosowanej i Zarz!dzania

Identyfikacja ród!a przerwa" (3)

Prosty uk#ad realizuj!cy przerwania wektoryzowane

55

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– koncepcja systemu przerwa , przerwania i wyj!tki

– handlery i ich adresy, przerwania wektoryzowane

– przerwania wielokrotne

– identyfikacja $ród#a przerwania

1

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Organizacja i Architektura Komputerów

Pami#$ cache

2

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wydajno !: CPU i pami"!

Memory density and capacity have grown along with the CPU

power and complexity, but memory speed has not kept pace.

1990 1980 2000 2010

1

10

10

Re

lati

ve p

erf

orm

ance

Calendar year

Processor

Memory

3

6

3

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

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

4

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Pami"! cache – koncepcja

CPUCache

(fast)

memory

Main

(slow)

memory

Reg

file

Cache is transparent to user;

transfers occur automaticallyLine

Word

5

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Hierarchiczny system pami"ci

Tertiary Secondary

Main

Cache 2

Cache 1

Reg’s $Millions $100s Ks

$10s Ks

$1000s

$10s

$1s

Cost per GB Access latency Capacity

TBs

10s GB

100s MB

MBs

10s KB

100s B

min+

10s ms

100s ns

10s ns

a few ns

ns

Speed

gap

Names and key characteristics of levels in a memory hierarchy.6

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Po#$czenie CPU z cache

Level-2 cache

Main memory

CPU CPU registers

Level-1 cache

Level-2 cache

Main memory

CPU CPU registers

Level-1 cache

(a) Level 2 between level 1 and main (b) Level 2 connected to “backside” bus

Cleaner and

easier to analyze

Cache memories act as intermediaries between the superfast

processor and the much slower main memory.

7

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Dzia#anie pami"ci cache

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

8

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Zasady lokalno ci

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

9

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Terminologia

cache hit (trafienie): sytuacja, gdy "dana informacja znajduje si# w pami#ci cachewy szego poziomu

cache miss (chybienie, brak trafienia): sytuacja, gdy "danej informacji nie ma w pami#ci cachewy 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

10

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Terminologia cd.

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:

– czasu potrzebnego do ustalenia, czy "dana informacja jest w pami#ci cache

– czasu potrzebnego do przes!ania informacji z pami#ci cache do procesora

11

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Terminologia cd.

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

12

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

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?

13

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Odwzorowanie bezpo rednie

direct-mapped cache

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

14

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Funkcja odwzorowuj$ca

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

15

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Odwzorowanie bezpo rednie

00001 00101 01001 01101 10001 10101 11001 11101

00

0

Cache

Memory

001

01

0

01

1

100

101

110

11

1

16

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Co znajduje si" w linijce 000?

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 cachepozwala okre%li$, która linijka z pami#ci g!ównej jest aktualnie zapisana w danej linijce cache

17

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Znaczniki – ilustracja

Pami"! g#ówna

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

ZnacznikiDane

18

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Inicjalizacja cache

Pocz"tkowo pami#$ cache jest pusta

– 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?

19

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Bit wa%no ci (valid bit)

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

20

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Rewizyta w cache

Memory Valid

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

TagsData

21

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Prosta symulacja cache

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

22

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Za#o%enie: sekwencja odwo#a& CPU do pami"ci

Adres Adres binarny Linijka hit / miss

3 0011 11 (3)

8 1000 00 (0) miss

2 0010 10 (2) miss

4 0100 00 (0) miss

3 0011 11 (3) hit

00 (0)

miss

8 1000 miss

23

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Address Binary Address Slot hit or miss

3 0011 11 (3)

8 1000 00 (0) miss

2 0010 10 (2) miss

4 0100 00 (0) miss

3 0011 11 (3) hit

00 (0)

miss

8 1000 miss

Slot Tag DataV

00

01

10

1124

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Address Binary Address Slot hit or miss

3 0011 11 (3)

8 1000 00 (0) miss

2 0010 10 (2) miss

4 0100 00 (0) miss

3 0011 11 (3) hit

00 (0)

miss

8 1000 miss

Slot Tag DataVInicjalizacja

bitów

wa no%ci00

01

10

11

0

0

0

0

25

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Address Binary Address Slot hit or miss

3 0011 11 (3)

8 1000 00 (0) miss

2 0010 10 (2) miss

4 0100 00 (0) miss

3 0011 11 (3) hit

00 (0)

miss

8 1000 miss

Slot Tag DataVFirst Access

00

01

10

11

0

0

0

1 00 Mem[3]26

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Address Binary Address Slot hit or miss

3 0011 11 (3)

8 1000 00 (0) miss

2 0010 10 (2) miss

4 0100 00 (0) miss

3 0011 11 (3) hit

00 (0)

miss

8 1000 miss

Slot Tag DataV2nd Access

00

01

10

11

1

0

0

1 00 Mem[3]

10 Mem[8]

27

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Address Binary Address Slot hit or miss

3 0011 11 (3)

8 1000 00 (0) miss

2 0010 10 (2) miss

4 0100 00 (0) miss

3 0011 11 (3) hit

00 (0)

miss

8 1000 miss

Slot Tag DataV3rd Access

00

01

10

11

1

0

0

1 00 Mem[3]

10 Mem[8]

28

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Address Binary Address Slot hit or miss

3 0011 11 (3)

8 1000 00 (0) miss

2 0010 10 (2) miss

4 0100 00 (0) miss

3 0011 11 (3) hit

00 (0)

miss

8 1000 miss

Slot Tag DataV4th Access

00

01

10

11

1

0

1

1 00 Mem[3]

10 Mem[8]

00 Mem[2]

29

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Address Binary Address Slot hit or miss

3 0011 11 (3)

8 1000 00 (0) miss

2 0010 10 (2) miss

4 0100 00 (0) miss

3 0011 11 (3) hit

00 (0)

miss

8 1000 miss

TagV DataSlot

00

01

10

11

1

0

1

1 00 Mem[3]

10 Mem[8]

00 Mem[2]

01 Mem[4]

5th Access

30

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Address Binary Address Slot hit or miss

3 0011 11 (3)

8 1000 00 (0) miss

2 0010 10 (2) miss

4 0100 00 (0) miss

3 0011 11 (3) hit

00 (0)

miss

8 1000 miss

Slot Tag DataV6th Access

01 Mem[4]00

01

10

11

1

0

1

1 00 Mem[3]

00 Mem[2]

10 Mem[8]

31

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Problem

Za!o enia projektowe:

– 32-bitowe adresy (232 bajtów w pami#ci g!ównej, 230 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).

32

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

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

33

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Problem z zapisem

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

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.

– Zaleta: mniejszy przep!yw danych do pami#ci

– Wada: problemy ze spójno%ci" danych w pami#ci

34

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Zapis jednoczesny (write through)

ProcesorCache

Write Buffer

DRAM

W metodzie write through procesor zapisuje dane

jednocze%nie do cache i do pami#ci g!ównej

– 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)

– typowo zawiera 4 pozycje

– metoda dzia!a dobrze, je%li czesto%$ operacji zapisu jest

znacznie mniejsza od 1 / DRAM write cycle

35

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Projekt cache - przyk#ad

Za!o enia projektowe:

– 4 s!owa w linijce

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)

– Cache 64KB

16 Bajtów w linijce

4K linijek

36

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Projekt cache - rozwi$zanieAddress (showing bit positions)

16 12 Byte

offset

V Tag Data

Hit Data

16 32

4K

entries

16 bits 128 bits

Mux

32 32 32

2

32

Block offsetIndex

Tag

31 16 15 4 32 1 0

37

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wielko ! linijki a wydajno !

Przyk!ad: DecStation 3100 cache z linijk"o rozmiarze 1 lub 4 s!ów

Rozmiar Miss Rate

Program

gcc 1 6.1% 2.1% 5.4%

spice 1 1.2% 1.3% 1.2%

gcc

spice

4 2.0% 1.7% 1.9%

linijki Instrukcje Dane Instr. + Dane

4 0.3% 0.6% 0.4%

38

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Czy du%a linijka jest lepsza?

Zwi#kszanie rozmiaru linijki (przy ustalonym rozmiarze

pami#ci cache) oznacza, e liczba linijek

przechowywanych w pami#ci jest mniejsza

– konkurencja o miejsce w pami#ci cache jest wi#ksza

– parametr miss rate wzrasta

Prosz# rozwa y$ skrajny przypadek, gdy ca!a pami#$

cache tworzy jedn" du " linijk#!

39

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Rozmiar linijki a miss rate

Rozmiar cache (bajty)

Miss

Rate

0%

5%

10%

15%

20%

25%

16

32

64

12

8

25

6

1K

4K

16K

64K

256K

Rozmiar linijki (bajty)

40

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

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

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)

Przyk!ad: hipotetyczne parametry dost#pu do pami#ci g!ównej:

– 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:

1 + 4x15 + 4x1 = 65 cykli.

41

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wydajno ! cache

)redni czas dost#pu do pami#ci

AMAT – average memory access time

AMAT = Hit time + Miss rate x Miss penalty

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. zmniejszenie hit time

42

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wydajno ! cache

Wydajno%$ cache zale y g!ównie od dwóch czynników:

– miss rate

Zale y od organizacji procesora (hardware) i od przetwarzanego programu (miss rate mo e si# zmienia$).

– 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)

Dlatego parametr speedup wzro%nie mniej ni dwukrotnie

43

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wydajno ! cache - przyk#ad

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:

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];

}

a[i], a[i+64] i a[i+128] u ywaj" tej samej linijki

Pami#$ cache jest w powy szym przyk!adzie bezu yteczna

44

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Jak zmniejszy! miss rate?

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

– Trzeba pozwoli$ linijkom z pami#ci g!ównej na

rezydowanie w dowolnej linijce pami#ci cache

45

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

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

46

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Odwzorowanie skojarzeniowe

Bit

wa%no ciPami"!

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

ZnacznikiDane

47

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Rozwi$zanie kompromisowe

Odwzorowanie skojarzeniowe jest bardziej elastyczne, dlatego parametr miss rate ma mniejsz" warto%$

Odwzorowanie bezpo%rednie jest prostsze sprz#towo, czyli ta&sze w implementacji

– Ponadto lokalizacja danych w pami#ci cache jest szybsza (parametr hit time ma mniejsz" warto%$)

Szukamy kompromisu mi#dzy miss rate a hittime.

Rozwi"zanie po%rednie: odwzorowanie sekcyjno-skojarzeniowe (set associative)

48

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Set Associative Mapping

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 sekcyjno-skojarzeniowe) 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

49

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Porównanie odwzorowa&Przyk!ad: cache sk!ada si# z 8 linijek, rozpatrujemy lokalizacj#

linijki z pami#ci g!ównej o adresie 12

Linijka 12 mo e si#

znale'$ w jednej z dwóch

linijek zbioru 0

Linijka 12 mo e si# znale'$

w dowolnej linijce cacheLinijka 12 mo e si#

znale'$ tylko w linijce 4

1

2Tag

Data

Block # 0 1 2 3 4 5 6 7

Search

Direct mapped

1

2Tag

Data

Set # 0 1 2 3

Search

Set associative

1

2Tag

Data

Search

Fully associative

50

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wydajno ! a n-dro%no ! cache

Performance improvement of caches with increased associativity.

4-way Direct 16-way 64-way

0

0.1

0.3

Mis

s r

ate

Associativity

0.2

2-way 8-way 32-way

51

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Odwzorowanie n-dro%ne

Odwzorowanie bezpo%rednie jest szczególnym

przypadkiem n-dro nego odwzorowania sekcyjno-

skojarzeniowego przy n = 1 (1 linijka w zbiorze)

Odwzorowanie skojarzeniowe jest szczególnym

przypadkiem n-dro nego odwzorowania sekcyjno-

skojarzeniowego 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.

52

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Algorytm wymiany linijek

W metodzie odwzorowania bezpo%redniego nie

mamy wyboru przy zast#powaniu linijek –

problem strategii wymiany linijek nie istnieje

W metodzie odwzorowania sekcyjno-

skojarzeniowego nale y okre%li$ strategi#

wyboru linijek, które maj" by$ usuni#te przy

wprowadzaniu do cache nowych linijek

53

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Algorytm 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

54

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Implementacja LRU

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

55

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wielopoziomowa pami"! cache

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)

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

56

Wy$sza Szko%a Informatyki Stosowanej i Zarz#dzania

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?

Size Instruction Cache Data Cache Unified Cache

1 KB 3.06% 24.61% 13.34%

2 KB 2.26% 20.57% 9.78%

4 KB 1.78% 15.94% 7.24%

8 KB 1.10% 10.19% 4.57%

16 KB 0.64% 6.47% 2.87%

32 KB 0.39% 4.82% 2.48%

64 KB 0.15% 3.77% 1.35%

128 KB 0.02% 2.88% 0.95%

57

Wy$sza Szko%a Informatyki Stosowanej i Zarz#dzania

Wspólna a rozdzielona cache

Które rozwi#zanie zapewnia krótszy czas dost"pu

AMAT?

– pami"! rozdzielona: 16 KB instrukcje + 16 KB dane

– pami"! wspólna: 32 KB instrukcje + dane

Za%o$enia:

– 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

58

Wy$sza Szko%a Informatyki Stosowanej i Zarz#dzania

Wspólna a rozdzielona cache

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)

Dla rozdzielonej pami"ci cache:

AMAT = 75% x (1 + 0.64%x 50) + 25% x (1 + 6.47% x 50) = 2.05

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

59

Wy$sza Szko%a Informatyki Stosowanej i Zarz#dzania

Przyk ad – cache w Pentium

Processor Chip

L1 Data

1 cycle latency

16KB

4-way assoc

Write-through

32B lines

L1 Instruction

16KB, 4-way

32B lines

Regs. L2 Unified

128KB--2 MB

4-way assoc

Write-back

32B lines

Main

Memory

Up to 4GB

60

Wy$sza Szko%a Informatyki Stosowanej i Zarz#dzania

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– odwzorowanie bezpo rednie (mapowanie bezpo rednie)

– odwzorowanie asocjacyjne (pe%na asocjacja)

– cz" ciowa asocjacja

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

1

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Organizacja i Architektura Komputerów

Przetwarzanie potokowe.

Architektury superskalarne

2

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

Przyk!ad: pralnia

Ania, Basia, Celina i Dorotamaj" po kompletnym !adunku odzie y, do prania, wysuszenia i wyprasowania

Pranie trwa 30 minut

Suszenie zajmuje 40 minut

Prasowanie trwa 20 minut

A B C D

3

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wersja 1 – pralnia sekwencyjna

A

B

C

D

30 40 20 30 40 20 30 40 20 30 40 20

6 7 8 9 10 11 pó noc

czas

Kole

jno !

za

da"

Sekwencyjne pranie 4 !adunków zajmuje 6 godzin4

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wersja 2 – pralnia potokowa

A

B

C

D

6 7 8 9 10 11 pó noc

czas

30 40 40 40 40 20

• Metoda „start ASAP”

• Pranie 4 !adunków

zajmuje 3,5 godziny

• Speedup 6/3,5 = 1,7

Ko

l ejn

o !

za

da"

5

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Pipelining – wnioski

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 levelparallelism)

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

Czas potrzebny na nape!nienie potoku i opró nienie go ogranicza wzrost wydajno$ci

6

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wnioski cd.

Architektura RISC zapewnia lepsze wykorzystanie

mo liwo$ci przetwarzania potokowego ni architektura

CISC. W architekturze RISC:

– instrukcje maj" tak" sam" d!ugo$%

– 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

W architekturze CISC instrukcje maj" ró n" d!ugo$%,

wyst#puje bogactwo sposobów adresowania danych w

pami#ci

7

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Cykl prefetch

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

8

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Prefetch cd.

Wprowadzenie cyklu prefetch poprawia wydajno$% (ale

nie podwaja):

– pobranie kodu operacji trwa zwykle krócej ni faza wykonania

mo e pobiera% wi#cej ni jeden rozkaz w fazie prefetch?

– ka dy rozkaz skoku powoduje utrat# korzy$ci z fazy prefetch

Wnioski s" niejednoznaczne:

– 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

9

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Punkt wyj!cia – brak potoku

Uk!adkombinacyjny

R

E

G

300ps 30ps

Clock

latency = 330ps

throughput = 3.12 GOPS

System

bez potoku

(przyk ad)

Op1 Op2 Op3??

Czas

– Ka da operacja musi by% zako&czona zanim zacznie si#wykonywanie nast#pnej operacji

– W podanym przyk!adzie czas wykonania operacji wynosi 330ps

10

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Potok 3-stopniowy

– 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

R

E

G

Clock

uk!adkomb.

R

E

G

uk!adkomb.

R

E

G

uk!adkomb.

100ps 20ps 100ps 20ps 100ps 20ps

latency = 360ps

throughput = 8.33 GOPS

Czas

Op1

Op2

Op3

??

Op4

11

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Diagramy czasowe

Bez potoku

– Kolejna operacja nie mo e si# zacz"% przed zako&czeniem poprzedniej

3-stopniowy potok

– Do 3 instrukcji wykonuje si# równolegle

Time

OP1

OP2

OP3

Time

A B C

A B C

A B C

OP1

OP2

OP3

A, B, C – fazy wykonania

instrukcji

12

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Ograniczenie – ró"nice opó#nie$

R

e

g

Clock

R

e

g

Comb.

logic

B

R

e

g

Comb.

logic

C

50 ps 20 ps 150 ps 20 ps 100 ps 20 ps

latency = 510 ps

throughput = 5.88 GOPS

Comb.

logic

A

Time

OP1

OP2

OP3

A B C

A B C

A B C

– 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

13

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

G %boki potok – problemy

latency = 420 ps, throughput = 14.29 GOPSClock

R

e

g

Comb.

logic

50 ps 20 ps

R

e

g

Comb.

logic

50 ps 20 ps

R

e

g

Comb.

logic

50 ps 20 ps

R

e

g

Comb.

logic

50 ps 20 ps

R

e

g

Comb.

logic

50 ps 20 ps

R

e

g

Comb.

logic

50 ps 20 ps

– 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&: 6.25%

3-stopnie: 16.67%

6-stopni: 28.57%

– Problem ma du e znaczenie, poniewa wspó!czesne procesory o du ej wydajno$ci maj" coraz g!#bsze potoki

14

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Cykl wykonania instrukcji

15

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

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)

16

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Potok 6-stopniowy

17

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Instrukcja skoku

Rozkaz 3 – rozga!#zienie warunkowe

do rozkazu 15

Zawarto$% potoku, która musi

by% usuni#ta

18

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Skoki a potok

Warianty przetwarzania potokowego w

przypadku instrukcji skoków (branch):– 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

19

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Skoki a potok cd.

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

20

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Adres Normal Delayed

100 LOAD A,X LOAD A,X

101 ADD A,1 ADD A,1

102 JUMP 105 JUMP 106

103 ADD B,A NOP

104 SUB B,C ADD B,A

105 STORE Z,A SUB B,C

106 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

Opó#nianie skoków - przyk ad

one delay slot

21

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Opó#nianie skoków cd.

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

Adres Normal Delayed Optimized

100 LOAD A,X LOAD A,X LOAD A,X

101 ADD A,1 ADD A,1 JUMP 105

102 JUMP 105 JUMP 106 ADD A,1

103 ADD B,A NOP ADD B,A

104 SUB B,C ADD B,A SUB B,C

105 STORE Z,A SUB B,C STORE Z,A

106 STORE Z,A22

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Efektywno!& opó#niania skoków

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 (deeppipeline) metoda opó'niania skoków jest ma!o skuteczna

23

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przewidywanie skoków

Metody statyczne

– Zak!adamy, e skok nie b#dzie nigdy wykonany

Metoda – branch never will be taken

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

Badania pokazuj", e mo na uzyska% nawet 75% sukcesów

24

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przewidywanie skoków

Metody dynamiczne

– 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:

Adres instrukcji Adres skoku (target) Stan

25

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Predykcja skoków – diagram BTB

Stan: 11

Stan: 01 Stan: 00

Stan: 10

Przyk!adowe

kodowanie

stanó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

26

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Rozmiar BTB

Im wi#kszy jest rozmiar BTB (czyli im wi#cej rekordów

mie$ci tablica), tym bardziej trafne jest przewidywanie

skoków

(rednia liczba

Rozmiar BTB trafnych prognoz [%]

16 40

32 50

64 65

128 72

256 78

512 80

1024 85

2048 87

27

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

G %boko!& potoku

Wyniki bada& pokazuj", e istnieje teoretyczna

optymalna warto$% g!#boko$ci potoku równa oko!o 8

stopni

– 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)

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)

28

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

G %boko!& potoku cd.

Liczba stopni przetwarzania danych typu integer w potokach

popularnych procesorów

CPU liczba stopni w potoku

P 5

MMX 6

P-Pro 12

P-II 12

P-III 10

P-4 20

M1-2 7

K5 7

K6 6

K7 11

P – Pentium

M – Cyrix

K – AMD

29

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Zjawisko hazardu

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

2. Hazard danych (data hazard) – kiedy wykonanie instrukcji zale y od

wyniku wcze$niejszej, nie zako&czonej jeszcze instrukcji znajduj"cej

si# w potoku

3. Hazard sterowania (control hazard) – przy przetwarzaniu instrukcji

skoków i innych instrukcji zmieniaj"cych stan licznika rozkazów (np.

wywo!ania podprogramów)

Hazard sterowania zosta! omówiony ju wcze$niej – teraz

zajmiemy si# hazardem zasobów i danych

30

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Zjawisko hazardu cd.

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”)

Przegrody wp!ywaj" oczywi$cie na zmniejszenie

wydajno$ci CPU

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"

31

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Hazard zasobów

Nazywany te hazardem strukturalnym lub konfliktem zasobów (resource conflict)

Powodem hazardu tego typu jest jednoczesne "danie dost#pu do tego samego zasobu (zwykle pami#ci) przez dwa ró ne stopnie potoku

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)

Rozwi"zanie polega na wprowadzeniu jednej (lub kilku przegród). W efekcie wzrasta CPI i spada wydajno$%procesora

32

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Hazard zasobów - przyk ad

czas (cykle zegara)

Mem

Load

Instr 1

Instr 2

Instr 3

Instr 4

ALUMem Reg Mem Reg

ALUMem Reg Mem Reg

ALUMem Reg Mem Reg

ALUReg Mem Reg

ALUMem Reg Mem Reg

!danie odczytu z pami"ci

Cykl IF instr 3

Kole

jne instr

ukcje

33

Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania

Hazard zasobów – przyk ad cd.

czas (cykle zegara)

Mem

Load

Instr 1

Instr 2

Instr 3

ALUMem Reg Mem Reg

ALUMem Reg Mem Reg

ALUMem Reg Mem Reg

ALUReg Mem Reg

Kole

jne instr

ukcje

stall

34

Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania

Hazard danych

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

Przyk$ad: add ax,bx

mov cx,ax

Instrukcja mov cx,ax ma pobra& zawarto%& akumulatora

ax, podczas gdy potok jeszcze nie okre%li$ tej zawarto%ci

w poprzedniej instrukcji dodawania

35

Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania

Hazard typu RAW

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

36

Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania

Hazard typu WAR

Hazard WAR (write after read) wyst"puje gdy pojawi si"#!danie zapisu danych przed zako'czeniem ich odczytu

Przyk$ad:

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

37

Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania

Hazard typu WAW

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

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

Problem

Czy mo#e powsta& hazard danych RAR (read after read) ?

Przyk$ad:

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

39

Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania

Zapobieganie hazardom danych

Najprostsz! metod! jest, jak poprzednio, zatrzymywanie

potoku (stalls)

– metoda ta obni#a wydajno%& CPU i jest stosowana w

ostateczno%ci

Szeregowanie statyczne (static scheduling)

– 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

40

Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania

Szeregowanie statyczne

Przyk$ad:

Kod oryginalny Kod po uszeregowaniu

add ax,15 add ax,15

mov cx,ax mov [mem],bx

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

41

Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania

Szeregowanie dynamiczne

Dynamic scheduling – wspólna nazwa technik polegaj!cych na usuwaniu problemów z hazardem danych w trakcie wykonywania programu, a nie w fazie kompilacji

– realizacja sprz"towa w CPU

– najwa#niejsze techniki:

wyprzedzanie argumentów (operand forwarding)

wyprzedzanie wyników operacji (result forwarding)

– w procesorach superskalarnych stosuje si" ponadto

notowanie (scorebording)

przemianowywanie rejestrów (register renaming)

42

Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania

Procesory superskalarne

Procesory, które wykonuj! równolegle wi"cej ni# jeden

rozkaz (paralelizm na poziomie rozkazu)

Podstawowe bloki funkcjonalne CPU s! zwielokrotnione:

– dwa potoki (lub wi"cej)

– kilka jednostek ALU (zwykle osobne ALU dla operacji integer i

FP)

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!

43

Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania

Procesor superskalarny - koncepcja

44

Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania

Superskalar – koncepcja cd.

45

Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania

Superskalar cd.

Porównanie koncepcji CPU:

1) z potokiem instrukcji

2) z superpotokiem

3) superskalarnej

Superpotok jest taktowany

podwójn! czesto%ci! zegara

Rozwi!zanie superskalarne

zapewnia najwi"ksz!

wydajno%&

46

Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania

Superskalar- problemy

Zagadnienie

wspó$zale#no%ci instrukcji

w procesorach

superskalarnych jest

jeszcze trudniejsze ni#

problem hazardów w

pojedynczym potoku

47

Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania

Superskalar – problemy cd.

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

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

48

Wy#sza Szko$a Informatyki Stosowanej i Zarz!dzania

Superskalar– przyk ad

Uproszczony schemat

blokowy procesora

superskalarnego

UltraSparc IIi (Sun)

49

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– metody zwi"kszania wydajno%ci

– przemianowywanie rejestrów

– okna rejestrów

– statyczne i dynamiczne szeregowanie rozkazów

1

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Organizacja i Architektura Komputerów

Architektury IA-32 i IA-64

2

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Architektura IA-32

Intel Architecture 32– 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

– 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

– Pentium III Xeon – ulepszona pami#$ cache

3

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Pentium CPU (1993)• dwa potoki U i V

• instrukcje s"

dobierane parami

4

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Mikroarchitektura P6

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

14-stopniowy potok instrukcji

– Potok sk!ada si# z 3 cz#%ci:

wydawanie instrukcji: in-order

wykonanie instrukcji: out-of-order (RISC core)

ko&czenie instrukcji (retire): in-order

5

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Mikroarchitektura P6 cd.

6

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Mikroarchitektura P6 cd.

7

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

P6 – Pentium III Xeon

8

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

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

– ulepszone technologie MMX i SSE

9

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Intel NetBurst

10

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Pentium 4 – trace cache

L2 CacheInstruct.Decoder

TraceCache

IA32Instrs.

uops

Operations

Trace Cache– zast#puje tradycyjn" pami#$ cache

– instrukcje s" przechowywane w zdekodowanej postaci (jako mikrooperacje)

– zmniejsza wymagania dotycz"ce szybko%ci pracy dekodera

11

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Ulepszenia w NetBurst wobec P6

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

12

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Pentium 4 – uk ady wykonawcze

13

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Hyper-Threading

14

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Rejestry P4

15

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Rejestry P4 cd.

16

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Rejestry P4 cd.

17

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Modele pami!ci

• Flat Model

p!aski model pami#ci – bez

podzia!u na segmenty

• Segmented Model

pami#$ podzielona na

segmenty

• Real-Address-Model

segmentacja typu x86

18

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Segmentacja pami!ci

Rejestry segmentów Segment kodu programu

Segment danych

Segment stosu

Dodatkowe segmenty

danych

19

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Segmentacja pami!ci cd.

20

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Segmentacja

21

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Segmentacja cd.

22

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Segmentacja cd.

23

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Segmentacja cd.

24

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Segmentacja cd.

25

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Segmentacja cd.

26

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Segmentacja cd.

27

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Protekcja

28

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Wska"niki P4

29

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Koncepcja IA-64

30

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Koncepcja IA-64

31

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Koncepcja IA-64 cd.

32

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Architektura IA-64

33

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Rejestry IA-64

34

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Format instrukcji IA-64

35

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Predykaty IA-64

36

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Predykaty IA-64

37

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Spekulacja IA-64

38

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Spekulacja IA-64

39

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Licznik p!tli IA-64

40

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Obroty rejestrów IA-64

41

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Pami!# IA-64 – proces

42

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Pami!# IA-64 – proces

43

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Pami!# IA-64 – system

44

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Pami!# IA-64 – regiony

45

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Architektura IA-64

Itanium

– opracowany w 2000 roku

– oko!o 10 mln tranzystorów

Itanium 2

– opracowany w 2002 roku

– cache L3 on chip

– 6 jednostek ALU

– linijka L1 – 64 bajty

46

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Podsumowanie

Mikroarchitektura P6

Architektura Pentium 4– NetBurst

– trace cache

– Hyper-Threading

Modele pami#ci

Segmentacja pami#ci

Protekcja

Architektura IA-64 (Itanium)– EPIC (wariant VLIW)

– predykaty

– spekulacja

– organizacja pami#ci (regiony)

1

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Organizacja i Architektura Komputerów

Architektura listy instrukcji – ISA

2

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Lista instrukcji

Zbiór polece# (instrukcji) zrozumia!ych dla CPU

– lista instrukcji powinna by$ funkcjonalnie pe!na, tzn.

umo liwia$ zapis dowolnego algorytmu

Instrukcje s" zapisywane w postaci binarnej

– 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

– np. add, mov

3

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Elementy instrukcji

1. Kod operacji (op code), okre'la czynno'$ wykonywan"

przez instrukcj&

2. Wskazanie na argument %ród!owy (source operand)

3. Wskazanie na argument docelowy (destination operand)

4. Wskazanie na kolejn" instrukcj& programu, która ma by$

wykonana jako nast&pna

Przyk!ad: mov ax,cx ;prze lij cx do ax

Mnemonik

(rodzaj operacji)Argument %ród!owyArgument

docelowy

Element 1) jest obligatoryjny, elementy 2) – 4) s" opcjonalne

4

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Reprezentacja instrukcji

Posta$ symboliczna (j&zyk asemblera)

mov ax,cx

Zapis funkcjonalny

ax cx

Posta$ binarna w pami&ci programu

10001011

11000001

w postaci binarnej kod operacji jest zapisywany jako

pierwszy, dalej nast&puj" argumenty

5

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Reprezentacja instrukcji cd.

Typowy format instrukcji z odniesieniami do dwóch

argumentów

Kod operacji Argument 1 Argument 2

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

6

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Liczba argumentów

Istotnym czynnikiem przy projektowaniu ISA jest liczba argumentów (lub odniesie# do argumentów) zawartych w instrukcji

– 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

– 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?

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

7

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Liczba argumentów cd.

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

– 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:

Y = (A - B) / (C + (D * E))

8

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

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

SUB R1, A, B ; Rejestr R1 ! A – B

MUL R2, D, E ; Rejestr R2 ! D * E

ADD R2, R2, C ; Rejestr R2 ! R2 + C

DIV R1, R1, R2 ; Rejestr R1 ! 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

9

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Procesor 2–adresowy

Jak zmniejszy$ liczb& adresów?– 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

– wynik jest umieszczany w miejscu, sk"d pobrano jeden z argumentów %ród!owych

– taka metoda oczywi'cie niszczy (zamazuje) pierwotn" warto'$argumentu

Najcz&'ciej przyjmuje si&, e wynik jest umieszczany w miejscu, sk"d pobrano pierwszy argument (np. Pentium)

– pierwszy argument mo e si& znajdowa$ w rejestrze, komórce pami&ci itp.

10

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przyk ad – procesor 2–adresowy

Przy za!o eniu, e argumenty znajduj" si& w rejestrach, podana sekwencja instrukcji oblicza warto'$ wyra enia:

Y = (A-B) / (C + (D * E))

SUB A, B ; Rejestr A ! A - BMUL D, E ; Rejestr D ! D * EADD D, C ; Rejestr D ! D + CDIV A, D ; Rejestr A ! A / D

Otrzymujemy ten sam wynik co wcze'niej, ale teraz zawarto'$ rejestrów A i D uleg!a zmianie

11

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przyk ad – procesor 2–adresowy cd.

Je'li chcemy zachowa$ oryginaln" zawarto'$

rejestrów, musimy skopiowa$ j" do innych

rejestrów:

MOV R1, A ; Kopiuj A do rejestru R1MOV R2, D ; Kopiuj D do rejestru R2SUB R1, B ; Rejestr R1 ! R1-BMUL R2, E ; Rejestr R2 ! R2*EADD R2, C ; Rejestr R2 ! R2+CDIV R1, R2 ; Rejestr R1 ! R1 / R2

Teraz wszystkie rejestry A-E zostaj" zachowane,

ale kosztem kilku dodatkowych instrukcji

12

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Procesor 1–adresowy

W instrukcji jawnie wskazany jest tylko jeden argument

Drugi argument znajduje si& w domy'lnym miejscu

– 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

– warto'$ drugiego argumentu zostaje zniszczona (zamazana przez wynik operacji)

13

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przyk ad – procesor 1–adresowy

Obliczamy warto'$ wyra enia: Y = (A-B) / (C + (D * E))

LDA D ; Load ACC with D

MUL E ; Acc ! Acc * E

ADD C ; Acc ! Acc + C

STO R1 ; Store Acc to R1

LDA A ; Acc ! A

SUB B ; Acc ! Acc-B

DIV R1 ; Acc ! Acc / R1

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

14

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Procesor 0–adresowy

W skrajnym przypadku mo na stosowa$ instrukcje nie zawieraj"ce adresów

Obliczenia s" wykonywane na stosie

– 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)

– 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

15

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przyk ad – procesor 0–adresowy

Obliczamy wyra enie: Y = (A-B) / (C + (D * E))

PUSH B ; B

PUSH A ; B, A

SUB ; (A-B)

PUSH E ; (A-B), E

PUSH D ; (A-B), E, D

MUL ; (A-B), (E*D)

PUSH C ; (A-B), (E*D), C

ADD ; (A-B), (E*D+C)

DIV ; (A-B) / (E*D+C)

16

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Liczba adresów – wnioski

Wi&cej adresów– 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– 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)

17

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Rodzaje argumentów

Adresy (addresses)

Liczby (numbers)

– Integer/floating point

Znaki (characters)

– ASCII

Dane logiczne (logical data)

– Bits or flags

18

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

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

19

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Interpretacja (kodowanie) danych

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

20

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

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

– specjalne operacje systemowe, np. sterowanie stanem

procesora, zarz"dzanie protekcj" itp.

Transfer of Control (np. JMP)

– skoki, wywo!anie podprogramów itp..

21

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Tryby adresowania

Sposoby wskazywania na argumenty instrukcji

Podstawowe tryby adresowania u ywane we

wspó!czesnych procesorach:

– 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

22

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Adresowanie rejestrowe

Argumenty operacji znajduj" si& w rejestrach procesora

Przyk!ad:mov al,bl ;prze lij bl do al

inc bx ;zwi!ksz bx o 1

dec al ;zmniejsz al o 1

sub dx,cx ;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

23

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Adresowanie rejestrowe cd.

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):mov cs,ds ;nie mo"na przesy#a$

;rejestrów segmentów

mov bl,bx ;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

Adresowanie natychmiastowe

Argument operacji znajduje si& w postaci jawnej w instrukcji, zaraz po kodzie operacji

Przyk!ady:mov bl,44 ;prze lij 44 (dziesi!tnie) do blmov ah,44h ;prze lij 44 (hex) do ahmov di,2ab4h ;prze lij 2ab4 (hex) do diadd ax,867 ;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

25

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Adresowanie bezpo!rednie

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:

segment:offset

Przyk!ad

1045h:a4c7h

oznacza komórk& o adresie a4c7h w segmencie 1045h

Ofset bywa nazywany równie przesuni&ciem (ang.

displacement, w skrócie disp)

26

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Adresowanie bezpo!rednie cd.

Zwykle w instrukcjach podaje si& tylko ofset, natomiast

wskazanie na segment znajduje si& w domy'lnym

rejestrze

– 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

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

27

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Adresowanie bezpo!rednie cd.

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

28

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Adresowanie bezpo!rednie cd.

W trybie segmentacji standardowej obliczanie adresu efektywnego na przebiega nast&puj"co:

– 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

29

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Adresowanie bezpo!rednie cd.

W trybie adresów rzeczywistych obliczanie adresu efektywnego na przebiega nast&puj"co:

– 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 16-bitowego ofsetu

Adres ds:offset jest zatem przekszta!cany na adres efektywny wed!ug zale no'ci:

EA = 16*ds + offset

Przyk!ad

– w trakcie wyk!adu

30

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Adresowanie bezpo!rednie cd.

Argument jest umieszczony w komórce pami&ci; adres tej komórki jest podany w instrukcji

Przyk!ady:mov al,DANA ;prze lij bajt z komórki

;pami!ci o adresie DS:DANA;do rejestru al.

mov ax,news ;prze lij ax do adresu DS:NEWS

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:

kod operacji0210

31

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Adresowanie bezpo!rednie cd.

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

– 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

Adresowanie po!rednie rejestrowe

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

33

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Adresowanie po!rednie rejestrowe

Przyk!ady:

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

mov [bp],dl

– bajt z dl jest kopiowany do segmentu stosu pod adres podany

w rejestrze bp

mov [di],[bx]

– przes!ania typu pami&$-pami&$ nie s" dozwolone (z wyj"tkiem

szczególnych instrukcji operuj"cych na !a#cuchach znaków –

stringach)

34

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

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

– Rejestr bazowy wskazuje adres pocz"tku tablicy

– Rejestr indeksowy wskazuje okre'lony element tablicy

Jako rejestr bazowy mo na wykorzysta$ rejestry bp lub bx (uwaga: bx wspó!pracuje z ds, natomiast bpwspó!pracuje z ss)

Jako rejestry indeksowe mo na wykorzysta$ rejestry dilub si

35

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Adresowanie rejestrowe wzgl"dne

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

36

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

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

37

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Adr. wzgl"dne bazowo-indeksowe

Adresowanie wzgl&dne bazowo-indeksowe jest kombinacj" dwóch trybów:

– bazowo-indeksowego

– rejestrowego wzgl&dnego

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

38

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Adresowanie stosu

Jest u ywane przy dost&pie do stosu

Przyk!ady

popf ;pobierz s!owo wska%ników (flagi) ze stosu

pushf ;wy'lij s!owo wska%ników na stos

push ax ;wy'lij ax na stos

pop bx ;odczytaj bx ze stosu

push ds ;wy'lij rejestr segmentu ds na stos

pop cs ;odczytaj rejestr segmentu ze stosu

push [bx] ;zapisz komórk& pami&ci o adresie podanym

;w bx na stos

39

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Adresowanie danych – uwaga

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)

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.

40

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Adresowanie w instrukcjach skoku

Adres w instrukcjach skoków mo e mie$ ró n" posta$:

– krótk" (short)

– blisk" (near)

– dalek" (far)

Adresy mog" by$ podane w ró ny sposób:

– Wprost w cz&'ci adresowej instrukcji – tryb bezpo'redni (direct)

– W rejestrze

– W komórce pami&ci adresowanej przez rejestr

41

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Skoki krótkie (short)

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 jmp short label1

....

label1 jmp label2

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

42

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Skoki bliskie (near)

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 near ptr etykieta_docelowa

Przyk!ad:

jmp near ptr dalej

....

....

dalej ...

43

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Skoki dalekie (far)

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

Ogólna posta$ skoku:

jmp far ptr etykieta_docelowa

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

44

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Skoki – przyk ady

jmp ax ; skocz w obr&bie tego samego segmentu

; do adresu podanego w ax

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

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

45

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Tryby adresowania – podsumowanie

Pentium

Adresy 32-bitowe

46

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Tryby adresowania – podsumowanie

Pentium

Adresowanie pami&ci

Adresy 16-bitowe

47

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Tryby adresowania – podsumowanie

Pentium – adresy 32-bitowe

48

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Tryby adresowania – podsumowanie

Pentium – ró nice adresowania 32- i 16-bitowego

49

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Tryby adresowania – podsumowanie

• Sk"d procesor Pentium wie czy adres jest 32- czy 16-bitowy?

• Wykorzystuje si& bit D w deskryptorze segmentu CS

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

• 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)

66H prefiks zmiany d!ugo'ci argumentu

67H prefiks zmiany d!ugo'ci adresu

• Stosuj"c prefiksy mo na miesza$ ze sob" tryby 32- i 16-bitowe

50

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Tryby adresowania – podsumowanie

Przyk!ad: niech domy'lnym trybem b&dzie tryb 16-bitowy

Przyk ad 1: zmiana rozmiaru argumentu

mov ax,123 ==> b8 007b

mov eax,123 ==> 66 | b8 0000007b

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

mov eax,[ebx*esi+2] ==> 66 | 67 | 8b0473

51

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

1

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Organizacja i Architektura Komputerów

J#zyk asemblera (Pentium)

2

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

3

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Asembler i j zyki wysokiego poziomu

Wi#kszo%$ instrukcji j#zyka C jest jednak równowa na

wi#kszej liczbie instrukcji w j#zyku asemblera

4

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Program w j zyku asemblera

Trzy rodzaje polece&

– 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

5

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Linia programu asemblera

Format linii programu w j#zyku asemblera:[label] mnemonic [operands] [;comment]

– Pola w nawiasach [ ] s" opcjonalne

– Etykieta s!u y do dwóch celów:

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

– Mnemonik okre%la rodzaj operacji, np. add, or

– Operandy (argumenty) oznaczaj" dane

wykorzystywane przez instrukcj#

W Pentium instrukcje mog" mie$ 0, 1, 2 lub 3 operandy

6

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Linia programu asemblera cd.

– Komentarze, zaczynaj" si# od znaku %rednika

Mog" by$ umieszczone w tej samej linii co instrukcja lub

tworzy$ osobn" lini#

Przyk!ad

repeat: inc result ;zwi ksz zmienn! result o 1

CR equ 0dh ;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

7

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Alokacja danych

Deklaracja zmiennych w j#zyku wysokiego poziomu, np. w j#zyku C:char response

int value

float total

double average_value

Okre%la– Wymagany rozmiar pami#ci (1 bajt, 2 bajty, ...)

– Nazw# (etykiet#) identyfikuj"c" zmienn" (response, value, ...)

– Typ zmiennej (int, char, ... )

Ta sama liczba binarna mo e by$ interpretowana w ró ny sposób, np. 1000 1101 1011 1001 oznacza

– Liczb# –29255 (signed integer)

– Liczb# 36281 (unsigned)

8

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Alokacja danych cd.

W j#zyku asemblera do alokacji danych u ywa si#dyrektywy define

– Rezerwuje miejsce w pami#ci

– Etykietuje miejsce w pami#ci

– Inicjalizuje dan"

Dyrektywa define nie okre%la typu danej

– Interpretacja typu danej jest zale na od programu, który operuje na danej

Dyrektywy define s" lokalizowane w cz#%ci .DATAprogramu

Ogólny format dyrektywy define:

[var-name] d? init-value [,init-value], ...

9

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Alokacja danych cd.

Mamy 5 rodzajów dyrektywy define:

db definiuj bajt (alokacja 1 bajtu)

dw definiuj s!owo (alokacja 2 bajtów)

dd definiuj podwójne s!owo (alokacja 4 bajtów)

dq definiuj poczwórne s!owo (alokacja 8 bajtów)

dt definiuj 10 bajtów (alokacja 10 bajtów)

Przyk!ady:

sorted db ‘y’

response db ? ;brak inicjalizacji

value dw 25159

float1 dq 1.234

10

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Alokacja danych cd.

Wielokrotne definicje mog" by$ zapisane w postaci skróconej

Przyk!ad

message db ‘B’db ‘y’db ‘e’db 0dhdb 0ah

mo na zapisa$ jako:

message db ‘B’,’y’,’e’,0dh,0ah

lub w jeszcze bardziej skróconej postaci:

message db ‘Bye’,0dh,0ah

11

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Alokacja danych cd.

Wielokrotna inicjalizacja– 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!ady:

table dw 10 DUP (?) ;10 s"ów, bez ;inicjalizacji

message db 3 DUP (‘Bye!’) ;12 bajtów ;zainicjowanych jako ;‘Bye!Bye!Bye!’

name1 db 30 DUP (‘?’) ;30 bajtów, ka#dy ;zainicjowany jako ;znak ‘?’

12

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Alokacja danych cd.

Dyrektywa DUP mo e by$ zagnie d ana

Przyk!ad

stars db 4 DUP(3 DUP (‘*’),2 DUP (‘?’),5 DUP (‘!’))

rezerwuje 40 bajtów i nadaje im warto%$:

***??!!!!!***??!!!!!***??!!!!!***??!!!!!

Przyk!ad

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)

13

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Alokacja danych cd.

Podczas kompilacji asembler buduje tablic# symboli, w której umieszcza napotkane w programie etykiety, w tym etykiety oznaczaj"ce dane

Przyk!ad:

14

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Alokacja danych cd.

Rozmiary danych w j#zyku asemblera i

odpowiadaj"ce im typy danych w j#zyku C

15

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Alokacja danych cd.

Dyrektywa label

– Jest innym sposobem nadania nazwy danym umieszczonym w pami#ci

– Ogólny format:

name label type

– Dost#pnych jest pi#$ typów danych

byte 1 bajt

word 2 bajty

dword 4 bajty

qword 8 bajtów

tword 10 bajtów

16

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Alokacja danych cd.

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

– count oznacza warto%$ 16-bitow" (dwa bajty)

– Lo_count oznacza mniej znacz"cy bajt

– Hi_count oznacza bardziej znacz"cy bajt

17

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Adresowanie argumentów

Adresowanie rejestrowe (register)

– Argumenty znajduj" si# w wewn#trznych rejestrach

CPU

– Najbardziej efektywny tryb adresowania

Przyk!ady

mov eax,ebx

mov bx,cx

– Instrukcja mov

mov destination, source

– Kopiuje dane z source do destination

18

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Adresowanie argumentów cd.

Adresowanie natychmiastowe (immediate)

– 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

Przyk!ad

mov al,75

– 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

19

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Adresowanie argumentów cd.

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

Je%li w programie u ywamy etykiet przy dyrektywach db,

dw, label, ....

– Asembler oblicza ofset na podstawie warto%ci liczbowej etykiety

– W tym celu wykorzystywana jest tablica symboli

20

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Adresowanie argumentów cd.

Adresowanie bezpo%rednie

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

21

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Adresowanie argumentów cd.

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

– Rozwi"zaniem jest zastosowanie adresowania

po%redniego (indirect)

22

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Adresowanie argumentów cd.

Adresowanie po%rednie (indirect)

– 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!admov ax,[bx]

– Nawiasy [ ] oznaczaj", e rejestr bx zawiera ofset, a nie

argument

23

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

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

– Za!aduj adres pocz"tkowy tablicy (czyli ofset) do rejestru bx

– Powtarzaj nast#puj"ce czynno%ci w p#tli

Pobierz element z tablicy u ywaj"c ofsetu z bx

– Wykorzystaj adresowanie po%rednie

Dodaj element do bie "cej sumy cz#%ciowej

Zmie& ofset w bx aby wskazywa! kolejny element w tablicy

24

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Adresowanie argumentów cd.

(adowanie ofsetu do rejestru

– Za!ó my, e chcemy za!adowa$ do bx ofset tablicy o nazwie table1

– Nie mo emy zapisa$:mov bx,table1

– Dwa sposoby za!adowania ofsetu do bx

Z wykorzystaniem dyrektywy offset

– Operacja zostanie wykonana podczas kompilacji

Z wykorzystaniem instrukcji lea (load effective address)

– Operacja zostanie wykonana przez CPU w trakcie realizacji

programu

25

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Adresowanie argumentów cd.

Wykorzystanie dyrektywy offset

– Poprzedni przyk!ad mo na rozwi"za$ pisz"c

mov bx,offset table1

Wykorzystanie instrukcji lea

– Ogólny format instrukcji lea

lea register,source

– Zastosowanie lea w poprzednim przyk!adzie

lea bx,table1

26

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Adresowanie argumentów cd.

Co lepiej zastosowa$ – offset czy lea ?

– 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

– Czasem u ycie instrukcji lea jest konieczne

Je%li dana jest dost#pna tylko w trakcie wykonywania programu

– np. gdy dost#p do danej jest przez indeks podany jako parametr

podprogramu

Mo emy zapisa$

lea 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

27

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Instrukcje przes!a" danych 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

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

28

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Instrukcje przes!a" danych cd.

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

29

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Instrukcje przes!a" danych cd.

Niejednoznaczno%$ operacji mov

Za!ó my nast#puj"c" sekwencj# deklaracji:. DATA

table1 dw 20 DUP (0)

status db 7 DUP (1)

W podanej ni ej sekwencji instrukcji przes!a& dwie ostatnie sa niejednoznaczne:

mov bx,offset table1

mov si,offset status

mov [bx],100

mov [si],100

Nie jest jasne, czy asembler ma u y$ bajtu czy s!owa do reprezentacji liczby 100

30

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Instrukcje przes!a" danych cd.

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:mov word ptr [bx],100

mov byte ptr [si],100

– S!owa word i byte s" nazywane specyfikacj" typu

Mo na u ywa$ ponadto nast#puj"cych specyfikacji typu:

– dword – dla warto%ci typu doubleword

– qword – dla warto%ci typu quadword

– tword – dla warto%ci z!o onych z 10 bajtów

31

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Instrukcje przes!a" danych cd.

Instrukcja xchg

Ogólny formatxchg operand1,operand2

Zamienia warto%ci argumentów operand1 i operand2

Przyk!adyxchg eax,edx

xchg response,cl

xchg total,dx

Bez instrukcji xchg operacja zamiany argumentów

wymaga!aby dwóch instrukcji mov i pomocniczego

rejestru

32

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Instrukcje przes!a" danych cd.

Instrukcja xchg jest przydatna przy konwersji

16-bitowych danych mi#dzy formatami little-

endian i big-endian

Przyk!ad

xchg al,ah

Zamienia dane w ax na przeciwny format endian

Pentium ma podobn" instrukcj# bswap do

konwersji danych 32-bitowych:

bswap 32-bit_register

Instrukcja bswap dzia!a tylko na rejestrach 32-bitowych

33

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Instrukcje przes!a" danych cd.

Instrukcja xlat transluje bajty

Formatxlatb

Przed u yciem instrukcji xlat nale y:

– 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

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

Instrukcje przes!a" danych cd.

Przyk!ad dzia!ania instrukcji xlat – szyfrowanie– Cyfry na wej%ciu: 0 1 2 3 4 5 6 7 8 9

– Cyfry na wyj%ciu: 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

35

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Instrukcje asemblera - przegl#d

Oprócz omówionych instrukcji przes!a& danych procesor Pentium realizuje wiele innych operacji.

Najwa niejsze grupy operacji w Pentium:– Instrukcje arytmetyczne

– Instrukcje skoków

– Instrukcje p#tli

– Instrukcje logiczne

– Instrukcje przesuni#$ logicznych (shift)

– Instrukcje przesuni#$ cyklicznych (rotate)

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

36

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Instrukcje arytmetyczne

Instrukcje inc oraz dec

Format:inc destination

dec destination

Dzia!aniedestination = destination +/– 1

Argument destination mo e by$ 8-, 16- lub 32-bitowy, w pami#ci lub w rejestrze

– Nie mo na stosowa$ trybu natychmiastowego

Przyk!adyinc bx ; bx = bx + 1

dec value ; value = value – 1

37

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Instrukcje arytmetyczne cd.

Instrukcja dodawania add

Formatadd destination,source

Dzia!aniedestination = destination + source

Przyk!adyadd ebx,eax

add value,35

U ycie inc eax jest lepsze ni add eax,1

– Instrukcja inc jest krótsza w kodzie binarnym

– Obydwie instrukcje wykonuj" si# w tym samym czasie

38

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Instrukcje arytmetyczne cd.

Instrukcja odejmowania sub

Formatsub destination,source

Dzia!aniedestination = destination - source

Przyk!adysub ebx,eax

sub value,35

U ycie dec eax jest lepsze ni sub eax,1

– Instrukcja dec jest krótsza w kodzie binarnym

– Obydwie instrukcje wykonuj" si# w tym samym czasie

39

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Instrukcje arytmetyczne cd.

Instrukcja porównania cmp

Formatcmp destination,source

Dzia!aniedestination – source

– zarówno destination jak i source nie ulegaj" zmianie, CPU wykonuje jedynie wirtualne odejmowanie by porówna$argumenty (zbada$ relacj# mi#dzy nimi: >, =)

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

40

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Instrukcje skoków

Skok bezwarunkowy jmp

Formatjmp label

Dzia!anie– CPU przechodzi do realizacji instrukcji oznaczonej etykiet"label

Przyk!ad – niesko&czona p#tlamov eax,1

inc_again:

inc eax

jmp inc_again

mov ebx,eax ; ta instrukcja nigdy si ; nie wykona

41

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Instrukcje skoków cd.

Skoki warunkowe

Formatj<cond> label

Dzia!anie– CPU przechodzi do realizacji instrukcji oznaczonej etykiet" label je%li

warunek <cond> jest spe!niony

Przyk!ad – testowanie wyst"pienia znaku powrotu karetki CRgetCh al

cmp al,0dh ; 0dh = ASCII CR

je CR_received

inc cl

...

CR_received:

...

42

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Instrukcje skoków cd.

Wybrane instrukcje skoków warunkowych

– Argumenty w poprzedzaj"cej instrukcji cmp sa

traktowane jako liczby ze znakiem

je skocz gdy równe (equal)

jg skocz gdy wi#ksze (greater)

jl skocz gdy mniejsze (less)

jge skocz gdy wi#ksze lub równe (greater or equal)

jle skocz gdy mniejsze lub równe (less or equal)

jne skocz gdy ró ne (not equal)

43

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Instrukcje skoków cd.

Skoki warunkowe mog" równie testowa$ stan

poszczególnych bitów w rejestrze wska'ników (eflags)

jz skocz gdy zero (jump if ZF = 1)

jnz skocz gdy nie zero (jump if ZF = 0)

jc skocz gdy przeniesienie (jump if CF = 1)

jnc skocz gdy brak przeniesienia (jump if CF = 0)

Instrukcja jz jest synonimem je

Instrukcja jnz jest synonimem jne

44

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Instrukcje skoków cd.

Instrukcja p#tli loop

Formatloop target

Dzia!anie– 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!admov cx,50 ; licznik p tli = 50

repeat: ; etykieta pocz!tku p tli

... ; instrukcje stanowi!ce

... ; tre$% p tli

loop repeat ; koniec p tli

...

45

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Instrukcje skoków cd.

Poprzedni przyk!ad jest równowa ny zapisowimov cx,50 ; licznik p tli = 50

repeat: ; etykieta pocz!tku p tli

... ; instrukcje stanowi!ce

... ; tre$% p tli

dec cx ; dekrementuj licznik

jnz repeat

...

Nieco zaskakuj"cy jest fakt, e para instrukcji dec oraz

jnz wykonuje si# szybciej ni instrukcja loop z

przyk!adu na poprzedniej planszy

46

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Instrukcje logiczne

Formatand destination,source

or destination,source

not 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 argumentytest destination,source

47

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Instrukcje logiczne cd.

Przyk!ad – testowanie, czy w rejestrze al jest liczba parzysta, czy nieparzysta

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:

...

48

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Instrukcje przesuni $ logicznych

Format

– Przesuni#cia w lewo

shl destination,count

shl destination,cl

– Przesuni#cia w prawo

shr destination,count

shr destination,cl

Dzia!anie

– 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

49

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Instrukcje przesuni $ logicznych

Bit opuszczaj"cy przesuwany obiekt trafia do bitu przeniesienia w

rejestrze wska'ników

Na woln" pozycj# wprowadzany jest bit równy zero

50

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Instrukcje przesuni $ logicznych

Liczba count jest argumentem natychmiastowym

– 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

51

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

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)

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

52

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Instrukcje przesuni $ cyklicznych

Instrukcje przesuni#$ cyklicznych z wy!"czeniem bitu

przeniesienia dzia!aj" wed!ug poni szego diagramu:

53

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Instrukcje przesuni $ cyklicznych

Instrukcje przesuni#$ cyklicznych z udzia!em bitu

przeniesienia dzia!aj" wed!ug poni szego diagramu:

54

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Definiowanie sta!ych

Asembler przewiduje dwa sposoby definiowania sta!ych:– 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:

– Poprawia czytelno%$ programu

– U!atwia dokonywanie zmian w programie (wystarczy zmieni$definicj# i przekompilowa$ program, zamiast zmienia$wszystkie wyst"pienia sta!ych liczbowych)

55

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Definiowanie sta!ych

Dyrektywa equ

Sk!adnianame equ expression

– Przypisuje warto%$ wyra enia expression sta!ej o nazwie name

– Wyra enie jest obliczane podczas kompilacji

Podobne dzia!anie jak #define w j#zyku C

Przyk!adyNUM_OF_ROWS equ 50

NUM_OF_COLS equ 10

ARRAY_SIZE equ NUM_OFROWS * NUM_OF_COLS

Mo na tak e definiowa$ !a&cuchy znaków, np.JUMP equ jmp

56

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Definiowanie sta!ych

Dyrektywa =

Sk!adnianame = expression

– Dzia!anie podobne dzia!anie jak dla dyrektywy equ

– Dwie zasadnicze ró nice

Redefiniowanie jest dozwolone

count = 0

...

count = 99

jest legalnym zapisem

– 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

57

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Przyk!ady programów

W za!"czonym pliku programy_asm.pdf znajduj" si#

teksty 'ród!owe kilku prostych programów napisanych w

j#zyku asemblera procesora Pentium:

– 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

– TOUPPER.ASM – konwersja ma!ych liter na du e litery przez

manipulacj# znakami

– ADDIGITS.ASM – sumowanie poszczególnych cyfr w liczbie

58

Wy sza Szko!a Informatyki Stosowanej i Zarz"dzania

Podsumowanie

Linie programu asemblerowego

Alokacja danych

Tryby adresowania argumentów

– rejestrowy, natychmiastowy, bezpo%redni, po%redni

Instrukcje przes!a& danych

Przegl"d najwa niejszych instrukcji asemblera Pentium

– instrukcje arytmetyczne, skoki bezwarunkowe i warunkowe,

instrukcje logiczne, przesuni#cia logiczne i cykliczne

Definiowanie sta!ych

Przyk!ady programów