Care este principiul lui Neumann? Apariția computerelor, principiile lui von Neumann. Aspectul plăcii de bază

Astăzi este greu de crezut, dar computerele, fără de care mulți nu își mai pot imagina viața, au apărut cu doar 70 de ani în urmă. Unul dintre cei care au adus o contribuție decisivă la creația lor a fost omul de știință american John von Neumann. El a propus principiile pe baza cărora funcționează majoritatea calculatoarelor până astăzi. Să vedem cum funcționează o mașină von Neumann.

Scurte informații biografice

Janos Neumann s-a născut în 1930 la Budapesta, într-o familie de evrei foarte bogată, care a reușit ulterior să obțină un titlu nobiliar. Încă din copilărie, s-a remarcat prin abilități remarcabile în toate domeniile. La 23 de ani, Neumann își susțisese deja teza de doctorat în domeniul fizicii și chimiei experimentale. În 1930, tânărul om de știință a fost invitat să lucreze în SUA și, în același timp, Neumann a devenit unul dintre primii angajați ai Institutului pentru Studii Avansate, unde a lucrat ca profesor până la sfârșitul vieții. Interesele științifice ale lui Neumann erau destul de extinse. În special, el este unul dintre creatorii aparatului de mecanică cuantică și a conceptului de automată celulară.

Contribuții la informatică

Înainte de a afla ce principiu nu respectă arhitectura lui von Neumann, va fi interesant de știut cum a venit omului de știință ideea de a crea un tip modern de mașină de calcul.

Expert în matematica exploziilor și a undelor de șoc, von Neumann a servit ca consultant științific la unul dintre laboratoarele de sondaj al armatei Statelor Unite ale Americii la începutul anilor 1940. În toamna anului 1943, a sosit în Los Alamos pentru a participa la dezvoltarea Proiectului Manhattan, la invitația personală a liderului acestuia, i s-a dat sarcina de a calcula forța de compresie prin implozie a încărcăturii unei bombe atomice la o masă critică. Pentru a o rezolva, au fost necesare calcule mari, care la început au fost efectuate pe calculatoare de mână, iar mai târziu pe tabulatoare mecanice de la IBM, folosind carduri perforate.

M-am familiarizat cu informații despre progresul creării computerelor electronice-mecanice și complet electronice. Curând s-a implicat în dezvoltarea calculatoarelor EDVAC și ENIAC, ceea ce l-a determinat să scrie primul raport neterminat despre EDVAC, în care a prezentat comunității științifice o idee complet nouă despre ceea ce ar trebui să fie arhitectura computerului.

principiile lui Von Neumann

Informatica ca știință ajunsese într-o fundătură până în 1945, deoarece toată lumea stoca numerele procesate în memoria lor în forma a 10-a, iar programele pentru efectuarea operațiunilor erau specificate prin instalarea de jumperi pe tablou.

Acest lucru a limitat semnificativ capacitățile computerelor. Adevărata descoperire au fost principiile lui von Neumann. Ele pot fi exprimate pe scurt într-o singură propoziție: trecerea la sistemul de numere binar și principiul unui program stocat.

Analiză

Să luăm în considerare pe ce principii se bazează structura clasică a mașinii von Neumann, mai detaliat:

1. Trecerea la sistemul binar de la zecimal

Acest principiu al arhitecturii Neumann permite utilizarea unor dispozitive logice destul de simple.

2. Controlul software al unui computer electronic

Funcționarea unui computer este controlată de un set de comenzi executate secvenţial una după alta. Dezvoltarea primelor mașini cu un program stocat în memorie a marcat începutul programării moderne.

3. Datele și programele sunt stocate împreună în memoria computerului

În același timp, atât comenzile de date, cât și de program au același mod de a fi scrise în sistemul de numere binar, astfel încât în ​​anumite situații este posibil să se efectueze aceleași acțiuni asupra lor ca și asupra datelor.

Consecințe

În plus, arhitectura mașinii Fonneyman are următoarele caracteristici:

1. Celulele de memorie au adrese care sunt numerotate secvenţial

Datorită aplicării acestui principiu, a devenit posibilă utilizarea variabilelor în programare. În special, în orice moment puteți accesa o anumită celulă de memorie prin adresa sa.

2. Posibilitatea de salt condiționat în timpul execuției programului

După cum sa menționat deja, comenzile din programe trebuie să fie executate secvenţial. Cu toate acestea, este posibil să săriți la orice secțiune a codului.

Cum funcționează o mașină von Neumann?

Un astfel de model matematic constă dintr-o stocare (memorie), control și dispozitive de intrare și ieșire. Toate comenzile programului sunt scrise în celule de memorie situate în apropiere, iar datele pentru procesarea lor sunt în celule arbitrare.

Orice echipa trebuie sa fie formata din:

  • indicații despre ce operație urmează să fie efectuată;
  • adresele celulelor de memorie în care sunt stocate datele sursă afectate de operația specificată;
  • adresele celulelor în care trebuie scris rezultatul.

Operațiile specificate de comenzile asupra datelor sursă specifice sunt efectuate de ALU, iar rezultatele sunt înregistrate în celule de memorie, adică sunt stocate într-o formă convenabilă pentru prelucrarea ulterioară a mașinii sau transmise către un dispozitiv de ieșire (monitor, imprimantă, etc.) și devin accesibile oamenilor.

Unitatea de control controlează toate părțile computerului. De la acesta, alte dispozitive primesc semnale-comenzi „ce să facă”, iar de la alte dispozitive primește informații despre starea în care se află.

Dispozitivul de control are un registru special numit „contor de programe” SK. După încărcarea datelor sursă și a programului în memorie, adresa primei sale comenzi este scrisă în CS. Unitatea de control citește din memoria computerului conținutul celulei a cărei adresă se află în IC și o plasează în „Registrul de comandă”. Dispozitivul de control determină operația corespunzătoare unei anumite comenzi și „marchează” în memoria computerului datele ale căror adrese sunt indicate în aceasta. Apoi, ALU sau computerul începe să execute o operație, la finalizarea căreia conținutul CS se schimbă cu unul, adică indică către următoarea comandă.

Critică

Neajunsurile și perspectivele actuale continuă să fie subiect de dezbatere. Faptul că mașinile create pe principiile prezentate de acest om de știință remarcabil nu sunt perfecte a fost observat cu mult timp în urmă.

Prin urmare, în lucrările de examen în informatică puteți găsi adesea întrebarea „ce principiu nu îndeplinește arhitectura von Neumann și ce deficiențe are?”

