Principiile de bază ale lui John von Neumann. Apariția computerelor, principiile lui von Neumann. Cum funcționează mașina lui John von Neumann?

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 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 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ă, joburile 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 ÎNTRERUPARE

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.

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 către 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 în 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ă rezumă evoluțiile ș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

3. Principiile lui Von Neumann. Arhitectura unui computer clasic, P principiile von Neumann

Funcționarea unui computer se bazează pe două concepte fundamentale în calcul. tehnologie: concept de algoritm; principiul controlului programului. Un algoritm este o secvență de acțiuni definită în mod unic, constând din operații definite formal asupra datelor inițiale, care conduc la o soluție într-un număr finit de pași.

Proprietăți algoritmi

    discretitatea informațiilor cu care lucrează algoritmii; caracterul finit și elementar al setului de operații efectuate la implementarea algoritmului;

    determinism - reproductibilitatea rezultatelor algoritmului;

    caracter de masă - posibilitatea utilizării algoritmului pentru diverse date inițiale dintr-un set admisibil

Un program este o descriere a unui algoritm în orice limbă.

Principiu software management(PPU) a fost formulat pentru prima dată de matematicianul și fizicianul maghiar John von Neumann, cu participarea lui Holtztein și Bertz în 1946 și este dominant în această etapă în dezvoltarea tehnologiei de calcul.

PPU include mai multe principii arhitecturale și funcționale.

1) Principiul codificării binare Informația este codificată în formă binară și împărțită în unități (elemente) de informații numite cuvinte. Utilizarea sistemului de numere binar este determinată de specificul circuitelor electronice. Un cuvânt este o unitate indivizibilă de informație.

2) Uniformitatea codificării informațiilor. Diferite tipuri de cuvinte informaționale diferă în modul în care sunt utilizate, dar nu și în modul în care sunt codificate. Cuvintele care reprezintă diferite tipuri de informații nu se pot distinge (date, comenzi). Ordinea în care sunt utilizate determină specificul lor. Aceleași comenzi pot fi folosite pentru a procesa date diferite.

3) Organizarea adresei RAM. Cuvintele de informații sunt plasate în celulele de memorie ale mașinii și sunt identificate prin numere de celule numite adrese de cuvinte. Determină specificul stocării și identificării informațiilor. Adresa celulei este identificatorul mașinii pentru valoare și comandă.

4) Computerul are un set limitat de comenzi. Fiecare comandă individuală definește un pas simplu (unic) de conversie a informațiilor.

5) Algoritmul este implementat prin executarea secvențială a comenzilor. Efectuarea calculelor prescrise de algoritm se reduce la executarea secvențială a comenzilor într-o ordine determinată în mod unic de program. Adresa comenzii următoare este determinată în mod unic în timpul execuției comenzii curente (sunt posibile sărituri condiționate). Procesul de calcul continuă până când comanda este executată pentru a finaliza calculul. Avantaje:

Ușurința implementării hardware.

Versatilitate ridicată, care este limitată doar de setul de comenzi ale procesorului.

Defecte:

punctul 2: cere programatorului să utilizeze corect date de diferite tipuri; dacă nu sunt urmate apar erori care sunt adesea greu de identificat. Când se rezolvă probleme complexe de calcul, acest lucru crește foarte mult complexitatea dezvoltării software.

pz. presupune o organizare liniară a memoriei. Acest lucru face dificilă calcularea elementelor de aspect ale tipurilor de date complexe.

Arhitectura clasicacalculator

Structura computerului

Î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.

