Hovedminnesystemmoduler. Datamaskinens minne

Organisering av minnet til Jernbanedepartementet. Minnesegmentering. Beregning av adressen. Internt cache-minne.

Minnet til mikroprosessorsystemet utfører funksjonen midlertidig eller permanent lagring av data og kommandoer. Mengden minne bestemmer den tillatte kompleksiteten til algoritmene som utføres av systemet, så vel som til en viss grad hastigheten til systemet som helhet. Minnemoduler kjøres på minnebrikker (RAM eller permanent). I økende grad bruker mikroprosessorsystemer flash-minne, som er et ikke-flyktig minne med muligheten til å omskrive innhold mange ganger.

For å koble minnemodulen til systembussen, brukes grensesnittblokker, som inkluderer en adressedekoder (velger), en krets for behandling av styresignaler til bussen og databuffere (Figur 7.4.1).

Figur 7.4.1. Tilkoblingsskjema for minnemodul.

I minneplassen til et mikroprosessorsystem er det vanligvis tildelt flere spesialområder som utfører spesielle funksjoner. Disse inkluderer:

- minne til oppstartsprogrammet, utført på ROM eller flash-minne;

- minne for stabelen eller stabelen (Stack) - dette er en del av RAM beregnet for midlertidig lagring av data;

- en tabell med avbruddsvektorer som inneholder adressene til begynnelsen av avbruddsbehandlingsprogrammer;

- minne for enheter koblet til systembussen.

Alle andre deler av minneplassen har en tendens til å ha et universelt formål. De kan inneholde både data og programmer (selvfølgelig i tilfelle av en enkeltbussarkitektur).

Ofte er minneplass delt inn i segmenter med en programmerbar adresse for starten av segmentet og en fast segmentstørrelse. For eksempel, i Intel 8086-prosessoren, er minnesegmentering organisert som følger.

Hele systemets minne er ikke representert i form av et kontinuerlig rom, men i form av flere stykker - segmenter av en gitt størrelse (64 KB hver), hvis plassering i minneplassen kan endres programmatisk.

For å lagre minneadressekoder brukes ikke separate registre, men registrepar:

Segmentregisteret definerer adressen til begynnelsen av segmentet (det vil si posisjonen til segmentet i minnet);

Pekerregisteret (offsetregister) definerer posisjonen til arbeidsadressen innenfor segmentet.

I dette tilfellet dannes den fysiske 20-bits minneadressen satt til den eksterne adressebussen som vist i figur 7.4.2, det vil si ved å legge til offset og segmentadressen med en forskyvning på 4 biter.

Figur 7.4.2. Dannelse av den fysiske minneadressen fra segmentadressen og offset.

Posisjonen til denne adressen i minnet er vist i figur 7.4.3.

Figur 7.4.3. Plassering av den fysiske adressen i minnet

Et segment kan bare starte ved en 16-byte minnegrense (siden adressen til begynnelsen av et segment faktisk har fire minst signifikante nullbiter, som du kan se i figur 7.4.2), det vil si på en adresse som er et multiplum av 16. Disse tillatte segmentgrensene kalles avsnittsgrenser ...

Merk at introduksjonen av segmentering først og fremst skyldes det faktum at de interne registrene til prosessoren er 16-bit, og den fysiske adressen til minnet er 20-bit (en 16-bit adresse tillater bruk av kun 64 KB minne, som er tydeligvis ikke nok).

Bufferminnet er plassert mellom hovedminnet (RAM) og sentralprosessoren for å redusere tiden brukt på å få tilgang til CPUen til RAM-en.

Ideen om cache-minne er basert på å forutsi de mest sannsynlige CPU-tilgangene til OP. Mest "sannsynlige" data og instruksjoner kopieres inn i en rask, CPU-tempo cache før CPU-en faktisk bruker den, slik at dataene og instruksjonene som er i bruk kan nås raskt uten tilgang til RAM. Denne tilnærmingen er basert på prinsippet om programlokalitet eller, som de sier, den nestede naturen til anrop, noe som betyr at adressene til påfølgende anrop til OP-en som regel danner en kompakt gruppe. Når du får tilgang til RAM-en, kopieres ikke individuelle data til hurtigbufferminnet, men blokker med informasjon, inkludert de dataene som mest sannsynlig vil bli brukt av CPU-en i påfølgende arbeidstrinn. I denne forbindelse hentes påfølgende kommandoer av CPU ikke fra RAM, men fra hurtigbufferminnet. Når CPU-en trenger å lese eller skrive noen data til RAM-en, sjekker den først om den er tilstede i hurtigbufferminnet. Effektiviteten til hurtigbuffersystemet avhenger av blokkstørrelsen og algoritmen til programmene.

Tabell 9.1. Hierarkiet til PC-minneundersystemet
Minnetype 1985 år 2000 år
Prøvetakingstid Typisk volum Pris / Byte Prøvetakingstid Typisk volum Pris / Byte
1 Superoperativt minne (registre) 0,2 5 ns 16/32 bit $ 3 - 100 0,01 1 ns 32/64/128 bit $ 0,1 10
2 Høyhastighets bufferlagring (cache) 20 100 ns 8Kb - 64Kb ~ $ 10 0,5 - 2 ns 32Kb 1Mb $ 0,1 - 0,5
3 Operasjonelt (hoved)minne ~ 0,5 ms 1 MB - 256 MB $ 0,02 1 2 ns 20 ns 128MB - 4GB $ 0,01 0,1
4 Ekstern lagring (masselagring) 10 - 100 ms 1 MB - 1 GB $ 0,002 - 0,04 5 - 20 ms 1 GB - 0,5 TB $ 0,001 - 0,01

Prosessorregistrene utgjør dens kontekst og lagrer data som brukes av de for øyeblikket utførende prosessorinstruksjonene. Prosessorregistre er vanligvis tilgjengelige med deres mnemoniske betegnelser i prosessorinstruksjoner.

Cache brukes til å matche hastigheten til CPU og hovedminne. Datasystemer bruker en multi-level cache: nivå I cache (L1), nivå II cache (L2), etc. Desktop-systemer bruker vanligvis en to-lags cache, mens serversystemer bruker en tre-lags cache. Cachen lagrer instruksjoner eller data som sannsynligvis vil bli sendt til prosessoren for behandling i nær fremtid. Driften av cachen er gjennomsiktig for programvare, så cachen er vanligvis ikke programvaretilgjengelig.

RAM lagrer som regel funksjonelt komplette programvaremoduler (operativsystemkjernen, kjørbare programmer og deres biblioteker, enhetsdrivere, etc.) og deres data, direkte involvert i arbeidet med programmer, og brukes også til å lagre resultatene av beregninger eller andre behandlingsdata før de sendes til et eksternt minne, til en datautgangsenhet eller kommunikasjonsgrensesnitt.

Hver celle tilfeldig tilgangsminne tildelt en unik adresse. Organisatoriske metoder for minnetildeling gir programmerere muligheten til å effektivt bruke hele datasystemet. Disse metodene inkluderer den kontinuerlige ("flate") minnemodellen og den segmenterte minnemodellen. Når du bruker en flat modell av minne, opererer programmet med et enkelt kontinuerlig adresserom, et lineært adresserom, der minneceller er nummerert sekvensielt og kontinuerlig fra 0 til 2n-1, hvor n er CPU-kapasiteten på adressen. Når du bruker en segmentert modell for et program, er minne representert av en gruppe uavhengige adresseblokker kalt segmenter. For å adressere en byte med minne, må et program bruke en logisk adresse som består av en segmentvelger og en offset. Segmentvelgeren velger et spesifikt segment, og forskyvningen peker til en spesifikk celle i adresserommet til det valgte segmentet.

Send det gode arbeidet ditt i kunnskapsbasen er enkelt. Bruk skjemaet nedenfor

Studenter, hovedfagsstudenter, unge forskere som bruker kunnskapsbasen i studiene og arbeidet vil være veldig takknemlige for deg.

Lagt ut på http://www.allbest.ru/

