24
Procesorski sistemi v telekomunikacijah Operacije s celimi števili (c) Árpád Bűrmen, 2010-2016

Procesorski sistemi v telekomunikacijah Operacije s celimi števili

  • Upload
    minda

  • View
    52

  • Download
    5

Embed Size (px)

DESCRIPTION

Procesorski sistemi v telekomunikacijah Operacije s celimi števili. (c) Á rpád B űrmen, 2010-201 3. Zapis nepredznačenih celih števil. Zapis z n biti, možna števila 0..2 n -1 Kodiranje v dvojiškem zapisu Uteži mest so potence števila 2 Število = vsota uteži neničelnih mest v zapisu. - PowerPoint PPT Presentation

Citation preview

Page 1: Procesorski sistemi v telekomunikacijah Operacije s celimi števili

Procesorski sistemi v telekomunikacijahOperacije s celimi števili

(c) Árpád Bűrmen, 2010-2016

Page 2: Procesorski sistemi v telekomunikacijah Operacije s celimi števili

Zapis nepredznačenih celih števil Zapis z n biti, možna števila 0..2n-1 Kodiranje v dvojiškem zapisu Uteži mest so potence števila 2 Število = vsota uteži neničelnih mest v zapisu

2

Bit 7 6 5 4 3 2 1 0Utež 128 64 32 16 8 4 2 1

Uteži za dvojiški zapis nepredznačenih 8-bitnih števil

100011112= =128+8+4+2+1= =14310

18 = 2 x 9 + 09 = 2 x 4 + 14 = 2 x 2 + 02 = 2 x 1 + 01 = 2 x 0 + 1

1810=100102= =000100102

Page 3: Procesorski sistemi v telekomunikacijah Operacije s celimi števili

Zapis predznačenih celih števil(zapis z dvojiškim komplementom)

3

Zapis z n biti, možna števila -2n-1..2n-1-1 Uteži mest so potence števila 2 Utež najvišjega mesta (MSB) je negativna Število = vsota uteži neničelnih mest v zapisu

Bit MSB 7 6 5 4 3 2 1 LSB 0Utež -128 64 32 16 8 4 2 1

Uteži za dvojiški zapis predznačenih 8-bitnih števil

Negativna števila imajo MSB=1 Primer

100011102= =-128+8+4+2=-11410

Page 4: Procesorski sistemi v telekomunikacijah Operacije s celimi števili

Nepredznačeno : predznačeno

4

Nepredznačeno Zapis (8 bitov) Predznačeno-------------------------------------------------------------------------------------------0 00000000 01 00000001 1

2 00000010 2... ... ...127 01111111 127 (maxp)128 10000000 -128 (minn)129 10000001 -127... ... ...254 11111110 -2255 (max) 11111111 -1

n-bitni zapis predznačenega negativnega števila -x je enakn-bitnemu zapisu nepredznačenega števila 2n – x

Page 5: Procesorski sistemi v telekomunikacijah Operacije s celimi števili

Številski krog

5

0 1 2 3 4

Nepredznačena

5 6 7 8 ... -4 -3 -2 -1 0

Predznačena

1 2 3 4 ...

Števila v matematiki so neomejena.

0 12

max

......

max-1

V računalništvu so števila omejena zaradi končne dolžine zapisa.

zapis z n-bitimax=2n

0 1 2-1

......

-2

maxpminn... ...

zapis z n-bitimaxp=2n-1-1minn=-2n-1

x+1 = en korak v smeri urinega kazalcax-1 = en korak nasproti urinemu kazalcu

...

Page 6: Procesorski sistemi v telekomunikacijah Operacije s celimi števili

Sprememba predznaka ali dvojiški komplement ...

-x leži x korakov od 0 v obratni smeri urinega kazalca ... ali 2n – x korakov v smeri urinega kazalca 2n – x = (2n – 1 – x) +1

6

x0

-x

2n korakov

2n – x korakov

Page 7: Procesorski sistemi v telekomunikacijah Operacije s celimi števili

... sprememba predznaka ali dvojiški komplement 2n – 1 je nepredznačeno število zapisano s samimi

