Sekvensiell logikk En enkel maskinmodell Om ARC - A RISC COMPUTER ARC - instruksjonsettet ARC - pseudo-operasjoner ITPE/DATS 2400: Datamaskinarkitektur og Nettverk Instruksjonsettarkitektur Knut Nygård / T. M. Jonassen Institute of Computer Science Faculty of Technology, Art and Design Oslo and Akershus University College of Applied Sciences 27. Januar 2015 university-logo Sekvensiell logikk En enkel maskinmodell Om ARC - A RISC COMPUTER ARC - instruksjonsettet ARC - pseudo-operasjoner Oversikt 1 Sekvensiell logikk 2 En enkel maskinmodell 3 Om ARC - A RISC COMPUTER 4 ARC - instruksjonsettet 5 ARC - pseudo-operasjoner 6 ARC - syntetiske instruksjoner 7 ARC - et eksempel university-logo Sekvensiell logikk En enkel maskinmodell Om ARC - A RISC COMPUTER ARC - instruksjonsettet ARC - pseudo-operasjoner Mønstergjenkjenner Eksempel med sekvensiell krets med D-vipper som gjenkjenner mønsteret 1101 i en bit-strøm. Gjøres på whiteboard. Eksemplet er gitt som eksamensoppgave våren 2013, se oppgave 1 b. university-logo Sekvensiell logikk En enkel maskinmodell Om ARC - A RISC COMPUTER ARC - instruksjonsettet ARC - pseudo-operasjoner Bus Data bus: Kommunikasjonslinjer for å overføre informasjon. Addresse bus: Kommunikasjonslinjer dedikert for å sende adressser. Control bus: Kommunikasjonslinjer for å sende kontrollsignaler (styringssignaler). university-logo Sekvensiell logikk En enkel maskinmodell Om ARC - A RISC COMPUTER ARC - instruksjonsettet ARC - pseudo-operasjoner CPU En modell av en CPU med ALU (aritmetisk-logisk enhet), registerfil og kontrollenhet. ALU og registerfil kalles en datapath, og utfører operasjoner (dekodede instruksjoner) som kalles mikrooperasjoner. Kontrollenheten dekoder instruksjoner fra minnet (og andre ting). university-logo Sekvensiell logikk En enkel maskinmodell Om ARC - A RISC COMPUTER ARC - instruksjonsettet ARC - pseudo-operasjoner CPUs arbeidssteg skjematisk 1. Hent neste instruksjon fra minnet som skal utføres. 2. Dekode opcode (operation code). 3. Les eventelle operand(er) fra minnet. 4. Utfør instruksjonen og lagre eventuelle resultater. 5. Start på nytt med ny instruksjon. Viktige registere: Programteller (PC): Inneholder adressen til neste instruksjon som skal utføres. Instruksjonsregister (IR): Inneholder instruksjonen som skal utføres før den dekodes. university-logo Sekvensiell logikk En enkel maskinmodell Om ARC - A RISC COMPUTER ARC - instruksjonsettet ARC - pseudo-operasjoner Datapath Skjematisk fremstilling av en datapath. Vi skal se nøyere på denne senere (kap. 5). university-logo Sekvensiell logikk En enkel maskinmodell Om ARC - A RISC COMPUTER ARC - instruksjonsettet ARC - pseudo-operasjoner Minnet Minnemodellen for ARC arkitekturen vi skal bruke som eksempel i dette kurset. university-logo Sekvensiell logikk En enkel maskinmodell Om ARC - A RISC COMPUTER ARC - instruksjonsettet ARC - pseudo-operasjoner Mer om ARC-minnemodellen 1 Flatt minne. Minste adresserbare enhet er en byte. Ordstørrelse (word) er fire byte. Bruker big-endian. Big-endian: Første bit på adresse mest signifikant. Little-endian: Første bit på adresse minst signifikant. 32-bits adresser, derfor er en adresse 32/4 = 8 heksadesimale siffer. university-logo Sekvensiell logikk En enkel maskinmodell Om ARC - A RISC COMPUTER ARC - instruksjonsettet ARC - pseudo-operasjoner Mer om ARC-minnemodellen 2 Deler av minnet reservert OS. Deler av minnet reservert stack. Deler av minnet reservert I/O-enheter. Resten kalles user space. Minne for programmer. Bruker hard-alignment modellen: To halvord (2 byte hver) må settes sammen like-byte adresser, og to ord (4 byte hver) må settes sammen på like-ord adresser. Halvord har adresser som er like, ord har adresser som er multipler av 4. university-logo Sekvensiell logikk En enkel maskinmodell Om ARC - A RISC COMPUTER ARC - instruksjonsettet ARC - pseudo-operasjoner ARC - A RISC Computer Forfatterene av læreboken har laget en tenkt og forenklet maskinmodell: ARC - A Risc Computer. RISC - Reduced Instruction Set Computer. Det er laget en simulator for denne etter modell av SPARC prossorene fra Sun (open doc ca 1992). Simulator (i Java) kan lastes ned fra bluemaster.cs.hioa.no under: /edu/darknet-15/files/ARCToolsv2.1.2.zip Arkivet inneholder simulator, eksempler og README-filer. university-logo Sekvensiell logikk En enkel maskinmodell Om ARC - A RISC COMPUTER ARC - instruksjonsettet ARC - pseudo-operasjoner Om ARC Vi skal i det følgende se litt mer detaljert på modellen ARC. Minnet. Registerfilen, andre registere. ARC assemblerspråket generelt. Instruksjonsettet. ARC simulatoren. Noen enkle eksempler på ARC assembler programmer. university-logo Sekvensiell logikk En enkel maskinmodell Om ARC - A RISC COMPUTER ARC - instruksjonsettet ARC - pseudo-operasjoner Minnet Detaljer: Resevert OS: Adresse 0 til 211 − 1 altså 2048 bytes. User space: Fra adresse 2048 til topp på stack. Stack: Starter på adresse 231 − 4 og vokser mot lavere adresser. Reservert I/O enheter: Adresser mellom 231 og 232 − 1. (Memory mapped I/O). university-logo Sekvensiell logikk En enkel maskinmodell Om ARC - A RISC COMPUTER ARC - instruksjonsettet ARC - pseudo-operasjoner Memory modell university-logo Sekvensiell logikk En enkel maskinmodell Om ARC - A RISC COMPUTER ARC - instruksjonsettet ARC - pseudo-operasjoner Registerfil - registere ARC har en registerfil med 32 registere, hvert på 32 bit (ett ord). Disse betegnes med %r0 til %r31. Tre av disse har spesiell bruk: %r0 er alltid 0, %r14 brukes som stackpeker, %sp og%r15 er et link register, brukes ved kall av subrutiner. I tillegg finnes %pc (32 bits) som inneholder adressen til insrtuksjonen som utføres. Vi har også %psr (processor status register) som inneholder informasjon om status til prossessor. university-logo Sekvensiell logikk En enkel maskinmodell Om ARC - A RISC COMPUTER ARC - instruksjonsettet ARC - pseudo-operasjoner Traps Registeret PSR har bits som støtter traps. Dette er en mekanisme for å stoppe vanlig flyt av instruksjoner. PÅ noen prossessorer kalles dette interupts. På x86 prossessorer brukes dette for kommunikasjon med annen hardware. university-logo Sekvensiell logikk En enkel maskinmodell Om ARC - A RISC COMPUTER ARC - instruksjonsettet ARC - pseudo-operasjoner Om instruksjonene generelt Alle instruksjoner har 32 bits størrelse. ARC er en load - store maskin. Dette betyr at minne bare kan aksesseres gjennom slike operasjoner. Alle operasjoner utføres på data i registere. ARC instruksjonene (50) er en delmengde av SPARC prossessoren instruksjoner (200). ARC og SPARC instruksjoner har samme syntaks (nesten alltid sant). ARC er en 2-komplement maskin. university-logo Sekvensiell logikk En enkel maskinmodell Om ARC - A RISC COMPUTER ARC - instruksjonsettet ARC - pseudo-operasjoner Instruksjonstyper Aritmetiske instruksjoner. Logiske instruksjoner. Load/store instruksjoner. Kontroll (branch) instruksjoner university-logo Sekvensiell logikk En enkel maskinmodell Om ARC - A RISC COMPUTER ARC - instruksjonsettet ARC - pseudo-operasjoner Eksempel 1 add rs1, reg or imm, rd vil medføre rd ← rs1 + rs2 hvor rs2 er reg eller imm. add %r1, %r2, %r3 gir %r3 ← %r1 + %r2. add %r1, 12, %r2 gir %r2 ← %r1 + 12. university-logo Sekvensiell logikk En enkel maskinmodell Om ARC - A RISC COMPUTER ARC - instruksjonsettet ARC - pseudo-operasjoner Mer om instruksjoner Notasjonen a ← b + c kalles register transfer language (RTL). Alle instruksjoner lagres på 32 bits. Dette gir 13 bits til konstanter, så disse må være mellom −4196 og 4195. Konstanter tolkes i base 10. Konstanter som starter med 0x tolkes heksadesimalt. En instruksjon har inntil seks felt: Label, opcode, opptil tre operander, kommentar university-logo Sekvensiell logikk En enkel maskinmodell Om ARC - A RISC COMPUTER ARC - instruksjonsettet ARC - pseudo-operasjoner Load/store 1 Load: ld [address], rd rd ← M[address] Store: st rd, [address] M[address] ← rd university-logo Sekvensiell logikk En enkel maskinmodell Om ARC - A RISC COMPUTER ARC - instruksjonsettet ARC - pseudo-operasjoner Load/store 2 university-logo Sekvensiell logikk En enkel maskinmodell Om ARC - A RISC COMPUTER ARC - instruksjonsettet ARC - pseudo-operasjoner Kontroll operasjoner Brukes til å komme til en annen del av programmet. university-logo Sekvensiell logikk En enkel maskinmodell Om ARC - A RISC COMPUTER ARC - instruksjonsettet ARC - pseudo-operasjoner Pseudo-operasjoner Pseudo-operasjoner er ikke instruksjoner, men direktiver til assembleren. Eksempler: university-logo Sekvensiell logikk En enkel maskinmodell Om ARC - A RISC COMPUTER ARC - instruksjonsettet ARC - pseudo-operasjoner Syntetiske instruksjoner (makro) En “syntetisk” instruksjon er ikke en instruksjon men noe som omformes av assembler til instruksjoner under assemblingen. Eksempler: university-logo Sekvensiell logikk En enkel maskinmodell Om ARC - A RISC COMPUTER ARC - instruksjonsettet ARC - pseudo-operasjoner Addere to tall ! Legg sammen to tall .begin .org 2048 prog1: ld [x], %r1 ! Legg x i r1 ld [y], %r2 ! Legg y i r2 addcc %r1, %r2, %r3 ! r3 = r1 + r2 st %r3, [z] ! Lagre r3 i z jmpl %r15 + 4, %r0 ! Avslutt ! Data x: 15 y: 12 z: 0 .end university-logo Sekvensiell logikk En enkel maskinmodell Om ARC - A RISC COMPUTER ARC - instruksjonsettet ARC - pseudo-operasjoner bin - filen 00000800 00000800 00000804 00000808 0000080c 00000810 00000814 00000818 0000081c c2002814 c4002818 86804002 c620281c 81c3e004 0000000f 0000000c 00000000 university-logo Sekvensiell logikk En enkel maskinmodell Om ARC - A RISC COMPUTER ARC - instruksjonsettet ARC - pseudo-operasjoner lst -filen (ARCTools Version 2.0.2) HexLoc DecLoc MachWord Label 00000800 00000804 00000808 0000080c 00000810 0000002048 0000002052 0000002056 0000002060 0000002064 c2002814 c4002818 86804002 c620281c 81c3e004 prog1: 00000814 00000818 0000081c 0000002068 0000002072 0000002076 0000000f 0000000c 00000000 x: y: z: Instruction .org 2048 ld [2068], %r1 ld [2072], %r2 addcc %r1, %r2, %r3 st %r3, [2076] jmpl %r15, 4, %r0 Comment ! ! ! ! ! ! Legg x i Legg y i r3 = r1 Lagre r3 Avslutt Data r1 r2 + r2 i z --- Symbol Table --x: 2068 z: 2076 prog1: 2048 y: 2072 university-logo
© Copyright 2024