Engineering:74181

From HandWiki
Short description: First arithmetic logic unit (ALU) on a single chip
The 74S181 4-bit ALU bitslice resting on a page from the datasheet

The 74181 is a 4-bit slice arithmetic logic unit (ALU), implemented as a 7400 series TTL integrated circuit. Introduced by Texas Instruments in February 1970,[1] it was the first complete ALU on a single chip.[2] It was used as the arithmetic/logic core in the CPUs of many historically significant minicomputers and other devices.

The 74181 represents an evolutionary step between the CPUs of the 1960s, which were constructed using discrete logic gates, and today's single-chip microprocessor CPUs. Although no longer used in commercial products, the 74181 is still referenced in computer organization textbooks and technical papers. It is also sometimes used in "hands-on" college courses to train future computer architects.

Specifications

The combinational logic circuitry of the 74181 integrated circuit

The 74181 is a 7400 series medium-scale integration (MSI) TTL integrated circuit, containing the equivalent of 75 logic gates[3] and most commonly packaged as a 24-pin DIP. The 4-bit wide ALU can perform all the traditional add / subtract / decrement operations with or without carry, as well as AND / NAND, OR / NOR, XOR, and shift. Many variations of these basic functions are available, for a total of 16 arithmetic and 16 logical operations on two four-bit words. Multiply and divide functions are not provided but can be performed in multiple steps using the shift and add or subtract functions. Shift is not an explicit function but can be derived from several available functions; e.g., selecting function "A plus A" with carry (M=0) will give an arithmetic left shift of the A input.

The 74181 performs these operations on two four-bit operands generating a four-bit result with carry in 22 nanoseconds (45 MHz). The 74S181 performs the same operations in 11 nanoseconds (90 MHz), while the 74F181 performs the operations in 7 nanoseconds (143 MHz) (typical).

Multiple 'slices' can be combined for arbitrarily large word sizes. For example, sixteen 74S181s and five 74S182 look ahead carry generators can be combined to perform the same operations on 64-bit operands in 28 nanoseconds (36 MHz). Although overshadowed by the performance of today's multi-gigahertz 64-bit microprocessors, this was quite impressive when compared to the sub-megahertz clock speeds of the early four- and eight-bit microprocessors.

Implemented functions

The 74181 implements all 16 possible logical functions with two variables. Its arithmetic functions include addition and subtraction with and without carry. It can be used with data in active-high (high corresponds to 1) and active-low (low corresponds to 1) logic levels.[4]

Inputs and outputs

There are four selection inputs, S0 to S3, to select the function. M is used to select between logical and arithmetic operation, and Cn is the carry-in. A and B is the data to be processed (four bits). F is the number output. There are also P and a G signals for a carry-lookahead adder, which can be implemented via one or several 74182 chips.

Function table for output F

In the following table, AND is denoted as a product, OR with a [math]\displaystyle{ + }[/math] sign, XOR with [math]\displaystyle{ \oplus }[/math], logical NOT with an overbar and arithmetic plus and minus using the words plus and minus.

