1/24/2014 History of Computer Arithmetic Mark Hildebrand and Eric Wilson Gottfried Leibniz • Discovered the binary system in 1679 1 1/24/2014 George Boole • Wrote a paper about Boolean algebra in 1854 • Boolean algebra would become important later for the digital computer Claude Shannon • Created a Boolean algebra and binary arithmetic circuit in 1937 • First practical application to digital circuit design 2 1/24/2014 George Stibitz • • Worked for Bell Labs Created a relay based computer called “Model K” in 1937 (k stood for kitchen) Numbers less than zero? Several ways to represent negative numbers Sign-and-Magnitude One’s Complement Two’s Complement Excess-K Base -2 (don’t think too hard about this one) • • • • • 3 1/24/2014 Numbers less than zero! • Sign-and-Magnitude was popular for a while o • Intel 7090 Architecture (1959) used it 2’s complement won out in the end o o Easier to implement in hardware Unique representation of zero Architectures using 2’s complement x86, MIPS, ARM... • Addition Need for faster ways to add Ripple Carry (slow) Carry-Lookahead • • o o Gerald Rosenberger (1957) Examples Manchester Carry Chain Brent-Kung Adder Kogge-Stone Adder 4 1/24/2014 Multiplication • • Until the 1970s, computers did not have multiplication hardware Motorola 6809 was one of the first processors to have a multiply instruction (routine in microcode) Multiplication • As transistor count increased, it became feasible to include enough adders to sum all partial product simultaneously. 5 1/24/2014 Division Algorithms • Two types o o • Slow division o o o • Fast Slow Restoring division Non-restoring division SRT division Fast division o o Newton-Raphson division Goldschmidt division We need more precision! • • Integers just aren’t good enough! Floating Vectors o o o • • Janes H. Wilkinson (1951) Scaled to biggest number Problem when dealing with a big range of numbers Fixed point Floating Point o o o Prevalent by 1957 Decimal floating-point Binary floating-point 6 1/24/2014 Floating Point • • • By 1976, floating point functions were everywhere, but very proprietary IEEE began trying to standardize floating point in 1977 Because there were business majors working in IEEE, it wasn’t until 1985 that IEEE Standard 754 was put forth Sources • • • • http://www.kerryr.net/pioneers/leibniz.htm • http://www.ce.ewi.tudelft.nl/fileadmin/ce/homepages/galuzzi/File_index/Symposium/13_Schwarz. pdf • http://www.loria.fr/~zimmerma/mca/mca-cup-0.5.1.pdf http://en.wikipedia.org/wiki/Binary_number#History http://www.wmgallery.com/stibitz/ http://booksite.elsevier.com/9780124077263/downloads/historial%20perspectives/section_3.11.p df 7