3 Przetw danych Typy proces 201 Nieznany (2)

background image

1

Podstawy techniki

mikroprocesorowej

ETEW006

Przetwarzanie danych

Typy procesorów

Andrzej Stępień

Katedra Metrologii Elektronicznej i Fotonicznej

Little / Big Endian Machines

0

7

N

Word

8

15

N+1

High Byte

Low Byte

Low Byte

High Byte

N

N+1

N+2

N

1

Little Endian

memory address

0

7

N+1

Word

8

15

N

High Byte

Big Endian

High Byte

Low Byte

Low Byte

Endianness

0

15

N

Word

Low
Byte

N+1

High
Byte

8 7

0

15

N

Doubleword

Low Word

16

31

N+2

High Word

0

N

Quardword

Low Doubleword

31

32

N+4

High Doubleword

63

0

N

Double Quardword

Low Quardword

63

64

N+8

High Quardword

127

32-bit microprocessor

ARM core

word

halfword

Steve Furber: ARM System-on-chip Architecture.

Secon edition. Addison-Wesley, 2000

Figure 4-1. Fundamental

DataTypes

Intel

®

64 and IA-32 Architectures Software Developer’s Manual.

Volume 1: Basic Architecture. Intel, December 2009

Data Structure

Bit and Byte Order

Intel

®

64 and IA-32 Architectures Software Developer’s Manual

Volume 1: Basic Architecture. Intel, December 2009

Figure 1-1. Bit and Byte Order

Byte 2

Byte 3

Byte 0

Byte 1

0

4

Lowest
Address

Byte Offset

8

12

16

20

24

28

Bit Offset

0

Highest
Address

7

8

15

16

23

24

31



Intel 64 and IA-32 processors are “

little endian

” machines



Bit positions are numbered from right to left

word
aligned
in memory

Aligned

&

Unaligned

Word Data Transfer

[32:24]

[23:16]

[15:8]

[7:0]

Byte 3

Byte 2

Byte 1

Byte 0

Word Aligned
Data

Transfer

Address N + 4
Address N
Address N – 4

[32:24]

[23:16]

[15:8]

[7:0]

Word Unaligned
Data

Transfer

[23:16]

[32:24]

[15:8]

[7:0]

[23:16]

[32:24]

[15:8]

[7:0]

Address N + 4
Address N
Address N – 4

Address N + 4
Address N
Address N – 4

Address N + 4
Address N
Address N – 4

Traditionally Unaligned Data Transfer

≡≡≡≡

Exception

(unpredictable)

Cortex-M3

Aligned

&

Unaligned Data Transfers



Traditionally

(ARM processors such as the ARM7/ARM9/ARM10) allow

only

aligned transfers

:

word transfer

must have address

bit[1]

and

bit[0

] equal to

0

– data

can be located at 0x1000 or 0x1004, but it cannot be located in
0x1001, 0x1002, or 0x1003

half word transfer

must have address

bit[0]

equal to

0

– data can be

located at the address 0x1000 or 0x1002, but it cannot be 0x1001



Cortex-M3 supports

unaligned transfers on

single accesses

data

memory accesses can be defined as

aligned

or

unaligned

background image

2

Numeric Data Types

Intel

®

64 and IA-32 Architectures Software Developer’s Manual

Volume 1: Basic Architecture. Intel, December 2009



fundamental data types

: bytes, words, and doublewords



numeric data types

: signed & unsigned integers, floating-point numbers



integers

:

unsigned integers

(unsigned binary numbers): byte (0...255), word

(0...65.535), doubleword (0...2

32

– 1), and quadword (0...2

64

– 1)

signed integers

(signed binary numbers), two's complement

representation: byte, word, doubleword, or quadword (sign bit is located in
bit 7 in a byte integer, bit 15 in a word integer, bit 31 in a doubleword
integer, and bit 63 in a quadword integer)



three

floating-point data types

:

single-precision floating-point

(length = 32 bits, precision = 24 bits)

double-precision floating-point

(length = 64 bits, precision = 53 bits)

double-extended precision floating-point

(length = 80 bits, precision =

64 bits)



data formats

for these data types correspond directly to formats specified in

the

IEEE Standard 754 for Binary Floating-Point Arithmetic

Optymalizacja, przetwarzanie danych

Optymalizacja kompilatorów

:



rozkazy wykonywane przez procesor realizuj

ą

funkcje, które najcz

ęś

ciej

powtarzaj

ą

si

ę

podczas kompilacji



lista rozkazów dostosowana do potrzeb kompilatorów, a nie własno

ś

ci

procesora



zało

ż

enia przydatne przy projektowaniu nowych konstrukcji procesorów

Sposób przetwarzania danych

- obci

ąż

enie rejestrów procesora i pami

ę

ci:



register-to-register

przestrzeni