Selection Active-low data Active-high data
Logic M = H Arithmetic M = L Logic M = H Arithmetic M = L
S3 S2 S1 S0 Cn = L (no carry) Cn = H (carry) Cn = H (no carry) Cn = L (carry)
L L L L [math]\displaystyle{ \overline{A} }[/math] [math]\displaystyle{ A }[/math] minus [math]\displaystyle{ 1 }[/math] [math]\displaystyle{ {A} }[/math] [math]\displaystyle{ \overline{A} }[/math] [math]\displaystyle{ A }[/math] [math]\displaystyle{ A }[/math] plus 1
L L L H [math]\displaystyle{ \overline{AB} }[/math] [math]\displaystyle{ AB }[/math] minus [math]\displaystyle{ 1 }[/math] [math]\displaystyle{ {AB} }[/math] [math]\displaystyle{ \overline{A + B} }[/math] [math]\displaystyle{ A + B }[/math] [math]\displaystyle{ {(A + B)} }[/math] plus [math]\displaystyle{ 1 }[/math]
L L H L [math]\displaystyle{ \overline{A} + B }[/math] [math]\displaystyle{ A \overline{B} }[/math] minus [math]\displaystyle{ 1 }[/math] [math]\displaystyle{ A \overline{B} }[/math] [math]\displaystyle{ \overline{A}B }[/math] [math]\displaystyle{ A + \overline{B} }[/math] [math]\displaystyle{ (A + \overline{B}) }[/math] plus 1
L L H H Logical 1 [math]\displaystyle{ -1 }[/math] (two's complement) [math]\displaystyle{ 0 }[/math] (zero) Logical 0 [math]\displaystyle{ -1 }[/math] (two's complement) [math]\displaystyle{ 0 }[/math] (zero)
L H L L [math]\displaystyle{ \overline{A+B} }[/math] [math]\displaystyle{ A }[/math] plus [math]\displaystyle{ (A + \overline{B}) }[/math] [math]\displaystyle{ A }[/math] plus [math]\displaystyle{ (A + \overline{B}) }[/math] plus [math]\displaystyle{ 1 }[/math] [math]\displaystyle{ \overline{AB} }[/math] [math]\displaystyle{ A }[/math] plus [math]\displaystyle{ A \overline{B} }[/math] [math]\displaystyle{ A }[/math] plus [math]\displaystyle{ (A\overline{B}) }[/math] plus [math]\displaystyle{ 1 }[/math]
L H L H [math]\displaystyle{ \overline{B} }[/math] [math]\displaystyle{ AB }[/math] plus [math]\displaystyle{ (A + \overline{B}) }[/math] [math]\displaystyle{ AB }[/math] plus [math]\displaystyle{ (A + \overline{B}) }[/math] plus [math]\displaystyle{ 1 }[/math] [math]\displaystyle{ \overline{B} }[/math] [math]\displaystyle{ (A + B) }[/math] plus [math]\displaystyle{ A \overline{B} }[/math] [math]\displaystyle{ (A + B) }[/math] plus [math]\displaystyle{ A \overline{B} }[/math] plus [math]\displaystyle{ 1 }[/math]
L H H L [math]\displaystyle{ \overline{A \oplus B} }[/math] [math]\displaystyle{ A }[/math] minus [math]\displaystyle{ B }[/math] minus [math]\displaystyle{ 1 }[/math] [math]\displaystyle{ A }[/math] minus [math]\displaystyle{ B }[/math] [math]\displaystyle{ A \oplus B }[/math] [math]\displaystyle{ A }[/math] minus [math]\displaystyle{ B }[/math] minus [math]\displaystyle{ 1 }[/math] [math]\displaystyle{ A }[/math] minus [math]\displaystyle{ B }[/math]
L H H H [math]\displaystyle{ A + \overline{B} }[/math] [math]\displaystyle{ A + \overline{B} }[/math] [math]\displaystyle{ A + \overline{B} }[/math] plus [math]\displaystyle{ 1 }[/math] [math]\displaystyle{ A\overline{B} }[/math] [math]\displaystyle{ A \overline{B} }[/math] minus 1 [math]\displaystyle{ A\overline{B} }[/math]
H L L L [math]\displaystyle{ \overline{A}B }[/math] [math]\displaystyle{ A }[/math] plus [math]\displaystyle{ (A + B) }[/math] [math]\displaystyle{ A }[/math] plus [math]\displaystyle{ (A + B) }[/math] plus [math]\displaystyle{ 1 }[/math] [math]\displaystyle{ \overline{A} + B }[/math] [math]\displaystyle{ A }[/math] plus [math]\displaystyle{ A B }[/math] [math]\displaystyle{ A }[/math] plus [math]\displaystyle{ A B }[/math] plus [math]\displaystyle{ 1 }[/math]
H L L H [math]\displaystyle{ A \oplus B }[/math] [math]\displaystyle{ A }[/math] plus [math]\displaystyle{ B }[/math] [math]\displaystyle{ A }[/math] plus [math]\displaystyle{ B }[/math] plus [math]\displaystyle{ 1 }[/math] [math]\displaystyle{ \overline{A \oplus B} }[/math] [math]\displaystyle{ A }[/math] plus [math]\displaystyle{ B }[/math] [math]\displaystyle{ A }[/math] plus [math]\displaystyle{ B }[/math] plus [math]\displaystyle{ 1 }[/math]
H L H L [math]\displaystyle{ B }[/math] [math]\displaystyle{ A \overline{B} }[/math] plus [math]\displaystyle{ (A + B) }[/math] [math]\displaystyle{ A \overline{B} }[/math] plus [math]\displaystyle{ (A + B) }[/math] plus [math]\displaystyle{ 1 }[/math] [math]\displaystyle{ B }[/math] [math]\displaystyle{ (A + \overline{B}) }[/math] plus [math]\displaystyle{ A B }[/math] [math]\displaystyle{ (A + \overline{B}) }[/math] plus [math]\displaystyle{ A B }[/math] plus [math]\displaystyle{ 1 }[/math]
H L H H [math]\displaystyle{ A + B }[/math] [math]\displaystyle{ A + B }[/math] [math]\displaystyle{ AB }[/math] plus [math]\displaystyle{ 1 }[/math] [math]\displaystyle{ AB }[/math] [math]\displaystyle{ A B }[/math] minus 1 [math]\displaystyle{ AB }[/math]
H H L L Logical 0 [math]\displaystyle{ A }[/math] plus [math]\displaystyle{ A }[/math] [math]\displaystyle{ A }[/math] plus [math]\displaystyle{ A }[/math] plus [math]\displaystyle{ 1 }[/math] Logical 1 [math]\displaystyle{ A }[/math] plus [math]\displaystyle{ A }[/math] [math]\displaystyle{ A }[/math] plus [math]\displaystyle{ A }[/math] plus [math]\displaystyle{ 1 }[/math]
H H L H [math]\displaystyle{ A \overline{B} }[/math] [math]\displaystyle{ AB }[/math] plus [math]\displaystyle{ A }[/math] [math]\displaystyle{ AB }[/math] plus [math]\displaystyle{ A }[/math] plus [math]\displaystyle{ 1 }[/math] [math]\displaystyle{ A + \overline{B} }[/math] [math]\displaystyle{ (A + B) }[/math] plus [math]\displaystyle{ A }[/math] [math]\displaystyle{ (A+ B) }[/math] plus [math]\displaystyle{ A }[/math] plus [math]\displaystyle{ 1 }[/math]
H H H L [math]\displaystyle{ A B }[/math] [math]\displaystyle{ A \overline{B} }[/math] plus [math]\displaystyle{ A }[/math] [math]\displaystyle{ A \overline{B} }[/math] plus [math]\displaystyle{ A }[/math] plus [math]\displaystyle{ 1 }[/math] [math]\displaystyle{ A + B }[/math] [math]\displaystyle{ (A + \overline{B}) }[/math] plus [math]\displaystyle{ A }[/math] [math]\displaystyle{ (A + \overline{B}) }[/math] plus [math]\displaystyle{ A }[/math] plus [math]\displaystyle{ 1 }[/math]
H H H H [math]\displaystyle{ A }[/math] [math]\displaystyle{ A }[/math] [math]\displaystyle{ A }[/math] plus [math]\displaystyle{ 1 }[/math] [math]\displaystyle{ A }[/math] [math]\displaystyle{ A }[/math] minus [math]\displaystyle{ 1 }[/math] [math]\displaystyle{ A }[/math]