Când răspundeți la a doua parte, asigurați-vă că indicați:

  • pentru prezența unui decalaj semantic între limbajele de programare de nivel înalt și sistemele de comandă;
  • cu privire la problema potrivirii OP și debitul procesorului;
  • la criza software emergentă, cauzată de faptul că costurile creării acestuia sunt mult mai mici decât costul dezvoltării hardware și nu există posibilitatea de a testa complet programul;
  • lipsa perspectivelor în ceea ce privește performanța, întrucât limita sa teoretică a fost deja atinsă.

Cât despre principiul căruia nu este conformă arhitectura von Neumann, vorbim despre organizarea paralelă a unui număr mare de fluxuri de date și comenzi, caracteristice unei arhitecturi multiprocesor.

Concluzie

Acum știți ce principiu nu respectă arhitectura von Neumann. Este evident că știința și tehnologia nu stau pe loc și, probabil, foarte curând un tip complet nou de computer va apărea în fiecare casă, datorită căruia umanitatea va atinge un nou nivel de dezvoltare. Apropo, programul de formare „Von Neumann Architecture” vă va ajuta să vă pregătiți pentru examen. Astfel de resurse educaționale digitale facilitează învățarea materialului și oferă o oportunitate de a vă evalua cunoștințele.

Prima mașină de adunare capabilă să efectueze patru operații aritmetice de bază a fost mașina de adunare a celebrului om de știință și filozof francez Blaise Pascal. Elementul principal din acesta a fost o roată dințată, a cărei invenție a devenit în sine un eveniment cheie în istoria tehnologiei informatice. Aș dori să remarc că evoluția în domeniul tehnologiei informatice este neuniformă, spasmodică: perioadele de acumulare de forță sunt înlocuite cu descoperiri în dezvoltare, după care începe o perioadă de stabilizare, în care rezultatele obținute sunt utilizate practic și la în același timp, cunoștințele și forța sunt acumulate pentru următorul salt înainte. După fiecare revoluție, procesul de evoluție atinge un nou nivel, mai înalt.

În 1671, filozoful și matematicianul german Gustav Leibniz a creat și o mașină de adăugare bazată pe o roată dințată cu un design special - roata dințată Leibniz. Adunarea lui Leibniz, ca și adunările predecesorilor săi, a efectuat patru operații aritmetice de bază. Această perioadă s-a încheiat, iar umanitatea, timp de aproape un secol și jumătate, a acumulat forță și cunoștințe pentru următoarea rundă de evoluție a tehnologiei computerelor. Secolele al XVIII-lea și al XIX-lea au fost o perioadă în care diferite științe, inclusiv matematica și astronomia, s-au dezvoltat rapid. Acestea implicau adesea sarcini care necesitau calcule consumatoare de timp și de muncă intensivă.

O altă persoană celebră din istoria computerului a fost matematicianul englez Charles Babbage. În 1823, Babbage a început să lucreze la o mașină pentru calcularea polinoamelor, dar, mai interesant, această mașină, pe lângă producerea directă a calculelor, trebuia să producă rezultate - să le imprime pe o placă negativă pentru imprimare fotografică. Era planificat ca mașina să fie alimentată de un motor cu abur. Din cauza dificultăților tehnice, Babbage nu a putut să-și finalizeze proiectul. Aici, pentru prima dată, a apărut ideea de a folosi un dispozitiv extern (periferic) pentru a scoate rezultatele calculelor. Rețineți că un alt om de știință, Scheutz, a implementat totuși mașina concepută de Babbage în 1853 (s-a dovedit a fi chiar mai mică decât era planificată). Probabil că lui Babbage i-a plăcut mai mult procesul creativ de căutare a ideilor noi decât de a le traduce în ceva material. În 1834, el a subliniat principiile de funcționare a unei alte mașini, pe care a numit-o „Analitică”. Dificultățile tehnice l-au împiedicat din nou să-și realizeze pe deplin ideile. Babbage a reușit să aducă mașina doar la stadiul experimental. Dar ideea este motorul progresului științific și tehnologic. Următoarea mașină a lui Charles Babbage a fost întruchiparea următoarelor idei:

Managementul procesului de productie. Mașina controla funcționarea mașinii de țesut, schimbând modelul țesăturii create în funcție de combinația de găuri pe o bandă de hârtie specială. Această bandă a devenit predecesorul unor astfel de suporturi de informații care ne sunt familiare tuturor ca cărți perforate și benzi perforate.

Programabilitate. Mașina era controlată și de o bandă specială de hârtie cu găuri. Ordinea găurilor de pe el a determinat comenzile și datele procesate de aceste comenzi. Aparatul avea un dispozitiv aritmetic și memorie. Comenzile mașinii au inclus chiar și o comandă de salt condiționat, care a schimbat cursul calculelor în funcție de unele rezultate intermediare.

Contesa Ada Augusta Lovelace, care este considerată primul programator din lume, a luat parte la dezvoltarea acestei mașini.

Ideile lui Charles Babbage au fost dezvoltate și folosite de alți oameni de știință. Așadar, în 1890, la începutul secolului al XX-lea, americanul Herman Hollerith a dezvoltat o mașină care lucra cu tabele de date (primul Excel?). Aparatul era controlat de un program pe carduri perforate. A fost folosit la recensământul din 1890 din SUA. În 1896, Hollerith a fondat compania care a fost predecesorul IBM Corporation. Odată cu moartea lui Babbage, a venit o altă pauză în evoluția tehnologiei de calcul până în anii 30 ai secolului XX. Ulterior, întreaga dezvoltare a omenirii a devenit de neconceput fără computere.

În 1938, centrul dezvoltării s-a mutat pentru scurt timp din America în Germania, unde Konrad Zuse a creat o mașină care, spre deosebire de predecesorii săi, nu funcționa cu numere zecimale, ci cu numere binare. Această mașină era, de asemenea, încă mecanică, dar avantajul ei incontestabil era că implementa ideea procesării datelor în cod binar. Continuându-și munca, Zuse în 1941 a creat o mașină electromecanică, al cărei dispozitiv aritmetic se baza pe un releu. Aparatul poate efectua operații în virgulă mobilă.

De peste mări, în America, s-au lucrat și în această perioadă pentru a crea mașini electromecanice similare. În 1944, Howard Aiken a proiectat o mașină numită Mark-1. Ea, ca și mașina lui Zuse, a lucrat la un releu. Dar pentru că această mașină a fost creată în mod clar sub influența muncii lui Babbage, a funcționat cu date în formă zecimală.

Desigur, din cauza proporției mari de piese mecanice, aceste mașini au fost condamnate.

Patru generații de calculatoare

Până la sfârșitul anilor treizeci ai secolului al XX-lea, nevoia de automatizare a proceselor de calcul complexe a crescut foarte mult. Acest lucru a fost facilitat de dezvoltarea rapidă a unor industrii precum producția de avioane, fizica nucleară și altele. Din 1945 până în prezent, tehnologia computerelor a trecut prin 4 generații în dezvoltarea sa:

Prima generatie

Prima generație (1945-1954) - calculatoare cu tub vid. Sunt vremuri preistorice, epoca apariției tehnologiei informatice. Majoritatea mașinilor din prima generație erau dispozitive experimentale și au fost construite pentru a testa anumite principii teoretice. Greutatea și dimensiunea acestor dinozauri computerizati, care adesea necesitau clădiri separate pentru ei înșiși, au devenit de multă vreme o legendă.

Începând din 1943, un grup de specialiști condus de Howard Aitken, J. Mauchly și P. Eckert în SUA a început să proiecteze un computer bazat pe tuburi vid, mai degrabă decât pe relee electromagnetice. Această mașină se numea ENIAC (Electronic Numeral Integrator And Computer) și a funcționat de o mie de ori mai rapid decât Mark-1. ENIAC conținea 18 mii de tuburi vidate, ocupa o suprafață de 9x15 metri, cântărea 30 de tone și consuma o putere de 150 de kilowați. ENIAC avea și un dezavantaj semnificativ - era controlat cu ajutorul unui panou de corecție, nu avea memorie și pentru a seta un program a durat câteva ore sau chiar zile pentru a conecta firele în mod corect. Cel mai rău dintre toate neajunsurile a fost nefiabilitatea îngrozitoare a computerului, deoarece aproximativ o duzină de tuburi cu vid au reușit să eșueze într-o zi de funcționare.

Pentru a simplifica procesul de setare a programelor, Mauchly și Eckert au început să proiecteze o nouă mașină care ar putea stoca un program în memoria sa. În 1945, în lucrare a fost implicat celebrul matematician John von Neumann, care a pregătit un raport despre această mașină. În acest raport, von Neumann a formulat clar și simplu principiile generale de funcționare a dispozitivelor de calcul universale, i.e. calculatoare. Aceasta a fost prima mașină operațională construită pe tuburi vidate și a fost dată oficial în funcțiune pe 15 februarie 1946. Au încercat să folosească această mașină pentru a rezolva unele probleme pregătite de von Neumann și legate de proiectul bombei atomice. Apoi a fost transportată la Aberdeen Proving Ground, unde a funcționat până în 1955.

ENIAC a devenit primul reprezentant al primei generații de calculatoare. Orice clasificare este condiționată, dar majoritatea experților au fost de acord că generațiile ar trebui să fie distinse în funcție de baza elementară pe care sunt construite mașinile. Astfel, prima generație pare să fie mașini cu tuburi.

Este necesar de remarcat rolul enorm al matematicianului american von Neumann în dezvoltarea tehnologiei de prima generație. A fost necesar să se înțeleagă punctele tari și punctele slabe ale ENIAC și să se facă recomandări pentru evoluțiile ulterioare. Raportul lui von Neumann și colegii săi G. Goldstein și A. Burks (iunie 1946) a formulat clar cerințele pentru structura calculatoarelor. Multe dintre prevederile acestui raport au fost numite principii Von Neumann.

Primele proiecte de calculatoare casnice au fost propuse de S.A. Lebedev, B.I. Rameev în 1948 În 1949-51. conform proiectului S.A. Lebedev, MESM (mașină de calcul electronică mică) a fost construită. Prima lansare de probă a unui prototip al mașinii a avut loc în noiembrie 1950, iar mașina a fost pusă în funcțiune în 1951. MESM a lucrat într-un sistem binar, cu un sistem de comandă cu trei adrese, iar programul de calcul a fost stocat într-un dispozitiv de stocare operațional. Mașina lui Lebedev cu procesare paralelă a textului a fost o soluție fundamental nouă. A fost unul dintre primele computere din lume și primul de pe continentul european cu un program stocat.

Calculatorul de generația I include și BESM-1 (mașină de calcul electronic mare), a cărui dezvoltare sub conducerea S.A. Lebedeva a fost finalizată în 1952, conținea 5 mii de lămpi, a funcționat fără defecțiuni timp de 10 ore. Performanța a atins 10 mii de operații pe secundă (Anexa 1).

Aproape simultan, computerul Strela a fost proiectat (Anexa 2) sub conducerea lui Yu.Ya. Bazilevski, în 1953. a fost pus in productie. Ulterior, a apărut calculatorul Ural - 1 (Anexa 3), care a marcat începutul unei mari serii de mașini Ural, dezvoltate și puse în producție sub conducerea lui B.I. Rameeva. În 1958 Prima generație de computer M-20 (viteză de până la 20 de mii de operațiuni/s) a fost pus în producție în serie.

Calculatoarele de prima generație aveau viteze de câteva zeci de mii de operații pe secundă. Miezurile de ferită au fost folosite ca memorie internă, iar ALU și unitățile de control au fost construite pe tuburi electronice. Viteza computerului a fost determinată de o componentă mai lentă - memoria internă - și acest lucru a redus efectul general.

Calculatoarele din prima generație au fost orientate spre efectuarea de operații aritmetice. Când s-a încercat să le adapteze la sarcinile de analiză, s-au dovedit a fi ineficiente.

Nu existau încă limbaje de programare ca atare, iar programatorii foloseau instrucțiuni ale mașinii sau asamblatori pentru a-și codifica algoritmii. Acest lucru a complicat și a întârziat procesul de programare.

Până la sfârșitul anilor 50, instrumentele de programare sufereau schimbări fundamentale: s-a făcut o tranziție la automatizarea programării folosind limbaje universale și biblioteci de programe standard. Utilizarea limbilor universale a dus la apariția traducătorilor.

Programele au fost executate sarcină cu sarcină, adică. operatorul trebuia să monitorizeze progresul sarcinii și, când s-a ajuns la final, să inițieze următoarea sarcină.

A doua generație

În a doua generație de calculatoare (1955-1964), în locul tuburilor vidate au fost folosite tranzistori, iar miezurile magnetice și tamburele magnetice, strămoșii îndepărtați ai hard disk-urilor moderne, au început să fie folosite ca dispozitive de memorie. Toate acestea au făcut posibilă reducerea drastică a dimensiunii și costului computerelor, care apoi au început să fie construite pentru vânzare pentru prima dată.

Dar principalele realizări ale acestei epoci aparțin domeniului programelor. Pe a doua generație de computere a apărut pentru prima dată ceea ce se numește acum un sistem de operare. În același timp, au fost dezvoltate primele limbaje de nivel înalt - Fortran, Algol, Cobol. Aceste două îmbunătățiri importante au făcut scrierea programelor de calculator mult mai ușoară și mai rapidă; Programarea, deși rămâne o știință, capătă caracteristicile unui meșteșug.

