Von Neumanns principer för programkontroll. Datorernas tillkomst, von Neumanns principer


Även känd som von Neumann-modellen, eller Princeton-arkitekturen, är den baserad på en teknik som beskrevs 1945 av matematikern och fysikern John von Neumann som en del av hans "First Design"-rapport om EDVAC-datorn.

Arkitektur diagram

Von Neumanns rapport beskrev ett arkitekturdiagram för en elektronisk digital dator med delar bestående av bearbetningsenheter, som innehåller:

  • aritmetisk-logisk enhet;
  • registerprocessor;
  • en styrenhet som innehåller ett kommandoregister och en programräknare;
  • en lagringsanordning för lagring av data;
  • extern lagringsenhet;
  • in- och utmatningsmekanismer.

Poängen med designen var att all information lagrad på en dator kunde användas av ett program där den valda operationsdatan inte kunde spelas upp samtidigt eftersom de delade en gemensam buss. Detta nämns i "Första projektet", som beskriver vetenskapsmannens tankar om vad arkitektur ska vara. Von Neumann kallade denna situation för en "flaskhals", vilket ofta begränsar systemets prestanda.

En digital dator är en dator som lagrar ett program som innehåller programinstruktioner, läser data, skriver data och som även inkluderar RAM (Random Access Memory). Principerna för John von Neumanns arkitektur beskrivs också i hans verk "The First Project". Enligt honom var lagrade programdatorer en förbättring jämfört med kontrolldatorer som ENIAC. Den sistnämnda programmerades genom att sätta switchar och sätta in en patch som gjorde att data och styrsignaler dirigerades mellan olika funktionsblock. De allra flesta moderna datorer använder också minne på detta sätt. Samtidigt skiljer sig von Neumann till exempel från Harvard genom att den använder cacheminne snarare än huvudminne.

Bakgrund

De första hade förutbestämda fasta program. Vissa mycket enkla datorer använder fortfarande denna design, antingen för enkelhets skull eller för utbildningsändamål. Till exempel är en stationär miniräknare också en dator med fast program. Det kan fungera med grundläggande matematik, men det kan inte användas som en spelkonsol. Att ändra det fasta programmet för en maskin kräver omkoppling, omstrukturering eller omorganisering av apparaten. De tidigaste datorerna var inte så snävt fokuserade, eftersom de utvecklades för första gången och för vetenskapliga ändamål. Omprogrammering kom mycket senare och var en arbetskrävande process, som började med blockdiagram och pappersanteckningar och slutade med detaljerade tekniska konstruktioner. Processen att fysiskt uppgradera fordonets restaureringskanaler var särskilt svår. Det kan ta tre veckor att installera programmet på ENIAC och försöka få det att fungera.

Ny idé

Med introduktionen av datorer som lagrade program i minnet förändrades allt. Lagrade i minnet är de en konstruktion med en uppsättning instruktioner. Detta innebär att maskinen omedelbart kan ta emot en uppsättning kommandon för att utföra beräkningar.

Utformningen av sådana program hänvisar till självmodifierande koder. En av de första övervägandena för ett sådant objekt var behovet av en algoritm för att öka eller på annat sätt ändra adressdelen av instruktioner. Den gjordes för hand i tidiga mönster. Detta blev mindre viktigt när indexregister och indirekt adressering blev vanliga funktioner som finns i John von Neumanns maskinarkitekturer. En annan användning är att infoga ofta använda data i en kommandoström med hjälp av en omedelbar lösning. Men självmodifierande kod har till stor del kritiserats eftersom den tenderar att vara svår att förstå och felsöka. Dessutom visade det sig också vara ineffektivt när det gäller att återskapa och cachelagra kretsar för moderna processorer.

I stort sett är förmågan att behandla instruktioner som data det som gör assemblers, kompilatorer, assemblers, loaders och andra verktyg möjliga datorstödda programmeringsobjekt. Så att säga, skriv program som skriver program. I mindre skala har repetitiva intensiva in- och utdataoperationer, såsom BitBlt-manipulation av primitiva eller pixel- och vertexskuggningar i modern 3D-grafik, visat sig vara ineffektiva för drift utan anpassad hårdvara.

Utveckling av konceptet för ett lagrat program

En matematiker som blev intresserad av problemet med matematisk logik efter Max Newmans föreläsning vid Cambridge University skrev en artikel 1936, den publicerades i publikationen av London Mathematical Society. I den beskrev han en hypotetisk maskin som han kallade "den universella datormaskinen" och som nu är känd som den universella Turing-maskinen. Den hade en oändlig lagring (i modern terminologi - minne), som innehöll både instruktioner och data, för vilken denna arkitektur skapades. Von Neumann träffade Turing medan han var gästprofessor vid Cambridge 1935, och under Turings doktorsavhandling vid Institute for Advanced Study i Princeton, New Jersey, 1936-1937.

Självständigt skrev Gee Presper Eckert och John Mauchly, som utvecklade ENIAC vid School of Electrical Engineering vid Pennsylvania State University, om konceptet med en maskin som lagrade ett program i minnet i december 1943. När han planerade den nya maskinen, EDVAC, skrev Eckert i januari 1944 att den skulle lagra data och program i en ny enhet med minnesadressering med hjälp av en kvicksilvermetallfördröjning. Detta var första gången som konstruktionen av en maskin som lagrar ett program i minnet föreslogs i praktiken. Samtidigt var han och Mauchly inte medvetna om Turings arbete (bild nedan).

