Von Neumann 2: a generationen. Von Neumanns principer för att bygga en elektronisk dator

Datorarkitektur och von Neumann -principer

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

Grunden för läran om datorarkitektur lades av den enastående amerikanska matematikern John von Neumann. Den första datorn "Eniak" skapades i USA 1946. Gruppen skapare ingår von Neumann vilket också föreslog grundläggande principer för datorkonstruktion: övergången till ett binärt nummersystem för att representera information och principen för ett lagrat program.

Det föreslogs att placera beräkningsprogrammet i datorns minne, vilket skulle ge autoläge exekvering av kommandon och, som en konsekvens, en ökning av datorns hastighet. (Kom ihåg att alla datorer tidigare lagrade bearbetade siffror i decimalform och att program sattes genom att sätta hoppare på en speciell patchpanel.) Neumann var den första som gissade att ett program också kan lagras som en uppsättning nollor och enor, och i samma minne som och siffrorna som det behandlar.

Grundläggande principer för datorkonstruktion:

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

2. Informationen som datorn fungerar med är indelad i två typer:

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

3. Både kommandon och data matas in i minnet (RAM) - lagrad programprincip .

4. Processorn hanterar behandlingen, vars styrenhet (CU) väljer kommandon från RAM -minnet och organiserar deras körning, och den aritmetiska logiska enheten (ALU) utför aritmetiska och logiska operationer på data.


5. Input-output-enheter (I / O-enheter) är anslutna till processorn och RAM-minnet.

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

Extern lagringsenhet (OVC)

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

Slumpmässigt åtkomstminne (RAM)

baserat på principer

von Neumann

- informationsflödenas riktning; - styrsignaler från processorn till resten av datorns noder

Grunden för arkitekturen för beräkningsenheter som utvecklats av von Neumann visade sig vara så grundläggande att de fick namnet "von Neumann -arkitektur" i litteraturen. De allra flesta virtuella datorer idag von Neumann -maskiner.

Framväxten av den tredje generationen datorer berodde på övergången från transistorer till integrerade kretsar vilket ledde till en ökning av processorhastigheten. Nu tvingades processorn att stå inaktiv och vänta på information från långsammare inmatningsenheter, och detta minskade effektiviteten för hela datorn som helhet. För att lösa detta problem skapades speciella arbetsstyrningssystem. externa enheter, eller bara kontroller.

Arkitekturen för moderna persondatorer bygger på trunk-modulär princip... Informationskommunikation mellan datoranordningar utförs genom systembuss(kallas även systemets ryggrad).

En buss är en kabel som består av många ledare. En grupp konduktörer - databuss behandlad information överförs, å andra sidan - adressbuss- adresser till minne eller externa enheter som processorn får åtkomst till. Den tredje delen av motorvägen - kontrollbuss, styrsignaler sänds längs den (till exempel en signal om att enheten är klar för användning, en signal för att enheten ska starta, etc.).

Hur fungerar systembussen? Vi har redan sagt att en och noll bitar bara finns i programmerarnas huvuden. För processorn är bara spänningarna på dess kontakter verkliga. Varje stift motsvarar en bit, och processorn behöver bara skilja mellan två spänningsgraderingar: ja-nej, hög-låg. Därför är adressen för processorn en sekvens av spänningar speciella kontakter ringde adressbussen. Du kan tänka dig att efter att spänningarna har ställts in på adressbussens kontakter, visas spänningar på databussens kontakter som kodar numret som lagras på den angivna adressen. Den här bilden är mycket grov eftersom det tar tid att hämta data från minnet. För att inte bli förvirrad styrs processorn av en speciell klockgenerator. Det genererar pulser som delar upp processorn i separata steg. Enhetens tidsenhet är en cykel, det vill säga intervallet mellan klockgeneratorns två pulser.

Spänningarna som visas på processorns adressbuss kallas den fysiska adressen. V verkligt läge processorn fungerar bara med fysiska adresser. Tvärtom är processorns skyddade läge intressant genom att programmet fungerar med logiska adresser och processorn osynligt omvandlar dem till fysiska. Windows -system använder processorns skyddade läge. Moderna operativsystem och program kräver så mycket minne att processorns skyddade läge har blivit mycket mer "verkligt" än dess riktiga läge.

Systembussen kännetecknas av klocka frekvens och bitdjup. Antalet bitar som samtidigt överförs över bussen anropas bussbredd. Klockfrekvens karakteriserar antalet elementära dataöverföringsoperationer per sekund. Bussbredd mäts i bitar, klockfrekvens- i megahertz.


All information som överförs från processorn till andra enheter via databussen åtföljs av adressöverförs över adressbussen. Detta kan vara en minnesplats eller en perifer adress. Det är nödvändigt att bussens bredd gör att du kan överföra minnescellens adress. Således, i ord, begränsar bussens bredd volymen slumpmässigt åtkomstminne Dator, det kan inte vara mer än, där n är bussbredden. Det är viktigt att prestanda för alla enheter som är anslutna till bussen är konsekventa. Det är oklokt att ha en snabb processor och långsamt minne, eller en snabb processor och minne men en långsam hårddisk.

Ris. 2. Diagram över en datoranordning byggd enligt bagagerumsprincipen