ą

robocz

ą

s

ą

rejestry ogólnego

przeznaczenia:

accumulator-based

CPU, z akumulatorem zwi

ą

zana jest wi

ę

kszo

ść

instrukcji arytmetyczno-logicznych i wymiany danych

register-based

CPU (register-to-register), rol

ę

akumulatora pełni

ą

rejestry

ogólnego przeznaczenia



memory-to-memory

bloki pami

ę

ci traktowane s

ą

jako przestrze

ń

robocza,

zast

ę

puj

ą

ca rejestry ogólnego przeznaczenia

Przetwarzanie rozkazów

Przetwarzanie rozkazów

– sposób wykonania rozkazu w procesorze:

podział

wykonywanego

rozkazu

na

standardowe fazy

:

– pobierania

(

Ifetch

)

rozkazu z pami

ę

ci i umieszczenia w wewn

ę

trznym

rejestrze rozkazów lub pami

ę

ci buforuj

ą

cej,

– dekodowania

(

Reg/Dec

)

rozkazu, ustalenie typu wykonywanej operacji,

np. pobrania argumentów,

– wykonania

(

Exec

)

rozkazu, np. wymaganej operacji arytmetyczno-

logicznej, obliczenia adresu itp.

– zapisu

(

Wr

)

wyniku w rejestrach lub pami

ę

ci,

• w przetwarzaniu

sekwencyjnym

(skalarnym) ka

ż

da faza wykonywana jest

oddzielnie, niezale

ż

nie od pozostałych,

• w przetwarzaniu

potokowym

,

strumieniowym (pipeline processing)

poszczególne fazy ró

ż

nych rozkazów s

ą

w zasadzie wykonywane

równocze

ś

nie.

Sekwencyjne przetwarzanie rozkazów

Sekwencyjne

(skalarne) - ka

ż

da faza wykonywana jest oddzielnie,

niezale

ż

nie od pozostałych.

Ifetch

Cycle

1

Exec

Cycle

3

Wr

Cycle

4

Cycle

5

Ifetch

Exec

Cycle

7

Wr

Cycle

8

Ifetch

Cycle

9

Ifetch

Reg/Dec

Exec

Wr

pobierania

(

Ifetch

)

rozkazu

dekodowania

(

Reg/Dec

)

rozkazu

wykonania

(

Exec

)

rozkazu

zapisu

(

Wr

)

wyniku

Reg/Dec

Cycle

2

Reg/Dec

Cycle

6

Potokowe przetwarzanie rozkazów

Ifetch

Cycle

1

Ifetch

Reg/Dec

Exec

Wr

pobierania

(

Ifetch

)

rozkazu

dekodowania

(

Reg/Dec

)

rozkazu

wykonania

(

Exec

)

rozkazu

zapisu

(

Wr

)

wyniku

Ifetch

Reg/Dec

Cycle

2

Potokowe

(strumieniowe, pipeline processing) - poszczególne fazy

ż

nych rozkazów s

ą

wykonywana równocze

ś

nie.

Exec

Cycle

3

Reg/Dec

Ifetch

Wr

Cycle

4

Exec

Reg/Dec

Ifetch

Cycle

5

Wr

Exec

Reg/Dec

Ifetch

Cycle

6

Wr

Exec

Reg/Dec

Ifetch

Cycle

7

Wr

Exec

Reg/Dec

Reg/Dec

Ifetch

Cycle

8

Wr

Exec

Exec

Reg/Dec

Ifetch

Konflikty przy przetwarzaniu
potokowym

zasobów

– ten sam zasób wykorzystywany jest przez dwie lub wi

ę

cej faz

równocze

ś

nie (ALU, rejestry lub pami

ęć

):

– ka

ż

da operacja zapisu do rejestrów lub pami

ę

ci mo

ż

e by

ć

w konflikcie

z faz

ą

pobrania rozkazu lub argumentów

danych

– je

ś

li argumentem nast

ę

pnego rozkazu jest wynik poprzedniego,

który nie został obliczony:

– wykonanie nast

ę

pnego rozkazu musi by

ć

wstrzymane z powodu

niedost

ę

pno

ś

ci argumentu

sterowania

– gdy wykonywany jest rozkaz skoku warunkowego zale

ż

ny

od wska

ź

ników ustalanych przez poprzednie, jeszcze nie zako

ń

czone

rozkazy

background image

3

Przetwarzanie potokowe - typ R

Instrukcja typu

R

(dost

ę

p do rejestru) zło

ż

ona z

4

cykli maszynowych:

Ifetch

:

pobranie kodu instrukcji z pami

ę

ci programu

Reg/Dec

: pobranie zawarto

ś

ci rejestru i dekodowanie instrukcji

Exec

:

ALU wykonuje operacj

ę

na zawarto

ś

ci 2 rejestrów