În consecință, sfera aplicațiilor informatice sa extins. Acum nu mai erau doar oamenii de știință cei care puteau conta pe accesul la tehnologia de calcul; calculatoarele au fost folosite în planificare și management, iar unele firme mari și-au computerizat chiar contabilitatea, anticipând moda cu douăzeci de ani.

Semiconductorii au devenit baza elementară a celei de-a doua generații. Fără îndoială, tranzistoarele pot fi considerate unul dintre cele mai impresionante miracole ale secolului al XX-lea.

Un brevet pentru descoperirea tranzistorului a fost eliberat în 1948 americanilor D. Bardeen și W. Brattain, iar opt ani mai târziu aceștia, împreună cu teoreticianul V. Shockley, au devenit laureați ai Premiului Nobel. Vitezele de comutare ale primelor elemente de tranzistor s-au dovedit a fi de sute de ori mai mari decât cele ale elementelor tubulare, precum și fiabilitatea și eficiența. Pentru prima dată, memoria de pe miezurile de ferită și peliculele magnetice subțiri a început să fie utilizată pe scară largă și au fost testate elemente inductive - parametrii.

Primul computer de bord pentru instalare pe o rachetă intercontinentală, Atlas, a fost pus în funcțiune în Statele Unite în 1955. Aparatul folosea 20 de mii de tranzistori și diode, consuma 4 kilowați.În 1961, calculatoarele întinse de la sol Barrows controlau zborurile spațiale ale rachetelor Atlas, iar mașinile IBM controlau zborul astronautului Gordon Cooper. Computerul a controlat zborurile navelor spațiale fără pilot de tip Ranger către Lună în 1964, precum și navele spațiale Mariner către Marte. Calculatoarele sovietice îndeplineau funcții similare.

În 1956, IBM a dezvoltat capete magnetice plutitoare pe o pernă de aer. Invenția lor a făcut posibilă crearea unui nou tip de memorie - dispozitive de stocare pe disc, a căror importanță a fost pe deplin apreciată în deceniile următoare ale dezvoltării tehnologiei de calcul. Primele dispozitive de stocare pe disc au apărut în mașinile IBM-305 și RAMAC (Anexa 4). Acesta din urmă avea un pachet format din 50 de discuri metalice acoperite magnetic care se roteau cu o viteză de 12.000 rpm. Suprafața discului conținea 100 de piste pentru înregistrarea datelor, fiecare conținând 10.000 de caractere.

Primele calculatoare mainframe produse în serie cu tranzistori au fost lansate în 1958 simultan în SUA, Germania și Japonia.

Apar primele minicalculatoare (de exemplu, PDP-8 (Anexa 5)).

În Uniunea Sovietică, primele mașini fără lampă „Setun”, „Razdan” și „Razdan-2” au fost create în 1959-1961. În anii 60, designerii sovietici au dezvoltat aproximativ 30 de modele de calculatoare cu tranzistori, dintre care majoritatea au început să fie produse în masă. Cel mai puternic dintre ei, Minsk-32, a efectuat 65 de mii de operațiuni pe secundă. Au apărut familii întregi de vehicule: „Ural”, „Minsk”, BESM.

Deținătorul recordului în rândul calculatoarelor din a doua generație a fost BESM-6 (Anexa 6), care avea o viteză de aproximativ un milion de operații pe secundă - una dintre cele mai productive din lume. Arhitectura și multe soluții tehnice din acest computer au fost atât de progresive și înainte de vremea lor încât a fost folosit cu succes aproape până în epoca noastră.

În special pentru automatizarea calculelor inginerești la Institutul de Cibernetică al Academiei de Științe a RSS Ucrainei sub conducerea academicianului V.M. Glushkov a dezvoltat calculatoarele MIR (1966) și MIR-2 (1969). O caracteristică importantă a mașinii MIR-2 a fost utilizarea unui ecran de televiziune pentru controlul vizual al informațiilor și a unui stilou luminos, cu ajutorul căruia a fost posibilă corectarea datelor direct pe ecran.

Construcția unor astfel de sisteme, care includea aproximativ 100 de mii de elemente de comutare, ar fi pur și simplu imposibilă pe baza tehnologiei lămpii. Astfel, a doua generație s-a născut în profunzimea primei, adoptând multe dintre trăsăturile sale. Cu toate acestea, la mijlocul anilor 60, boom-ul în domeniul producției de tranzistori a atins maximul - a avut loc saturarea pieței. Cert este că asamblarea echipamentelor electronice a fost un proces foarte laborios și lent, care nu se preta bine mecanizării și automatizării. Astfel, condițiile sunt propice pentru o tranziție la o nouă tehnologie care să găzduiască complexitatea tot mai mare a circuitelor prin eliminarea conexiunilor tradiționale dintre elementele acestora.

A treia generatie

În cele din urmă, în a treia generație de calculatoare (1965-1974), au început să fie folosite pentru prima dată circuitele integrate - dispozitive întregi și unități de zeci și sute de tranzistori, realizate pe un singur cristal semiconductor (ceea ce acum se numește microcircuite). În același timp, a apărut memoria semiconductoare, care este încă folosită în computerele personale ca RAM pe tot parcursul zilei. Prioritatea în inventarea circuitelor integrate, care a devenit baza elementară a calculatoarelor din a treia generație, aparține oamenilor de știință americani D. Kilby și R. Noyce, care au făcut această descoperire independent unul de celălalt. Producția de masă a circuitelor integrate a început în 1962, iar în 1964 trecerea de la elementele discrete la cele integrate a început să aibă loc rapid. Menționatul ENIAK, cu dimensiunile 9x15 metri, în 1971 ar fi putut fi asamblat pe o placă de 1,5 centimetri pătrați. A început transformarea electronicii în microelectronice.

În acești ani, producția de calculatoare a căpătat o scară industrială. IBM, care devenise lider, a fost primul care a implementat o familie de calculatoare - o serie de computere care erau pe deplin compatibile între ele, de la cele mai mici, de dimensiunea unui mic dulap (nu făcuseră niciodată ceva mai mic atunci), la cele mai puternice și scumpe modele. Cea mai răspândită în acei ani a fost familia System/360 de la IBM, pe baza căreia a fost dezvoltată seria de calculatoare ES în URSS. În 1973, a fost lansat primul model de computer din seria ES, iar din 1975 au apărut modelele ES-1012, ES-1032, ES-1033, ES-1022, iar mai târziu ES-1060, mai puternic.