1. Prinsipper for informasjonsutveksling mellom hierarkiske nivåer i minnedelsystemet.

2. Grunnleggende funksjoner og grunnleggende delsystemer i datasystemet.

3. Prinsippet for operasjon av det assosiative cache-minnet.

4. Implementering av avbrudd fra perifere enheter koblet til via et serielt grensesnitt.

5. Hva er beskyttelsesringer?

6. Hva er minnesegmentering?

7. Hovedtrekk ved videodata. Matrise og grafisk presentasjon av videoinformasjon.

8. Hva er en fil? Forskjeller mellom fil og katalog.

9. Hovedstadiene i rørledningen til moderne prosessorer.

10. Hva er omdøping av register?

Spørsmål nr. 1. Prinsipper for informasjonsutveksling mellom hierarkiske nivåer i minnedelsystemet

Implementeringen av minnehierarkiet til moderne datamaskiner er basert på to prinsipper: prinsippet om lokalitet for samtaler og forholdet mellom kostnad og ytelse. Prinsippet om lokalitet for anrop antyder at de fleste programmer heldigvis ikke utfører anrop til alle sine kommandoer og data like sannsynlig, men foretrekker en del av adresseområdet.

Minnehierarkiet til moderne datamaskiner er bygget på flere nivåer, og det høyere nivået er mindre i volum, raskere og har en høyere kostnad per byte enn det lavere nivået. Nivåene i et hierarki henger sammen: alle data på ett nivå kan også finnes på et lavere nivå, og alle data på det lavere nivået kan finnes på neste lavere nivå, og så videre, til vi når bunnen av hierarkiet .

Minnehierarkiet består vanligvis av mange nivåer, men til enhver tid har vi kun å gjøre med to nærliggende nivåer. Den minste informasjonsenheten som kanskje eller ikke er til stede i et to-nivå hierarki kalles en blokk. Blokkstørrelsen kan enten være fast eller variabel. Hvis denne størrelsen er fast, er minnestørrelsen et multiplum av blokkstørrelsen.

En vellykket eller mislykket tilgang til et høyere nivå kalles henholdsvis et treff eller bom. Et treff er et kall til en gjenstand i minnet som ble funnet på et høyere nivå, mens en glipp betyr at den ikke ble funnet på det nivået. Treffraten eller treffforholdet er prosentandelen av treff funnet på et høyere nivå. Noen ganger er det representert som en prosentandel. Misfrekvensen er prosentandelen av treff som ikke ble funnet på et høyere nivå.

Siden forbedret ytelse er hovedårsaken til fremveksten av minnehierarki, er treff- og bomfrekvens en viktig egenskap. Trefftiden er tilgangstiden til et høyere nivå i hierarkiet, som spesielt inkluderer tiden det tar å avgjøre om treffet er et treff eller en glipp. Miss-straffen er tiden for å erstatte en blokk på et høyere nivå med en blokk fra et lavere nivå, pluss tiden for å overføre den blokken til ønsket enhet (vanligvis prosessoren). Tap på en glipp inkluderer videre to komponenter: tilgangstid - tiden for å få tilgang til det første ordet i blokken i tilfelle en glipp, og overføringstid - ekstra tid for å overføre de gjenværende ordene i blokken. Tilgangstiden er relatert til latensen til det nedre lagminnet, mens overføringstiden er relatert til kanalbåndbredden mellom minneenhetene til to tilstøtende lag.

Spørsmål nummer 2. Grunnleggende funksjoner og grunnleggende delsystemer til et datasystem

OS er et kompleks av sammenkoblede programmer designet for å forbedre effektiviteten til maskinvare ved rasjonell styring av ressursene, samt å gi brukeren bekvemmelighet ved å gi ham en utvidet virtuell maskin. De viktigste ressursene som operativsystemet administrerer inkluderer prosessorer, hovedminne, tidtakere, datasett, disker, båndstasjoner, skrivere, nettverksenheter og noen andre. Ressurser deles mellom prosesser. For å løse ressursstyringsproblemer bruker forskjellige operativsystemer forskjellige algoritmer, hvis funksjoner til slutt bestemmer utseendet til operativsystemet. De viktigste delsystemene til OS er delsystemer for håndtering av prosesser, minne, filer og eksterne enheter, samt delsystemer for brukergrensesnitt, databeskyttelse og administrasjon.

Hovedfunksjoner:

* Kjøring på forespørsel av programmer av de ganske elementære (lavnivå) handlingene som er vanlige for de fleste programmer og ofte finnes i nesten alle programmer (inndata og utdata, start og stopp andre programmer, alloker og frigjør ekstra minne, etc. .).

* Standardisert tilgang til eksterne enheter (input-output enheter).

* Håndtering av tilfeldig tilgangsminne (fordeling mellom prosesser, organisering av virtuelt minne).

* Kontrollere tilgang til data på ikke-flyktige medier (som harddisk, optiske disker, etc.), organisert i et bestemt filsystem.

* Gir brukergrensesnitt.

* Nettverksoperasjoner, støtte for nettverksprotokollstabel.

Ytterligere funksjoner:

* Parallell eller pseudo-parallell utførelse av oppgaver (multitasking).

* Effektiv fordeling av datasystemressurser mellom prosesser.

* Differensiering av tilgang til ulike prosesser til ressurser.

* Interaksjon mellom prosesser: datautveksling, gjensidig synkronisering. En prosess er et dynamisk objekt som vises i operativsystemet etter at brukeren eller operativsystemet selv bestemmer seg for å "starte et program for kjøring", det vil si å lage en ny enhet for beregningsarbeid. Bruker - en person eller organisasjon som bruker operativsystemet til å utføre en bestemt funksjon. En fil er et navngitt område av eksternt minne som kan skrives til og hvorfra data kan leses. Hovedformålene med bruk av filer er: langsiktig og pålitelig lagring av informasjon, samt delt tilgang til data.

Spørsmål nummer 3. Prinsippet for drift av det assosiative cache-minnet

I assosiativt minne velges elementer ikke etter adresse, men etter innhold. La oss forklare det siste konseptet mer detaljert. For minne med adresseorganisering ble konseptet med minimum adresserbar enhet (MAU) introdusert som et datastykke med en individuell adresse. La oss introdusere et lignende konsept for assosiativt minne, og vi vil kalle denne minimale lagringsenheten i assosiativt minne en streng med assosiativt minne (StrAP). Hver strAP inneholder to felt: et tagfelt (engelsk tag - tag, label, attribut) og et datafelt. Forespørselen om å lese til det assosiative minnet i ord kan uttrykkes som følger: velg linjen(e), der (hvilken) taggen er lik den angitte verdien.

Vi legger spesielt merke til at med et slikt søk er ett av tre resultater mulig:

1. det er nøyaktig én linje med den gitte taggen;

2. det er flere linjer med en gitt tag;

3. det er ingen linjer med den gitte taggen.

Å søke etter en post etter attributt er en vanlig aktivitet i databasetilganger, og søk i en database er ofte et assosiativt søk. For å utføre et slikt søk må du se alle poster og sammenligne den angitte taggen med taggen til hver post. Dette kan gjøres ved bruk av vanlig adresserbart minne for å lagre poster (og det er klart at dette vil ta mye tid - i forhold til antall lagrede poster!). Associativt minne sies å være når assosiativ datahenting fra minnet støttes av maskinvare. Når du skriver til det assosiative minnet, plasseres dataelementet i StrAP sammen med taggen som er iboende i dette elementet. For dette kan du bruke hvilken som helst gratis StraP.

Ved begynnelsen av arbeidet er cache-minnet tomt. Når den første kommandoen utføres under henting, vil dens kode, samt noen flere tilstøtende byte av programkoden, overføres (sakte) til en av hurtigbufferlinjene, og samtidig vil den øvre delen av adressen skrives til den tilsvarende taggen. Slik fylles cache-linjen.

Hvis de neste valgene er mulige fra dette området, vil de gjøres allerede fra CACHE (rask) - "CACHE-hit". Hvis det viser seg at det nødvendige elementet ikke er i CACHE, - "CACHE-miss". I dette tilfellet oppstår tilgang til RAM (sakte), og samtidig fylles neste hurtigbufferlinje.

