Jump to content
juice

Structura unui Sistem de Calcul(SC)

Recommended Posts

Din cauza timpului liber peste masura am zis sa scriu un tutorial dedicat celor interesati de arhitectura unui sistem sistem

de calcul (ceea ce avem fiecare home user). Ce este mai exact un sistem de calcul : e un dispozitiv care lucreaza automat sub

controlul unuiu program memorat , prelucrand date in vederea producerii unor rezultate ca efect al procesarii.

Ar fi mai intai bine de notat functiile de baza ale unui SC , acestea fiind : procesarea de date , memorarea de date ,

transferul de informatii si controlul asupra tuturor componentelor SC.

Structura sistemului de calcul este

- hardware - partea de achipamente : unitatea centrala de procesare , memoria , dispozitive periferice (cdrom) ,etc

- software - partea de programe : soft sistem(aplicatziile destinate SC-ului si SO-ului(Sistem Operation) , si soft

utilizator(restul programelor)

-firmware - partea de microprograme

Nu stau sa explic ce e ala HDD , FDD etc, ci o sa trec direct la explicare procesarii informatiei

Arhitectura (organizarea) unui SC se refera la acele atribute ale sistemului care sunt vizibile programatorului si nu au un

impact direct asupra executiei unui program: setul de instructiuni masina , caracteristicile de reprezentare a datelor ,

modurile de adresare si sistemul de intrare/iesire(I/O). Din punct de vedere organizatoric , componentele unui SC sunt :

- modulul de control

- calea de date

- memoria

- sistemul I/O(input / output)

- structuri de interconectare a componentelor

Multzimea instructiunilor masina (Instruction Set Arhitecture - ISA , nu e slotu pentru placa sunet sau retea ala mare de

langa PCI :) ) este de fapt o interfatza cheie intre nivelele de abstractizare , fiind interfatza dintre hard si soft-ul de

nivel scazut (low level software). O astfel de interfatza permite uhnor implementari diferite ale SC sa ruleze un soft

identic , in caz in care vorbim despre calculatoare compatibile , spre ex : calc compatibile IBM-PC nu au acelasi hardware

dar raspund aceleiasi ISA).

Ce defineste ISA ? ca sa intelegem mai exact ce si cum

- organizarea SC , modul de stocare a informatiei(registri , memorie)

- tipurile si structurile de date(codificari ,reprezentari)

- formatul instructiunilor

- setul de instriuctiuni pe care microprocesorul le poate efectua

- conditiile de exceptie(accesarea locurilor din memorie inexistente , interuperile speciale , sau cum e in c++ (pt care se

pricepe mai bine) throw si caught tratarea unei exceptzii , a unei erori , etc

Mai precis organizarea unei masini se refera la

- implementarea , capacitatea si performantza unitatilor functionale

- interconexiunile dinte aceste unitatzi

- fluxul de informatie dintre unitatzi

- controlul acestui flux

Asa ca fapt divers si e bine de stiut ca in prezent o mare parte din calculatoare sunt construite pe baza arhitecturii

Neumann. Cateva caracteristici ale acestei arhitecturi Neumann sa enumar :

- datele si instructiunile sunt reprezentate ca siruri de bitzi si sunt stocate intr-o memorie read/write.

- continutul memoriei se poate accesa in functie de locatie(adresa) , indiferent de tipul inf continute

- executia unui set de instructiuni se efectueaza secvential , prin citirea de instructiuni consecutive din memorie

Unitatea centrala ( central processing unit - cpu) ; procesorul controleaza modul de operare al calculatorului si executa

functiile de procesare ale datelor. Aceste functii ale CPU ar cam fi urmatoarele

- obtinerea de instructiuni care trebuiesc executate

- obtinerea datelor necesare instructiunilor

- procesarea datelor

- furnizarea rezultatelor obtinute

La nivelu procesorului putem defini doua componente : Unitatea artmetica-Logica(ALU) , Unitatea de comanda si control(UCC)

Pentru indeplinirea functiilor ce le-am enumerat mai sus procesorul are nevoie de registri si magistrale interne CPU.

Ce sunt registri ?! cei de procesor zic ; bon , sa vedem ..

Acesti registri sunt dispozitive de stocare temporara a datelor si informatiilor de control, de capacitate mica dar o viteza

foarte mare , functioneaza ca o memorie cache. Ca sa fac o paranteza , sincer la un calculator Pentium 3 procesor 500mhz avea

o viteza de 170 MB/s daca mai retzin bine.

in fine , sa trecem mai departe cu explicare celor doua componente ale procesorului.

Unitatea Aritmetica-Logica executa operatii ARITMETICE si LOGICE asupra datelor.

UCC (Unitatea de comanda si control) este componenta CPU care dirijeaza toate componentele SC si catre magistrala sistem, sau

capteaza semnale dinspre magistrala acestora.

PEntru executia unei instructiuni , acesa si datele necesare trebuie aduse din memoria secundara sau de la un dispozitiv de

intrare in memoria principala. CU coordoneaza cilclul de executie al instructiunii:

- citirea instructiunii din memoria principala(FETCH)

- decodificarea acesteia(DECODE)

- obtinerea operanzilor necesarii instrunctiunii(READ MEMORY)

- executia ei(EXECUTE, si daca e cazul ALU primeste controlul pt efectuarea oepratiei aritmetice sau logice implicate)

- si in final furnizarea rezultatelor in registri sau memorie(STORE)

Sa vedem cum sta treaba cu ceasul de sistem(The System Clock) ca tot il folosim zilnic ;)

