Gå til innhold

Generelle datatekniske spørsmål


Anbefalte innlegg

Lurer på om noen kan forklare meg hva L1, L2, L3 minne (cache?) i forbindelse med CPU er og hvilken oppgave det har?

Hva betyr det at en PC har f.eks 4 kjerner? Betyr det at den har 4 ulike sockets for CPUer?

Er det slik at absolutt ingenting skjer uten først en binærstrøm til RAM? Altså for å aksessere noe i HDD, f.eks en tekstfil, så må først en kopi av tekstfilen sendes til RAM, som så sender binærinformasjon til CPU, som så til slutt får filen til å åpne seg?

Hva er det som ligger i virtuelt minne? 

Lenke til kommentar
Videoannonse
Annonse

Flyttet tråden din da den ikke har noe med bærbare pcer å gjøre.

 

Her finner du litt lesestoff ang de ulike Lx minne funksjonen (på engelsk)

 

 

Hva betyr det at en PC har f.eks 4 kjerner? Betyr det at den har 4 ulike sockets for CPUer?

 

Det betyr jo det som det beskriver. En prosessor kan ha flere kjerner. Dette kan igjen brytes ned til fysiske kjerner, som er jo fysiske, altså et "kakestykke" på selve prosessoren. Så har du logiske kjerner, som ofte er Hyper Thread, som ikke er fysiske, men som emuleres slik at operativsystemet ser den som en ekstra kjerne. Dette er ikke det samme som sockets, som er ekstra fysiske prosessorer. (som igjen har sine kjerner).

 

Resten får andre svare på

Lenke til kommentar

Lurer på om noen kan forklare meg hva L1, L2, L3 minne (cache?) i forbindelse med CPU er og hvilken oppgave det har?

 

Hva betyr det at en PC har f.eks 4 kjerner? Betyr det at den har 4 ulike sockets for CPUer?

 

Er det slik at absolutt ingenting skjer uten først en binærstrøm til RAM? Altså for å aksessere noe i HDD, f.eks en tekstfil, så må først en kopi av tekstfilen sendes til RAM, som så sender binærinformasjon til CPU, som så til slutt får filen til å åpne seg?

 

Hva er det som ligger i virtuelt minne? 

 

For å forklare dette kort og enkelt så fungerer en datamaskin slik:

 

På harddisken din så har du lagret binær data i form av tekst (ASCII), eller i form av instruksjoner. Men for å forenkle dette så sier vi at programmet ditt ligger i RAM. Det første prosessoren din vil gjøre er å lese toppen av minnet ditt, altså adresse 00000000 (For 8-bit systemer, for å forenkle ting litt), her så finner du dataen 11000011 som lastes inn i prosessoren, før den går til de neste 8 bitene av RAM som man finner på 00000001 (1), der du har f.eks 11110000, og på 00000010 (2)

 

Nå har du 11000011, og 11110000, og dette er vår første maskininstruksjon, nemlig 11000011 (JP i assembly) 11110000 som betyr at prosessoren har fått beskjed om å jumpe til 11110000, slik at vår neste plass vi leter etter instruksjoner i RAM vil være på 11110000. Slik som dette kan du programmere alle datamaskiner.

ld a, %00101010 ;last 42 inn i register a
add a, %00000001 ; pluss på 1
jp $0000 ; hopp tilbake til start $ betyr hexadecimal

Dette kompileres til binært slik som over, eller oversettes til maskinspråk.

~ > bindump a.bin 
Minnelokasjon: instruks (Det er kun binærtallene i midten som datamaskinen vil se, alt annet er for deg)
00000000: 00111110  ;LD A        <-----------------------------
00000001: 00101010  ;42 (Last 42 i A)                          | 
00000002: 11000110  ;ADD A                                     |
00000003: 00000001  ;1 (ADD 1 til A)                           |
00000004: 11000011  ;JP                                        |
00000005: 00000000  ;16-bit del 1 minnelokasjon                |
00000006: 00000000  ;16-bit del 2 minnelokasjon (JP til $0000)--

Denne vil lese fra toppen og nedover, og vil med andre ord bare plusse på 1 til 42 i evig tid.

 

Nå som du vet det så kan vi gå over til den lette delen, nemlig spørsmålene dine:

Cache er hva vi på norsk kaller en mellomlagring, og er der fordi minnet der dataen over er lagret er relativt tregt i forhold til prosessoren din, så prosessoren din henter noen av disse instruksene fra minnet ditt om den har ledig tid.

 

Hvis du har fire kjerner, så har du fire forskjellige enheter som henter slike instrukser og regner de ut. Etter det så legger de det tilbake på RAM slik at de kan dele på arbeidet mellom seg. Moderne datamaskiner har stort sett alle kjernene i samme prosessorsokkel, men det er mer eller mindre det samme som fire forskjellige prosessorer, om man fordummer det veldig.

 

Virtuelt minne er når du når 11111111 11111111 i minnelokasjon. Da kan prosessoren tyvlåne harddisken og dumpe den gamle koden som du ikke kommer til å bruke på en god stund.

 

Edit: Dette er forresten ekte Z80 maskinkode. Jeg bruker Z80 som er en gammel prosessor fordi det er enkelt, og fordi det er den prosessoren jeg kan best.

Endret av Gavekort
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...