Datorarkitektur: Von Neumanns princip

Von Neumann var involverad i "Manhattan-projektet" vid Los Alamos National Laboratory, vilket krävde enorma mängder beräkningar. Detta lockade honom till ENIAC-projektet sommaren 1944. Där inledde han diskussioner om utvecklingen av EDVAC-datorn. Som en del av denna grupp skrev han en artikel med titeln "First Draft Report on EDVAC", baserat på Eckerts och Mauchlys arbete. Det var oavslutat när hans kollega Goldstein distribuerade projektet med namnet von Neumann (förresten, Eckert och Mauchly blev förstummade av sådana nyheter). Detta dokument lästes av dussintals av von Neumanns kollegor i Amerika och Europa och hade ett stort inflytande på nästa steg i datorutvecklingen.

De grundläggande principerna för von Neumanns arkitektur, som beskrivs i "Första projektet", höll på att vinna utbredd berömmelse medan Turing lyfte fram sin rapport om den elektroniska kalkylatorn, som beskrevs i detalj inom teknik och programmering. Den beskrev också författarens idé om en maskin som heter Automatic Computing Engine (ACE). Han presenterade den för den verkställande kommittén för British National Physical Laboratory 1946. Med tiden har det till och med varit olika framgångsrika implementeringar av ACE-designen.

Start av projektgenomförande

Både von Neumann-projektet och Turing-tidningarna beskrev datorer som lagrade ett specifikt program i minnet, men von Neumanns papper uppnådde en större cirkulation i samhället och datorarkitekturen blev känd som John von Neumann-arkitekturen.

År 1945 utfärdade professor Neumann, som då var på School of Engineering i Philadelphia, där den första ENIAC byggdes, ett dokument på uppdrag av en grupp av sina kollegor om den logiska designen av digitala datorer. Rapporten innehöll ett ganska detaljerat förslag till utformningen av maskinen, som sedan har blivit känd som EDVAC. Det hade bara nyligen skapats i Amerika, men rapporten inspirerade von Neumann att skapa EDSAC.

Galningar och joniacs

År 1947 publicerade Burks, Goldstein och von Neumann en annan rapport som lyfte fram designen av en annan typ av maskin (denna gång parallell) som skulle vara extremt snabb, kanske kapabel att utföra upp till 20 000 operationer per sekund. De noterade att ett olöst problem med att bygga det var att utforma ett lämpligt minne vars hela innehåll måste vara omedelbart tillgängligt. De föreslog först att använda ett speciellt vakuumrör kallat Selectron, som uppfanns vid Princeton Laboratory. Sådana rör var dyra och mycket svåra att tillverka, speciellt om denna arkitektur användes. Von Neumann bestämde sig därefter för att bygga en maskin baserad på Williams minne. Denna maskin, som färdigställdes i juni 1952 i Princeton, blev allmänt känd som MANIAC (eller helt enkelt Maniacs). Dess design inspirerade till konstruktionen av ett halvdussin eller fler liknande enheter som nu byggs i Amerika och som skämtsamt kallas Johniacs.

Skapande principer

En av de mest moderna digitala datorerna, som förkroppsligar utvecklingen och förbättringarna av automatiska elektroniska beräkningstekniker, demonstrerades på National Physical Laboratory i Teddington, där den designades och byggdes av ett litet team av matematiker, elektronik och forskningsingenjörer, med hjälp av ett antal tillverkningsingenjörer från English Electric Company Ltd. Utrustningen finns fortfarande i laboratoriet, men bara som en prototyp av en mycket större enhet känd som Automatic Computing Engine. Men trots sin relativt låga vikt och endast innehållande 800 termionventiler är det en extremt snabb och mångsidig räknemaskin.

De grundläggande koncepten och abstrakta principerna för beräkning med en maskin formulerades av Dr. Turing på grundval av samma London Mathematical Society redan 1936, men arbetet med sådana maskiner i Storbritannien försenades av kriget. År 1945 fortsatte behandlingen av problemen med att skapa sådana anordningar vid National Physical Laboratory av Dr Wormsley, laboratoriechef vid Institutionen för matematik. Han anslöt sig till Turing med sin lilla stab av specialister, och 1947 var den preliminära planeringen tillräckligt avancerad för att motivera skapandet av en speciell grupp.

De första datorerna baserade på von Neumann-arkitekturen

Det första projektet beskriver en design som har använts av många universitet och företag för att bygga sina datorer. Bland dem var det bara ILLIAC och ORDVAC som hade kompatibla instruktionsuppsättningar.

Den klassiska von Neumann-arkitekturen förkroppsligades i Manchester Small Experimental Machine (SSEM), med smeknamnet Baby, från University of Manchester, som gjorde sin första framgångsrika körning som en programminnesenhet den 21 juni 1948.

EDSAC från University of Cambridge, den första praktiska elektroniska datorn i sitt slag, lanserades framgångsrikt för första gången i maj 1949.

Utveckling av skapade modeller

IBM SSEC hade förmågan att behandla instruktioner som data och visades offentligt den 27 januari 1948. Denna förmåga gjordes anspråk på i ett amerikanskt patent. Det var dock en delvis elektromekanisk maskin snarare än en helt elektronisk. I praktiken lästes instruktionerna från ett pappersband på grund av dess begränsade minne.

