CS 231 - Micro Electronics

Chapter 2: Introduction to Systems Architecture

Objectives:

This lesson discusses some historical concepts about computers, general definitions of hardware and software types, and basic classes of computers. Objectives important to this lesson:

  1. Development of automated computing
  2. General capabilities of a computer
  3. Hardware components and functions
  4. Computer system classes
  5. Application and system software
  6. Components and functions of networks
Concepts:

The chapter begins with a definition of the title of the book. "Systems architecture describes the structure, interaction, and technology of computer components." (page 21) It is useful for general computer users to know something about the subject, even if they do not know what the subject is called, in order to make good buying decisions. It is important for IT professionals to know something about it so they can work with technology and make good decisions about the components of systems they design, service, or use.

The text begins some history lessons about computers on page 22 with a very general definition of a computer:

  • A computer accepts numeric inputs.
  • A computer can perform computational functions, like addition and subtraction.
  • A computer can communicate the results of its computations.

The author admits that most computers we use can do much more than these three things, but it is a starting point that allows us to consider many devices to be computers.

Computing devices were mechanical long before they were electronic. The text mentions the Difference Engine designed, but never completely built, by Charles Babbage. The prototype built by Babbage was capable of doing computations. The full version would have done more complex calculations, as has been proven by people who built working models from Babbage's plans.

World War II led to a need for complex calculations that had to be done quickly, which led to the need for electronic computers. Work on computers was done by people on both sides of the war, before and afterward. Watch the video behind the link in the last sentence, and you will understand that the evolution of computers has been something that has occurred over a long time, and improvements continue.

On page 26, the text refines its definition of a computer to make it apply to more modern electronic equipment.

  • A computer has a general purpose processor.
  • A computer has enough storage capacity to hold program instructions and data.
  • A computer has flexible communication capability.

The text proceeds to expand on each of these points. A processor is described as having the ability to do computation (math functions), comparison (logical functions), and data movement (storing and moving data from one location to another). Associated vocabulary:

  • instruction - a single command to a processor to perform one function
  • execution - the action of performing a command
  • program - a series of instructions for a processor that may or may not be stored
  • general-purpose processor - a processor that can do many kinds of processing
  • special-purpose processor -  usually a processor that is limited to doing one kind of processing, such as a processor in a kitchen appliance or a car
  • formula - a sequence of computation and data movement instructions that solve one kind of problem, such as a formula for computing sales tax in a particular city, county, or state
  • algorithm - a set of instructions in which different computations and data movements are performed depending on the data that are supplied to the computer, such as an algorithm for computing wages that is dependent on a varying rate of pay based on shift, holiday hours, and overtime, in addition to a standard formula
  • comparisons and branching -
    • Programs typically use three structures to accomplish what they do. The simplest structure is sequence: instructions are executed one at a time in a particular order.
    • A program may make decisions about what to do, based on the value of an input or the result of an operation. This is called selection. The program must make a comparison between a stored value and the value of the input to make this kind of decision. When the program selects between several possible instructions to run next, this is called branching.
    • A program can also choose to run a part of itself several times, until a condition becomes true that causes it to stop doing that. This is called iteration or looping.

Computers are typically meant to give results to their users by any of several output mechanisms. Output is often sent to a screen, saved as a file, or sent as an email or text message.

The text moves on with a discussion of various elements of computer hardware. Its presentation is based on the idea that there are four essential functions of computer hardware: processing, storage, external communication, and internal communication.

Most processing in a computer is done by the Central Processing Unit (CPU). The text discusses the classic internal architecture of a CPU:

  • Arithmetic Logic Unit (ALU) - the part of the CPU that executes instructions
  • Registers - storage areas inside the CPU
  • Control Unit - a traffic cop device that reads program instructions, passes them to the ALU, and moves data to the registers and to other devices

The system bus is usually a set of copper paths in a motherboard that allows data to flow from one device to another inside the computer. As the text should explain, we pass one bit at a time along each wire or path in the bus to and from the CPU, hard drives, memory, and other internal devices. The number of wires determines the width of the system bus, which determines how much data we can feed each device at once.

