Computer Fundamentals
Aims & Objectives
•This course aims to:
–give you a general understanding of how a computer works
–introduce you to assembly-level programming
–prepare you for future courses. . .
•At the end of the course you’ll be able to:
–describe the fetch-execute cycle of a computer
–understand the different types of information which may be stored within a computer memory
–write a simple assembly language program
Recommended Reading
•This course doesn’t follow any particular book exactly, but any of the following are useful:
–Computer Organization & Design(4th Ed), Patterson and Hennessy, Morgan Kaufmann 2008
•also used in CST Part 1B “Computer Design”
–Digital Design and Computer Architecture, Harris and Harris, Morgan Kaufmann 2007
•also used in CST Part 1A “Digital Electronics”
–Structured Computer Organization(5th Ed), Tannenbaum, Prentice-Hall 2005
•good general overview book; somewhat broader in scope, and somewhat simpler to digest than above
Course Outline
•We’ll cover the following topics:
–A Brief History of Computing
–Operation of a Simple Computer
–Input / Output
–MIPS Assembly Language
•This course is new this year, but derives from Part I of pre-2010 CST 1A “Operating Systems”
–This will help in finding e.g. past exam questions
•Feel free to ask questions during the lecture
–or after it, or via email –see course web page
A Chronology of Early Computing
•(several BC): abacus used for counting
•1614: logarithms discovered (John Napier)
•1622: invention of the slide rule (Robert Bissaker)
•1642: First mechanical digital calculator (Pascal)
•Charles Babbage (U. Cambridge) invents:
–1812: “Difference Engine”
–1833: “Analytical Engine”
•1890: First electro-mechanical punched card data-processing machine (Hollerith)
•1905: Vacuum tube/triode invented (De Forest)
The War Years…
•1935: the relay-based IBM 601reaches 1 MPS.
•1939: ABC-first electronic digital computer (Atanasoff& Berry)
•1941: Z3-first programmable computer (Zuse)
•Jan 1943: the Harvard Mark I(Aiken)
•Dec 1943: Colossusbuilt at ‘Station X’ –Bletchley Park
•1945: ENIAC (Eckert & Mauchley, U. Penn):
–30 tons, 1000 square feet, 140 kW,
–18K vacuum tubes, 20×10-digit accumulators,
–100KHz, circa 300 MPS.
–Used to calculate artillery firing tables.
–(1946) blinking lights for the media. . .
•But “programming” is via plug-board: tedious and slow
The Von Neumann Architecture
•1945: von Neumann drafts “EDVAC” report
–design for a stored-programmachine
–Eckert & Mauchleymistakenly unattributed
Further Progress…
•1947: “point contact” transistor invented (Shockley, Bardeen & Brattain)
•1949: EDSAC, the world’s first stored-program computer (Wilkes & Wheeler)
–3K vacuum tubes, 300 square feet, 12 kW,
–500KHz, circa 650 IPS, 225 MPS.
–1024 17-bit words of memory in mercury ultrasonic delay lines –early DRAM ;-)
–31 word “operating system” (!)
•1954: TRADIC, first electronic computer without vacuum tubes (Bell Labs)
The Silicon Age
•1954: first silicon (junction) transistor (TI)
•1959: first integrated circuit (Kilby& Noyce, TI)
•1964: IBM System/360, based on ICs.
•1971: Intel 4004, first micro-processor (Ted Hoff):
–2300 transistors, 60 KIPS.
•1978: Intel 8086/8088 (used in IBM PC).
•1980: first VLSI chip (> 100,000 transistors)
•Today: ~800M transistors, 45nm, ~3 GHz
Computers programmable with variety of different languages.
–e.g. ML, java, C/C++, python, perl, FORTRAN, Pascal, . . .
•Can describe the operation of a computer at a number of different levels; however all levels are functionally equivalent
•Levels relate via either (a) translation, or (b) interpretation
•Consider a set of machines M0, M1, . . . Mn:
–Machine Miunderstands only machine language Li
–Levels 0, -1 covered in Digital Electronics, Physics,
–Level 2 will be covered in CST 1A Operating Systems
•This course focuses on levels 1 and 3
•NB: all levels useful; none “the truth”.
•Use cachebetween main memory & registers to hide “slow” DRAM
•Cache made from faster SRAM: more expensive, and hence smaller.
–holds copy of subset of main memory.
•Split of instruction and data at cache level:
–“Harvard” architecture.
•Cache <-> CPU interface uses a custom bus.
•Today have ~8MB cache, ~4GB RAM.
•Computers made up of four main parts:
1.Processor (including register file, control unit and execution unit –with ALU, memory access unit, branch unit, etc),
2.Memory (caches, RAM, ROM),
3.Devices(disks, graphicscards, etc.), and
4.Buses (interrupts, DMA).
•Information represented in all sorts of formats:
–signed & unsigned integers,
–strings,
–floating point,
–data structures,
–instructions.
•Can (hopefully) understand all of these at some level, but gets pretty complex...
•Next up: bare bones programming with MIPS assembly
•This course aims to:
–give you a general understanding of how a computer works
–introduce you to assembly-level programming
–prepare you for future courses. . .
•At the end of the course you’ll be able to:
–describe the fetch-execute cycle of a computer
–understand the different types of information which may be stored within a computer memory
–write a simple assembly language program
Recommended Reading
•This course doesn’t follow any particular book exactly, but any of the following are useful:
–Computer Organization & Design(4th Ed), Patterson and Hennessy, Morgan Kaufmann 2008
•also used in CST Part 1B “Computer Design”
–Digital Design and Computer Architecture, Harris and Harris, Morgan Kaufmann 2007
•also used in CST Part 1A “Digital Electronics”
–Structured Computer Organization(5th Ed), Tannenbaum, Prentice-Hall 2005
•good general overview book; somewhat broader in scope, and somewhat simpler to digest than above
Course Outline
•We’ll cover the following topics:
–A Brief History of Computing
–Operation of a Simple Computer
–Input / Output
–MIPS Assembly Language
•This course is new this year, but derives from Part I of pre-2010 CST 1A “Operating Systems”
–This will help in finding e.g. past exam questions
•Feel free to ask questions during the lecture
–or after it, or via email –see course web page
A Chronology of Early Computing
•(several BC): abacus used for counting
•1614: logarithms discovered (John Napier)
•1622: invention of the slide rule (Robert Bissaker)
•1642: First mechanical digital calculator (Pascal)
•Charles Babbage (U. Cambridge) invents:
–1812: “Difference Engine”
–1833: “Analytical Engine”
•1890: First electro-mechanical punched card data-processing machine (Hollerith)
•1905: Vacuum tube/triode invented (De Forest)
The War Years…
•1935: the relay-based IBM 601reaches 1 MPS.
•1939: ABC-first electronic digital computer (Atanasoff& Berry)
•1941: Z3-first programmable computer (Zuse)
•Jan 1943: the Harvard Mark I(Aiken)
•Dec 1943: Colossusbuilt at ‘Station X’ –Bletchley Park
•1945: ENIAC (Eckert & Mauchley, U. Penn):
–30 tons, 1000 square feet, 140 kW,
–18K vacuum tubes, 20×10-digit accumulators,
–100KHz, circa 300 MPS.
–Used to calculate artillery firing tables.
–(1946) blinking lights for the media. . .
•But “programming” is via plug-board: tedious and slow
The Von Neumann Architecture
•1945: von Neumann drafts “EDVAC” report
–design for a stored-programmachine
–Eckert & Mauchleymistakenly unattributed
Further Progress…
•1947: “point contact” transistor invented (Shockley, Bardeen & Brattain)
•1949: EDSAC, the world’s first stored-program computer (Wilkes & Wheeler)
–3K vacuum tubes, 300 square feet, 12 kW,
–500KHz, circa 650 IPS, 225 MPS.
–1024 17-bit words of memory in mercury ultrasonic delay lines –early DRAM ;-)
–31 word “operating system” (!)
•1954: TRADIC, first electronic computer without vacuum tubes (Bell Labs)
The Silicon Age
•1954: first silicon (junction) transistor (TI)
•1959: first integrated circuit (Kilby& Noyce, TI)
•1964: IBM System/360, based on ICs.
•1971: Intel 4004, first micro-processor (Ted Hoff):
–2300 transistors, 60 KIPS.
•1978: Intel 8086/8088 (used in IBM PC).
•1980: first VLSI chip (> 100,000 transistors)
•Today: ~800M transistors, 45nm, ~3 GHz
Computers programmable with variety of different languages.
–e.g. ML, java, C/C++, python, perl, FORTRAN, Pascal, . . .
•Can describe the operation of a computer at a number of different levels; however all levels are functionally equivalent
•Levels relate via either (a) translation, or (b) interpretation
•Consider a set of machines M0, M1, . . . Mn:
–Machine Miunderstands only machine language Li
–Levels 0, -1 covered in Digital Electronics, Physics,
–Level 2 will be covered in CST 1A Operating Systems
•This course focuses on levels 1 and 3
•NB: all levels useful; none “the truth”.
•Use cachebetween main memory & registers to hide “slow” DRAM
•Cache made from faster SRAM: more expensive, and hence smaller.
–holds copy of subset of main memory.
•Split of instruction and data at cache level:
–“Harvard” architecture.
•Cache <-> CPU interface uses a custom bus.
•Today have ~8MB cache, ~4GB RAM.
•Computers made up of four main parts:
1.Processor (including register file, control unit and execution unit –with ALU, memory access unit, branch unit, etc),
2.Memory (caches, RAM, ROM),
3.Devices(disks, graphicscards, etc.), and
4.Buses (interrupts, DMA).
•Information represented in all sorts of formats:
–signed & unsigned integers,
–strings,
–floating point,
–data structures,
–instructions.
•Can (hopefully) understand all of these at some level, but gets pretty complex...
•Next up: bare bones programming with MIPS assembly
Comments