Wr

:

wpis warto

ś

ci zmiennej do rejestru

Ifetch

Reg/Dec

Exec

Wr

Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5

Ifetch

Reg/Dec

Exec

Wr

Ifetch

Reg/Dec

Exec

Wr

Cycle 6

– typ instrukcji znany po jej zdekodowaniu (

Ifetch

&

Reg/Dec

)

Przetwarzanie potokowe - LOAD

Instrukcja typu

LOAD

zło

ż

ona z

5

cykli maszynowych:

Ifetch

:

pobranie kodu instrukcji z pami

ę

ci programu

Reg/Dec

: pobranie zawarto

ś

ci rejestru i dekodowanie instrukcji

Exec

:

obliczenie adresu zmiennej w pami

ę

ci danych

Mem

:

odczyt warto

ś

ci zmiennej z pami

ę

ci danych

Wr

:

wpis warto

ś

ci zmiennej do rejestru

Ifetch

Reg/Dec

Exec

Mem

Wr

Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5

Ifetch

Reg/Dec

Exec

Mem

Wr

Ifetch

Reg/Dec

Exec

Mem

Wr

Cycle 6 Cycle 7

– instrukcja wykonywana w 5 niezale

ż

nych blokach funkcjonalnych

– ka

ż

da instrukcja korzysta tylko 1 raz z pojedynczego bloku funkcjonalnego

– pobranie kodu nast

ę

pnej instrukcji mo

ż

liwe po zako

ń

czeniu poprzedniego

– czas trwania pojedynczej instrukcji wynosi 5 cykli maszynowych

ś

redni czas trwania instrukcji w programie wynosi 1 cykl maszynowy

Konflikt zasobów

Ifetch

Reg/Dec

Exec

Mem

Wr

Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5

Ifetch

Reg/Dec

Exec

Mem

Wr

Cycle 7

Ifetch

Reg/Dec

Exec

LOAD

LOAD

typ R

Cycle 6

zasobów

– ten sam zasób wykorzystywany jest przez dwie lub wi

ę

cej

faz równocze

ś

nie (ALU, rejestry lub pami

ęć

):

– ka

ż

da operacja zapisu do rejestrów lub pami

ę

ci mo

ż

e by

ć

w

konflikcie z faz

ą

pobrania rozkazu lub argumentów

Wr

Konflikt zasobów

Ifetch

Reg/Dec

Exec

Mem

Wr

Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5

Ifetch

Reg/Dec

Exec

Mem

Wr

Cycle 7

Ifetch

Reg/Dec

Exec

LOAD

LOAD

typ R

Cycle 6

zasobów

– ten sam zasób wykorzystywany jest przez dwie lub wi

ę

cej

faz równocze

ś

nie (ALU, rejestry lub pami

ęć

):

– ka

ż

da operacja zapisu do rejestrów lub pami

ę

ci mo

ż

e by

ć

w

konflikcie z faz

ą

pobrania rozkazu lub argumentów

Wr

Wr

NOP

– w jednej z faz musi wyst

ą

pi

ć

dodatkowy

cykl oczekiwania

Konflikt danych

Ifetch

Exec

Mem

Wr

Cycle 1

Cycle 3 Cycle 4

Reg/Dec

Exec

Mem

Wr

LOAD

LOAD

Cycle 6

danych

– je

ś

li argumentem nast

ę

pnego rozkazu jest wynik poprzedniego,

który nie został obliczony:

– wykonanie nast

ę

pnego rozkazu (zatrzymanie potoku) wstrzymane z

powodu niedost

ę

pno

ś

ci argumentu

Cycle 5

Reg/Dec

Cycle 2

Ifetch

Konflikt danych

Ifetch

Exec

Mem

Wr

Cycle 1

Cycle 3 Cycle 4

Reg/Dec

Exec

Mem

Wr

LOAD

LOAD

Cycle 6

danych

– je

ś

li argumentem nast

ę

pnego rozkazu jest wynik poprzedniego,

który nie został obliczony:

– wykonanie nast

ę

pnego rozkazu (zatrzymanie potoku) wstrzymane z

powodu niedost

ę

pno

ś

ci argumentu

Cycle 5

Reg/Dec

Cycle 2

Ifetch

– rozwi

ą

zaniem konfliktu jest umieszczenie mi

ę

dzy rozkazami instrukcji

niezale

ż

nej od argumentów, np. NOP lub innej (problem optymalizacji

kompilatorów – rozkazy s

ą

wykonywane nie w takiej kolejno

ś

ci jak

zostały napisane w programie)

Reg/Dec

Exec

Mem

Wr

Reg/Dec

Exec

NOP

NOP

LOAD

Ifetch

Reg/Dec

Ifetch

Ifetch

Exec

wstrzymanie

potoku

Wr

Wr

background image

4

