Tentamen PC-teknik 5 p Lösningar och kommentarer Program: Di2, Em3, Et3 Datum: 02-10-13 Tid: 08:00-13:00 Lokal E104 Hjälpmedel: Linjal, miniräknare, Instruktionsrepertoar för 8086 (utdelas), Lathund, Pacific C för MSDOS (utdelas). Bilagor: Interrupt, ASCII-tabell Examinator: Anders Arvidsson Telefon: 036-15 61 12, 0707-76 28 86 Examinatorn besöker tentamen. Uppgifterna redovisas direkt i frågebladet, eller på separat ark, vilka då ska numreras och hänvisas till från uppgiftsbladet. Max poäng: 25 Betyg Poäng 3 10 4 15 5 20 1 (7)
Tentamensfrågor 1. I ett program kompilerat med Pacific deklareras en variabel enligt: signed char tenta; Variabeln lagrar talet 10 dec. Beskriv vad tenta innehåller, i binär form. 11110110 Ytterligare en variabel har deklarerats enligt: signed int tentatest; Innehållet i tenta kopieras till tentatest enligt: tentatest = tenta; Beskriv, i binär form, vad tentatest innehåller. 11111111 11110110 (2 p) 2. I C-kod utförs följande instruktion, där test är en variabel stor nog att hålla resultatet: test = 19 25; Vad blir resultatet? Svara decimalt! Svar: 27 (1 p) 3. Vad kommer registren att innehålla för värde efter att nedanstående kod exekverats? Svara decimalt! (3 p) mov al,#20h mov cx,#3 mov dx,#1 mul cl 1: call tenta1 loop 1b mov bx,ax shr bx,#2 jmp tenta2 tenta1: dec dl ret tenta2: dec dl ax: 96 bx: 24 cx: 0 dx: 253 2 (7)
4. Skriv ett assemblerinlägg i main() nedan så att programmet läser tecken från tangentbordet och skriver ut dem på skärmen. Om tecknet är en liten bokstav a z ska denna skrivas ut som en stor bokstav A Z. Alla övriga tecken ska skrivas ut som de matas in. Programmet ska avslutas vid tryck på Enter (d v s Carriage Return). Se bilaga för nyttig dokumentation. Inga variabler får deklareras. Skriv koden på separat ark. #include <stdio.h> void main(void) { #asm mloop: mov ah,#0 int #16H ;Vänta på och läs in tang cmp al,#13 ;CR jz done ;Vagnretur hittad cmp al,#'a' ;Compare 'a' jb print ;Below, skriv ut cmp al,#'z' ;Compare 'z' ja print ;Above, skriv ut sub al,#20h ;Mellan => liten blir stor print: mov ah,#0eh ;Teletype mode mov bh,#0 ;Screenpage 0 mov bl,#1 ;Ger någon färg om grafikläge int #10H ;Skriv ut tecken done: #endasm } jmp mloop (3 p) 5. Vad har processorns kontrollbuss för funktion? (1 p) Styr t ex om adress avser I/O eller minne och om en adresserad enhet ska läsa från eller skriva till databussen. 6. Beskriv huvudsakliga skillnaden mellan processorfamiljerna Pentium och Itanium. Redogör också för hur Itanium exekverar kod kompilerad för Pentium. (2 p) Pentium är intern en 32-bitarsprocessor medan Itanium är 64-bitars. 32-bitarsinstruktioner emuleras i processorn, d v s exekveringen går långsammare än om man kör 64-bitarskod. 3 (7)
7. Vad uträttar en BIU? (1 p) Bus Interface Unit är inbyggd i processorn och sköter om systembussen. När kontrollenheten inte behöver systembussen passar BIU på att hämta efterföljande instruktioner ur minnet och placera dem i en kö, Prefetch Queue. 8. På vilket sätt kan en pipeline öka en processors exekveringshastighet? (1 p) En instruktion kan exekveras i flera små steg. En pipeline ökar exekveringshastigheten genom att låta processorn exekvera senare del av en instruktion medan en annan påbörjas. 9. Vilka tre ställen kan L2-cache vara placerat på? En av placeringarna skulle ge möjlighet till uppgradering. Varför sitter det inte alltid där? (2 p) On-die (d v s på chippet), i kapseln, eller på moderkortet. En kapsel på moderkortet ger möjlighet till uppgradering, men för att det ska löna sig med cache där är en förutsättning att DRAM är långsammare än FSB. (Gällde t ex första Pentium, då 60 ns EDO användes.) 10. Vad står förkortningen RAM för? Random Access Memory (1 p) 11. Vad menas med ett flyktigt minne? (1 p) Innehållet försvinner när spänningen slås av. 12. Vad är AGP primärt tänkt att användas till? (1 p) Grafikkort. (Vilket hörs om man uttyder förkortningen.) 13. Vilken/vilka av följande minnestyper är elektriskt raderbar(a)? Ringa in rätt svar. (1 p) Flash EPROM EPROM EEPROM PROM ROM 4 (7)
14. Ett något äldre chipset kan bestå av North Bridge, South Bridge och Super I/O. Beskriv översiktligt vad de tre delarna har för uppgift. (Det går bra att även bifoga en skiss på separat ark.) (2 p) North Bridge kopplar ihop processorn med AGP, PCI och minne. South Bridge ansluts via PCI och hanterar något långsammare gränssnitt som ISA, USB och ATA. Super I/O ansluts via ISA (South Bridge) och ansluter riktigt långsamma enheter som Floppy, mus, BIOS och COM-portar. 15. Vad står förkortningen USB för? (1 p) Universal Serial Bus (Ok, förkortningsfrågor verkar rätt intelligensbefriade, men förhoppningen är att den som letar förkortningen som anges bland kunskapsmålen även ska stöta på en del annat intressant i texten.) 16. Vilka två typer av ATA-kablage (för parallell ATA) finns? När ska respektive typ användas? (1 p) 40 respektive 80 ledare. Kablaget med 80 ledare är försett med extra jordledare för att minska problem mde överhörning. Detta kablage måste användas vid högre datahastigheter (66 MByte/s och uppåt), men gör ingen skada vid lägre hastigheter heller. 17. Jämför (parallell) ATA-6/100 med Serial ATA beträffande hastighet. Ange också om det normalt påverkar hastigheten med vilken vi kan läsa data från hårddisken. Motivera ditt påstående! (1 p) Serial ATA är snabbare (150 MByte/s), men eftersom hårddisken inte ens kan läsas med 100 MByte/s spelar gränssnittet ingen roll ur den aspekten, men S-ATA kan ju vara smidigare att ansluta. Notera att svårighetsgraden inte ökar mot slutet av tentan. Istället är frågorna sorterade ungefär enligt studieanvisningarna, vilket gör det enkelt att hitta djupare förklaringar i litteraturen. 5 (7)
Bilagor Användbara interrupt INT 16H Function 00H Read Character from Keyboard. (Waits for keystroke) Register Call Value Return Value AH 00H Scan Code AL ASCII-Character Code (=0 if extended key) INT 10H Function 0EH Write Text in Teletype mode Writes an ASCII character to the display at the current cursor position, using the specified colour (if in graphics mode), then increments the cursor position. Register Call Value Return Value AH AL BH BL 0EH ASCII value screen page foreground color in graphics mode 6 (7)
7 (7)