UNIT I
COMPUTERS
OVERVIEW
The main function of a digital computer is to process input data and produce results that can be used in a specific application environment. The physical devices used to implement a computer system and manage the storage and flow of data and instructions along its internal communication lines constitute the hardware component of the system. The processing hardware is programmed to perform computations according to some set of rules, the algorithm (a logical sequence of steps) used to solve the particular problem. The algorithm is translated into a program —a set of instructions— that the hardware follows in solving the problem. The collection of programs constitute the software component of the system.
The study of Software is concerned with programming languages, data representations, creation of efficient programs, software evaluation, and compiler development. Hardware involves the understanding of computer organization and the study of the physical components used for the design of a computer system. Hardware and software are intimately related, and software cannot be fully understood without some understanding of hardware, since a substantial part of software is hardware dependent.
Among the components (resources) are these:
Processors
Input/output controllers Memory units
Buses (communication paths, data highways)
Registers, adders, shifters, and multipliers Data representations Addressing modes Machine language instructions Instruction fetching, executing, and decoding The terms computer architecture and computer organization are often used interchangeably at this level. However, they do not mean the same thing. Computer architecture refers to the characteristics of a computer as seen by the programmer. Computer organization relates to the physical resources of a computer and is concerned with their organization, their integration into a functional system, and the control of communication and data How among them.
A computer is assumed to be a system having one or more processors capable of interpreting and executing instructions. The instructions to be executed, as well as the data to be operated on, are held in memory. Interfacing both processors and memory with external data sources or with peripheral hardware, such as terminals and printers, is done through input/output (I/O) subsystems. Communication among the various units is accomplished by means of one or more system buses.
The basic principles of computer organization involve the structure and organization of the various computer units and their interfaces to other subsystems. The computer designer makes decisions regarding the form in which programs are represented to and interpreted by the underlying computer, the methods by which these programs address or name their data, and data representations. These decisions include aspects such as the size of storage, types and formats of data, instruction sets, storage addressing and protection, and I/O and interface considerations.
Text 1 Mechanical calculators Part I
Circa 4000 B.C. One of the earliest known computational devices, the abacus, was developed. This is a mechanical device composed of a slab (abax in Greek) with pebbles (calculi in Greek) strung on wires. The position of the pebbles on each wire determines the value of a digit. The abacus (also known as the Chinese suan pan and the Japanese soroban) can be used to add, subtract, multiply, and divide. In the hands of a skilled operator, it can produce results as fast as a modem desktop calculator.
1623. Machines capable of automatically performing the four basic arithmetic operations first appeared in Europe in the early seventeenth century. The earliest such machine seems to have been designed and built in 1623 by Wilhelm Schickhard at the University of Tubingen. Schickhard’s machine was little known in his day.
1645. Blaise Pascal, the French philosopher, mathematician, and physicist, developed the first real mechanical calculator. This was a rotating wheel that used a series of eight gears with automatic carry' generation between digits for addition and subtraction of decimal numbers.
Mid-1600s. John Napier, a Scot, invented the concept of logarithms and implemented it on a set of ivory rods, known as Napier's bones, which were used to perform multiplication and division through repeated additions and subtractions.
Circa 1650. Robert Bissaker extended Napier's work with logarithms and invented the slide rule, using sliding pieces of wood.
1671-1694. The Prussian mathematician Baron Gottfried Wilhelm von Leibniz extended Pascal's adding machine to perform multiplication and division through the use of additional gears.
1725. Basile Bouchon introduced a simple draw-looni for weaving figured silks. The silk designs were controlled by patterns of holes punched on a roll of paper. When the coded paper was pressed against a row' of needles, those that lined up with the holes remained in place while the others moved forward. The loom's action, controlled by the selected needles, formed the pattern of the fabric.
1741. A watchmaker named Jacques de Vaucanson built an automatic loom for weaving figured silks. The designs were established by patterns of holes punched on a metal drum. The holes controlled the selection of threads by raising and lowering the treadles.
1801. One of the interesting results of the industrial revolution was the Jacquard loom. Joseph Marie Jacquard, a silk weaver from France, built in 1801 an attachment to the weaving loom that resulted in automated pattern weaving. This was a step toward the development of programmable instructions since the loom was controlled by a series of punched cards. The cards had holes in them and functioned just like a program, providing sets of instructions that were read by the machines as they passed over a series of rods. By 1812 there were over 11,000 Jacquard looms in France.
1821. The next major advance is associated with the English inventor Charles Babbage. The device, called the difference engine, implemented finite difference operations. In 1854 a Swede named Georg Scheutz was able to build a working version of Babbage's difference engine.
Meanwhile, Babbage developed the idea of the analytical engine, which contained many features similar to twentieth-century stored-program digital computers. It was designed around two types of cards: operating cards, which indicated specific functions to be performed, and variable cards, which indicated actual data. The machine itself had a store - an area within the device in which instructions and variables were maintained - and a mill - an arithmetic unit that performed the operations. Instructions and data were fed into the device by means of punched cards, and output was produced automatically.