Baby var den första helt elektroniska datorn som körde lagrade program. Han körde factoringprogrammet i 52 minuter den 21 juni 1948, efter att ha kört en enkel division och beräkning som visar att två tal är coprime.

ENIAC modifierades för att fungera som en primitiv skrivskyddad dator, men med samma arkitektur, och demonstrerades den 16 september 1948, med Adele Goldstein som lanserade programmet med hjälp av von Neumann.

BINAC genomförde flera testprogram i februari, mars och april 1949, även om det inte blev klart förrän i september 1949. Dessutom genomfördes testkörningar (vissa framgångsrika) av andra elektroniska datorer, som kännetecknas av denna arkitektur. Von Neumann fortsatte förresten att arbeta på Manhattan-projektet. En sådan universell person.

Utveckling av bussystemarkitekturen

Decennier senare, redan på 60- och 70-talen, blev datorer i allmänhet mindre och snabbare, vilket ledde till några av de utvecklingar som von Neumanns datorarkitektur genomgick. Till exempel gör minnesmapping av ingång och utdata att motsvarande enheter vars data och instruktioner för integration i systemet kommer att bearbetas förblir i minnet. Ett bussystem kan användas för att förse ett modulsystem med mindre. Detta kallas ibland "rationalisering" av arkitekturen. Under efterföljande decennier utelämnar enkla mikrokontroller ibland vissa funktioner i den typiska modellen för att minska kostnaden och storleken. Större datorer, å andra sidan, följer den etablerade arkitekturen eftersom de har lagt till funktioner för att förbättra prestandan.

1946 beskrev D. von Neumann, G. Goldstein och A. Berks i sin gemensamma artikel nya principer för konstruktion och drift av datorer. Därefter producerades de två första generationerna av datorer utifrån dessa principer. Det har skett en del förändringar i senare generationer, även om Neumanns principer är relevanta än idag.

Faktum är att Neumann lyckades sammanfatta den vetenskapliga utvecklingen och upptäckterna från många andra forskare och formulera något fundamentalt nytt på grundval av dem.

Von Neumanns principer

  1. Användning av det binära talsystemet i datorer. Fördelen gentemot decimaltalssystemet är att enheter kan göras ganska enkla, och aritmetiska och logiska operationer i det binära talsystemet utförs också ganska enkelt.
  2. Kontroll av datorprogramvara. Datorns funktion styrs av ett program som består av en uppsättning kommandon. Kommandon exekveras sekventiellt efter varandra. Skapandet av en maskin med ett lagrat program var början på vad vi idag kallar programmering.
  3. Datorminne används inte bara för att lagra data, utan även för program.. I detta fall kodas både programkommandon och data i det binära talsystemet, dvs. deras inspelningsmetod är densamma. Därför kan du i vissa situationer utföra samma åtgärder på kommandon som på data.
  4. Datorminnesceller har adresser som numreras sekventiellt. Du kan när som helst komma åt vilken minnescell som helst genom dess adress. Denna princip öppnade för möjligheten att använda variabler i programmering.
  5. Möjlighet till villkorligt hopp under programexekvering. Trots det faktum att kommandon exekveras sekventiellt kan program implementera möjligheten att hoppa till vilken kodsektion som helst.

Den viktigaste konsekvensen av dessa principer är att programmet nu inte längre var en permanent del av maskinen (som till exempel en miniräknare). Det blev möjligt att enkelt ändra programmet. Men utrustningen förblir naturligtvis oförändrad och mycket enkel.

Som jämförelse bestämdes programmet för ENIAC-datorn (som inte hade ett lagrat program) av speciella byglar på panelen. Det kan ta mer än en dag att programmera om maskinen (ställ byglarna på annat sätt). Och även om program för moderna datorer kan ta år att skriva, fungerar de på miljontals datorer efter några minuters installation på hårddisken.

Hur fungerar en von Neumann-maskin?

En von Neumann-maskin består av en lagringsenhet (minne) - ett minne, en aritmetisk-logisk enhet - ALU, en styrenhet - CU, samt in- och utgångsenheter.

Program och data matas in i minnet från inmatningsenheten genom en aritmetisk logisk enhet. Alla programkommandon skrivs till intilliggande minnesceller, och data för bearbetning kan finnas i godtyckliga celler. För alla program måste det sista kommandot vara shutdown-kommandot.

Kommandot består av en indikation på vilken operation som ska utföras (från möjliga operationer på en given hårdvara) och adresserna till minnesceller där data som den specificerade operationen ska utföras lagras på, samt adressen till cellen där resultatet ska skrivas (om det behöver sparas i minnet).

Den aritmetiska logiska enheten utför de operationer som specificeras av instruktionerna på de specificerade data.

Från den aritmetiska logiska enheten matas resultaten ut till minnet eller en utmatningsenhet. Den grundläggande skillnaden mellan ett minne och en utenhet är att i ett minne lagras data i en form som är lämplig för bearbetning av en dator, och den skickas till utenheter (skrivare, bildskärm, etc.) på ett sätt som är bekvämt. för en person.

Styrenheten styr alla delar av datorn. Från styrenheten får andra enheter signaler ”vad man ska göra”, och från andra enheter får styrenheten information om deras status.

