Desigur, știi școala de bază:
• Computer (PC) - dispozitiv automat, bazate pe software-ul pentru a fi utilizat cu informațiile.
• Structura constă într-o memorie de calculator (de stocare a datelor și software), procesorul (prelucrarea datelor), dispozitivul I / O (receptie / transmitere de informații).
• În 1946, John von Neumann a formulat principiile de bază ale dispozitivelor de calculator, numit arhitectura von Neumann.
• computer modern este o unitate a aparatului (hardware) și software (software).
producția de serie de calculatoare electronice (calculatoare) începe în diferite țări din anii 1950. Istoria de dezvoltare de calculator pot fi împărțite în generație. Trecerea de la o generație la alta este asociată cu schimbarea bazei elementului pe care să creeze mașini cu o schimbare în arhitectura de calculator, odată cu dezvoltarea caracteristicilor tehnice de bază (viteza de calcul, dimensiunea memoriei, etc ..), cu schimbări în aplicații și metode de exploatare a mașinilor.
În conformitate cu arhitectura de calculator se referă la principiile cele mai generale de construire a unui calculator, să pună în aplicare controlul programului de operare și interacțiune a unităților funcționale de bază sale.
Baza arhitecturii calculatoarelor din generații diferite pe principiile John von Neumann. Cu toate acestea, în procesul de dezvoltare există unele abateri de la arhitectura von Neumann.
O arhitectură de calculator cu un singur procesor
Elementul de bază al calculatoarelor din prima generație (1950 ani) au fost tuburi cu vid, iar calculatoarele din a doua generație (1960) au fost create pe baza elementelor semiconductoare. Cu toate acestea, arhitectura lor a fost similară. Este cel mai consecvent cu principiile von Neumann. La aceste mașini, un singur procesor controlează funcționarea tuturor dispozitivelor: dispozitivele din memoria internă și externă, de intrare și ieșire, așa cum se arată în Fig. 2.4.
În conformitate cu principiile von Neumann, un program executabil stocate în memoria internă - în memorie cu acces aleator (RAM). Există, de asemenea, date care funcționează programul. Fiecare program de comandă și fiecare valoare (element de date) ocupă o anumită celulă de memorie, așa cum se arată în Fig. 2.5.
Procesorul începe de execuție din prima instrucțiune și se termină la comanda de oprire, sa-i spunem STOP ei. Când următorul procesorul de instrucțiuni preia din memorie valoarea prelucrate și le stochează într-un procesor special de celule de memorie internă - registre. Apoi, comanda este executată, de exemplu, se adaugă cele două numere, după care rezultatul este scris într-o celulă de memorie specifică. Procesorul trece la următoarea comandă. Executarea programului se va încheia atunci când adresa procesorului la comanda STOP.
Printre echipele, există programe de comenzi de prelucrare a datelor și echipa de tratament la dispozitive externe. instrucțiuni de procesare a datelor procesorul execută cu ajutorul furnizat-l ALU - ALU, iar acest proces are loc relativ repede. Și comenzile externe de control al dispozitivului sunt executate de către aceste dispozitive: dispozitive I / O, memorie externă. Executarea acestor comenzi este de multe ori mai mult decât run-time instrucțiunile de prelucrare a datelor. Atunci când o arhitectură de calculator cu un singur procesor prezentat în Fig. 2.4, procesorul, oferind echipa un dispozitiv extern, așteaptă punerea sa în aplicare. În cazul în care acesta poate fi un număr mare de accesări la dispozitive externe, cele mai multe ori procesorul de program „inactiv“, și, prin urmare, eficiența este scăzută. calculatoare de performanță cu arhitectura este în intervalul de 10-20 de mii de operații pe secundă (op. / S).
Folosind procesoare periferice
Următorul pas în dezvoltarea arhitecturii de calculator a fost refuzul unui dispozitiv uniprocesor. Deja în cele mai noi modele de a doua generație de mașini, în plus față de o unitate centrală de procesare (CPU), prelucrarea datelor, procesoarele periferice prezente, numit I / O canale (fig. 2.6). Sarcina lor a fost de gestionare autonomă a dispozitivelor I / O și memorie externă, care este eliberat de acest lucru CPU. Ca urmare, eficiența procesorului a crescut semnificativ. Performanța anumitor modele de mașini cu o astfel de arhitectură este de la 1-3,000,000 op. / Sec.
La toate modelele, a treia generație de calculatoare, care au fost create pe baza unor circuite integrate (1970-80s), utilizat pentru arhitectura cu un procesor central și periferice procesor periferice. O astfel de arhitectură multi-procesor permite punerea în aplicare a modului multiprogramming: în timp ce unul este ocupat de date de intrare / ieșire, care este controlată de către procesorul periferic, celălalt program ia CPU prin efectuarea de calcule. Cu îmbunătățite componente și alte componente hardware pe unele modele de-a treia generație de performanță calculator atins până la 10 milioane op. / S.
Pentru separarea resurselor informatice între mai multe programe executabile necesare crearea de software special: sistemul de operare (OS). Pentru a resurselor partajate, includ în primul rând timp de procesor și memorie. OS sarcină este de a diverse programe executate în același timp, pe un calculator, „nu interferează“ unele cu altele și la eficiența procesorului a fost maxim, cu alte cuvinte, la CPU nu este „inactiv“. OS presupune, de asemenea, grija utilizarea prioritară a mai multor programe de dispozitive externe comune: memorie externă, I / O dispozitive.
Arhitectura PC
calculator personal (PC) - cele mai frecvente în timpul nostru, tipul de calculator. Aspectul PC-ul este conectat cu crearea de microprocesoare, care a început în anii 1970. Până de curând, a existat un singur dispozitiv PC procesor central și o multitudine de procesoare periferice care controlează dispozitivele externe, care sunt numite controlere. Arhitectura PC-ului prezentat în Fig. 2.7.
Pentru comunicarea între unitățile funcționale individuale PC utilizează un drum comun de informații numit magistrala de sistem.
Magistrala de sistem este împărțit în trei părți:
Un avantaj important al acestei arhitecturi poate fi conectat la un calculator pentru dispozitive noi sau înlocuirea echipamentelor vechi cu mai moderne. Aceasta se numește principiul arhitecturii deschise. Pentru fiecare tip și model al dispozitivului utilizat de către un controler, și o parte a sistemului de operare are un program de control, care se numește un driver de dispozitiv.
Arhitectura deschisă a calculatorului personal - o arhitectură, care prevede construirea unui calculator modular, cu posibilitatea de a adăuga și înlocuirea dispozitivelor individuale ".
Arhitectura neneymanovskih de calcul
În ciuda performanțelor computerului în creștere rapidă, care este la fiecare 4 până la 5 ani pe cei mai importanți indicatori este aproape sa dublat, există întotdeauna o clasă de probleme pentru care nici o performanță nu este suficient. Amintim câteva dintre ele.
1. Calculele matematice care stau la baza punerii în aplicare a modelelor matematice ale multor procese. resursele de calcul gigant, care pot fi puse în aplicare foarte repede (cum spun unii, în timp real) sunt necesare pentru o previziune mai de încredere și pe termen lung meteo pentru rezolvarea problemelor aerospațiale, inclusiv de apărare, pentru a rezolva multe probleme de inginerie, și așa mai departe. D.
2. Căutarea de informații în baze de date uriașe în spațiul informațional al internetului.
3. Modelarea inteligenței - cu toate performanta fantastica, computerele RAM de astăzi este doar o mică parte a memoriei umane.
performanța computerului cu un singur procesor central are o limitare fizică: a crescut viteza procesorului duce la generarea de căldură a crescut, care nu poate fi nelimitat. modalitate promițătoare de a îmbunătăți performanța computerului constă în modul de non-unicitate a principalelor componente ale calculatorului: un procesor, o memorie, un autobuz, sau toate împreună. Acesta este modul în care abatere mai mare de arhitectura von Neumann.
Pentru a face clar de ce mai multe procesoare de calculator, va discuta algoritmul pentru rezolvarea unor probleme simple de matematică. Există o serie de 100 de numere: a1. a2. A100. Necesar pentru a găsi suma lor.
Nu este nimic mai simplu! Și pe calculator, și fără ea probabil vom proceda după cum urmează: se adaugă primele două numere, cum ar fi notate cu suma lor (de exemplu, S), și apoi adăugați-l la al treilea, si va face o altă 98 de ori. Acest exemplu de proces de calcul secvențial. diagrama bloc este prezentată în Fig. 2.8.
Din moment ce omul nu are un al doilea cap, în caz contrar această sarcină nu poate rezolva singură. Dar imaginați-vă că noi nu rezolva singuri, ci întreaga clasă (25 elevi). Apoi, există posibilitatea unei secvențe complet diferite de acțiune.
1. Unind numerele din pereche - două pentru fiecare (un total de 50 de numere distribuite); de exemplu, elev № 1 ia un a1 și a2. elev № 2 - a3 și a4. și t. d.
2. Dă comanda „PACK!“ - și toată lumea pune numărul lor.
3. Dă comanda „write!“ - și toată lumea scrie cu creta pe tablă rezultatul.
(. A51 A100) 4. Din moment ce ne-am luat încă 50 de numere prime, repetați pașii 1 - 3. După aceasta, avem de pe placa de 50 de numere b1 = a1 + a2. B50 = A99 + A100 - rezultatele adăugări asociate.
5. Se combină în perechea de bi și repetați pașii 2 - 4.
Vom continua acest proces (2 - 5), atât timp cât va exista un singur număr - suma necesară.
Prima impresie este că este foarte dificil, mult mai dificilă decât algoritmul în Fig. 2.8. Dacă ne-am dorit să scrie acest algoritm în formă de diagramă bloc, am avea cu excepția descrierea ordinii de acțiuni și obiecte pentru a face ceea ce nu am făcut atunci când scris algoritmi - pentru a asigura sincronizarea proceselor paralele în timp. De exemplu, executarea de comenzi 2 și 3 trebuie să fie completate de către toți participanții la calcule înainte ca acestea vor fi continuate (pentru a merge la n. 4), sau chiar pentru a rezolva această problemă simplă a fost haos.
Dar dificultatea nu este un motiv obiectiv pentru a respinge acest fel, mai ales dacă vorbim despre posibilitatea de o accelerare semnificativă de calcul. Ceea ce am sugerat mai sus, este numit în limba de programatori de calcul paralel și este destul de cedat la descrierea formală. accelerarea de calcul efectul este evident: la punctul 2 de mai sus algoritmul accelerează etapa corespunzătoare a lucrărilor de până la 25 de ori!
Următoarea întrebare este: ce ar trebui să fie schimbat în unitatea de calculator, astfel încât să poată lucra așa? Pentru a pune în aplicare un astfel de sistem de calcule calculator nevoie de 25 de procesoare, uniți într-o singură arhitectură și capabil să lucreze în paralel.
Astfel de sisteme multiprocesor - tehnologie de calculator curent reale.
Dar să ne întoarcem la succesiunea acțiunilor descrise mai sus - încă este sursa problemelor. Imaginați-vă că în circuitul din Fig. 2.7 Noi încă 24 procesor central dorisoval conectat la un autobuz. La punerea în aplicare se întâmplă de manipulare simultan 25 de procesoare de la magistrala de sistem pentru transferarea rezultatelor de adiție în memorie în acest calculator echipa 3. Dar, ca singur autobuz, numărul de pe acesta poate fi trimis doar unul la un moment dat! Aceasta înseamnă pentru executarea comenzii 3 va trebui să aranjeze pentru transferul tuturor numerelor în memorie. Imediat se pune întrebarea: nu se va reduce la zero în cazul în care coada de așteptare este un avantaj plin de paralelismul operațiilor în Etapa 2? Și dacă beneficiile rămân, cât de mare sunt? Vor fi rambursate în cazul în care 24 de costuri suplimentare pentru procesoare?
În situația care a urmat este firesc pas „gândire inventivă“: punerea în funcțiune a mai multor autobuz sistem de arhitectură. Iar dacă ne gândim la potențialele probleme, precum și mai multe dispozitive de memorie.
După cum puteți vedea, este foarte ușor! Examinare în schimbările de dispozitiv de calculator duce la „neneymanovskim“ arhitecturi. Inventatorii acestor sisteme este necesar să se găsească un compromis între complexitatea în creștere (și ca o consecință - valoare) și accelerarea activității lor.
Intrupari de calcul neneymanovskih
In sensul cel mai general, prelucrarea paralelă a datelor se referă la procesele care se pot efectua operații simultan mai multe mașini. Calculul paralel poate fi realizată ca urmare a noii arhitecturi de calculator, precum și în detrimentul noilor tehnologii de programare. Astfel de tehnici sunt numite de programare paralelă.
Calcul distribuit - o modalitate de a face procesare paralelă utilizând o multitudine de calculatoare conectate la rețea. Aceste sisteme informatice, de asemenea, numit multicalculator.
Calcul distribuit este adesea implementat folosind clustere de calculatoare - mai multe calculatoare conectate într-o rețea locală și combinate cu software special care implementează procesul de calcul paralel. Calcul distribuit poate fi realizată cu ajutorul sistemelor multicalculator. format prin unirea mai multor calculatoare individuale printr-o rețea globală.
sistem multiprocesor formează un singur calculator, care aparține clasei de supercomputere. Realizarea paralelismului are loc în ele permițând funcționarea independentă a dispozitivelor individuale și de dublarea lor: .. mai multe procesoare, unități de memorie, autobuze, etc. Sistemul multiprocesor poate utiliza diferite metode de acces la totalul pentru întregul sistem de memorie. În cazul în care toate procesoarele au acces egal (omogene) la o singură memorie, sistemul informatic corespunzător numit un supercomputer vector.
Una dintre cele mai puternice supercomputere din lume, numit „Lomonosov“ (fig. 2.9) este produsă în România și lucrează în Universitatea de Stat din Moscova. Performanța sa este mai mult de o sută de trilioane de operatii pe secunda.
Întrebări și Sarcini
2. Care a fost plecarea de pe calculatoarele de arhitectura von Neumann pe a doua și a treia generație?
3. Ce este posibil să se realizeze în modul multiprogramming în a treia generație de calculatoare?
4. Ce este fundamental diferită de arhitectura clasică a arhitecturii PC-ului de calculator prima generație?
5. Care sunt funcțiile îndeplinite de către controlorul de dispozitive externe la PC-ul?
6. Care este principiul de deschidere a arhitecturii PC-ului?
7. Ce primul sistem de operare?
8. Pentru ce tipuri de probleme au nevoie de calcul superproductive?
9. Care este calculul paralel?
10. De exemplu, cu adăugarea de numere de 25 de elevi să încerce să analizeze următoarele situații: într-o clasă de numai 1 bucată de cretă; în sala de clasă 5 piese Creta; în clasa de 25 de bucăți de cretă. A se vedea modul în care aceasta afectează timpul de rezolvare a problemei (nota, de asemenea, lățimea de bord și mișcarea elevilor din clasa). Încercați să construiască un model al acestui proces. Porniți situația privind terminologia calculator pentru limba sisteme multiprocesor.
11. Care este sistemul multicalculator diferență de multiprocesor? Pe ce bază sunt supercomputere de lucru?