Eliminacja konfliktów

powielenie

niektórych wewn

ę

trznych układów i

równoległe

wykonywanie tych samych operacji prowadzi do struktury

superskalarnej

,

czasy realizacji

poszczególnych faz mog

ą

si

ę

ż

ni

ć

w zale

ż

no

ś

ci od

typu wykonywanej operacji,

takty zegarowe

musz

ą

by

ć

tak dobrane, aby dłu

ż

ej trwaj

ą

ce fazy były

wykonywane przez całkowit

ą

liczb

ę

tych taktów, np. jałowe takty

oczekiwania,

• do

skrócenia czasu

wykonywanych operacji przyczynia si

ę

umieszczenie argumentów w wewn

ę

trznych rejestrach, a nie w pami

ę

ci;

procesor musi by

ć

wyposa

ż

ony w du

żą

liczb

ę

wewn

ę

trznych rejestrów,

zmniejszeniu liczby rozkazów

potrzebnych do wykonania zadania

sprzyja du

ż

a długo

ść

słowa maszynowego.

ARM7 / ARM9

(1/2)



ARM7

processors have a

3-stage

instruction pipeline:



Fetch:

Fetching an instruction from the memory containing the code



Decode:

Decoding the instruction and prepare data path control
signals for next cycle



Execute:

The instruction gets executed on the data path specified and
the result is written back to the destination



Higher

performance

ARM9

derivatives use a

5-stage

pipeline to

compensate for the memory access bottleneck of the 3-stage pipeline:



Fetch:

Fetch next instruction from memory



Decode:

Decode instruction and read register operands



Execute:

Execute instruction



Data:

Access data memory, if required



Write-back: Write the result of the instruction back to the destination

memory location

T

humb only a 16-bit wide system data bus, less

power, smaller footprint, reducing system cost

D

ebug support

M

ultiplier (64-bit result)

I

n-Circuit Emulator interface

ARM7 / ARM9

(2/2)

ARM7TDMI

(ARM7TDMI-S)

Fetch

Decode

Execute

Fetch

Decode

Execute

Memory

Write

ARM9TDMI



The maximum clock frequency of the ARM9TDMI core is generally in the
range 1.8 to 2.2 times the clock frequency of the ARM7TDMI core when
compared on the same silicon process.



Reducing the number of cycles for loads and stores gives a significant
improvement in program execution time as typically around 30% of
instructions are loads or stores.

Architektura procesora typu Bit Slice



ka

ż

dy blok funkcjonalny tworz

ą

oddzielne układy zwane

segmentami

, np. ALU,

rejestry



istnieje mo

ż

liwo

ść

wzajemnej współpracy (poł

ą

czenia) segmentów w celu

zbudowania procesora o zadanej długo

ś

ci słowa, np. dysponuj

ą

c procesorem

4-bitowym mo

ż

na zbudowa

ć

procesor 8-, 16-, 24- ..-bitowy



mikrokod procesora

(microcode)

jest pami

ę

tany w pami

ę

ci ROM lub szybkiej

pami

ę

ci RAM (dynamiczne mikroprogramowanie)



najpopularniejszym procesorem segmentowym jest seria Am2900

(Advanced

Micro Devices)

, np.

Am2901

:

– struktura

: 4-bitowa ALU, 16x4-bitowa pami

ęć

RAM (rejestry), akumulator Q

– wykonywane operacje

: dodawanie z przeniesieniem

(addition with carry)

,

odejmowanie z po

ż

yczk

ą

(subtraction with borrow)

, OR, AND, XOR i XNOR

– argumenty

zawarte w: RAM, akumulatorze, zewn

ę

trznych wej

ś

ciach,

domy

ś

lna warto

ść

0,

– wynik operacji

: przeniesienie dla innych segmentów

(carry-out

f

lag)

, znak

(sign flag)

, przekroczenie zakresu

(overflow flag)

, wynik zerowy

(zero flag)

...

Properties of CISC

Hasan Krad, Aws Yousif Al-Taie: A New Trend for CISC and RISC Architectures.

Asian Journal of Infprmation Technology 6(11), 2007, p.1126



segmented memory model (INTEL x86 family)



few registers



richer instruction set, some simple, some very complex



instructions generally take more than 1 clock to execute



instructions of varaible size



instructions interface with memory in multiple mechanisms with complex
addresing modes



no pipelining



upward compatibiliry within a family



microcode control



work well with a simpler compiler



architecture designed for good performance on slow memories

Properties of RISC

Hasan Krad, Aws Yousif Al-Taie: A New Trend for CISC and RISC Architectures.

Asian Journal of Infprmation Technology 6(11), 2007, p.1126



simple primitive instructions and addressing modes



instructions execute in one clock cycle



uniformed length instructions and fixed instructions format



