Organization of Computer Systems:
Appendix B: Overview of Computer Organization

Instructor: M.S. Schmalz

We begin our discussion of computer organization with several basic definitions and a distinction between hardware and software (Section B.1), then progress to a summary of various types of software (Section B.2).

Reading Assignments and Exercises

B.1. Computer Hardware and Software.

As is customary in computer science, we begin by defining several terms that we will be using frequently in subsequent discussion.

Definition. A state map is a collection of values that describe the state of a process or machine at a given time.

Example. A state map of human emotion could consist of several values drawn from the list (happy, sad, peaceful, etc.)

Definition. A Boolean state map is a state map that has Boolean values (i.e., consists of ones and zeroes).

Definition. A digital computer is a finite, discrete device that stores and manipulates a Boolean state map.

Remark. Digital computers are also called discrete processors because they compute over discrete sets of numbers. Because the size of a digital computer memory is finite, digital computers are sometimes called finite discrete processors.

Digital computers are comprised of hardware (equipment) and software (instructions that make the equipment operate).

Computer hardware consists of the following electronic or electro-mechanical devices:

  • Memory -- a collection of registers and storage devices that store the computer's state map.

  • Central Processing Unit (CPU) -- the "brains" of the computer, which does the work of changing the state map stored in memory.

  • Input/Output (I/O) Processor -- manages and performs the work associated with reading (or writing) information that is added to (subtracted or copied from) portions of the computer's state map.

  • Peripherals -- include (a) devices that store ancillary software and data, (b) output devices such as printers and plotters, input devices such as a mouse or scanner, as well as the keyboard or display device (e.g., the monitor).

  • The following schematic illustration depicts a typical arrangement of hardware in a personal computer or basic workstation with a sequential processor.

    Figure B.1.1. Organization of computer hardware in a von Neumann architecture.

    Such an arrangement is frequently called a von Neumann architecture (VNA), so named for John von Neumann, who helped develop this method of connecting computer components. The VNA currently comprises over 95 percent of computer processors currently in use.

    B.2. Software and Operating Systems.

    Computer software includes sets of instructions (also called programs) such as:

  • Microcode -- low-level instructions that make the CPU run correctly.

  • Machine Code -- slightly higher-level than microcode, these instructions are loaded directly into memory and comprise a stored, executable program.

  • I/O and Computational Libraries -- sets of procedures and instructions that the I/O processor and CPU use to input or output data, as well as compute various arithmetic, math, and data handling operations.

  • Application Software -- programs that users run to accomplish various home, business, and scientific tasks such as word processing (e.g., Word Perfect® or Microsoft Word®), spreadsheets (e.g., Quattro® or Excel®), drawing or sketching (e.g., AutoCAD® or Corel-Draw®), and graphics (e.g., Adobe Photoshop®).

  • Operating System -- interfaces application software with libraries and (in very few cases) microcode in a convenient manner that is transparent to (i.e., unseen by) the user.

  • Ancillary Utilities -- in addition to the utilities provided by the computer's operating system, there may be available to the user compilers, linkers, and loaders for programming languages such as Pascal, FORTRAN, C, and C++.

    The following illustration schematically depicts the arrangement of software in a program development sequence, as discussed in Section B.3.

    Figure B.2.1. Organization of computer software for compilation and applications software execution. Light solid lines denote flow of data, while light dotted lines denote flow of control.

    Of particular interest is the operating system, which performs a variety of functions that include:

  • Timekeeping -- interrogates the system clock (hardware) to determine time-of-day and date, as well as the duration of each sequence of instructions executed.

  • Input/Output -- whereby instructions or data are moved to or from memory or secondary storage (e.g., a disk drive).

  • User Interface and I/O Management -- which includes managing the layout and display parameters (e.g., color and resolution) of windows in which application software is run, inputting instructions from pointing devices such as the mouse, and managing user input from the keyboard.

  • Compilation Management -- including tasks that constitute portions of the software development process, such as (a) editing programs developed by system users, (b) program translation into low-level machine code, and (c) linking user programs with various libraries to achieve versatility. This process is shown schematically in Figure B.2.1.

  • File and Directory Management -- organizing information stored in disk and tape drives in an orderly, hierarchical fashion.

  • Note that the operating system serves as a link between the low-level functions of the hardware and the higher level processes that occur in application software. This linking process must be accomplished in a manner that is transparent to (i.e., unseen by) the user, so that the user will not waste time or cause problems by becoming involved in low-level implementational details of program compilation and execution. Additionally, the operating system must perform these functions in a convenient manner, to avoid distracting the user from performing tasks that the application software is designed to perform or assist.

    In the past (i.e., early days of computing), operating systems were more cumbersome and provided fewer utilities. This was due in part to the small amount of memory available (resulting from relatively primitive technology), as well as the simpler types of software in use at that time. Modern operating systems support graphical user interfaces, multi-window systems, and multiprocessing (running several different programs at the same time).

    Reading Assignments and Exercises

  • References