Ca parte a celei de-a treia generații, în SUA a fost construită o mașină unică „ILLIAK-4”, care în versiunea sa originală a fost planificată să folosească 256 de dispozitive de procesare a datelor realizate pe circuite integrate monolitice. Proiectul a fost modificat ulterior din cauza costului destul de mare (mai mult de 16 milioane de dolari). Numărul de procesoare a trebuit să fie redus la 64 și, de asemenea, trecut la circuite integrate cu un grad scăzut de integrare. O versiune scurtată a proiectului a fost finalizată în 1972; viteza nominală a ILLIAC-4 a fost de 200 de milioane de operațiuni pe secundă. Timp de aproape un an, acest computer a deținut recordul de viteză de calcul.

La începutul anilor ’60, au apărut primele minicalculatoare – computere mici, cu putere redusă, accesibile firmelor sau laboratoarelor mici. Minicalculatoarele au reprezentat primul pas către calculatoarele personale, prototipurile cărora au fost lansate abia la mijlocul anilor '70. Cunoscuta familie de minicalculatoare PDP de la Digital Equipment a servit drept prototip pentru seria de mașini sovietice SM.

Între timp, numărul de elemente și conexiuni dintre ele care se potrivesc într-un singur microcircuit creștea constant, iar în anii 70, circuitele integrate conțineau deja mii de tranzistori. Acest lucru a făcut posibilă combinarea majorității componentelor computerului într-o singură parte mică - ceea ce a făcut Intel în 1971, lansând primul microprocesor, care era destinat calculatoarelor desktop care tocmai apăruseră. Această invenție a fost menită să producă o adevărată revoluție în următorul deceniu - la urma urmei, microprocesorul este inima și sufletul computerului nostru personal.

Dar asta nu este tot - într-adevăr, trecerea anilor 60 și 70 a fost o perioadă fatidică. În 1969, s-a născut prima rețea globală de calculatoare - embrionul a ceea ce numim acum Internet. Și în același 1969 au apărut simultan sistemul de operare Unix și limbajul de programare C, care au avut un impact uriaș asupra lumii software și își menține în continuare poziția de lider.

A patra generație

O altă schimbare în baza elementului a dus la o schimbare a generațiilor. În anii '70, se lucra în mod activ pentru a crea circuite integrate mari și ultra-mari (LSI și VLSI), care au făcut posibilă plasarea a zeci de mii de elemente pe un singur cip. Acest lucru a dus la o reducere semnificativă suplimentară a dimensiunii și costului computerelor. Lucrul cu software-ul a devenit mai ușor de utilizat, ceea ce a dus la o creștere a numărului de utilizatori.

În principiu, cu un astfel de grad de integrare a elementelor, a devenit posibil să se încerce să se creeze un computer complet funcțional pe un singur cip. Au fost făcute încercări adecvate, deși au fost întâmpinați în mare parte cu un zâmbet neîncrezător. Probabil că ar fi mai puține dintre aceste zâmbete dacă ar fi posibil să se prevadă că această idee ar provoca dispariția calculatoarelor mainframe în doar un deceniu și jumătate.

Cu toate acestea, la începutul anilor 70, Intel a lansat microprocesorul (MP) 4004. Și dacă înainte de asta existau doar trei direcții în lumea computerelor (supercalculatoare, mainframe și minicalculatoare), acum li s-a adăugat o alta - microprocesor. În general, un procesor este înțeles ca o unitate funcțională a unui computer concepută pentru prelucrarea logică și aritmetică a informațiilor bazată pe principiul controlului microprogramelor. Pe baza implementării hardware, procesoarele pot fi împărțite în microprocesoare (toate funcțiile procesorului sunt complet integrate) și procesoare cu integrare scăzută și medie. Structural, acest lucru se exprimă prin faptul că microprocesoarele implementează toate funcțiile procesorului pe un singur cip, în timp ce alte tipuri de procesoare le implementează prin conectarea unui număr mare de cipuri.

Așadar, primul microprocesor 4004 a fost creat de Intel la începutul anilor 70. Era un dispozitiv de calcul paralel pe 4 biți, iar capacitățile sale erau sever limitate. 4004 putea efectua patru operații aritmetice de bază și a fost utilizat inițial doar în calculatoarele de buzunar. Ulterior, domeniul său de aplicare a fost extins pentru a include utilizarea în diverse sisteme de control (de exemplu, pentru controlul semafoarelor). Intel, după ce a prevăzut corect promisiunea microprocesoarelor, a continuat dezvoltarea intensivă, iar unul dintre proiectele sale a dus în cele din urmă la un succes major, care a predeterminat calea viitoare de dezvoltare a tehnologiei computerelor.

Acesta a fost proiectul de dezvoltare a procesorului 8080 pe 8 biți (1974). Acest microprocesor avea un sistem de comandă destul de dezvoltat și era capabil să împartă numere. A fost folosit pentru a crea computerul personal Altair, pentru care tânărul Bill Gates a scris unul dintre primii săi interpreți în limbajul BASIC. Probabil că din acest moment ar trebui numărată a 5-a generație.

A cincea generație

Tranziția la calculatoare de generația a cincea a implicat o tranziție la noi arhitecturi menite să creeze inteligență artificială.

Se credea că arhitectura de computer de a cincea generație va conține două blocuri principale. Unul dintre ele este computerul în sine, în care comunicarea cu utilizatorul este realizată de o unitate numită „interfață inteligentă”. Sarcina interfeței este de a înțelege textul scris în limbaj natural sau vorbire și de a traduce enunțul problemei astfel enunțat într-un program de lucru.

Cerințe de bază pentru calculatoarele din generația a 5-a: Crearea unei interfețe om-mașină dezvoltate (recunoaștere vorbire, recunoaștere imagini); Dezvoltarea programării logice pentru crearea bazelor de cunoștințe și a sistemelor de inteligență artificială; Crearea de noi tehnologii în producția de echipamente informatice; Crearea de noi arhitecturi de calculatoare și sisteme de calcul.

Noile capacități tehnice ale tehnologiei informatice ar fi trebuit să extindă gama de sarcini de rezolvat și să facă posibilă trecerea la sarcinile de creare a inteligenței artificiale. Una dintre componentele necesare pentru crearea inteligenței artificiale este bazele de cunoștințe (bazele de date) din diverse domenii ale științei și tehnologiei. Crearea și utilizarea bazelor de date necesită sisteme de calcul de mare viteză și o cantitate mare de memorie. Calculatoarele de uz general sunt capabile să efectueze calcule de mare viteză, dar nu sunt potrivite pentru a efectua operații de comparare și sortare de mare viteză pe volume mari de înregistrări, stocate de obicei pe discuri magnetice. Pentru a crea programe care umple, actualizează și lucrează cu baze de date, au fost create limbaje de programare logice și orientate pe obiecte care oferă cele mai mari capacități în comparație cu limbajele procedurale convenționale. Structura acestor limbaje necesită o tranziție de la arhitectura computerizată tradițională von Neumann la arhitecturi care țin cont de cerințele sarcinilor de creare a inteligenței artificiale.

