|  3DSoftware.com > ECE > MPSoC > Introduction |
|
Introduction to Computer Organization
This series of articles covers MPSoC technologies and general computing. Terminology Computer science is a new and emerging field, with terminology that is not yet established. For example, sometimes the term MIPS means Millions of Instructions Per Second. But sometimes it means Microprocessor without Interlocking Pipeline Stages, which was the name of a research project and is now the name of a company which uses that technology. Likewise, the term microcontroller can mean an electronic chip that controls an automobile engine or a consumer device. Or it could mean the component within a CPU that controls the CPU's internal signals. |
Footnotes:
|
|
Transistor
A transistor is the most basic building block of a computer. It simply consists of the equivalent of three wires: a thin wire, and two thicker wires. The thin wire controls whether the thicker wires pass electricity to each other. If a small amount of electricity is present in the thin wire, then a larger amount of electricity is allowed to pass through the larger wires (the larger wires are connected). But if no electricity is present in the thin wire, the larger wires are disconnected from each other (no electricity flows between them). Thus a transistor is essentially a tiny electrically-operated switch. Instead of using wires, it actually uses semiconductor materials.
Transistors are organized into logic gates, which are in turn organized to add and combine bits, which is organized to subtract, multiply, divide, etc. Anything that is done on computers simply comes down to the logic of transistors working together. We will now examine the use of a single transistor in accessing a bit of dynamic random access memory (DRAM). Each bit is stored in a single capacitor which is accessed (switched) by a single transistor that is called a pass transistor (it lets electricity pass to or from the capacitor).
|
|
|||||||||||
|
Switching occurs one word at a time. But we will focus here
on only one bit of information. The bit is actually a charge
on a capacitor. If the capacitor is charged, that represents
a 1 bit.
If the capacitor is not charged, that represents a 0 bit. The word line in the quote above is the control line in the diagram at right. The bit line holds the value we want to set the capacitor to when the control line is set. The sequence of diagrams below shows an example. We begin with the memory bit set to zero, as shown in the first diagram. The control line is zero, so the memory bit is disconnected from the bit line, and therefore it does not matter whether or not the bit line is charged. To convert the memory bit to 1, we charge the bit line (setting it to logical 1) as shown in the second diagram, and then charge the control line, as shown in the third diagram.
The charged bit line is connected to the capacitor, loading the capacitor with charge (setting it to logical 1). The memory bit is now set to 1, as shown in the first diagram below. The next two diagrams show how to set it to 0. First the bit line is set to an uncharged state (0), then it is connected to the capacitor, draining the charge from the capacitor.
This example only covered write operations. (To read the memory cell, the bit line is half-charged and a sense amplifier detects how it changes when connected to the capacitor.) |
|
|
Instruction Set Architecture (ISA)
Modern computers were first made with relay switches, then vacuum tubes, and now transistors. Early programming consisted of plugging cables in specific patterns and throwing switches. That became tedious, and researchers including John von Neumann came up with the idea of storing program instructions in memory. That idea is still used today and is what many people think programming consists of. It is called the stored program model, or von Neumann architecture. Computers are actually a blend of programming through hard wiring, and programming through the stored program method. The classic division has become known as a computer's Instruction Set Architecture (ISA). This is an idealized division between software and hardware, which proves very useful. |
|
|
Consider again the early computer in which all programming
was done with wiring (plugging and unplugging cables).
The next step up from that is a stored program computer
in which individual commands (operation codes)
are stored in sequential memory locations and
read one at a time by the computer's
Central Processing Unit (CPU). The commands are thought of as operation codes (opcodes). Imagine that the CPU has a separate hard wired circuit for each possible opcode. One by one, each opcode is read in from memory, and the CPU invokes a different hard-wired circuit depending on what the opcode is. That is like plugging and unplugging cables, except the CPU does it for you, using switches instead of plugs. The Instruction Set is the list of all possible opcodes. The computer is known (identified) among programmers as having a particular Instruction Set. It is that computer's Instruction Set Architecture (ISA). That ISA division is still used today. It is very practical. Computers are still classified by how their CPU can be programmed. A key problem with programming through hard wiring is that it becomes more difficult (and inevitably impossible) to do on a larger scale. The first time that became apparent was when programmers got tired of plugging and unplugging external cables. The next time it became apparent was when CPUs became larger and more powerful. The CPU itself started to become a large system, and it was becoming too difficult to do all of the hard wiring a CPU required. The solution to that problem was to develop a smaller CPU that would operate within the larger CPU to manage the internal signal traffic of the larger (main) CPU. This smaller CPU, which is inside of (and manages) a main CPU, is now called a microcontroller, and its instruction set is called microcode. The macro instruction set therefore continues to define the Instruction Set Architecture (ISA). For practical purposes, anything below that should be considered hardware (hard wiring) which is not possible to change (we should pretend the microcode does not exist). |
|
|||||||
|
Microcode greatly facilitates the design and manufacture of
CPU chips. When a defect is found in the hard wiring of a CPU chip,
the microcode can be changed to avoid the defect.
And the chip manufacturer can radically change the microcode
in new chip versions to increase efficiency, without changing
the macro instruction set. Thus, it is important for programmers
to use the macro instruction set, which will not change, instead
of the microcode, which the chip manufacturer must have the freedom
to radically change. On the software side of the ISA divide, high level languages (HLL) have been developed and are now more widely used than assembly language (which uses the machine's macro instruction set of opcodes). HLL programs are converted into opcode instructions (machine language) in a process called compilation. This is done with programs (software development tools) that are called compilers. |
|
Next Page: Hardware Innovations |
|
Copyright © 2008 by 3D Software. All rights reserved. 3D Software, P.O. Box 221190, Sacramento CA 95822 USA www.3DSoftware.com Contact us |
| Tuesday, 06-Jan-2009 03:11:41 GMT |