Fiecare CPU are un ceas intern care produce si trimite semnale electrice pe magistrala de control pt a sincroniza operatiile

sistemului. Semnalele alterneaza valori 0 si 1 cu o anumita frecventa numita frecventa ceasului de sistem. Timpul

necesartrecerii din starea 0 in 1 si inapoi in 0 se numeste perioada ceasului sau ciclu de ceas(clock cycle).

Ca observatie e bine de stiut : 1 Hz = 1 ciclu de ceas/secunda , frecventa = 1 / perioada.

Toate operatiilor efectuate de microprocesor sunt sincronizate cu ceasul sistem. Asta inseamna ca procesorul nu poate efectua

operatii mai rapid decat frecventa de tact a ceasului. Sa luam exemplu un procesor cu o viteza de ceas de 200 Mhz are un ceas

intern care e capabil sa ticaie exact de 200.000.000 ori pe secunda , mult nu ?:) , deci un ciclu de ceas pt un astfel de

procesor are o durata de 1 / 200.000.000 secunde

O simpla instructiuni asm : mov destinatie , sursa se executa intre 2 si 14 cicluri de ceas procesor in functie de natura

argumentelor destinatie si sursa , care pot fi : registri generali , registri de segment , constante , adrese de memorie.

De-a lungu timpului , o problema serioasa a fost masurarea vitezei calculatoarelor , nah si cum s-a facut asta oare? Initial

s-a pornit cu frecventa de ceas a CPU. S-a dovedit rapid a fi o masura neadecvata , ca astfel ajungeam sa masuram doua

procesoare unul de 1 GHz si unul de 500 MHz si sa spunem ca ele pot rezolva o problema in acelasi timp sau puterea

procesorului de 500 MHz poate fi mai mare decat a celui de 1 GHz. Capacitatea maxima de memorie pe care o poate adresa un

procesor e de 1 MB la PC-uri.

S-a introdus pentru masurarea vitezei calculatoarelor , notziunea MIPS (Millions of Instructions per Second) care nu mai

depinde de ciclul de ceas. Aceasta masoara numarul de instructiunipe care le poate executa un procesor intr-o secunda.

Mai este o derivata MFLOPS(Million of Floating-Point Instructions per second) reprezinta numarul de instructiuni in virgula

flotanta(cum zic deseori programatorii) pe care un procesor le poate executa in unitatea de timp.

Care e faza cu dimensiunea unui microprocesor , sau un calculator pe N bitzi , ca tot vedem placi video pe 64 bitzi pe 128

bitzi etc.

Exista aici doua perspective la calculatoare. Una ar fi cea hardware , dimensiunea magistralei de date( de ex Pentium are o

magistrala de date pe 64 bitzi = 64 linii de date , astfel ca la fiecare "memory cycle" procesorul poate accesa 8 octetzi din

memorie) ( 1 octet = 1 kiloBye = 8 Kilobitzi doar ca informare dar cred ca asta se stie ). Si ar mai fi perspectiva soft :

dimensiunea unui cuvant de memorie(dimensiunea registrilor CPU)

Sa vedem cum e cu memoria..dooh

E un dispozitiv de stocare al datelor pt un anumit interval de timp. Aici sunt multe criterii de clasificare a tipurilor de

memorie ..e util sa le stim ca si cultura generala. Deci ar fi

A) din punct de vedere al accesarii datelor

A.1 memorie cu access aleator adica Random access Memory , locatziile pot fi accesat in orice ordine, ex orice chip de

memorie (memorie on-chip) , precum memoria principala(DRAM, SRAM), memoria flash , etc

A.2 memorie cu access asociativ , memorie cache

A.3 memorie cu access secvential : pentru a accesa a n-a inregistrare trebuie parcurse n-1 inregistrari , ex benzile