Du får tilgang til cachen som følger. Etter dannelsen av executive-adressen er dens høyordensbiter, som danner en tag, maskinvare (raske) og sammenlignes samtidig med taggene til alle cache-linjer. I dette tilfellet er bare to situasjoner av de tre som er oppført tidligere mulig: enten vil alle sammenligninger gi et negativt resultat (cache-miss), eller et positivt sammenligningsresultat vil bli registrert nøyaktig for én linje (cache-treff).

Ved lesing, hvis et hurtigbuffertreff registreres, bestemmer de nedre bitene av adressen posisjonen i hurtigbufferlinjen som det skal velges byte fra, og operasjonstypen bestemmer antall byte. Selvfølgelig, hvis lengden på et dataelement overstiger en byte, er situasjoner mulig når dette elementet (i deler) er plassert i to (eller flere) forskjellige hurtigbufferlinjer, så vil tiden for å hente et slikt element øke. Dette kan motvirkes ved å justere operandene og instruksjonene langs grensene til hurtigbufferlinjene, noe som tas i betraktning ved utvikling av optimeringsoversettere eller ved manuell optimering av koden.

Hvis det er en cache-glipp og det ikke er noen ledige linjer i CACHE, må du erstatte en linje i CACHE med en annen linje.

Hovedmålet med erstatningsstrategien er å beholde linjene som mest sannsynlig vil bli aksessert i nær fremtid i hurtigbufferminnet, og erstatte linjene som vil bli aksessert på et senere tidspunkt eller ikke i det hele tatt. Åpenbart vil den optimale algoritmen være den som erstatter raden som vil få tilgang til senere i fremtiden enn noen annen CACHE-rad.

Spørsmål nr. 4. Implementering av avbrudd fra eksterne enheter koblet til via et serielt grensesnitt

Det serielle grensesnittet for dataoverføring i én retning bruker én signallinje, gjennom hvilken informasjonsbitene overføres etter hverandre sekvensielt. Denne overføringsmetoden bestemmer navnet på grensesnittet og porten som implementerer det (seriell grensesnitt og serieport). Seriell dataoverføring kan utføres i synkron og asynkron modus.

Ved asynkron overføring innledes hver byte av en startbit, som signaliserer til mottakeren om begynnelsen av neste melding, etterfulgt av databiter eller en paritetsbit. Fullfører sendingen med en stoppbit.

Det asynkrone sendeformatet lar deg identifisere mulige overføringsfeil.

Synkron overføringsmodus forutsetter konstant aktivitet til kommunikasjonskanalen. Overføringen starter med en synkrobyte etterfulgt av en tett strøm av informasjonsbiter. Hvis senderen ikke har noen data å overføre, fyller den gapet ved kontinuerlig å sende synkroniseringsbyte. Ved overføring av store datamengder vil synkroniseringskostnadene i denne modusen være lavere enn i asynkron modus.

Et avbrudd er et signal som informerer prosessoren om fullføringen av en asynkron hendelse. I dette tilfellet blir utførelsen av den gjeldende sekvensen av kommandoer suspendert, og kontrollen overføres til avbruddsbehandleren, som utfører arbeidet med å behandle hendelsen og returnerer kontrollen til den avbrutte koden. Typer avbrudd: Maskinvare (engelsk IRQ - Interrupt Request) - hendelser fra eksterne enheter (for eksempel trykk på tastaturtaster, musebevegelse, et signal fra en timer, nettverkskort eller diskstasjon) - eksterne avbrudd, eller hendelser i mikroprosessoren - (for eksempel divisjon med null) - interne avbrudd; Programvare - initiert av det kjørbare programmet, dvs. allerede synkron, ikke asynkron. Programvareavbrudd kan brukes til å ringe operativsystemtjenester.

Avbrudd krever suspendering av utførelsen av gjeldende flyt av instruksjoner (mens tilstanden opprettholdes) og start av utførelsen av avbruddstjenesterutinen (ISR) (avbruddstjenesterutinen). Denne prosedyren må først identifisere kilden til avbruddet (og det kan være flere av dem), deretter utføre handlinger relatert til reaksjonen på hendelsen. Hvis hendelser skal utløse noen handlinger i applikasjonsprogrammet, skal avbruddsbehandleren bare sende et signal (via OS) som starter (eller vekker) strømmen av instruksjoner som utfører disse handlingene. Selve ISR-prosedyren bør være tidsoptimalisert. Visningsavbrudd, spesielt i beskyttet modus, er en betydelig overhead på PC-kompatible x86-datamaskiner. Av denne grunn prøver de å redusere antallet. Å identifisere kilden til avbruddet er et betydelig problem - arkitekturen til PC-kompatible datamaskiner bruker tradisjonelle, men ineffektive mekanismer for dette. I noen tilfeller blir avbrudd fra enheter erstattet av polling - en programvarekontrollert avhør av enhetens tilstand. I dette tilfellet blir tilstandene til en flerhet av enheter pollet av et timeravbrudd.

Spørsmål nr. 5. Hva er beskyttelsesringer?

Beskyttelsesringer er en arkitektur for informasjonssikkerhet og funksjonell feiltoleranse som implementerer maskinvareseparasjon av system- og brukerrettighetsnivåer. Privilegiumstrukturen kan skildres som flere konsentriske sirkler. I dette tilfellet er systemmodusen (supervisor-modus eller ring null, såkalt "ring 0"), som gir maksimal tilgang til ressurser, den indre sirkelen, mens den begrensede brukermodusen er ekstern. Tradisjonelt gir x86-familien av mikroprosessorer 4 ringer med beskyttelse.

Støtte for flere beskyttelsesringer var et av de revolusjonerende konseptene inkludert i Multics-operativsystemet, forløperen til dagens UNIX-lignende operativsystemer.

Den originale Multics hadde 8 ringer med beskyttelse, men mange moderne systemer har en tendens til å ha færre. Prosessoren vet alltid i hvilken ring koden utføres, takket være spesielle maskinregistre.

Ringmekanismen begrenser i stor grad måtene kontroll kan overføres fra en ring til en annen. Det er noen instruksjoner som overfører kontroll fra en mindre sikker ring til en sikrere (lavere nummerert) ring. Denne mekanismen er utformet for å begrense mulighetene for utilsiktede eller tilsiktede sikkerhetsbrudd.

Effektiv bruk av ringbeskyttelsesarkitekturen krever tett samhandling mellom maskinvaren og operativsystemet. Operativsystemer designet for å kjøre på et stort antall plattformer kan ha forskjellige implementeringer av ringmekanismen på hver plattform.

Spørsmål nr. 6. Hva er minnesegmentering?

Segmentering er en programorganisasjonsteknikk der adressestrukturen til et program gjenspeiler dets meningsfulle segmentering. Under segmentering blir adresserommet til hvert program delt inn i segmenter med forskjellig lengde, som tilsvarer meningsfullt forskjellige deler av programmet. Et segment kan for eksempel være en prosedyre eller et dataområde. I dette tilfellet består adressen av et segmentnavn og en adresse innenfor offsetsegmentet. Siden programsegmenter refereres til med navn, er det mulig å allokere segmenter i ikke-sammenhengende minneområder ved tildeling av minne, dessuten må ikke alle segmenter være samtidig i OP, noen av dem kan lokaliseres i eksternt minne og overføres til OP etter behov.

Som allerede angitt, i et segmentert system, representerer hver adresse et par: s - navnet på segmentet og d - forskyvningen. Hvert program tilsvarer en tabell med segmenter som alltid er tilstede i minnet, der en post tilsvarer hvert segment i en gitt prosess. Ved hjelp av denne tabellen kartlegger systemet programadressene til de virkelige adressene til OP. Tabelladressen er lagret i et maskinvareregister kalt segmenttabellregisteret.

Beregningen av adressen under segmentering utføres som følger. Før systemet kan beregne adressen, blir tegnet på tilstedeværelsen av segmentet i OP kontrollert av maskinvare. Hvis segmentet er tilstede, blir det ved bruk av segmenttabellregisteret laget en adresse til den s-te raden i segmenttabellen, hvor segmentadressen i minnet er indikert. Siden segmenter kommer i forskjellige lengder, må du kjenne segmentgrensen for å unngå å gå utover det angitte segmentet.

Hvis systemet på et tidspunkt ønsker å bytte oppmerksomhet til en annen prosess, vil det ganske enkelt erstatte innholdet i segmenttabellregisteret med adressen til en annen segmenttabell, hvoretter lenkene til skjemaet tolkes i samsvar med den nye tabellen.

Segmentering av adresserommet har mange fordeler fremfor absolutt adressering, og det viktigste er effektiv bruk av RAM. Hvis det ikke er nok plass i RAM for alle segmentene i et gitt program, kan noen være midlertidig plassert i hjelpeminnet. Hvis et eller annet program trenger å legge inn et nytt segment i OP, så kan systemet fjerne et hvilket som helst segment fra OP til hjelpesegmentet. Det fordrevne segmentet trenger ikke å tilhøre programmet som det nye segmentet er introdusert for i OP. Det spiller ingen rolle hvilken segmenttabell det forskjøvede segmentet tilsvarer, hovedsaken er at når det overføres til hjelpeminnet, endres attributtverdien i den tilsvarende segmenttabellen.

Spørsmål nummer 7. Hovedtrekkene til videodata. Matrise og grafisk presentasjon av videoinformasjon

Videoinformasjon kan være både statisk og dynamisk. Statisk videoinformasjon inkluderer tekst, bilder, grafer, tegninger, tabeller osv. Bilder er også delt inn i flate - todimensjonale og tredimensjonale - tredimensjonale.

Dynamisk videoinformasjon er film og animasjon som brukes til å formidle film. De er basert på sekvensiell eksponering på skjermen i sanntid for individuelle bilder i samsvar med scenariet.

Demonstrasjon av animasjons- og lysbildefilmer er basert på ulike prinsipper. Animerte filmer vises slik at det menneskelige visuelle apparatet ikke kan fange individuelle rammer. For å få animasjon av høy kvalitet, bør bilder endres omtrent 30 ganger per sekund. Når du viser lysbildefilmer, eksponeres hver frame på skjermen så lenge det tar før en person oppfatter den (vanligvis fra 30 s til 1 min). Lysbildefilmer kan klassifiseres som statisk videoinformasjon.

I databehandling er det to måter å representere grafiske bilder på; matrise (raster) og vektor. Bitmap-formater er godt egnet for bilder med komplekse fargeskalaer, nyanser og former, som fotografier, tegninger, skannede data. Vektorformater er bedre egnet for tegninger og bilder med enkle former, skygger og farger.

I matriseformater er bildet representert av en rektangulær matrise av punkter - piksler (bildeelement), hvis posisjon i matrisen tilsvarer koordinatene til punktene på skjermen. I tillegg til koordinater er hver piksel preget av sin egen farge, bakgrunnsfarge eller lysstyrkegradering. Antall biter som er tildelt for å indikere fargen på en piksel varierer avhengig av formatet. I bilder av høy kvalitet beskrives fargen på en piksel i 24 biter, noe som gir omtrent 16 millioner farger. Den største ulempen med matrise (raster) grafikk er den store minnekapasiteten som kreves for å lagre bildet, og derfor brukes ulike metoder for datakomprimering for å beskrive bildene. For tiden er det mange formater av grafikkfiler som er forskjellige i komprimeringsalgoritmer og metoder for å representere matrisebilder, så vel som i omfanget.

Vektorrepresentasjon, i motsetning til matrisegrafikk, definerer beskrivelsen av bildet ikke ved piksler, men med kurver - splines. En spline er en jevn kurve som går gjennom to eller flere ankerpunkter som kontrollerer formen på spline.

Den største fordelen med vektorgrafikk er at beskrivelsen av et objekt er enkel og tar opp lite minne. I tillegg har vektorgrafikk følgende fordeler fremfor matrisegrafikk:

Enkel bildeskalering uten forringelse av kvaliteten;

Uavhengig av minnekapasiteten som kreves for å lagre bildet fra den valgte fargemodellen.

Ulempen med vektorbilder er deres visse kunstighet, som består i det faktum at ethvert bilde må deles inn i et begrenset sett med primitiver som utgjør det. Som med matrisegrafikk, er det flere vektorgrafikkfilformater.

Matrise- og vektorgrafikk eksisterer ikke isolert fra hverandre. Så vektortegninger kan inkludere matrisebilder. I tillegg kan vektor- og matrisebilder konverteres til hverandre. Grafiske formater som tillater å kombinere matrise- og vektorbildebeskrivelser kalles metafiler. Metafiler gir tilstrekkelig kompakthet av filer samtidig som de opprettholder høy bildekvalitet.

De vurderte formene for presentasjon av statisk videoinformasjon brukes spesielt for individuelle rammer som danner animasjonsfilmer. Ulike brukes til å lagre animasjonsfilmer, hvorav de fleste er standardiserte.

Spørsmål # 8. Hva er en fil? Forskjeller mellom fil og katalog

beregningsminne operasjonelle videodata

Fil (engelsk fil - binder) er et konsept innen databehandling: en enhet som lar deg få tilgang til enhver ressurs i et datasystem og har en rekke funksjoner:

Fast navn (rekkefølge av tegn, tall eller noe annet som unikt karakteriserer filen);

En definert logisk visning og tilhørende lese-/skriveoperasjoner.

Det kan være alt - fra en sekvens av biter (selv om vi leser den etter byte, eller rettere sagt ord-grupper av byte, fire, åtte, seksten) til en database med en vilkårlig organisasjon eller et hvilket som helst mellomalternativ; flerdimensjonal database, strengt bestilt.

Det første tilfellet tilsvarer lese-/skriveoperasjoner for en strøm og / eller en matrise (det vil si sekvensiell eller med tilgang via indeks), den andre - DBMS-kommandoer. Mellomliggende alternativer er å lese og analysere alle slags filformater.

En fil er en navngitt samling av byte av vilkårlig lengde som ligger på et lagringsmedium, og en katalog er et navngitt sted på en disk hvor filer er lagret. Det fullstendige filnavnet kan inkludere kataloger som C: \ papka \ file.txt, det kan ikke inneholde C: \ file.txt, og en katalog er der filene kan være plassert: C: \ papka. Katalogen kan ikke åpnes i programmet for å skrive noe informasjon inn i den eller lese den, den er for å lagre filer i seg selv, filen kan tvert imot åpnes og redigeres.

Spørsmål nummer 9. Hovedstadiene i rørledningen til moderne prosessorer

Hovedoppgaven til prosessoren er å utføre (og så raskt som mulig) kommandoene som er inkludert i programmet. Den enkleste måten (øke prosessorens klokkehastighet) blir raskt oppbrukt av teknologiske begrensninger. Derfor må du se etter andre måter å forbedre ytelsen på. Det var et sett med arkitektoniske innovasjoner som gjorde at Pentium kunne forbedre ytelsen over 486 prosessorer. Den viktigste av disse er transportbåndet.

Utførelsen av en kommando består av en rekke stadier:

1) lese en kommando fra minnet,

2) bestemmelse av lengde,

3) bestemme adressen til minnecellen, hvis den brukes,

4) kommandoutførelse,

5) lagre resultatet.

I tidlige prosessorer ble alle disse trinnene utført på hver kommando i sin helhet. Transportøren tillot oss å fremskynde prosessen: etter at teamet gikk gjennom et av stadiene og gikk videre til neste, begynte behandlingen av neste kommando. Denne løsningen dukket opp i de siste 486-ene (for eksempel i AMD 5x86-133). Pentium introduserer en dobbel rørledning for første gang. Instruksjonene var i stand til å utføres parallelt (bortsett fra flytende aritmetikk og hoppinstruksjoner). Dette gjorde det mulig å øke produktiviteten med ca. 30-35 %.

Spørsmål nr. 10. Hva er omdøping av register?

Å gi nytt navn til registre er en metode for å løsne på gjensidig avhengighet av instruksjoner som brukes i prosessorer som utfører deres ut-av-ordre kjøring.

I tilfelle at det, i henhold til to eller flere instruksjoner, er nødvendig å skrive data inn i ett register, blir deres korrekte utførelse umulig selv om det ikke er noen dataavhengighet. Slike gjensidige avhengigheter kalles ofte falske.

Siden antallet arkitektoniske registre vanligvis er begrenset, er sannsynligheten for falske gjensidige avhengigheter høy, noe som kan føre til en reduksjon i prosessorytelsen.

Registerendring er transformasjon av myke referanser til arkitektoniske register til fysiske registerreferanser, og kan redusere falske gjensidige avhengigheter ved å bruke et stort antall fysiske registre i stedet for et begrenset antall arkitekturregistre. I dette tilfellet overvåker prosessoren tilstanden til hvilke fysiske registre som tilsvarer tilstanden til de arkitektoniske registrene, og resultatene sendes ut i den rekkefølgen programmet gir.

Kilder til

Internett-ressurs - http://www.chinapads.ru/

Ryazantsev O.I., Nedzelskiy D.O., Gusєva S.V. Arkitektonisk og strukturell organisering av numeriske systemer. Navchalnyy pos_bnik. - Lugansk: Utsikt. SNU im. Dahl, 2008.

Internett-ressurs - http://studopedia.net/

Internett-ressurs - http://proc.ucoz.ru/load/ustrojstvo_processora/1-1-0-2

E. Tannenbaum. Computer Architecture, 4. utg. SPb. Peter 2006.

Internett-ressurs - http://193.108.240.69/moodle/file.php/5/navch_pos_OS.doc

Internett-ressurs - http://znanija.com/task/1788585

Skrevet på Allbest.ru

Lignende dokumenter

    Klassifisering av datamaskinens minne. Bruk av operativt, statisk og dynamisk tilfeldig tilgangsminne. Hvordan DDR SDRAM fungerer. Formatering av magnetiske disker. Hovedproblemet med synkronisering. Teorien om beregningsprosesser. Minneadressering.

    semesteroppgave lagt til 28.05.2016

    Historien om fremveksten og utviklingen av tilfeldig tilgangsminne. Generelle kjennetegn ved de mest populære moderne typene tilfeldig tilgangsminne - SRAM og DRAM. Phase Change Memory (PRAM). Tyristorminne med tilfeldig tilgang, dets spesifisitet.

    semesteroppgave, lagt til 21.11.2014

    Den enkleste ordningen for interaksjon av RAM med CPU. Enheten og prinsippene for funksjon av tilfeldig tilgangsminne. Evolusjon av haugminne. EDO-DRAM BEDO (Burst EDO) minnemodul - burst EDO RAM. SDRAM, DDR SDRAM, SDRAM II.

    abstrakt, lagt til 13.12.2009

    Konseptet, typene og grunnleggende funksjonene til datamaskinminne - deler av en datamaskin, en fysisk enhet for lagring av data brukt i beregninger for en viss tid. Skjematisk diagram av tilfeldig tilgangsminne. Fleksible magnetiske disker.

    presentasjon lagt til 18.03.2012

    Minne for datasystemer, dets opprettelse og egenskaper ved funksjoner. Oppretting av minneenheter og grunnleggende ytelsesegenskaper. Funksjonelle diagrammer og metode for organisering av matrisen av lagringselementer. Typer magnetisk og flashminne.

    presentasjon lagt til 01/12/2009

    Lagring av ulike opplysninger som hovedformålet med minne. Kjennetegn på minnetypene. Minnetype SRAM og DRAM. Cache-minne eller cache-minne, dets spesifisitet og applikasjoner. Den siste utviklingen innen in-memory.

    presentasjon lagt til 12.01.2014

    Generalisering av hovedtyper og formål med datamaskin RAM. Flyktig og ikke-flyktig minne. SRAM og DRAM. Triggere, DRAM og dets modifikasjoner. Bufferminnet. Permanent lagringsenhet. Flashminne. Typer eksternt minne.

    semesteroppgave, lagt til 17.06.2013

    Forbedre parametrene til minnemoduler. Funksjon og interaksjon av operativsystemet med RAM. Analyse av hovedtypene, parametere for tilfeldig tilgangsminne. Programdelen med behandling av kommandoutførelse og plassering i RAM.

    semesteroppgave, lagt til 12.02.2009

    Generell mikroprosessorenhet. Strukturen til 64-bits minnedelsystemet. Valg av I/O-porter. Funksjoner ved grensesnittet til mikroprosessorsystemer. Utforme et minnedelsystem basert på Itanium 2. Beregning av informasjonsinnhold og nødvendige volumer.

    semesteroppgave lagt til 12.05.2012

    Konseptet og funksjonelle funksjonene til datamaskinlagringsenheter, deres klassifisering og typer, komparative egenskaper: ROM, DRAM og SRAM. Vurdering av fordeler og ulemper ved hver type tilfeldig tilgangsminne, instruksjoner og måter å bruke dem på.

Multiprosessering av datasystemer fører til problemet med samtidig tilgang til minne fra flere prosessorer. Avhengig av hvordan minnet til et multiprosessorsystem er organisert, skilles de ut:

1. Datasystemer med delt minne - Multiprosessorer:

Jeg. PVP (CrayT90)

ii. SMP (Intel SHV, SunFire, Dec8400, etc.)

Jeg. COMA (KSR-1, DDM)

ii. CC-NUMA (Stanford Dash, Data General, etc.)

iii. NCC-NUMA (Crag T3E)

2. Datasystemer med distribuert minne - Multidatamaskiner:

ii. MPP - Løst koblede systemer (Intel TFLOPS)

Forskjellen mellom delt og distribuert minne er forskjellen i strukturen til virtuelt minne, det vil si hvordan det minnet ser ut fra prosessorsiden. Med andre ord, forskjellen mellom delt minne og distribuert minne er hvordan minneundersystemet tolker celleadressen mottatt fra mikroprosessoren (global adresse eller lokal adresse).

Fysisk er nesten alt minne delt inn i selvstendige komponenter som kan nås uavhengig.

Vurder modellene av BC-minnearkitekturer som vil være gyldige for både den multiple MIMD-datastrømklassen og SIMD-klassen:

UMA- VS med delt minne, hvor tilgangen til enhver prosessor til minnet er enhetlig og tar samme tid. Systemer med enhetlig minnetilgang:

Mp - delt minne

Pi - prosessor

Felles buss

Egenskaper: i hvert øyeblikk kan utveksling via bussen bare utføres av en av prosessorene. Ytelsen synker etter hvert som antall prosessorer øker. Oftest er det 4 til 8 prosessorer i systemet, maksimal ytelse = 2. Systemet kan ikke klassifiseres som feiltolerant, siden svikt i én minnemodul eller prosessor kan føre til svikt i hele systemet.

I denne klassen av arkitekturer er det multiprosessorsystemer med minne bestående av flere moduler. Bussen erstattes av en svitsj som ruter prosessorforespørsler til en av flere minnemoduler. Dessuten er alle minnemoduler inkludert i et enkelt adresseområde. Fordel - flere forespørsler kan behandles.

NUMA- heterogen tilgang til minne. Her skilles det ut flere klasser. Et enkelt adresseområde brukes, men hver prosessor har lokalt minne (vanligvis en cache). LP-tilgang er mye raskere enn ekstern minnetilgang via et nettverk eller svitsj.


COMA - kun med cache. Det lokale minnet til hver prosessor er bygget som en stor cache. Cachene til alle prosessorer representerer samlet systemets globale minne. Data er ikke statisk knyttet til en spesifikk minnemodul og har ikke en unik adresse. Dataene overføres til hurtigbufferen til prosessoren som sist ba om det.



Den største ulempen: veldig kompleks kontroll, operativsystemet deltar ikke i kontrollprosessen (alle oppgaver er tildelt maskinvaren).

