Microcomputers and microprocessors

You only have to walk into a bookshop to realise that the subject of computers and computing is absolutely vast. It is therefore only possible in an introductory chapter to "scratch the surface" of this huge subject. Nevertheless, modern desktop microcomputers are now so powerful and their impact on music making and recording so profound that it is simply impossible to ignore them. Additionally, in the complexity and jargon of modern computing, it often seems that some of the fundamental principles are lost: so, this introduction to computers concentrates on some of the very fundamental principles and architectures of modern microcomputers in the hope that a clarification of the basics will foster a better understanding of the detail.

The term "microcomputer" was coined in the 1970s to refer to stand-alone computers in which the central processing unit (CPU) was constructed from a single microprocessor integrated circuit. This actually seems a rather silly term now that the average desktop machine is many thousands of times more powerful than mainframe computers were at the time the term was coined! Nevertheless, even though the first microcomputers were based on 8-bit microprocessors running at a couple of Megahertz with perhaps 1k of memory and a compact cassette interface for long-term storage, and a modern desktop machine is a 32-bit machine running at hundreds (even thousands) of Megahertz with 1GByte of memory and has a high-performance hard-drive for storage, many of the concepts remain the same.

At its most fundamental, a stand-alone desktop computer may be thought of as shown above in which the “backbone” of the computer is formed by three parallel data busses: the data bus, the address bus and the control bus. This term “bus” is a term which describes a series of signals which are shared between the various components of the computer: each being able to communicate (read and/or write) onto this common set of signals. To the engineers who worked on early computers these wires or PCB traces looked like the bus-bars that feed electrical power around a factory to the various machines, so they called these signals the “data bus”.

The common data bus connects the microprocessor chip with some non-volatile ROM memory (meaning that the contents of the memory aren’t lost if the computer’s power is removed), a large array of volatile random-access memory (RAM) which a computer uses as its short-term store, a long-term storage device (a hard-drive, a floppy disk or a CD-ROM for example) as well as other peripherals like a keyboard and monitor driver, printer, mouse and audio input/output (I/O) cards.

The heart of the computer where the program is run is the microprocessor CPU which contains the, all important arithmetic logic unit (ALU) inside which all the calculations are performed. When you reduce the gain of an audio clip in your audio editor by 3dB, it is inside the ALU, that each of the samples will be multiplied by 0.707. In order to multiply each of these samples, the microprocessor must extract the samples from memory, which it does using the address bus and data bus; the address bus to locate the correct memory location and the data bus to collect the sample value. It must then use a reverse process to write a new value to the address of a new memory location. And it must orchestrate all this internal activity using its internal timing and control circuitry as well as its interaction with other devices and peripherals using the control bus. In a modern computer, the single data bus does not directly interface with peripherals, storage devices and even memory, instead it uses a pair of ICs to do these duties. In the Intel Pentium chip-set, two ICs named the North and South Bridge chips perform multiple duties as illustrated here.

The North Bridge is the “nearer” chip to the Pentium CPU and connects via the high speed data, address and control bus known as the Front Side Bus which is fairly analogous to the backbone data bus shown in the simple computer above. The North Bridge deals with interfacing to the DIMM memory modules (which obviously require the fastest connection possible) and to the fast graphics bus known as the AGP: this is where graphics cards plug in. The North Bridge interfaces, via a bus which is about a third the speed of the Front Side Bus, to the South Bridge IC, which deals with slower peripherals. These include the hard drives, the PCI slots (where audio cards plug in) USB and Ethernet devices and to low speed peripherals like the keyboard, mouse, floppy disk and serial ports.

DMA

A great part of any audio application will often require the transfer of large files from the hard drives to system RAM. (A sampler or loop-based composition program would be good examples.) This might be achieved by the processor requesting data from the disk, moving that data to the processor and re-writing the data back into memory, but this would be very inefficient, so a technique called DMA or Direct Memory Access is used. In DMA, the processor temporarily surrenders its control of the bus and permits a direct connection between a peripheral or disk, to the memory. Clearly this has to be carefully controlled and there are a whole series control signals which must pass between the various devices before a DMA transfer can take place. This process of “negotiating” for the bus is called handshaking.

Operating system

One of the great advantages of a computer platform is that it is multi-purpose. You can use it to edit audio files or text-files, you can use to draw or manipulate photographic images and so on. Without an operating system, program developers would have to write their programs so that they not only dealt with the programming itself, but each program would need to deal with disk accessing, drawing to the computer screen, dealing with the keyboard, mouse and so on. This would make every programming task very complicated. In addition, it would mean that it would be impossible to run two programs simultaneously on the same computer because each one would “fight” for the same system hardware-resources. Since these actions are common to all programs, it makes much better sense to have a sort of a fundamental operations program which deals with all these system tasks, so that other programs simply need to interface with this program, rather than with the hardware itself. This program is known as the computer's operating system. By far the most widespread operating system is Windows (in its various forms) by the Microsoft Corporation. Other operating systems include OSX for the Apple computer platform and LINUX. Modern operating systems abstract the hardware to a very great degree so that programs take advantages of an entire suite of system “toolsets” which enable applications to be developed swiftly “on top of” the operating system.


Links

Back to Contents

Address all mail to richard@richardbrice.net

Web link richardbrice.net


© Richard Brice 2005. All rights reserved.