Английская Википедия:Bit slicing

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Short description Шаблон:Distinguish Шаблон:About Шаблон:Expand Russian Шаблон:Primary sources

Шаблон:Computer architecture bit widths Шаблон:Use dmy dates Шаблон:Use list-defined references Bit slicing is a technique for constructing a processor from modules of processors of smaller bit width, for the purpose of increasing the word length; in theory to make an arbitrary n-bit central processing unit (CPU). Each of these component modules processes one bit field or "slice" of an operand. The grouped processing components would then have the capability to process the chosen full word-length of a given software design.

Bit slicing more or less died out due to the advent of the microprocessor. Recently it has been used in arithmetic logic units (ALUs) for quantum computers and as a software technique, e.g. for cryptography in x86 CPUs.[1]

Operational details

Bit-slice processors (BSPs) usually include 1-, 2-, 4-, 8- or 16-bit arithmetic logic unit (ALU) and control lines (including carry or overflow signals that are internal to the processor in non-bitsliced CPU designs).

For example, two 4-bit ALU chips could be arranged side by side, with control lines between them, to form an 8-bit ALU (result need not be power of two, e.g. three 1-bit units can make a 3-bit ALU,[2] thus 3-bit (or n-bit) CPU, while 3-bit, or any CPU with higher odd number of bits, hasn't been manufactured and sold in volume). Four 4-bit ALU chips could be used to build a 16-bit ALU. It would take eight chips to build a 32-bit word ALU. The designer could add as many slices as required to manipulate longer word lengths.

A microsequencer or control ROM would be used to execute logic to provide data and control signals to regulate function of the component ALUs.

Known bit-slice microprocessors:

Historical necessity

Bit slicing, although not called that at the time, was also used in computers before large-scale integrated circuits (LSI, the predecessor to today's VLSI, or very-large-scale integration circuits). The first bit-sliced machine was EDSAC 2, built at the University of Cambridge Mathematical Laboratory in 1956–1958.

Prior to the mid-1970s and 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 much more expensive than today. Using multiple simpler, and thus less expensive, ALUs was seen as a way to increase computing power in a cost-effective manner. While 32-bit microprocessors were being discussed at the time, few were in production.

The UNIVAC 1100 series mainframes (one of the oldest series, originating in the 1950s) has a 36-bit architecture, and the 1100/60 introduced in 1979 used nine Motorola MC10800 4-bit ALU[12] chips to implement the needed word width while using modern integrated circuits.[16]

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 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 much higher clock rates, where speed was neededШаблон:Snd for example, for DSP functions or matrix transformationШаблон:Snd or, as in the Xerox Alto, the combination of flexibility and speed, before discrete CPUs were able to deliver that.

Modern use

Software use on non-bit-slice hardware

In more recent times, the term bit slicing was reused by Matthew Kwan[17] 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) operations. This technique is also known as SIMD within a register (SWAR).

This was initially in reference to Eli Biham's 1997 article A Fast New DES Implementation in Software,[18] which achieved significant gains in performance of DES by using this method.

Bit-sliced quantum computers

To simplify the circuit structure and reduce the hardware cost of quantum computers (proposed to run the MIPS32 instruction set) a 50 GHz superconducting "4-bit bit-slice arithmetic logic unit (ALU) for 32-bit rapid single-flux-quantum microprocessors was demonstrated".[19]

See also

References

Шаблон:Reflist

Further reading

External links

Шаблон:Authority control

  1. Ошибка цитирования Неверный тег <ref>; для сносок Benadjila_2013 не указан текст
  2. Ошибка цитирования Неверный тег <ref>; для сносок CMSC_2003 не указан текст
  3. Ошибка цитирования Неверный тег <ref>; для сносок cpushack не указан текст
  4. Ошибка цитирования Неверный тег <ref>; для сносок Signetics_1977 не указан текст
  5. Ошибка цитирования Неверный тег <ref>; для сносок NatSemi_IMP-4 не указан текст
  6. 6,0 6,1 6,2 6,3 6,4 Ошибка цитирования Неверный тег <ref>; для сносок Klar_1989 не указан текст
  7. Ошибка цитирования Неверный тег <ref>; для сносок Monolithic_6701 не указан текст
  8. Ошибка цитирования Неверный тег <ref>; для сносок Monolithic_5700 не указан текст
  9. Ошибка цитирования Неверный тег <ref>; для сносок MMI_5701 не указан текст
  10. Ошибка цитирования Неверный тег <ref>; для сносок MMI_6701 не указан текст
  11. Ошибка цитирования Неверный тег <ref>; для сносок SN74S481 не указан текст
  12. 12,0 12,1 Ошибка цитирования Неверный тег <ref>; для сносок MC10800 не указан текст
  13. Ошибка цитирования Неверный тег <ref>; для сносок Kurth-Groß-Hunger_2021_IS не указан текст
  14. Ошибка цитирования Неверный тег <ref>; для сносок Oppelt_2016 не указан текст
  15. Ошибка цитирования Неверный тег <ref>; для сносок Salomon_2007_U830C не указан текст
  16. Ошибка цитирования Неверный тег <ref>; для сносок Univac_1100 не указан текст
  17. Ошибка цитирования Неверный тег <ref>; для сносок Kwan не указан текст
  18. Ошибка цитирования Неверный тег <ref>; для сносок DES не указан текст
  19. Ошибка цитирования Неверный тег <ref>; для сносок Tang_2016 не указан текст