instructions interface with memory via fixed mechanism (load/store)



pipelining



instruction set is orthogonal (little overlapping of instruction functionality)



hardwired control (not microcode control)



complexity pushed to the compiler



large number of registers



fast floating point performance



larger cache



higher bandwidth



architecture designed for a good cost/performance

background image

5

Cechy procesora typu CISC

(1/2)



CISC

(

Complex Instruction Set Computer

) - procesor:

– o zło

ż

onej li

ś

cie rozkazów maj

ą

cych ró

ż

ny, zmienny format

– z małym zestawem rejestrów strukturalnych (dla u

ż

ytkownika)

– predefiniowane przeznaczenie rejestrów, np. A (akumulator),

rejestry indeksowe do adresowania pami

ę

ci (wiele rozkazów

wykonuj

ą

cych operacje na komórkach pami

ę

ci)

– o rozbudowanych trybach adresowania



trudno

ś

ci z racjonalnym wykorzystaniem zasobów procesora; przy

prostych, elementarnych operacjach wykorzystanie niewielkiej cz

ęś

ci

zasobów procesora



wzrost liczby taktów zegarowych przy wzro

ś

cie zło

ż

ono

ś

ci instrukcji

J. Biernat: Architektura komputerów.

Oficyna Wydawnicza Politechniki Wrocławskiej, Wrocław 2001

Procesory
CISC

ST72334

temp

ALU

A

X

CC

Y

R0

R1

R2

R3

R4

R5

R6

R7

R0

R1

R2

R3

R4

R5

R6

R7

R0

R1

R2

R3

R4

R5

R6

R7

temp

ALU

A

PSW

C51

B

DPTR

R0

R1

R2

R3

R4

R5

R6

R7

RB0..3

temp

ALU

8086

AL

AH

BL

BH

CL

CH

DL

DH

DI

SI

BP

SP

Status

Flags



procesor:

z małym zestawem rejestrów

strukturalnych (dla u

ż

ytkownika)

predefiniowane przeznaczenie

rejestrów, np. A (akumulator), rejestry
indeksowe do adresowania pami

ę

ci

(wiele rozkazów wykonuj

ą

cych

operacje na komórkach pami

ę

ci)



trudno

ś

ci z racjonalnym wykorzystaniem

zasobów procesora; przy prostych,
elementarnych operacjach wykorzystanie
niewielkiej cz

ęś

ci zasobów procesora

Procesory CISC
C51 — Formaty instrukcji

MOV

@Ri, #dana



ż

ny, zmienny format rozkazów

:

1

r r r

0

1

0

0

ADD

A, Rn

0 1 1

i

1

1

1

0

dana

ACALL adr_11

0 0 0 1

0

A

A

A

adres A

CJNE

A, adr, rel

0 1 0 1

1

1

0

1

adres

rel

Procesory CISC
8086 — Formaty instrukcji



procesor:

o zło

ż

onej li

ś

cie rozkazów maj

ą

cych

ż

ny, zmienny format

Intel Architecture Software Developer’s Manual. Volume 2:

Instruction Set Reference. Intel, 1997, p.2-1

Instruction

Prefixes

Opcode

ModR/M

SIB

Dispacement

Immediate

Up to four

prefixes of

1-byte each

(optional)

1 or 2 byte

opcode

Address

displacement

of 1, 2, or 4

bytes or none

Address

displacement

of 1, 2, or 4

bytes or none

Mod

Reg/

Opcode

R/M

0

3

6

7

2

5

Scale

Index

Base

0

3

6

7

2

5

1 byte

(if required)

1 byte

(if required)

SIB (Scale-Index-Base)

Procesory CISC
cykle maszynowe



wzrost liczby taktów zegarowych przy
wzro

ś

cie zło

ż

ono

ś

ci instrukcji



C51

:

1

lub

2

cykle maszynowe dla wszystkich instrukcji

4

cykle maszynowe dla MUL AB oraz DIV AB (

TYLKO w

standardzie

)



ST7

:

– od

2

do

7

cykli maszynowych dla wi

ę

kszo

ś

ci instrukcji

– od

5

do

9

cykli maszynowych dla instrukcji CALL

12

cykli maszynowych dla MUL Y,A (

brak instrukcji DIV

)

Procesory CISC
C51 — dostęp do pamięci



CISC

(

Complex Instruction Set Computer

) - procesor:

predefiniowane przeznaczenie rejestrów, np. A (akumulator),

rejestry indeksowe do adresowania pami

ę

ci (wiele rozkazów

wykonuj

ą

cych operacje na komórkach pami

ę

ci)

o rozbudowanych trybach adresowania



wewn

ę

trzna pami

ęć

RAM

:

MOV

A, @Ri

; A

(Ri)

IDATA

, i=0, 1

lub

MOV

@Ri, addr

; (Ri)

