Chapter 1: Welcome Aboard

"Introduction to Computer Systems" review note

Two Recurring Themes

The Notion of Abstraction

  • The ability to abstract is a productivity enhancer. It saves us from getting bogged down in details unnecessarily. This is enough when the underlying components are working just fine.
  • The ability to deconstruct (un-abstract) is the ability to go from the abstraction back to the component parts. This is used to uncover problems that cannot be solved on the level of abstraction.

Hardware vs Software

Hardware and software work best when they are designed by someone who takes into account the capabilities and limitations of both.

A Computer System

A computer system:

  • directs the processing of information
  • performs the actual processing of information

What actually does these two things is a central processing unit (CPU).

A computer system also includes auxiliary components (peripherals) like input and output.

Two Very Important Ideas

Computers as Universal Computational Devices

  • Computer is a digital machine (performing computations by manipulating a fixed finite set of digits), rather than an analog machine (like a watch, which represents data by measuring some physical quality such as the position of hands).
  • Computer is a universal computational device, which means it can execute any new kind of computation, without having to redesign the machine. Every computer (and universal Turing machine) can compute anything that can be computed (programmable).

How Do We Get the Electrons to Do the Work?

We go through the “Levels of Transformation” to get the electrons to do our tasks:

1. Problems

Describe the problems in a natural language. This is unacceptable by computers because of its ambiguity.

2. Algorithms

An algorithm is a finite sequence of precise instructions for performing a computation or for solving a problem. Its properties include definiteness (no ambiguity), effective computatibility (feasible for a computer) and finiteness (guaranteed to terminate)

3. Programming Language

High-level languages: independent of the underlying computer (“machine independent”).

Low-level languages: called assembly language, each computer has a low-level langauge.

4. ISA

The instruction set architecture is the interface between written programs and the underlying computer hardware to execute these programs. ISA provides all information needed for someone that wants to write a program in machine language. It defines:

  • Memory organization
    • Address space – how may locations can be addressed?
    • Addressibility – how many bits per location?
  • Register set
    • How many? What size? How are they used?
  • Instruction set
    • Opcodes
    • Data types
    • Addressing modes: the mechanisms the computer can use to locate an address

5. Microarchitecture

The microarchitecture is a detailed organization of an implementation of an ISA. The ISA is like what the driver sees in the car, and the microarchitecture is like what goes on under the engine hood.

When designing a specific microarchitecture, the designer has to make trade-offs between cost and performance of the microprocessor.

6. Logic Circuits

7. Devices

Each logic circuit is implemented in accordance with the requirements of the particular device technology used (CMOS? NMOS? …)

类别:

标签:

发布于

留下评论

注意 评论系统在中国大陆加载不稳定。

回到顶部 ↑