Tentamen PC-teknik 5 p Lösningar och kommentarer Program: Di2, (Em3, Et3) Datum: 04-10-15 Tid: 13:30-18:30 Lokal E171 Hjälpmedel: Linjal, miniräknare, Instruktionsrepertoar för 8086 (utdelas), Lathund, Pacific C för MSDOS (utdelas). Bilagor: ASCII-tabell, Interrupt Examinator: Anders Arvidsson Telefon: 036-15 61 12, 0707-76 28 86 Examinatorn besöker tentamen. Uppgifterna redovisas direkt i frågebladet. Vid utrymmesbrist lämnas svar på separat ark, vilket då numreras och hänvisas till från uppgiftsbladet. Max poäng: 25 Betyg Poäng 3 10 4 15 5 20 1 (8)
Tentamensfrågor 1. Skriv talet 1010101.01010 2 i decimal form. (1 p) 85,3125 2. Vad skrivs ut på skärmen då nedanstående program körs? (ASCII-tabell finns som bilaga.) #include <stdio.h> void main(void) { char test; test = 'e' & 251; printf("%c", test); } Svar: a (1 p) 3. Vad kommer registren att innehålla för värde efter att nedanstående kod exekverats? Svara decimalt! (3 p) mov dx,#1 mov ax,#0fff0h mov bx,#17 add ax,bx inc ax mov cx,ax shl cx,#1 A: dec bx loop A mul bx ax: 26 bx: 13 cx: 0 dx: 0 2 (8)
4. Ett program i C och assembler ska rita ut en pixel med färgen 14 på koordinater som läses in vid programstart. Pixeln ska skrivas direkt till grafikminnet. C-koden och programstrukturen är redan klar så uppgiften är begränsad till att skriva de assemblerinstruktioner som behövs. @ markerar att en eller flera rader assembler behövs vid denna position. Det är tillåtet att deklarera fler variabler vid behov. Lös uppgiften på separat ark och ta med så mycket av den ursprungliga koden att det blir lätt att följa strukturen. Några tips: Väl kommenterad kod ger lättare tröstpoäng t ex om en fel instruktion används, men då ganska lite kod ska skrivas kommer även små fel ge poängavdrag! Kom ihåg att grafikminnet börjar 640 kbyte upp (1 kbyte = 1024 byte) och att mov inte kan användas för att flytta ett tal till ett segmentregister men däremot kan flytta innehållet i en minnesadress till/från ett segmentregister. #include <stdio.h> int storees, X, Y; void main(void){ #asm printf("ange X och Y koordinat. \n"); scanf("%d %d", &X, &Y); getchar(); ; Initierar grafiken för 320*200, 256 färger mov mov al,#19 ah,#0 int #10h ; Spara undan nuvarande es och låt nya es peka på början av grafikminnet push es mov mov _storees,#0a000h,word es,_storees ; Skriver en pixel med färgen 14 på angiven koordinat mov ax,#320 mul _Y,word add ax,_x mov bx,ax ; BX = adress som motsvarar X,Y mov al,#14 ; Gul mov es:[bx],al,byte ; Skriv i bildminnet 3 (8)
#endasm getchar(); // Väntar på tangent #asm ; Återställer ursprungligt grafikläge (dvs mode 2) mov AX,#0002h int #10h ; Återställer es pop es #endasm } (3 p) 5. Vid framställning av chip m h a litografi begränsas minsta möjliga ledarbredd av våglängden (λ) på det ljus man använder. Ringa in den minsta möjliga ledarbredden i förhållande till använd ljusvåglängd. (1 p) 0,01*λ 0,1*λ 1*λ 10*λ 100*λ 1000*λ 10000*λ 6. Vilka tre bussar bildar tillsammans systembussen? (1 p) Databussen Adressbussen Kontrollbussen 7. Exekverar en processor från AMD alltid kod långsammare än motsvarande processor från Intel med högre klockfrekvens? (T ex en 2,2 GHz AMD Athlon jämfört med en 2,8 GHz P4.) Vad kan skillnaden i exekveringshastighet bero på? Hur märker AMD sina processorer för att möjliggöra en prestandajämförelse? (2 p) Nej, processorn från AMD kan vara snabbare trots lägre klockfrekvens, detta p g a en kortare pipeline => färre konflikter och mindre förlust vid pipeline flush. Processorn uträttar alltså med per cykel. AMD märker sina processorer med ett nummer som visar vilken klockfrekvens en motsvarande Intelprocessor med samma exekveringshastighet arbetar med. 8. Vad står förkortningarna RISC, CISC och VLIW för? (Även en bra förklaring av vad begreppen handlar om kan ge poäng.) (2 p) 4 (8)
RISC = Reduced Instruction Set Computer CISC = Complex Instruction Set Computer VLIW = Very Long Instruction Word 9. a) Cache-minnet i en Intel P4 klockas med samma frekvens som processorn. Hur lång tid (uttryckt i nanosekunder) är en period av klockan om processorn klockas med 3,2 GHz? Svar: 0,31 ns b) Hur lång sträcka hinner en elektrisk signal i en ledare under en period ovan? (Varför cache-minnet inte monteras på moderkortet blir ganska uppenbart.) (2 p) Svar: 6 cm (signalen går med 2/3 av ljushastigheten) 10. Vad är skillnaden mellan SDRAM och DDR SDRAM? Vad skiljer DDR2 från DDR? Är det möjligt att sätta kapslar med DDR2-minnen i en dator byggd för DDR? (2 p) DDR innebär att data överförs två ggr per klockcykel. DDR är alltså dubbelt så snabbt som SDRAM. DDR2 är en ny kapsel med ny signalering som klarar något högre klockfrekvens än DDR. Kapseln har bl a fler pinnar och passar därmed inte i en sockel för DDR. 5 (8)
11. Vad används LPC-bussen (på moderkortet) till? Vad har den för databredd och ungefär vilken överföringshastighet (MB/s) har den? (2 p) LPC-bussen ersätter ISA-bussen för långsammare kommunikation internt på moderkortet, t ex mellan I/O Controller Hub och Super I/O. Bussen är bara 4 bitar bred, men överför 16,7 MB/s. 12. a) I Windows konfigureras grafiken för 1600*1200 pixlar. Hur stort grafikminne krävs för att datorn ska kunna visa 16 miljoner färger? 2D-grafik förutsätts. (Ange den beräknade storleken, inte vilken storlek som kan fås på ett grafikkort.) Svar: 5,76 MB (eller 5,5 om man räknar på 1 MB = 1024*1024 Byte) b) Om vi vill uppdatera skärmen med grafiken ovan med 75 Hz (d v s vertikal scan rate är 75 Hz), vilken horisontalfrekvens måste skärmen då klara? Svar: 95 khz (1200*75*1,05 (ungefär)) (2 p) 13. Beskriv vad som avses med firmware. (1 p) Firmware är program (t ex BIOS) som ligger lagrat i minneskretsar på t ex moderkortet, och stannar kvar vid spänningsfrånslag. 14. Jämför parallell ATA med SATA beträffande databredd, kabeltyp, möjlig kabellängd och hastighet. (Beskriv så exakt som möjligt, men principerna och jämförelsen är viktigast vid bedömning.) (2 p) ATA överför 16 bitar parallellt, medan SATA överför 1 bit åt gången. Till ATA åtgår en flatkabel med 40 eller 80 ledare medan SATA använder en tunn seriekabel med 7 ledare. SATA-kabeln kan vara dubbelt så lång som ATA-kabeln. ATA överför max 133 MB/s medan SATA börjar vid 150 MB/s. 6 (8)
7 (8)
Mode number INT 10H BIOS Video Functions INT 10H Function 00H Set Video Mode (and clear the screen) Register Call Value Return Value AH 00H AL mode number Mode Type Text lines Text columns Resolution Colors Pages Adapter MDA CGA HGC EGA VGA 0 text 25 40 320*200 16 8 x 0 text 25 40 320*350 16 8 x 0 text 25 40 360*400 16 8 x 1 text 25 40 320*200 16 8 x 1 text 25 40 320*350 16 8 x 1 text 25 40 360*400 16 8 x 2 text 25 80 640*200 16 4 x 2 text 25 80 640*350 16 4 x 2 text 25 80 720*400 16 4 x 3 text 25 80 640*200 16 4 x 3 text 25 80 640*350 16 4 x 3 text 25 80 720*400 16 4 x 4 graphics 25 40 320*200 4 1 x x x 5 graphics 25 40 320*200 4 1 x x x 6 graphics 25 80 640*200 2 1 x x x 7 text 25 80 720*350 mono 1 x x x 7 text 25 80 720*400 mono 8 x _ graphics 25 80 720*348 mono 1 x 0D graphics 25 40 320*200 16 8 x x 0E graphics 25 80 640*200 16 4 x x 0F graphics 25 80 640*350 mono 2 x x 10 graphics 25 80 640*350 16 2 x x 11 graphics 30 80 640*480 2 1 x 12 graphics 30 80 640*480 16 1 x 13 graphics 25 40 320*200 256 1 x 8 (8)