IDATA

(addr)

DATA



zewn

ę

trzna pami

ęć

RAM

:

MOVX

A, @DPTR

; A

(DPTR)

XDATA

lub

MOVX

A, @Ri)

; A

(256

P2 + Ri)

XDATA



pami

ęć

kodu (stałe)

:

MOVC

A, @A+PC

; A

(A + PC)

CODE

background image

6

Procesory CISC
ST7 — dostęp do pamięci



CISC

(

Complex Instruction Set Computer

) - procesor:

predefiniowane przeznaczenie rejestrów, np. A (akumulator),

rejestry indeksowe do adresowania pami

ę

ci (wiele rozkazów

wykonuj

ą

cych operacje na komórkach pami

ę

ci)

o rozbudowanych trybach adresowania

ld

A, $55

; A

(55h),

Direct

ld

A, (X)

; A

(X),

Indexed, no offset

ld

A, ($55,X)

; A

(55h + X),

Indexed & offset

ld

A, [$55]

; A

((55h)),

Indirect & pointer

ld

A, ([$55],X)

; A

((55h) + X Indirect indexed & pointer

ld

A, #$55

; A

55h,

Immediate

ST7 FAMILY. PROGRAMMING MANUAL.

STMicroelectronics, November 2005, p.8-29

Cechy procesora typu CISC

(2/2)



statystyka działania systemów operacyjnych i programów
u

ż

ytkowych wskazuje na cz

ę

ste wykonywanie operacji prostych

i rzadkie zło

ż

onych



sterowanie przepływem rozkazów realizowane programowo

(

mikro-kody

); łatwa realizacja sterowania wykonywania zło

ż

onych

rozkazów wymagaj

ą

cych ró

ż

nych okresów czasu

What is "microcode" ?

(1/2)

Anything sufficiently complex that has been handcrafted by

humans will

contain errors

. Modern software has millions of lines of source code, and

modern processors have millions of transistors, so this applies to both.

Microsoft Operating Systems

arrive on CD that is built to a particular

Service Pack

level, and errors found after that was made will be fixed via

patches

downloaded

from their web site.

Intel processors

are manufactured to a particular stepping level, and

errors

found after that was made may be

fixed via microcode

updates sent to the

processor, typically by BIOS on every system startup.

Microcode

updates are not stored permanently within the processor; they

vanish when the power is cut, so

every boot has to re-assert

them.

Intel® IXP1200 Network. Processor Family. Microcode Programmer’s Reference Manual.

INTEL Corporation, March 2002, Part Number: 278304-011

80C196KB User's Guide. INTEL Corporation, November 1990, Order Number: 270651-003

www.intel.com: XP SP2 vs. Intel Prescott

What is

"microcode" ?

(2/2)

MICROCODE

ENGINE



microcode engine

controls the CPU, allowing it

to perform operations with any byte, word or
double word in the 256 byte register space



instructions

to the CPU are

taken from

the

queue

and

stored temporarily

in the

instruction

register



microcode engine decodes

the instructions

and

generates

the

correct sequence

of events

to have the RALU perform the desired function

80C196KB

User's Guide.

INTEL

Corporation,

November 1990,

Order Number:

270651-003

QUEUE

Cechy procesora typu RISC

(1/2)



uproszczon

ą

struktur

ę

mikroprocesora, o

zredukowanej li

ś

cie

rozkazów

zaproponował John Cocke (IBM Research w Yorktown, New

York, 1974) wychodz

ą

c z zało

ż

enia,

ż

e 20% dost

ę

pnych instrukcji

zajmuje a

ż

80% czasu pracy procesora



skrót

RISC

(

Reduced Instruction Set Computer

) zaproponował David

Patterson (University of California, Berkeley, 1985)

obecnie skrót

RISC

tłumaczony jako

Rational Instruction Set Computer



idea RISC została wykorzystana w mikroprocesorze SPARC firmy Sun
Microsystem; pocz

ą

tek powstania tego co jest znane jako technologia

MIPS, np. w komputerach Silicon Graphics, procesorze Alpha firmy DEC

Cechy procesora typu RISC

(2/2)



prosta struktura wewn

ę

trzna



sterowanie przepływem rozkazów realizowane sprz

ę

towo (brak mikro-kodów,

eliminacja mikroprogramowania)



uproszczenie trybów adresowania, zwykle jednolity format rozkazów (stała
długo

ść

kodów instrukcji)



wi

ę

ksze mo

ż

liwo

ś

ci wyboru uniwersalnych rejestrów mikroprocesora



architektura typu load/store, przetwarzanie danych w oparciu o rejestry, a
nie bezpo

ś

rednio na zawarto

ś

ci pami

ę

ci



szybsze działanie

ideałem jest wykonanie ka

ż

dej instrukcji w jednym cyklu

procesora

zmniejszenie liczby taktów zegarowych tworz

ą

cych cykl

maszynowy (przetwarzanie potokowe)



ułatwienie opracowania, wytworzenia i testowania:

– nowego mikroprocesora
– systemu operacyjnego i programu u

ż

ytkowego

– kompilatora wysokiego poziomu



wykonanie operacji równowa

ż

nej wymaga wi

ę

kszej liczby rozkazów w

procesorze RISC ni

ż

w procesorze CISC

background image

7

Procesory RISC
MSP430

(1/2)

R2/SR/

CG1

Status

R3/

CG2

Constant Generator

R0/PC

Program Counter

R1/SP

Stack Pointer

R4

General Purpose

0

15

R14

General Purpose

R15

General Purpose

Memory Address

Bus – MAB

Memory Data

Bus – MDB

dst

scr

16-bit ALU

MCLK

MCLK

16

16

MSP430x4xx Family User’s Guide.

Texas Instruments, SLAU056G, 2007, p.3-3

Zero, Z

Carry, C

Overflow, V

Negative, N



Single-cycle register
operations



Large 16-bit register file
reduces fetches to memory



16-bit address bus allows
direct access and
branching throughout entire
memory range



16-bit data bus allows
direct manipulation of word-
wide arguments



Constant generator (

CGx

)

provides six most used
immediate values and
reduces code size

.......................

Procesory RISC
MSP430 — formaty rozkazów

dest. register

0

3

B/W

As

Ad

source register

OP - Code

6

7

5

4

8

11

12

15

Format I

dest. register

0

3

B/W

Ad

0

0

0

1

OP - Code

6

7

5

4

11

12

15

Format II

Offset

0

0

0

1

OP - Code

8

10

12

15

S

9

13

Format III

As

/

Ad

Addressing Mode

Contitional and unconditional Jumps (+/– 9 bit Offset)

Ad Addressing Mode

MSP430x4xx Family User’s Guide.

Texas Instruments, SLAU056G, 2007, p.3-18

Procesory RISC
MSP430

(2/2)



16 rejestrów uniwersalnych:

– R0 – licznik rozkazów PC

– R1 – wska

ź

nik stosu SP

– R2 – rejestr statusowy SR

lub generator stałych CG1

– R3 – generator stałych CG2

– R4 .. R15 – rejestry ogólnodost

ę

pne



27 bazowych + 24 emulowane instrukcje



ortogonalne tryby adresowania - wszystkie
instrukcje ze wszystkimi trybami
adresowania i operandami

Address
Modes
Source

Address
Modes
Destination

Instructions

Address
Modes
Source

Address
Modes
Destination

Instructions

Example: Orthogonality for two operand instructions

Example: Non-Orthogonality for two operand instructions

www.ti.com

Procesory RISC

AVR — ATmega32

ATmega32A. 8-bit Microcontroller with 32K Bytes

In-System Programmable Flash. Atmel, 2008, p.7



AVR uses a Harvard architecture

– with separate memories and buses for

program and data (

data space: Register File, I/O memory and internal SRAM

or/and external SRAM if applicable

)



instructions

in the program memory are

executed

with a

single level

pipelining

– while one instruction is being executed, the next instruction is

pre-fetched from the program memory (enables instructions to be executed in
every clock cycle)



fast-access

Register File contains 32 x 8-bit general purpose working

registers with a single clock cycle access time

– allows single-cycle

Arithmetic Logic Unit (ALU) operation



in a

typical ALU operation

,

two operands are output from the Register

File

, the operation is executed, and the

result is stored back in the Register

File – in one clock cycle



six of the 32 registers can be used as three 16-bit indirect address
register pointers for Data Space addressing

– efficient address calculations

Clear Bits in Register:

CBR Rd,K

; 16

d

31,

; 0

K

255

Procesory RISC
AVR — ATmega32 Working Registers

ATmega32A. 8-bit Microcontroller with 32K Bytes

In-System Programmable Flash. Atmel, 2008, p.10

R0
R1
R2

...................

R13
R14
R15

R16
R17

...................

R26
R27
R28
R29
R30
R31

$00
$01
$02

$0D
$0E

$0F

$1D

High Byte

$1E

Low Byte

$1F

High Byte

$1A

Low Byte

$1B

High Byte

$1C

Low Byte

$10
$11

X-

pointer

register

Y-

pointer

register

Z-

pointer

register

first 32 locations of
the user Data Space

Clear Register:

CLR Rd

; 0

d

31

General

Purpose
Working

Registers

Procesory RISC
AVR — ATmega32 Load Memory

AVR 8-bit Instruction Set.

Atmel, 0856G–AVR–07/08

Load Indirect from Data Space to Register using Index X, Y or Z:

LD

Rd, X

; Rd

(X),

X: Unchanged,

0

d

31

LD

Rd, Y+

; Rd

(Y),

Y

Y + 1, Y: Post incremented, 0

d

31

LD

Rd, – Z

; Z

Z – 1,

Rd

(Z), Z: Pre decremented, 0

d

31

Load Indirect from Data Space to Register using Index Y or Z:

LDD Rd, Y+q

; Rd

(Y+q),

Y: Unchanged,

0

d

31,

;

q: Displacement,

0

q

63

Load Direct from Data Space:

LDS Rd, k

; Rd

(k),

0

k

65535,

0

d

31

Load Indirect from Program Memory:

LPM Rd, Z

; Rd

(Z),

Z: Unchanged,

0

d

31

LPM Rd, Z+

; Rd

(Z),

Z

Z + 1, Z: Post incremented, 0

d

31

background image

8

Procesory RISC
AVR — ATmega32 Store Memory

AVR 8-bit Instruction Set.

Atmel, 0856G–AVR–07/08

Store Indirect From Register to Data Space using Index X, Y or Z:

ST

X, Rr

; (X)

Rr,

X: Unchanged,

0

r

31

ST

Y+, Rr

; (Y)

Rr,

Y

Y+1,

Y: Post incremented, 0

r

31

ST

–Z, Rr

; Z

Z – 1,

(Z)

Rr,

Z: Pre decremented, 0

r

31

Store Indirect From Register to Data Space using Index Y or Z:

STD Y+q, Rr

; (Y+q)

Rr, Y: Unchanged,

0

r

31,

;

q: Displacement,

0

q

63

Store Direct to Data Space:

STS k, Rr

; (k)

Rr,

0

k

65535,

0

r

31

Procesory RISC — ARM7

PC

(Program

Counter)

User

System

Supervisor

Abort

Undefined Interrupt

Fast

Interrupt

Privileged Modes

Exception Modes

R14_fiq

R13_fiq

R12_fiq

R11_fiq

R10_fiq

R9_fiq

R8_fiq

R14_irq

R13_irq

R14_und

R13_und

R14_abt

R13_abt

R14_svc

R13_svc

CPSR_svc
SPSR_svc

CPSR_abt
SPSR_abt

CPSR_und
SPSR_und

CPSR_irq
SPSR_irq

CPSR_fiq

SPSR _fiq

R0
R1
R2
R3
R4
R5
R6
R7

R8
R9

R10
R11
R12

R13

(Stack Pointer

)

R14

(Link Register)

Current Program

Status Register

CPSR

CPSR

Saved Program

Status Register

ARM Architecture Reference Manual.

ARM DDI 0100E, p.A2-4

CRISC – future of processor

Hasan Krad, Aws Yousif Al-Taie: A New Trend for CISC and RISC Architectures.

Asian Journal of Infprmation Technology 6(11), 2007, p.1128



Intel’s Pentium series chips described as

CRISC

(

C

omplex-

R

educe

I

nstruction

S

et

C

omputers)



Pentium are

hybrid between CISC and RISC

architectures



Intel Core 2 Duo

dual-core (2006) and quard-core (2007) 64-bit x86

CPUs based on Intel Core microarchitecture (291 million of transistors):

Intel’s wide dynamic execution

14 pipelining stages

Cache: L1 – 32 + 32 KB, L2 – 4 MB (65 nm) or 6 MB (45 nm)

Intel’s advanced digital media boost

Intel’s intelligent power capability

Intel’s advanced smart cache

Intel’s smart memory access

Intel

®

64 and IA-32 Architectures Software Developer’s Manual

Volume 1: Basic Architecture. Intel, December 2009


Wyszukiwarka

Podobne podstrony:
3 Przetw danych Typy proces 2015 www (1)
Proces przetwarzania danych analogowych na cyfrowe, SPRAWOZDANIA czyjeś
Zgoda na przetwarzanie danych p Nieznany
bazy danych druga id 81754 Nieznany (2)
Analizowanie procesow technolog Nieznany (2)
Egzamin pisemny BHP styczen 201 Nieznany
Bazy danych kolo 2 1 id 81756 Nieznany
upowaznienie-do-przetwarzania-danych-osobowych, Prawo Pracy, Druki
04 Egzamin Poprawkowy 2010 201 Nieznany (2)
Badania rynku w procesie ubiega Nieznany (2)
Bazy danych i mysql od podstaw Nieznany (3)
PHP i Oracle Tworzenie aplikacji webowych od przetwarzania danych po Ajaksa
Bazy Danych1 secret id 81733 Nieznany (2)
obsluga klienta w procesie sprz Nieznany
bazy danych kol 2 id 81577 Nieznany (2)
algebra Skrypt Algebra KSzW 201 Nieznany
bazy danych wyk2 id 81712 Nieznany (2)

więcej podobnych podstron