Von Neumanns principer för att konstruera en elektronisk dator. John von Neumanns principer

Denna typ av maskin kallas ofta för en "von Neumann-maskin", men överensstämmelsen mellan dessa begrepp är inte alltid tydlig. I allmänhet, när folk pratar om von Neumann-arkitektur, menar de principen att lagra data och instruktioner i ett minne.

Encyklopedisk YouTube

  • 1 / 5

    Grunderna i läran om arkitektur datorer von Neumann lade grunden 1944, när han blev involverad i skapandet av världens första rördator, ENIAC. När han arbetade på ENIAC vid University of Pennsylvania, under många diskussioner med hans kollegor John William Mauchly, John Eckert, Herman Goldstine och Arthur Burks, uppstod idén om en mer avancerad maskin som heter EDVAC. Forskningsarbete arbetet med EDVAC fortsatte parallellt med byggandet av ENIAC.

    I mars 1945 formaliserades principerna för logisk arkitektur i ett dokument som heter "First Draft Report on EDVAC" - en rapport för US Army Ballistic Laboratory, vars pengar användes för att bygga ENIAC och utveckla EDVAC. Rapporten, eftersom den bara var ett utkast, var inte avsedd för publicering, utan endast för distribution inom gruppen, men Herman Goldstein - projektledaren för den amerikanska armén - återgav detta vetenskapligt arbete och skickade den till en bred krets av forskare för granskning. Eftersom endast von Neumanns namn fanns på dokumentets första sida fick de som läste dokumentet det felaktiga intrycket att han var författaren till alla idéer som presenterades i verket. Dokumentet gav tillräckligt med information så att de som läste det kunde bygga sina egna datorer som liknar EDVAC på samma principer och med samma arkitektur, som som ett resultat blev känd som "von Neumann-arkitekturen."

    Efter slutet av andra världskriget och slutet av arbetet med ENIAC i februari 1946, bröt teamet av ingenjörer och vetenskapsmän upp, John Mauchly och John Eckert bestämde sig för att gå in i affärer och skapa datorer på kommersiell basis. Von Neumann, Goldstein och Burks flyttade till , där de bestämde sig för att skapa sin egen "IAS-maskin"-dator, liknande EDVAC, och använda den för forskningsarbete. I juni 1946 beskrev de sina principer för att konstruera datorer i den nu klassiska artikeln, "A Preliminary Consideration of the Logical Design of an Electronic Computing Device." Mer än ett halvt sekel har gått sedan dess, men bestämmelserna i den är fortfarande relevanta idag. Artikeln underbygger på ett övertygande sätt användningen av det binära systemet för att representera tal, men tidigare lagrade alla datorer bearbetade tal i decimalform. Författarna visade fördelarna med det binära systemet för teknisk implementering, bekvämligheten och lättheten 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.

    Förutom maskiner som arbetade med binär kod fanns och finns det 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 hastighet (additionsoperationer utförs ungefär en och en halv gånger snabbare), närvaron av binär och ternär logik, symmetrisk representation av tecken med heltal (i binär logik kommer det antingen att finnas två nollor (positiva och negativa), eller där kommer att vara ett tal som inte har något par med motsatt tecken). Nackdelarna är att implementeringen är mer komplex jämfört med binära maskiner.

    En annan revolutionerande idé, vars betydelse är svår att överskatta, är principen om ett "lagrat program". 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 vara mer än några minuter - lamporna som fanns där misslyckades enorm mängd. Programmet kan dock också lagras som en samling av nollor och ettor, och i samma minne som siffrorna det bearbetar. 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.

    Förekomsten av en given uppsättning körbara kommandon och program var en karakteristisk egenskap hos de första datorsystemen. Idag används en liknande design för att förenkla designen av en datorenhet. Således är skrivbordsräknare i princip enheter med en fast uppsättning program som kan köras. De kan användas för matematiska beräkningar, men är nästan omöjliga att använda för textbehandling och datorspel, för att titta på grafiska bilder eller videor. Att ändra firmware för denna typ av enhet kräver nästan fullständig omarbetning, och i de flesta fall är det omöjligt. Omprogrammering av tidiga datorsystem genomfördes dock fortfarande, men det krävdes ett enormt manuellt arbete för att förbereda ny dokumentation, återansluta och bygga om block och apparater m.m.

    Tanken på att lagra datorprogram i delat minne förändrade allt. Vid tiden för dess introduktion hade användningen av arkitekturer baserade på körbara instruktionsuppsättningar och representationen av beräkningsprocessen som processen att exekvera instruktioner skrivna i ett program ökat flexibiliteten hos datorsystem enormt när det gäller databehandling. Samma synsätt på data och instruktioner gjorde det enkelt att byta själva programmen.

    Von Neumanns principer

    Principen om minneshomogenitet Den grundläggande skillnaden mellan "von Neumann" (Princeton)-arkitekturen och "Harvard". Kommandon och data lagras i samma minne och är externt omöjliga att särskilja 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, endast 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 modifiering av kommandon och ur synvinkel modern programmering inte välkomna. 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.

    Principen för adressering 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 uppdelade i informationsenheter som kallas ord och lagras i minnesceller, och för att komma åt dem används numren på motsvarande celler - adresser.

    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 binär snarare än decimalbaserad dator. Liksom ENIAC utvecklades EDVAC vid Moore Institute vid University of Pennsylvania för US Army's Ballistic Research Laboratory av ett team av ingenjörer och vetenskapsmän ledda av John Presper Eckert och John William Mauchly, 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 oenighet inom utvecklingsteamet. Andra forskningsinstitut, som har blivit bekanta med ENIAC och EDVAC-projektet, kunde lösa dessa problem mycket tidigare. De första datorerna som implementerade huvuddragen i von Neumann-arkitekturen var:

    1. prototyp - Manchester Small Experimental Machine - Manchester University, Storbritannien, 21 juni 1948;
    2. EDSAC - University of Cambridge, Storbritannien, 6 maj 1949;
    3. Manchester Mark I - Manchester University, Storbritannien, 1949;
    4. BINAC - USA, april eller augusti 1949;
    5. CSIR Mk 1
    6. EDVAC - USA, augusti 1949 - lanserades faktiskt 1952;
    7. CSIRAC - Australien, november 1949;
    8. SEAC - USA, 9 maj 1950;
    9. ORDVAC - USA, november 1951;
    10. IAS-maskin - USA, 10 juni 1952;
    11. MANIAC I - USA, mars 1952;
    12. AVIDAC - USA, 28 januari 1953;
    13. ORACLE - USA, sent 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, byggd av Lebedev (på grundval av Kyiv Institute of Electrical Engineering vid Akademien för vetenskaper i den ukrainska SSR), som klarade statliga acceptanstest i december 1951 .

    Flaskhalsen för von Neumann-arkitekturen

    Att dela bussen för programminne och dataminne leder till en flaskhals i von Neumann-arkitekturen, nämligen begränsningen av bandbredd mellan processor och minne jämfört med mängden minne. På grund av att programminnet och dataminnet inte kan nås samtidigt, genomströmning Processor-minneskanalen och minneshastigheten begränsar processorns hastighet avsevärt – mycket mer än om program och data lagrades på olika platser. Eftersom processorhastighet och minne ökade mycket snabbare än bandbredden mellan dem blev flaskhalsen stort problem, vars svårighetsgrad ökar för varje ny generation av processorer [ ] ; detta problem löses genom att förbättra cachningssystem, och detta ger upphov till många nya problem [ vilka?] .

    Termen "von Neumann-arkitekturflaskhals" myntades av John Backus 1977 i hans Turing Award-föreläsning "Kan programmering befrias från Von Neumann-stilen?"

    Forskare från USA och Italien tillkännagav 2015 skapandet av en prototyp mem-processor (engelska memprocessor) med en arkitektur som skiljer sig frå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 sid. - ISBN 9780691023670.(engelska)
    • William Aspray. John von Neumann och Ursprunget of Modern Computing. - MIT Press, 1990. - 394 sid. - ISBN 0262011212.(engelska)
    • Scott McCartney. ENIAC: The Triumphs and Tragedies of the World's First Computer - Berkley Books, 2001. - 262 sid.

    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.

    Programkontrollprincip: ett program består av en uppsättning kommandon som exekveras av en processor i en viss sekvens.

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

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

    Datorer som bygger på ovanstående principer är av typen von Neumann.

    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. 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, men de fungerar på miljontals datorer att installera program kräver ingen betydande tidsinvestering.

    Förutom ovanstående tre principer föreslog von Neumann principen om binär kodning - används för att representera data och kommandon binärt system talsystem (de första maskinerna använde decimaltalsystemet). Men efterföljande utveckling visade möjligheten att använda icke-traditionella nummersystem.

    I början av 1956, på initiativ av akademiker S.L. Sobolev, chef för avdelningen för beräkningsmatematik vid fakulteten för mekanik och matematik vid Moskvas universitet, en elektronikavdelning etablerades vid Moscow State Universitys datorcenter och ett seminarium började arbeta med målet att skapa ett praktiskt exempel på en digital dator avsedd för användning på universitet, såväl som i laboratorier och designbyråer i industriföretag. Det var nödvändigt att utveckla en liten dator som skulle vara lätt att lära sig och använda, pålitlig, billig och samtidigt effektiv i en mängd olika uppgifter. En detaljerad studie under loppet av ett år av de datorer som var tillgängliga vid den tiden och tekniska förmågor Deras implementering ledde till ett icke-standardiserat beslut att i den skapade maskinen inte använda en binär utan en ternär symmetrisk kod, som implementerade ett balanserat talsystem, som D. Knuth tjugo år senare skulle kalla det kanske mest eleganta och som det blev senare känd, vars fördelar identifierades av K. Shannon 1950 Till skillnad från den binära koden med siffrorna 0, 1, som är allmänt accepterad i moderna datorer, som är aritmetiskt underlägsen på grund av omöjligheten att direkt representera negativa tal i den, ger den ternära koden med talen -1, 0, 1 den optimala konstruktion av aritmetiken för tecken med tal. Det ternära talsystemet är baserat på samma positionsprincip för kodning av tal som det binära systemet som används i moderna datorer, men vikten i Den:e positionen (siffran) i den är inte lika med 2 i, utan 3 i. Dessutom är siffrorna i sig inte tvåsiffriga (inte bitar), utan tresiffriga (trites) - förutom 0 och 1 tillåter de ett tredje värde, som i ett symmetriskt system är -1, på grund av vilket båda positiva och negativa tal kan representeras enhetligt. Värdet på ett n-trit heltal N bestäms på samma sätt som värdet på ett n-bitars heltal:

    där a i ∈ (1, 0, -1) är värdet på den i:te siffran.

    I april 1960 genomfördes interdepartementella tester av en prototypdator kallad "Setun" Baserat på resultaten av dessa tester erkändes "Setun" som den första fungerande modellen av en universell dator baserad på lamplösa element, som kännetecknas av ". hög prestanda, tillräcklig tillförlitlighet, små dimensioner och lätt underhåll.” "Setun", tack vare den ternära symmetriska kodens naturlighet, visade sig vara ett verkligt universellt, lätt programmerbart och mycket effektivt datorverktyg, som har visat sig positivt, i synnerhet som ett tekniskt sätt att undervisa i beräkningsmatematik vid mer än trettio universitet. Och på Air Force Engineering Academy. Zhukovsky implementerades först på "Setun" automatiserat system datorutbildning.

    Enligt von Neumanns principer består en dator av:

    · aritmetisk logisk enhet - ALU(eng. ALU, Arithmetic and Logic Unit), som utför aritmetiska och logiska operationer; kontrollenhet -UU, utformad för att organisera exekveringen av program;

    · lagringsenheter (lagring), inkl. random access memory (RAM - primärt minne) och extern lagringsenhet (ESD); i ca huvudminnet data och program lagras; en minnesmodul består av många numrerade celler varje cell kan innehålla ett binärt tal som tolkas antingen som ett kommando eller som data;

    · in-/utgångsenheter, som tjänar till att överföra data mellan datorn och den externa miljön, bestående av olika kringutrustning, som inkluderar sekundärt minne, kommunikationsutrustning och terminaler.

    Ger interaktion mellan processorn (ALU och styrenhet), huvudminne och in-/utgångsenheter med systembuss .

    Von Neumann datorarkitektur anses vara klassisk; de flesta datorer är byggda på den. I allmänhet, när de talar om von Neumann-arkitektur, menar de den fysiska separationen av processormodulen från programmet och datalagringsenheter. Idén att lagra datorprogram i delat minne gjorde det möjligt att förvandla datorer till universella enheter som kan utföra ett brett spektrum av uppgifter. 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.

    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.

    2.2 Kommando, kommandoformat

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

    Lagstruktur.

    Antalet bitar som allokeras för att skriva ett kommando beror på hårdvaran specifik modell dator. I detta avseende kommer vi att överväga strukturen för ett specifikt team 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 för placering av det resulterande resultatet.

    För varje given maskin måste antalet binära bitar som allokeras i instruktionen för var och en av dess adresser och för op-koden anges, såväl som själva op-koderna. Antalet bitar i en instruktion som allokeras när en maskin konstrueras för var och en av dess adresser bestämmer den övre gränsen för antalet maskinminnesceller som har separata adresser: om adressen i en instruktion representeras av n bitar, då snabbåtkomstminnet kan inte innehålla mer än 2 n celler.

    Kommandon exekveras sekventiellt, med början från startadressen (ingångspunkten) för det körbara programmet, adressen för varje efterföljande kommando är ett större än adressen för det föregående kommandot, om det inte var ett hoppkommando.

    I moderna maskiner är instruktionernas längd variabel (vanligtvis från två till fyra byte), och sätten att specificera variabla adresser är mycket olika.

    Adressdelen av kommandot kan till exempel innehålla:

    Operand;

    Operand adress;

    Operandadress (det bytenummer från vilket operandadressen finns) etc.

    Låt oss titta på strukturen möjliga alternativ flera typer av kommandon.

    Tre-adress kommandon.

    Två-adress kommandon.

    Unicast-kommandon.

    Oadresserade kommandon.

    Betrakta den binära additionsoperationen: c = a + b.

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

    Låt 53 vara additionskoden.

    I det här fallet ser kommandostrukturen med tre adresser ut så här:

    · Tre-adress kommandon.

    Kommandokörningsprocessen är uppdelad i följande steg:

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

    Det valda kommandot sänds till styranordningen till kommandoregistret;

    Styranordningen dekrypterar adressfältet för kommandot;

    Baserat på signaler från styrenheten läses operandernas värden från minnet och skrivs till ALU i speciella operandregister;

    Styrenheten dekrypterar operationskoden och avger en signal till ALU:n att utföra motsvarande operation på datan;

    Resultatet av operationen i detta fall skickas till minnet (i uniadress- och tvåadressdatorer förblir det i processorn);

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

    2.3 Dator som automat

    "Elektroniska digitala maskiner med programstyrning är ett exempel på en av de för närvarande vanligaste typerna av diskreta informationsomvandlare, kallade diskreta eller digitala automater" (Glushkov V.M. Synthesis of digital automata)

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

    I de föregående styckena övervägdes blockschemat för en dator. Baserat på datorns blockschema och maskinens kretsschema kan vi jämföra maskinkretsens block och elementen i datorblockschemat.

    Följande ingår i maskinen som exekutiva element:

    Aritmetisk-logisk enhet:

    · minne;

    · informationsinmatnings-/utmatningsenheter.

    Maskinens kontrollelement är kontrollanordningen, som faktiskt tillhandahåller automatiskt läge arbete. Som redan nämnts, i modern datorenheter Det huvudsakliga exekutiva elementet är en processor eller mikroprocessor, som innehåller en ALU, minne och styrenhet.

    Maskinens hjälpanordningar kan vara alla typer av ytterligare medel som förbättrar eller utökar maskinens kapacitet.

    På vardagsnivå förknippar de flesta starkt termen "arkitektur" med olika byggnader och andra tekniska strukturer. Så vi kan prata om arkitekturen i en gotisk katedral, Eiffeltornet eller ett operahus. På andra områden används denna term ganska sällan, men för datorer har begreppet "datorarkitektur" (elektronisk dator) redan etablerats ordentligt och har använts i stor utsträckning sedan 70-talet av förra seklet. För att förstå hur program och skript körs på en dator måste du först veta hur var och en av dess komponenter fungerar. Grunden till läran om datorarkitektur, som diskuteras i lektionen, lades av John von Neumann. Du kan lära dig mer om logiska noder, såväl som den ryggradsmodulära principen för arkitekturen hos moderna persondatorer i den här lektionen.

    Principerna bakom datorarkitekturen formulerades 1945 av John von Neumann, som utvecklade idéerna från Charles Babbage, som representerade driften av en dator som driften av en uppsättning enheter: bearbetning, kontroll, minne, input-output.

    Von Neumanns principer.

    1. Principen om minneshomogenitet. Du kan utföra samma åtgärder på kommandon som på data.

    2. Principen för minnesadresserbarhet. Huvudminnet är strukturellt sammansatt av numrerade celler; Vilken cell som helst är tillgänglig för processorn när som helst. Detta innebär möjligheten att namnge minnesområden så att de värden som lagras i dem senare kan nås eller ändras under programkörning med de tilldelade namnen.

    3. Principen för sekventiell programkontroll. Det förutsätter att ett program består av en uppsättning kommandon som exekveras av processorn automatiskt efter varandra i en viss sekvens.

    4. Principen om arkitektonisk styvhet. Oföränderlighet av topologi, arkitektur och lista över kommandon under drift.

    Datorer byggda efter von Neumanns principer har en klassisk arkitektur, men utöver den finns det andra typer av arkitektur. Till exempel Harvard. Dess särdrag är:

    • instruktionsbutik och datalager är olika fysiska enheter;
    • Instruktionskanalen och datakanalen är också fysiskt åtskilda.

    I utvecklingshistorien datorteknik ett kvalitativt språng inträffade ungefär vart tionde år. Detta språng är förknippat med tillkomsten av en ny generation datorer. Idén om att dela maskiner dök upp på grund av det faktum att datortekniken under den korta utvecklingshistorien har genomgått en stor utveckling både i den meningen elementbas(lampor, transistorer, mikrokretsar, etc.), och i betydelsen att ändra dess struktur, uppkomsten av nya möjligheter, utöka tillämpningsområdet och användningens karaktär. Mer information stadier av datorutveckling visas i fig. 2. För att förstå hur och varför en generation ersattes av en annan, är det nödvändigt att känna till innebörden av sådana begrepp som minne, hastighet, grad av integration, etc.

    Ris. 2. Datorgenerationer ()

    Bland datorer som inte är klassiska, inte von Neumann-arkitektur, kan vi urskilja de så kallade neurodatorerna. De simulerar arbetet hos mänskliga hjärnceller, neuroner, såväl som vissa delar av nervsystemet som kan utbyta signaler.

    Varje logisk nod på datorn utför sina egna funktioner. Funktioner processor(Fig. 3):

    - databehandling (utför aritmetiska och logiska operationer på dem);

    - kontroll av alla andra datorenheter.

    Ris. 3. Datorcentralenhet ()

    Programmet består av separata kommandon. Kommandot inkluderar en operationskod, adresserna till operanderna (kvantiteterna som är involverade i operationen) och adressen till resultatet.

    Utförandet av kommandot är uppdelat i följande steg:

    · lagval;

    • generering av adressen för nästa kommando;
    • kommandoavkodning;
    • beräkning av operandadresser;
    • operandval;
    • utförande av operationen;
    • bildandet av ett resultattecken;
    • registrerar resultatet.

    Inte alla steg är närvarande vid exekvering av någon instruktion (beroende på typen av instruktion), men stegen med hämtning, avkodning, generering av adressen till nästa instruktion och exekvering av operationen äger alltid rum. I vissa situationer är ytterligare två steg möjliga:

    • indirekt adressering;
    • svar på avbrott.

    RAM(Fig. 4) är anordnad enligt följande:

    • ta emot information från andra enheter;
    • komma ihåg information;
    • överföring av information på begäran till andra datorenheter.

    Ris. 4. RAM (Random Access Memory) på datorn ()

    Arkitekturen för moderna datorer är baserad på ryggradsmodulär princip(Fig. 5). Den modulära principen låter dig slutföra önskad konfiguration och göra nödvändiga uppgraderingar. Den bygger på busprincipen för informationsutbyte mellan moduler. Systembussen eller datorbussen innehåller flera bussar för olika ändamål. Stamnätet innehåller tre multi-bit bussar:

    • databuss;
    • adressbuss;
    • styrbuss.

    Ris. 5. Grundläggande modulär princip för PC-konstruktion

    Databussen används för att överföra olika data mellan datorenheter; adressbussen används för att adressera de överförda data, det vill säga för att bestämma dess plats i minnet eller i inmatnings-/utmatningsanordningar; Styrbussen inkluderar styrsignaler som tjänar till att temporärt koordinera driften olika enheter dator, för att bestämma riktningen för dataöverföring, för att bestämma formaten för överförda data, etc.

    Denna princip är giltig för olika datorer, som kan delas in i tre grupper:

    • stationär;
    • kompakt (bärbara datorer, netbooks, etc.);
    • ficka (smarttelefoner etc.).

    I systemenhet stationär dator eller kompakt fodral innehåller huvuddelen logiska noder- Det här moderkort med processor, strömförsörjning, lagringsenheter externt minne etc.

    Referenser

    1. Bosova L.L. Datavetenskap och IKT: Lärobok för årskurs 8. - M.: BINOM. Kunskapslaboratoriet, 2012.

    2. Bosova L.L. Datavetenskap: Arbetsbok för årskurs 8. - M.: BINOM. Kunskapslaboratoriet, 2010.

    3. Astafieva N.E., Rakitina E.A., Datavetenskap i scheman. - M.: BINOM. Kunskapslaboratoriet, 2010.

    4. Tannenbaum E. Datorarkitektur. - 5:e uppl. - St Petersburg: Peter, 2007. - 844 sid.

    1. Internetportal "Alla tips" ()

    2. Internetportal "Elektronisk uppslagsverk "Dator"" ()

    3. Internetportal "apparatnoe.narod.ru" ()

    Läxa

    1. Kapitel 2, §2.1, 2.2. Bosova L.L. Datavetenskap och IKT: Lärobok för årskurs 8. - M.: BINOM. Kunskapslaboratoriet, 2012.

    2. Vad står förkortningen COMPUTER för?

    3. Vad betyder termen "datorarkitektur"?

    4. Vem formulerade de grundläggande principerna bakom datorarkitekturen?

    5. Vad bygger moderna datorers arkitektur på?

    6. Namnge huvudfunktionerna för den centrala processorn och RAM-minnet på en PC.

    DATORORGANISATION

    Föreläsningsanteckningar

    Tjeljabinsk

    JOHN VON NEUMANNS PRINCIPER. DATORGENERATIONER

    John von Neumanns principer

    De allra flesta datorer är baserade på följande: allmänna principer, formulerad 1945 av den amerikanske vetenskapsmannen med ungerskt ursprung JOHN von NEUMANN.

    1) Principen för binär kodning.

    Enligt denna princip kodas all information som kommer in i datorn med hjälp av binära signaler.

    2) Programstyrningsprincip.

    Ett program består av en uppsättning kommandon som exekveras av processorn automatiskt efter varandra i en viss sekvens.

    3) Principen om minneshomogenitet.

    Program och data lagras i samma minne. Därför urskiljer inte datorn vad som finns lagrat i en given minnescell - ett nummer, text eller kommando. Du kan utföra samma åtgärder på kommandon som på data.

    4) Principen för inriktning.

    Strukturellt sett består huvudminnet av numrerade celler, och vilken cell som helst är tillgänglig för processorn när som helst.

    Detta innebär möjligheten att namnge minnesområden så att de värden som lagras i dem senare kan nås eller ändras under programkörning med de tilldelade namnen.

    Enligt von Neumann består en dator av följande huvudblock:

    – Inmatnings-/utmatningsanordningar för information.

    – datorminne;

    – en processor som består av en styrenhet (CU) och en aritmetisk-logisk enhet (ALU).

    Maskiner byggda på dessa principer kallas VON NEUMANN-maskiner.

    Således kan en dator ses som en processor, ett minnessystem på flera nivåer, ett system med extern och intern kommunikation och kringutrustning.

    Minnesfunktioner inkluderar:

    – ta emot information från andra enheter;

    – komma ihåg information;

    – tillhandahållande av information på begäran till andra enheter i maskinen.

    Processorfunktioner:

    – databehandling av givet program genom att utföra aritmetiska och logiska operationer;

    – Programvarukontroll av driften av datorenheter.

    Den del av processorn som exekverar instruktioner kallas en aritmetisk logisk enhet (ALU), och den andra delen som utför enhetskontrollfunktioner kallas en kontrollenhet (CU). Vanligtvis särskiljs dessa två enheter villkorligt, de är inte strukturellt åtskilda.

    Processorn innehåller ett antal specialiserade extra minnesceller som kallas register.

    Registret utför funktionen av korttidslagring av ett nummer eller kommando. Särskilda elektroniska kretsar kan utföra vissa manipulationer på innehållet i vissa register. Till exempel att klippa ut enskilda delar av ett kommando för senare användning eller utföra vissa aritmetiska operationer på tal.

    Huvudelementet i ett register är en elektronisk krets som kallas en flip-flop, som kan lagra en binär siffra (bit).

    Ett register är en samling triggers kopplade till varandra på ett visst sätt gemensamt system förvaltning.

    Det finns flera typer av register (Fig. 1.1), som skiljer sig åt i typen av utförda operationer:.

    – adderare – ett ALU-register som deltar i utförandet av varje operation.

    – kommandoräknare – register CU, vars innehåll motsvarar adressen för nästa utförda kommando; tjänar till automatiskt val av ett program från successiva minnesceller;

    – kommandoregister – ett kontrollregister för att lagra kommandokoden under den tid som krävs för dess utförande. Vissa av dess bitar används för att lagra operationskoden, resten används för att lagra operandadresskoder.

    Figur 1.1

    Processorregistergränssnittsdiagram

    ARKITEKTUR AV TEKNISK UTRUSTNING

    Låt oss överväga den fysiska organisationen av en IBM-persondator, dess kringutrustning och principerna för gränssnitt mellan enskilda komponenter.

    Mikroprocessor

    Det är den centrala noden på en persondator. Processorn har förmågan att utföra instruktioner som utgör datorprogram. Persondatorer är uppbyggda kring mikroprocessorer som för närvarande körs på en enda kristall eller "chip".

    Mikroprocessorn som används i IBM/PC:n designades och skapades av Intel. Den grundläggande skillnaden mellan IBM/PC och tidigare generationers persondatorer är användningen av en 16-bitars mikroprocessor. Före tillkomsten av IBM/PC, den mest populära persondatorer byggdes på basis av 8-bitars mikroprocessorer.

    Skillnaderna mellan 8-bitars och 16-bitars mikroprocessorer är att 8-bitars processorer kan hantera 8-bitars data, medan 16-bitars processorer kan hantera 16-bitars data. Den största fördelen med 16-bitars processorer jämfört med 8-bitars processorer är en betydande ökning av deras hastighet, kraft och bekvämlighet för deras instruktionsuppsättning. Dessutom ökar mängden adresserbart minne avsevärt. De flesta 8-bitars processorer kan bara använda 64K minne, vilket kraftigt minskar kapaciteten effektiv användning persondatorer. 8088- och 8086-processorerna som används i IBM/PC tillåter 1024K-adressering.

    Funktionellt syfte

    Systemtidssignaler tillhandahålls av 8284A-oscillatorn. Dessa signaler används av alla delar av datorn och ställer in varaktigheten för operationerna. Till klockgeneratorn hör en 8255A-5 timer, som används för att stödja bandstationsgränssnittet och den inbyggda högtalaren.

    Ett datorsystems funktion bygger på användningen av avbrott. För att organisera driften av avbrottssystemet används 8259A-chippet. När data överförs inom ett datorsystem passerar det genom en gemensam kanal som alla komponenter i systemet kan komma åt. Denna väg fick namnet databussar.

    Busskonceptet representerar en av de mest avancerade metoderna för enande inom datordesign. Istället för att försöka ansluta alla delar av ett datorsystem med speciella anslutningar, begränsade datordesigners överföringen av data till en gemensam buss. Data skickas längs bussen åtföljd av speciella signaler som indikerar dess syfte. Denna idé förenklade avsevärt designen av datorer och ökade avsevärt dess flexibilitet. För att lägga till en ny komponent behöver du inte göra många olika anslutningar, bara koppla den till bussen. För att effektivisera överföringen av information över bussen används en bussstyrenhet.

    X-terminaler

    X-terminalerär en kombination av disklösa arbetsstationer och standardterminaler. Disklösa arbetsstationer användes ofta som dyra skärmar och utnyttjade i detta fall inte den lokala processorkraften fullt ut. På senare tid, när mycket kraftfulla grafiska arbetsstationer blev tillgängliga, har det funnits en trend mot "slav" X-terminaler som använder arbetsstation som en lokal server.

    Vanligtvis kostar X-terminaler ungefär hälften av kostnaden för en jämförbar disklös maskin och ungefär en fjärdedel av kostnaden för en fullt utrustad arbetsstation.

    En typisk X-terminal (Fig. 3.1) innehåller följande element:

    – högupplöst skärm – vanligtvis i storlek från 14 till 21 tum diagonalt;

    – mikroprocessor baserad på Motorola 68xxx eller RISC-processor som Intel i960, MIPS R3000 eller AMD29000;

    – En separat grafiksamprocessor utöver huvudprocessorn, som stöder en dubbelprocessorarkitektur som ger snabbare skärmritning och rullning;

    – grundläggande systemprogram, där X-Windows-systemet körs och körs nätverksprotokoll;

    – X11-servermjukvara.

    – variabel mängd lokalt minne (från 2 till 8 MB) för skärmen, nätverksgränssnitt som stöder nätverksdataöverföringsprotokoll.

    – portar för anslutning av tangentbord och mus.

    Figur 3.1

    X-terminal driftschema

    X-terminaler skiljer sig från datorer och arbetsstationer inte bara genom att de inte utför de vanliga lokala bearbetningsfunktionerna. Driften av X-terminaler beror på vilket värdsystem de är anslutna till via ett nätverk. För att X-terminalen ska fungera måste användarna installera X11-serverprogramvaran för flera fönster på huvudprocessorn som kör applikationen (den mest kända versionen är X11 Release 5).

    Minsta minnesmängd som krävs för X-terminaldrift är 1 MB. Beroende på produktens funktionalitet kan RAM-minnet utökas till 32 MB eller mer.

    Utrustad standardsystem X-Windows, X-terminal kan visa flera applikationer på samma skärm samtidigt. Varje applikation kan köras i sitt eget fönster, och användaren kan ändra storlek på, placera och manipulera fönster var som helst på skärmen.

    Servrar

    Fleranvändarsystem för tillämpningar använder klient-server-teknik och distribuerad databehandling. I fallet "klient-server" utförs en del av arbetet av servern och en del av användarens dator (i allmänhet kan klient- och användardelarna arbeta på samma dator). Det finns flera typer av servrar, inriktade på olika applikationer: filserver, databasserver, skrivarserver, datorserver, applikationsserver. Således bestäms typen av server av typen av resurs den äger ( filsystem, databas, skrivare, processorer eller applikationspaket program).

    Å andra sidan finns det en klassificering av servrar, som bestäms av skalan på nätverket där de används: server arbetsgrupp, avdelningsserver eller server i företagsskala (företagsserver). Denna klassificering är mycket villkorad. Till exempel kan gruppstorleken variera från ett fåtal personer till flera hundra personer, och avdelningsservern kan betjäna från 20 till 150 användare. Uppenbarligen, beroende på antalet användare och arten av de uppgifter de löser, kraven på utrustningens sammansättning och programvara servrar varierar deras tillförlitlighet och prestanda kraftigt.

    Filservrar för små arbetsgrupper (högst 20-30 personer) implementeras enklast på persondatorplattformen och Novell NetWare-programvara. Filservern, i detta fall, fungerar som en central datalagring. Applikationsservrar och högpresterande maskiner för en klient-servermiljö har avsevärt olika hård- och mjukvarukrav.

    Processorhastighet för I/O-intensiva servrar är inte kritisk. De måste vara tillräckligt utrustade kraftfulla block strömförsörjning för möjligheten att installera ytterligare expansionskort och diskenheter. Det är tillrådligt att använda en avbrottsfri strömförsörjningsenhet. RAM är vanligtvis minst 128 MB, vilket gör att operativsystemet kan använda stora diskcacher och öka serverns prestanda. Om det finns ett nätverkssegment och 10-20 arbetsstationer begränsas serverns maximala genomströmning av den maximala nätverksgenomströmningen. I det här fallet byter processorer eller diskundersystem mer kraftfulla ökar inte prestandan, eftersom flaskhalsen är själva nätverket. Därför är det viktigt att använda bra lön nätverksgränssnitt.

    Moderna servrar kännetecknas av:

    – Närvaron av två eller flera centrala processorer.

    – flernivåbussarkitektur, där en höghastighetssystembuss ansluter flera processorer och RAM, såväl som många standard I/O-bussar placerade i samma hölje;

    – tekniskt stöd diskarrayer RÄD;

    – stöd för symmetriskt multiprocessorläge, som låter dig fördela uppgifter över flera centrala processorer, eller asymmetriskt multiprocessorläge, som låter dig allokera processorer för att utföra specifika uppgifter.

    Stordatorer

    Stordatorer– förblir de mest kraftfulla datorsystemen till denna dag allmänt syfte, vilket ger kontinuerlig drift dygnet runt. Arkitektoniskt är stordatorer multiprocessorsystem som innehåller en eller flera centrala och perifera processorer med delat minne, sammankopplade med höghastighetsdataöverföringsvägar. I det här fallet faller den huvudsakliga datorbelastningen på de centrala processorerna, och de perifera ger arbete med många kringutrustningar.

    Den största nackdelen med stordatorer är fortfarande det relativt låga förhållandet mellan prestanda och kostnad.

    Klusterarkitekturer

    Två stora utmaningar i att bygga datorsystem för verksamhetskritiska applikationer som involverar transaktionsbearbetning, databashantering och telekommunikationstjänster är att säkerställa hög prestanda och långsiktig systemdrift. Det mest effektiva sättet att uppnå en given prestandanivå är att använda parallella, skalbara arkitekturer. Utmaningen med att säkerställa långsiktig systemdrift har tre komponenter: tillförlitlighet, tillgänglighet och servicevänlighet. Alla dessa tre komponenter involverar först och främst kampen mot systemfel som orsakas av fel och funktionsfel i dess drift. Denna kamp förs inom alla tre områden, som är sammanlänkade och tillämpas gemensamt.

    Att förbättra tillförlitligheten bygger på principen att förebygga fel genom att minska antalet fel och fel genom att använda elektroniska kretsar och komponenter med en hög och ultrahög grad av integration, vilket minskar nivån av störningar, lätta driftslägen för kretsar, säkerställer termiska förhållanden för deras drift, såväl som genom att förbättra metoderna för montering av utrustning. Att öka beredskapsnivån innebär att, inom vissa gränser, undertrycka effekten av fel och funktionsfel på driften av systemet med hjälp av felkontroll- och korrigeringsverktyg, såväl som medel för att automatiskt återställa beräkningsprocessen efter att ett fel uppstår, inklusive hårdvara och mjukvara redundans, på basis av vilken olika alternativ för feltoleranta arkitekturer implementeras. Att öka tillgängligheten är ett sätt att minska systemets stilleståndstid. Systemets huvudsakliga operativa egenskaper beror avsevärt på hur lätt det är att underhålla, i synnerhet på underhållsbarhet, testbarhet etc.

    Det finns flera typer av högtillgänglighetssystem som skiljer sig åt i sina funktionalitet och kostnad. Kostnaden för system med hög tillgänglighet är mycket högre än kostnaden för konventionella system. Det är förmodligen därför klustersystem är mest utbredda i världen, på grund av att de ger en ganska hög nivå av systemtillgänglighet till relativt låga kostnader.

    Klustringär implementeringen av en sammanslagning av maskiner som visas som en helhet för operativsystemet, systemprogramvaran, applikationsprogram och användare.

    Maskiner klustrade tillsammans på detta sätt kan, om en processor misslyckas, mycket snabbt omfördela arbete till andra processorer inom klustret. Detta är den viktigaste uppgiften för många systemleverantörer med hög tillgänglighet.

    Datorer i ett kluster kan dela åtkomst till vanliga band- och diskenheter. Alla datorer i klustret kan komma åt enskilda datafiler som om de vore lokala.

    Om en av datorerna misslyckas kan användarnas jobb automatiskt överföras till en annan dator i klustret. Om det finns flera regulatorer i systemet externa enheter och en av dem misslyckas, andra kontroller tar automatiskt upp dess arbete (hög tillgänglighet).

    Hög genomströmning. Ett antal applikationssystem kan dra fördel av möjligheten att köra jobb parallellt på flera datorer i ett kluster.

    Enkelt systemunderhåll. Delade databaser kan betjänas från en enda plats. Applikationsprogram kan bara installeras en gång på delade klusterdiskar och delas mellan alla datorer i klustret.

    Sträckbarhet. En ökning av klustrets beräkningskraft uppnås genom att ansluta till det ytterligare datorer. Ytterligare magnetskivor och magnetbandenheter blir tillgängliga för alla datorer i klustret.

    Driften av vilket klustersystem som helst bestäms av två huvudkomponenter: en höghastighetsmekanism för att kommunicera processorer med varandra och systemprogramvara, som ger kunderna transparent åtkomst till systemtjänster. För närvarande har parallell databasteknik också blivit utbredd. Denna teknik tillåter flera processorer att dela åtkomst till en enda databas. Genom att distribuera jobb över flera processorresurser och köra dem parallellt kan du uppnå högre nivåer av transaktionsgenomströmning, stödja fler samtidiga användare och påskynda komplexa frågor. Det finns tre olika typer av arkitektur som stöder parallella databaser.

    1) Symmetrisk multiprocessorarkitektur med delat minne(Delat minne SMP-arkitektur). Denna arkitektur (Fig. 3.3.) stöder en enda databas som körs på en multiprocessorserver som kör ett enda operativsystem. En ökning av prestandan hos sådana system säkerställs genom att öka antalet processorer, RAM och externa minnesenheter.

    Figur 3.3.

    Symmetrisk multiprocessorarkitektur med delat minne

    2) Arkitektur med delade (delade) diskar. Den här arkitekturen stöder en enda databas över flera datorer i ett kluster (vanligtvis kallade klusternoder), var och en kör sin egen kopia av operativsystemet. I sådana system delar alla noder åtkomst till gemensamma diskar, på vilka en enda databas faktiskt finns. Prestandan hos sådana system kan ökas både genom att öka antalet processorer och mängden RAM i varje klusternod, och genom att öka antalet noder i sig.

    3) Arkitektur utan resursdelning. Liksom arkitekturen med delad disk upprätthåller den här arkitekturen en enda databasbild över flera datorer som kör sina egna kopior av operativsystemet. Men i den här arkitekturen har varje systemnod sitt eget RAM och sina egna diskar, som inte delas mellan individuella systemnoder. I praktiken är i sådana system endast den gemensamma kommunikationskanalen mellan systemnoderna delad. Prestandan hos sådana system kan ökas genom att lägga till processorer, mängder RAM och externt (disk)minne i varje nod, samt genom att öka antalet sådana noder.

    Miljön för att köra en parallell databas har alltså två viktiga egenskaper: hög tillgänglighet och hög prestanda. När det gäller en klusterorganisation arbetar flera datorer eller klusternoder med en enda databas. Om en av dessa noder misslyckas kan de återstående noderna ta över jobb som körs på den misslyckade noden utan att stoppa den övergripande databasprocessen. Eftersom logiskt sett har varje nod i systemet en databasbild, kommer åtkomsten till databasen att fortsätta så länge som det finns minst en frisk nod i systemet. Systemprestandan är lätt skalbar, d.v.s. lägga till ytterligare processorer, mängder RAM och diskminne och nya noder i systemet kan göras när som helst när det verkligen behövs.

    Parallella databaser används i stor utsträckning i on-line transaktionsbearbetningssystem, beslutsstödssystem och används ofta när man arbetar med verksamhetskritiska applikationer för företag och organisationer som arbetar 24 timmar om dygnet.

    AVBRYT SYSTEM

    Allmän information

    Avbrytaär en process som initieras på ett visst sätt som tillfälligt växlar mikroprocessorn till att köra ett annat program och sedan återupptar exekveringen av det avbrutna programmet.

    Avbrottsmekanismen möjliggör den mest effektiva kontrollen av inte bara externa enheter utan även program. Vissa operativsystem använder avbrottsmekanismen inte bara för att serva externa enheter utan också för att tillhandahålla sina egna tjänster. Således interagerar det välkända och fortfarande allmänt använda operativsystemet MS-DOS med system- och applikationsprogram främst genom avbrottssystemet.

    Avbrott kan vara extern Och inre.

    Externa avbrott orsakas av händelser utanför mikroprocessorn. De genererar signaler utanför mikroprocessorn, som meddelar mikroprocessorn att någon extern enhet ber om uppmärksamhet.

    Interna avbrott uppstår inuti mikroprocessorn under beräkningsprocessen. En av två anledningar leder till deras spänning:

    – ett onormalt internt tillstånd hos mikroprocessorn som uppstod under bearbetningen av ett visst programkommando;

    – bearbetning av maskinkommandot "int xx". Denna typ av avbrott kallas mjukvaruavbrott. Dessa är schemalagda avbrott, eftersom programmeraren med deras hjälp vänder sig vid rätt tidpunkt för att betjäna sina förfrågningar antingen till operativsystemet eller till BIOS, eller till egna program avbryta hanteringen.

    Avbryt hanteringen.

    Intels mikroprocessorer har två driftlägen - verkliga och skyddade. I dessa lägen utförs avbrottsbehandling med fundamentalt olika metoder.

    Låt oss titta på avbrottshantering i verkligt läge.

    I allmänhet avbryta systemetär en uppsättning mjukvara och hårdvara som implementerar avbrottsmekanismen.

    Avbrottssystemets hårdvara inkluderar

    – mikroprocessorstift

    INTR – stift för extern avbrottsinsignal. Denna ingång tar emot utsignalen från 8259A avbrottskontrollkrets;

    INTA – mikroprocessorstift för utsignal som bekräftar mottagandet av en avbrottssignal av mikroprocessorn. Denna utsignal matas till INTA-ingången med samma namn på 8259A-avbrottskontrollkretsen;

    NMI – mikroprocessorstift för icke-maskerbar avbrottsingångssignal;

    – 8259A programmerbart interrupt controller-chip. Den är utformad för att fånga avbrottssignaler från åtta olika externa enheter: timer, tangentbord, magnetiska skivor, etc. Vanligtvis används två 8259A-chips kopplade i serie. Som ett resultat av denna anslutning ökar antalet möjliga källor till externa avbrott till 15.

    Programvara för avbrottssystem i verkligt läge inkluderar:

    – en tabell med avbrottsvektorer, som innehåller pekare till procedurer för bearbetning av motsvarande avbrott i ett visst format, beroende på mikroprocessorns driftläge;

    – följande flaggor i registret flaggor\flaggor:

    IF (avbrottsflagga) – avbrottsflagga. Designad för så kallad maskering (inhibering) av hårdvaruavbrott, det vill säga avbrott vid INTR-ingången. IF-flaggan har ingen effekt på bearbetning av andra typer av avbrott. Om IF=1, behandlar mikroprocessorn externa avbrott, om IF = 0, ignorerar mikroprocessorn signaler vid INTR-ingången;

    TF (Trace Flag) - spårningsflagga. Ett enda tillstånd för TF-flaggan sätter mikroprocessorn i instruktions-för-kommando-mod. I instruktions-för-kommando-moden, efter att varje maskinkommando exekveras, genereras ett internt avbrott med nummer 1 i mikroprocessorn, och sedan följer åtgärder i enlighet med algoritmen för att behandla detta avbrott;

    – kommandon från mikroprocessormaskinen: int, into, iret, cli, sti ().

    Avbrottskontrollkretsen utför följande funktioner:

    – spela in förfrågningar om avbrottsbehandling från åtta källor, generera en enda avbrottsbegäran och skicka den till mikroprocessorns INTR-ingång;

    – generering av avbrottsvektornumret och sändning av det till databussen;

    – Organisation av prioriterad avbrottsbehandling.

    – förbud (maskering) av avbrott med vissa nummer.

    En viktig egenskap hos denna styrenhet är förmågan att programmera den, vilket gör att du flexibelt kan ändra algoritmerna för bearbetning av hårdvaruavbrott.

    Under datorns startprocess och därefter under drift är avbrottskontrollern konfigurerad att fungera i ett av fyra lägen.

    1) Kapslat avbrottsläge. I detta läge tilldelas varje ingång (nivå) irq0...irq7 ett fast prioritetsvärde, där nivån irq0 har den högsta prioriteten och irq7 den lägsta. Prioriteten för avbrott bestämmer deras rätt att avbryta behandlingen av ett avbrott med lägre prioritet med en högre prioritet (förutsatt att IF = 1).

    2) Cyklisk avbrottsbearbetningsläge. I detta läge är prioritetsvärdena för avbrottsnivåer också linjärt ordnade, men inte på ett fast sätt, utan ändras efter bearbetning av nästa avbrott enligt följande princip: prioritetsvärdet för det senast betjänade avbrottet tilldelas det lägsta värdet . Den näst högsta avbrottsnivån får det högsta värdet, och därför kommer denna nivå att ha företräde när avbrottsbegäranden från flera källor kommer in samtidigt.

    3) Adresserbart prioritetsläge. Programmeraren eller systemet kan oberoende tilldela den högsta prioriterade avbrottsnivån.

    4) Pollingläge. Detta läge förhindrar styrenheten från att automatiskt avbryta mikroprocessorn när ett avbrott inträffar från någon extern enhet. För att mikroprocessorn ska ta reda på förekomsten av en viss avbrottsbegäran måste den själv kontakta avbrottsstyrenheten, analysera den och sedan agera enligt sin egen algoritm. Enligt detta tillvägagångssätt är initiatorn av avbrottsbehandling inte själva avbrottet, som i vektordisciplinen, utan mikroprocessorn, och ibland bestäms av den (mer exakt, operativsystem exekvera på den) ögonblick i tiden.

    MINNETS HIERARKI

    Implementeringen av minneshierarkin för moderna datorer är baserad på två principer: principen om lokalisering av samtal och förhållandet mellan kostnad och prestanda.

    Principen om lokalisering av samtal antyder att de flesta program lyckligtvis inte kommer åt alla sina kommandon och data med samma sannolikhet, utan snarare ger företräde åt någon del av deras adressutrymme.

    Minneshierarkin för moderna datorer är uppbyggd på flera nivåer, där den högre nivån är mindre, snabbare och dyrare per byte än den lägre. Nivåerna i en hierarki är relaterade till varandra: all data på en nivå kan också hittas på en lägre nivå, och all data på den lägre nivån kan hittas på nästa lägre nivå, och så vidare tills vi når botten av hierarkin.

    Minneshierarkin består vanligtvis av många nivåer, men vid varje given tidpunkt har vi bara att göra med två närliggande nivåer. Den minsta informationsenhet som kan finnas eller inte finns i en hierarki på två nivåer kallas ett block. Blockstorleken kan vara antingen fast eller variabel. Om denna storlek är fast är minnesstorleken en multipel av blockstorleken.

    Ett lyckat eller misslyckat samtal till en högre nivå anropas respektive hit eller miss.

    Hit– det finns en referens till ett objekt i minnet som finns på en högre nivå, medan miss betyder att den inte hittades på den här nivån.

    Eftersom förbättring av prestanda är den främsta orsaken till uppkomsten av minneshierarkier är träff- och missfrekvenser en viktig egenskap. Träfftiden är den tid det tar att nå en högre nivå i hierarkin, som inkluderar, men inte är begränsad till, den tid som krävs för att avgöra om träffen är en träff eller en miss. Missförlust är den tid det tar för ett block i ett högre lager att ersättas av ett block från ett lägre lager, plus tiden att vidarebefordra det blocket till den önskade enheten (vanligtvis processorn). Missförlusten inkluderar vidare två komponenter: åtkomsttid - tiden för att komma åt det första ordet i blocket vid en miss, och vidarebefordranstid - den extra tiden för att vidarebefordra de återstående orden i blocket. Åtkomsttiden är relaterad till latensen för minne på lägre nivå, medan överföringstiden är relaterad till kanalbandbredden mellan minnesenheter på två angränsande nivåer.

    För att beskriva en viss nivå i minneshierarkin behöver du svara på följande fyra frågor.

    1) Var kan ett block placeras på den översta nivån i hierarkin? (blockplacering).

    2) Hur hittar man ett block när det är på översta nivån? (blockidentifiering).

    3) Vilket block ska bytas ut vid en miss? (blockbyte).

    4) Vad händer under inspelningen? (skrivstrategi).

    Cacheorganisation

    Idag finns cacheminne i nästan alla datorer. Som regel är modernt cacheminne strukturellt oskiljbart från processorn

    Allmänna bestämmelser

    Huvudminnet är nästa nivå i minneshierarkin. Huvudminnet tillfredsställer cache-förfrågningar och fungerar som ett I/O-gränssnitt genom att vara destinationen för ingången och källan för utmatningen. Det finns två huvudparametrar som används för att utvärdera huvudminnets prestanda: latens och bandbredd. Traditionellt huvudminnets latens har att göra med cacheminne, och bandbredd eller bandbredd hänvisar till I/O. Med den växande populariteten för L2-cacher och de ökande blockstorlekarna för L2-cacher, blir huvudminnets bandbredd också viktig för cachar.

    Minneslatens bedöms traditionellt av två parametrar: åtkomsttid(åtkomsttid) och minnescykeltid(cykeltid).

    Åtkomsttid representerar tidsintervallet mellan utfärdandet av en läsbegäran och det ögonblick då det begärda ordet anländer från minnet.

    Minnescykeltid bestäms av den minsta tiden mellan två minnesåtkomster.

    Halvledar-RAM är för närvarande uppdelad i statiskt RAM(SRAM) och dynamiskt RAM(DRAM). (Random Access Memory - Random Access Memory).

    Mikrokretsar (DRAM) kännetecknas av högre kapacitet och lägre kostnad, men kräver regenereringskretsar och har betydligt längre åtkomsttider.

    Utlösare De kallar ett element på transistorer, som kan vara i ett av två stabila tillstånd (0 och 1), och enligt en extern signal kan det ändra tillstånd. En trigger kan fungera som en minnescell som lagrar en bit information.

    Triggerbaserat minne kallas statisk(SRAM).

    Principen för DRAM-enheten är som följer: metall-dielektrisk-halvledarsystemet kan fungera som en kondensator, dvs. kunna hålla på ett tag elektrisk laddning. Genom att beteckna det laddade tillståndet som 1 och det oladdade tillståndet som 0, får vi en minnescell med en kapacitet på 1 bit. Eftersom laddningen på kondensatorn försvinner efter en viss tid, måste den periodvis laddas (regenereras) genom att läsa och skriva data till den igen. På grund av detta uppstod konceptet "dynamiskt" för denna typ av minne.

    Statiskt RAM är en dyr och oekonomisk typ av RAM, så det används främst för cacheminne och i mikroprocessorregister.

    Utveckling av RAM

    Dynamiskt RAM har gått igenom flera stadier av tillväxt sedan introduktionen. Till en början producerades dynamiska RAM-chips i DIP-paket. Sedan ersattes de av moduler bestående av flera chips: SIPP, SIMM och slutligen DIMM och RIMM. Låt oss ta en närmare titt på dessa sorter.

    1) DIP-paketär den äldsta implementeringen av DRAM. Detta är vanligtvis ett litet svart plastfodral med metallkontakter på båda sidor.

    Mikrokretsar (med andra ord chips) av dynamiskt RAM installerades i så kallade banker. Banker finns i 64, 256 KB, 1 och 4 MB. Varje bank består av nio separata identiska marker. Av dessa är åtta marker utformade för att lagra information, och det nionde markerna används för att kontrollera pariteten för de återstående åtta markerna i denna bank. Minneschips hade kapaciteter på 64 Kbit, 256 Kbit, 1 och 4 Mbit.

    Persondatorer med mikroprocessorer i8086/88, i80286 och, delvis, i80386SX/DX var utrustade med minne med DIP-paket. Att installera och byta ut den här typen av minne var en svår uppgift. Därför, i datorer med en i80386DX-processor, började dessa mikrokretsar ersätta SIPP- och SIMM-minnen.

    2) SIPP-moduler De är små kort med flera DRAM-chips lödda på dem.

    SIPP är en förkortning för Single Inline Package. SIPP-moduler är anslutna till moderkort med hjälp av 30 kontaktstift som sätts in i motsvarande panel moderkort. SIPP-moduler hade vissa utskärningar som hindrade dem från att sättas in i uttagen på fel sätt.

    3) SIMM-moduler.

    SIMM står för Single Inline Memory Module SIMM-moduler kan ha en kapacitet på 256 KB, 1, 2, 4, 8, 16 och 32 MB. SIMM-moduler ansluts till moderkortet med hjälp av kontakter. Modulen sätts in i ett plastblock i en vinkel på 70 grader och kläms sedan fast med en plasthållare. I det här fallet står brädan vertikalt. Särskilda urtag på minnesmodulen förhindrar att de placeras på fel sätt.

    SIMM-moduler för anslutning till moderkortet har guldpläterade remsor (stift).

    SIMM-moduler gick igenom två steg i sin utveckling. De första representanterna för SIMM-moduler var 30-stifts SIMM. Deras maximala driftfrekvens är 29 MHz. Standardminnesåtkomsttiden ansågs vara 70 ns. Dessa moduler hade redan svårt att arbeta på datorer med i80486DX2-mikroprocessorer och ersattes först av 72-stifts FPM (Fast Page Mode) DRAM och sedan av EDO (Extended Data Output) RAM.

    SIMM EDO RAM-minnen har bara 72 stift och kan fungera på frekvenser upp till 50 MHz. Dessa minnesmoduler var utrustade med datorer med Intel-processorer 80486DX2/DX4, Intel Pentium, Pentium Pro och Pentium MMX, samt AMD 80586 och K5.

    · Binär kodningsprincip

    · Enligt denna princip kodas all information som kommer in i en dator med hjälp av binära signaler (binära siffror, bitar) och delas upp i enheter som kallas ord.

    · Principen om minneshomogenitet

    · Program och data lagras i samma minne. Därför skiljer inte datorn på vad som finns lagrat i en given minnescell – ett nummer, text eller kommando. Du kan utföra samma åtgärder på kommandon som på data.

    · Principen för minnesadresserbarhet

    · Strukturellt sett består huvudminnet av numrerade celler; Vilken cell som helst är tillgänglig för processorn när som helst. Detta innebär möjligheten att namnge minnesområden så att de värden som är lagrade i dem senare kan nås eller ändras under programkörning med de tilldelade namnen.

    · Sekventiell programstyrningsprincip

    · Antar att programmet består av en uppsättning kommandon som exekveras av processorn automatiskt efter varandra i en viss sekvens.

    · Principen om arkitektonisk styvhet

    · Oföränderlighet av topologi, arkitektur och lista över kommandon under drift.

    · Datorer som bygger på dessa principer klassificeras som von Neumann-datorer.

    · 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 något 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.

    ·

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

    · Program och data läggs in i minnet från inmatningsenheten via 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.

    · Ett kommando 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 cell där resultatet ska skrivas (om det behöver sparas i minnet).


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

    · Från den aritmetiska logiska enheten matas resultaten ut till minnet eller utgångsenheten. 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 .

    16) Struktur och arkitektur datorsystem

    Ett system (från det grekiska systema - en helhet, en förening som består av delar) är en uppsättning element som interagerar med varandra och bildar en viss integritet, enhet.
    Ett datorsystem är en samling av en eller flera datorer eller processorer, programvara och kringutrustning, organiserade för gemensamt utförande av informations- och beräkningsprocesser.
    Särskiljande drag VS i förhållande till datorer är närvaron i dem av flera datorer som implementerar parallell bearbetning.
    Grundläggande designprinciper som fastställs när du skapar ett flygplan:
    förmåga att arbeta i olika lägen;
    modularitet av strukturen för tekniska och programvara, som låter dig förbättra och modernisera datorsystem utan grundläggande förändringar;
    enande och standardisering av tekniska lösningar och mjukvarulösningar;
    hierarki i organisationen av processledning;
    systemens förmåga att anpassa sig, självjustera och självorganisera;
    tillhandahålla nödvändiga tjänster till användare när de utför beräkningar
    Enligt deras syfte är flygplan indelade i
    universell,
    problemorienterad
    specialiserade.
    Universella sådana är utformade för att lösa en bred klass av problem. Problemorienterade används för att lösa ett visst antal problem inom ett relativt smalt område. Specialiserade är inriktade på att lösa en snäv klass av problem
    Beroende på vilken typ av flygplan de skiljer sig åt
    multimaskin
    multiprocessor.
    Ett datorsystem kan byggas på grundval av antingen hela datorer (flermaskinsdator) eller på basis av individuella processorer (multiprocessordator).
    Efter typ av dator eller processor skiljer de åt
    homogen - byggd på basis av samma typ av datorer eller processorer.
    heterogena system - omfattar olika typer datorer eller processorer.
    Geografiskt är flygplan indelade i:
    koncentrerad (alla komponenter är placerade i närheten av varandra);
    distribuerade (komponenter kan placeras på ett stort avstånd, t.ex. datornätverk);
    Enligt metoderna för att kontrollera flygplanselement särskiljs de
    centraliserad,
    decentraliserat
    med blandad kontroll.

    Beroende på flygplanets driftläge, fungerar system i
    operativ
    icke-operativa tillfälliga lägen.
    Dessutom kan flygplan vara strukturellt
    enkelnivå (det finns bara en allmän nivå av databehandling);
    Flernivåstrukturer (hierarkiska). I hierarkiska datorsystem är maskiner eller processorer fördelade över olika nivåer av informationsbehandling vissa maskiner (processorer) kan specialisera sig på att utföra vissa funktioner.
    Datorsystemets struktur.
    Flygplanets struktur är en uppsättning integrerade element och deras anslutningar. Elementen i datorn är individuella datorer och processorer.
    I den beskrivna flernivåstrukturen implementeras den klassiska von Neumann-organisationen av de väpnade styrkorna och innebär sekventiell behandling av information enligt ett förkompilerat program.
    Arkitektur av datorsystem. Klassificering av datorsystemarkitekturer.
    Systemarkitektur är en uppsättning systemegenskaper som är nödvändiga för användning.
    En dators arkitektur är dess beskrivning på någon generell nivå, inklusive en beskrivning av användarprogrammeringsmöjligheter, kommandosystem, adresseringssystem, minnesorganisation, etc.
    Klassisk arkitektur (von Neumann-arkitektur) - en aritmetisk-logisk enhet (ALU) genom vilken dataflödet passerar, och en styrenhet (CU) genom vilken kommandoflödet - programmet - passerar. Detta är en dator med en processor.
    Datorsystem för flera maskiner. Här har flera processorer som ingår i ett datorsystem inte ett gemensamt RAM-minne utan var och en sitt (lokalt). Varje dator i ett multimaskinsystem har en klassisk arkitektur, och ett sådant system används ganska flitigt.
    Den tidigaste och mest kända är klassificeringen av datorsystemarkitekturer som föreslogs 1966 av M. Flynn.

    · Klassificeringen baseras på konceptet en tråd, som är en sekvens av element, kommandon eller data som bearbetas av en processor. Baserat på antalet kommandoströmmar och dataströmmar, särskiljer Flynn fyra klasser av arkitekturer: SISD, MISD, SIMD, MIMD.
    SISD (single instruction stream / single data stream) - enkel instruktionsström och enkel dataström. Denna klass inkluderar först och främst klassiska sekventiella maskiner, eller på annat sätt maskiner av typen von Neumann, till exempel PDP-11 eller VAX 11/780. I sådana maskiner finns det bara en ström av kommandon, alla kommandon behandlas sekventiellt efter varandra och varje kommando initierar en operation på en ström av data. Det spelar ingen roll att pipelining kan användas för att öka insoch aritmetisk hastighet - både CDC 6600 med skalära funktionsenheter och CDC 7600 med pipelineade faller i denna klass.
    SIMD (enkel instruktionsström / multipel dataström) - enkel instruktionsström och flera dataström. I arkitekturer av detta slag behålls en ström av kommandon, som, till skillnad från den tidigare klassen, inkluderar vektorkommandon. Detta gör att du kan utföra en aritmetisk operation på många data - vektorelement - samtidigt. Metoden för att utföra vektoroperationer är inte specificerad, så bearbetningen av vektorelement kan göras antingen av en processormatris, som i ILLIAC IV, eller med hjälp av en pipeline, som till exempel i CRAY-1-maskinen.
    MISD (multiple instruction stream / single data stream) - multipel instruktionsström och enkel dataström. Definitionen antyder närvaron i arkitekturen av många processorer som behandlar samma dataström. Men varken Flynn eller andra experter inom datorarkitektur har ännu kunnat ge ett övertygande exempel på ett verkligt datorsystem byggt på denna princip. Ett antal forskare tillskriver detta transportbandsmaskiner

Dela