Moderna datorer implementerar principen om öppen arkitektur, så att användaren kan slutföra konfigurationen av den dator han behöver och vid behov göra modernisering.

Konfiguration dator avser den faktiska uppsättningen datorkomponenter som utgör en dator. Principen om öppen arkitektur gör att du kan ändra sammansättningen av datorenheter. Ytterligare kringutrustning kan anslutas till informationsvägen, vissa enhetsmodeller kan ersättas med andra.

Hårdvaruanslutningen av kringutrustningen till ryggraden på fysisk nivå utförs genom ett speciellt block - kontroller(andra namn - adapter, kort, kort). Att installera kontroller på moderkort det finns speciella kontakter - slots.

Programvarukontroll av kringutrustningens funktion utförs genom programmet - förare som är en komponent operativ system... Eftersom det finns ett stort antal olika enheter som kan installeras i en dator, levereras vanligtvis en drivrutin till varje enhet som interagerar direkt med den här enheten.

Anslutningen av datorn till externa enheter utförs genom hamnar- speciella kontakter på datorns baksida. Skilja på i följd och parallell hamnar. Seriell (COM - port) används för att ansluta knappsatser, modem och överföra små mängder information över långa avstånd. Parallell (LPT - portar) används för att ansluta skrivare, skannrar och överföra stora mängder information till korta sträckor... Nyligen har seriella universalportar (USB) blivit utbredda, till vilka du kan ansluta olika enheter.

Grunden för teorin om datorarkitektur lades av den enastående amerikanska matematikern John von Neumann. Han gick med i skapandet av världens första rördator ENIAC 1944, då dess design redan hade valts. Under sitt arbete, under många diskussioner med sina kollegor G. Goldstein och A. Berks, uttryckte von Neumann idén om en helt ny dator. År 1946 redogjorde forskare för sina principer för konstruktion av datorer i den nu klassiska artikeln "Preliminär övervägande av logisk design av en elektronisk beräkningsenhet". Ett halvt sekel har gått sedan dess, men bestämmelserna i det är fortfarande relevanta idag.

Artikeln motiverar övertygande användningen av binärt system för att representera tal (det är användbart att komma ihåg att alla datorer tidigare lagrade bearbetade nummer i decimalform). Författarna har på ett övertygande sätt visat fördelarna med ett binärt system för teknisk implementering, bekvämligheten och enkelheten med att utföra aritmetik och logiska operationer... I framtiden började datorer behandla icke -numeriska typer av information - text, grafik, ljud och andra, men den binära kodningen av data uppgår fortfarande till informationsunderlag vilken modern dator som helst.

En annan verkligt revolutionerande idé, vars värde är svårt att överskatta, är principen om "lagrat program" som föreslogs av Neumann. Initialt sattes programmet genom att ställa in hoppare på en speciell patchpanel. Detta var en mycket mödosam uppgift: det tog till exempel flera dagar att ändra programmet för ENIAC -maskinen (medan den faktiska beräkningen inte kunde ta mer än några minuter - lamporna var ur funktion). Neumann var den första som gissade att ett program också kan lagras som en uppsättning nollor och enor, och i samma minne som siffrorna som det behandlar. Frånvaron av en grundläggande skillnad mellan programmet och data gjorde det möjligt för datorn att bilda ett program för sig själv i enlighet med beräkningsresultaten.

Von Neumann presenterade inte bara de grundläggande principerna för en dators logiska enhet utan föreslog också dess struktur, som reproducerades under de två första generationerna av datorer. Enligt Neumann är huvudblocken en styrenhet (CU) och en aritmetisk logisk enhet (ALU) (vanligtvis kombinerad till en central processor), minne, externt minne, in- och utmatningsenheter. Det bör noteras att externt minne skiljer sig från input- och output -enheter genom att data matas in i det i formen, bekväm dator, men otillgänglig för direkt mänsklig uppfattning. Således tillhör en magnetisk hårddisk externt minne och tangentbordet är inmatningsenhet, display och utskrift är utdataenheter.

Styrenhet och aritmetisk logikenhet i moderna datorer kombinerat till ett block - en processor, som är en omvandlare av information som kommer från minne och externa enheter (detta inkluderar att hämta instruktioner från minnet, kodning och avkodning, utföra olika operationer, inklusive aritmetiska, samordna driften av datanoder). Processorfunktionerna kommer att diskuteras mer i detalj nedan.

Minne (minne) lagrar information (data) och program. Lagringsenheten för moderna datorer är "multi-tiered" och innehåller RAM (random access memory), som lagrar den information som datorn fungerar direkt i den givna tiden(ett körbart program, några av de data som krävs för det, vissa kontrollprogram) och externa lagringsenheter (OVC) med 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 VZU-vissa funktioner utförs av både SRAM (superoperativt minne), ROM (skrivskyddat minne) och andra underarter av datorminne.

I en dator byggd enligt det beskrivna schemat läses kommandon sekventiellt från minnet och körs. Nummer (adress) för nästa minnescell. från vilket nästa programkommando kommer att extraheras indikeras av en speciell enhet - kommandoräknaren i styrenheten. Dess närvaro är också en av de karaktäristiska dragen i arkitekturen i fråga.

