Documente Academic
Documente Profesional
Documente Cultură
SISTEMELOR DE CALCUL
Curs 1
Cuprins
Sistem de calcul
Evoluţia sistemelor de calcul
Componente SW
3
Dispozitiv care efectuează calcule, în special o maşină
electronică programabilă care execută operaţii aritmetice,
logice sau care asamblează, stochează, corelează sau
efectuează un alt tip de procesare a informaţiei, cu viteză
ridicată (The American Heritage Dictionary of the English
Language, 2000).
Bit:
unitate elementara de informatie
Calculatorul ENIAC
Harvard Mark 1 (IBM Automatic Controlled Calculator) (1938 – 1944), fiind
format din mai multe calculatoare ce lucrau asupra unor părţi ale aceleiaşi
probleme sub supravegherea unei singure unităţi de control.
Performanţa (în Nov. 2012): 17,59 PFLOPS Nodurile de calcul sunt amplasate în 200 de
În configuraţia finală, performanţa va fi de peste 20 PFLOPS dulapuri
Numărul nodurilor de calcul: 18.688 Nr. total de nuclee Opteron: 299.008
Nod de calcul: Memorie totală: 710.144 GB
Un procesor AMD Opteron 6274 (2,2 GHz, 16 nuclee) Interconexiune: Gemini, 100 Gbiţi/s
Un accelerator grafic (GPU) NVIDIA Kepler K20 Sistem de fişiere: Spider, 240 GB/s, capacitate
Memorie: DDR3, 32 GB + 6 GB de peste 10 PB
Sistem de operare: Cray Linux Environment
Consum de putere: 8,2 MW
21
încă în dezvoltare
Aplicaţii
(ex. Netscape, Matlab, Word)
Sisteme de operare
(ex. Unix, Windows)
Compilatoare
Asambloare
Elemente influenţate de
arhitectura setului de
instrucţiuni
Procesor Memorie Dispozitive I/O
Proiectare digitală
Proiectarea circuitelor
Tranzistoare, Layout-ul IC
Împărţirea ierarhică pe componente, porneste de la nivelul de jos (apropiat de
structura hardware-fizică a calculatorului)
şi continua cu cel apropiate de utilizator prin considerarea elementelor
nivelului înalt (apropiat de componenta software-programe).
Nivelurile inferioare sunt constituite de componentele hardware
(tranzistori, circuite integrate, porţi logice) ce stau la baza construcţiei
calculatorului
Compilare
Limbaj de asamblare
Asamblare
Cod maşină
Interpretarea codurilor
Desfăşurarea unor
acţiuni specifice
ARHITECTURA
SISTEMELOR DE CALCUL
Curs 1+2
Cuprins
Aplicaţii
(ex. Netscape, Matlab, Word)
Sisteme de operare
(ex. Unix, Windows)
Compilatoare
Asambloare
Elemente influenţate de
arhitectura setului de
instrucţiuni
Procesor Memorie Dispozitive I/O
Proiectare digitală
Proiectarea circuitelor
Tranzistoare, Layout-ul IC
Recapitulare
Bit:
unitate elementara de informatie
poate avea valoarea 0 sau 1.
Aceste valori corespund fizic unor nivele
de tensiune, în funcţie de circuitele
electronice cu care este construit
calculatorul.
starea unui bistabil, sau a unei celule
elementare de memorie
Modul în care se reprezintă datele numerice într-un calculator are
legătură directă cu structura UCP, având influenţă asupra dimensiunii
registrelor de uz general locale, al dimensiunii magistralei interne şi al
complexităţii unităţii de execuţie.
Cap. 1. Concepte de
logica digitala
Simboluri
Operatorul NOT in algebra booleana se poate
reprezenta prin simbolul:
Operatorul binar AND in algebra booleana - efect produsul logic (multiplicare) intre A “si” B; se
poate reprezenta: AB, A*B
A
B F=ABC
C
A A
B F=AB
Fig.2 Exemplu efect poarta AND, cu
B diagrama temporala ce ilustreaza
relatia intre intrare si iesire
F
OR
Operatorul binar OR – suma logica intre A “sau” B se poate
reprezenta: A+B
A1 A2 A3 A4
E E
1 0 0 0
EA1 EA2 EA3 EA4 A Out A Out
A E Out A E Out
x 0 High z x 0 High z
0 0 1 0
0 1 0 0 1 1
EB1 EB2 EB3 EB4
1 1 1 1 1 0
B1 B2 B4 (a) (b)
B3 = A1
A B AND OR NAND NOR XOR NXOR
0 0 0 0 1 1 0 1
0 1 0 1 1 0 1 0
1 0 0 1 1 0 1 0
1 1 1 1 0 0 0 1
A A A
B f=AB B f=A+B B f=A + B
AND OR XOR
A A A
B
f=AB
B
f=A+B f=A . B
B
NAND NOR Ex-NOR
Intrari Intermediar Iesiri
B A A.B A+B Q
0 0 0 1 1
0 1 0 0 0
1 0 0 0 0
1 1 1 0 1
Intrari Iesiri
A B C D Q
0 0 1 0 0
0 1 1 1 1
1 0 1 1 1
1 1 0 0 1
Intrari Intermediar Iesiri
C B A A.B.C B C B+C A.(B+C) Q
0 0 0 0 1 1 1 0 0
0 0 1 0 1 1 1 1 1
0 1 0 0 0 1 1 0 0
0 1 1 0 0 1 1 1 1
1 0 0 0 1 0 1 0 0
1 0 1 0 1 0 1 1 1
1 1 0 0 0 0 0 0 0
1 1 1 1 0 0 0 0 1
Implementarea unei functii booleene folosind porti logice
Solutie posibila
Cap. 2. Reprezentarea
informatiilor
numerice
Sisteme de numeratie:
set de simboluri
set de reguli de reprezentare
baza = numarul de simboluri folosite
sisteme ponderale/neponderale
Un sistem de numeraţie este constituit din ansamblul
regulilor de reprezentare a numerelor folosind cifre.
Cifrele sunt simbolurile utilizate pentru reprezentarea
numerelor
Octet (byte):
grup de 8 biti
unitatea elementara de adresare la cele mai multe
calculatoare actuale (inclusiv Intel x86)
poate reprezenta: o valoare numerica, un caracter (cod
ASCII), un set de variabile (semnale) logice
7 6 5 4 3 2 1 0
8 Octal 0,1,2,3,4,5,6,7
10 Zecimal 0,1,2,3,4,5,6,7,8,9
16 Hexazecimal 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
Sisteme de numeratie:
sistemul binar: putine reguli, multe cifre
sistemul zecimal: multe reguli, mai putine cifre
sistemul hexazecimal: sistem intermediar intre binar si zecimal
( 110 001 011 100 )2 ( 4 3 2 7 )8
( 6 1 3 4 )8 ( 100 011 010 111 )2
Un număr poate fi scris din baza 10 în binar descompunând prin împărţiri repetate
la doi numărul zecimal şi scriindu-l după puterile lui 2.
Exemplu:
77 = 64 + 8 + 4 + 1 = 26 + 23 +22 + 1 = 1*26 + 0*25 + 0*24 + 1*23 + 1*22 + 0*21 + 1*20
Deci, 77 se scrie în binar 100 1101.
Exemple:
Conversia numarului 23,25 din zecimal in 23 | 2
binar 23,2510 = 10111,012 22 | 11 | 2
1 10 | 5 |2
1 4 |2 |2
Conversia numarului zecimal 933,25 in 1 2 |1 | 2
hexazecimal 0 0
933,2510 = 3A5,416
1
933 | 16
Stop atunci cand catul este 0.
928 | 58 | 16
5 48 | 3 | 16
10 |0 0,25 x 2 0 , 5
3 0,25 x 16 4 , 0
0,5 x 2 1, 0
Conversii
0 0 1 0 1 0 1 1 1 0 1 0 1 1 0 0
2 B A C
conversie la baza10
conversie baza 16->10
Conversie octal – in – zecimal Conversie Octal – in – Binary
~ 11592.24
Ex. verificare: Reprezentare baza 2, conversie la baza10
egal cu
Fixare cunostinte
Ex.1:Se consideră numărul 1915.40625; se cere conversia acestuia în binar.
partea întreagă (N1) se reprezintă în binar cu ajutorul împărţirii repetate la baza (2), reţinând în mod sistematic
resturile obţinute. Numărul în binar reprezintă concatenarea resturilor parţiale generale, în ordinea inversă
obţinerii lor (Condiţia de terminare a algoritmului este obţinerea unui deîmpărţit parţial mai mic decât
baza 2).
conversia lui N2 se obţine prin înmulţirea repetată cu baza (2), reţinând în mod sistematic partea întreagă a
rezultatelor parţiale obţinute, în ordinea obţinerii acestora (Condiţia de terminare a algoritmului este
obţinerea unui rezultat fără parte întreagă (sau un număr suficient de iteraţii)).
Fixare cunostinte
virgula mobile
Virgula (punctul zecimal sau binar, în notaţia engleza) nu se reprezintă fizic în
registrele calculatorului, dar poziţia sa este cunoscută (stabilită) pentru
fiecare dintre modurile de reprezentare
Nu toate calculatoarele conţin însă suportul hardware necesar pentru aritmetica în virgulă mobilă,
Se pot efectua operaţiile cu numere în virgulă mobilă prin emulare (interpretare) cu ajutorul unor
programe de emulare.
Reprezentarea numerelor în virgulă fixă
operaţiile sunt executate rapid de procesoarele în virgulă fixă, care sunt mai ieftine şi au
consum semnificativ mai redus decât cele în virgulă mobilă.
Este fix atât numărul de poziţii ale părţii întregi cât şi numărul de
poziţii ale părţii fracţionare
(a) (b)
bitul de semn – S
partea întreagă – I
partea fracţionară, formată din Q biţi
Notaţia utilizata în mod curent pentru reprezentarea în virgulă fixă în
reprezentarea unui număr semn
Qi.q,
unde:
Exemplificarea reprezentării unui format care include atât parte întreagă cât şi
fracţionară, Q3.12, pentru numerele cu semn
Exemplu de înmulţirire a două numere pe 16 biţi cu semn, in format
Q.15
a nr . 16 biti b nr . 16 biti
*
32 biti
1
16
rezultat
nr. 16 biti
Probleme specifice programării în virgulă fixă şi soluţii
32768 32767
>> 1/32767-1
ans =
-0.999969481490524
0 0
() ( ) () ( )
16384 16384 0.5 0.5
32768 32767 1 1
Numere negative:
mai multe metode de reprezentare (codificare):
Modulul numărului are aceeaşi reprezentare atât pentru numere pozitive cât
şi pentru cele negative,
Marime si semn:
exemplu: -7 1000.0111
Numere întregi cu semn, reprezentate
pe n biţi
Bitul bn-1 este bitul de semn, bitul bn-2 este cel mai
semnificativ bit (MSB, cu ponderea 2n2), iar b0 este
bitul cel mai puţin semnificativ (LSB). Virgula are
poziţia fixă imediat în dreapta LSB (b0).
Numerele subunitare cu semn,
reprezentate pe n biţi
Domeniul de reprezentare:
algoritmiilor de calcul
Mod de reprezentare:
Pentru numere pozitive reprezentarea este
identică cu cea făcută în MS.
-22=1110.1001 C1+
1110.1010 C2
Calculul complementului fata de doi, pentru un anumit numar X, reprezentat pe n biti, va fi:
Astfel, prin reprezentarea complementului fata de doi al unui numar, se obtine reprezentarea binara a
opusului acestui numar (deci [X]2 = - X). De exemplu, fie
X = 6(10) = (0110)2, n=4. Calculand complementul fata de doi al acestui numar, se obtine reprezentarea
Reguli:
Domeniul de reprezentare al C2
Un întreg în reprezentarea complement faţă de doi poate fi uşor extins la un format mai mare (un
număr mai mare de biţi) fără schimbarea valorii sale. Pentru aceasta este necesar doar ca bitul de
semn sa fie repetat în toate poziţiile binare de ordin superior apărute. - > operaţie de extensie de
semn.
Exemplu pentru un întreg pe 16 biţi extins apoi la 32 de biţi:
Valoare binară
000 001 010 011 100 101 110 111
MS +0 +1 +2 +3 -0 -1 -2 -3
C1 +0 +1 +2 +3 -3 -2 -1 -0
C2 +0 +1 +2 +3 -4 -3 -2 -1
Exercitii
semn-mărime
complement de 1 – C1
complement de 2 – C2
Diferite reprezentări ale numerelor fracţionare pentru o lungime de 3 biţi
a cuvintelor.
Aşa cum s-a mai specificat, există două reprezentări pentru zero în
format mărime cu semn şi complement fată de 1 şi nici o reprezentare
pentru –1.
Formatul complement faţă de 2 are o singură reprezentare pentru 0
Reprezentarea în complement faţă de 2 este adesea utilizată în
implementarea filtrelor digitale datorită uşurinţei efectuării operaţiilor de
adunare şi scădere, caz în care descăzutul se adună cu complementul
faţă de doi al scăzătorului.
Aritmetica numerelor întregi, pozitive (fara semn)
Adunarea / scaderea.
2 7 26 25 2 4 2 3 2 2 2 1 2 0
1 1 0 1 1 0 1 1 +
0 1 0 0 0 1 1 0
1 0 0 1 0 0 0 0 1
Depasire (overflow / borrow)
Figura 1 Shiftarea în
complement de 1.
Figura 2 Shiftarea în
complement de 2.
1s x M x BE
s= semn (0 sau 1)
M = semnificant (mantisa),
◦ reprezentată în calculatorul numeric ca un număr binar subunitar cu semn, cu
prima cifră după virgulă diferită de zero;
◦ 0 - 9999999 - forma standardizata
◦ indică mărimea exactă a numărului într-un anumit domeniu
E = exponentul, reprezentat ca un număr întreg cu semn;
◦ indică ordinul de mărime a numărului, fiind puterea la care se ridică baza
mantisei. Exponentul indică deci implicit poziţia virgulei binare.
B = baza, este 2 (rar 10), sau o putere a lui 2,
nu este reprezentată în calculatorul numeric, dar se ţine cont de valoarea bazei atunci
când se efectuează operaţii aritmetice.
La un anumit calculator numeric valoarea bazei este aceeaşi pentru toate
numerele reale reprezentate.
Reprezentarea in virgula flotanta
limite de reprezentare:
-∞ +∞
0
-0,999*1099 -0,1*10-99 0,1*10-99 0,999*1099
dacă numărul de virgulă flotantă este reprezentat în MS, atunci se consideră un număr
normalizat dacă prima cifră binară normală succesivă virgulei este ‘1’ şi nu ‘0’, adică se
elimină zerourile nesemnificative (leading 0's);
dacă numărul în virgulă flotantă este reprezentat în C2 atunci se spune că este normalizat
dacă bitul de semn şi bitul cel mai semnificativ al mantisei diferă valoric;
prin normalizare, mantisa obţine valori în câmpul restrâns 1/2 ≤ |M| < 1;
Reprezentarea normalizată are următoarele
avantaje:
inmulţire: 0⋅Inf
conversia lui N2 se obţine prin înmulţirea repetată cu baza (2), reţinând în mod sistematic partea
întreagă a rezultatelor parţiale obţinute, în ordinea obţinerii acestora (Condiţia de terminare a
algoritmului este obţinerea unui rezultat fără parte întreagă (sau un număr suficient de iteraţii)).
Reprezentarea conform IEEE 754 rezultă:
Unicode – foloseşte modele pe 16 biţi pentru reprezentarea fiecărui simbol (65 536
şabloane diferite)
ISO – pe 32 de biţi (17 x 106 simboluri)
Exemple:
litere mari: A- 41H, B- 42H, C - 43H ...... literele mari sunt cuprinse între 65 (Alt 65 pe
tastatura calculatorului va determina afişarea literei A) şi 90 (codul pentru litera Z).
litere mici: a - 61H, b - 62H, c - 63H, .. literele mici au codurile cuprinse între 95 şi 122
cifre: 0 - 30H, 1 - 31H, ..... 9 - 39H au codurile între 48 şi 57
altele: spatiu - 20H, CR - 0DH, LF - 0AH..... de exemplu, & are codul 38
Alte metode de codificare
Coduri ponderale
8421, BCD (Binary Coded Decimal),
Coduri neponderale
Gray
Coduri detectoare si corectoare de erori
Se bazeaza pe redundanta codurilor
BCD+paritate, paritate matriciala,
coduri Hamming
ASC
Curs 4
Cuprins
Sistem numeric
Porturi digitale de I/O
Recapitulare
Bit:
unitate elementara de informatie
poate avea valoarea 0 sau 1.
Aceste valori corespund fizic unor nivele de
tensiune, în funcţie de circuitele electronice
cu care este construit calculatorul.
starea unui bistabil, sau a unei celule
elementare de memorie
Prin program, utilizatorul va putea efectua operatii de citire de la portul P1 si, prin testarea bitului D15 de date, va putea determina starea conversiei A/D.
Ceilalti biti de date (D10¸D14) nu sunt utilizati si ar putea, in principiu, sa fie folositi ca biti de intrare de uz general. De remarcat faptul ca circuitele 8286 au
selectat doar sensul de transferare a datelor de la pinii A catre pinii B, prin conectarea pinului T la nivel 1 logic (la +5 V). Activarea circuitelor tampon este
facuta la aparitia semnalului de selectie P1, simultan cu semnalul de citire, RD (generand semnalul ITGRD aplicat intrarilor OE ale circuitelor 8286).
Circuitele de interfață au rolul de a converti semnalele de intrare de diferite forme în semnale logice
adaptate unității centrale și de a transforma semnalele logice ale unității centrale în semnale de ieșire
corespunzătoare.
Utilizare porturi digitale de I/O
Citiri de la porturi de I/O
- Cuvinte de stare – citire informatii despre functionarea interfetei (viteza de
lucru, citire stare parametri, etc.)
- Cuvinte de date – citire date de la interfata (stare biti port digital, valori specific
conversiei A/D, etc.)
Scrieri catre porturi de I/O
- Cuvinte de comanda – setare parametri de functionare pentru interfata
(stare/resetare stare parametri, comenzi ON/OFFpentru elemente de iesire
digitale, etc.)
- Cuvinte de date – trimitere date spre interfata (valori conversie D/A,
stare/resetare biti port iesire digital, etc.)
Pentru oricare cuvant de date al portului exista un element exterior de tip inchis/deschis
(ON/OFF sau 1/0)
Input – citeste stare elementului de tip contact – are doua stari -> buton/tasta/contact
Output – seteaza starea unui element de executie de tip binary -> releu, LED,
contactor, bec, etc.
Utilizare porturi digitale de I/E
Echipament 0
1
2
n-1
n
Echipament 0
1
2
n-1
n
Identificarea starii unui echipament - INPUT
Identificarea starii echipamentului conectat la un port de intrare se face prin testare, astfel:
- Se izoleaza bitul corespunzator din cuvantul de date citit de la portul de intrare
- Se construieste o constanta numita masca de testare, pentru a izola bitul de identificat. Aceasta va avea
valoarea “1” pe pozitia bitului de testat si “0” in rest
- Se efectueaza operatia logica “SI” (AND) intre cuvantul de date cittit de la port si masca construita.
Cuvant de date citit
de la port de intrare bit_n .…bit_k+1 bit_k bit_k-1 .…bit_0 Data_INPUT
(INPUT):
Operatia logica:
AND
Mască de testare,
0 ………....0 1 0 …….…0 Masca_bit_k
pentru izolare bit_k:
- Se seteaza bitul/biti corespunzator(i) din cuvantul de date scris carte port, prin punerea valorii “1” pe bitul/bitii
de setat.
- Se construieste o constanta numita masca pentru setarea bitului/bitilor de setat, care va avea valoarea “1”
pe pozitia bitului/bitilor pentru setat, iar restul de biti vor fi “0”
- Se efectueaza operatia logica “SAU” (OR) intre cuvantul de date anterior scris la portul de lucru (pentru a nu
modifica stare altor echipamente conectate la port) si masca.
Rezultat Rez_OUTPUT_bit_kt
bit_n .…bit_k+1 1 bit_k-1 .…bit_0
Setarea bitului k:
Masca_bit_k = 10000b; // valoarea 1 trebuie pozitionata pe pozitia k
Data_OUTPUTt-1 |= Masca_setare_bit_k;
// OUTPUT la port Rez_OUPTUT_bit_kt
Resetarea starii unuia sau mai multor echipamente - OUTPUT
- Se reseteaza bitul/biti corespunzator(i) din cuvantul de date scris carte port, prin fortarea pe valoarea “0” a
bitului/bitilor de resetat.
- Se construieste o constanta numita masca pentru resetarea bitului/bitilor de resetat, care va avea valoarea “0
pe pozitia bitului/bitilor pentru resetat, iar restul de biti vor fi “1”
- Se efectueaza operatia logica “SI” (AND) intre cuvantul de date anterior scris la portul de lucru si masca. Astfel,
nu se modifica starea altor echipamente conectate la portul respective.
Resetare echipament k
Resetare bit k:
Masca_bit_k = 1111111110111111b; // valoarea 0 trebuie
pozitionata pe pozitia k
Data_OUTPUT &= Masca_resetare_bit_k;
// OUTPUT la port Rez_OUPTUT_bit_k
Ex. : Schema interfata porturi de I/E de uz general
port intrare; citire in port iesire; inscriere pe bitii
Circuit tampon registrul uP (bitii D0 - de comanda CMD0¸CMD15 Circuit Latch
D15)
Circuite de tip 8286 pentru portul de intrare (circuite tampon Circuite de tip 8282 pentru portul de iesire, pentru memorarea unor
izoland semnalele de intrare de magistrala de date a comenzi date de microprocesor spre exterior. Iesirile acestor circuite
sistemului). Sensul transferului de date prin aceste circuite sunt in permanenta activate (pinul OE este conectat la masa), iar
fiind de la intrarile A catre iesirile B, pinul de control al impulsul de memorare a datelor de pe magistrala de date este sintetizat
sensului transferului de date, T, este conectat permanent la pe baza semnalului de selectie a portului P2 (adresa 310h), utilizat ca
nivel logic “1”. Activarea circuitelor tampon se face prin pinul port de
OE, iesire — impreuna cu semnalul WR .