Styrenheten innehåller ett speciellt register (cell) som kallas "programräknare". Efter att programmet och data har laddats in i minnet skrivs adressen för programmets första instruktion till programräknaren. Styrenheten läser från minnet innehållet i minnescellen, vars adress finns i programräknaren, och placerar den i en speciell enhet - "Kommandoregistret". Styrenheten bestämmer kommandots funktion, "markerar" i minnet de data vars adresser är specificerade i kommandot och kontrollerar utförandet av kommandot. Operationen utförs av ALU eller datorhårdvara.

Som ett resultat av exekveringen av ett kommando ändras programräknaren med ett och pekar därför på nästa kommando i programmet. När det är nödvändigt att utföra ett kommando som inte är nästa för det aktuella, men som är separerat från det givna med ett visst antal adresser, innehåller ett speciellt hoppkommando adressen till cellen till vilken kontrollen måste överföras .

Von Neumann Principles (Von Neumann Architecture)

    Datorarkitektur

1946 beskrev D. von Neumann, G. Goldstein och A. Berks i sin gemensamma artikel nya principer för konstruktion och drift av datorer. Därefter producerades de två första generationerna av datorer utifrån dessa principer. Det har skett en del förändringar i senare generationer, även om Neumanns principer är relevanta än idag.

Faktum är att Neumann lyckades sammanfatta den vetenskapliga utvecklingen och upptäckterna från många andra forskare och formulera något fundamentalt nytt på grundval av dem.

Von Neumanns principer

    Användning av det binära talsystemet i datorer. Fördelen gentemot decimaltalssystemet är att enheter kan göras ganska enkla, och aritmetiska och logiska operationer i det binära talsystemet utförs också ganska enkelt.

    Kontroll av datorprogramvara. Datorns funktion styrs av ett program som består av en uppsättning kommandon. Kommandon exekveras sekventiellt efter varandra. Skapandet av en maskin med ett lagrat program var början på vad vi idag kallar programmering.

    Datorminne används inte bara för att lagra data, utan även för program.. I detta fall kodas både programkommandon och data i det binära talsystemet, dvs. deras inspelningsmetod är densamma. Därför kan du i vissa situationer utföra samma åtgärder på kommandon som på data.

    Datorminnesceller har adresser som numreras sekventiellt. Du kan när som helst komma åt vilken minnescell som helst genom dess adress. Denna princip öppnade för möjligheten att använda variabler i programmering.

    Möjlighet till villkorligt hopp under programexekvering. Trots det faktum att kommandon exekveras sekventiellt kan program implementera möjligheten att hoppa till vilken kodsektion som helst.

Den viktigaste konsekvensen av dessa principer är att programmet nu inte längre var en permanent del av maskinen (som till exempel en miniräknare). Det blev möjligt att enkelt ändra programmet. Men utrustningen förblir naturligtvis oförändrad och mycket enkel.

Som jämförelse bestämdes programmet för ENIAC-datorn (som inte hade ett lagrat program) av speciella byglar på panelen. Det kan ta mer än en dag att programmera om maskinen (ställ byglarna på annat sätt). Och även om program för moderna datorer kan ta år att skriva, fungerar de på miljontals datorer efter några minuters installation på hårddisken.

Hur fungerar en von Neumann-maskin?

En von Neumann-maskin består av en lagringsenhet (minne) - ett minne, en aritmetisk-logisk enhet - ALU, en styrenhet - CU, samt in- och utgångsenheter.

Program och data matas in i minnet från inmatningsenheten genom en aritmetisk logisk enhet. Alla programkommandon skrivs till intilliggande minnesceller, och data för bearbetning kan finnas i godtyckliga celler. För alla program måste det sista kommandot vara shutdown-kommandot.

Kommandot består av en indikation på vilken operation som ska utföras (från möjliga operationer på en given hårdvara) och adresserna till minnesceller där data som den specificerade operationen ska utföras lagras på, samt adressen till cellen där resultatet ska skrivas (om det behöver sparas i minnet).

Den aritmetiska logiska enheten utför de operationer som specificeras av instruktionerna på de specificerade data.

Från den aritmetiska logiska enheten matas resultaten ut till minnet eller en utmatningsenhet. Den grundläggande skillnaden mellan ett minne och en utenhet är att i ett minne lagras data i en form som är lämplig för bearbetning av en dator, och den skickas till utenheter (skrivare, bildskärm, etc.) på ett sätt som är bekvämt. för en person.

Styrenheten styr alla delar av datorn. Från styrenheten får andra enheter signaler ”vad man ska göra”, och från andra enheter får styrenheten information om deras status.

Styrenheten innehåller ett speciellt register (cell) som kallas "programräknare". Efter att programmet och data har laddats in i minnet skrivs adressen för programmets första instruktion till programräknaren. Styrenheten läser från minnet innehållet i minnescellen, vars adress finns i programräknaren, och placerar den i en speciell enhet - "Kommandoregistret". Styrenheten bestämmer kommandots funktion, "markerar" i minnet de data vars adresser är specificerade i kommandot och kontrollerar utförandet av kommandot. Operationen utförs av ALU eller datorhårdvara.

Som ett resultat av exekveringen av ett kommando ändras programräknaren med ett och pekar därför på nästa kommando i programmet. När det är nödvändigt att utföra ett kommando som inte är nästa för det aktuella, men som är separerat från det givna med ett visst antal adresser, innehåller ett speciellt hoppkommando adressen till cellen till vilken kontrollen måste överföras .