enicami Nepredzn. 2n – 1 – x invertira bite v zapisu števila x (2n – 1 – x) +1 ustreza invertiranju bitov zapisa x,

ki mu sledi nepredznačeno prištevanje števila 1 Primer za 8-bitni predznačen zapis (2n=256)

7

-11510 = 100011012

Invertiraj bite 011100102

Prištej 1 (nepredznačeno) 011100102 +1Rezultat 011100112 = 11510

11510 = 011100112

Invertiraj bite 100011002

Prištej 1 (nepredznačeno) 100011002 +1Rezultat 100011012 = -11510

Page 8: Procesorski sistemi v telekomunikacijah Operacije s celimi števili

Zakaj je zapis z dvojiškim komplementom dober? Recimo, da imamo vezje za seštevanje

nepredznačenih števil. To vezje bo pravilno seštelo tudi dve predznačeni

števili, če sta zapisani v zapisu z dvojiškim komplementom.

Z vezjem lahko izvedemo odštevanje (x – y) tako, da k x prištejemo dvojiški komplement števila y.

8

2510 = 000110012 prvo predznačeno število-11510 = 100011012 drugo predznačeno število

Seštej kot dve nepredznačeni števili 00011001+10001101--------- 10100110

101001102=-128+32+4+2=-9010

Page 9: Procesorski sistemi v telekomunikacijah Operacije s celimi števili

Seštevanje in odštevanjePrevelik/premajhen rezultat... Nepredznačena števila

9

12

max

......

max-1

zapis z n-bitimax=2n

0Seštevanje

Odštevanje

Če prekoračimo mejo med max in 0 dobimo napačen rezultat.Pravimo, da se je zgodil prenos (carry).

Page 10: Procesorski sistemi v telekomunikacijah Operacije s celimi števili

Seštevanje in odštevanjePrevelik/premajhen rezultat... Predznačena števila

10

Če prekoračimo mejo med maxp in minn dobimo napačen rezultat.Pravimo, da se je zgodil preliv (overflow).

0 1 2-1

......

-2

maxpminn... ...

zapis z n-bitimaxp=2n-1-1

minp=2n-1

Seštevanje

Odštevanje

Page 11: Procesorski sistemi v telekomunikacijah Operacije s celimi števili

Zastavice (flags) Biti v registru stanja – rezultat zadnje operacije. Zastavica Z (Zero)

Z=1, če je rezultat enak 0 oz. Z=0, če ni. Zastavica N (Negative)

N=1, če je najvišji bit rezultata enak 1 oz. N=0, če ni.

Zastavica V (oVerflow)V=1, če se je zgodil preliv, oz. V=0, če se ni.

Zastavica C (Carry)C=1, če se je zgodil prenos, oz. C=0, če se ni.

Pozor! nekateri procesorji (npr. ARM) pri odštevanju postavijo C=0, če se zgodi prenos in C=1, če se ne zgodi.

11

Page 12: Procesorski sistemi v telekomunikacijah Operacije s celimi števili

Seštevanje in odštevanjeZapis rezultata Seštevanje/odštevanje dveh n-bitnih števil Rezultat lahko zmeraj zapišemo z n+1 biti Operanda sta nepredznačeni števili

- rezultat tolmačimo kot nepredznačeno številoOperanda sta predznačeni števili - rezultat tolmačimo kot predznačeno število

C predstavlja n+1. bit rezultata

Pozor! Pri odštevanju na nekaterih procesorjih (npr. ARM) je n+1. bit rezultata je enak negaciji zastavice C.

12

Page 13: Procesorski sistemi v telekomunikacijah Operacije s celimi števili

Zapis daljših števil v pomnilnik Zapis k-bitnih števil v n-bitne celice (k>n) Razbijemo na skupine po n bitov Uporabimo k/n zaporednih celic za zapis Kaj pa vrstni red?

13

Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0MSW LSW

Zapis 16-bitnega števila v 8-bitne celice

Naslov Vsebina...a LSWa+1 MSW...

Naslov Vsebina...a MSWa+1 LSW...

Little endian Big endian

Uporablja gaCortex M3 (lahko)SAM3X8E (C. M3)INTEL (npr i386)