CC-NUMA er en cache-koherent ikke-uniform minnetilgangsmodell. Ikke cachen brukes, men det vanlige fysisk tildelte minnet. Ingen programvare kreves for å lagre mye oppdatert data. Maskinvarelaget håndterer dette.

NCC-NUMA - modellen forutsetter bruk av et enkelt adresserom, men sikrer ikke konsistens av globale data på maskinvarenivå. Ledelsen er betrodd programvaren, dette anses som en ulempe, men modellen er den mest lovende med tanke på å øke produktiviteten.

Multidatamaskiner - blokkene som systemet er bygget fra, er med prosessor og minne.

NORMA er en arkitektur uten direkte tilgang til eksternt minne.


P - prosessor

M - lokalt minne

K0 og K1 - I/O-kontroller

Blokker er prosesseringselementer. Systemer er satt sammen av dem.

Hver prosessor i et slikt system kan bare få tilgang til eksternt minne ved å utveksle meldinger med prosessorene som det adresserbare minnet tilhører. Alle PE-er i forhold til hverandre betraktes som input-output enheter.

For å sende meldinger til et annet behandlingselement, danner prosessoren en datablokk i sitt lokale minne og varsler sin lokale kontroller om behovet for å overføre informasjon til en ekstern enhet. Gjennom nettverket av sammenkoblinger sendes denne meldingen til den mottakende kontrolleren, som finner en plass i sitt lokale minne og varsler sin prosessor om at den har ankommet, samt kildeprosessoren om mottak av meldingen.



Fordeler - det er ingen strid om bussen eller bryteren ved tilgang til data. Siden det ikke er noen felles buss, er det ingen begrensning på antall prosessorer. I mye mindre grad er problemet med cache-gyldighet. Hver prosessor har rett til å endre sin hurtigbuffer og ikke koordinere sine handlinger med andre.

Ulemper: Hvert prosessorelement har et avbruddssystem. Dette er grunnen til kompleksiteten av informasjonsutveksling (tid for å sende og danne en melding, tid for å generere avbruddsforespørsler og deres behandling).

Kapittel 11

Minneorganisering av datasystemer

I datasystemer som forener mange parallelle prosessorer eller maskiner, er problemet med riktig minneorganisering en av de viktigste. Forskjellen mellom prosessor- og minnehastighet har alltid vært en snublestein i VM-er med én prosessor. VS multiprosessering fører til et annet problem - problemet med samtidig tilgang til minne fra flere prosessorer.

Avhengig av hvordan minnet til multiprosessor (flerdatamaskin) systemer er organisert, skiller man mellom datasystemer med delt minne og AC med distribuert minne. V delte minnesystemer(det kalles ofte også delt eller delt minne) Solens minne betraktes som en fellesskapsressurs, og hver av prosessorene har full tilgang til hele adresseområdet. Delte minnesystemer kalles tett bundet(tett koblede systemer). En lignende konstruksjon av datasystemer finner sted både i SIMD-klassen og i MIMD-klassen. Noen ganger, for å understreke dette faktum, introduseres spesielle underklasser, ved å bruke forkortelsene SM-SIMD (Shared Memory SIMD) og SM-MIMD (Shared Memory MIMD) for å betegne dem.

I opsjon med distribuert minne hver av prosessorene er tildelt sitt eget minne. Prosessorer slås sammen v nettverk og kan om nødvendig utveksle data som er lagret i minnet deres, og overføre til hverandre den såkalte meldinger. Denne typen fly kalles løst koblet(løst koblede systemer). Løst koblede systemer finnes også både i SIMD-klassen og i MIMD-klassen, og noen ganger, for å understreke denne funksjonen, introduseres underklassene DM-SIMD (Distributed Memory SIMD) og DM-MIMD (Distributed Memory MIMD).

I noen tilfeller kalles datasystemer med delt minne multiprosessorer, og systemer med distribuert minne - mtsltdatamaskiner.

Forskjellen mellom delt og distribuert minne er forskjellen i strukturen til virtuelt minne, det vil si hvordan minnet ser ut fra prosessorens side. Fysisk er nesten hvert minnesystem delt inn i selvstendige komponenter som kan nås uavhengig. Måten minneundersystemet tolker celleadressen mottatt fra prosessoren er løsrevet fra det delte minnet. Anta for eksempel at prosessoren utfører kommandoen last RO, i, som betyr "Last register R0 med innholdet i celle i". Når det gjelder delt minne, er i den globale adressen og peker til samme plassering for en hvilken som helst prosessor. I et distribuert minnesystem er i den lokale adressen. Hvis to prosessorer utfører load RO, i-kommandoen, refererer hver av dem til den i-te cellen i det lokale minnet, det vil si til forskjellige celler, og ulik verdi kan lastes inn i R0-registrene.

Forskjellen mellom de to minnesystemene må programmereren huske på, da den bestemmer måten deler av et parallelt program samhandler på. I varianten med delt minne er det nok å lage en datastruktur i minnet og overføre referanser til denne strukturen til parallelle subrutiner. I et distribuert minnesystem må du ha en kopi av de delte dataene i hvert lokalt minne. Disse kopiene lages ved å neste delte data i meldinger sendt til andre prosessorer.

Interleaved adresseminne

Fysisk sett består minnet til et datasystem av flere moduler (banker), mens det essensielle spørsmålet er hvordan adresserommet er fordelt i dette tilfellet (settet med alle adresser som prosessoren kan danne). En måte å distribuere virtuelle adresser på tvers av minnemoduler er å dele opp adresseplassen i sekvensielle blokker. Hvis minnet består av NS banker, deretter cellen med adressen Jeg ved blokksplitting vil det ligge i banken med nummeret Jeg/ n. I system sammenflettet minne(interleaved memory) påfølgende adresser er plassert i forskjellige banker: cellen med adressen i er i banken med nummeret i mod NS. La for eksempel minnet bestå av fire banker, 256 byte i hver. I blokkadresseringsskjemaet vil den første banken bli tildelt virtuelle adresser 0-255, den andre - 256-511 osv. I ordningen med vekslende adresser vil påfølgende celler i den første banken ha virtuelle adresser 0, 4, 8, .. .. i den andre banken - 1, 5, 9, etc. (Fig. 11.1, a).

Fordelingen av adresserommet mellom modulene gjør det mulig å behandle forespørsler om tilgang til minne samtidig, hvis de tilsvarende adressene tilhører forskjellige banker, kan prosessoren be om tilgang til en celle i en av syklusene Jeg og i neste syklus - til celle j. Hvis Jegogj er i forskjellige banker, vil informasjonen bli overført i påfølgende sykluser. Her refererer en syklus til en prosessorsyklus, mens en komplett minnesyklus tar flere prosessorsykluser. I dette tilfellet trenger altså ikke prosessoren å vente til hele syklusen med tilgang til cellen er fullført. Jeg. Den vurderte teknikken lar deg øke gjennomstrømningen: hvis minnesystemet består av

Ris. 11.1- Minne med alternerende adresser: a - tildeling av adresser; b- elementer hentet i trinn på 9 fra en 8 x 8 matrise

et tilstrekkelig antall banker, er det mulig å utveksle informasjon mellom prosessoren og minnet med en hastighet på ett ord per prosessorsyklus, uavhengig av varigheten av minnesyklusen.

Beslutningen om hvilket alternativ for adressetildeling som skal velges (blokkert eller lagdelt) avhenger av forventet rekkefølge for tilgang til informasjon. Programmer er kompilert på en slik måte at sekvensielle instruksjoner er plassert i celler med sekvensielle adresser, så det er stor sannsynlighet for at kommandoen fra celle vil bli utført etter at kommandoen er hentet fra celle med adresse i. Jeg + 1. Kompilatoren plasserer også elementer av vektorer i sekvensielle celler, derfor, i operasjoner med vektorer, kan du dra nytte av interleaving-metoden. Av denne grunn bruker vektorprosessorer vanligvis en eller annen form for adresseinterleaving. Delt minne-multiprosessorer bruker imidlertid blokkbasert adressering, siden minnetilgangsmønstrene i MIMD-systemer kan være svært forskjellige. I slike systemer er målet å koble prosessoren til en minneblokk og bruke så mye av informasjonen den inneholder før du bytter til en annen minneblokk.

Minnesystemer gir ofte ekstra fleksibilitet ved henting av vektorelementer. I noen systemer er det mulig å laste hvert n-te element i vektoren samtidig, for eksempel når elementene i vektoren trekkes ut V, lagret i sekvensielle minneplasseringer; på NS= 4, kommer minnet tilbake Avstanden mellom elementene kalles trinn for indeks eller Skritt(skritt). En interessant bruk av denne egenskapen er Matrix Access. Hvis indekstrinnet er én mer enn antall rader i matrisen, vil en enkelt minnetilgangsforespørsel returnere alle de diagonale elementene i matrisen (Figur 11.1, b). Ansvaret for å sikre at alle hentede elementer av matrisen er plassert i ulike banker ligger hos programmereren.

Minnearkitekturmodeller av datasystemer

Innenfor både delt og distribuert minne er flere modeller av minnesystemarkitekturer implementert.

Ris. 11.2. Klassifisering av modeller av minnearkitekturer til datasystemer

I fig. 11.2 viser klassifiseringen av slike modeller som brukes i datasystemer av MIMD-klassen (det er også sant for S1MD-klassen).

Arkitekturmodeller for delt minne

I systemer med delt minne har alle prosessorer like muligheter, men tilgang til ett enkelt adresseområde. Et enkelt minne kan bygges som en enkelt blokk eller modulært, men sistnevnte er vanligvis tilfellet.

Datasystemer med delt minne, hvor tilgangen til en hvilken som helst prosessor til minne utføres jevnt og tar samme tid, kalles systemer med enhetlig minnetilgang og er forkortet til UMA (Uniform Memory Access). Dette er den vanligste minnearkitekturen for parallelle VC-er med delt minne.

Teknisk sett antar UMA-systemer tilstedeværelsen av en node som forbinder hver av dem NS prosessorer med hver av T minnemoduler. Den enkleste måten å konstruere et slikt fly - å kombinere flere prosessorer (P i) med et enkelt minne (M p) gjennom en felles buss - er vist i fig. 11.3, en. I dette tilfellet kan imidlertid bare én av prosessorene bytte bussen om gangen, det vil si at prosessorene må konkurrere om tilgang til piggen. Når prosessor Р i velger en instruksjon fra minnet, vil andre prosessorer må vente til dekket er klaret. Hvis v systemet inkluderer bare to prosessorer, de er i stand til å arbeide med en ytelse nær maksimum, siden deres tilgang til bussen kan interleaves: mens en prosessor dekoder og utfører en instruksjon, har den andre rett til å bruke bussen til å hente neste instruksjon fra minnet. Men når en tredje prosessor legges til, begynner ytelsen å bli dårligere. Hvis det er ti prosessorer på bussen, vil busshastighetskurven (fig. en) blir horisontal, så tillegget av en 11. prosessor gir ikke lenger et ytelsesløft. Den nederste kurven i denne figuren illustrerer det faktum at minne og buss har en fast båndbredde bestemt av kombinasjonen av minnesyklustid og bussprotokoll, og i et multiprosessorsystem med delt buss er denne båndbredden fordelt over flere prosessorer. Hvis prosessorsyklustiden er lengre enn minnesyklusen, kan mange prosessorer kobles til bussen. Imidlertid er prosessoren vanligvis mye raskere enn minnet, så denne ordningen er ikke mye brukt.

Ris. 11.3. Delt minne: a - kombinere prosessorer ved hjelp av en buss; b - et system med lokale cacher; v- systemytelse som en funksjon av antall prosessorer på bussen; d - multiprosessor VS med delt minne, bestående av separate moduler

En alternativ metode for å konstruere en multiprosessor CS med delt minne basert på NML er vist i fig. 11.3, G. Her er piggen erstattet av en bryter som ruter prosessorforespørsler til en av flere minnemoduler. Til tross for at det er flere minnemoduler, tilhører de alle et enkelt virtuelt adresseområde. Fordelen med denne tilnærmingen er at bryteren er i stand til å betjene flere forespørsler parallelt. Hver prosessor kan kobles til sin egen minnemodul og ha tilgang til den med maksimalt tillatt hastighet. Rivalisering mellom prosessorer kan oppstå når du prøver å få tilgang til samme minnemodul samtidig. I dette tilfellet får bare én prosessor tilgang, og de andre er blokkert.

UMA-arkitekturen skalerer dessverre ikke godt. De vanligste systemene inneholder 4-8 prosessorer, mye sjeldnere 32-64 prosessorer. I tillegg kan slike systemer ikke klassifiseres som feiltolerante, siden svikt i én prosessor eller minnemodul medfører svikt i hele flyet.

En annen tilnærming til å bygge et delt minne VS er uensartet minnetilgang, betegnet som NUM A (Non-Uniform Memory Access), Det er fortsatt et enkelt adresseområde, men hver prosessor har lokalt minne. Prosessoren får direkte tilgang til sitt eget lokale minne, noe som er mye raskere enn å få tilgang til eksternt minne over en svitsj eller nettverk. Et slikt system kan suppleres med globalt minne, så fungerer lokale lagringsenheter som hurtigbufferminne for globalt minne. En slik ordning kan forbedre ytelsen til flyet, men den er ikke i stand til å forsinke utjevningen av den direkte ytelsen på ubestemt tid. Hvis hver prosessor har en lokal hurtigbuffer (Figur 11.3.6), er det stor sannsynlighet (p> 0.9) at den nødvendige kommandoen eller dataene allerede er i lokalt minne. Rimelig sannsynlighet for å treffe lokalt minne reduserer antallet prosessoranrop betydelig Til globalt minne og dermed fører til økt effektivitet. Stedet for bruddet i ytelseskurven (den øvre kurven i fig. 11.3, v), punktet hvor tillegget av prosessorer fortsatt er effektivt flyttes nå til prosessorområdet 20, og det tynnere, hvor kurven blir horisontal, til prosessorområdet 30.

Innenfor konseptet NUMA flere forskjellige tilnærminger er implementert, betegnet med forkortelser SOMA,CC- NUMA og NCC- NUMA.

V arkitektur som kun er cache(SOMA, Cache Only Memory Architecture) det lokale minnet til hver prosessor er bygget som et stort hurtigbufferminne for rask tilgang fra den "egen" prosessoren. Cachene til alle prosessorer betraktes samlet som systemets globale minne. Det er ikke noe faktisk globalt minne. Det grunnleggende trekk ved SOMA-konseptet kommer til uttrykk i dynamikk. Her er ikke dataene statisk bundet til en spesifikk minnemodul og har ikke en unik adresse som forblir uendret i hele levetiden til variabelen. I SOMA-arkitekturen overføres data til hurtigbufferminnet til prosessoren som sist ba om det, mens variabelen ikke er fikset med en unik adresse og kan lokaliseres i enhver fysisk celle når som helst. Flytting av data fra en lokal cache til en annen krever ikke at operativsystemet deltar i denne prosessen, men involverer kompleks og kostbar maskinvare for minnebehandling. Å organisere et slikt regime, den såkalte cache-kataloger. Merk også at den siste kopien av elementet aldri fjernes fra hurtigbufferen.

Siden i SOMA-arkitekturen blir data flyttet til det lokale hurtigbufferminnet til eierprosessoren, har slike fly en betydelig ytelsesfordel i forhold til andre NUM A-arkitekturer. På den annen side, hvis en enkelt variabel eller to forskjellige variabler lagrer den samme hurtigbufferen i en. linjen kreves av to prosessorer, denne hurtigbufferlinjen må flyttes frem og tilbake mellom prosessorer hver gang dataene åpnes. Slike effekter kan avhenge av detaljene i minnetildeling og føre til uforutsigbare situasjoner.