Clasa de supercalculatoare include calculatoare care au performanța maximă la momentul lansării lor, sau așa-numitele computere din generația a 5-a.

Primele supercalculatoare au apărut deja în rândul calculatoarelor din a doua generație (1955 - 1964, vezi calculatoare din a doua generație); au fost concepute pentru a rezolva probleme complexe care necesitau calcule de mare viteză. Acestea sunt LARC de la UNIVAC, Stretch de la IBM și „CDC-6600″ (familia CYBER) de la Control Data Corporation; au folosit metode de procesare paralelă (creșterea numărului de operațiuni efectuate pe unitatea de timp), pipelining de comandă (când în timpul execuției o comandă a doua este citită din memorie și pregătită pentru execuție) și procesare paralelă folosind o structură de procesor complexă constând dintr-o matrice de procesoare de date și un procesor de control special care distribuie sarcinile și controlează fluxul de date în sistem. Calculatoarele care rulează mai multe programe în paralel folosind mai multe microprocesoare sunt numite sisteme multiprocesoare. Până la mijlocul anilor '80, lista celor mai mari producători de supercomputere din lume includea Sperry Univac și Burroughs. Primul este cunoscut, în special, pentru sistemele sale centrale UNIVAC-1108 și UNIVAC-1110, care au fost utilizate pe scară largă în universități și organizații guvernamentale.

În urma fuziunii dintre Sperry Univac și Burroughs, UNISYS combinat a continuat să susțină ambele linii mainframe, menținând în același timp compatibilitatea ascendentă în fiecare. Acesta este un indiciu clar al regulii imuabile care a susținut dezvoltarea mainframe-urilor - păstrarea funcționalității software-ului dezvoltat anterior.

Intel este faimos și în lumea supercomputerelor. Calculatoarele multiprocesoare Intel Paragon din familia structurilor multiprocesoare cu memorie distribuită au devenit la fel de clasice.

principiile von Neumann

Î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ă rezume dezvoltările și descoperirile științifice ale multor alți oameni de știință și să formuleze principii fundamental noi pe baza lor:
1. Principiul reprezentării și stocării numerelor.
Sistemul de numere binar este folosit pentru a reprezenta și stoca numere. Avantajul față de sistemul numeric zecimal este că bitul este ușor de implementat, memoria de biți de mare capacitate este destul de ieftină, dispozitivele pot fi făcute destul de simple, iar operațiile aritmetice și logice în sistemul de numere binar sunt, de asemenea, destul de simple.
2. Principiul controlului programelor de calculator.
Funcționarea computerului este controlată de un program format dintr-un set de comenzi. Comenzile sunt executate secvenţial una după alta. Comenzile procesează datele stocate în memoria computerului.
3. Principiul programului stocat.
Memoria computerului este folosită nu numai pentru stocarea datelor, ci și a programelor. În acest caz, atât comenzile programului, cât și datele sunt codificate în sistemul de numere binar, adică metoda lor de înregistrare este aceeași. Prin urmare, în anumite situații, puteți efectua aceleași acțiuni asupra comenzilor ca și asupra datelor.
4. Principiul accesului direct la memorie.
Celulele RAM ale computerului au adrese numerotate secvenţial. În orice moment, puteți accesa orice celulă de memorie după adresa sa.
5. Principiul ramificarii si calculelor ciclice.
Comenzile de salt condiționate vă permit să implementați o tranziție la orice secțiune de cod, oferind astfel capacitatea de a organiza ramificarea și de a reexecuta anumite secțiuni ale programului.
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 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 programele pentru computerele moderne pot dura luni pentru a se dezvolta, instalarea lor (instalarea pe un computer) durează câteva minute, chiar și pentru programele mari. Un astfel de program poate fi instalat pe milioane de computere și rulat pe fiecare dintre ele ani de zile.

Aplicații

Anexa 1

Anexa 2

Computer „Ural”

Anexa 3

Computer „Strela”

Anexa 4

IBM-305 și RAMAC

Anexa 5

minicalculator PDP-8

Anexa 6

Literatură:

1) Broido V.L. Sisteme de calcul, rețele și telecomunicații. Manual pentru universități. a 2-a ed. – Sankt Petersburg: Peter, 2004

2) Zhmakin A.P. Arhitectura calculatorului. – Sankt Petersburg: BHV - Petersburg, 2006

3) Semenenko V.A. si altele.Calculatoare electronice. Manual pentru școli profesionale - M.: Liceu, 1991

ORGANIZAREA CALCULATORULUI

Note de curs

Celiabinsk

PRINCIPIILE LUI JOHN VON NEUMANN. GENERAȚII DE CALCULATE

principiile lui John von Neumann

Construcția marii majorități a calculatoarelor se bazează pe următoarele principii generale, formulate în 1945 de un om 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 acestea 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 după un program 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 printr-un sistem de control comun.

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țiunile care alcătuiesc un 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, cele mai populare computere personale erau bazate pe 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 nu pot folosi mai mult de 64K de memorie, ceea ce reduce semnificativ capacitatea de a utiliza eficient computerele 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, tendința a fost de a folosi terminale X „slave” care folosesc stația 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;

– programe de sistem de bază pe care rulează sistemul X-Windows și sunt executate 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 cu sistemul X-Windows standard, terminalul X poate afișa mai multe aplicații simultan pe același ecran. 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 îl deține (sistem de fișiere, bază de date, imprimante, procesoare sau pachete software de aplicație).

Pe de altă parte, există o clasificare a serverelor, determinată de amploarea rețelei în care sunt utilizate: server de grup de lucru, server de departament sau server la scară întreprinderi (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 hardware-ului și software-ului serverului, fiabilitatea și performanța acestuia 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 echipate cu surse de alimentare suficient de puternice pentru a permite instalarea de plăci de expansiune și unități 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 a subsistemelor de discuri cu altele mai puternice nu crește performanța, deoarece blocajul este rețeaua însăși. Prin urmare, este important să utilizați o placă de interfață de rețea bună.

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 pentru tehnologia RAID disk array;

– 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– până în prezent rămân cele mai puternice sisteme de calcul de uz 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.

Creșterea fiabilității se bazează pe principiul prevenirii defecțiunilor prin reducerea ratei defecțiunilor și defecțiunilor prin utilizarea circuitelor și componentelor electronice cu un grad ridicat și ultra-înalt de integrare, reducerea nivelului de interferență, modurile de funcționare ușoare ale circuitelor, asigurând condițiile termice pentru funcționarea lor, precum și prin îmbunătățirea metodelor de asamblare a feroneriei. 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ă în funcție de funcționalitate și 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ă, locurile de muncă ale utilizatorilor săi pot fi transferate automat pe un alt computer din cluster. Dacă sistemul are mai multe controlere de stocare externe și 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 unui cluster se realizează prin conectarea computerelor suplimentare la acesta. 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, un mediu de baze de date paralel are două proprietăți importante: disponibilitate ridicată și performanță ridicată. Î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 propriile programe de gestionare a întreruperilor.

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, de sistemul de operare care rulează pe acesta).

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ă mențină o încărcare electrică pentru o perioadă de timp. 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 bază folosind 30 de pini care sunt introduși în panoul corespunzător plăcii de bază. 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 computere cu procesoare Intel 80486DX2/DX4, Intel Pentium, Pentium Pro și Pentium MMX, precum și AMD 80586 și K5.

