Welcome to: CSC225 Introduction to Computer Organization Paul Hatalsky 1-1 Where this class fits in 101,102,103, etc. 430,431 225 315 229 129 High-Level Language Compiler Assembly Programming Input/Output Interfaces Instruction Set Architectures Computer Organization Implementation Logic Transistors 1-2 Introduction to the World of Computing Computer: magical electronic genius? • NO! Electronic idiot! • Does exactly what we tell it to, nothing more. Goal of the course: You will be able to write programs in C and understand much of what’s going on underneath. Approach: Build understanding from the bottom up on the LC-3! 1-3 Why are we learning this stuff??? Abstraction – Seeing through it • We usually don’t need to worry about details… Can drive a car without knowing how the internal combustion engine works. • …until something goes wrong! Where’s the dipstick? What’s a spark plug? • Important to understand the components and how they work together, especially in embedded design Hardware vs. Software • It’s not either/or – both are components of a computer system. • Even if you specialize in one, you should understand capabilities and limitations of both. Because we should know. Right? Because it will be useful, right? 1-4 This is the LC-3! 1-5 Will learning the LC-3 teach me anything about a real computer? All computers, given enough time and memory, are capable of computing exactly the same things. = Smartphone = Workstation Supercomputer 1-6 Course Outline Bits and Bytes • How do we represent information using electrical signals? Digital Logic • How do we build circuits to process information? Processor and Instruction Set • How do we build a processor out of logic elements? • What operations (instructions) will we implement? Assembly Language Programming • How do we use processor instructions to implement algorithms? • How do we write modular, reusable code? (subroutines) I/O, Traps, and Interrupts • How does processor communicate with outside world? C Programming • How do we write programs in C? • How do we implement high-level programming constructs? 1-7 Welcome! Class Organization • See Schedule Grading • See Sylabus 1-8 Policies Late Policy – No late labs. Turn in what you have. Plagiarism • Lab write-ups are individual (unless I specifically allow partners) • You may not look at someone’s working code. • No one else may type anything into the code. • Discuss concepts and implementation strategies all that you want. 1-9 Policies Homework • Work together if you wish, but TRY the problem yourself before you get help. • Good way to study for tests. • At least one question per midterm will come directly from the homework. Exams • 2 Midterms – 1 side of 1 page (8.5 x 11) handwritten notes • 1 Written Final – 2 sides of one page of handwritten notes 1-10 Questions??? Let’s talk about binary and hexadecimal… 1001 1101 0010 0101 9D25 1-11