juice Posted October 1, 2006 Report Posted October 1, 2006 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 microprogrameNu stau sa explic ce e ala HDD , FDD etc, ci o sa trec direct la explicare procesarii informatieiArhitectura (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 , etcMai precis organizarea unei masini se refera la- implementarea , capacitatea si performantza unitatilor functionale- interconexiunile dinte aceste unitatzi- fluxul de informatie dintre unitatzi- controlul acestui fluxAsa 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 memorieUnitatea 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 obtinuteLa 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 secundeO 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..doohE 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 fiA) din punct de vedere al accesarii datelorA.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 , etcA.2 memorie cu access asociativ , memorie cacheA.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 din punctul de vedere al volatilitatiiB.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 etcAr mai fi C) din punctu de vedere al accesului de castre CPUC.1 memorie interna: accesata direct de catre CPUC.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 fddD.2 memorie readonly doar citirea datelor , CD-romMemoria 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 Quote
juice Posted October 1, 2006 Author Report Posted October 1, 2006 Cu tutorialul asta merge in paralel si un program mic Norton Guide , il aflati aici.http://juice.xeepo.com/programs/NG.zipdai open si acolo comenzi msdos , intreruperi , instructiuni ASM si multe altele ,e util. Quote
Da_Boss Posted October 1, 2006 Report Posted October 1, 2006 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 .. Quote
virusz Posted October 2, 2006 Report Posted October 2, 2006 sincer nope, dar stii dc? ... din toate care le-a facut nu stiu dak a fost unul in totalitate corect ...si nu are sens sa iti mai pierzi timpul citindul..in fine.. m-am uitat totusi asa in mare peste el, poate mai aflii ceva din el... nu e chair "tzava" Quote
juice Posted October 3, 2006 Author Report Posted October 3, 2006 heh mda Shocker merci pt insulta ta neintentionata..sau fie tutorialul e scris in intregime de mine , eh nah oricum e bine daca mai macina si invidia asta:)..dooh Quote
virusz Posted October 4, 2006 Report Posted October 4, 2006 intradevar mai bine nu postam dar nu am postat doar de dragul de a posta.... Quote
MaHaReT Posted October 4, 2006 Report Posted October 4, 2006 virusz wrote: din toate care le-a facut nu stiu dak a fost unul in totalitate corect ...atunci , de ce la-i m ai postat , sau nu teai explrimat bine ........ din cea-i spus u , reiese ca in toate au fost greseli ! Quote
virusz Posted October 4, 2006 Report Posted October 4, 2006 ...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! Quote
juice Posted October 13, 2006 Author Report Posted October 13, 2006 desigur Razvan si ce nu era bine ? in controlul unui program ? , sau vrei sa faci tu o alta caracterizare/detaliere a textului , sau .. sa modifici istoria Quote
zbeng Posted October 13, 2006 Report Posted October 13, 2006 frumos tutorial juice cred ca ti-a luat vro 2-3 ore sal scrii;) Quote
!_30 Posted October 13, 2006 Report Posted October 13, 2006 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. :@ Quote
zbeng Posted October 13, 2006 Report Posted October 13, 2006 !_30 aici e un forum fiecare zice parerea lui si fiecare o respecta sau nu da u chiar tre sa comentezi la toti sau ce pl**** mea te crezi asa "superios" te resectam poate pt ceea ce zici da ne mai saturam stii toti avem o limita... Quote