Arhitectura computerului și principiile von Neumann

Termenul „arhitectură” este folosit pentru a descrie principiul de funcționare, configurare și interconectare a principalelor noduri logice ale unui computer. Arhitectură este o ierarhie pe mai multe niveluri de hardware și software din care este construit un computer.

Bazele doctrinei arhitecturii computerelor au fost puse de remarcabilul matematician american John von Neumann. Primul computer Eniak a fost creat în SUA în 1946. Grupul de creatori inclus von Neumann, care a sugerat principiile de bază ale construcției calculatoarelor: trecerea la sistemul de numere binar pentru reprezentarea informațiilor și principiul unui program stocat.

S-a propus plasarea programului de calcul în dispozitivul de stocare al calculatorului, care să asigure executarea automată a comenzilor și, în consecință, să crească viteza computerului. (Reamintim că anterior toate computerele stocau numere procesate în formă zecimală, iar programele erau specificate prin instalarea de jumperi pe un panou de corecție special.) Neumann a fost primul care a ghicit că un program poate fi stocat și ca un set de zerouri și unu, și în aceeași memorie ca și numerele pe care le prelucrează.

Principii de bază ale construcției calculatoarelor:

1. Orice computer este format din trei componente principale: procesor, memorie și dispozitiv. intrare-ieșire (I/O).

2. Informațiile cu care funcționează computerul sunt împărțite în două tipuri:

    un set de comenzi de procesare (programe); datele de prelucrat.

3. Atât comenzile, cât și datele sunt introduse în memorie (RAM) – principiul programului stocat .

4. Prelucrarea este controlată de procesor, a cărui unitate de control (CU) selectează comenzile din RAM și organizează execuția acestora, iar unitatea aritmetic-logică (ALU) efectuează operații aritmetice și logice asupra datelor.


5. Dispozitivele de intrare/ieșire (I/O) sunt conectate la procesor și RAM.

Von Neumann nu numai că a prezentat principiile fundamentale ale structurii logice a computerelor, dar a propus și o structură care a fost reprodusă în timpul primelor două generații de calculatoare.

Dispozitiv de stocare extern (ESD)

Orez. 1. Arhitectura computerului Sfârșitul formularului,

Memorie cu acces aleatoriu (RAM)

construit pe principii

von Neumann

- direcția fluxurilor de informații; - direcția semnalelor de control de la procesor către alte noduri de calculator

Fundamentele arhitecturii dispozitivelor de calcul dezvoltate de von Neumann s-au dovedit a fi atât de fundamentale încât au primit numele de „arhitectură von Neumann” în literatură. Marea majoritate a VM-urilor de astăzi sunt mașini von Neumann.

Apariția celei de-a treia generații de calculatoare s-a datorat trecerii de la tranzistori la circuite integrate, ceea ce a dus la creșterea vitezei procesorului. Acum procesorul a fost forțat să rămână inactiv, așteptând informații de la dispozitivele de intrare/ieșire mai lente, iar acest lucru a redus eficiența întregului computer în ansamblu. Pentru a rezolva această problemă, au fost create circuite speciale pentru a controla funcționarea dispozitivelor externe, sau pur și simplu controlorii.

Arhitectura computerelor personale moderne se bazează pe coloana vertebrală-principiu modular. Comunicarea informațională între dispozitivele computerizate se realizează prin magistrala de sistem(un alt nume este autostrada de sistem).

O magistrală este un cablu format din mai mulți conductori. Un grup de conductori - magistrala de date informațiile prelucrate sunt transmise, pe de altă parte - magistrala de adrese- adrese de memorie sau dispozitive externe accesate de procesor. A treia parte a autostrăzii - magistrala de control, prin acesta sunt transmise semnale de control (de exemplu, un semnal că dispozitivul este gata de funcționare, un semnal de pornire a funcționării dispozitivului etc.).

Cum funcționează magistrala de sistem? Am spus deja că biții unu și zero există doar în capul programatorilor. Pentru un procesor, doar tensiunile la contactele sale sunt reale. Fiecare pin corespunde unui bit, iar procesorul trebuie doar să facă distincția între două niveluri de tensiune: da/nu, mare/scăzut. Prin urmare, adresa unui procesor este o secvență de tensiuni pe contacte speciale numite magistrală de adrese. Vă puteți imagina că, după ce tensiunile sunt setate pe contactele magistralei de adrese, tensiunile apar pe contactele magistralei de date, codificând numărul stocat la adresa specificată. Această imagine este foarte dură, deoarece este nevoie de timp pentru a prelua datele din memorie. Pentru a evita confuzia, funcționarea procesorului este controlată de un generator de ceas special. Produce impulsuri care împart munca procesorului în etape separate. Unitatea de timp a procesorului este un ciclu de ceas, adică intervalul dintre două impulsuri ale generatorului de ceas.

Tensiunile care apar pe magistrala de adrese a procesorului se numesc adresa fizica. În modul real, procesorul funcționează numai cu adrese fizice. Dimpotrivă, modul protejat al procesorului este interesant deoarece programul funcționează cu adrese logice, iar procesorul le convertește invizibil în adrese fizice. Sistemul Windows folosește modul protejat pentru procesor. Sistemele de operare și programele moderne necesită atât de multă memorie încât modul protejat al procesorului a devenit mult mai „real” decât modul său real.

Busul de sistem este caracterizat ceas frecvența și adâncimea de biți. Se apelează numărul de biți transmiși simultan pe magistrală latimea autobuzului. Frecvența ceasului caracterizează numărul de operațiuni elementare de transfer de date într-o secundă. Lățimea magistralei este măsurată în biți, frecvența ceasului este măsurată în megaherți.