Von Neumanns principer[redigera | redigera källtext]

Principen om minneshomogenitet

Kommandon och data lagras i samma minne och är externt oskiljbara i minnet. De kan bara kännas igen genom användningsmetoden; det vill säga, samma värde i en minnescell kan användas som data, som ett kommando och som en adress, bara beroende på hur den nås. Detta låter dig utföra samma operationer på kommandon som på siffror, och öppnar följaktligen upp ett antal möjligheter. Genom att cykliskt ändra adressdelen av kommandot är det således möjligt att komma åt successiva element i datamatrisen. Denna teknik kallas kommandomodifiering och rekommenderas inte ur modern programmeringssynpunkt. Mer användbar är en annan konsekvens av principen om homogenitet, när instruktioner från ett program kan erhållas som ett resultat av exekvering av ett annat program. Denna möjlighet ligger till grund för översättning - översättning av programtext från ett högnivåspråk till språket på en specifik dator.

Riktningsprincip

Strukturellt sett består huvudminnet av numrerade celler, och vilken cell som helst är tillgänglig för processorn när som helst. Binära koder för kommandon och data är uppdelade i informationsenheter som kallas ord och lagras i minnesceller, och för att komma åt dem används numren på motsvarande celler - adresser.

Programstyrningsprincip

Alla beräkningar som tillhandahålls av algoritmen för att lösa problemet måste presenteras i form av ett program som består av en sekvens av kontrollord - kommandon. Varje kommando föreskriver en operation från en uppsättning operationer som implementeras av datorn. Programkommandon lagras i sekventiella minnesceller i datorn och exekveras i en naturlig sekvens, det vill säga i ordningsföljd efter deras position i programmet. Om det behövs, med hjälp av speciella kommandon, kan denna sekvens ändras. Beslutet att ändra ordningen för exekvering av programkommandon görs antingen baserat på en analys av resultaten från tidigare beräkningar, eller ovillkorligt.

Binär kodningsprincip

Enligt denna princip kodas all information, både data och kommandon, med binära siffror 0 och 1. Varje typ av information representeras av en binär sekvens och har sitt eget format. En sekvens av bitar i ett format som har en specifik betydelse kallas ett fält. I numerisk information finns det vanligtvis ett teckenfält och ett signifikanta siffrorsfält. I kommandoformatet kan två fält särskiljas: operationskodfältet och adressfältet.

En annan verkligt revolutionerande idé, vars betydelse är svår att överskatta, är principen om "lagrat program" som föreslås av Neumann. Ursprungligen sattes programmet genom att installera byglar på en speciell patchpanel. Detta var en mycket arbetskrävande uppgift: till exempel tog det flera dagar att ändra programmet för ENIAC-maskinen (medan själva beräkningen inte kunde vara mer än några minuter - lamporna misslyckades). Neumann var den första som insåg att ett program också kunde lagras som en serie av nollor och ettor, i samma minne som siffrorna det bearbetade. Frånvaron av en grundläggande skillnad mellan programmet och data gjorde det möjligt för datorn att forma ett program för sig själv i enlighet med resultaten av beräkningarna.

Von Neumann lade inte bara fram de grundläggande principerna för en dators logiska struktur, utan föreslog också dess struktur, som reproducerades under de två första generationerna av datorer. Huvudblocken enligt Neumann är en styrenhet (CU) och en aritmetisk-logisk enhet (ALU) (vanligtvis kombinerade till en central processor), minne, externt minne, in- och utgångsenheter. Designdiagrammet för en sådan dator visas i fig. 1. Det bör noteras att externt minne skiljer sig från inmatnings- och utdataenheter genom att data matas in i det i en form som är bekväm för en dator, men otillgänglig för direkt uppfattning av en person. Således hänvisar den magnetiska skivenheten till externt minne, och tangentbordet är en inmatningsenhet, display och utskrift är utdataenheter.

Ris. 1. Datorarkitektur byggd på von Neumanns principer. Heldragna linjer med pilar indikerar informationsflödenas riktning, prickade linjer indikerar styrsignaler från processorn till andra datornoder

Styrenheten och den aritmetiskt-logiska enheten i moderna datorer kombineras till en enhet - processorn, som är en omvandlare av information som kommer från minnet och externa enheter (detta inkluderar hämtning av instruktioner från minnet, kodning och avkodning, utför olika, inklusive aritmetik , operationer, koordinering av driften av datornoder). Processorns funktioner kommer att diskuteras mer i detalj nedan.

Minnet (minnet) lagrar information (data) och program. Lagringsenheten i moderna datorer är "multi-tiered" och inkluderar random access memory (RAM), som lagrar informationen som datorn arbetar med direkt vid en given tidpunkt (det körbara programmet, en del av den data som behövs för det, vissa kontrollprogram) och externa lagringsenheter (ESD). ) mycket större kapacitet än RAM. men med betydligt långsammare åtkomst (och betydligt lägre kostnad per 1 byte lagrad information). Klassificeringen av minnesenheter slutar inte med RAM och VRAM - vissa funktioner utförs av både SRAM (super-random access memory), ROM (skrivskyddat minne) och andra undertyper av datorminne.