Uporablja gaCortex M3 (lahko)Motorola 68k

Page 14: Procesorski sistemi v telekomunikacijah Operacije s celimi števili

Seštevanje daljših števil

14

MSW A LSW A

MSW B LSW B

C

MSW rezultata LSW rezultataC

++

n bitov n bitov

n bitov n bitov1 bit

ARM, 64-bitno seštevanje/* R2 = MSW A, R1 = LSW A */ /* R4 = MSW B, R3 = LSW B */ /* Rezultat seštevanja: R6 = MSW, R5 = LSW

ADDS R5, R3, R1 /* R5=R3+R1, določi C (statusni register) */ ADCS R6, R4, R2 /* R6=R4+R2+C, določi C (statusni register) */

Odštevanje dolgih števil poteka podobno.

Page 15: Procesorski sistemi v telekomunikacijah Operacije s celimi števili

OdštevanjePrimerjava nepredznačenih števil Izračun A-B = primerjava števil A in B Če rezultat pade iz območja nepredzn. števil ... C=1

če ostane v območju ... C=0 Če je rezultat enak 0 ... zastavica Z=1

če ni enak 0 ... zastavica Z=0 Zastavica V nima nobene vloge.

15

Če velja Po odštevanju (A-B) dobimoA=B Z=1A≠B Z=0A≥B C=0A>B C=0 in Z=0 (C=1 in Z=0 za ARM)A<B C=1 (C=0 za ARM)A≤B C=1 ali Z=1 (C=0 ali Z=1 za ARM)

Pozor z zastavico C in ARM!!!Pri odštevanju na ARM dobimo C=0 če pademo iz območja in

C=1 če ne pademo!

Page 16: Procesorski sistemi v telekomunikacijah Operacije s celimi števili

OdštevanjePrimerjava predznačenih števil Izračun A-B = primerjava števil A in B Če je V=1, zastavica N laže glede predznaka

pravilnega rezultata Pravilna vrednost A-B je negativna, če je N exor V = 1 Če je rezultat enak 0 ... zastavica Z=1

ni enak 0 ... zastavica Z=0 Zastavica C nima nobene vloge.

16

Če velja Po odštevanju (A-B) dobimoA=B Z=1A≠B Z=0A≥B (N exor V)=0A>B (N exor V)=0 in Z=0A<B (N exor V)=1A≤B (N exor V)=1 ali Z=1

Page 17: Procesorski sistemi v telekomunikacijah Operacije s celimi števili

Bitne operacije Aritmetični/logični pomik bitov v levo

17

Biti se pomaknejo za eno mesto v levo. Na desni (LSB) se doda ničla. Levi bit (MSB) izpade.

Biti nepredznačenega števila se pomaknejo k utežem z dvojno vrednostjo.

Nepredznačena vrednost se torej podvoji ... operacija je enaka množenju z 2.

Tudi predznačena vrednost se podvoji (množi z 2).

Bit 0 1 0 0 1 1 0 1 = 7710

Utež 128 64 32 16 8 4 2 1

Bit 1 0 0 1 1 0 1 0 = 15410

Utež 128 64 32 16 8 4 2 1Dodana ničla

Bit izpade

Page 18: Procesorski sistemi v telekomunikacijah Operacije s celimi števili

Bitne operacijeLogični pomik v desno

18

Bit 0 1 0 0 1 1 0 0 = 7610

Utež 128 64 32 16 8 4 2 1

Bit 0 0 1 0 0 1 1 0 = 3810

Utež 128 64 32 16 8 4 2 1

Dodana ničla

Bit izpade

Biti se pomaknejo za eno mesto v desno. Na levi (MSB) se doda ničla. Desni bit (LSB) izpade.

Biti nepredznačenega števila se pomaknejo k utežem s polovično vrednostjo.

Nepredznačena vrednost se prepolovi ... operacija je enaka deljenju z 2.

Operacija nima pomena za predznačena števila.

Page 19: Procesorski sistemi v telekomunikacijah Operacije s celimi števili

Bitne operacijeAritmetični pomik v desno

19