Significance

The 74181 greatly simplified the development and manufacture of computers and other devices that required high speed computation during the 1970s through the early 1980s, and is still referenced as a "classic" ALU design.[5]

Prior to the introduction of the 74181, computer CPUs occupied multiple circuit boards and even very simple computers could fill multiple cabinets. The 74181 allowed an entire CPU and in some cases, an entire computer to be constructed on a single large printed circuit board. The 74181 occupies a historically significant stage between older CPUs based on discrete logic functions spread over multiple circuit boards and modern microprocessors that incorporate all CPU functions in a single chip. The 74181 was used in various minicomputers and other devices beginning in the 1970s, but as microprocessors became more powerful the practice of building a CPU from discrete components fell out of favour and the 74181 was not used in any new designs.

Today

By 1994, CPU designs based on the 74181 were not commercially viable due to the comparatively low price and high performance of microprocessors. However, the 74181 is still of interest in the teaching of computer organization and CPU design because it provides opportunities for hands-on design and experimentation that are rarely available to students.[6]

Computers

Many computer CPUs and subsystems were based on the 74181, including several historically significant models.

Other uses

See also

References

  1. Höltgen, Stefan, ed (2017) (in German). Logik, Informationstheorie. De Gruyter. p. 115. ISBN 9783110477504. https://books.google.com/books?id=9k8_DwAAQBAJ. 
  2. Daniel P. Sieworek; C. Gordon Bell; Allen Newell. "Chapter 6: Structure". Computer Structures: Principles and Examples. p. 63. http://gordonbell.azurewebsites.net/computer_structures_principles_and_examples/csp0079.htm. "The earliest and most famous chip, the 74181 arithmetic logic unit (ALU), provided up to 32 functions of two 4-bit variables." 
  3. Murdocca, Miles; Gerasoulis, Apostolos; Levy, Saul (October 1, 1991). Novel Optical Computer Architecture Utilizing Reconfigurable Interconnects (Report). p. 23. https://apps.dtic.mil/sti/citations/ADA244057. "Logic diagram for the 74181 ... There are 63 logic gates." 
  4. "SN54LS181, SN54S181 SN74LS181, SN 74S181 ARITHMETIC LOGIC UNITS/FUNCTION GENERATORS". March 1988. https://www.ti.com/lit/ds/symlink/sn54ls181.pdf. 
  5. "Kestrel: Design of an 8-bit SIMD parallel processor". Proc. 17th Conf. on Advanced Research in VLSI. September 15–17, 1997. p. 11. https://users.soe.ucsc.edu/~karplus/papers/kestrel-vlsi-1997.pdf. 
  6. Bradford J. Rodriguez. "A Minimal TTL Processor for Architecture Exploration". Proceedings of the 1994 ACM Symposium on Applied Computing. http://www.bradrodriguez.com/papers/piscedu2.htm. "The study of computer architecture is often an abstract, paper exercise. Students cannot probe the inner workings of a single-chip microprocessor, and few discrete-logic machines are open to student inspection." 
  7. "History of the 74181 in commercial minicomputers". http://apollo181.wixsite.com/apollo181/about. 
  8. C. Gordon Bell; J. Craig Mudge; John E. McNamara (August 1979). Computer Engineering: A DEC View of Hardware Systems Design. Digital Press. p. 335,336. ISBN 0-932376-00-2. https://books.google.com/books?id=SDOoBQAAQBAJ&q=%2274181%22+%22pdp-11%22&pg=PA334. 
  9. 9.0 9.1 Bob Supnik (August 31, 2004). "Simulators: Virtual Machines of the Past (and Future)". ACM Queue 2 (5). http://queue.acm.org/detail.cfm?id=1017002. 
  10. "The final demonstration of the Xerox 'Star' Computer". Computer History Museum. http://www.computerhistory.org/events/lectures/star_06171998/star_xscript.shtml. 
  11. Del Rosso, Tom (October–December 1994). "IC Corner: Early IC ALU'S In The Xerox Alto". The Analytical Engine (Computer History Association of California) 2 (2): 17. http://www.bitsavers.org/pdf/chac/CHAC_Analytical_Engine/2.2_October_1994.pdf. 
  12. "VAX-11/780, in Digital Computing Timeline, 1977". Digital Information Research Services, via Microsoft Research (research.microsoft.com). 30 April 1998. http://research.microsoft.com/~GBell/Digital/timeline/1977-3.htm. 
  13. Duell, Tony (May 1995). "More On The Peripatetic 74x181". The Analytical Engine (Computer History Association of California) 2 (3): 27. http://www.bitsavers.org/pdf/chac/CHAC_Analytical_Engine/2.3_May_1995.pdf. 
  14. "Early PDP-11 peripherals". http://www.psych.usyd.edu.au/pdp-11/early_peripherals.html. 
  15. FPP12A floating-point processor user's manual. Digital Equipment Corporation. December 1973. p. 5-24. DEC-12-HFPPA-A-D. http://www.bitsavers.org/pdf/dec/pdp12/fpp12/DEC-12-HFPPA-A-D_FPP12A_Floating-Point_Processor_Users_Manual.pdf. 
  16. "Wang 2200 Microarchitecture Description". http://www.wang2200.org/uarch_2200.html. 
  17. "Wang 2200 Disk Channel Description". http://www.wang2200.org/disk_channel.html. 
  18. Datapoint 2200 Version I and II Drawing Package. p. 36. http://bitsavers.org/pdf/datapoint/2200/2200_Drawing_Package.pdf. 
  19. "ICL 1501 Intelligent Terminal". http://allardschaap.woelmuis.nl/computermuseumgroningen/icl/icl.html. 
  20. [Op%20&%20Maintenance%20[English]_djvu.txt Star Castle Op and Maintenance]. Cinematronics, Inc.. 1980. https://archive.org/stream/StarCastleOpMaintenanceEnglish/Star%20Castle%20[Op%20&%20Maintenance]%20[English]_djvu.txt. 

External links

Manufacturer's data sheets:

Explanation of how the chip works