I en dator byggd enligt det beskrivna schemat läses instruktioner sekventiellt från minnet och exekveras. Nummer (adress) till nästa minnescell. från vilket nästa programkommando kommer att extraheras indikeras av en speciell enhet - en kommandoräknare i styrenheten. Dess närvaro är också ett av de karaktäristiska dragen hos den aktuella arkitekturen.

Grunderna i arkitekturen för datorenheter utvecklade av von Neumann visade sig vara så grundläggande att de fick namnet "von Neumann-arkitektur" i litteraturen. De allra flesta datorer idag är von Neumann-maskiner. De enda undantagen är vissa typer av system för parallell beräkning, där det inte finns någon programräknare, det klassiska konceptet med en variabel inte är implementerat och det finns andra väsentliga grundläggande skillnader från den klassiska modellen (exempel inkluderar streaming- och reduktionsdatorer).

Tydligen kommer en betydande avvikelse från von Neumann-arkitekturen att uppstå som ett resultat av utvecklingen av idén om femte generationens maskiner, där informationsbehandling inte baseras på beräkningar utan på logiska slutsatser

.

Grunden till läran om datorarkitektur lades av den framstående amerikanske matematikern John von Neumann. Han blev involverad i skapandet av världens första rördator, ENIAC, 1944, när dess design redan hade valts ut. Under sitt arbete, under många diskussioner med sina kollegor G. Goldstein och A. Berks, uttryckte von Neumann idén om en i grunden ny dator. År 1946 beskrev forskare sina principer för att konstruera datorer i den nu klassiska artikeln "Preliminär övervägande av den logiska designen av en elektronisk datorenhet." Ett halvt sekel har gått sedan dess, men bestämmelserna i den är fortfarande aktuella idag.

Artikeln underbygger på ett övertygande sätt användningen av det binära systemet för att representera tal (det är värt att komma ihåg att tidigare lagrade alla datorer behandlade tal i decimalform). Författarna demonstrerade övertygande fördelarna med det binära systemet för teknisk implementering, bekvämligheten och enkelheten att utföra aritmetiska och logiska operationer i det. Senare började datorer bearbeta icke-numeriska typer av information - text, grafik, ljud och andra, men binär datakodning utgör fortfarande informationsbasen för alla moderna datorer.

En annan verkligt revolutionerande idé, vars betydelse är svår att överskatta, är principen om "lagrat program" som föreslås av Neumann. Ursprungligen sattes programmet genom att installera byglar på en speciell patchpanel. Detta var en mycket arbetskrävande uppgift: till exempel tog det flera dagar att ändra programmet för ENIAC-maskinen (medan den faktiska beräkningen inte kunde pågå mer än några minuter, lamporna misslyckades). Neumann var den första som insåg att ett program också kunde lagras som en serie av nollor och ettor, i samma minne som siffrorna det bearbetade. Frånvaron av en grundläggande skillnad mellan programmet och data gjorde det möjligt för datorn att forma ett program för sig själv i enlighet med resultaten av beräkningarna.

Von Neumann lade inte bara fram de grundläggande principerna för en dators logiska struktur, utan föreslog också dess struktur, som reproducerades under de två första generationerna av datorer. Huvudblocken enligt Neumann är en styrenhet (CU) och en aritmetisk-logisk enhet (ALU) (vanligtvis kombinerade till en central processor), minne, externt minne, in- och utgångsenheter. Designdiagrammet för en sådan dator visas i fig. 1. Det bör noteras att externt minne skiljer sig från inmatnings- och utdataenheter genom att data matas in i det i en form som är bekväm för en dator, men otillgänglig för direkt uppfattning av en person. Således är den magnetiska skivenheten ett externt minne, och tangentbordet är en inmatningsenhet, display och utskrift är utmatningsenheter.

Ris. 1. Datorarkitektur byggd på von Neumanns principer. Heldragna linjer med pilar indikerar informationsflödenas riktning, prickade linjer indikerar styrsignaler från processorn till andra datornoder

Styrenheten och den aritmetiskt-logiska enheten i moderna datorer kombineras till en blockprocessor, som är en omvandlare av information som kommer från minnet och externa enheter (detta inkluderar att hämta instruktioner från minnet, koda och avkoda, utföra olika, inklusive aritmetiska, operationer , samordning av driften av datornoder). Processorns funktioner kommer att diskuteras mer i detalj nedan.

Minnet (minnet) lagrar information (data) och program. Lagringsenheten i moderna datorer är "multi-tiered" och inkluderar random access memory (RAM), som lagrar informationen som datorn arbetar med direkt vid en given tidpunkt (det körbara programmet, en del av den data som behövs för det, vissa kontrollprogram) och externa lagringsenheter (ESD). ) mycket större kapacitet än RAM. men med betydligt långsammare åtkomst (och betydligt lägre kostnad per 1 byte lagrad information). Klassificeringen av minnesenheter slutar inte med RAM och VRAM; vissa funktioner utförs av både SRAM (Random Access Memory), ROM (skrivskyddat minne) och andra undertyper av datorminne.

I en dator byggd enligt det beskrivna schemat läses instruktioner sekventiellt från minnet och exekveras. Nummer (adress) till nästa minnescell. från vilket nästa programkommando kommer att extraheras indikeras av en speciell enhet - en kommandoräknare i styrenheten. Dess närvaro är också ett av de karaktäristiska dragen hos den aktuella arkitekturen.