Bit 1 1 0 0 1 0 1 0 = -5410

Utež -128 64 32 16 8 4 2 1

Bit 1 1 1 0 0 1 0 1 = -2710

Utež -128 64 32 16 8 4 2 1

Kopija MSB

Bit izpade

Biti se pomaknejo za eno mesto v desno. Na levi (MSB) se ponovi MSB prvotne vrednosti. Desni bit (LSB) izpade.

Biti predzn. števila se pomaknejo k utežem s polovično vrednostjo. Po pomiku sta leva dva bita enaka 11 (-128+64=-6410) ali 00 (010) Za predznačena števila je operacija enakovredna deljenju z 2. Operacija nima pomena za nepredznačena števila.

Page 20: Procesorski sistemi v telekomunikacijah Operacije s celimi števili

Množenje celih števil Množenje dveh n-bitnih števil ... 2n-biten rezultat Nepredznačeno in predznačeno množenje nista enaki

operaciji Dvojiško množenje = pomikanje v levo + seštevanje

20

235 x 153---------- 23500 = 235 x 100+11750 = 235 x 50+00705 = 235 x 3---------- ---035955 153

110001 x 110110---------------- 11000100000 = 110001 x 100000+01100010000 = 110001 x 010000+00000000000 = 110001 x 000000+00011000100 = 110001 x 000100+00001100010 = 110001 x 000010+00000000000 = 110001 x 000000---------------- ------101001010110 110110

Desetiško nepredznačeno Dvojiško nepredznačeno

Page 21: Procesorski sistemi v telekomunikacijah Operacije s celimi števili

Deljenje celih števil Deljenje dveh n-bitnih nepredznačenih števil ... n-biten rezultat Deljenje dveh n-bitnih predznačenih števil ... n+1 – biten rezultat Dvojiško deljenje = pomikanje v desno + odštevanje

21

18763 : 121 121 ≤ 18763 1210 ≤ 18763 12100 ≤ 18763 tu začnemo121000 > 18763

18763 = 12100 x 1 + 6663 6663 = 1210 x 5 + 613 613 = 121 x 5 + 8

18763 = 121 x 155 + 8

110111 : 101 101 ≤ 110111 1010 ≤ 110111 10100 ≤ 110111 101000 ≤ 110111 tu začnemo1010000 > 110111

110111 = 101000 x 1 + 1111 1111 = 10100 x 0 + 1111 1111 = 1010 x 1 + 101 101 = 101 x 1 + 0

110111 = 101 x 1011 + 0

Desetiško nepredznačeno Dvojiško nepredznačeno

Page 22: Procesorski sistemi v telekomunikacijah Operacije s celimi števili

Množenje in deljenje v praksi Običajno je izvedeno v obliki vgrajenega

programa. Čeprav ima procesor ukaz za množenje/deljenje,

traja izvajanje tega ukaza več urinih ciklov. Primer: ARM, 68HC11

V signalnih procesorjih je množenje ponavadi izvedenos temu namenjenim vezjem – množilnikom.

Rezultat dobimo v enem urinem ciklu.

22

Page 23: Procesorski sistemi v telekomunikacijah Operacije s celimi števili

Ostale bitne operacije AND OR, EXOR računajo s soležnimi biti operandov.

23

xxxxxxxxop yyyyyyyy -------- zzzzzzzz

x y x AND y x OR y x EXOR y0 0 0 0 00 1 0 1 11 0 0 1 10 1 1 1 0

Drugemu operandu (y) včasih pravimo tudi maska Invertiranje vseh bitov = eniški komplement (one’s

compement) Sprememba predznaka za predznačena števila

= dvojiški komplement (two’s complement) = eniški komplement + 1

Rotacije – krožni pomik bitov preko bita CZa izvedbo daljših aritm./log. pomikov v levo/desno. b7 b6 b5 b4 b3 b2 b1 b0 C

Rotacija bitov v desno

Page 24: Procesorski sistemi v telekomunikacijah Operacije s celimi števili

... v siliciju

24

Intel 80386Bell labs DSP-1

ALU = Arithmetic Logic Unit – Aritmetično-Logična Enota