CSCI206 - Computer Organization & Programming Computer Abstractions and Technology zyBook: 1.4, 1.5, 1.6, 1.7, 1.8 PH: 1.1, 1.2, 1.3, 1.4, 1.5 Based on materials from MKP, and Prof. Mary Jane Irvin (PSU)
Outline Recap last lecture Today we will discuss Course logistics C vs Python Today we will discuss Abstraction Hardware and software ISA
What’s in a computer You see a monitor (screen) of some kind You see a keyboard of some kind You know there is memory units, CPU, power units, and others But what makes all these units possible?
The Transistor Source: http://en.wikipedia.org/
Integrated circuits By The original uploader was Zephyris at English Wikipedia - Transferred from en.wikipedia to Commons by TenIslands using CommonsHelper., CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=4560427
Moore’s Law “The number of transistors on a chip will double about every two years.” (18 months) Source: http://www.intel.com/content/www/us/en/silicon-innovations/moores-law-embedded-technology.html
Where computers are
Good news, all of these computers need software! Where computers are Good news, all of these computers need software!
Personal Computers General purpose Run a wide variety of (3rd party) software Strong cost/performance tradeoffs
Server / Cloud Computing Google Datacenter in Mayes County, Oklahoma Network based High performance, memory capacity, and reliability Range from small racks to warehouse size http://www.google.com/about/datacenters
Embedded Computers Hidden in other systems Runs one program forever often not changeable by the user Stringent power/performance/cost constraints Largest class of computers (by number)!
Personal Mobile Devices Battery operated power constrained Wireless connectivity User can add new “apps”
Byte / Kilobyte / Kibibyte Decimal prefixes (SI) - typically used for physical quantities, speeds, volume, length, area, etc. Binary prefixes (CS) - used by computer scientists to measure amounts of binary data.
Concept ABSTRACTION a technique for dealing with complex systems; hide the lower-level details and expose what is meaningful for the high-level functionality.
Abstractions
Abstractions CS315 / CS205 CS206 / CS320 ECEG240 ECEG350 / PHYS235
Software abstraction? From your reading of the textbook, can you outline software abstraction?
Abstractions Applications software: Systems software: Operating System web browser, PDF, music player... Systems software: libraries, compiler, assembler, linker... Operating System task scheduling, memory management, IO... Hardware processor, memory, bus, IO (network, disk, etc)...
Concept Instruction Set Architecture (ISA) the interface between hardware and low-level software; registers, instruction set, addressing modes, etc.: everything that one needs to know to build a working machine language program.
ISA The interface between software and hardware
ISA “This abstract interface enables many implementations of varying cost and performance to run identical software.” (PH p.22) x86-64
System Abstractions Application Binary Interface (ABI) ISA Application Binary Interface (ABI) OS + ISA + system libraries Linux ABI (system call interface) on x86-64, i386, MIPS, ARM Mac OS X ABI on x86-64, 32/64 bit Power PC Windows ABI x64 vs x86 ABI
Key points Moore’s law Abstraction used in hardware and software instruction set architecture (ISA) application binary interface (ABI)