Grunderna i arkitekturen för datorenheter utvecklade av von Neumann visade sig vara så grundläggande att de fick namnet "von Neumann-arkitektur" i litteraturen. De allra flesta datorer idag är von Neumann-maskiner. De enda undantagen är vissa typer av system för parallell beräkning, där det inte finns någon programräknare, det klassiska konceptet med en variabel inte är implementerat och det finns andra väsentliga grundläggande skillnader från den klassiska modellen (exempel inkluderar streaming- och reduktionsdatorer).

Tydligen kommer en betydande avvikelse från von Neumann-arkitekturen att uppstå som ett resultat av utvecklingen av idén om femte generationens maskiner, där informationsbehandling inte baseras på beräkningar utan på logiska slutsatser.

Något som nostalgi: Von Neumanns principer

Jag kunde inte hitta anteckningsboken med den första delen av föreläsningarna om datorarkitektur, så uppgifterna fick hämtas från andra källor.
1945 publicerade John von Neumann, en ungerskfödd fysiker och matematiker som arbetade i USA på ENIAC-projektet, en rapport som beskriver de grundläggande principerna för att bygga en dator. De bestämmelser som uttrycktes i rapporten kallades "Von Neumanns principer".

1. Principen för programkontroll.
Ett program består av en uppsättning instruktioner som exekveras sekventiellt av processorn. Ett program hämtas från minnet med hjälp av en programräknare. Hämtning av kommandon från minnet avbryts när "stopp"-kommandot nås och exekveras.


Detta visar att kommandona i programmet och själva programmen exekveras sekventiellt efter varandra. Dessutom tillåter von Neumann-arkitekturen dig att göra villkorade och ovillkorliga grenar om du behöver utföra ett kommando som inte omedelbart följer det körda, utan är placerat på en annan minnesplats. Men detta bryter inte mot den sekventiella principen för kommandoexekvering eftersom endast ett kommando kan utföras åt gången.

2. Principen om minneshomogenitet.
Program och data kodas i binär kod och lagras i samma minne. Du kan utföra samma åtgärder på kommandon som på data.


För minnet spelar det alltså ingen roll vad som lagras i en given cell - data eller kommandon. Denna princip tillåter också programmet att utsätta sig för bearbetning under exekvering (detta är hur exekveringen av cykler och subrutiner är organiserad i programmet). Kommandon från ett program kan erhållas som resultat från exekvering av ett annat program. Översättningsmetoder – översättning av programtext från ett programmeringsspråk på hög nivå till kommandospråket för en specifik maskin – baseras på denna princip.

Olika typer av data kan i sin tur särskiljas genom format.

3. Principen för inriktning.

Strukturellt består huvudminnet (RAM) av numrerade celler. Vilken cell som helst är tillgänglig för processorn när som helst.


RAM är så att säga uppdelat i celler med en fast längd. Varje sådan cell har en adress (och faktiskt ett nummer), genom att kontakta som du kan få cellens innehåll.

Dessa principer blev avgörande under lång tid i utvecklingen av datorer. Först på 60-talet uppstod en teori om datorsystem som gick utöver von Neumanns principer (den största skillnaden var beräkningarnas parallellitet). Men detta gällde stora professionella datorer, och persondatorer använde dessa principer tills nyligen. Vår datorarkitekturlärare Igor Yusupovich berättade att Von Neumann-datorn praktiskt taget hade uttömt sig själv. Då hade jag ingen aning om vad det skulle innebära, men nu har två- och fyrkärniga processorer blivit vanliga

Datorarkitektur och von Neumanns principer

Termen "arkitektur" används för att beskriva principen för drift, konfiguration och sammankoppling av de huvudsakliga logiska noderna i en dator. Arkitekturär en hierarki på flera nivåer av hårdvara och mjukvara från vilken en dator är byggd.

Grunden till läran om datorarkitektur lades av den framstående amerikanske matematikern John von Neumann. Den första Eniak-datorn skapades i USA 1946. Gruppen kreatörer inkluderade von Neumann, som föreslog grundläggande principer för datorkonstruktion: övergång till det binära talsystemet för att representera information och principen för ett lagrat program.

Det föreslogs att placera beräkningsprogrammet i datorns lagringsenhet, vilket skulle säkerställa automatisk exekvering av kommandon och, som en konsekvens, öka datorns hastighet. (Kom ihåg att tidigare lagrade alla datorer bearbetade siffror i decimalform, och program specificerades genom att installera byglar på en speciell patchpanel.) Neumann var den första som gissade att ett program också kunde lagras som en uppsättning nollor och ettor, och i samma minne som och siffrorna den bearbetar.

Grundläggande principer för datorkonstruktion:

1. Varje dator består av tre huvudkomponenter: processor, minne och enhet. input-output (I/O).

2. Informationen som datorn arbetar med är uppdelad i två typer:

    en uppsättning bearbetningskommandon (program); uppgifter som ska behandlas.

3. Både kommandon och data läggs in i minnet (RAM) – lagrad programprincip .

4. Behandlingen styrs av processorn, vars styrenhet (CU) väljer kommandon från RAM och organiserar deras exekvering, och den aritmetiskt-logiska enheten (ALU) utför aritmetiska och logiska operationer på datan.


5. In-/utgångsenheter (I/O) är anslutna till processorn och RAM.

Von Neumann lade inte bara fram de grundläggande principerna för datorernas logiska struktur, utan föreslog också en struktur som reproducerades under de två första generationerna av datorer.