Grunden för arkitekturen för beräkningsenheter som utvecklats av von Neumann visade sig vara så grundläggande att de kallades "von Neumann -arkitektur" i litteraturen. Den överväldigande majoriteten av datorer idag är von Neumann -maskiner. De enda undantagen är vissa typer av system för parallellberäkning, där det inte finns någon instruktionsräknare, det klassiska konceptet med en variabel inte är implementerat, och det finns andra väsentliga fundamentala skillnader från den klassiska modellen (exempel är datorer för strömning och reduktion).

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

Von Neumann principer

Minnehomogenitetsprincip - Instruktioner och data lagras i samma minne och går inte att urskilja externt i minnet. De kan bara kännas igen på det sätt de används; det vill säga samma värde i en minnescell kan användas både som data, som ett kommando och som en adress, beroende bara på sättet att komma åt den. Detta låter dig utföra samma operationer på kommandon som på siffror, och öppnar följaktligen ett antal möjligheter. Så genom att cykliskt ändra adressdelen av kommandot kan du ge åtkomst till sekventiella element i datarrayen. Denna teknik kallas kommandomodifiering och uppmuntras inte utifrån modern programmering. Mer användbar är en annan konsekvens av principen om homogenitet, när instruktionerna för ett program kan erhållas som ett resultat av genomförandet av ett annat program. Denna förmåga är grunden för översättning - översättning av en programtext från ett högnivåspråk till språket i en specifik dator.

Adresseringsprincip - Strukturellt 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 indelade i informationsenheter, kallade ord och lagras i minnesceller, och numren på motsvarande celler - adresser - används för att komma åt dem.

Princip programkontroll- 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 viss operation från en uppsättning operationer som implementeras av en dator. Programinstruktioner lagras i sekventiella minnesceller på en dator och körs i en naturlig sekvens, det vill säga i ordningen för deras position i programmet. Vid behov kan denna sekvens ändras med hjälp av specialkommandon. Beslutet att ändra ordningsföljden för programkommandon fattas antingen på grundval av en analys av resultaten från tidigare beräkningar eller villkorslöst.

Binär kodningsprincip - Enligt denna princip är all information, både data och kommandon, kodad 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 skiljs vanligtvis ett teckenfält och ett signifikant bitfält. Två fält kan särskiljas i kommandoformatet: ett operationskodfält och ett adressfält.

År 1946 redogjorde D. von Neumann, G. Goldstein och A. Berks i sin gemensamma artikel för nya principer för konstruktion och drift av datorer. I framtiden, på grundval av dessa principer, producerades de två första generationerna av datorer. I senare generationer skedde vissa förändringar, även om Neumanns principer fortfarande är relevanta idag.

Faktum är att Neumann lyckades sammanfatta många andra forskares vetenskapliga utveckling och upptäckter och formulera grundläggande nya saker utifrån dem.

Princip för programmerad kontroll: ett program består av en uppsättning instruktioner som utförs av en processor i en specifik sekvens.

Principen för minneshomogenitet: program och data lagras i samma minne.

Inriktningsprincip: strukturellt består huvudminnet av numrerade celler. Vilken cell som helst är tillgänglig för processorn när som helst.

Datorer byggda på de listade principerna är av typen Neumann.

Den viktigaste konsekvensen av dessa principer kan kallas det faktum att programmet nu inte längre var en permanent del av maskinen (som en räknare). Programmet har blivit enkelt att ändra. För jämförelse bestämdes ENIAC -datorprogrammet (där det inte fanns något program lagrat i minnet) av speciella hoppare på panelen. Det kan ta mer än en dag att omprogrammera maskinen (ställ in hopparna annorlunda). Och även om program för moderna datorer kan ta flera år att skriva, körs de på miljontals datorer, men installation av program kräver inte betydande tid.

Förutom de tre ovanstående principerna föreslog von Neumann den binära kodningsprincipen - För att representera data och kommandon används ett binärt nummersystem (de första maskinerna som används decimalsystem beräkning). Men efterföljande utveckling har visat möjligheten att använda icke-traditionella nummersystem.

I början av 1956, på initiativ av Academician S.L. Sobolev, chef för Institutionen för beräknande matematik vid fakulteten för mekanik och matematik vid Moskva universitet, en elektronisk avdelning inrättades vid datacentret vid Moskva statsuniversitet och ett seminarium började arbeta i syfte att skapa ett praktiskt exempel på en digital dator avsedd för användning på universitet, liksom i laboratorier och designbyråer för industriföretag. ... Det var nödvändigt att utveckla en liten dator, lätt att lära sig och använda, pålitlig, billig och samtidigt effektiv i en mängd olika uppgifter. En grundlig studie under året av de datorer som fanns tillgängliga vid den tiden och tekniska möjligheter deras implementering ledde till ett icke-standardiserat beslut att använda i den skapade maskinen inte en binär, utan en ternär symmetrisk kod, som implementerade ett balanserat nummersystem, som D. Knuth tjugo år senare kanske kallar det mest eleganta och, som det senare blev känd, vars fördelar avslöjades av K. Shannon 1950 Till skillnad från den binära koden med siffrorna 0, 1 allmänt accepterat i moderna datorer, vilket är aritmetiskt defekt på grund av omöjligheten att direkt representera negativa tal i den, ger den ternära koden med siffrorna -1, 0, 1 en optimal konstruktion av aritmetik med signerade nummer. Ternary -nummersystemet bygger på samma lägesprincip för kodning av nummer som det binära systemet som används i moderna datorer, men vikten i-th position (bit) i den är inte lika med 2 i, men 3 i. I det här fallet är själva siffrorna inte tvåsiffriga (inte bitar), utan tresiffriga (triter) -förutom 0 och 1, tillåter de ett tredje värde, vilket är -1 i ett symmetriskt system, på grund av vilket både positiva och negativa tal representeras enhetligt. Värdet på ett n-bitars heltal N definieras på samma sätt som värdet på ett n-bitars heltal:

där a i ∈ (1, 0, -1) är värdet för siffran i i -siffran.

I april 1960 utfördes interavdelningstester av en prototypdator med namnet "Setun". Enligt resultaten av dessa tester erkändes "Setun" som den första driftsmodellen för en universaldator på lamplösa element, som kännetecknas av " hög prestanda, tillräcklig tillförlitlighet, liten storlek och enkel underhåll. ”På grund av naturligheten i den ternära symmetriska koden visade sig” Setun ”vara ett verkligt universellt, lätt programmerbart och mycket effektivt datorverktyg, som har bevisat sig positivt, särskilt, som ett tekniskt sätt att lära ut beräkningsmatematik i mer än trettio universitet. Och på Air Force Engineering Academy. Zhukovsky, det var på "Setun" genomfördes först automatiserat system datorträning.

Enligt von Neumann -principer består en dator av:

· aritmetisk logisk enhet - ALU(Engelska ALU, Arithmetic and Logic Unit), som utför aritmetiska och logiska operationer; styrenhet -UU, utformad för att organisera genomförandet av program;

· lagringsenheter (minne), inkl. slumpmässigt åtkomstminne (RAM - primärt minne) och extern lagringsenhet (OVC); om ungefär huvudminne data och program lagras; minnesmodulen består av många numrerade celler, varje cell kan skrivas binärt tal som tolkas som antingen kommando eller data;

· input-output-enheter, som tjänar till att överföra data mellan en dator och en extern miljö bestående av olika kringutrustning, som inkluderar sekundärt minne, kommunikationsutrustning och terminaler.

Ger interaktion mellan processorn (ALU och CU), huvudminnet och I / O -enheter med systembuss .

Von Neumanns datorarkitektur anses klassisk, och de flesta datorer är byggda på den. I allmänhet, när man talar om von Neumann -arkitekturen, menar de den fysiska separationen av processormodulen från lagringsenheterna för program och data. Lagringsidé datorprogram i delat minne gjorde det möjligt att göra datorer till universella enheter som kan utföra ett brett spektrum av uppgifter. Program och data matas in i minnet från en inmatningsenhet via en aritmetisk logisk enhet. Alla programkommandon skrivs till angränsande minnesceller, och data för bearbetning kan finnas i godtyckliga celler. För alla program måste det sista kommandot vara ett avstängningskommando.

Den överväldigande majoriteten av datorer idag är von Neumann -maskiner. De enda undantagen är vissa typer av system för parallellberäkning, där det inte finns någon instruktionsräknare, det klassiska konceptet med en variabel inte är implementerat, och det finns andra betydande fundamentala skillnader från den klassiska modellen (exempel är datorer för strömning och reduktion). Uppenbarligen kommer en betydande avvikelse från von Neumann -arkitekturen att inträffa som ett resultat av utvecklingen av idén om femte generationens maskiner, där informationsbehandling inte bygger på beräkningar, utan på logiska slutsatser.

2.2 Kommando, kommandoformat

Ett kommando är en beskrivning av en elementär operation som en dator måste utföra.

Lagstruktur.

Antalet bitar som tilldelas för att skriva ett kommando beror på hårdvaran specifik modell dator. I detta avseende kommer strukturen för ett specifikt team att övervägas för det allmänna fallet.

I allmänhet innehåller kommandot följande information:

Ø kod för operationen som utförs;

Ø instruktioner för att definiera operander eller deras adresser;

Ø instruktioner om placering av resultatet.

För en viss maskin måste antalet bitar som tilldelas i kommandot för var och en av dess adresser och för opkoden anges, liksom de faktiska opkoderna själva. Antalet binära bitar i kommandot, tilldelat under konstruktionen av maskinen för var och en av dess adresser, bestämmer den övre gränsen för antalet minnesceller i maskinen som har separata adresser: om adressen i kommandot representeras med n binära bitar, då kan minnet med snabb åtkomst inte innehålla mer än 2 n celler.

Kommandona utförs sekventiellt, med start från startadressen (ingångspunkten) för det körbara programmet, adressen för varje nästa kommando är en mer än adressen för det föregående kommandot, om det inte var ett hoppkommando.

I moderna maskiner är instruktionslängden variabel (vanligtvis från två till fyra byte), och sätten att ange variabeladresser är ganska olika.

Adressdelen av kommandot kan innehålla, till exempel:

Operand;

Operandadress;

Adressen till operandadressen (byte -nummer från vilket operandadressen ligger) etc.

Tänk på strukturen möjliga alternativ flera typer av kommandon.

Kommandon med tre adresser.

Kommandon med två adresser.

Unicast -kommandon.

Oadresserade kommandon.

Tänk på en binär additionsoperation: c = a + b.

För varje variabel i minnet definierar vi villkorade adresser:

Låt 53 vara koden för tilläggsoperationen.

I det här fallet ser strukturen för kommandot med tre adresser ut så här:

· Kommandon med tre adresser.

Kommandoprocessprocessen är uppdelad i följande steg:

Nästa kommando väljs från minnescellen, vars adress lagras i kommandoräknaren; innehållet i räknaren ändras och innehåller nu adressen till nästa kommando i ordning;

Det valda kommandot överförs till styrenheten i kommandoregistret;

Kontrollenheten dekrypterar adressfältet för kommandot;

Enligt UU -signalerna läses operandernas värden ur minnet och skrivs till ALU på operandernas speciella register;

UU dekrypterar operationskoden och skickar en signal till ALU för att utföra motsvarande operation på data;

I detta fall skickas resultatet av operationen till minnet (i unicast- och tvåadressdatorer finns det kvar i processorn);

Alla tidigare åtgärder utförs tills STOP -kommandot nås.

2.3 datorn som automat

"Elektroniska digitala maskiner med programmerad styrning är ett exempel på en av de mest utbredda typerna av omvandlare av diskret information, kallad diskret eller digital automat" (Glushkov V.M. Synthesis of digital automa)

Varje dator fungerar automatiskt (oavsett om det är en stor eller liten dator, persondator eller superdator). I denna mening kan en beräkningsmaskin som en automat beskrivas med blockdiagrammet som visas i fig. 2.1.

I de föregående styckena övervägdes blockdiagram för en dator. Baserad konstruktionsschema en dator och en krets för en automat, kan vi jämföra blocken i en krets i en automat och element i ett strukturschema över en dator.

Som exekutiva element inkluderar maskinen:

Aritmetisk logisk enhet:

· Minne;

· Input-output-enheter med information.

Maskinens kontrollelement är en styranordning som faktiskt tillhandahåller ett automatiskt driftsläge. Som redan nämnts, i moderna beräkningsenheter, är det huvudsakliga verkställande elementet en processor eller mikroprocessor, som innehåller en ALU, minne och en styrenhet.

Maskinens extrautrustning kan vara alla slags ytterligare medel som förbättrar eller utökar maskinens funktioner.

Idag är det svårt att tro, men datorer, utan vilka många inte längre kan föreställa sig sitt liv, dök upp för bara 70 år sedan. En av dem som gjorde ett avgörande bidrag till deras skapelse var den amerikanska forskaren John von Neumann. Han föreslog de principer som de flesta datorer fungerar till idag. Tänk på hur von Neumann -maskinen fungerar.

Kort curriculum vitae

Janos Neumann föddes 1930 i Budapest, i en mycket välbärgad judisk familj, som senare lyckades få titeln adel. Sedan barndomen kännetecknades han av enastående förmågor inom alla områden. Vid 23 års ålder hade Neumann redan försvarat sin doktorsavhandling inom experimentell fysik och kemi. År 1930 blev den unga forskaren inbjuden att arbeta i USA, samtidigt som Neumann blev en av de första anställda vid Institute for Advanced Study, där han arbetade som professor fram till slutet av sitt liv. Neumanns vetenskapliga intressen var ganska omfattande. I synnerhet är han en av skaparna av matapparat kvantmekanik och begreppet mobilautomat.

Bidrag till informatik

Innan vi får reda på vilken princip som inte motsvarar von Neumann -arkitekturen, kommer det att vara intressant att veta hur forskaren kom på idén att skapa en modern typ av dator.

Von Neumann var expert på matematik för explosioner och chockvågor och var en vetenskaplig rådgivare till ett laboratorium vid United States Army Munitions Administration i början av 1940 -talet. Hösten 1943 anlände han till Los Alamos för att delta i utvecklingen av Manhattan -projektet för personlig inbjudan hans ledare Han fick i uppgift att beräkna kraften av implosiv kompression av en atombombladdning till en kritisk massa. För att lösa det krävdes stora beräkningar, som först utfördes på handhållna räknare och senare på mekaniska tabulatorer från IBM, med hjälp av stansade kort.

Jag fick bekanta mig med informationen om framstegen med att skapa elektroniskt-mekaniskt och fullt ut elektroniska datorer... Snart var han involverad i utvecklingen av datorer EDVAC och ENIAC, vilket resulterade i att han började skriva arbetet "Det första utkastet till EDVAC -rapporten", förblev oavslutat, där han presenterade för det vetenskapliga samfundet helt ny idé om vad datorarkitekturen ska vara.

Von Neumann principer

Informatik som vetenskap 1945 nådde en återvändsgränd, eftersom alla bearbetade nummer lagrades i deras minne i den tionde formen och programmen för att utföra operationer sattes genom att ställa in hoppare på patchpanelen.

