Bit slicing
Encyclopedia
Bit slicing is a technique for constructing a processor
Central processing unit
The central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...

 from modules of smaller bit width. Each of these components processes one bit field
Bit field
A bit field is a common idiom used in computer programming to compactly store multiple logical values as a short series of bits where each of the single bits can be addressed separately. A bit field is most commonly used to represent integral types of known, fixed bit-width. A well-known usage of...

 or "slice" of an operand
Operand
In mathematics, an operand is the object of a mathematical operation, a quantity on which an operation is performed.-Example :The following arithmetic expression shows an example of operators and operands:3 + 6 = 9\;...

. The grouped processing components would then have the capability to process the chosen full word-length of a particular software design.

Operational details

Bit slice processors usually consist of an arithmetic logic unit
Arithmetic logic unit
In computing, an arithmetic logic unit is a digital circuit that performs arithmetic and logical operations.The ALU is a fundamental building block of the central processing unit of a computer, and even the simplest microprocessors contain one for purposes such as maintaining timers...

 (ALU) of 1, 2, 4 or 8 bits and control lines (including carry or overflow
Arithmetic overflow
The term arithmetic overflow or simply overflow has the following meanings.# In a computer, the condition that occurs when a calculation produces a result that is greater in magnitude than that which a given register or storage location can store or represent.# In a computer, the amount by which a...

 signals that are internal to the processor in non-bitsliced designs).

For example, two 4-bit ALUs could be arranged side by side, with control lines between them, to form 8-bit, 16-bit, or 32-bit words (so the designer can add as many slices he wants to make it to manipulate longer word lengths).

A microsequencer
Microsequencer
In computer architecture and engineering, a sequencer or microsequencer is a part of the control unit of a CPU. It generates the addresses used to step through the microprogram of a control store....

 or Control ROM would be used to execute logic to provide data and control signals to regulate function of the component ALUs. Examples of bit-slice microprocessor modules can be seen in the Intel 3000 family, the AMD's Am2900 family
AMD Am2900
Am2900 is a family of integrated circuits created in 1975 by Advanced Micro Devices . They were constructed with bipolar devices, in a bit-slice topology, and were designed to be used as modular components each representing a different aspect of a computer control unit...

, the National Semiconductor
National Semiconductor
National Semiconductor was an American semiconductor manufacturer, that specialized in analog devices and subsystems,formerly headquartered in Santa Clara, California, USA. The products of National Semiconductor included power management circuits, display drivers, audio and operational amplifiers,...

 IMP-16
IMP-16
The IMP-16, by National Semiconductor, was the first multi-chip 16-bit microprocessor. It consisted of five PMOS integrated circuits: four four-bit RALU chips providing the data path, and one CROM providing control sequencing and microcode storage.The IMP-16 provided four 16-bit accumulators,...

 and IMP-8 family, and the 74181
74181
The 74181 is a bit slice arithmetic logic unit , implemented as a 7400 series TTL integrated circuit. The first complete ALU on a single chip, it was used as the arithmetic/logic core in the CPUs of many historically significant minicomputers and other devices.The 74181 represents an evolutionary...

.

Historical necessity

Bit slicing (although it was not called that) was also used in computers before integrated circuits. The first bit-sliced machine was EDSAC 2
EDSAC 2
EDSAC 2 was an early computer, the successor to the Electronic Delay Storage Automatic Calculator. It was the first computer to have a microprogrammed control unit and a bit slice hardware architecture....

, built at the University of Cambridge Mathematical Laboratory in 1956-8.

Before the era of modern computers (mid-1970s through late 1980s) there was some debate over how much bus width was necessary in a given computer system to make it function. Silicon chip technology and parts were generally much more expensive than today. Using multiple simpler (and cheaper) ALUs was seen as a way to increase computing power in a cost effective manner. 32-bit architectures were being discussed but few were in production.

At the time 16-bit processors were common but expensive, and 8-bit processors, such as the Z80, were widely used in the nascent home computer market.

Combining components to produce bit slice products allowed engineers and students to create more powerful and complex computers at a more reasonable cost, using off-the-shelf components that could be custom-configured. The complexities of creating a new computer architecture were greatly reduced when the details of the ALU were already specified (and debugged).

The main advantage in the late 60's to mid 80's was that bit slicing made it economically possible in smaller processors to use bipolar transistors, which switch much faster than NMOS or CMOS transistors. This allowed for much higher clockrates, for applications where speed was needed; for example DSP functions or matrix transformation, or as in the Xerox Alto, the combination of flexibility and speed, before discrete CPUs were able to deliver that.

Modern use

In more recent times, the term bitslicing was re-coined by Matthew Kwan to refer to the technique of using a general purpose CPU to implement multiple parallel simple virtual machines using general logic instructions to perform Single Instruction Multiple Data
SIMD
Single instruction, multiple data , is a class of parallel computers in Flynn's taxonomy. It describes computers with multiple processing elements that perform the same operation on multiple data simultaneously...

 operations. This technique is also known as SWAR
SWAR
SWAR is an acronym for SIMD Within A Register.SIMD, in turn, stands for Single Instruction, Multiple Data.Many modern general-purpose computer processors have some provisions for SIMD, in the form of a group of registers and instructions to make use of them...

, SIMD Within A Register.

This was initially in reference to Eli Biham's 1997 paper A Fast New DES Implementation in Software, which achieved significant gains in performance of DES by using this method.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK