lecture 1. computer system · of agc (apollo guidance computer) source code • agc was programmed...
TRANSCRIPT
![Page 1: Lecture 1. Computer System · of AGC (Apollo Guidance Computer) source code • AGC was programmed in assembly language • Margaret Hamilton – Started to use the term “software](https://reader033.vdocument.in/reader033/viewer/2022050209/5f5c06195ff71448bb6477c9/html5/thumbnails/1.jpg)
Lecture 1
Computer System
System levels
Location of the program
Representation of a program
Speed of system devices
19.3.2020 Copyright Teemu Kerola 2020
![Page 2: Lecture 1. Computer System · of AGC (Apollo Guidance Computer) source code • AGC was programmed in assembly language • Margaret Hamilton – Started to use the term “software](https://reader033.vdocument.in/reader033/viewer/2022050209/5f5c06195ff71448bb6477c9/html5/thumbnails/2.jpg)
Computer
System
29.3.2020 Copyright Teemu Kerola 2020
User
System
Peripheral or
I/O devices
Computer
![Page 3: Lecture 1. Computer System · of AGC (Apollo Guidance Computer) source code • AGC was programmed in assembly language • Margaret Hamilton – Started to use the term “software](https://reader033.vdocument.in/reader033/viewer/2022050209/5f5c06195ff71448bb6477c9/html5/thumbnails/3.jpg)
Computer
39.3.2020 Copyright Teemu Kerola 2020
CPU memory
Bus or bus system
Device controllers
Connections
to other
computers
wifi,
modem, ...
Connections
to devices
Disk, DVD, CD,
Printer, …
Connections
to humans
Mouse, display,
game controller,
…
Discuss
![Page 4: Lecture 1. Computer System · of AGC (Apollo Guidance Computer) source code • AGC was programmed in assembly language • Margaret Hamilton – Started to use the term “software](https://reader033.vdocument.in/reader033/viewer/2022050209/5f5c06195ff71448bb6477c9/html5/thumbnails/4.jpg)
Location and Representation of a
Computer Program
• User view
– Somewhere in system
– In some form
– Easy to execute
• Click icon with a mouse
• Give program name and parameters to textual user
interface
– E.g., after DOS, UNIX or Linux prompt
• Insert DVD to a DVD-station
• Insert memory stick to USB-port
43/9/2020 Copyright Teemu Kerola 2020
![Page 5: Lecture 1. Computer System · of AGC (Apollo Guidance Computer) source code • AGC was programmed in assembly language • Margaret Hamilton – Started to use the term “software](https://reader033.vdocument.in/reader033/viewer/2022050209/5f5c06195ff71448bb6477c9/html5/thumbnails/5.jpg)
Location and Representation of a
Computer Program (contd)
• Long term storage
– In some device where data is sustained without electricity
• Hard disk, SSD, tape, CD, DVD, memory stick
– Described in some language
• High level languages: Java, Fortran, C,
• Data base description lang.: SQL, SQL*Forms,
• Processor machine lang.: x86, MIPS, PA-RISC, ...
– Maybe packed in some fashion
• zip, tar, gz, ...
53/9/2020 Copyright Teemu Kerola 2020
![Page 6: Lecture 1. Computer System · of AGC (Apollo Guidance Computer) source code • AGC was programmed in assembly language • Margaret Hamilton – Started to use the term “software](https://reader033.vdocument.in/reader033/viewer/2022050209/5f5c06195ff71448bb6477c9/html5/thumbnails/6.jpg)
Location and Representation of a
Computer Program (contd)• At execution time in memory in mach. code
• At other time in disk, web, etc
63/9/2020 Copyright Teemu Kerola 2020
CPU, processor memory
Bus or bus system
Long term storage
Short term storage
Discuss
![Page 7: Lecture 1. Computer System · of AGC (Apollo Guidance Computer) source code • AGC was programmed in assembly language • Margaret Hamilton – Started to use the term “software](https://reader033.vdocument.in/reader033/viewer/2022050209/5f5c06195ff71448bb6477c9/html5/thumbnails/7.jpg)
Machine Language• Processor instruction set defines its instruction set
architecture (ISA)
• Each instruction is (e.g.) a 10-digit integer number
• Often given with symbolic assembly language
– Instruction is composed of different fields
– Some field values are described with symbols
– Easier for humans to read/write
– Easy to translate to (pure) machine language
73/9/2020 Copyright Teemu Kerola 2020
2234563212
5437658756
LOAD R1, Sum
opcode register variable
![Page 8: Lecture 1. Computer System · of AGC (Apollo Guidance Computer) source code • AGC was programmed in assembly language • Margaret Hamilton – Started to use the term “software](https://reader033.vdocument.in/reader033/viewer/2022050209/5f5c06195ff71448bb6477c9/html5/thumbnails/8.jpg)
Symbolic Assembly Language
• Usual representation for machine language
programs
– “Readable machine language”
• Easy to translate to machine language
– Relates directly to machine language
– Often considered (slightly erroneously, but not much):
83/9/2020 Copyright Teemu Kerola 2020
LOAD R2, Sum ; R2 Mem(Sum)
ADD R2, =5 ; R2 R2 + 5
JUMP Loop ; PC Loop
Symbolic assembly language machine language
129543876
439874387
544399765
(code) (; comment)
![Page 9: Lecture 1. Computer System · of AGC (Apollo Guidance Computer) source code • AGC was programmed in assembly language • Margaret Hamilton – Started to use the term “software](https://reader033.vdocument.in/reader033/viewer/2022050209/5f5c06195ff71448bb6477c9/html5/thumbnails/9.jpg)
Programming with Symbolic
Assembly Language
• Margaret Hamilton and listing
of AGC (Apollo Guidance
Computer) source code
• AGC was programmed in
assembly language
• Margaret Hamilton
– Started to use the term
“software development” to
describe her programming
principles in 1968
– Augusta Ada Lovelace
Award, 1986
(Ada Lovelace, 1815-1852)
99.3.2020 Copyright Teemu Kerola 2020
https://en.wikipedia.org/wiki/Apollo_Guidance_Computer
![Page 10: Lecture 1. Computer System · of AGC (Apollo Guidance Computer) source code • AGC was programmed in assembly language • Margaret Hamilton – Started to use the term “software](https://reader033.vdocument.in/reader033/viewer/2022050209/5f5c06195ff71448bb6477c9/html5/thumbnails/10.jpg)
High Level Language (HLL) vs.
Machine Language• Problem:
• Solution: representation changes
– compilation
– linking
– loading
• Compilation and linking can be done before
execution, or partly during execution103/9/2020 Copyright Teemu Kerola 2020
Program is stored in some high level language (e.g., Java
or C) form in long term memory (e.g., hard disk), but for
execution it must be in machine language for this
processor in system memory.
HLL machine language
Combine with library modules
Store
![Page 11: Lecture 1. Computer System · of AGC (Apollo Guidance Computer) source code • AGC was programmed in assembly language • Margaret Hamilton – Started to use the term “software](https://reader033.vdocument.in/reader033/viewer/2022050209/5f5c06195ff71448bb6477c9/html5/thumbnails/11.jpg)
Program
Representations (4)
119.3.2020 Copyright Teemu Kerola 2020
Sum := Sum+1;
Print (Sum);
LOAD R1,40542
ADD R1,=1
STORE R1,40542
PUSH SP,R1
CALL 86488
loading
in memoryon disk
LOAD R1, Sum
ADD R1,=1
STORE R1, Sum
PUSH SP, R1
CALL IOMod.Print
compilation
defined in someother module
LOAD R1, Sum
ADD R1, =1
STORE R1, Sum
PUSH SP, R1
CALL PrintRoutine
PrintRoutine ......
linking
in samemodule
![Page 12: Lecture 1. Computer System · of AGC (Apollo Guidance Computer) source code • AGC was programmed in assembly language • Margaret Hamilton – Started to use the term “software](https://reader033.vdocument.in/reader033/viewer/2022050209/5f5c06195ff71448bb6477c9/html5/thumbnails/12.jpg)
TTK-91 system
12 9.3.2020Copyright Teemu Kerola 2020
CPU, processor
bus
memory
ALU registers
MMU
(includes
cache) program data
(operating
system)
(library routines)
CU
dev. controllers
Arithmetic and
Logic
Unit
Control
Unit
Memory
Management
Unit
Central
Processor
Unit
Cache
laiteohjain
![Page 13: Lecture 1. Computer System · of AGC (Apollo Guidance Computer) source code • AGC was programmed in assembly language • Margaret Hamilton – Started to use the term “software](https://reader033.vdocument.in/reader033/viewer/2022050209/5f5c06195ff71448bb6477c9/html5/thumbnails/13.jpg)
Speed of Different Devices
• Huge speed differences between different components of the system
– CPU registers are the fastest
– Cache is almost as fast
– Memory is already pretty slow
– I/O devices are really slow
• Hard disk, SSD
– Some devices are extremely slow
• Magnetic tape, human interfaces
– Other computers are extremely slow
• Cloud services, internet
133/9/2020 Copyright Teemu Kerola 2020
1 ns?
50 ns?
10 ms?
1 sec?
10 sec?
![Page 14: Lecture 1. Computer System · of AGC (Apollo Guidance Computer) source code • AGC was programmed in assembly language • Margaret Hamilton – Started to use the term “software](https://reader033.vdocument.in/reader033/viewer/2022050209/5f5c06195ff71448bb6477c9/html5/thumbnails/14.jpg)
143/9/2020 Copyright Teemu Kerola 2020
Teemu’s CheesecakeSpeed of register, cache, memory, hard disk,
and cloud as compared to getting cheese for
cheese cake?
table
1 sec
(cache)
fridge
10 sec
(memory)
hand
0.5 sec
(register)
4 years
(cloud,
human)
Europa
(Jupiter)
12 days
(disk)
moon
Discuss
![Page 15: Lecture 1. Computer System · of AGC (Apollo Guidance Computer) source code • AGC was programmed in assembly language • Margaret Hamilton – Started to use the term “software](https://reader033.vdocument.in/reader033/viewer/2022050209/5f5c06195ff71448bb6477c9/html5/thumbnails/15.jpg)
153/9/2020 Copyright Teemu Kerola 2020
-- End --Konrad Zuse: Z1 (1938 Germany)
• mechanical ”calculator”, clock cycle 1 Hz (turn handle!)
• multiplication 5 s
• data store 64W à 24b
• code from punch tape (film)
http://irb.cs.tu-berlin.de/~zuse/Konrad_Zuse/en/Rechner_Z1.html