Detta begränsade avsevärt datorns möjligheter. Det verkliga genombrottet var von Neumann -principerna. De kan kort uttryckas i en mening: övergången till ett binärt nummersystem och principen för ett lagrat program.

Analys

Tänk närmare på de principer som den klassiska strukturen för von Neumann -maskinen bygger på:

1. Övergång till binärt system från decimal

Denna princip för Neumann -arkitektur tillåter användning av ganska enkla logiska enheter.

2. Programvarukontroll av en elektronisk dator

Datorns funktion styrs av en uppsättning kommandon som utförs sekventiellt efter varandra. Utvecklingen av de första maskinerna med ett program lagrat i minnet lade grunden för modern programmering.

3. Data och program i datorns minne lagras tillsammans

I detta fall har både data och programkommandon samma sätt att skriva i det binära nummersystemet, därför är det i vissa situationer möjligt att utföra samma åtgärder på dem som på data.

Konsekvenser

Dessutom har Fonneumann -maskinens arkitektur följande funktioner:

1. Minnesceller har adresser som är numrerade sekventiellt

Genom tillämpningen av denna princip har det blivit möjlig användning variabler i programmering. I synnerhet kan du när som helst hänvisa till en viss minnescell med dess adress.

2. Möjlighet att villkorligt hoppa under programkörning

Som redan nämnts måste kommandon i program köras sekventiellt. Det är dock möjligt att hoppa till valfri del av koden.

Hur von Neumann -maskinen fungerar

En sådan matematisk modell består av ett minne (minne), kontroll samt in- och utmatningsenheter. Alla programkommandon skrivs i minnesceller i grannskapet och data för deras behandling - i godtyckliga celler.

Varje lag måste bestå av:

  • en indikation på vilken operation som ska utföras;
  • adresser till minnesceller som lagrar originaldata som påverkas av den angivna operationen;
  • adresserna till cellerna där resultatet ska skrivas.

Operationerna som anges av kommandona på specifika initialdata utförs av ALU och resultaten registreras i minnesceller, det vill säga de sparas i en form som är lämplig för efterföljande maskinbearbetning eller överförs till en utmatningsenhet (bildskärm, skrivare , etc.) och blir tillgängliga för människor.

UU styr alla delar av datorn. Från den till andra enheter tar den emot signalordrar "vad de ska göra", och från andra enheter tar den emot information om i vilket tillstånd de befinner sig.

Styrenheten har ett speciellt register som kallas "kommandoräknaren" CK. Efter att ha laddat de initiala data och programmet i minnet skrivs IC: n till adressen till sitt första kommando. UU läser från datorns minne innehållet i cellen, vars adress finns i SC, och placerar den i "Command Register". Kontrollenheten bestämmer operationen som motsvarar ett specifikt kommando och "noterar" data i datorminnet, vars adresser anges i det. Därefter fortsätter ALU eller datorn att utföra operationen, efter det att innehållet i CK ändras med en, det vill säga det pekar på nästa kommando.

Kritik

Nackdelar och aktuella perspektiv fortsätter att vara föremål för debatt. Det faktum att maskiner som skapats enligt de principer som framfördes av denna enastående forskare inte är perfekta märktes för länge sedan.

Därför kan man i datavetenskapliga provbiljetter ofta stöta på frågan "vilken princip motsvarar von Neumanns arkitektur inte och vilka brister har den?"

När du svarar på den andra delen, var noga med att ange:

  • för närvaron av ett semantiskt gap mellan programmeringsspråk på hög nivå och kommandosystemet;
  • om problemet med att matcha OP och processorns bandbredd;
  • om den förestående krisen programvara orsakas av att kostnaden för dess skapande är mycket lägre än kostnaden för att utveckla hårdvaran, och det finns ingen möjlighet till fullständig testning av programmet;
  • brist på utsikter när det gäller prestanda, eftersom dess teoretiska gräns redan har uppnåtts.

När det gäller vilken princip som inte motsvarar von Neumanns arkitektur, alltså det kommer om parallell organisering av ett stort antal dataströmmar och kommandon, inneboende i en multiprocessorarkitektur.

Slutsats

Nu vet du vilken princip von Neumann -arkitektur inte motsvarar. Det är uppenbart att vetenskap och teknik inte står stilla, och kanske snart kommer datorer av en helt ny typ att dyka upp i varje hem, tack vare vilket mänskligheten kommer in ny nivå dess utveckling. Förresten, von Neumann Architecture -simulatorn hjälper dig att förbereda dig för tentamen. Sådana digitala utbildningsresurser underlättar assimilering av materialet och ger möjlighet att utvärdera dina kunskaper.

Denna typ betecknas ofta med termen "von Neumann -maskin", men korrespondensen mellan dessa begrepp är inte alltid entydig. I allmänhet, när man talar om von Neumann -arkitekturen, menar de principen att lagra data och instruktioner i ett minne.

