Principiile lui Von Neumann pentru construirea unui computer electronic. principiile lui John von Neumann

Acest tip de mașină este adesea denumit „mașină von Neumann”, dar corespondența dintre aceste concepte nu este întotdeauna clară. În general, când oamenii vorbesc despre arhitectura von Neumann, se referă la principiul stocării datelor și instrucțiunilor într-o singură memorie.

YouTube enciclopedic

  • 1 / 5

    Fundamentele doctrinei arhitecturii calculatoare von Neumann a pus bazele în 1944, când s-a implicat în crearea primului computer cu tub din lume, ENIAC. În timp ce lucra la ENIAC la Universitatea din Pennsylvania, în timpul numeroaselor discuții cu colegii săi John William Mauchly, John Eckert, Herman Goldstine și Arthur Burks, a apărut ideea unei mașini mai avansate numită EDVAC. Cercetare lucrările la EDVAC au continuat în paralel cu construcția ENIAC.

    În martie 1945, principiile arhitecturii logice au fost oficializate într-un document numit „First Draft Report on EDVAC” - un raport pentru Laboratorul de Balistică al Armatei SUA, care a finanțat construcția ENIAC și dezvoltarea EDVAC. Raportul, deoarece era doar o schiță, nu era destinat publicării, ci doar distribuției în cadrul grupului, dar Herman Goldstein - supervizorul de proiect pentru armata SUA - a reprodus acest lucru. munca stiintificași l-a trimis unui cerc larg de oameni de știință pentru revizuire. Întrucât doar numele lui von Neumann era pe prima pagină a documentului, cei care au citit documentul au avut falsa impresie că el este autorul tuturor ideilor prezentate în lucrare. Documentul a furnizat suficiente informații pentru ca cei care l-au citit să-și poată construi propriile computere similare cu EDVAC pe aceleași principii și cu aceeași arhitectură, care a devenit cunoscută drept „arhitectura von Neumann”.

    După sfârșitul celui de-al Doilea Război Mondial și sfârșitul lucrărilor la ENIAC în februarie 1946, echipa de ingineri și oameni de știință s-a despărțit, John Mauchly și John Eckert au decis să intre în afaceri și să creeze computere pe bază comercială. Von Neumann, Goldstein și Burks s-au mutat în , unde au decis să-și creeze propriul computer „mașină IAS”, similar cu EDVAC, și să-l folosească pentru activități de cercetare. În iunie 1946, ei și-au subliniat principiile pentru construirea computerelor în articolul acum clasic „Preliminary Consideration of the Logical Design of an Electronic Computing Device”. De atunci a trecut mai bine de jumătate de secol, dar prevederile prezentate în acesta rămân actuale și astăzi. Articolul confirmă în mod convingător utilizarea sistemului binar pentru a reprezenta numere, dar anterior toate computerele stocau numerele procesate în formă zecimală. Autorii au demonstrat avantajele sistemului binar pentru implementarea tehnică, comoditatea și ușurința de a efectua operații aritmetice și logice în acesta. Mai târziu, computerele au început să prelucreze tipuri de informații non-numerice - text, grafică, sunet și altele, dar codarea datelor binare formează încă baza informațională a oricărui computer modern.

    Pe lângă mașinile care funcționau cu cod binar, au existat și mai există și mașini ternare. Calculatoarele ternare au o serie de avantaje și dezavantaje față de cele binare. Printre avantaje se numără viteza (operațiile de adunare sunt efectuate de aproximativ o dată și jumătate mai repede), prezența logicii binare și ternare, reprezentarea simetrică a numerelor întregi cu semn (în logica binară fie vor fi două zerouri (pozitive și negative), fie există va fi un număr care nu are pereche cu semnul opus). Dezavantajele sunt că implementarea este mai complexă în comparație cu mașinile binare.

    O altă idee revoluționară, a cărei importanță este greu de supraestimat, este principiul unui „program stocat”. Inițial, programul a fost setat prin instalarea de jumperi pe un panou de corecție special. Aceasta a fost o sarcină foarte laborioasă: de exemplu, a fost nevoie de câteva zile pentru a schimba programul mașinii ENIAC, în timp ce calculul real nu putea dura mai mult de câteva minute - lămpile care erau acolo au eșuat o cantitate mare. Totuși, programul poate fi stocat și ca o colecție de zerouri și unu și în aceeași memorie cu numerele pe care le procesează. Absența unei diferențe fundamentale între program și date a făcut posibil ca computerul să formeze un program pentru el însuși în conformitate cu rezultatele calculelor.

    Prezența unui anumit set de comenzi și programe executabile a fost o trăsătură caracteristică primelor sisteme informatice. Astăzi, un design similar este utilizat pentru a simplifica proiectarea unui dispozitiv de calcul. Astfel, calculatoarele desktop, în principiu, sunt dispozitive cu un set fix de programe care pot fi executate. Ele pot fi folosite pentru calcule matematice, dar sunt aproape imposibil de utilizat pentru procesarea textului și jocuri pe calculator, pentru vizualizarea imaginilor grafice sau videoclipurilor. Schimbarea firmware-ului pentru acest tip de dispozitiv necesită o reluare aproape completă și, în majoritatea cazurilor, este imposibilă. Cu toate acestea, reprogramarea sistemelor informatice timpurii a fost încă efectuată, dar a necesitat o cantitate imensă de muncă manuală pentru a pregăti noi documentații, a reconecta și a reconstrui blocuri și dispozitive etc.

    Ideea de a stoca programe de calculator în memoria partajată a schimbat totul. Până la momentul introducerii sale, utilizarea arhitecturilor bazate pe seturi de instrucțiuni executabile și reprezentarea procesului de calcul ca proces de executare a instrucțiunilor scrise într-un program a crescut enorm flexibilitatea sistemelor de calcul în ceea ce privește prelucrarea datelor. Aceeași abordare a privirii datelor și instrucțiunilor a făcut ușoară schimbarea programelor în sine.

    principiile lui Von Neumann

    Principiul omogenității memoriei Diferența fundamentală dintre arhitectura „von Neumann” (Princeton) și cea „Harvard”. Comenzile și datele sunt stocate în aceeași memorie și nu se pot distinge extern în memorie. Ele pot fi recunoscute numai după metoda de utilizare; adică aceeași valoare dintr-o celulă de memorie poate fi folosită ca date, ca comandă și ca adresă, în funcție doar de modul în care este accesată. Acest lucru vă permite să efectuați aceleași operații asupra comenzilor ca și asupra numerelor și, în consecință, deschide o serie de posibilități. Astfel, prin schimbarea ciclică a părții de adresă a comenzii, este posibil să se acceseze elemente succesive ale matricei de date. Această tehnică se numește modificarea comenzilor și din punct de vedere programare modernă Nu esti bine venit. Mai utilă este o altă consecință a principiului omogenității, când instrucțiunile dintr-un program pot fi obținute ca urmare a execuției unui alt program. Această posibilitate stă la baza traducerii - traducerea textului programului dintr-o limbă de nivel înalt în limba unui anumit computer. Principiul abordării Structural, memoria principală este formată din celule numerotate, iar orice celulă este disponibilă procesorului în orice moment. Codurile binare de comenzi și date sunt împărțite în unități de informații numite cuvinte și stocate în celule de memorie, iar pentru a le accesa se folosesc numerele celulelor corespunzătoare - adrese. Principiul controlului programului Toate calculele prevăzute de algoritmul pentru rezolvarea unei probleme trebuie prezentate sub forma unui program format dintr-o succesiune de cuvinte de control - comenzi. Fiecare comandă prescrie o operațiune dintr-un set de operații implementate de computer. Comenzile programului sunt stocate în celulele de memorie secvențiale ale computerului și sunt executate într-o secvență naturală, adică în ordinea poziției lor în program. Dacă este necesar, folosind comenzi speciale, această secvență poate fi schimbată. Decizia de modificare a ordinii de execuție a comenzilor programului se ia fie pe baza unei analize a rezultatelor calculelor anterioare, fie necondiționat. Principiul codificării binare Conform acestui principiu, toate informațiile, atât datele, cât și comenzile, sunt codificate cu cifre binare 0 și 1. Fiecare tip de informație este reprezentat printr-o secvență binară și are propriul format. O secvență de biți într-un format care are o semnificație specifică se numește câmp. În informațiile numerice, există de obicei un câmp cu semne și un câmp cu cifre semnificative. În cel mai simplu caz, formatul comenzii poate fi împărțit în două câmpuri: câmpul de cod de operare și câmpul de adrese.

    Calculatoare construite pe principiile von Neumann

    Conform planului, primul computer construit conform arhitecturii von Neumann urma să fie EDVAC (Electronic Discrete Variable Automatic Computer) - unul dintre primele computere electronice. Spre deosebire de predecesorul său ENIAC, acesta a fost un computer bazat mai degrabă în binar decât în ​​zecimal. La fel ca ENIAC, EDVAC a fost dezvoltat la Institutul Moore al Universității din Pennsylvania pentru Laboratorul de Cercetare Balistică al Armatei SUA de către o echipă de ingineri și oameni de știință condusă de John Presper Eckert și John William Mauchly, cu asistența activă a unui matematician], dar până când 1951 EDVAC nu a fost lansat din cauza dificultăților tehnice în crearea memoriei fiabile a computerului și a dezacordurilor în cadrul echipei de dezvoltare. Alte institute de cercetare, familiarizate cu ENIAC și cu proiectul EDVAC, au reușit să rezolve aceste probleme mult mai devreme. Primele computere care au implementat principalele caracteristici ale arhitecturii von Neumann au fost:

    1. prototip - Manchester Small Experimental Machine - Universitatea Manchester, Marea Britanie, 21 iunie 1948;
    2. EDSAC - Universitatea din Cambridge, Marea Britanie, 6 mai 1949;
    3. Manchester Mark I - Universitatea Manchester, Marea Britanie, 1949;
    4. BINAC - SUA, aprilie sau august 1949;
    5. CSIR Mk 1
    6. EDVAC - SUA, august 1949 - lansat efectiv în 1952;
    7. CSIRAC - Australia, noiembrie 1949;
    8. SEAC - SUA, 9 mai 1950;
    9. ORDVAC - SUA, noiembrie 1951;
    10. Aparatul IAS - SUA, 10 iunie 1952;
    11. MANIAC I - SUA, martie 1952;
    12. AVIDAC - SUA, 28 ianuarie 1953;
    13. ORACLE - SUA, sfârșitul anului 1953;
    14. WEIZAC - Israel, 1955;
    15. SILLIAC - Australia, 4 iulie 1956.

    În URSS, primul computer complet electronic apropiat de principiile lui von Neumann a fost MESM, construit de Lebedev (pe baza Institutului de Inginerie Electrică de la Kiev al Academiei de Științe a RSS Ucrainei), care a trecut testele de acceptare de stat în decembrie 1951. .

    Blocajul arhitecturii von Neumann

    Partajarea magistralei pentru memoria programului și memoria de date duce la un blocaj al arhitecturii von Neumann, și anume limitarea lățimii de bandă dintre procesor și memorie în comparație cu cantitatea de memorie. Datorită faptului că memoria de program și memoria de date nu pot fi accesate în același timp, debitului Canalul de memorie procesor și viteza de memorie limitează semnificativ viteza procesorului - mult mai mult decât dacă programele și datele ar fi stocate în locuri diferite. Pe măsură ce viteza procesorului și memoria au crescut mult mai repede decât lățimea de bandă dintre ele, a devenit un blocaj problema mare, a cărei severitate crește cu fiecare nouă generație de procesoare [ ] ; această problemă este rezolvată prin îmbunătățirea sistemelor de cache, iar acest lucru dă naștere la multe probleme noi [ care?] .

    Termenul „bloc arhitectural von Neumann” a fost inventat de John Backus în 1977 în prelegerea sa de la Premiul Turing „Poate programarea să fie eliberată de stilul Von Neumann?”

    Oamenii de știință din SUA și Italia au anunțat în 2015 crearea unui prototip de procesor mem (memprocessor în engleză) cu o arhitectură diferită de cea a lui von Neumann și posibilitatea de a-l folosi pentru a rezolva probleme complete.

    Vezi si

    Literatură

    • Herman H. Goldstine. The Computer de la Pascal la von Neumann. - Princeton University Press, 1980. - 365 p. - ISBN 9780691023670.(Engleză)
    • William Aspray. John von Neumann și Originile Calculului Modern. - MIT Press, 1990. - 394 p. - ISBN 0262011212.(Engleză)
    • Scott McCartney. ENIAC: Triumfurile și tragediile primului computer din lume - Berkley Books, 2001. - 262 p. -

    În 1946, D. von Neumann, G. Goldstein și A. Berks, în articolul lor comun, au conturat noi principii pentru construcția și funcționarea computerelor. Ulterior, pe baza acestor principii au fost produse primele două generații de calculatoare. Au existat unele schimbări în generațiile ulterioare, deși principiile lui Neumann sunt și astăzi relevante.

    De fapt, Neumann a reușit să rezumă evoluțiile și descoperirile științifice ale multor alți oameni de știință și să formuleze ceva fundamental nou pe baza lor.

    Principiul de control al programului: un program constă dintr-un set de comenzi executate de un procesor într-o anumită secvență.

    Principiul omogenității memoriei: programele și datele sunt stocate în aceeași memorie.

    Principiul de direcționare: Din punct de vedere structural, memoria principală este formată din celule numerotate. Orice celulă este disponibilă procesorului în orice moment.

    Calculatoarele construite pe principiile de mai sus sunt de tip von Neumann.

    Cea mai importantă consecință a acestor principii este că acum programul nu mai era o parte permanentă a mașinii (cum ar fi, de exemplu, un calculator). A devenit posibil să se schimbe ușor programul. Prin comparație, programul computerului ENIAC (care nu avea un program stocat) a fost determinat de jumperi speciali de pe panou. Ar putea dura mai mult de o zi pentru a reprograma aparatul (setati jumperii diferit). Și deși programe pentru calculatoare moderne Scrierea poate dura ani, dar funcționează pe milioane de computere; instalarea programelor nu necesită investiții semnificative de timp.

    Pe lângă cele trei principii de mai sus, von Neumann a propus principiul codificării binare - folosit pentru a reprezenta date și comenzi sistem binar sistem numeric (primele mașini au folosit sistemul numeric zecimal). Dar evoluțiile ulterioare au arătat posibilitatea utilizării sistemelor de numere netradiționale.

    La începutul anului 1956, la inițiativa Academicianului S.L. Sobolev, șeful Departamentului de Matematică Computațională de la Facultatea de Mecanică și Matematică a Universității din Moscova, a fost înființat un departament de electronică la centrul de calcul al Universității de Stat din Moscova și a început să funcționeze un seminar cu scopul de a crea un exemplu practic de computer digital destinat utilizării în universități, precum și în laboratoare și birouri de proiectare ale întreprinderilor industriale. A fost necesar să se dezvolte un computer mic, care să fie ușor de învățat și utilizat, fiabil, ieftin și, în același timp, eficient într-o gamă largă de sarcini. Un studiu detaliat pe parcursul unui an al calculatoarelor disponibile la acel moment și capabilități tehnice Implementarea lor a condus la o decizie non-standard de a folosi nu un cod binar, ci un cod simetric ternar în mașina creată, implementând un sistem de numere echilibrat, pe care D. Knuth, douăzeci de ani mai târziu, l-ar numi poate cel mai elegant și, după cum urmează. a devenit mai târziu cunoscut, ale cărui avantaje au fost identificate de K. Shannon în 1950 Spre deosebire de codul binar cu numerele 0, 1, care este general acceptat în computerele moderne, care este inferior din punct de vedere aritmetic din cauza imposibilității reprezentării directe a numerelor negative în el, codul ternar cu numerele -1, 0, 1 oferă cea optimă. construirea aritmeticii numerelor cu semne. Sistemul numeric ternar se bazează pe același principiu pozițional de codificare a numerelor ca și sistemul binar adoptat în calculatoarele moderne, dar ponderea i Poziția a-lea (cifră) în ea nu este egală cu 2 i , ci 3 i . Mai mult decât atât, cifrele în sine nu sunt de două cifre (nu biți), ci de trei cifre (trite) - pe lângă 0 și 1, ele permit o a treia valoare, care într-un sistem simetric este -1, datorită căreia ambele pozitive iar numerele negative pot fi reprezentate uniform. Valoarea unui număr întreg de n biți N este determinată în mod similar cu valoarea unui număr întreg de n biți:

    unde a i ∈ (1, 0, -1) este valoarea cifrei i-a.

    În aprilie 1960, au fost efectuate teste interdepartamentale ale unui computer prototip numit „Setun”. Pe baza rezultatelor acestor teste, „Setun” a fost recunoscut ca primul model de lucru al unui computer universal bazat pe elemente fără lampă, care se caracterizează prin „ performanță ridicată, fiabilitate suficientă, dimensiuni reduse și ușurință de întreținere.” „Setun”, datorită naturaleței codului simetric ternar, s-a dovedit a fi un instrument de calcul cu adevărat universal, ușor de programat și foarte eficient, care s-a dovedit pozitiv, în special, ca mijloc tehnic de predare a matematicii computaționale în peste treizeci de universități. Și la Academia de Inginerie a Forțelor Aeriene. Jukovski a fost implementat pentru prima dată la „Setun” sistem automatizat instruire pe calculator.

    Conform principiilor lui von Neumann, un computer este format din:

    · unitate aritmetică logică - ALU(ing. ALU, Arithmetic and Logic Unit), care efectuează operații aritmetice și logice; dispozitiv de control -UU, conceput pentru a organiza execuția programelor;

    · dispozitive de stocare (stocare), incl. memorie cu acces aleatoriu (RAM - memorie primară) și dispozitiv de stocare extern (ESD); în aproximativ memoria principala datele și programele sunt stocate; un modul de memorie este format din mai multe celule numerotate; fiecare celulă poate conține un număr binar care este interpretat fie ca o comandă, fie ca date;

    · la dispozitive de intrare/ieșire, care servesc la transferul de date între computer și mediul extern, constând din diverse dispozitive periferice, care includ memorie secundară, echipamente de comunicații și terminale.

    Oferă interacțiune între procesor (ALU și unitatea de control), memoria principală și dispozitivele de intrare/ieșire cu magistrala de sistem .

    Arhitectura computerelor Von Neumann este considerată clasică; majoritatea computerelor sunt construite pe ea. În general, când oamenii vorbesc despre arhitectura von Neumann, se referă la separarea fizică a modulului procesorului de programe și dispozitivele de stocare a datelor. Ideea de a stoca programe de calculator în memoria partajată a făcut posibilă transformarea computerelor în dispozitive universale capabile să îndeplinească o gamă largă de sarcini. Programele și datele sunt introduse în memorie de la dispozitivul de intrare printr-o unitate logică aritmetică. Toate comenzile programului sunt scrise în celulele de memorie adiacente, iar datele pentru procesare pot fi conținute în celule arbitrare. Pentru orice program, ultima comandă trebuie să fie comanda de închidere.

    Marea majoritate a calculatoarelor de astăzi sunt mașini von Neumann. Singurele excepții sunt anumite tipuri de sisteme pentru calculul paralel, în care nu există contor de programe, conceptul clasic de variabilă nu este implementat și există alte diferențe fundamentale semnificative față de modelul clasic (exemplele includ calculatoarele de streaming și reducere). Aparent, o abatere semnificativă de la arhitectura von Neumann va avea loc ca urmare a dezvoltării ideii de mașini de generația a cincea, în care procesarea informațiilor se bazează nu pe calcule, ci pe concluzii logice.

    2.2 Comandă, formate de comandă

    O comandă este o descriere a unei operații elementare pe care computerul trebuie să o efectueze.

    Structura echipei.

    Numărul de biți alocați pentru a scrie o comandă depinde de hardware model specific calculator. În acest sens, vom lua în considerare structura unei echipe specifice pentru cazul general.

    În general, comanda conține următoarele informații:

    Ø codul operatiei care se executa;

    Ø instructiuni pentru definirea operanzilor sau a adreselor acestora;

    Ø instructiuni pentru plasarea rezultatului rezultat.

    Pentru orice mașină dată, trebuie specificat numărul de biți binari alocați în instrucțiune pentru fiecare dintre adresele sale și pentru codul operațional, precum și codurile operaționale reale în sine. Numărul de biți dintr-o instrucțiune alocați la construirea unei mașini pentru fiecare dintre adresele sale determină limita superioară a numărului de celule de memorie a mașinii care au adrese separate: dacă adresa dintr-o instrucțiune este reprezentată de n biți, atunci memoria de acces rapid nu poate conține mai mult de 2 n celule.

    Comenzile se execută secvenţial, pornind de la adresa de pornire (punctul de intrare) a programului executabil, adresa fiecărei comenzi ulterioare este cu una mai mare decât adresa comenzii anterioare, dacă nu a fost o comandă de salt.

    În mașinile moderne, lungimea instrucțiunilor este variabilă (de obicei de la doi până la patru octeți), iar modalitățile de specificare a adreselor variabile sunt foarte diverse.

    Partea de adresă a comenzii poate conține, de exemplu:

    operand;

    adresa operandului;

    Adresa adresei operandului (numărul de octeți de la care se află adresa operandului), etc.

    Să ne uităm la structură opțiuni posibile mai multe tipuri de comenzi.

    Comenzi cu trei adrese.

    Comenzi în două sensuri.

    Comenzi unicast.

    Comenzi neadresate.

    Se consideră operația de adunare binară: c = a + b.

    Pentru fiecare variabilă din memorie, definim adrese condiționale:

    Fie 53 codul operației de adăugare.

    În acest caz, structura de comandă cu trei adrese arată astfel:

    · Comenzi cu trei adrese.

    Procesul de execuție a comenzii este împărțit în următoarele etape:

    Următoarea instrucțiune este selectată din celula de memorie, a cărei adresă este stocată în contorul de programe; conținutul contorului este schimbat și acum conține adresa următoarei comenzi în ordine;

    Comanda selectată este transmisă dispozitivului de control către registrul de comenzi;

    Dispozitivul de control decriptează câmpul de adresă al comenzii;

    Pe baza semnalelor de la unitatea de control, valorile operanzilor sunt citite din memorie și scrise în ALU în registre speciale de operanzi;

    Unitatea de control decriptează codul de operare și emite un semnal către ALU pentru a efectua operația corespunzătoare asupra datelor;

    Rezultatul operației în acest caz este trimis în memorie (în computerele cu uniadresă și cu două adrese rămâne în procesor);

    Toate acțiunile anterioare sunt efectuate până când se ajunge la comanda STOP.

    2.3 Calculatorul ca automat

    „Mașinile electronice digitale cu control program sunt un exemplu de unul dintre cele mai comune tipuri de convertoare de informații discrete în prezent, numite automate discrete sau digitale” (Glushkov V.M. Synthesis of digital automata)

    Orice computer funcționează automat (fie că este un computer mare sau mic, un computer personal sau un supercomputer). În acest sens, un calculator ca automat poate fi descris prin schema bloc prezentată în Fig. 2.1.

    În paragrafele precedente s-a luat în considerare schema bloc a unui calculator. Pe baza diagramei bloc a computerului și a schemei de circuit a mașinii, putem compara blocurile circuitului mașinii și elementele diagramei bloc ale computerului.

    Următoarele sunt incluse în mașină ca elemente executive:

    Dispozitiv aritmetic-logic:

    · memorie;

    · dispozitive de intrare/ieșire a informațiilor.

    Elementul de control al mașinii este dispozitivul de control, care asigură de fapt mod auto muncă. După cum sa menționat deja, în modern dispozitive de calcul Elementul executiv principal este un procesor sau microprocesor, care conține un ALU, memorie și dispozitiv de control.

    Dispozitivele auxiliare ale mașinii pot fi tot felul de mijloace suplimentare care îmbunătățesc sau extind capacitățile mașinii.

    La nivel de zi cu zi, majoritatea oamenilor asociază puternic termenul „arhitectură” cu diferite clădiri și alte structuri inginerești. Deci, putem vorbi despre arhitectura unei catedrale gotice, a Turnului Eiffel sau a unui teatru de operă. În alte domenii, acest termen este folosit destul de rar, dar pentru computere conceptul de „arhitectură de computer” (calculator electronic) a fost deja ferm stabilit și a fost utilizat pe scară largă încă din anii 70 ai secolului trecut. Pentru a înțelege modul în care programele și scripturile sunt executate pe un computer, trebuie mai întâi să știți cum funcționează fiecare dintre componentele sale. Bazele doctrinei arhitecturii computerelor, care sunt discutate în lecție, au fost puse de John von Neumann. Puteți afla mai multe despre nodurile logice, precum și despre principiul modular al arhitecturii computerelor personale moderne în această lecție.

    Principiile care stau la baza arhitecturii computerelor au fost formulate în 1945 de John von Neumann, care a dezvoltat ideile lui Charles Babbage, care a reprezentat funcționarea unui computer ca funcționarea unui set de dispozitive: procesare, control, memorie, intrare-ieșire.

    principiile lui Von Neumann.

    1. Principiul omogenității memoriei. Puteți efectua aceleași acțiuni asupra comenzilor ca și asupra datelor.

    2. Principiul adresei memoriei. Memoria principală este compusă structural din celule numerotate; Orice celulă este disponibilă procesorului în orice moment. Aceasta implică capacitatea de a denumi zonele de memorie, astfel încât valorile stocate în ele să poată fi accesate sau modificate ulterior în timpul execuției programului folosind numele atribuite.

    3. Principiul controlului secvenţial al programului. Se presupune că un program constă dintr-un set de comenzi care sunt executate de procesor automat una după alta într-o anumită secvență.

    4. Principiul rigidității arhitecturale. Imutabilitatea topologiei, arhitecturii și listei de comenzi în timpul funcționării.

    Calculatoarele construite pe principiile von Neumann au o arhitectură clasică, dar pe lângă aceasta, există și alte tipuri de arhitectură. De exemplu, Harvard. Caracteristicile sale distinctive sunt:

    • depozitul de instrucțiuni și depozitul de date sunt dispozitive fizice diferite;
    • Canalul de instrucțiuni și canalul de date sunt, de asemenea, separate fizic.

    În istoria dezvoltării tehnologia calculatoarelor un salt calitativ s-a produs aproximativ la fiecare 10 ani. Acest salt este asociat cu apariția unei noi generații de calculatoare. Ideea de divizare a mașinilor a apărut datorită faptului că în scurta istorie a dezvoltării sale, tehnologia computerelor a suferit o mare evoluție atât în ​​sensul baza elementului(lampi, tranzistori, microcircuite etc.), iar in sensul schimbarii structurii acesteia, aparitia de noi oportunitati, extinderea domeniului de aplicare si a naturii de utilizare. Mai multe detalii etapele dezvoltării calculatorului prezentată în fig. 2. Pentru a înțelege cum și de ce o generație a fost înlocuită cu alta, este necesar să cunoaștem semnificația unor concepte precum memorie, viteză, grad de integrare etc.

    Orez. 2. Generații de calculatoare ()

    Printre calculatoarele care nu sunt clasice, nu sunt arhitectura von Neumann, putem distinge așa-numitele neurocalculatoare. Ele simulează activitatea celulelor creierului uman, a neuronilor, precum și a unor părți ale sistemului nervos capabile să facă schimb de semnale.

    Fiecare nod logic al computerului își îndeplinește propriile funcții. Funcții procesor(Fig. 3):

    - prelucrarea datelor (efectuarea de operatii aritmetice si logice asupra acestora);

    - controlul tuturor celorlalte dispozitive informatice.

    Orez. 3. Unitate centrală de procesare a computerului ()

    Programul constă din comenzi separate. Comanda include codul operației, adresele operanzilor (cantitățile care participă la operație) și adresa rezultatului.

    Executarea comenzii este împărțită în următoarele etape:

    · selecția echipei;

    • generarea adresei următoarei comenzi;
    • decodare comenzi;
    • calcularea adreselor operanzilor;
    • selectarea operanzilor;
    • executarea operațiunii;
    • formarea unui semn de rezultat;
    • înregistrarea rezultatului.

    Nu toate etapele sunt prezente la executarea oricărei instrucțiuni (în funcție de tipul instrucțiunii), dar etapele de preluare, decodare, generare a adresei următoarei instrucțiuni și executare a operației au loc întotdeauna. În anumite situații, sunt posibili încă doi pași:

    • adresare indirectă;
    • răspuns la întrerupere.

    RAM(Fig. 4) este dispusă după cum urmează:

    • primirea de informații de la alte dispozitive;
    • amintirea informațiilor;
    • transferul de informații la cerere către alte dispozitive informatice.

    Orez. 4. RAM (Random Access Memory) a computerului ()

    Arhitectura computerelor moderne se bazează pe principiul coloana vertebrală-modulară(Fig. 5). Principiul modular vă permite să finalizați configurația dorită și să faceți upgrade-urile necesare. Se bazează pe principiul magistralei de schimb de informații între module. Autobuzul de sistem sau magistrala computerului include mai multe autobuze pentru diverse scopuri. coloana vertebrală include trei magistrale multi-biți:

    • magistrala de date;
    • magistrala de adrese;
    • magistrala de control.

    Orez. 5. Principiul coloană-modular al construcției PC-ului

    Autobuzul de date este utilizat pentru a transfera diverse date între dispozitive computerizate; magistrala de adrese este utilizată pentru a adresa datele transferate, adică pentru a determina locația acestora în memorie sau în dispozitivele de intrare/ieșire; Busul de control include semnale de control care servesc la coordonarea temporară a funcționării diverse dispozitive computer, pentru a determina direcția transferului de date, pentru a determina formatele datelor transferate etc.

    Acest principiu este valabil pentru diferite computere, care pot fi împărțite în trei grupuri:

    • staționar;
    • compacte (laptop-uri, netbook-uri etc.);
    • buzunar (smartphone-uri etc.).

    ÎN unitate de sistem computerul desktop sau carcasa compactă conține principalul noduri logice- Acest placa de baza cu procesor, alimentare, dispozitive de stocare memorie externa etc.

    Bibliografie

    1. Bosova L.L. Informatică și TIC: manual pentru clasa a VIII-a. - M.: BINOM. Laboratorul de cunoștințe, 2012.

    2. Bosova L.L. Informatica: Caiet de lucru pentru clasa a VIII-a. - M.: BINOM. Laboratorul de cunoștințe, 2010.

    3. Astafieva N.E., Rakitina E.A., Informatica in scheme. - M.: BINOM. Laboratorul de cunoștințe, 2010.

    4. Tannenbaum E. Arhitectura calculatoarelor. - a 5-a ed. - Sankt Petersburg: Peter, 2007. - 844 p.

    1. Portalul de internet „Toate sfaturile” ()

    2. Portalul de internet „Enciclopedia electronică „Computer”” ()

    3. Portalul de internet „apparatnoe.narod.ru” ()

    Teme pentru acasă

    1. Capitolul 2, §2.1, 2.2. Bosova L.L. Informatică și TIC: manual pentru clasa a VIII-a. - M.: BINOM. Laboratorul de cunoștințe, 2012.

    2. Ce înseamnă abrevierea COMPUTER?

    3. Ce înseamnă termenul „Arhitectura computerului”?

    4. Cine a formulat principiile de bază care stau la baza arhitecturii computerelor?

    5. Pe ce se bazează arhitectura calculatoarelor moderne?

    6. Numiți principalele funcții ale procesorului central și ale memoriei RAM ale unui PC.

    ORGANIZAREA CALCULATORULUI

    Note de curs

    Celiabinsk

    PRINCIPIILE LUI JOHN VON NEUMANN. GENERAȚII DE CALCULATE

    principiile lui John von Neumann

    Marea majoritate a calculatoarelor se bazează pe următoarele: principii generale, formulat în 1945 de omul de știință american de origine maghiară JOHN von NEUMANN.

    1) Principiul codificării binare.

    Conform acestui principiu, toate informațiile care intră în computer sunt codificate folosind semnale binare.

    2) Principiul controlului programului.

    Un program constă dintr-un set de comenzi care sunt executate de procesor automat una după alta într-o anumită secvență.

    3) Principiul omogenității memoriei.

    Programele și datele sunt stocate în aceeași memorie. Prin urmare, computerul nu distinge ceea ce este stocat într-o anumită celulă de memorie - un număr, text sau comandă. Puteți efectua aceleași acțiuni asupra comenzilor ca și asupra datelor.

    4) Principiul țintirii.

    Din punct de vedere structural, memoria principală este formată din celule numerotate, iar orice celulă este disponibilă procesorului în orice moment.

    Aceasta implică capacitatea de a denumi zonele de memorie, astfel încât valorile stocate în ele să poată fi accesate sau modificate ulterior în timpul execuției programului folosind numele atribuite.

    Potrivit lui von Neumann, un computer este format din următoarele blocuri principale:

    – dispozitive de intrare/ieșire a informațiilor;

    – memoria calculatorului;

    – un procesor format dintr-o unitate de control (CU) și o unitate aritmetic-logică (ALU).

    Mașinile construite pe aceste principii se numesc mașini VON NEUMANN.

    Astfel, un computer poate fi gândit ca un procesor, un sistem de memorie cu mai multe niveluri, un sistem de comunicații externe și interne și dispozitive periferice.

    Funcțiile de memorie includ:

    – primirea de informații de la alte dispozitive;

    – amintirea informațiilor;

    – furnizarea de informații la cerere către alte dispozitive ale mașinii.

    Functii procesor:

    – prelucrarea datelor de către programul dat prin efectuarea de operații aritmetice și logice;

    – control software al funcționării dispozitivelor informatice.

    Partea procesorului care execută instrucțiuni se numește unitate aritmetică logică (ALU), iar cealaltă parte care realizează funcții de control al dispozitivului se numește unitate de control (CU). De obicei, aceste două dispozitive se disting în mod condiționat; nu sunt separate structural.

    Procesorul conține un număr de celule de memorie suplimentare specializate numite registre.

    Registrul îndeplinește funcția de stocare pe termen scurt a unui număr sau a unei comenzi. Circuitele electronice speciale pot efectua unele manipulări asupra conținutului unor registre. De exemplu, tăierea părților individuale ale unei comenzi pentru o utilizare ulterioară sau efectuarea anumitor operații aritmetice asupra numerelor.

    Elementul principal al unui registru este un circuit electronic numit flip-flop, care este capabil să stocheze o cifră binară (bit).

    Un registru este o colecție de declanșatoare conectate între ele într-un anumit mod sistem comun management.

    Există mai multe tipuri de registre (Fig. 1.1), care diferă prin tipul de operații efectuate:.

    – sumator – un registru ALU implicat în executarea fiecărei operațiuni;

    – contor de comenzi – registru CU, al cărui conținut corespunde adresei următoarei comenzi executate; servește pentru selectarea automată a unui program din celulele de memorie succesive;

    – registru de comandă – un registru de control pentru stocarea codului de comandă pe perioada de timp necesară executării acestuia. Unii dintre biții săi sunt folosiți pentru a stoca codul de operare, restul sunt folosiți pentru a stoca coduri de adresă operand.

    Figura 1.1

    Diagrama interfeței registrului procesorului

    ARHITECTURA ECHIPAMENTELOR TEHNICE

    Să luăm în considerare organizarea fizică a unui computer personal IBM, perifericele sale și principiile interfeței componentelor individuale.

    Microprocesor

    Este nodul central al unui computer personal. Procesorul are capacitatea de a executa instrucțiuni care compun program de calculator. Calculatoarele personale sunt construite în jurul microprocesoarelor, care rulează în prezent pe un singur cristal sau „cip”.

    Microprocesorul utilizat în IBM/PC a fost proiectat și creat de Intel. Diferența fundamentală dintre IBM/PC și computerele personale din generația anterioară este utilizarea unui microprocesor pe 16 biți. Înainte de apariția IBM/PC, cel mai popular calculatoare personale au fost construite pe baza de microprocesoare pe 8 biți.

    Diferențele dintre microprocesoarele pe 8 biți și pe 16 biți sunt că procesoarele pe 8 biți pot gestiona date pe 8 biți, în timp ce procesoarele pe 16 biți pot gestiona date pe 16 biți. Principalul avantaj al procesoarelor pe 16 biți față de procesoarele pe 8 biți este o creștere semnificativă a vitezei, puterii și confortului setului de instrucțiuni. În plus, cantitatea de memorie adresabilă crește semnificativ. Majoritatea procesoarelor pe 8 biți pot folosi doar 64K de memorie, ceea ce reduce foarte mult capacitatea utilizare eficientă calculatoare personale. Procesoarele 8088 și 8086 utilizate în IBM/PC permit adresare 1024K.

    Scop functional

    Semnalele de sincronizare ale sistemului sunt furnizate de oscilatorul 8284A. Aceste semnale sunt utilizate de toate elementele computerului și stabilesc durata operațiunilor. Asociat cu generatorul de ceas este un cronometru 8255A-5, care este utilizat pentru a susține interfața unității de bandă și difuzorul încorporat.

    Funcționarea unui sistem informatic se bazează pe utilizarea întreruperilor. Pentru a organiza funcționarea sistemului de întrerupere, se folosește cipul 8259A. Când datele sunt transferate într-un sistem informatic, acestea trec printr-un canal comun pe care îl pot accesa toate componentele sistemului. Această cale a fost numită magistralele de date.

    Conceptul de autobuz reprezintă una dintre cele mai avansate metode de unificare în proiectarea computerelor. În loc să încerce să conecteze toate elementele unui sistem informatic cu conexiuni speciale, proiectanții de computere au limitat transferul de date la o singură magistrală comună. Datele sunt trimise de-a lungul autobuzului însoțite de semnale speciale care indică scopul acestora. Această idee a simplificat foarte mult proiectarea computerelor și a crescut foarte mult flexibilitatea acestuia. Pentru a adăuga o componentă nouă, nu trebuie să faceți multe conexiuni diferite, doar conectați-o la magistrală. Pentru a eficientiza transferul de informații prin autobuz, este utilizat un controler de magistrală.

    X-terminale

    X-terminale sunt o combinație de stații de lucru fără disc și terminale standard. Stațiile de lucru fără disc au fost adesea folosite ca afișaje scumpe și în acest caz nu au folosit pe deplin puterea de procesare locală. Mai recent, pe măsură ce stațiile de lucru grafice foarte puternice au devenit disponibile, a existat o tendință către terminale X „slave” care utilizează stație de lucru ca server local.

    De obicei, terminalele X costă aproximativ jumătate din costul unei mașini fără disc comparabilă și aproximativ un sfert din costul unei stații de lucru complet echipate.

    Un terminal X tipic (Fig. 3.1) include următoarele elemente:

    – ecran de înaltă rezoluție – având de obicei dimensiunea de la 14 la 21 de inci în diagonală;

    – microprocesor bazat pe Motorola 68xxx sau procesor RISC precum Intel i960, MIPS R3000 sau AMD29000;

    – Un coprocesor grafic separat, în plus față de procesorul principal, care acceptă o arhitectură cu dublu procesor, care asigură desenarea și derularea mai rapidă a ecranului;

    – de bază programe de sistem, pe care rulează și execută sistemul X-Windows protocoale de rețea;

    – Software server X11.

    – cantitate variabilă de memorie locală (de la 2 la 8 MB) pentru afișaj, interfață de rețea care acceptă protocoale de transfer de date în rețea.

    – porturi pentru conectarea unei tastaturi si mouse.

    Figura 3.1

    Diagrama de funcționare a terminalului X

    Terminalele X diferă de computere și stații de lucru nu numai prin faptul că nu îndeplinesc funcțiile obișnuite de procesare locală. Funcționarea terminalelor X depinde de sistemul gazdă la care sunt conectate printr-o rețea. Pentru ca terminalul X să funcționeze, utilizatorii trebuie să instaleze software-ul server X11 cu mai multe ferestre pe procesorul principal care rulează aplicația (cea mai cunoscută versiune este X11 Release 5).

    Cantitatea minimă de memorie necesară pentru funcționarea terminalului X este de 1 MB. În funcție de funcționalitatea produsului, memoria RAM poate fi extinsă la 32 MB sau mai mult.

    Echipat sistem standard X-Windows, terminalul X poate afișa mai multe aplicații pe același ecran în același timp. Fiecare aplicație poate rula în propria fereastră, iar utilizatorul poate redimensiona, poziționa și manipula ferestrele oriunde pe ecran.

    Servere

    Sistemele de aplicații multi-utilizator utilizează tehnologia client-server și procesarea distribuită a datelor. În cazul „client-server”, o parte a lucrării este efectuată de server și o parte de computerul utilizatorului (în cazul general, părțile client și utilizator pot funcționa pe același computer). Există mai multe tipuri de servere, care vizează diferite aplicații: server de fișiere, server de baze de date, server de imprimare, server de calcul, server de aplicații. Astfel, tipul de server este determinat de tipul de resursă pe care o deține ( Sistemul de fișiere, baza de date, imprimante, procesoare sau pachete de aplicații programe).

    Pe de altă parte, există o clasificare a serverelor, determinată de amploarea rețelei în care sunt utilizate: server grup de lucru, server departamental sau server la scară întreprindere (server corporativ). Această clasificare este foarte condiționată. De exemplu, dimensiunea grupului poate varia de la câteva persoane la câteva sute de persoane, iar serverul departamentului poate servi de la 20 la 150 de utilizatori. Evident, în funcție de numărul de utilizatori și de natura sarcinilor pe care le rezolvă, cerințele pentru compoziția echipamentului și software servere, fiabilitatea și performanța acestora variază foarte mult.

    Serverele de fișiere pentru grupuri de lucru mici (nu mai mult de 20-30 de persoane) sunt cel mai ușor implementate pe platforma computerului personal și software-ul Novell NetWare. Serverul de fișiere, în acest caz, acționează ca o stocare centrală a datelor. Serverele de aplicații și mașinile de înaltă performanță pentru un mediu client-server au cerințe hardware și software semnificativ diferite.

    Viteza procesorului pentru serverele intensive I/O nu este critică. Acestea trebuie să fie suficient echipate blocuri puternice sursă de alimentare pentru posibilitatea instalării plăcilor de expansiune și unităților de disc suplimentare. Este recomandabil să utilizați un dispozitiv de alimentare neîntreruptibilă. RAM este de obicei de cel puțin 128 MB, ceea ce va permite sistemului de operare să utilizeze cache-uri de disc mari și să mărească performanța serverului. Dacă există un segment de rețea și 10-20 de stații de lucru, debitul maxim al serverului este limitat de debitul maxim al rețelei. În acest caz, înlocuirea procesoarelor sau subsisteme de discuri cele mai puternice nu măresc performanța, deoarece blocajul este rețeaua însăși. Prin urmare, este important să se folosească plata buna interfata retea.

    Serverele moderne se caracterizează prin:

    – prezența a două sau mai multe procesoare centrale;

    – arhitectură magistrală multinivel, în care o magistrală de sistem de mare viteză conectează mai multe procesoare și RAM, precum și multe magistrale I/O standard situate în aceeași carcasă;

    – suport tehnologic matrice de discuri RAID;

    – suport pentru modul multiprocesare simetric, care vă permite să distribuiți sarcini pe mai multe procesoare centrale, sau modul multiprocesare asimetric, care vă permite să alocați procesoare pentru a efectua sarcini specifice.

    Mainframe-uri

    Mainframe-uri– rămân cele mai puternice sisteme de calcul până în prezent scop general, oferind funcționare continuă non-stop. Din punct de vedere arhitectural, mainframe-urile sunt sisteme multiprocesoare care conțin unul sau mai multe procesoare centrale și periferice cu memorie partajată, interconectate prin rute de transfer de date de mare viteză. În acest caz, sarcina principală de calcul cade pe procesoarele centrale, iar cele periferice asigură lucrul cu multe dispozitive periferice.

    Principalul dezavantaj al mainframe-urilor rămâne în prezent raportul performanță/cost relativ scăzut.

    Arhitecturi de cluster

    Două provocări majore în construirea sistemelor de calcul pentru aplicații critice care implică procesarea tranzacțiilor, gestionarea bazelor de date și servicii de telecomunicații sunt asigurarea performanței înalte și funcționarea pe termen lung a sistemului. Cea mai eficientă modalitate de a atinge un anumit nivel de performanță este utilizarea arhitecturilor paralele, scalabile. Provocarea de a asigura funcționarea pe termen lung a sistemului are trei componente: fiabilitate, disponibilitate și funcționalitate. Toate aceste trei componente presupun, în primul rând, lupta împotriva defecțiunilor sistemului cauzate de defecțiuni și defecțiuni în funcționarea acestuia. Această luptă este purtată în toate cele trei domenii, care sunt interconectate și aplicate în comun.

    Îmbunătățirea fiabilității se bazează pe principiul prevenirii defecțiunilor prin reducerea ratei defecțiunilor și defecțiunilor prin utilizarea circuite electroniceși componente cu un grad ridicat și ultra-înalt de integrare, reducând nivelul de interferență, modurile de funcționare ușoare ale circuitelor, asigurând condițiile termice de funcționare a acestora, precum și prin îmbunătățirea metodelor de asamblare a echipamentelor. Creșterea nivelului de pregătire presupune suprimarea, în anumite limite, a impactului defecțiunilor și defecțiunilor asupra funcționării sistemului folosind instrumente de control și corectare a erorilor, precum și mijloace de restabilire automată a procesului de calcul după apariția unei defecțiuni, inclusiv hardware și software. redundanță, pe baza căreia sunt implementate diferite opțiuni pentru arhitecturi tolerante la erori. Creșterea disponibilității este o modalitate de a reduce timpul de nefuncționare a sistemului. Principalele caracteristici operaționale ale sistemului depind în mod semnificativ de ușurința întreținerii acestuia, în special de mentenanță, testabilitate etc.

    Există mai multe tipuri de sisteme de înaltă disponibilitate, care diferă prin acestea funcţionalitate si cost. Costul sistemelor de înaltă disponibilitate este mult mai mare decât costul sistemelor convenționale. Acesta este probabil motivul pentru care sistemele cluster sunt cele mai răspândite în lume, datorită faptului că oferă un nivel destul de ridicat de disponibilitate a sistemului la costuri relativ mici.

    Clustering este implementarea unei unificări de mașini care apar ca un întreg pentru sistemul de operare, software-ul de sistem, programele de aplicație și utilizatorii.

    Mașinile grupate în acest fel pot, dacă un procesor eșuează, să redistribuie foarte rapid munca altor procesoare din cluster. Aceasta este cea mai importantă sarcină pentru mulți furnizori de sisteme de înaltă disponibilitate.

    Calculatoarele dintr-un cluster pot partaja accesul la unități de bandă și disc comune. Toate computerele din cluster pot accesa fișiere de date individuale ca și cum ar fi locale.

    Dacă unul dintre computere eșuează, joburile utilizatorilor săi pot fi transferate automat pe un alt computer din cluster. Dacă în sistem există mai multe controlere unități externe iar unul dintre ele eșuează, alte controlere își preiau automat munca (disponibilitate ridicată).

    Debit ridicat. Un număr de sisteme de aplicații pot profita de capacitatea de a rula joburi în paralel pe mai multe computere dintr-un cluster.

    Ușurința întreținerii sistemului. Bazele de date partajate pot fi servite dintr-o singură locație. Programele de aplicație pot fi instalate o singură dată pe discuri de cluster partajate și partajate între toate computerele din cluster.

    Extensibilitate. O creștere a puterii de calcul a clusterului se realizează prin conectarea la acesta calculatoare suplimentare. Disc magnetic suplimentar și unități de bandă magnetică devin disponibile pentru toate computerele din cluster.

    Funcționarea oricărui sistem cluster este determinată de două componente principale: un mecanism de mare viteză pentru comunicarea procesoarelor între ele și software-ul de sistem, care oferă clienților acces transparent la serviciile de sistem. În prezent, tehnologia bazelor de date paralele a devenit, de asemenea, răspândită. Această tehnologie permite mai multor procesoare să partajeze accesul la o singură bază de date. Distribuind joburile pe mai multe resurse de procesor și executându-le în paralel, puteți obține niveluri mai ridicate de debit de tranzacții, puteți sprijini mai mulți utilizatori concurenți și puteți accelera interogările complexe. Există trei tipuri diferite de arhitectură care acceptă baze de date paralele.

    1) Arhitectură multiprocesor simetrică cu memorie partajată(Arhitectura SMP de memorie partajată). Această arhitectură (Fig. 3.3.) acceptă o singură bază de date care rulează pe un server multiprocesor care rulează un singur sistem de operare. O creștere a performanței unor astfel de sisteme este asigurată prin creșterea numărului de procesoare, RAM și dispozitive de memorie externe.

    Figura 3.3.

    Arhitectură multiprocesor simetrică cu memorie partajată

    2) Arhitectură cu discuri partajate (partajate). Această arhitectură acceptă o singură bază de date pe mai multe computere dintr-un cluster (denumite de obicei noduri de cluster), fiecare rulând propria copie a sistemului de operare. În astfel de sisteme, toate nodurile partajează accesul la discuri comune, pe care se află de fapt o singură bază de date. Performanța unor astfel de sisteme poate fi crescută atât prin creșterea numărului de procesoare și a cantității de RAM din fiecare nod de cluster, cât și prin creșterea numărului de noduri în sine.

    3) Arhitectură fără partajarea resurselor. La fel ca arhitectura de discuri partajate, această arhitectură menține o singură imagine de bază de date pe mai multe computere care rulează propriile copii ale sistemului de operare. Cu toate acestea, în această arhitectură, fiecare nod de sistem are propria sa RAM și propriile sale discuri, care nu sunt partajate între nodurile individuale ale sistemului. În practică, în astfel de sisteme este partajat doar canalul comun de comunicare între nodurile sistemului. Performanța unor astfel de sisteme poate fi crescută prin adăugarea de procesoare, cantități de RAM și memorie externă (disc) în fiecare nod, precum și prin creșterea numărului de astfel de noduri.

    Astfel, mediul pentru rularea unei baze de date paralele are două proprietăți importante: disponibilitate ridicată și performanta ridicata. În cazul unei organizații de cluster, mai multe computere sau noduri de cluster funcționează cu o singură bază de date. Dacă unul dintre aceste noduri eșuează, nodurile rămase pot prelua joburile care rulează pe nodul eșuat fără a opri procesul general al bazei de date. Deoarece în mod logic fiecare nod din sistem are o imagine de bază de date, accesul la baza de date va continua atâta timp cât există cel puțin un nod sănătos în sistem. Performanța sistemului este ușor scalabilă, de ex. adăugarea de procesoare suplimentare, cantități de memorie RAM și de disc și noduri noi în sistem se poate face în orice moment când este cu adevărat necesar.

    Bazele de date paralele sunt utilizate pe scară largă în sistemele de procesare a tranzacțiilor on-line, sistemele de asistență pentru decizii și sunt adesea folosite atunci când se lucrează cu aplicații critice pentru întreprinderi și organizații care operează 24 de ore pe zi.

    SISTEM DE ÎNTRERUPERE

    Informații generale

    Întrerupe este un proces inițiat într-un anumit mod care comută temporar microprocesorul pentru a executa un alt program și apoi reia execuția programului întrerupt.

    Mecanismul de întrerupere permite controlul cel mai eficient nu numai al dispozitivelor externe, ci și al programelor. Unele sisteme de operare folosesc mecanismul de întrerupere nu numai pentru a deservi dispozitivele externe, ci și pentru a-și furniza propriile servicii. Astfel, binecunoscutul și încă folosit sistem de operare MS-DOS interacționează cu programele de sistem și aplicații în primul rând prin intermediul sistemului de întrerupere.

    Întreruperile pot fi externȘi intern.

    Întreruperi externe sunt cauzate de evenimente externe microprocesorului. Acestea generează semnale externe microprocesorului, care anunță microprocesorul că un dispozitiv extern solicită atenție.

    întreruperi interne apar în interiorul microprocesorului în timpul procesului de calcul. Unul dintre cele două motive duce la excitarea lor:

    – o stare internă anormală a microprocesorului care a apărut în timpul procesării unei anumite comenzi de program;

    – procesarea comenzii mașinii „int xx”. Acest tip de întrerupere se numește întrerupere software. Acestea sunt întreruperi programate, deoarece cu ajutorul lor programatorul se întoarce la momentul potrivit pentru a-și deservi solicitările fie către sistemul de operare, fie către BIOS, fie către programe proprii manipularea întreruperii.

    Manevrarea întreruperii.

    Microprocesoarele Intel au două moduri de operare - real și protejat. În aceste moduri, procesarea întreruperilor se realizează folosind metode fundamental diferite.

    Să ne uităm la gestionarea întreruperilor în modul real.

    În general sistem de întrerupere este un set de software și hardware care implementează mecanismul de întrerupere.

    Hardware-ul sistemului de întrerupere include

    – pini de microprocesor

    INTR – pin pentru semnalul de intrare de întrerupere extern. Această intrare primește semnalul de ieșire de la cipul controlerului de întrerupere 8259A;

    INTA – pin al microprocesorului pentru semnalul de ieșire care confirmă primirea unui semnal de întrerupere de către microprocesor. Acest semnal de ieșire este alimentat la intrarea INTA cu același nume de pe cipul controlerului de întrerupere 8259A;

    NMI – pin microprocesor pentru semnal de intrare de întrerupere nemascabil;

    – Cip de control de întrerupere programabil 8259A. Este conceput pentru a capta semnale de întrerupere de la opt dispozitive externe diferite: temporizator, tastatură, discuri magnetice etc. În mod obișnuit, se folosesc două cipuri 8259A conectate în serie. Ca urmare a acestei conexiuni, numărul de surse posibile de întreruperi externe crește la 15.

    Software-ul sistemului de întrerupere în modul real include:

    – un tabel de vectori de întrerupere, care conține pointeri către proceduri de procesare a întreruperilor corespunzătoare într-un anumit format, în funcție de modul de funcționare al microprocesorului;

    – următoarele steaguri în registrul flags\eflags:

    IF (Interrupt Flag) – steag de întrerupere. Proiectat pentru așa-numita mascare (inhibare) întreruperi hardware, adică întreruperi la intrarea INTR. Indicatorul IF nu are niciun efect asupra procesării întreruperilor de alte tipuri. Dacă IF=1, microprocesorul procesează întreruperi externe, dacă IF = 0, microprocesorul ignoră semnalele la intrarea INTR;

    TF (Trace Flag) - steag de urmărire. O singură stare a steagului TF pune microprocesorul în modul instrucțiuni prin comandă. În modul instrucțiuni cu comandă, după ce fiecare comandă de mașină este executată, în microprocesor este generată o întrerupere internă cu numărul 1, iar apoi urmează acțiunile în conformitate cu algoritmul de procesare a acestei întreruperi;

    – comenzi de mașină cu microprocesor: int, into, iret, cli, sti ().

    Cipul controlerului de întrerupere îndeplinește următoarele funcții:

    – înregistrarea cererilor de întrerupere a procesării din opt surse, generarea unei singure cereri de întrerupere și transmiterea acesteia la intrarea INTR a microprocesorului;

    – generarea numărului vectorului de întrerupere și trimiterea acestuia către magistrala de date;

    – organizarea procesării cu prioritate întreruperi;

    – interzicerea (mascarea) întreruperilor cu anumite numere.

    O proprietate importantă a acestui controler este capacitatea de a-l programa, ceea ce vă permite să schimbați în mod flexibil algoritmii de procesare a întreruperilor hardware.

    În timpul procesului de pornire a computerului și ulterior în timpul funcționării, controlerul de întrerupere este configurat să funcționeze în unul dintre cele patru moduri.

    1) Mod de întrerupere imbricată.În acest mod, fiecărei intrări (nivel) irq0...irq7 i se atribuie o valoare fixă ​​de prioritate, nivelul irq0 având cea mai mare prioritate și irq7 cea mai mică. Prioritatea întreruperilor determină dreptul acestora de a întrerupe procesarea unei întreruperi cu prioritate inferioară cu una cu prioritate mai mare (cu condiția, desigur, ca IF = 1).

    2) Mod de procesare întrerupere ciclică. În acest mod, valorile de prioritate ale nivelurilor de întrerupere sunt, de asemenea, ordonate liniar, dar nu într-un mod fix, ci se modifică după procesarea următoarei întreruperi conform următorului principiu: valorii de prioritate a ultimei întreruperi deservite i se atribuie cea mai mică valoare. . Următorul nivel de întrerupere în ordine primește cea mai mare valoare și, prin urmare, atunci când solicitările de întrerupere de la mai multe surse sosesc simultan, acest nivel va avea prioritate.

    3) Mod prioritar adresabil. Programatorul sau sistemul pot atribui independent nivelul de întrerupere cu cea mai mare prioritate.

    4) Modul de sondare. Acest mod împiedică controlerul să întrerupă automat microprocesorul atunci când are loc o întrerupere de la un dispozitiv extern. Pentru ca microprocesorul să afle despre prezența unei anumite solicitări de întrerupere, trebuie să contacteze el însuși controlerul de întrerupere, să o analizeze și apoi să acționeze conform propriului algoritm. Conform acestei abordări, inițiatorul procesării întreruperilor nu este întreruperea în sine, ca în disciplina vectorială, ci microprocesorul și uneori determinat de acesta (mai precis, sistem de operare executând asupra ei) momente în timp.

    IERARHIA MEMORIEI

    Implementarea ierarhiei de memorie a calculatoarelor moderne se bazează pe două principii: principiul localității apelurilor și raportul cost/performanță.

    Principiul localității apelurilor sugerează că majoritatea programelor, din fericire, nu accesează toate comenzile și datele la fel de probabil, dar preferă o anumită parte din spațiul lor de adrese.

    Ierarhia de memorie a computerelor moderne este construită pe mai multe niveluri, nivelul superior fiind mai mic, mai rapid și mai scump pe octet decât nivelul inferior. Nivelurile unei ierarhii sunt interconectate: toate datele de la un nivel pot fi găsite și la un nivel inferior, iar toate datele de la acel nivel inferior pot fi găsite la nivelul următor inferior și așa mai departe până când ajungem la partea de jos a ierarhiei.

    Ierarhia memoriei constă de obicei din mai multe niveluri, dar în orice moment avem de-a face cu doar două niveluri apropiate. Unitatea minimă de informație care poate sau nu să fie prezentă într-o ierarhie cu două niveluri se numește bloc. Dimensiunea blocului poate fi fixă ​​sau variabilă. Dacă această dimensiune este fixă, atunci dimensiunea memoriei este un multiplu al mărimii blocului.

    Un apel reușit sau nereușit la un nivel superior este apelat respectiv lovit sau domnisoara.

    Lovit– există o referire la un obiect în memorie care se găsește la un nivel superior, în timp ce domnisoaraînseamnă că nu a fost găsit la acest nivel.

    Deoarece îmbunătățirea performanței este principalul motiv pentru apariția ierarhiilor de memorie, ratele de lovituri și ratari sunt o caracteristică importantă. Timpul de lovire este timpul necesar pentru a ajunge la un nivel superior al ierarhiei, care include, dar nu se limitează la, timpul necesar pentru a determina dacă lovitura este o lovitură sau o pierdere. Pierderea pierderii este timpul necesar pentru ca un bloc dintr-un strat superior să fie înlocuit cu un bloc dintr-un strat inferior, plus timpul pentru a transmite acel bloc către dispozitivul dorit (de obicei, procesorul). Pierderea ratată include în plus două componente: timpul de acces - timpul pentru a accesa primul cuvânt al blocului la o ratare și timpul de redirecționare - timpul suplimentar pentru a transmite cuvintele rămase din bloc. Timpul de acces este legat de latența memoriei de nivel inferior, în timp ce timpul de transfer este legat de lățimea de bandă a canalului între dispozitivele de memorie de două niveluri adiacente.

    Pentru a descrie un anumit nivel al ierarhiei memoriei, trebuie să răspundeți la următoarele patru întrebări.

    1) Unde poate fi plasat un bloc la nivelul superior al ierarhiei? (plasarea blocului).

    2) Cum să găsești un bloc când este la nivelul superior? (identificarea blocului).

    3) Ce bloc ar trebui înlocuit în caz de pierdere? (înlocuire bloc).

    4) Ce se întâmplă în timpul înregistrării? (strategia de scriere).

    Organizarea cache-ului

    Astăzi, memoria cache se găsește în aproape fiecare computer. De regulă, memoria cache modernă este structural inseparabilă de procesor

    Dispoziții generale

    Memoria principală este următorul nivel în ierarhia memoriei. Memoria principală satisface cererile de cache și servește ca interfață I/O, fiind destinația pentru intrare și sursa pentru ieșire. Există doi parametri principali utilizați pentru a evalua performanța memoriei principale: latența și lățimea de bandă. Tradiţional latența memoriei principale are legătură cu memoria cache și lățime de bandă sau lățimea de bandă se referă la I/O. Odată cu popularitatea din ce în ce mai mare a cache-urilor L2 și dimensiunile tot mai mari ale blocurilor cache-urilor L2, lățimea de bandă a memoriei principale devine importantă și pentru cache.

    Latența memoriei este în mod tradițional evaluată prin doi parametri: timpul de acces(timp de acces) și durata ciclului memoriei(durata ciclului).

    Timpul de acces reprezintă intervalul de timp dintre emiterea unei cereri de citire și momentul în care cuvântul solicitat ajunge din memorie.

    Durata ciclului memoriei determinat de timpul minim dintre două accesări la memorie.

    Semiconductor RAM este în prezent împărțit în RAM statică(SRAM) și RAM dinamică(DRAM). (Random Access Memory - memorie cu acces aleatoriu).

    Microcircuitele (DRAM) se caracterizează prin capacitate mai mare și costuri mai mici, dar necesită circuite de regenerare și au timpi de acces semnificativ mai mari.

    Trigger Ei numesc un element pe tranzistori, care poate fi într-una din cele două stări stabile (0 și 1), iar conform unui semnal extern este capabil să schimbe starea. Un declanșator poate servi ca o celulă de memorie care stochează un bit de informații.

    Se numește memoria bazată pe declanșare static(SRAM).

    Principiul dispozitivului DRAM este următorul: sistemul metal-dielectric-semiconductor este capabil să funcționeze ca un condensator, adică. capabil să reziste ceva timp incarcare electrica. Notând starea încărcată ca 1 și starea neîncărcată ca 0, obținem o celulă de memorie cu o capacitate de 1 bit. Deoarece încărcarea condensatorului se disipează după o anumită perioadă de timp, acesta trebuie reîncărcat (regenerat) periodic prin citirea și scrierea datelor din nou. Din această cauză, conceptul de „dinamic” a apărut pentru acest tip de memorie.

    RAM statică este un tip de RAM costisitor și neeconomic, deci este folosit în principal pentru memoria cache și în registrele microprocesorului.

    Dezvoltarea RAM

    RAM dinamică a trecut prin mai multe etape de creștere de la introducerea sa. La început, cipurile RAM dinamice au fost produse în pachete DIP. Apoi au fost înlocuite cu module formate din mai multe cipuri: SIPP, SIMM și, în final, DIMM și RIMM. Să aruncăm o privire mai atentă la aceste soiuri.

    1) pachet DIP este cea mai veche implementare a DRAM. Aceasta este de obicei o carcasă mică din plastic neagră, cu contacte metalice pe ambele părți.

    Microcircuite (cu alte cuvinte, cipuri) ale memoriei RAM dinamice au fost instalate în așa-numitele bănci. Băncile vin în 64, 256 KB, 1 și 4 MB. Fiecare bancă este formată din nouă jetoane identice separate. Dintre acestea, opt cipuri sunt concepute pentru a stoca informații, iar al nouălea cip este folosit pentru a verifica paritatea celor opt cipuri rămase din această bancă. Cipurile de memorie aveau capacități de 64 Kbit, 256 Kbit, 1 și 4 Mbit.

    Calculatoarele personale cu microprocesoare i8086/88, i80286 și, parțial, i80386SX/DX au fost echipate cu memorie cu pachete DIP. Instalarea și înlocuirea acestui tip de memorie a fost o sarcină dificilă. Prin urmare, în computerele cu procesor i80386DX, aceste microcircuite au început să înlocuiască memoriile SIPP și SIMM.

    2) module SIPP Sunt plăci mici cu mai multe cipuri DRAM lipite pe ele.

    SIPP este o abreviere pentru Single Inline Package. Modulele SIPP sunt conectate la placa de sistem folosind 30 de pini de contact care sunt introduși în panoul corespunzător placa de baza. Modulele SIPP aveau anumite decupaje care le împiedicau să fie introduse în prize în mod greșit.

    3) module SIMM.

    SIMM înseamnă Single Inline Memory Module. Modulele SIMM pot avea o capacitate de 256 KB, 1, 2, 4, 8, 16 și 32 MB. Modulele SIMM sunt conectate la placa de bază folosind conectori. Modulul este introdus într-un bloc de plastic la un unghi de 70 de grade și apoi fixat cu un suport de plastic. În acest caz, placa stă vertical. Decupaje speciale de pe modulul de memorie le împiedică să fie plasate în mod greșit.

    Modulele SIMM pentru conectarea la placa de bază au benzi (pini) placate cu aur.

    Modulele SIMM au trecut prin două etape în dezvoltarea lor. Primii reprezentanți ai modulelor SIMM au fost SIMM-uri cu 30 de pini. Frecvența lor maximă de operare este de 29 MHz. Timpul standard de acces la memorie a fost considerat a fi de 70 ns. Aceste module au avut deja dificultăți de lucru pe computere cu microprocesoare i80486DX2 și au fost înlocuite mai întâi de DRAM FPM (Fast Page Mode) cu 72 de pini și apoi de RAM EDO (Extended Data Output).

    RAM-urile SIMM EDO au doar 72 de pini și pot funcționa la frecvențe de până la 50 MHz. Aceste module de memorie au fost echipate cu calculatoare cu procesoare Intel 80486DX2/DX4, Intel Pentium, Pentium Pro și Pentium MMX, precum și AMD 80586 și K5.

    · Principiul codificării binare

    · Conform acestui principiu, toate informațiile care intră într-un computer sunt codificate folosind semnale binare (cifre binare, biți) și sunt împărțite în unități numite cuvinte.

    · Principiul omogenității memoriei

    · Programele și datele sunt stocate în aceeași memorie. Prin urmare, computerul nu distinge ceea ce este stocat într-o anumită celulă de memorie - un număr, text sau comandă. Puteți efectua aceleași acțiuni asupra comenzilor ca și asupra datelor.

    · Principiul adresei memoriei

    · Din punct de vedere structural, memoria principală este formată din celule numerotate; Orice celulă este disponibilă procesorului în orice moment. Aceasta implică capacitatea de a denumi zonele de memorie, astfel încât valorile stocate în ele să poată fi accesate sau modificate ulterior în timpul execuției programului folosind numele atribuite.

    · Principiul controlului programului secvenţial

    · Presupune că programul constă dintr-un set de comenzi care sunt executate de procesor automat una după alta într-o anumită secvență.

    · Principiul rigidității arhitecturale

    · Imutabilitatea topologiei, arhitecturii și listei de comenzi în timpul funcționării.

    · Calculatoarele construite pe aceste principii sunt clasificate ca computere von Neumann.

    · Cea mai importantă consecință a acestor principii este că acum programul nu mai era o parte permanentă a mașinii (cum ar fi, de exemplu, un calculator). A devenit posibil să se schimbe ușor programul. Dar echipamentul, desigur, rămâne neschimbat și foarte simplu.

    · Prin comparație, programul calculatorului ENIAC (care nu avea program memorat) a fost determinat de jumperi speciali de pe panou. Ar putea dura mai mult de o zi pentru a reprograma aparatul (setati jumperii diferit). Și deși programele pentru computerele moderne pot dura ani pentru a scrie, ele funcționează pe milioane de computere după câteva minute de instalare pe hard disk.

    ·

    · O mașină von Neumann constă dintr-un dispozitiv de stocare (memorie) - o memorie, un dispozitiv aritmetic-logic - ALU, un dispozitiv de control - CU, precum și dispozitive de intrare și ieșire.

    · Programele și datele sunt introduse în memorie de la dispozitivul de intrare printr-o unitate logică aritmetică. Toate comenzile programului sunt scrise în celulele de memorie adiacente, iar datele pentru procesare pot fi conținute în celule arbitrare. Pentru orice program, ultima comandă trebuie să fie comanda de închidere.

    · O comandă constă dintr-o indicație a operațiunii care trebuie efectuată (dintre operațiunile posibile pe un anumit hardware) și adresele celulelor de memorie în care sunt stocate datele pe care trebuie efectuată operația specificată, precum și adresa celula în care trebuie scris rezultatul (dacă trebuie salvat în memorie).


    · Unitatea aritmetică logică realizează operaţiile specificate de instrucţiuni asupra datelor specificate.

    · Din unitatea logică aritmetică, rezultatele sunt scoase pe memorie sau pe dispozitivul de ieșire. Diferența fundamentală dintre o memorie și un dispozitiv de ieșire este că într-o memorie, datele sunt stocate într-o formă convenabilă pentru procesare de către un computer și sunt trimise la dispozitivele de ieșire (imprimantă, monitor etc.) într-un mod convenabil. pentru o persoană.

    · Unitatea de control controlează toate părțile computerului. De la dispozitivul de control, alte dispozitive primesc semnale „ce trebuie să facă”, iar de la alte dispozitive unitatea de control primește informații despre starea lor.

    · Dispozitivul de control conține un registru special (celulă) numit „contor de programe”. După încărcarea programului și a datelor în memorie, adresa primei instrucțiuni a programului este scrisă în contorul de programe. Unitatea de control citește din memorie conținutul celulei de memorie, a cărei adresă se află în contorul de programe și îl plasează într-un dispozitiv special - „Registrul de comandă”. Unitatea de control determină funcționarea comenzii, „marchează” în memorie datele ale căror adrese sunt specificate în comandă și controlează execuția comenzii. Operația este efectuată de ALU sau hardware-ul computerului.

    · Ca urmare a executării oricărei comenzi, contorul programului se modifică cu unu și, prin urmare, indică următoarea comandă a programului. Atunci când este necesar să se execute o comandă care nu este lângă cea curentă, dar este separată de cea dată printr-un anumit număr de adrese, atunci o comandă specială de salt conține adresa celulei la care trebuie transferat controlul. .

    16) Structură și arhitectură sistem de calcul

    Un sistem (din grecescul systema - un întreg, un compus alcătuit din părți) este un ansamblu de elemente care interacționează între ele, formând o anumită integritate, unitate.
    Un sistem de calcul este o colecție de unul sau mai multe calculatoare sau procesoare, software și echipamente periferice, organizate pentru executarea în comun a proceselor informatice și de calcul.
    Trăsătură distinctivă VS în raport cu calculatoarele este prezența în ele a mai multor computere care implementează procesarea paralelă.
    Principii de bază de proiectare stabilite la crearea unei aeronave:
    capacitatea de a lucra în diferite moduri;
    modularitatea structurii tehnicilor și software, care vă permite să îmbunătățiți și să modernizați sistemele de calcul fără modificări fundamentale;
    unificarea și standardizarea soluțiilor tehnice și software;
    ierarhia în organizarea managementului proceselor;
    capacitatea sistemelor de a se adapta, de a se autoajusta și de a se autoorganiza;
    furnizarea serviciilor necesare utilizatorilor la efectuarea calculelor
    În funcție de scopul lor, aeronavele sunt împărțite în
    universal,
    orientat spre problemă
    de specialitate.
    Cele universale sunt concepute pentru a rezolva o clasă largă de probleme. Cele orientate spre probleme sunt folosite pentru a rezolva o anumită gamă de probleme într-o zonă relativ îngustă. Cele specializate sunt concentrate pe rezolvarea unei clase restrânse de probleme
    În funcție de tipul de aeronavă în care acestea diferă
    multi-mașină
    multiprocesor.
    Un sistem de calcul poate fi construit fie pe baza unor computere întregi (calculator multi-mașină), fie pe baza procesoarelor individuale (calculator multiprocesor).
    După tipul de computer sau procesor se disting
    omogen – construit pe baza aceluiaşi tip de calculatoare sau procesoare.
    sisteme eterogene – include Tipuri variate calculatoare sau procesoare.
    Din punct de vedere geografic, aeronavele sunt împărțite în:
    concentrat (toate componentele sunt situate în imediata apropiere una de alta);
    distribuite (componentele pot fi amplasate la o distanță considerabilă, de exemplu, retele de calculatoare);
    După metodele de control al elementelor de aeronave, acestea se disting
    centralizat,
    descentralizate
    cu control mixt.

    În funcție de modul de operare al aeronavei, sistemele care funcționează în
    operațional
    moduri temporare neoperaționale.
    În plus, aeronavele pot fi structurale
    un singur nivel (există un singur nivel general de prelucrare a datelor);
    Structuri (ierarhice) pe mai multe niveluri. În sistemele informatice ierarhice, mașinile sau procesoarele sunt distribuite pe diferite niveluri de prelucrare a informațiilor; unele mașini (procesoare) se pot specializa în îndeplinirea anumitor funcții.
    Structura sistemului de calcul.
    Structura aeronavei este un set de elemente integrate și conexiunile acestora. Elementele computerului sunt computere și procesoare individuale.
    În structura descrisă pe mai multe niveluri, organizarea clasică von Neumann a forțelor armate este implementată și implică procesarea secvențială a informațiilor conform unui program precompilat.
    Arhitectura sistemelor de calcul. Clasificarea arhitecturilor sistemelor informatice.
    Arhitectura sistemului este un set de proprietăți ale sistemului care sunt esențiale pentru utilizare.
    Arhitectura unui computer este descrierea acestuia la un anumit nivel general, inclusiv o descriere a capabilităților de programare a utilizatorului, a sistemelor de comandă, a sistemelor de adresare, a organizării memoriei etc.
    Arhitectura clasică (arhitectura von Neumann) - o unitate aritmetic-logică (ALU) prin care trece fluxul de date și un dispozitiv de control (CU) prin care trece fluxul de comandă - programul. Acesta este un computer cu un singur procesor.
    Sistem de calcul cu mai multe mașini. Aici, mai multe procesoare incluse într-un sistem de calcul nu au o memorie RAM comună, dar fiecare are propria lor (locală). Fiecare computer dintr-un sistem multi-mașină are o arhitectură clasică, iar un astfel de sistem este utilizat destul de larg.
    Cea mai veche și mai faimoasă este clasificarea arhitecturilor sistemelor informatice propusă în 1966 de M. Flynn.

    · Clasificarea se bazează pe conceptul de fir, care este o succesiune de elemente, comenzi sau date procesate de un procesor. Pe baza numărului de fluxuri de comandă și fluxuri de date, Flynn distinge patru clase de arhitecturi: SISD, MISD, SIMD, MIMD.
    SISD (single instruction stream / single data stream) - un singur flux de instrucțiuni și un singur flux de date. Această clasă include, în primul rând, mașinile secvențiale clasice sau, altfel, mașinile de tip von Neumann, de exemplu, PDP-11 sau VAX 11/780. În astfel de mașini există un singur flux de comenzi, toate comenzile sunt procesate succesiv una după alta și fiecare comandă inițiază o operație pe un flux de date. Nu contează că pipelining-ul poate fi folosit pentru a crește viteza de procesare a instrucțiunilor și viteza aritmetică - atât CDC 6600 cu unități funcționale scalare, cât și CDC 7600 cu conducte se încadrează în această clasă.
    SIMD (flux de instrucțiuni unic / flux de date multiple) - flux de instrucțiuni unic și flux de date multiple. În arhitecturile de acest fel, se păstrează un flux de comenzi care, spre deosebire de clasa anterioară, include comenzi vectoriale. Acest lucru vă permite să efectuați o singură operație aritmetică pe mai multe date - elemente vectoriale - simultan. Metoda de efectuare a operațiilor vectoriale nu este specificată, astfel încât prelucrarea elementelor vectoriale se poate face fie printr-o matrice de procesor, ca în ILLIAC IV, fie folosind o conductă, ca, de exemplu, în mașina CRAY-1.
    MISD (flux de instrucțiuni multiple / flux de date unic) - flux de instrucțiuni multiple și flux de date unic. Definiția implică prezența în arhitectură a multor procesoare care prelucrează același flux de date. Cu toate acestea, nici Flynn, nici alți experți în domeniul arhitecturii computerelor nu au reușit încă să ofere un exemplu convingător de sistem de calcul din viața reală, construit pe acest principiu. O serie de cercetători atribuie mașinilor transportoare acestui lucru

Acțiune