principiile lui Von Neumann

    Utilizarea sistemului de numere binar în calculatoare. Avantajul față de sistemul numeric zecimal este că dispozitivele pot fi realizate destul de simplu, iar operațiile aritmetice și logice în sistemul numeric binar sunt, de asemenea, efectuate destul de simplu.

    Control software de calculator. Funcționarea computerului este controlată de un program format dintr-un set de comenzi. Comenzile sunt executate secvenţial una după alta. Crearea unei mașini cu un program stocat a fost începutul a ceea ce numim astăzi programare.

    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.

    Celulele de memorie ale computerului au adrese care sunt numerotate secvenţial. În orice moment, puteți accesa orice celulă de memorie după adresa sa. Acest principiu a deschis posibilitatea utilizării variabilelor în programare.

    Posibilitatea de salt condiționat în timpul execuției programului. În ciuda faptului că comenzile sunt executate secvenţial, programele pot implementa capacitatea de a sări la orice secţiune de cod.

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 ani pentru a scrie, ele funcționează pe milioane de computere după câteva minute de instalare pe hard disk.

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

O mașină von Neumann constă dintr-un dispozitiv de stocare (memorie) - o memorie, o unitate 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.

Comanda constă dintr-o indicație a operațiunii care trebuie efectuată (din operațiunile posibile pe un anumit hardware) și adresele celulelor de memorie unde sunt stocate datele pe care trebuie efectuată operația specificată, precum și adresa celulei unde 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 trimise în memorie sau pe un dispozitiv 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 unul ș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. .

Drept și CCA

Lecția 9. Principiul dorsal-modular al construcției calculatoarelor.

Temă: folosind textul educațional, răspundeți la următoarele întrebări (scrieți în caiet).

1. Cine a fost fondatorul principiului modular al arhitecturii PC moderne.

2. Arhitectura computerului este...

3. Enumerați principiile de bază care stau la baza construcției modulare a arhitecturii PC.

4. Din ce părți este formată autostrada?

5. Pentru ce este interfața dispozitivului?

6. Ce se folosește pentru a negocia interfețele? Cum funcționează această coordonare (desenați o diagramă)?

7. Cum sunt prelucrate datele pe un computer?

8. Desenați o diagramă schematică a principiului coloana vertebrală-modulară a unui PC.

9. Autostrada este...

10. Care este scopul magistralei de control, magistralei de adrese, magistralei de date?

12. Ce permite principiul modular utilizatorului de PC? Enumerați principalele avantaje ale principiului modular-backbone.

D/z. Răspundeți la întrebări, pregătiți-vă să răspundeți la textul educațional.

Text educativ

Principiul coloană-modular al construcției calculatoarelor

Să ne amintim informațiile primite în lecțiile anterioare:

Un computer este un dispozitiv electronic conceput să lucreze cu informații, și anume introducerea, prelucrarea, stocarea, ieșirea și transmiterea informațiilor.În plus, un PC este o singură entitate formată din două entități - hardware și software.

Arhitectura computerului este o descriere a organizării sale logice, a resurselor și a principiilor de funcționare ale elementelor sale structurale. Include principalele dispozitive informatice și structura conexiunilor dintre ele.

De obicei, atunci când se descrie arhitectura unui computer, se acordă o atenție deosebită acelor principii ale organizării acestuia care sunt caracteristice majorității mașinilor aparținând familiei descrise și, de asemenea, care influențează capacitățile de programare.

Arhitectura computerelor moderne se bazează pe principiile lui John von Neumann și principiul coloana vertebrală-modulară.

Î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.

principiile lui Von Neumann

1. Utilizarea sistemului de numere binar în calculatoare. Avantajul față de sistemul numeric zecimal este că dispozitivele pot fi realizate destul de simplu, iar operațiile aritmetice și logice în sistemul numeric binar sunt, de asemenea, efectuate destul de simplu.


2. Control software de calculator. Funcționarea computerului este controlată de un program format dintr-un set de comenzi. Comenzile sunt executate secvenţial una după alta. Crearea unei mașini cu un program stocat a fost începutul a ceea ce numim astăzi programare.

3. 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. Celulele de memorie ale computerului au adrese care sunt numerotate secvenţial. În orice moment, puteți accesa orice celulă de memorie după adresa sa. Acest principiu a deschis posibilitatea utilizării variabilelor în programare.