Kollegial YouTube

  • 1 / 5

    Grunden för doktrinen om dators arkitektur lades av von Neumann 1944, när han gick med i skapandet av världens första rördator, ENIAC. Under arbetet med ENIAC vid University of Pennsylvania uppstod idén om en mer avancerad maskin som heter EDVAC under många diskussioner med kollegorna John William Mockley, John Eckert, Herman Goldstein och Arthur Burks. Forskningöver EDVAC fortsatte parallellt med byggandet av ENIAC.

    I mars 1945 formaliserades principerna för logisk arkitektur i ett dokument som kallades "First Draft Report on EDVAC" - en rapport för US Army Ballistic Laboratory, som finansierade byggandet av ENIAC och utvecklingen av EDVAC. Rapporten, eftersom den bara var en skiss, var inte avsedd för publicering, utan endast för distribution inom gruppen, men Herman Goldstein - projektansvarig från den amerikanska armén - reproducerade detta vetenskapligt arbete och skickade ut det till ett brett spektrum av forskare för bekantskap. Eftersom endast von Neumanns namn fanns på dokumentets första sida hade de som läste dokumentet det falska intrycket att han var författaren till alla idéer som presenterades i verket. Dokumentet gav tillräckligt med information för att de som läste det kunde bygga sina datorer som EDVAC på samma principer och med samma arkitektur, som så småningom blev känd som "von Neumann -arkitekturen".

    Efter slutet av andra världskriget och slutet på arbetet med ENIAC i februari 1946 bröt teamet av ingenjörer och forskare upp, John Mauchly, John Eckert bestämde sig för att gå in i affärer och skapa datorer på kommersiell basis. Von Neumann, Goldstein och Burks gick dit de bestämde sig för att skapa sin egen dator "IAS -maskin" liknande EDVAC och använda den för forsknings- och utvecklingsarbete. I juni 1946 redogjorde de för sina principer för att bygga datorer i den numera klassiska artikeln "Preliminär hänsyn till logisk design av en elektronisk beräkningsenhet." Mer än ett halvt sekel har gått sedan dess, men bestämmelserna i det är fortfarande relevanta idag. Artikeln motiverar övertygande användningen av ett binärt system för att representera tal, och trots allt har alla datorer tidigare lagrat bearbetade nummer i decimalform. Författarna visade fördelarna med ett binärt system för teknisk implementering, bekvämlighet och enkelhet att utföra aritmetiska och logiska operationer i det. I framtiden började datorer behandla icke -numeriska typer av information - text, grafik, ljud och andra, men den binära kodningen av data utgör fortfarande informationsbasen för alla moderna datorer.

    Förutom maskiner som arbetade med binär kod har det funnits och finns fortfarande ternära maskiner. Ternära datorer har ett antal fördelar och nackdelar jämfört med binära datorer. Bland fördelarna är höghastighetsprestanda (additionsoperationer utförs ungefär en och en halv gånger snabbare), närvaron av binär och ternär logik, symmetrisk representation av signerade heltal (i binär logik tar antingen två nollor (positiva och negativa) plats, eller så kommer det att finnas ett nummer, som inte har ett par med motsatt tecken). Nackdelarna är mer komplex implementering jämfört med binära maskiner.

    En annan revolutionerande idé, vars betydelse är svår att överskatta, är principen om "lagrat program". Initialt sattes programmet genom att ställa in hoppare på en speciell patchpanel. Detta var en mycket mödosam 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, som det fanns ett stort antal av, misslyckades. Ett program kan emellertid också lagras som en uppsättning nollor och enor, och i samma minne som de nummer som det behandlar. Frånvaron av en grundläggande skillnad mellan programmet och data gjorde det möjligt för datorn att bilda ett program för sig själv i enlighet med beräkningsresultaten.

    Förekomsten av en given uppsättning körbara kommandon och program var en karakteristisk egenskap hos den första datorsystem... Idag används en liknande design för att förenkla utformningen av en datoranordning. Således är stationära räknare i princip enheter med en fast uppsättning körbara program. De kan användas för matematiska beräkningar, men det är nästan omöjligt att använda dem för ordbehandling och dataspel, för att titta på grafik eller videor. Att ändra firmware för sådana enheter kräver nästan fullständig omarbetning, och i de flesta fall är det omöjligt. Omprogrammeringen av tidiga datorsystem utfördes dock fortfarande, men det krävdes en stor mängd manuellt arbete för att förbereda ny dokumentation, återansluta och bygga om block och enheter etc.

    Tanken att lagra datorprogram i delat minne förändrade allt. När den startade ökade flexibiliteten kraftigt användningen av arkitekturer baserade på uppsättningar av körbara instruktioner och synen på beräkningsprocessen som processen för att utföra instruktioner skrivna i ett program. datorsystem när det gäller databehandling. Samma tillvägagångssätt för att titta på data och instruktioner gjorde det enkelt att modifiera själva programmen.

    Von Neumann principer

    Principen för minneshomogenitet Den grundläggande skillnaden mellan arkitekturen "von Neumann" (Princeton) från "Harvard". Instruktioner och data lagras i samma minne och kan inte särskiljas externt i minnet. De kan bara kännas igen på det sätt de används; det vill säga samma värde i en minnescell kan användas både som data, som ett kommando och som en adress, beroende bara på sättet att komma åt den. Detta låter dig utföra samma operationer på kommandon som på siffror, och öppnar följaktligen ett antal möjligheter. Så genom att cykliskt ändra adressdelen av kommandot kan du ge åtkomst till sekventiella element i datarrayen. Denna teknik kallas kommandomodifiering och uppmuntras inte utifrån modern programmering. Mer användbar är en annan konsekvens av principen om homogenitet, när instruktionerna för ett program kan erhållas som ett resultat av genomförandet av ett annat program. Denna förmåga är grunden för översättning - översättning av en programtext från ett högnivåspråk till språket i en specifik dator. Adresseringsprincip Strukturellt 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 indelade i informationsenheter, kallade ord och lagras i minnesceller, och numren på motsvarande celler - adresser - används för att komma åt dem. Principen för programmerad kontroll 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 viss operation från en uppsättning operationer som implementeras av en dator. Programinstruktioner lagras i sekventiella minnesceller på en dator och körs i en naturlig sekvens, det vill säga i ordningen för deras position i programmet. Vid behov kan denna sekvens ändras med hjälp av specialkommandon. Beslutet att ändra ordningsföljden för programkommandon fattas antingen på grundval av en analys av resultaten från tidigare beräkningar eller villkorslöst. Binär kodningsprincip Enligt denna princip är all information, både data och kommandon, kodad 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 skiljs vanligtvis ett teckenfält och ett signifikant bitfält. I det enklaste fallet kan två fält urskiljas i kommandoformatet: operationskodfältet och adressfältet.

    Datorer byggda på von Neumann -principer

    Enligt planen skulle den första datorn byggd enligt von Neumann -arkitekturen vara EDVAC (Electronic Discrete Variable Automatic Computer) - en av de första elektroniska datorerna. Till skillnad från sin föregångare, ENIAC, var det en dator på binär, inte decimal. Precis som ENIAC utvecklades EDVAC vid Moore Institute vid University of Pennsylvania för US Army Ballistic Research Laboratory av ett team av ingenjörer och forskare under ledning av John Presper Eckert och John William Mockley med aktiv hjälp av en matematiker], men fram till 1951 EDVAC lanserades inte på grund av tekniska svårigheter med att skapa tillförlitligt datorminne och oenigheter i utvecklingsteamet. Andra forskningsinstitut, som hade bekantat sig med ENIAC och EDVAC -projektet, kunde lösa dessa problem mycket tidigare. De första datorerna där huvuddragen i von Neumann -arkitekturen implementerades var:

    1. prototyp - Manchester Small Experimental Machine - University of Manchester, Storbritannien, 21 juni 1948;
    2. EDSAC - University of Cambridge, Storbritannien, 6 maj 1949;
    3. Manchester Mark I - University of Manchester, Storbritannien, 1949;
    4. BINAC - USA, april eller augusti 1949;
    5. CSIR Mk 1
    6. EDVAC - USA, augusti 1949 - faktiskt lanserades 1952;
    7. CSIRAC Australien, november 1949
    8. SEAC - USA, 9 maj 1950;
    9. ORDVAC - USA, november 1951;
    10. IAS Vehicle - USA, 10 juni 1952
    11. MANIAC I - USA, mars 1952;
    12. AVIDAC - USA, 28 januari 1953;
    13. ORACLE - USA, slutet av 1953;
    14. WEIZAC - Israel, 1955;
    15. SILLIAC - Australien, 4 juli 1956.

    I Sovjetunionen var den första helt elektroniska datorn nära von Neumanns principer MESM, byggt av Lebedev (på grundval av Kiev Institute of Electrical Engineering vid Academy of Sciences of the Ukrainian SSR), som godkände statliga godkännandeprov i december 1951.

    Flaskhalsen i von Neumann -arkitekturen

    Delning bussar för programminne och dataminne leder till en flaskhals i von Neumann -arkitekturen, nämligen begränsningen av bandbredden mellan processorn och minnet jämfört med mängden minne. Eftersom programminnet och dataminnet inte kan nås samtidigt, genomströmning processor-till-minneskanaler och minneshastighet begränsar processorns hastighet avsevärt-mycket mer än om program och data lagrades på olika platser. Eftersom processorhastigheten och minnet växte mycket snabbare än bandbredden mellan dem blev flaskhalsen stort problem vars svårighetsgrad ökar för varje ny generation processorer [ ] ; det här problemet löses genom att förbättra cachningssystem, och detta ger upphov till många nya problem [ Vad?] .

    Termen "flaskhals av von Neumann -arkitektur" myntades av John Backus 1977 i hans föreläsning "Kan programmering befrias från von Neumann -stil?"

    Forskare från USA och Italien 2015 tillkännagav skapandet av en prototyp av en meme -processor (engelsk memprocessor) med en annan arkitektur än von Neumann och möjligheten att använda den för att lösa fullständiga problem.

    se även

    Litteratur

    • Herman H. Goldstine. Datorn från Pascal till von Neumann. - Princeton University Press, 1980.- 365 s. - ISBN 9780691023670.(Engelsk)
    • William Aspray. John von Neumann och Origins of Modern Computing. - MIT Press, 1990.- 394 sid. - ISBN 0262011212.(Engelsk)
    • Scott McCartney. ENIAC: Triumferna och tragedierna i världens första dator. - Berkley Books, 2001. - 262 s. -
Dela detta