Computer Organization Basics - How Computers Work and Design Tradeoffs
Explore the internal organization of computers, covering CPU, memory, storage, and I/O components. Discover the layering of software and hardware, from high-level languages to machine code, and delve into hardware layers, logic gates, and electrical circuits. Gain insights into programming layers, system internals, and performance measures in this comprehensive course overview.
Download Presentation

Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.
E N D
Presentation Transcript
Computer Organization David Monismith Jan. 12, 2015 Based on notes from Dr. Bill Siever and from the Patterson and Hennessy Text
Before we start with notes Syllabus Review Class Roll
Recommendations Take notes in class I'll use pptx slides and write on the white board Outline of class notes should be posted online before each class I will make mistakes, feel free to correct me as necessary Start on assignments early Why? Programming is a nonlinear process The amount of effort put into a project doesn't always correlate linearly with the results Attend class Attend office hours and help sessions if you get stuck Don't give up!
What is Computer Organization? How system internals are organized, how a computer works, design tradeoffs Basic parts of a computer are CPU, Interconnect, Main Memory, Secondary Storage, and I/O We will discuss layering of software, hardware, and programming tools Application layer resides atop Operating System Operating System manages resources to interact with hardware
Programs as Layers High level language (like Java) Assembly language (low level language between what the machine understands and high level language) add r1, r2, r3 Machine Code (code the computer understands) Zeroes and ones
Hardware Layers Basic computer parts (CPU, Main Memory, etc.) Subsystems/Sub-components (ALU, Control Unit, Registers, etc.) Logic gates (AND, OR, NOT, NOR, XOR, etc.) Electrical/Electronic Circuits (resistors, capacitors, transistors, diodes, amplifiers, etc.) Be aware that hardware is one layer out of many that exist in a computer. Software is another layer.
Course Overview Computer Organization - internal organization of a computer, what are the basic components, how does a computer work, what are the tradeoffs in design, etc. Building blocks of a computer Machine Representation of Data Digital Logic State Machines Performance Measures Memory Organization Communication between components Advanced topics
Course Overview Building Blocks Logic gates and, or, not, nor, xor, nand, etc. Flip-flops not the kind you wear Used to store a bit Registers not the kind for cash Fast memory to store data on the CPU Interconnects used to connect components together (e.g. CPU and Main Memory) Control how to make things happen in the computer Memory data storage (temporary, semi permanent, and permanent)
Course Overview Machine Representation of Data Bits, bytes, words Number bases Low-level machine organization von Neumann machine control unit instruction sets and types
Course Overview Digital Logic Boolean algebra Logical expressions Logic gates Clocks
Course Overview Performance Measures Cycles Per Instruction (CPI) Floating Point Operations Per Second (FLOPS) Millions of Instructions Per Second (MIPS) Average Memory Access Time (AMAT) Speedup And many more
Course Overview State Machines and Memory Organization State Machines Mealy and Moore Machines Deterministic vs. Non-Deterministic Memory Cache (memory on CPU) Main Memory (e.g. RAM) Secondary Memory (Hard disks and SSDs) Data structures for management including Translation Lookaside Buffer
Course Overview - Advanced Topics Parallelism (implicit and explicit) Multiprocessing Pipelining Superscalar Architectures SIMD instructions CUDA And more
Software Tools MARS Assembly Language IDE for MIPS Simulator MIPS = Microprocessor without interlocked pipeline JLS A Digital Logic simulator Can simulate gates (AND, OR, NOT, etc.) Simulate parts of the CPU (Control Unit, ALU, etc.) Linux
Hardware Tools Breadboards Used to power and build real logical circuits, microcontrollers and very simple computers Physical logic gates and wiring LittleFe a cluster computer for educational use Your laptops and university desktops
A Brief History of Computers Computers are used for symbolic manipulation Symbols are used to represent an idea Hieroglyphs and abacus used to keep track of trading, crops, money in agrarian societies Need to keep track of information!
Early Symbolic Manipulators Written symbols Abacus and Slide rule Difference Engine and Analytical Engine (Charles Babbage) (1830s - 1850s) Ada Lovelace recognized as the first programmer for programs for Babbage's Joseph Jacquard developed a loom that could follow a process in 1810 Pascal developed adding machines in the 1600's invention
Early Computers Large, power hungry, and slow Filled entire buildings ENIAC (mid 1940's) by J. Presper Eckert and John Mauchly Used to find artillery range based upon trajectories Grace Hopper recorded the first computer bug (a moth) in 1945 She helped to coin the term debugging UNIVAC (1951) was used by US Census Bureau
Next time More history and introduction to performance