Arhitectura Calculatoarelor

Embed Size (px)

DESCRIPTION

Arhitectura Calculatoarelor

Citation preview

  • REPREZENTAREA I PRELUCRAREA INFORMAIEI N CALCULATOARELE NUMERICE

  • REPREZENTAREA I PRELUCRAREA INFORMAIEI N CALCULATOARELE NUMERICE

    3.1 Reprezentarea informaiei n calculatoarele numerice3.1.1 Reprezentarea informaiei numerice Reprezentarea n binar Reprezentarea n cod GrayReprezentarea n BCD ( zecimal codificat binar)3.1.2 Reprezentarea virgulei Reprezentarea n virgul fix Reprezentarea n virgul mobil3.1.3 Reprezentarea semnului Codul direct Codul invers Codul complementar3.1.4 Reprezentarea informaiei alfanumerice

  • OBIECTIVE

    -prezentarea diferitelor modaliti de reprezentare a informaiilor numerice i alfanumerice;

    -efectuarea operaiilor aritmetice i logice n calculatoarele numerice;

    -analizarea algoritmilor de efectuare a operaiilor aritmetice n funcie de codul de reprezentare;

    -soluiile de implementare.

  • 3.1 Reprezentarea informaiei n calculatoarele numerice

    reprezentarea informaiei numerice (a datelor numerice); reprezentarea informaiei alfanumerice.

    Reprezentarea informaiei numerice.

    Pentru a reprezenta datele numerice se ine seama de urmtoarele: codul de reprezentare; reprezentarea virgulei; reprezentarea semnului.

    Din punctul de vedere al codului de reprezentare, n structurile numerice se utilizeaz: reprezentarea n codul binar; reprezentarea n codul Gray; reprezentarea n codul BCD (zecimal codificat binar).

  • Reprezentarea n binar

    Codul binar corespunde reprezentrii binare a informaiei numerice, n care fiecare cifr are o anumit pondere n funcie de poziia pe care o ocup n reprezentarea numruluin general: N = xnxn1xn2...x0

    Valoarea numrului fiind:

    ZecimalBinar000001000120010300114010050101601107011181000

  • Reprezentarea n cod Gray

    Codul de reprezentare Gray are proprietatea c dou numere adiacente difer printrun singur bit. Se consider ca fiind un cod reflectat (tabelul).Fie Nb = bnbn1...b0 un numr reprezentat n binar i Ng = gngn1...g0 acelai numr reprezentat n cod Gray.unde bi i gi { 0,1 }Se pune problema dac cunoatem o reprezentare cum putem s o determinm pe cealalt.Nb Ngsau Ng Nb

    ZecimalBinarGray000000000100010001200100011300110010401000110501010111601100101701110100810001100910011101101010111111101111101211001010131101101114111010011511111000

  • n cazul transformrii din cod binar n cod Gray, Nb Ng, relaia dintre cifre este:gi = bi bi+1 considernd bn+1 = 0 n cazul transformrii din cod Gray n cod binar, Ng Nb, relaia dintre cifre este:bi = gi gi+1 ... gn

  • Exemplu:Pentru un convertor din Binar n Gray i invers rezult urmtoarele ecuaii logice:Conversia Binar Gray: g0 = b0 b1 g1 = b1 b2 g2 = b2 b3 g3 = b3

    Conversia Gray Binar: b0 = g0 g1 g2 g3 b1 = g1 g2 g3 b2 = g2 g3 b3 = g3 Implementarea funciilor logice => circuite logice combinaionale.

  • Reprezentarea n BCD ( zecimal codificat binar)

    n aceast reprezentare, fiecare cifr zecimal este exprimat n cod binar prin 4 cifre binare. ntruct cu 4 cifre binare putem reprezenta 16 valori, exist mai multe posibiliti de punere n coresponden a celor 10 cifre zecimale cu codificarea binar pe 4 bii. Felul n care se face corespondena ntre cifrele zecimale i reprezentarea binar pe 4 bii poate conduce la simplificarea circuitelor logice de calcul i de comand ale unei structuri numerice.Reprezetarea n cod BCD este adecvat n majoritatea sistemelor dedicate cu afiare direct.

  • ZecimalBinarCod 8421Cod 2421Cod exces 3000000000=00000=0100010001=10001=1200100010=20010=2300110011=30011=30011=0401000100=40100=40100=1501010101=50101=2601100110=60110=3701110111=70111=4810001000=81000=5910011001=91001=61010101010=71110111011=51011=81211001100=61100=91311011101=71411101110=81511111111=9

  • In continuare va fi discutata pe scurt conversia din binar in BCD. Algoritmul de conversie rezulta din echivalenta dintre o deplasare la stanga a unei valori binare si inmultirea cu 2. Astfel, se considera doua grupuri de biti, corespunzatoare la doua registre in cazul unei implementari hardware: grupul binar si grupul BCD (impartit in decade de cate 4 biti corespunzatoare cifrelor zecimale). Se initializeaza grupul binar cu valoarea binara de convertit, iar grupul BCD cu 0. Se executa deplasari succesive cu cate o pozitie spre stanga atat in grupul binar cat si in grupul BCD, cu trecerea cate unui bit din grupul binar in grupul BCD, incepand cu bitul c.m.s. Inainte de fiecare deplasare se executa corectii in acele decade din grupul BCD care au o valoare > 4 (prin deplasare stanga, echivalent cu o inmultire cu 2, se obtine o valoare > 9, deci care nu este cifra BCD). Corectia consta din adunarea valorii 3 in fiecare decada cu valoare > 4 inainte de deplasare. Conversia se incheie in momentul in care toti bitii din grupul binar au fost transferati in grupul BCD.

  • Exemplu. Se considera numarul in binar N(2) = 111110010. Sa se converteasca in BCD prin metoda deplasarilor succesive prezentata mai sus. Grup BCD Grup binar 0000 0000 0000 111110010 0000 0000 0001 11110010 0000 0000 0011 1110010 0000 0000 0111+ 110010 11 0000 0000 1010 110010 0000 0001 0101+ 10010 11 0000 0001 1000 10010 0000 0011 0001 0010 0000 0110+0010 010 11 0000 1001+0010 010 0001 0010 0100 10 0010 0100 1001+ 0 11 0010 0100 1100 0 0100 1001 1000

    S-a obtinut rezultatul 498(10) in BCD pe 3x4 biti.

  • Conversia BCD - binar are la baza echivalenta dintre deplasarile succesive spre dreapta si impartirile la 2. In acest caz se initializeaza grupul BCD cu valoarea BCD de convertit, iar grupul binar cu 0. Se executa deplasari succesive spre dreapta cu o pozitie atat in grupul BCD cat si in grupul binar, efectuand corectii la acele decade in care, dupa deplasare, se obtine bitul c.m.s egal cu 1. Corectia consta in scaderea valorii 3 (echivalent cu adunarea complementului sau, 13) din fiecare decada cu valoarea 8 (care a primit prin deplasare in pozitia c.m.s un bit 1). Necesitatea corectiei rezulta din faptul ca prin deplasare la dreapta cand un bit 1 trece din pozitia c.m.p.s. a unei decade in pozitia c.m.s. a decadei inferioare alaturate, valoarea sa, relativ la decada inferioara, scade de la 10 la 8, in loc sa scada de la 10 la 5 (prin impartire la 2). Deci se executa corectia la decada inferioara in care a aparut bitul 1 in pozitia c.m.s., scazand valoarea 3 (sau adunand 13).

  • Exemplu. Sa se reprezinte in BCD numarul N(10)=503 si sa se converteasca in binar prin metoda deplasarilor succesive. Grup BCD Grup binar 0101 0000 0011 000000000 0010 1000+0001 1 1101 0010 0101 0001 1 0001 0010 1000+ 11 1101 0001 0010 0101 11 0000 1001+0010 111 1101 0000 0110 0010 111 0000 0011 0001 0111 0000 0001 1000+ 10111 1101 0000 0001 0101 10111 0001 0000 1010+ 110111 1101 0000 0000 0111 110111 ....... (nu se modifica configuratia de biti) 0000 0000 0000 111110111S-a obtinut valoarea N(2) = 111110111 (503(10)).

  • Reprezentarea n virgul fix

    n virgul fix numerele se pot reprezenta n funcie de poziia virgulei n trei moduri:

    numere ntregi: poziia virgulei fiind interpretat dup cifra cea mai putin semnificativ x0x = xnxn1 ... x1x0,iar valoarea numrului numere subunitare: poziia virgulei fiind interpretat nainte de cifra cea mai semnificativ x1x = ,x1x2 ... xn+1xniar valoarea numrului

  • numere reale: poziia virgulei fiind interpretat n cadrul reprezentrii. Exist un grup de bii care specific partea ntreag i un numr de bii care specific partea fracionar. Aceast reprezentare combin cele dou reprezentri anterioare. n practic se utilizeaz numai n structuri numerice dedicate, n care se conoate foarte bine domeniul de valori al datelor.

    x = xkxk1 ... x1x0,x1x2 ... xm

    iar valoarea numrului

  • In continuare se va discuta reprezentarea numerelor in virgula fixa. Se considera un numar x reprezentat in calculator pe n biti, sub forma:unde xs reprezinta bitul de semn, 0 pentru numar pozitiv si 1 pentru numar negativ, iar ceilalti biti reprezinta modulul numarului.

  • Reprezentarea in cod direct

    Codul direct permite reprezentarea explicita a numerelor prin semn si modul.

    Exemple. Sa se reprezinte in cod direct numerele x = 21 si y = -20 pe 6 biti.[x]d = 010101[y]d = 110100

  • Reprezentarea in cod invers (sau in complement fata de 1)

    unde Se poate stabili o relatie importanta pentru numerele strict negative reprezentate in cod invers. Astfel, daca x

  • Exemple. Sa se reprezinte in cod invers numerele x = 21 si y = -20 pe 6 biti.

    [x]d = [x]i = 010101

    Reprezentarea numerelor pozitive in cod invers este identica cu reprezentarea in cod direct. Numerele negative se reprezinta insa diferit. Pentru y se scrie mai intai reprezentarea in cod direct, apoi se inverseaza (se complementeaza fata de 1) fiecare bit al modulului.

    [y]d = 110100[y]i = 101011

  • Reprezentarea in cod complementar (in complement fata de 2)unde, prin definitie, Se poate stabili o relatie importanta pentru reprezentarea numerelor negative in cod complementar. Daca x
  • Exemple. Sa se reprezinte in cod complementar numerele x = 21 si y = -20 pe 6 biti.[x]d = [x]i = [x]c = 010101Din nou, reprezentarea numerelor pozitive in cod complementar este identica cu reprezentarea in cod direct. Pentru a obtine reprezentarea unui numar negativ in cod complementar, se scrie mai intai numarul in cod direct, apoi se inverseaza bitii modulului pentru a obtine codul invers si in final se aduna o unitate, in rangul cel mai putin semnificativ (c.m.p.s.), conform relatiei stabilite mai sus.[y]d = 110100[y]i = 101011+ 1 [y]c = 101100

    Regula practica pentru scrierea codului complementar (numai pentru numerele negative !): se parcurge reprezentarea numarului in cod direct de la dreapta spre stanga, se lasa toate zerourile neschimbate pana la prima unitate, care de asemenea ramane neschimbata, iar apoi se inverseaza toti ceilalti biti ai modulului.

  • Reprezentarea informaiei alfanumerice

    Intr-un sistem de calcul o parte a informatiei prelucrate este nenumerica. Pentru reprezentarea acesteia se utilizeaza diferite coduri, dintre care cel mai utilizat este codul ASCII (American Standard Code for Information Interchange). Codul ASCII standard utilizeaza 7 biti pentru reprezentarea literelor mari si mici ale alfabetului latin, cifrelor zecimale, caracterelor speciale si a cateva caractere de control (in total 128 de caractere). Caracterele sunt grupate astfel (codurile fiind furnizate in hexazecimal):0-1Fh : caractere de control, ca LF (0Ah), CR (0Dh), BEL (07h),...;20h-2Fh : caractere speciale, ca spatiu, !, , #, $,...;30h-39h : cifrele zecimale 0(30h), 1(31h),...,9(39h);3Ah-40h : caractere speciale :, ;,