5. Posibilitatea de salt condiționat în timpul execuției programului. În ciuda faptului că comenzile sunt executate secvenţial, programele pot implementa capacitatea de a sări la orice secţiune de cod.

6. Disponibilitatea dispozitivelor de intrare și ieșire a informațiilor. Aceste dispozitive sunt de bază și suficiente pentru funcționarea computerului la nivel de utilizator.

7. Principiul arhitecturii deschise– reguli pentru construirea unui calculator, conform cărora fiecare bloc nou trebuie să fie compatibil cu cel vechi și să fie ușor de instalat în același loc în calculator. Într-un computer, puteți înlocui la fel de ușor blocurile vechi cu altele noi, oriunde s-ar afla, drept urmare funcționarea computerului nu numai că nu este perturbată, ci devine și mai productivă. Acest principiu vă permite să nu aruncați, ci să modernizați un computer achiziționat anterior, înlocuind cu ușurință unitățile învechite din el cu altele mai avansate și mai convenabile, precum și achiziționarea și instalarea de noi unități. Mai mult, în toate, conectorii pentru conectarea lor sunt standard și nu necesită nicio modificare în designul computerului în sine.

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.

Un computer nu este un obiect indivizibil, integral. Este format dintr-un număr de dispozitive - module.(Utilizatorul își poate completa computerul din aceste module la cererea sa). Pentru fiecare dispozitiv din computer există un circuit electronic care îl controlează. Acest circuit se numește controler sau adaptor. Unele controlere pot controla mai multe dispozitive simultan. Toate controlerele și adaptoarele interacționează cu procesorul și RAM prin magistrala de sistem (un set de linii electronice. O magistrală este un cablu format din multe fire.

coloana vertebrală asigură schimbul de date între dispozitivele computerizate.

Autostrada este formată din trei părți:

1. magistrala de adrese, pe care este setată adresa celulei de memorie sau a dispozitivului necesar cu care vor fi schimbate informații.

2. Autobuz de date, prin care vor fi transmise informațiile necesare.

3. Autobuz de control reglementarea acestui proces. (semnale sunt transmise prin magistrala de control care determină natura schimbului de informații de-a lungul autostrăzii. Aceste semnale indică ce operațiune trebuie efectuată).

Pentru ca un computer să funcționeze corect, este necesar ca toate dispozitivele sale să funcționeze împreună, să se „înțeleagă” între ele și să „nu intre în conflict”. Acest lucru este asigurat datorită aceleiași interfețe pe care o au toate dispozitivele computerizate.
O interfață este un mijloc de conectare a două dispozitive, în care toți parametrii fizici și logici sunt consecvenți unul cu celălalt.

Deoarece schimbul de date între dispozitive are loc prin intermediul magistralei, pentru a coordona interfețele, toate dispozitivele externe sunt conectate la magistrală nu direct, ci prin controlerele (adaptoarele) și porturile lor.

Porturile pot fi seriale sau paralele. Dispozitivele lente sau la distanță (mouse, modem) sunt conectate la porturi seriale, iar cele mai rapide (scaner, imprimantă) sunt conectate la porturi paralele. Tastatura și monitorul sunt conectate la porturi specializate.

Pentru a evita conectarea unui dispozitiv la portul altcuiva din greșeală sau ignoranță, fiecare dispozitiv are o formă de fișă individuală care nu se potrivește în conectorul „străin”.

Informațiile prezentate în formă digitală și prelucrate pe un computer se numesc date.

Se apelează secvența de comenzi pe care le execută un computer în timpul procesării datelor program.

Prelucrarea datelor pe un computer:

1. Utilizatorul lansează un program stocat în memoria pe termen lung, acesta este încărcat în memoria operațională și începe să se execute.

2. Execuție: Procesorul citește instrucțiunile și le execută. Datele necesare sunt încărcate în RAM din memoria pe termen lung sau introduse folosind dispozitive de intrare.

3. Datele de ieșire (primite) sunt scrise de procesor în RAM sau în memoria de lungă durată și sunt, de asemenea, furnizate utilizatorului folosind dispozitive de ieșire a informațiilor.

Pentru a asigura schimbul de informații între diferite dispozitive, trebuie furnizat un fel de coloană vertebrală pentru a muta fluxurile de informații.

Trunchi (autobuz de sistem) include trei magistrale multi-biți: magistrală de date, magistrală de adrese și magistrală de control, care sunt linii cu mai multe fire. Procesorul și RAM, precum și dispozitivele periferice de intrare, ieșire și stocare a informațiilor care fac schimb de informații în limbajul mașinii (secvențe de zerouri și unități sub formă de impulsuri electrice) sunt conectate la magistrală.

Autobuz de date. Acest bus transferă date între diferite dispozitive. De exemplu, datele citite din RAM pot fi trimise la procesor pentru procesare, iar apoi datele primite pot fi trimise înapoi la RAM pentru stocare. Astfel, datele de pe magistrala de date pot fi transferate de la dispozitiv la dispozitiv în orice direcție, adică magistrala de date este bidirecțională. Principalele moduri de operare ale procesorului care utilizează magistrala de date includ următoarele: scrierea/citirea datelor din RAM, scrierea/citirea datelor din memoria externă, citirea datelor de la un dispozitiv de intrare, trimiterea datelor către un dispozitiv de ieșire.

Lățimea magistralei de date este determinată de capacitatea de biți a procesorului, adică de numărul de biți binari care pot fi procesați sau transmiși de procesor simultan. Capacitatea procesoarelor este în continuă creștere pe măsură ce tehnologia computerelor se dezvoltă.

Autobuz de adrese. Alegerea dispozitivului sau a celulei de memorie către care sunt trimise sau citite datele prin magistrala de date este făcută de procesor. Fiecare dispozitiv sau celulă RAM are propria sa adresă. Adresa este transmisă de-a lungul magistralei de adrese, iar semnalele sunt transmise de-a lungul acesteia într-o singură direcție - de la procesor la RAM și dispozitive (magistrală unidirecțională).

Lățimea magistralei de adrese determină cantitatea de memorie adresabilă (spațiu de adrese), adică numărul de celule RAM de un octet care pot avea adrese unice.

Numărul de celule de memorie adresabile poate fi calculat folosind formula:

N=2 I, unde I este lățimea magistralei de adrese.

Fiecare magistrală are propriul spațiu de adrese, adică cantitatea maximă de memorie adresabilă:

2 16 = 64 KB

2 20 = 1 MB

2 24 = 16 MB

2 32 = 4 GB

Autobuz de control. Autobuzul de control transmite semnale care determină natura schimbului de informații de-a lungul autostrăzii. Semnalele de control indică ce operație - citirea sau scrierea informațiilor din memorie - trebuie efectuată, sincronizează schimbul de informații între dispozitive și așa mai departe.

Principiul modular permite consumatorului să asambleze configurația computerului de care are nevoie și, dacă este necesar, să o facă upgrade. Fiecare funcție individuală a computerului este implementată de unul sau mai multe module - unități electronice complete din punct de vedere structural și funcțional într-un design standard. Organizarea unei structuri de computer pe o bază modulară este similară cu construirea unei case de bloc.

Principiul coloana vertebrală-modulară are o serie de avantaje:

1. Pentru a lucra cu dispozitive externe, se folosesc aceleași comenzi de procesor ca și pentru lucrul cu memoria.

2. Conectarea dispozitivelor suplimentare la coloana vertebrală nu necesită modificări ale dispozitivelor, procesorului sau memoriei existente.

3. Schimbând compoziția modulelor, puteți modifica puterea și scopul computerului în timpul funcționării acestuia.

· 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) Structura și arhitectura sistemului informatic

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.
O trăsătură distinctivă a sistemelor informatice în raport cu calculatoarele este prezența în acestea 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 hardware ș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 diferite tipuri de 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, rețele 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 fost încă în măsură 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

Ți-a plăcut articolul? Împărtășește-l
Top