1 of 45

Chapter 1

Computer

Abstractions and

Technology

2 of 45

Classes of computing applications and their characteristics

  • Computers are used in three different classes of applications:
    1. Personal computers(PCs)
    2. Servers
    3. Embedded computers

3 of 45

Classes of Computers

  • There are three classes of computers:
    1. Personal computers(PCs)
    2. Servers
    3. Embedded computers

4 of 45

Personal Computers (PCs) 

  • A computer designed for use by an individual, usually incorporating a graphics display, a keyboard, and a mouse.
  • For example, a home computer kept on a desktop and used by family members for emails, web browsing, social networking, movie watching, distance learning.

5 of 45

Servers

  • A computer used for running larger programs for multiple users, often simultaneously, and typically accessed only via a network.
  • Example: A computer in an Amazon building accessed by thousands of people for online shopping.
  • Servers span the widest range in cost and capability.
  • At the low end, a server may be little more than a desktop computer without a screen or keyboard and cost a thousand dollars. Or can be supercomputers
  • Low end server can be used for file storage.

6 of 45

Supercomputer

  • A class of computers with the highest performance and cost; they are configured as servers and typically cost tens to hundreds of millions of dollars.
  • They are used for scientific and engineering research and applications
  • Supercomputers consist of tens of thousands of processors and many terabytes of memory

7 of 45

Summit – IBM

8 of 45

9 of 45

Embedded computer

  • A computer inside another device used for running one predetermined application or collection of software
  • Examples of embedded computers include:
    1. Microprocessors found in your car
    2. Computers in a television set
    3. Networks of processors that control a modern airplane or cargo ship
    4. A computer in a cardiac pacemaker, which delivers electric shocks to keep a human's heart beating properly.

10 of 45

PostPC Era

  • In recent history, due to technological advancements, we have experienced big changes to computing hardware such the introduction of smartphones (IPhone, Android), mobile tablets etc.
  • Personal mobile devices (PMDs) are small wireless devices to connect to the Internet; they rely on batteries for power, and software is installed by downloading apps. Conventional examples are smart phones and tablets.
  • PMDs rely on a touch-sensitive screen or even speech input

11 of 45

12 of 45

Cloud Computing

  • Cloud computing refers to large collections of servers that provide services over the Internet; some providers rent dynamically varying numbers of servers as a utility.
  • Cloud Computing relies on giant datacenters called Warehouse Scale Computers (WSCs)
  • Software as a Service(SaaS) is deployed via cloud computing
  • Portion of software run on a PMD and a portion run in the Cloud
  • Examples are: Amazon, Google

13 of 45

Software as a Service

  • (SaaS) delivers software and data as a service over the Internet, usually via a thin program such as a browser that runs on local client devices, instead of binary code that must be installed, and runs wholly on that device. Examples include web search and social networking.

14 of 45

What You Will Learn

  • How programs are translated into the machine language
    • And how the hardware executes them
  • The hardware/software interface
  • What determines program performance
    • And how it can be improved
  • How hardware designers improve performance
  • What is parallel processing

15 of 45

�Seven Great Ideas in Computer Architecture�

  1. Use Abstraction to Simplify Design
  2. Make the Common Case Fast
  3. Performance via Parallelism
  4. Performance via Pipelining
  5. Performance via Prediction
  6. Hierarchy of Memories
  7. Dependability via Redundancy

16 of 45

�Use Abstraction to Simplify Design�

  • Major productivity technique for hardware and software is to use abstractions to represent the design at different levels of representation; lower-level details are hidden to offer a simpler model at higher level

17 of 45

�Make the Common Case Fast�

  • Making the common case fast will tend to enhance performance better than optimizing the rare case.

18 of 45

�Performance via Parallelism�

  • Getting more performance by performing operations in parallel

19 of 45

Performance via Pipelining

  • Pipelining, which moves multiple operations through hardware units that each do a piece of an operation, akin to water flowing through a pipeline.

20 of 45

�Performance via Prediction�

  • The idea of prediction is that, in some cases it can be faster on average to guess and start working rather than wait until you know for sure, assuming that the mechanism to recover from a misprediction is not too expensive and your prediction is relatively accurate.

21 of 45

Hierarchy of Memories

  • Programmers want memory to be fast, large, and cheap, as memory speed oft enshapes performance, capacity limits the size of problems that can be solved
  • Architects have found that they can address these conflicting demands with a hierarchy of memories, with the fastest, smallest, and most expensive memory per bit at the top of the hierarchy and the slowest, largest, and cheapest per bit at the bottom. As

22 of 45

�Dependability via Redundancy�

  • Computer should be dependable.
  • We know the hardware can fail so to make a computer dependable you can include redundant components that can take over when a failure occurs and to help detect failures

23 of 45

Computer System

  • The hardware in a computer can only execute extremely simple low-level instructions
  • To go from a complex application to the simple instructions involves several layers of software that interpret or translate high-level operations into simple computer instructions, an example of the great idea of abstraction.
  • Systems software: Software that provides services that are commonly useful, including operating systems, compilers, loaders, and assemblers.

24 of 45

Below Your Program

  • Application software
    • Written in high-level language
  • System software
    • Compiler: translates HLL code to machine code
    • Operating System: service code
      • Handling input/output
      • Managing memory and storage
      • Scheduling tasks & sharing resources
  • Hardware
    • Processor, memory, I/O controllers

§1.3 Below Your Program

25 of 45