magnetice sau casetele alea de la casetofon simplu.

A.4 memorie cu access direct : spre deosebire de accesul secvential , pozitionarea pe o anumita inregistrare se face in mod

direct pe baza unui sistem de calcul de adresa. Ex : dispozitive de tip disc (hdd,floppydisk,cd-rom) alea alea :)

Ar fi o categorie B) din punctul de vedere al volatilitatii

B.1 memorie volatila ( de scurta durata) dupa ce scotzi sursa de la curent se pierde continutul, ex memoria principala SC

care cotine datele si instructiunile unilizate curent de CPU.

B.2 memorie non-volatila ( de lunga durata) - harddisk , cd-rom etc

Ar mai fi C) din punctu de vedere al accesului de castre CPU

C.1 memorie interna: accesata direct de catre CPU

C.2 memorie secundara sau dispozitiv de stocare al datelor : hdd , fdd(floppy disk device)

Si ar mai fi ultima D) din punctul de vedere al tipurilor de acces permise

D.1 memorie read/write ex hard disk fdd

D.2 memorie readonly doar citirea datelor , CD-rom

Memoria principala (interna) cunoscuta sub numele de RAM reprezinta toate spatiile de stocare de date accesibile CPU fara

folosirea canalelor I/O. In general capacitatea acestei memorii este intre 1 MB si 4 GB. Exista diferite tipuri de memorie

principala , nu are rost sa stai sa le explic ci doar enumar cateva : DRAM(Dynamic RAM) , SRAM(Static RAM).

Memoria SRAM e mai putin densa decat DRAM , de obicei raportul de capacitate DRAM/SRAM = 4-8 ; raportul de cost si timp de

access SRAM/DRAM=8-16.

Memoria secundara e reprezentata de dispozitivele precum Hard Disk Floppy Disk etc.

Structura unui HDD ar fi bine stiuta , asa pe scurt. O metoda de adresare a informatiilor de pe disc in general este

CHS(cylinde-head-sector). Discurile din HDD sunt organizate pe un cilintru , ele avand fetze , si pe fetze are piste

circulare. Portziunile de o anumita marime din aceste piste exact cum ar fii o bucata de 100 m dintr-un teren de alergare de

400m se numesc sectoare. La o discheta spre ex ca e mai usor la ea avem urmatoare configuratie : 2 capete de citire /

scriere numerotate 0 si 1 , 80 cilintri /disc (numerotati 0-79), 18 sectoare/pista (0-17) , 512 octetzi/sector.

Un criteriu de evaluare a performantzei unui disc poate fi calcult dupa formula

TimpAccess = TimpCautare + TimpRotire + TimpTransfer, unde TimpCautare depinde de nr de piste peste care trebuie sa se

deplaseze capul de accesare si viteza de cautare a discului , TimpRotire e in functie de viteza de rotatie a discului si de

distantza dintre sectorul care trebuie accesat si capul de accesare si TimpTransfer depinde de rata de transfer(bandwidth) a

datelor. Cam astea ar fi asa cateva puncte de reper in a intelege un calculator heh. mai sunt multe de spus..mai multe pe

viitor , now i'm tired and i have no more ideas :)

Sper ca a ajutat cat de cat tutorialul pentru cei interesati ..daca tot am ales sa-l scriu.

Bafta numa bine tuturor

Link to comment
Share on other sites

Nu stau sa explic ce e ala HDD , FDD etc, ci o sa trec direct la explicare procesarii informatiei

Cred ca mi`am gasit profesor sa fac meditatie .. pai .. noi .. care presupunem ca am trecut de chestia aia .. ne ia acuma profesorul juice .. care are timp liber destul ... si in loc sa gaureasca vreun sistem .. ca sa vedem si noi .. ne tine predica .. cu cate ceva ... ce el nu stie defapt tot .. :)

Link to comment
Share on other sites

...din toate care le-a facut nu stiu dak a fost unul in totalitate corect...

intradevar e cam asa dar dak ai sa fii umpik mai atent ai sa observi ca nu l-am citit in totalitate ci doar asa in mare, am spus ca tot e ceva bun din el, asta pentru ca nu l-am citit tot si am spus dc..

vezi ca nu m-am referit neaparat la partea despre care scrie in el ...

controlul unuiu program memorat.....

okay in fine....bafta!

Link to comment
Share on other sites

Zbeng , pe bune ca o dai numa' in off-topic.

Nu stiu de ce era nevoie de atata lauda , la un tutorial . O lauda , doua , dar nu nouazeci si noua .

Oricum faza cu "2-3 ore .." post hunting curat .. No more idea's ? Eu personal cred , daca l-a scris el , i-a luat mai putin. :@

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...