Extern lagringsenhet (ESD)

Ris. 1. Datorarkitektur Slut på formuläret,

Random Access Memory (RAM)

bygger på principerna

von Neumann

- riktning för informationsflöden; - Styrsignalernas riktning från processorn till andra datornoder

Grunderna i arkitekturen för datorenheter utvecklade av von Neumann visade sig vara så grundläggande att de fick namnet "von Neumann-arkitektur" i litteraturen. De allra flesta virtuella datorer idag är det von Neumann maskiner.

Framväxten av den tredje generationens datorer berodde på övergången från transistorer till integrerade kretsar, vilket ledde till en ökning av processorhastigheten. Nu tvingades processorn gå i viloläge i väntan på information från långsammare in-/utdataenheter, och detta minskade effektiviteten för hela datorn som helhet. För att lösa detta problem skapades speciella kretsar för att styra driften av externa enheter, eller helt enkelt kontroller.

Arkitekturen för moderna persondatorer är baserad på ryggradsmodulär princip. Informationskommunikation mellan datorenheter utförs genom systembuss(ett annat namn är system highway).

En buss är en kabel som består av många ledare. En grupp konduktörer - databuss bearbetad information överförs, å andra adressbuss- adresser till minne eller externa enheter som processorn kommer åt. Den tredje delen av motorvägen - styrbuss, sänds styrsignaler genom den (till exempel en signal om att enheten är redo för drift, en signal att starta driften av enheten, etc.).

Hur fungerar systembussen? Vi har redan sagt att en och noll bitar bara finns i huvudet på programmerare. För en processor är endast spänningarna vid dess kontakter verkliga. Varje stift motsvarar en bit, och processorn behöver bara skilja mellan två spänningsnivåer: ja/nej, hög/låg. Därför är adressen för en processor en sekvens av spänningar på speciella kontakter som kallas adressbussen. Du kan föreställa dig att efter att spänningar har ställts in på kontakterna på adressbussen, visas spänningar på kontakterna på databussen, som kodar numret som är lagrat på den angivna adressen. Den här bilden är väldigt grov eftersom det tar tid att hämta data från minnet. För att undvika förvirring styrs driften av processorn av en speciell klockgenerator. Den producerar pulser som delar upp processorns arbete i separata steg. Enheten för processortid är en klockcykel, det vill säga intervallet mellan två pulser hos klockgeneratorn.

Spänningarna som visas på processoradressbussen kallas den fysiska adressen. I verkligt läge fungerar processorn endast med fysiska adresser. Tvärtom är processorns skyddade läge intressant eftersom programmet fungerar med logiska adresser och processorn osynligt omvandlar dem till fysiska. Windows-systemet använder skyddat läge för processorn. Moderna operativsystem och program kräver så mycket minne att processorns skyddade läge har blivit mycket mer "riktigt" än dess riktiga läge.

Systembussen karakteriseras klocka frekvens och bitdjup. Antalet bitar som sänds samtidigt på bussen anropas bussens bredd. Klockfrekvens kännetecknar antalet elementära dataöverföringsoperationer på 1 sekund. Bussbredden mäts i bitar, klockfrekvensen mäts i megahertz.


All information som överförs från processorn till andra enheter via databussen åtföljs av adress sänds över adressbussen. Detta kan vara adressen till en minnescell eller adressen till en kringutrustning. Det är nödvändigt att bussbredden tillåter att adressen till minnescellen överförs. Sålunda, med ord, begränsar bussbredden mängden dator-RAM, den kan inte vara större än , där n är bussbredden. Det är viktigt att prestandan för alla enheter som är anslutna till bussen är konsekventa. Det är inte klokt att ha en snabb processor och långsamt minne, eller en snabb processor och minne, utan en långsam hårddisk.

Ris. 2. Diagram över en dator byggd på ryggradsprincipen

I moderna datorer är det implementerat principen om öppen arkitektur, låter användaren sätta ihop den datorkonfiguration han behöver och vid behov uppgradera den.

Konfiguration En dator hänvisar till den faktiska samlingen av datorkomponenter som utgör en dator. Principen om öppen arkitektur låter dig ändra sammansättningen av datorenheter. Ytterligare kringutrustning kan anslutas till informationsmotorvägen, och vissa enhetsmodeller kan ersättas av andra.

Hårdvaruanslutningen av en perifer enhet till ryggraden på fysisk nivå utförs genom ett speciellt block - kontroller(andra namn - adapter, kort, kort). Det finns speciella kontakter för att installera kontroller på moderkortet - slots.

Programvarukontroll av driften av en kringutrustning utförs genom programmet - förare, som är en komponent i operativsystemet. Eftersom det finns ett stort utbud av enheter som kan installeras på en dator, kommer varje enhet vanligtvis med en drivrutin som interagerar direkt med den här enheten.

Datorn kommunicerar med externa enheter genom hamnar– speciella kontakter på baksidan av datorn. Skilja på sekventiell Och parallell hamnar. Seriella (COM – portar) används för att ansluta manipulatorer, ett modem och överföra små mängder information över långa avstånd. Parallella (LPT - portar) används för att ansluta skrivare, skannrar och överföra stora mängder information över korta avstånd. Nyligen har universella seriella portar (USB) blivit utbredda, till vilka du kan ansluta olika enheter.







2024 gtavrl.ru.