Storage on a computer comes in three major types: registers, primary storage, and secondary storage.

  • registers - a limited number of storage locations inside a CPU, usually only able to hold one data item or instruction at a time; the contents of registers are lost when a computer is turned off
  • primary storage - the working memory of a computer, usually called Random Access Memory (RAM), used for holding instructions and data that the computer is using at the moment; the contents of RAM are lost when a computer is turned off
  • secondary storage - usually hard drives, solid state drives, and/or optical storage discs, typically used to store information that the computer is not using at the moment, or information for long term storage; the contents of secondary storage are not lost when the computer is turned off

Input and output devices are two classic categories of computer equipment, both internal and external. Some devices do both, such as touch screens.

  • input device examples - mice, keyboards, touch pads, microphones, scanners
  • output device examples - screens, speakers, printers, headphones

The text breaks most computer models into five computer system classes:

  • microcomputer - This class includes what are usually called desktop computers and sometimes called workstations. The text uses the term "personal computer", which is also correct in that computers in this class are usually providing service to one person at a time, but that is true of the next class as well.
  • portable - The class includes laptops and notebooks (which are the same thing to most people), as well as netbooks (computers use primarily for connection to services on a network), and personal digital assistants (PDAs). This class should also include tablets and smart devices.
  • midrange computer (minicomputer) - A computer that is more powerful than a desktop, designed to provide services to multiple network users, typically by running a virtual device on the minicomputer for each connected user. It can typically support dozens of users, and may support hundreds if it is a high end machine.
  • mainframe - A networked device that can support hundreds or thousands of users, depending on the kind of request it is answering. This kind of device is needed by a large enterprise with many users, perhaps in several locations.
  • supercomputer - A very powerful, expensive device meant to be used for the most intensive kinds of calculations and processing, such as video rendering, weather prediction, and code breaking. This kind of computer is used when it would take too long for a lesser computer to do the job. It may be implemented as a collection of clusters of smaller computers.

The text introduces the idea of a cluster of computers on page 38. It defines four related terms:

  • cluster - an arrangement of similar computers that are linked in some way to provide better service (faster performance), redundant/failover service (in case of hardware failure), or a required level of service for specific applications; devices in a cluster are typically located near each other, in one room or one rack
  • blade - a blade is typically one of several smalll servers mounted in a cabinet or rack (a blade enclosure), which each take up less space and pull less power than similarly capable free standing servers; blade servers can act like a cluster, but may be easier to configure as a cluster than a group of free standing machines
  • grid - an arrangement of dissimilar computers which may or may not be in one location, which are connected by a high speed network, and which may work cooperatively or independently
  • cloud - a computing solution that includes devices that users operate, and services used by those users across network connections, typically implemented through clusters or grids

On page 44, the text turns to software of various types. Oddly, it begins by discussing the idea of a programmer writing instructions that have to bridge the gap between human instructions and machine language. Many programmers use high level languages (such as C) which are translated in multiple stages before they are understandable by a machine. Some, however, program devices more directly with low level languages (such as assembly language), which is only about one step removed from machine language.

The text switches direction for a bit to talk about types of software. Most can be classified as one of two types:

  • application software - software that serves a particular, specific purpose, such as communications, word processing, or game software
  • system software - typically, operating system software, which serves as an interface between the user, applications, and the computer hardware; users typically use applications, which make requests to the operating system, which sends requests to the system components; some examples of operating systems are Windows, Linux, UNIX, and OSx

The text another category of software: application development software. This can be classed as a kind of application itself, but it is special in that its purpose is the creation of other applications or operating systems.

The chapter ends with a short discussion of computer networks. Most networks are either client-server networks or peer to peer networks. In a client-server network, which is more common, devices either request services or provide services to other computers. Devices that request services are clients. Devices that provide services are servers. In a peer to peer network, all devices can request and provide services to each other at any time.

In a client-server network, clients need network software to make requests to use network resources. Servers need network software as well, but their version allows them to listen for service requests, answer service requests, and advertise services on the network.