Orice informație transmisă de la procesor către alte dispozitive prin intermediul magistralei de date este însoțită de abordare transmis prin magistrala de adrese. Aceasta poate fi adresa unei celule de memorie sau adresa unui dispozitiv periferic. Este necesar ca lățimea magistralei să permită transmiterea adresei celulei de memorie. Astfel, în cuvinte, lățimea magistralei limitează cantitatea de RAM al computerului; aceasta nu poate fi mai mare decât , unde n este lățimea magistralei. Este important ca performanța tuturor dispozitivelor conectate la magistrală să fie consecventă. Nu este înțelept să aveți un procesor rapid și o memorie lentă, sau un procesor și memorie rapide, ci un hard disk lent.

Orez. 2. Diagrama unui computer construit pe principiul coloanei vertebrale

În calculatoarele moderne este implementat principiul arhitecturii deschise, permițând utilizatorului să monteze configurația computerului de care are nevoie și, dacă este necesar, să o facă upgrade.

Configurare Un computer se referă la colecția reală de componente ale computerului care alcătuiesc un computer. Principiul arhitecturii deschise vă permite să schimbați compoziția dispozitivelor computerizate. Dispozitivele periferice suplimentare pot fi conectate la autostrada informațională, iar unele modele de dispozitive pot fi înlocuite cu altele.

Conexiunea hardware a unui dispozitiv periferic la coloana vertebrală la nivel fizic se realizează printr-un bloc special - controlor(alte denumiri - adaptor, placă, card). Există conectori speciali pentru instalarea controlerelor pe placa de bază - sloturi.

Controlul software al funcționării unui dispozitiv periferic se realizează prin programul - conducător auto, care este o componentă a sistemului de operare. Deoarece există o mare varietate de dispozitive care pot fi instalate pe un computer, fiecare dispozitiv vine de obicei cu un driver care interacționează direct cu acest dispozitiv.

Computerul comunică cu dispozitivele externe prin porturi– conectori speciali pe panoul din spate al computerului. Distinge secvenţialȘi paralel porturi. Seriale (COM – porturi) sunt folosite pentru a conecta manipulatoare, un modem și pentru a transmite cantități mici de informații pe distanțe lungi. Paralele (LPT - porturi) sunt folosite pentru a conecta imprimante, scanere și pentru a transmite cantități mari de informații pe distanțe scurte. Recent, s-au răspândit pe scară largă porturile seriale universale (USB), la care puteți conecta diverse dispozitive.

Bazele doctrinei arhitecturii computerelor au fost puse de remarcabilul matematician american John von Neumann. S-a implicat în crearea primului computer cu tub din lume, ENIAC, în 1944, când designul acestuia fusese deja selectat. În timpul muncii sale, în timpul numeroaselor discuții cu colegii săi G. Goldstein și A. Berks, von Neumann a exprimat ideea unui computer fundamental nou. În 1946, oamenii de știință și-au subliniat principiile pentru construirea computerelor în articolul acum clasic „Considerarea preliminară a designului logic al unui dispozitiv de calcul electronic”. De atunci a trecut o jumătate de secol, dar prevederile prezentate în acesta rămân actuale și astăzi.

Articolul fundamentează în mod convingător utilizarea sistemului binar pentru a reprezenta numere (merită să reamintim că anterior toate computerele stocau numerele procesate în formă zecimală). Autorii au demonstrat în mod convingător avantajele sistemului binar pentru implementarea tehnică, comoditatea și simplitatea efectuării operațiilor 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.

O altă idee cu adevărat revoluționară, a cărei importanță este greu de supraestimat, este principiul „programului stocat” propus de Neumann. Inițial, programul a fost setat prin instalarea de jumperi pe un panou de corecție special. Aceasta a fost o sarcină foarte intensă de muncă: de exemplu, a fost nevoie de câteva zile pentru a schimba programul mașinii ENIAC (în timp ce calculul în sine nu putea dura mai mult de câteva minute - lămpile au eșuat). Neumann a fost primul care a realizat că un program poate fi stocat și ca o serie de zerouri și unu, în aceeași memorie cu numerele procesate. 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.

Von Neumann nu numai că a prezentat principiile fundamentale ale structurii logice a unui computer, dar a propus și structura acestuia, care a fost reprodusă în timpul primelor două generații de calculatoare. Blocurile principale conform lui Neumann sunt o unitate de control (CU) și o unitate aritmetic-logică (ALU) (de obicei combinată într-un procesor central), memorie, memorie externă, dispozitive de intrare și ieșire. Trebuie remarcat faptul că memoria externă diferă de dispozitivele de intrare și de ieșire prin faptul că datele sunt introduse într-o formă convenabilă pentru un computer, dar inaccesibilă percepției directe de către o persoană. Astfel, o unitate de disc magnetică se referă la memoria externă, iar o tastatură este un dispozitiv de intrare, afișajul și imprimarea sunt dispozitive de ieșire.

Dispozitivul de control și unitatea aritmetică-logică din computerele moderne sunt combinate într-o singură unitate - procesorul, care este un convertor de informații care provin din memorie și dispozitive externe (aceasta include preluarea instrucțiunilor din memorie, codificare și decodare, efectuarea diverselor, inclusiv aritmetice). , operațiuni, coordonarea funcționării nodurilor computerului). Funcțiile procesorului vor fi discutate mai detaliat mai jos.

Memoria (memoria) stochează informații (date) și programe. Dispozitivul de stocare din computerele moderne este „multi-tiered” și include memorie cu acces aleatoriu (RAM), care stochează informațiile cu care computerul lucrează direct la un moment dat (un program executabil, o parte din datele necesare pentru acesta, unele programe de control) și dispozitive de stocare externe (ESD). ) capacitate mult mai mare decât RAM. dar cu acces semnificativ mai lent (și costuri semnificativ mai mici pe 1 octet de informații stocate). Clasificarea dispozitivelor de memorie nu se termină cu RAM și VRAM - anumite funcții sunt îndeplinite atât de SRAM (memorie cu acces super-aleatoriu), ROM (memorie doar pentru citire), cât și de alte subtipuri de memorie de computer.

Într-un computer construit conform schemei descrise, instrucțiunile sunt citite secvențial din memorie și executate. Numărul (adresa) următoarei celule de memorie. din care va fi extrasă următoarea comandă de program este indicată de un dispozitiv special - un contor de comenzi în unitatea de control. Prezența sa este și una dintre trăsăturile caracteristice ale arhitecturii în cauză.

Fundamentele arhitecturii dispozitivelor de calcul dezvoltate de von Neumann s-au dovedit a fi atât de fundamentale încât au primit numele de „arhitectură von Neumann” în literatură. 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.

principiile lui Von Neumann

Principiul omogenității memoriei - Comenzile și datele sunt stocate în aceeași memorie și nu se pot distinge din memorie extern. 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 comenzii și nu este recomandată din punctul de vedere al programării moderne. 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 adresei - 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 codă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 formatul de comandă se pot distinge două câmpuri: câmpul cod de operare și câmpul adrese.