Tentamen PC-teknik 5 p Lösningar med kommentarer Program: Di2 Datum: 05-01-10 Tid: 13:30-18:30 Lokal He303 Hjälpmedel: Linjal, miniräknare, Instruktionsrepertoar för 8086 (utdelas), Bilaga: Ingen 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 (5)
Tentamensfrågor 1. Skriv talet 123 10 binärt, hexadecimalt och i BCD-form. (1 p) bin: 1111011 hex: 7B BCD: 0001 0010 0011 2. Det negativa talet -5 sparas i en dator i tvåkomplementform. Visa hur talet skrivs binärt, om det sparas i en Nibble: 1011 en Byte: 11111011 (2 p) 3. Vad kommer registren att innehålla för värde efter att nedanstående kod exekverats? Svara decimalt! (3 p) mov al,#3 mov ah,#1 mov bx,#0 mov cx,#2 mov dx,#517 L1: dec dx loop L1 cmp cx,dx je U3 mov bx,#1 U3: xor ax,#15 ax: 268 bx: 1 cx: 0 dx: 515 2 (5)
4. Skriv ett assemblerinlägg som i en loop beräknar en checksumma för arrayen. Checksumman beräknas genom att alla talen i arrayen adderas, men i 8-bitars register, så att talet aldrig överskrider 255. Checksumman sparas sedan i chk_sum. (2 p) #include <stdio.h> char chk_sum; char array[200]; void main(void){ #asm ;Skriv din kod här, men på separat ark ;Var aktsam med detaljer, då bedömningen blir hård med så här lite kod mov cx,#200 ;Antal varv I loopen mov bx,#_array ;bx pekar på första elementet mov dl,#0 ;chk_sum ackumuleras här, nollställ före chk_calc: add dl,[bx] ;addera alla element inc bx ;peka på nästa element loop chk_calc ;200 ggr (tills cx når 0) mov _chk_sum, dl ;kopiera summan till chk_sum #endasm } 5. Vid exekvering använder senaste Pentium-processorerna Bransch Prediction och Speculative Execution. Redogör kortfattat för dessa begrepp och varför de gör att exekveringen går snabbare. (2 p) Bransch Prediction innebär att processorn använder algoritmer för att försöka förutsäga programhopp för att därigenom kunna ladda pipelinen med rätt instruktioner och spara tid då oväntade hopp leder till en pipeline flush. Speculative Execution spar tid genom att exekvera instruktioner före programräknarens aktuella värde (när exekveringsenheten är ledig). När programräknaren når dessa instruktioner kan det färdiga resultatet användas, såvida resultatet t ex inte var beroende av föregående instruktioner. 6. Beskriv kort principen för hur ett flyttal lagras. Nämn också en fördel (förutom möjligheten till decimaler) och en nackdel med att använda flyttal. (2 p) Plats för eventuell skiss: Flyttal lagras som ett antal värdesiffror och en exponent, samt en teckenbit. Talet beräknas genom att värdesiffrorna multipliceras med 2 exponent. En fördel är att exponenten medger ett väldigt stort talområde trots relativt få bitar. Nackdelen är att värdesiffrorna ger en begränsad precision och då talet inte lagras exakt kan det ställa till problem t ex vid jämförelser. (En annan uppenbar nackdel är att lagringsformen kräver mycket beräkningskapacitet även vid enkla beräkningar som addition.) 3 (5)
7. Beskriv egenskaperna för ett DRAM. Beskrivningen ska innefatta svaren på följande frågor: Behålls minnesinnehållet när strömmen slås av? Hur lagras bitarna fysiskt? Krävs några åtgärder för att bitarna ska bevaras? (2 p) Varje bit lagras i en kondensator som ansluts till databussen via en (för biten unik) transistor. Kondensatorn läcker lite ström, så biten måste läsas och skrivas om (memory refresh) med jämna mellanrum för att minnesinnehållet inte ska gå förlorat. Minnet är flyktigt, d v s strömmen måste hela tiden vara på. 8. Vissa Pentium-processorer har haft både Back-Side Bus och Front-Side Bus. Vad användes dessa till? (2 p) Dessa processorer hade externt L2-cache monterat i samma kapsel som processorn. För att nå L2 snabbare än systembussen tillät (då denna även anslöt moderkortet) delades denna upp i två bussar. En för L2 (Back-Side) och en för moderkortet (Front-Side). 9. Ett Intel-chipset byggdes tidigare upp av North Bridge, South Bridge och Super I/O. Dessa begrepp förekommer ofta fortfarande, trots att en hub-arkitektur används. Hur skiljer sig den nyare hub-arkitekturen mot tidigare North Bridge/South Bridge? Beskriv översiktligt hub-arkitekturen och påpeka de huvudsakliga skillnaderna. Bifoga gärna en skiss på separat ark. (2 p) Se fig 4.52 och 4.55 i 15:e utgåvan av kursboken. I den tidigare arkitekturen anslöt North Bridge till processorbussen. North Bridge anslöt minne och PCI-bussen. South Bridge, som tog hand om ATA, ISA och USB, anslöts till North Bridge via PCI. Super I/O, som hanterar långsamma enheter, anslöts via ISA. Problemet var bl a att PCI-bussen belastades med trafik från enheter längre ner i hierarkin och att ISA-bussen var långsam i förhållande till antalet ledare som krävdes. I hub-arkitekturen ansluter Memory Controller Hub till processorbussen. Ett snabbt Hub Interface ansluter i sin tur I/O Controller Hub, som hanterar USB, ATA och PCI. Super I/O ansluter till Hub Interface genom den långsamma men billiga LPC-bussen. 10. Vad är främsta skillnaden mellan USB 1.1 och USB 2.0? Kan man ansluta en skrivare med USB 2.0-gränssnitt till en äldre dator som endast har USB 1.1? (2 p) Det är främst hastigheten som skiljer. (USB 2.0 är upp till 40 ggr snabbare). Ja, man kan ansluta 2.0-enheter till 1.1-portar tack vare att kontakten är densamma och protokollet bakåtkompatibelt. (Utskrifterna tar bara längre tid.) 4 (5)
11. En hårddisks prestanda beskrivs med en mängd parametrar, bl a Media Transfer Rate och Interface Transfer Rate. Vad beskriver dessa parametrar och vilken har som regel störst betydelse för datorns prestanda? Motivera! (2 p) Media Transfer Rate beskriver läshastigheten från den fysiska disken medan Interface Transfer Rate beskriver överföringshastigheten i gränssnittet (t ex ATA eller SCSI). Då disken som regel är mycket långsammare än gränssnittet har Media Transfer Rate störst betydelse för datorns prestanda. 12. Vilka fyra principiellt skilda saker utför datorns BIOS? POST Power On Self Test, testar datorns maskinvara vid start. (3 p) Setup Ett program som används för att konfigurera moderkortet, t ex enhet att boota från. Bootstrap loader Läser en given sektor på vald enhet och kör denna kod om den innehåller ett program för att ladda operativsystemet. BIOS Basic Input Output System. (Även benämning på helheten, inkl ovanstående punkter.) En samling drivrutiner för t ex tangentbord och grafik, som t ex kan användas av Setup eller DOS. 5 (5)