Modell cache-koherent ikke-uniform minnetilgang(CC-NUMA, Сache Coherent Non-Uniform Memory Architecture) er fundamentalt forskjellig fra SOMA-modellen. CC-NUMA-systemet bruker ikke hurtigbufferminnet, men det vanlige fysisk tildelte minnet. Ingen kopiering av sider eller data skjer mellom minneplasseringer. Det er ingen programvaremeldinger. Det er bare én minnepinne, med deler fysisk koblet sammen med kobberkabel, og smart maskinvare. Maskinvarebasert hurtigbufferkoherens betyr at det ikke kreves programvare for å lagre flere kopier av oppdaterte data eller overføre dem. Maskinvarenivået håndterer alt dette. Tilgang til lokale minnemoduler i forskjellige noder i systemet kan utføres samtidig og er raskere enn til eksterne minnemoduler.

Forskjellen mellom modellen med cache-usammenhengende ikke-uniform minnetilgang(NCC-NUMA, Non-Cache Coherent Non-Uniform Memory Architecture) fra CC-NUMA er tydelig fra navnet. Minnearkitekturen antar et enkelt adresserom, men gir ikke maskinvarekonsistens for globale data. Styringen av bruken av slike data hviler utelukkende på programvaren (applikasjoner eller kompilatorer). Til tross for denne omstendigheten, som ser ut til å være en ulempe ved arkitekturen, viser den seg å være svært nyttig for å øke ytelsen til datasystemer med en minnearkitektur av DSM-typen, vurdert i avsnittet "Modeller av distribuerte minnearkitekturer".

Generelt kalles AC-er med delt minne bygget i henhold til NUMA-skjemaet virtuelle delte minnearkitekturer(virtuelle delte minnearkitekturer). Denne typen arkitektur, spesielt CC-NUMA, har nylig blitt betraktet som en uavhengig og ganske lovende type datasystemer av MIMD-klassen, derfor vil slike fly bli diskutert mer detaljert nedenfor.

Distribuerte minnearkitekturmodeller

I et distribuert minnesystem har hver prosessor sitt eget minne og kan bare adressere det. Noen forfattere kaller denne typen systemer flerdatamaskinfly eller multidatamaskiner, fremhever det faktum at byggesteinene i et system i seg selv er små datasystemer med prosessor og minne. Modeller av distribuerte minnearkitekturer er vanligvis betegnet som arkitekturer uten direkte tilgang til eksternt minne(NORMA, Ingen ekstern minnetilgang). Dette navnet følger av det faktum at hver prosessor kun har tilgang til sitt lokale minne. Tilgang til eksternt minne (lokalt minne til en annen prosessor) er kun mulig ved å utveksle meldinger med prosessoren som eier det adresserbare minnet.

Denne organisasjonen har en rekke fordeler. For det første, når du får tilgang til data, er det ingen konkurranse om bussen eller bryterne - hver prosessor kan fullt ut bruke båndbredden til kommunikasjonsbanen med sitt eget lokale minne. For det andre betyr fraværet av en delt buss at det ikke er noen tilhørende begrensninger på antall prosessorer: størrelsen på systemet begrenses kun av nettverket av prosessorer. For det tredje fjernes problemet med cache-koherens. Hver prosessor har rett til uavhengig å endre sine data uten å bekymre seg for å matche kopier av data i sitt eget lokale cache-minne med cacher til andre prosessorer.

Den største ulempen med en distribuert minnedatamaskin er kompleksiteten til informasjonsutveksling mellom prosessorer. Hvis noen av prosessorene trenger data fra minnet til en annen prosessor, må den utveksle meldinger med denne prosessoren. Dette fører til to typer kostnader:

    det tar tid å danne og videresende en melding fra en! prosessor til en annen;

    for å svare på meldinger fra andre prosessorer, må den mottakende prosessoren motta en avbruddsforespørsel og utføre en rutine for å håndtere det avbruddet.

Strukturen til et distribuert minnesystem er vist i fig. 11.4. Til venstre! deler (fig.11.4, en) ett prosesseringselement (PE) vises. Den inkluderer) selve prosessoren (P), lokalt minne (M) og to I/O-kontrollere (K about og KD på høyre side (fig.11.4, b) Det vises et system med fire prosessorer som illustrerer hvordan meldinger sendes fra en prosessor til en annen. I forhold til hver PE kan alle andre prosesseringselementer enkelt sees som inngangs-/utgangsenheter. For å sende en melding til en annen PE, danner prosessoren en datablokk i sitt lokale minne og varsler sin lokale kontroller om behovet for å overføre informasjon til en ekstern enhet. Gjennom sammenkoblingsnettverket videresendes denne meldingen til den mottakende I/O-kontrolleren til den mottakende PE. Sistnevnte finner plass til meldingen i sitt eget lokale minne og varsler kildebehandleren om at meldingen er mottatt.

Ris. 11.4. Datasystem med distribuert minne: a - prosessorelement; b- forening av behandlingselementer om

En interessant variant av et distribuert minnesystem er; modell distribuert delt minne(DSM, Distribute Shared Memory), også kjent under et annet navn arkitektur med heterogenminnetilgang og programvaresammenheng(SC-NUMA, Software-Coherent Non-Uniform Memory Architecture). Ideen med denne modellen er at BC, som fysisk er et system med distribuert minne, takket være operativsystemet fremstår for brukeren som et system med delt minne. Dette betyr at operativsystemet tilbyr brukeren et enkelt adresserom, til tross for at selve tilgangen til minnet til den «fremmede» flydatamaskinen fortsatt gis gjennom utveksling av meldinger.

Multiprosessorcache-sammenheng

Et flerprosessorsystem med delt minne består av to eller flere uavhengige prosessorer, som hver kjører enten en del av et stort program eller et uavhengig program. Alle prosessorer får tilgang til instruksjoner og data som er lagret i delt hovedminne. Siden minne er en delt ressurs, er det konkurranse mellom prosessorene når de får tilgang til det, noe som øker den gjennomsnittlige minnetilgangstiden. For å redusere denne ventetiden tildeles en lokal hurtigbuffer til hver prosessor, som ved å betjene lokale minnetilganger i mange tilfeller forhindrer behovet for å få tilgang til delt hovedminne. I sin tur, å utstyre hver prosessor med et lokalt cache-minne fører til den såkalte sammenhengsproblem eller gi i enighetbufferminnet. I henhold til systemet er systemet koherent hvis hver leseoperasjon på en adresse, utført av en av prosessorene, returnerer verdien som ble lagt inn under den siste skriveoperasjonen på denne adressen, uavhengig av hvilken prosessor som sist skrev.

I sin enkleste form kan problemet med cache-koherens forklares som følger (Figur 11.5). La to prosessorer R G og Pg er koblet til det delte minnet via en buss. Først leser begge prosessorene variabelen NS. Kopier av blokkene som inneholder denne variabelen overføres fra hovedminnet til de lokale cachene til begge prosessorene (Figur 11.5, en). Deretter utfører prosessoren Pt operasjonen med å øke verdien av variabelen NS per enhet. Siden en kopi av variabelen allerede er i hurtigbufferen til denne prosessoren, vil et hurtigbuffertreff oppstå og verdien vil kun endres i hurtigbuffer 1. Hvis nå prosessor P2 igjen utfører en leseoperasjon NS, da vil det også oppstå et cache-treff og P2 vil motta den "gamle" verdien som er lagret i cache-minnet NS(fig.11.5, b).

Opprettholdelse av konsistens krever at når et dataelement endres av en av prosessorene, gjøres de tilsvarende endringene i cache-minnet til de andre prosessorene, hvor det er en kopi av det endrede dataelementet, så vel som i delt minne. Et lignende problem oppstår forresten i enprosessorsystemer, hvor det er flere nivåer av hurtigbufferminne. Her kreves det å avstemme innholdet i cacher på forskjellige nivåer.

Det er to tilnærminger til å løse koherensproblemet: programvare og maskinvare. Noen systemer bruker strategier som kombinerer begge tilnærmingene.

Programvareløsningersammenhengsproblemer

Programvareteknikker for å løse koherensproblemet gjør det mulig å klare seg uten tilleggsutstyr eller å minimere det)