Frå transistor til datamaskin
Keywords:
datamaskiner, computers, datamaskinarkitektur, digitalteknikkSynopsis
Dette skrivet prøver å gi ei forståing av korleis datamaskinar er oppbygde og virkar. Ein ser også på korleis ein kan programmera mindre datamaskinar brukte til styring og overvaking av prosessar.
Skrivet er laga for bruk i emnet Datamaskinarkitektur ved Universitetet i Stavanger (UiS). Det kan også brukast til å gi ei innføring i digitalteknikk generelt og som ein del av dette, mikroprosessoren sin struktur og virkemåte. Ein får også ei innføring i grunnlaget for konstruksjon av datamaskinar.
Ein har prøvd å gjera framstillinga kort og klar. Hovudfokus er på dei ulike byggjesteinane i ein datamaskin og korleis digitalteknikk blir praktisert i dag. Mykje av den klassiske digitalteknikken som manuell logikkonstruksjon med enkle portar av ein type, manuell optimalisering av logikk vhja. Karnaugh-diagram og konstruksjon av tilstandsmaskinar basert på J-K-vipper er tillagt redusert vekt samanlikna med vanlege lærebøker. Utviklingsprosjekt i dag tar stort sett utgangspunkt i programmerbar elektronikk. Mange klassiske metodar er her innbakt i utviklingsverktøyet ein bruker, eller blir realisert på andre måtar. Tema som logikkoptimalisering er likevel tatt med til ein viss grad der dette høyrer heime.
Emnet Datamaskinarkitektur kom inn som ein obligatorisk del av bachelorstudia i data og elektro ved UiS hausten 2013. Læringsmåla for desse bachelorstudia kan formulerast som vist i det følgjande.
Studentane skal som ferdige ingeniørar i data vera i stand til å:
- Forstå ulike typar operativsystem.
- Spesifisera, utvikla og testa objektorienterte datasystem.
- Utnytta kjente algoritmer og datastrukturar til å løysa konkrete datatekniske problem.
- Utvikla og bruka databaser.
- Planleggja og driva datasystem.
- Vurdera og utvikla nettbaserte dataløysinger.
Studentane skal som ferdige ingeniører i elektro vera i stand til å:
- Analysera og konstruera mikroprosessorbaserte system og programvare for desse.
- Vurdera måletekniske løysingar for ei gitt oppgåve.
- Vurdera komponentar og metodar for overvaking og automatisering av prosessar og produksjonslinjer.
- Konstruera og programmera PLS- baserte styringssystem.
- Utvikla diskrete algoritmer for regulerings- og signalbehandlingsformål.
Ei solid forståing av korleis ein datamaskin er oppbygd og virkar er eit grunnleggjande vilkår for dei fleste av desse måla.
Skrivet blir som vist gjort tilgjengeleg under ein såkalla Creative Common-lisens. Dette gir brei tilgang og gjer det i tillegg mogleg å byggja på eit stort tilfang av materiell som er gjort tilgjengeleg under same lisens, f.eks. frå den store dugnadsbasen Wikimedia. I tillegg er det i skrivet brei bruk av referansar til utdjupande stoff på internett.
Ein del av stoffet på mikroprosessorar og datamaskinkonstruksjon er basert på skrivet [1] som blei laga for eit tidlegare datamaskinemne ved UiS.
I tillegg er vedlegg A.1 basert på forelesingsnotat i digitalteknikk frå 2009 av Trygve Eftestøl, UiS [12] . Desse notata innheldt også handteikna skisser av Tom Ryen, UiS. Elles har Jon Fidjeland, UiS, kome med mange verdifulle kommentarar undervegs i arbeidet.
Sidan oppstarten i 2013 har rundt 400 studentar tatt emnet Datamaskinarkitektur, og spørsmåla og kommentarane frå dei har påverka utviklinga av skrivet gjennom desse åra.
Skrivet er norsk. Engelske omgrep blir sett i hermeteikn viss dei blir nytta åleine og i parentes når dei blir viste saman med norsk utgåve av nemninga.
References
[2] Geoffrey Brown: "Discovering the STM32 Microcontroller". Utgåve: 5. juni 2016. Open lærebok frå www.cs.indiana.edu/ geobrown/book.pdf. Lasta ned sist 6. februar 2018.
[3] Joseph Yiu: "The definitive guide to the ARM Cortex-M3 and Cortex-M4 processors". Newnes, 3. utg., 2014.
[4] Joseph Yiu: "The definitive guide to the ARM Cortex-M3 processor". Newnes, 2. utg., 2010.
https://doi.org/10.1016/B978-1-85617-963-8.00006-5
[5] Joseph Yiu: "The definitive guide to the ARM Cortex-M0". Newnes, 1. utg., 2011.
https://doi.org/10.1016/B978-0-12-385477-3.10001-1
[6] Rob Toulson og Tim Wilmshurst: "Fast and effective embedded systems design - Applying the ARM mbed". Newnes, 2012.
[7] Nettsidene til ARM sitt informasjonssenter: http://infocenter.arm.com/help/index.jsp. Brukt bl.a. 27. mars 2014.
[8] David Patterson og John L. Hennesy: "Computer Organization and Design, The hardware/software interface". ARM edition 2010, Elsevier.
[9] Claude E. Shannon: "A Symbolic Analysis of Relay and Switching Circuits". Frå "Claude Elwood Shannon Collected Papers". Redigert av N. J. A. Sloane og Aron D. Wyner, AT & T Bell Laboratories. IEEE Press.
[10] Artikkel av Alexander Magoun og Paul Israel på internett: http://theinstitute.ieee.org/tech-history/technology-history/did-you-know-edisoncoined-the-term-bug. Lasta ned sist 7. februar 2018.
[11] Jon Fidjeland: "Xilinx System Generator for ZedBoard". Institutt for data- og elektroteknikk - UiS, 7. oktober 2013.
[12] Trygve Eftestøl: "DIGITALTEKNIKK - Notater til BIE220 Digitalteknikk". Med handteikningar laga av Tom Ryen. UiS, 23.oktober 2009.
[13] M. Morris Mano og Michael D. Ciletti: "Digital Design". Pearson 2007, 4.utgåve.
[14] Thomas L. Floyd: "Digital fundamentals". Pearson, 9.utg., 2006. 285
[15] "UM0919 User Manual STM32 Value Line Discovery". Juni 2011, DocID 17217 Rev 2. STMicroelectronics, www.st.com.
[16] "STM32F100x4 STM32F100x6 STM32F100x8 STM32F100xB". Datablad, juni 2012, DocID 16455 Rev 7. STMicroelectronics, www.st.com.
[17] "RM0041 Reference manual STM32F100xx advanced ARM-based 32-bit MCUs". Oktober 2010, DocID 16188 Rev 3. STMicroelectronics, www.st.com.
[18] "PM0056 Programming manual STM32F10xxx/20xxx/21xxx/L1xxxx Cortex-M3
programming manual". Mars 2011, DocID 15491 Rev 4. STMicroelectronics, www.st.com.
[19] "STM32 32-bit ARM Cortex MCUs Releasing your creativity". STMicroelectronics, www.st.com.
[20] "Cortex-M3 Revision r2p1 Technical Reference Manual". Copyright 2005-2008, 2010 ARM Limited. ARM DDI 0337I (ID072410), www.arm.com.
[21] "ARM v7-M Architecture Reference Manual - Errata Markup". Copyright 2006-2010, 2010 ARM Limited. ARM DDI 0403D Errata 2010_Q3 (ID100710), www.arm.com.
[22] "STM32F103xC STM32F103xD STM32F100xE". Datablad, april 2011, DocID 14611 Rev 8. STMicroelectronics, www.st.com.
[23] "UM232R USB - Serial UART Development Module Datasheet". Document Reference No.: FT_000051, versjon 1.1, 2011-11-25. Future Technology Devices International Ltd, www.ftdichip.com.
[24] "KS0070B 16COM/80Seg driver & controller for dot matrix LCD". Samsung El.nics.
[25] "Datasheet Varitronix MDLS 16265". Avnet Embedded 07/2010, www.avnetembedded.eu.
[26] "Data sheet 74HC/HCT85 4-bit magnitude comparator". Philips Semiconductors, desember 1990. Søkjeord "74hc85 nxp".
[27] "AMIC A623308A Series 8K X 8 BIT CMOS SRAM". AMIC Technology, Corp., juli 2006, Version 1.0.
[28] Tim Wilmshurst: "An introduction to the design of small-scale embedded systems". Palgrave, 2001.
[29] "MicroBlaze processor reference guide, Embedded development kit EDK 10.1". Xilinx, UG081 (v9.3), 2008.
[30] "Spartan-3 FPGA Family: Complete Data Sheet". Xilinx, DS099, 17.januar 2005.
[31] "IS61LV25616AL 256K x 16 High speed asynchronous CMOS Static RAM with 3.3V supply". Integrated Silicon Solution, Inc., Rev.D 03/11/05.
[32] "SN54ALS04, SN54AS04, SN74ALS04B, SN74AS04 Hex Inverters". SDAS063B-April 1982-Revised December 1994, Texas Instruments.