EDA 451 - Digital och Datorteknik 2009/10 Sammanfattning Ur innehållet: Vi repeterar kursens ”lärandemål” Diskussion kring ”övningstentor” Övriga frågor… Sammanfattning
Lärandemål Det övergripande målet är att den studerande ska ha inhämtat förståelse för hur en konventionell dator är uppbyggd, dess funktion och dess arbetssätt. Kursen är ämnesmässigt indelad i delområden med följande inlärningsmål för respektive delområde: Sammanfattning
1. Talsystem, binära koder och datoraritmetik Konvertering mellan olika talsystem. Utifrån given problemställning applicera binära koder så som NBC, NBCD, ASCII, Gray, Excess, felupptäckande koder, tecken/belopp och komplementkoder. Redogöra för och tillämpa binär aritmetik (addition och subtraktion). Sammanfattning
”Konvertering mellan olika talsystem”. Att kunna omvandla tal mellan de olika talsystem som vi använder i kursen. Dvs. binära tal, decimal tal och hexadecimala tal. Omvandlingarna ska kunna utföras mellan alla tre och i båda riktningar. Sammanfattning
”Utifrån given problemställning applicera binära koder så som NBC, NBCD, ASCII, Gray, Excess, felupptäckande koder, tecken/belopp och komplementkoder.” Här handlar det om att kunna ge exempel på användningsområden för de olika sätten att tolka binära ord. Kunna formulera/tolka textsträngar med ASCII-tecken, konstruera/analysera kodomvandlare mellan de olika koderna, beskriva Gray-kod och i vilka sammanhang den vanligtvis används. Hur paritetsbitar används för att upptäcka fel vid överföring av binära ord, förklara både jämn och udda paritet. Kunna beskriva principen för tecken/belopps-representation. Kunna beskriva hur de grundläggande aritmetiska operationerna (addition, subtraktion, multiplikation och division) utförs i binära talsystemet. Sammanfattning
”Redogöra för och tillämpa binär aritmetik (addition och subtraktion)”. I detalj beskriva hur addition och subtraktion utförs i en dator, redogöra för hur spill uppstår samt hur detta indikeras av så kallade ”flaggor” i datorn. Sammanfattning
2. Switchnätalgebra Definiera grundläggande logiska operationer och dess motsvarande logiska grindar. Tillämpa den booleska algebrans räknelagar. Utföra algebraisk förenkling av booleska uttryck. Visa likhet/olikhet mellan booleska uttryck. Sammanfattning
”Definiera grundläggande logiska operationer och dess motsvarande logiska grindar.” Kunna beskriva funktionen hos logikelementen NOT, AND, OR, XOR samt deras inverser, dvs. ställa upp respektive funktionstabell samt kunna illustrera operationerna med dess grindsymboler, såväl de europeiska symbolerna som de amerikanska. Sammanfattning
”Tillämpa den booleska algebrans räknelagar ”Tillämpa den booleska algebrans räknelagar. Utföra algebraisk förenkling av booleska uttryck.” Att kunna skriva om booleska uttryck på olika sätt, vanligtvis innebär detta användning av deMorgans teorem, ”tautologi” samt ”motsägelse”, men även övriga räknelagar måste naturligtvis kunna tillämpas. Sammanfattning
”Visa likhet/olikhet mellan booleska uttryck.” Detta ska man kunna göra genom att utföra algebraiska manipulationer, ställa upp funktionstabeller eller Karnaugh-diagram. rad x y z f 1 2 3 4 5 6 7 rad x y z g 1 2 3 4 5 6 7 1 00 01 11 10 x yz f f=g 1 00 01 11 10 x yz g f≠g Sammanfattning
3. Kombinatoriska nät Realisera logiska uttryck med grindnät. Beskriva, analysera och konstruera kombinatoriska nät med hjälp av funktionstabeller och boolesk algebra. Kunna minimera logiska uttryck för realisering i kombinatoriska nät. Sammanfattning
”Realisera logiska uttryck med grindnät.” Viktiga begrepp är disjunktiv/konjunktiv form, normalform och minimal form. Att veta hur max- och min- termer används för att definiera booleska funktioner. 1 f y’ & z x & g y’ 1 z’ x z Sammanfattning
”Beskriva, analysera och konstruera kombinatoriska nät med hjälp av funktionstabeller och boolesk algebra.” Att kunna beskriva kombinatoriska nät med grundläggande logiksymboler, booleska uttryck och funktionstabeller. Att kunna analysera logiknät beskrivna med såväl booleska algebra som med logiksymboler. Kunna konstruera nät typiskt med AND/OR-, OR/AND-, NAND- respektive NOR- /logik. Kunna konstruera enklare kombinatoriska nät av typen heladderare, kodomvandlare, avkodare, fördelare, väljare och kunna tolka symboler för sådana nät. Sammanfattning
”Kunna minimera logiska uttryck för realisering i kombinatoriska nät.” Kunna utgå från en boolesk funktion med upp till fyra variabler, minimera denna med hjälp av Karnaughdiagram och därefter realisera (konstruera) det nya nätet. Sammanfattning
4. Sekvensnät Analysera och konstruera synkrona tillståndsmaskiner med hjälp av tillståndstabeller och tillståndsgrafer. Använda D-, T- och JK- vippor för konstruktion av minneselement och räknare. Sammanfattning
”Analysera och konstruera synkrona tillståndsmaskiner med hjälp av tillståndstabeller och tillståndsgrafer.” Kunna tolka symboler för räknare och register. Utifrån en funktionsbeskrivning kunna upprätta tillståndstabell, eller tillståndsgraf och tidsdiagram. Kunna översätta tillståndstabell till tillståndsgraf och vice versa. Kunna analysera enklare sekvensnät som räknare, latchar, vippor, register, bitströmsdetektorer. Utifrån ett givet synkront nät kunna beskriva dess funktion (minneselement, räknare etc.) . Sammanfattning
”Använda D-, T- och JK- vippor för konstruktion av minneselement och räknare.” Kunna beskriva symboler för latchar typ SR och D, vippor av typ SR, D, JK och T, kunna beskriva dess respektive funktion i termer av funktions- och exitations- tabeller. Kunna konstruera autonoma räknare, räknare med räknevillkor, bitströmsdetektorer. Sammanfattning
5. Datorkonstruktion (von Neumann-datorn) Beskriva, analysera och konstruera kombinatoriska och sekventiella nät som typiskt används för att bygga en dators centralenhet, dvs. dataväg, styrenhet, aritmetisk/logisk enhet (Arithmetic/Logical Unit, ALU). Beskriva in-/ut- matningsenheter och minnessystem tillsammans med centralenheten. Beskriva, analysera och konstruera en styrenhet baserad på fast kopplad logik och kunna implementera instruktionsexekvering i denna logik. Kunna redogöra för styrenheter med mikroprogrammerad logik. Kunna utföra elementär maskinnära programmering (mikroprogrammering, maskinprogrammering och assemblerprogrammering). Sammanfattning
”Beskriva, analysera och konstruera kombinatoriska och sekventiella nät som typiskt används för att bygga en dators centralenhet, dvs. dataväg, styrenhet, aritmetisk/logisk enhet (Arithmetic/Logical Unit, ALU).” Kunna tolka symboler för de kombinatoriska nät som förekommer i kurslitteraturen. Kunna konstruera kombinatoriska nät med hjälp av väljare, avkodare och logikgrindar. Kunna redogöra för ”three-state” utgångar. Kunna redogöra för hur dataväg, styrenhet och ALU samverkar för att åstadkomma instruktionsexekvering. Kunna tillämpa Register Transfer Notation (RTN) och kunna beskriva hur registeröverföringen arrangeras med hjälp av styrsignalsekvenser till datavägen. Sammanfattning
”Beskriva in-/ut- matningsenheter och minnessystem tillsammans med centralenheten.” Kunna beskriva principen för läs-minnen (Read Only Memory, ROM) och läs-/skriv- minnen (Read/Write Memory, RWM). Kunna redogöra för hur in-/ut- matningsenheter och minne ansluts till centralenheten via bussar. Kunna i detalj beskriva hur läsning/skrivning från/till minne respektive in-/ut- matningsenheter sker i läs-cykler respektive skriv-cykler. Sammanfattning
”Beskriva, analysera och konstruera en styrenhet baserad på fast kopplad logik och kunna implementera instruktionsexekvering i denna logik.” Kunna redogöra för den strukturella uppbyggnaden av FLEX med fast kopplad logik, dvs. ange samband mellan insignaler till styrenheten och utsignaler. Detta innebär att kunna beskriva hur utsignalerna skapas från insignaler tillsammans med någon sekvensierare (tillståndsgenerator) och ett kombinatoriskt AND/OR- logiknät. Kunna i detalj redogöra för hur en godtycklig maskininstruktion kan implementeras i FLEX- processorn med fast kopplad logik. Detta innebär att kunna tolka en instruktions beskrivning (specifikation) och därefter ange en styrsignalsekvens som korrekt implementerar instruktionen. Sammanfattning
”Kunna redogöra för styrenheter med mikroprogrammerad logik.” Kunna beskriva de principiella skillnaderna mellan implementering av styrenheten med fast kopplad logik respektive mikroprogrammerad logik. Redogöra för mikrominne och nanominne. Sammanfattning
”Kunna utföra elementär maskinnära programmering (mikroprogrammering, maskinprogrammering och assemblerprogrammering).” Kunna redogöra för uppbyggnaden av en ”vonNeumann”-dator (det lagrade programmets princip). Kunna konstruera mikroprogram för FLEX med mikroprogrammerad styrenhet och korrekt implementera godtycklig maskininstruktion. Kunna utföra ”handassemblering” dvs. att använda en instruktionslista och översätta ett assemblerprogram till dess korrekta maskinprogram. Kunna använda instruktionslistan för att precisera klockcykler och maskininstruktion (Operationskod och ev. operander) för någon instruktion given som mnemonic. Sammanfattning
”Kunna utföra elementär assemblerprogrammering” (gäller såväl FLEX som CPU12): Kunna redogöra för samtliga register och deras typiska användning, speciellt stackpekare och flaggregister. Beskriva och analysera instruktioner för villkorlig ändring av programflödet (”hopp”- instruktioner), speciellt viktigt är skillnaden mellan villkor gällande för tal med respektive utan tecken. Kunna analysera respektive konstruera enklare programavsnitt, inklusive subrutiner, i assemblerspråk. Kunna förstå och använda de assemblerdirektiv som behandlas i kursen. Sammanfattning