Hardware and Software

  • High-level programming language: A portable language such as C, C++, Java, or Visual Basic that is composed of words and algebraic notation that can be translated by a compiler into assembly language.
  • Assembler: A program that translates a symbolic version of instructions into the binary version.
  • Assembly language: A symbolic representation of machine instructions.
  • Assembler: A program that translates a symbolic version of instructions into the binary version.
  • Assembly language: A symbolic representation of machine instructions.�

26 of 45

Levels of Program Code

  • High-level language
    • Level of abstraction closer to problem domain
    • Provides for productivity and portability
  • Assembly language
    • Textual representation of instructions
  • Hardware representation
    • Binary digits (bits)
    • Encoded instructions and data

27 of 45

The organization of a computer

  • A computer consists of the following five classic components
    1. Control
    2. Memory
    3. Input
    4. Output
    5. Data path

  • The datapath and control are collectively called processor

28 of 45

Components of a Computer

  • Same components for�all kinds of computer
    • Desktop, server,�embedded
  • Input/output includes
    • User-interface devices
      • Display, keyboard, mouse
    • Storage devices
      • Hard disk, CD/DVD, flash
    • Network adapters
      • For communicating with other computers

Chapter 1 — Computer Abstractions and Technology — 28

§1.4 Under the Covers

The BIG Picture

29 of 45

Basic Functions of the Computer Hardware

INPUTTING DATA

OUTPUTTING DATA

PROCESSING DATA

AND STORING DATA

30 of 45

Input devices

  • Input devices are used to feed the computer information.
  • Examples of input devices include keyboard, mouse

31 of 45

Output Devices

  • A mechanism that conveys the result of a computation to a user, such as a display, or to another computer.

32 of 45

Touchscreen

  • PostPC device
  • Supersedes keyboard and mouse
  • Resistive and Capacitive types
    • Most tablets, smart phones use capacitive
    • Capacitive allows multiple touches simultaneously

Chapter 1 — Computer Abstractions and Technology — 32

33 of 45

Opening the Box

Chapter 1 — Computer Abstractions and Technology — 33

Capacitive multitouch LCD screen

3.8 V, 25 Watt-hour battery

Computer board

34 of 45

The organization of a computer

  • At a basic level, a computer consists of three pieces
    1. A processor to interpret and execute programs
    2. A memory to store both data and programs
    3. A mechanism for transferring data to and from the outside world
  • The processor gets instructions and data from memory. Input writes data to memory, and output reads data from memory. Control sends the signals that determine the operations of the datapath, memory, input, and output.

35 of 45

Organization of a computer

  • The processor gets instructions and data from memory. Input writes data to memory, and output reads data from memory. Control sends the signals that determine the operations of the datapath, memory, input, and output.

36 of 45

Processor (also CPU)

  • This is the active part of the computer, which contains the datapath and control and which adds numbers, tests numbers, signals I/O devices to activate, and so on.
  • The processor is made of two main components: datapath and control
  • The datapath performs operations on data such as arithemetic operations.
  • Control tells the datapath, memory, and I/O devices what to do according to the wishes of the instructions of the program

37 of 45

Inside the Processor

  • Apple A5

38 of 45

Memory

  • It is the storage area where programs are kept when they are running and it contains the data needed by the running programs.
  • The memory is built from DRAM chips,
  • DRAM stands for dynamic random access memory
  • DRAM is volatile as it only returns data only when it is receiving power
  • Inside the processor there is another type of memory—cache memory.

39 of 45

Cache memory

  • Cache memory: A small, fast memory that acts as a buffer for a slower, larger memory.
  • Cache is built using a different memory technology, static random access memory (SRAM). SRAM is faster but less dense, and hence more expensive, than DRAM

40 of 45

Abstractions

  • Abstraction helps us deal with complexity
    • Hide lower-level detail
  • Instruction set architecture (ISA)
    • The hardware/software interface
  • Application binary interface
    • The ISA plus system software interface. The user portion of the instruction set plus the operating system interfaces used by application programmers. It defines a standard for binary portability across computers.
  • Implementation
    • The details underlying and interface

41 of 45

Non-volatile memory vs Volatile memory

  • Volatile main memory is the storage, such as DRAM, that retains data only if it is receiving power. This is also called main memory or primary memory. Loses instructions and data when power off
  • Non-volatile memory is a form of memory that retains data even in the absence of a power source and that is used to store programs between runs. A DVD disk is nonvolatile. This is called secondary memory. Examples: Magnetic disk, Flash memory, Optical disk (CDROM, DVD)

42 of 45

A Safe Place for Data

  • Volatile main memory
    • Loses instructions and data when power off
  • Non-volatile secondary memory
    • Magnetic disk
    • Flash memory
    • Optical disk (CDROM, DVD)

43 of 45

Networks - Communicating with other computers

  • Networks interconnect whole computers, allowing computer users to extend the power of computing by including communication.
  • Networked computers have several major advantages:
    • Communication: Information is exchanged between computers at high speeds.
    • Resource sharing: Rather than each computer having its own I/O devices, computers on the network can share I/O devices.
    • Nonlocal access: By connecting computers over long distances, users need not be near the computer they are using.

44 of 45

Networks

Communication, resource sharing, nonlocal access

  • Local area network (LAN): A network designed to carry data within a geographically confined area, typically within a single building. Example: Ethernet
  • Wide area network (WAN): A network extended over hundreds of kilometers that can span a continent. Example: Internet
  • Wireless network: WiFi, Bluetooth

45 of 45

Reading

  • Chapter 1.1 through 1.4