Misplaced Pages

Multiply–accumulate operation

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

In computing , especially digital signal processing , the multiply–accumulate ( MAC ) or multiply-add ( MAD ) operation is a common step that computes the product of two numbers and adds that product to an accumulator . The hardware unit that performs the operation is known as a multiplier–accumulator ( MAC unit ); the operation itself is also often called a MAC or a MAD operation. The MAC operation modifies an accumulator a : a ← a + ( b × c ) {\displaystyle a\gets a+(b\times c)}

#701298

114-436: When done with floating-point numbers, it might be performed with two roundings (typical in many DSPs ), or with a single rounding. When performed with a single rounding, it is called a fused multiply–add ( FMA ) or fused multiply–accumulate ( FMAC ). Modern computers may contain a dedicated MAC, consisting of a multiplier implemented in combinational logic followed by an adder and an accumulator register that stores

228-518: A + ( b × c ) to its full precision before rounding the final result down to N significant bits. A fast FMA can speed up and improve the accuracy of many computations that involve the accumulation of products: Fused multiply–add can usually be relied on to give more accurate results. However, William Kahan has pointed out that it can give problems if used unthinkingly. If x − y is evaluated as (( x × x ) − y × y ) (following Kahan's suggested notation in which redundant parentheses direct

342-426: A 19-inch rack . The backplanes allowed 25 modules in a single 5-1/4 inch section of rack, and allowed the high densities needed to build a computer. The original laboratory and system module lines were offered in 500 kilocycle, 5 megacycle and 10 megacycle versions. In all cases, the supply voltages were -15 and +10 volts, with logic levels of -3 volts (passive pull-down) and 0 volts (active pull-up). DEC used

456-413: A negative zero (−0) distinct from ordinary ("positive") zero, and "not a number" values ( NaNs ). Digital Equipment Corporation Digital Equipment Corporation ( DEC / d ɛ k / ), using the trademark Digital , was a major American company in the computer industry from the 1960s to the 1990s. The company was co-founded by Ken Olsen and Harlan Anderson in 1957. Olsen

570-776: A signed string of a fixed number of digits in some base , called a significand , scaled by an integer exponent of that base. Numbers of this form are called floating-point numbers . For example, the number 2469/200 is a floating-point number in base ten with five digits: 2469 / 200 = 12.345 = 12345 ⏟ significand × 10 ⏟ base − 3 ⏞ exponent {\displaystyle 2469/200=12.345=\!\underbrace {12345} _{\text{significand}}\!\times \!\underbrace {10} _{\text{base}}\!\!\!\!\!\!\!\overbrace {{}^{-3}} ^{\text{exponent}}} However, unlike 2469/200 = 12.345, 7716/625 = 12.3456

684-610: A VAX CPU was the VAX-11/780 , announced in October 1977, which DEC referred to as a superminicomputer . Although it was not the first 32-bit minicomputer, the VAX-11/780's combination of features, price, and marketing almost immediately propelled it to a leadership position in the market after it was released in 1978. VAX systems were so successful that in 1983, DEC canceled its Jupiter project , which had been intended to build

798-450: A certain amount of mathematical precision . That is, digital floating-point arithmetic is generally not associative or distributive . (See Floating-point arithmetic § Accuracy problems .) Therefore, it makes a difference to the result whether the multiply–add is performed with two roundings, or in one operation with a single rounding (a fused multiply–add). IEEE 754-2008 specifies that it must be performed with one rounding, yielding

912-461: A computer system specially designed to carry out operations on floating-point numbers. A number representation specifies some way of encoding a number, usually as a string of digits. There are several mechanisms by which strings of digits can represent numbers. In standard mathematical notation, the digit string can be of any length, and the location of the radix point is indicated by placing an explicit "point" character (dot or comma) there. If

1026-497: A few details. Five of these formats are called basic formats , and others are termed extended precision formats and extendable precision format . Three formats are especially widely used in computer hardware and languages: Increasing the precision of the floating-point representation generally reduces the amount of accumulated round-off error caused by intermediate calculations. Other IEEE formats include: Any integer with absolute value less than 2 can be exactly represented in

1140-409: A more accurate result. A fused multiply–add ( FMA or fmadd ) is a floating-point multiply–add operation performed in one step ( fused operation ), with a single rounding. That is, where an unfused multiply–add would compute the product b × c , round it to N significant bits, add the result to a , and round back to N significant bits, a fused multiply–add would compute the entire expression

1254-583: A new virtual memory system, and would also improve performance by processing twice as much data at a time. The system would, however, maintain compatibility with the PDP-11, by operating in a second mode that sent its 16-bit words into the 32-bit internals, while mapping the PDP-11's 16-bit memory space into the larger virtual 32-bit space. The result was the VAX architecture, where VAX stands for Virtual Address eXtension (from 16 to 32 bits). The first computer to use

SECTION 10

#1732791984702

1368-476: A new device to be added easily, generally only requiring plugging a hardware interface board into the backplane and possibly adding a jumper to the wire wrapped backplane, and then installing software that read and wrote to the mapped memory to control it. The relative ease of interfacing spawned a huge market of third party add-ons for the PDP-11, which made the machine even more useful. The combination of architectural innovations proved superior to competitors and

1482-408: A number, the base (10) need not be stored, since it will be the same for the entire range of supported numbers, and can thus be inferred. Symbolically, this final value is: s b p − 1 × b e , {\displaystyle {\frac {s}{b^{\,p-1}}}\times b^{e},} where s is the significand (ignoring any implied decimal point), p

1596-467: A profit at the end of its first year. The original Laboratory Modules were soon supplemented with the "Digital System Module " line, which were identical internally but packaged differently. The Systems Modules were designed with all of the connections at the back of the module using 22-pin Amphenol connectors, and were attached to each other by plugging them into a backplane that could be mounted in

1710-438: A selection of System Building Blocks to implement a small 12-bit machine, and attached it to a variety of analog-to-digital (A to D) input/output (I/O) devices that made it easy to interface with various analog lab equipment. The LINC proved to attract intense interest in the scientific community, and has since been referred to as the first real minicomputer , a machine that was small and inexpensive enough to be dedicated to

1824-485: A self-sustaining business, the company would be free to use them to develop a complete computer in their Phase II. The newly christened "Digital Equipment Corporation" received $ 70,000 from AR&D for a 70% share of the company, and began operations in a Civil War -era textile mill in Maynard, Massachusetts , where plenty of inexpensive manufacturing space was available. In early 1958, DEC shipped its first products,

1938-511: A separate input/output processor for further performance gains. Over 400 PDP-15's were ordered in the first eight months of production, and production eventually amounted to 790 examples in 12 basic models. However, by this time other machines in DEC's lineup could fill the same niche at even lower price points, and the PDP-15 would be the last of the 18-bit series. In 1962, Lincoln Laboratory used

2052-485: A single large mainframe case, with a hexagonal control panel containing switches and lights mounted to lie at table-top height at one end of the mainframe. Above the control panel was the system's standard input/output solution, a punched tape reader and writer. Most systems were purchased with two peripherals , the Type 30 vector graphics display, and a Soroban Engineering modified IBM Model B Electric typewriter that

2166-479: A single step, e.g. performing a four-element dot-product on two 128-bit SIMD registers a0×b0 + a1×b1 + a2×b2 + a3×b3 with single cycle throughput. The FMA operation is included in IEEE 754-2008 . The Digital Equipment Corporation (DEC) VAX 's POLY instruction is used for evaluating polynomials with Horner's rule using a succession of multiply and add steps. Instruction descriptions do not specify whether

2280-659: A single task even in a small lab. Seeing the success of the LINC, in 1963 DEC took the basic logic design but stripped away the extensive A to D systems to produce the PDP-5 . The new machine, the first outside the PDP-1 mould, was introduced at WESTCON on August 11, 1963. A 1964 ad expressed the main advantage of the PDP-5, "Now you can own the PDP-5 computer for what a core memory alone used to cost: $ 27,000". 116 PDP-5s were produced until

2394-653: A successor to the PDP-10 mainframe, and instead focused on promoting the VAX as the single computer architecture for the company. Supporting the VAX's success was the VT52 , one of the most successful smart terminals . Building on earlier less successful models, the VT05 and VT50 , the VT52 was the first terminal that did everything one might want in a single inexpensive chassis. The VT52

SECTION 20

#1732791984702

2508-1118: A syntax to be used that could be entered through a typewriter , as was the case of his Electromechanical Arithmometer in 1920. In 1938, Konrad Zuse of Berlin completed the Z1 , the first binary, programmable mechanical computer ; it uses a 24-bit binary floating-point number representation with a 7-bit signed exponent, a 17-bit significand (including one implicit bit), and a sign bit. The more reliable relay -based Z3 , completed in 1941, has representations for both positive and negative infinities; in particular, it implements defined operations with infinity, such as 1 / ∞ = 0 {\displaystyle ^{1}/_{\infty }=0} , and it stops on undefined operations, such as 0 × ∞ {\displaystyle 0\times \infty } . Zuse also proposed, but did not complete, carefully rounded floating-point arithmetic that includes ± ∞ {\displaystyle \pm \infty } and NaN representations, anticipating features of

2622-440: A turn to use the stripped-down TX-0, while largely ignoring a faster IBM machine that was also available. The two decided that the draw of interactive computing was so strong that they felt there was a market for a small machine dedicated to this role, essentially a commercialized TX-0. They could sell this to users where the graphical output or real-time operation would be more important than outright performance. Additionally, as

2736-500: Is a rational number , because it can be represented as one integer divided by another; for example 1.45 × 10 is (145/100)×1000 or 145,000 /100. The base determines the fractions that can be represented; for instance, 1/5 cannot be represented exactly as a floating-point number using a binary base, but 1/5 can be represented exactly using a decimal base ( 0.2 , or 2 × 10 ). However, 1/3 cannot be represented exactly by either binary (0.010101...) or decimal (0.333...), but in base 3 , it

2850-524: Is a smallest positive normal floating-point number, which has a 1 as the leading digit and 0 for the remaining digits of the significand, and the smallest possible value for the exponent. There is a largest floating-point number, which has B − 1 as the value for each digit of the significand and the largest possible value for the exponent. In addition, there are representable values strictly between −UFL and UFL. Namely, positive and negative zeros , as well as subnormal numbers . The IEEE standardized

2964-517: Is best known for their work on what would today be known as "interactivity", and their machines were among the first where operators had direct control over programs running in real-time. These had started in 1944 with the famed Whirlwind , which was originally developed to make a flight simulator for the US Navy , although this was never completed. Instead, this effort evolved into the SAGE system for

3078-432: Is from 2  ≈ 2 × 10 to approximately 2  ≈ 2 × 10 . The number of normal floating-point numbers in a system ( B , P , L , U ) where is 2 ( B − 1 ) ( B P − 1 ) ( U − L + 1 ) {\displaystyle 2\left(B-1\right)\left(B^{P-1}\right)\left(U-L+1\right)} . There

3192-677: Is most famous as the machine for which the Unix operating system was originally written. Unix ran only on DEC systems until the Interdata 8/32 . A more dramatic upgrade to the PDP-1 series was introduced in August 1966, the PDP-9 . The PDP-9 was instruction-compatible with the PDP-4 and −7, but ran about twice as fast as the −7 and was intended to be used in larger deployments. At only $ 19,900 in 1968,

3306-522: Is no reason for any individual to have a computer in his home." Unsurprisingly, DEC did not put much effort into the microcomputer area in the early days of the market. In 1977, the Heathkit H11 was announced; a PDP-11 in kit form. At the beginning of the 1980s, DEC built the VT180 (codenamed "Robin"), which was a VT100 terminal with an added Z80 -based microcomputer running CP/M , but this product

3420-447: Is not a floating-point number in base ten with five digits—it needs six digits. The nearest floating-point number with only five digits is 12.346. And 1/3 = 0.3333… is not a floating-point number in base ten with any finite number of digits. In practice, most floating-point systems use base two , though base ten ( decimal floating point ) is also common. Floating-point arithmetic operations, such as addition and division, approximate

3534-446: Is often used to allow very small and very large real numbers that require fast processing times. The result of this dynamic range is that the numbers that can be represented are not uniformly spaced; the difference between two consecutive representable numbers varies with their exponent. Over the years, a variety of floating-point representations have been used in computers. In 1985, the IEEE 754 Standard for Floating-Point Arithmetic

Multiply–accumulate operation - Misplaced Pages Continue

3648-399: Is similar in concept to scientific notation. Logically, a floating-point number consists of: To derive the value of the floating-point number, the significand is multiplied by the base raised to the power of the exponent , equivalent to shifting the radix point from its implied position by a number of places equal to the value of the exponent—to the right if the exponent is positive or to

3762-1358: Is stored in memory using the IEEE 754 encoding, this becomes the significand s . The significand is assumed to have a binary point to the right of the leftmost bit. So, the binary representation of π is calculated from left-to-right as follows: ( ∑ n = 0 p − 1 bit n × 2 − n ) × 2 e = ( 1 × 2 − 0 + 1 × 2 − 1 + 0 × 2 − 2 + 0 × 2 − 3 + 1 × 2 − 4 + ⋯ + 1 × 2 − 23 ) × 2 1 ≈ 1.57079637 × 2 ≈ 3.1415927 {\displaystyle {\begin{aligned}&\left(\sum _{n=0}^{p-1}{\text{bit}}_{n}\times 2^{-n}\right)\times 2^{e}\\={}&\left(1\times 2^{-0}+1\times 2^{-1}+0\times 2^{-2}+0\times 2^{-3}+1\times 2^{-4}+\cdots +1\times 2^{-23}\right)\times 2^{1}\\\approx {}&1.57079637\times 2\\\approx {}&3.1415927\end{aligned}}} where p

3876-458: Is the precision ( 24 in this example), n is the position of the bit of the significand from the left (starting at 0 and finishing at 23 here) and e is the exponent ( 1 in this example). It can be required that the most significant digit of the significand of a non-zero number be non-zero (except when the corresponding exponent would be smaller than the minimum one). This process is called normalization . For binary formats (which uses only

3990-621: Is the precision (the number of digits in the significand), b is the base (in our example, this is the number ten ), and e is the exponent. Historically, several number bases have been used for representing floating-point numbers, with base two ( binary ) being the most common, followed by base ten ( decimal floating point ), and other less common varieties, such as base sixteen ( hexadecimal floating point ), base eight (octal floating point ), base four (quaternary floating point ), base three ( balanced ternary floating point ) and even base 256 and base 65,536 . A floating-point number

4104-469: Is trivial (0.1 or 1×3 ) . The occasions on which infinite expansions occur depend on the base and its prime factors . The way in which the significand (including its sign) and exponent are stored in a computer is implementation-dependent. The common IEEE formats are described in detail later and elsewhere, but as an example, in the binary single-precision (32-bit) floating-point representation, p = 24 {\displaystyle p=24} , and so

4218-688: The English Electric DEUCE . The arithmetic is actually implemented in software, but with a one megahertz clock rate, the speed of floating-point and fixed-point operations in this machine were initially faster than those of many competing computers. The mass-produced IBM 704 followed in 1954; it introduced the use of a biased exponent . For many decades after that, floating-point hardware was typically an optional feature, and computers that had it were said to be "scientific computers", or to have " scientific computation " (SC) capability (see also Extensions for Scientific Computation (XSC)). It

4332-655: The US Air Force , which used large screens and light guns to allow operators to interact with radar data stored in the computer. When the Air Force project wound down, the Lab turned their attention to an effort to build a version of the Whirlwind using transistors in place of vacuum tubes . In order to test their new circuitry, they first built a small 18-bit machine known as TX-0 , which first ran in 1956. When

4446-802: The "11" architecture was soon the industry leader, propelling DEC back to a strong market position. The design was later expanded to allow paged physical memory and memory protection features, useful for multitasking and time-sharing . Some models supported separate instruction and data spaces for an effective virtual address size of 128 KB within a physical address size of up to 4 MB. Smaller PDP-11s, implemented as single-chip CPUs, continued to be produced until 1996, by which time over 600,000 had been sold. The PDP-11 supported several operating systems, including Bell Labs ' new Unix operating system as well as DEC's DOS-11 , RSX-11 , IAS, RT-11 , DSM-11, and RSTS/E . Many early PDP-11 applications were developed using standalone paper-tape utilities. DOS-11

4560-543: The "Digital Laboratory Module" line. The Modules consisted of a number of individual electronic components and germanium transistors mounted to a circuit board , the actual circuits being based on those from the TX-2. The Laboratory Modules were packaged in an extruded aluminum housing, intended to sit on an engineer's workbench, although a rack-mount bay was sold that held nine laboratory modules. They were then connected together using banana plug patch cords inserted at

4674-439: The "sandbox" for a rising generation of engineers and computer scientists. Large numbers of PDP-11/70s were deployed in telecommunications and industrial control applications. AT&T Corporation became DEC's largest customer. RT-11 provided a practical real-time operating system in minimal memory, allowing the PDP-11 to continue DEC's critical role as a computer supplier for embedded systems . Historically, RT-11 also served as

Multiply–accumulate operation - Misplaced Pages Continue

4788-433: The 1950s, wiped out when new technical developments rendered their platforms obsolete, and even large companies like RCA and General Electric were failing to make a profit in the market. The only serious expression of interest came from Georges Doriot and his American Research and Development Corporation (AR&D). Worried that a new computer company would find it difficult to arrange further financing, Doriot suggested

4902-572: The 1980s, culminating in the NVAX microprocessor implementation and VAX 7000/10000 series in the early 1990s. When a DEC research group demonstrated two prototype microcomputers in 1974—before the debut of the MITS Altair —Olsen chose to not proceed with the project. The company similarly rejected another personal computer proposal in 1977. At the time these systems were of limited utility, and Olsen famously derided them in 1977, stating "There

5016-450: The CPU which allowed one to easily see the logic modules plugged into the wire-wrapped backplane of the CPU. Sold standard with 4 kWords of 12-bit core memory and a Teletype Model 33 ASR for basic input/output, the machine listed for only $ 18,000. The PDP-8 is referred to as the first real minicomputer because of its sub-$ 25,000 price. Sales were, unsurprisingly, very strong, and helped by

5130-703: The IEEE Standard by four decades. In contrast, von Neumann recommended against floating-point numbers for the 1951 IAS machine , arguing that fixed-point arithmetic is preferable. The first commercial computer with floating-point hardware was Zuse's Z4 computer, designed in 1942–1945. In 1946, Bell Laboratories introduced the Model ;V , which implemented decimal floating-point numbers . The Pilot ACE has binary floating-point arithmetic, and it became operational in 1950 at National Physical Laboratory, UK . Thirty-three were later sold commercially as

5244-517: The PC, but was more expensive than, and completely incompatible with IBM PC hardware and software, offering far fewer options for customizing a system. Unlike CP/M and DOS microcomputers, every copy of every program for the Professional had to be provided with a unique key for the particular machine and CPU for which it was bought. At that time this was mainstream policy, because most computer software

5358-630: The PDP-8, all in software. Although not a huge seller, 142 LINC-8s were sold starting at $ 38,500. Like the original LINC to PDP-5 evolution, the LINC-8 was then modified into the single-processor PDP-12 , adding another 1000 machines to the 12-bit family. Newer circuitry designs led to the PDP-8/I and PDP-8/L in 1968. In 1975, one year after an agreement between DEC and Intersil , the Intersil 6100 chip

5472-459: The PDP-9 was a big seller, eventually selling 445 machines, more than all of the earlier models combined. Even while the PDP-9 was being introduced, its replacement was being designed, and was introduced as 1969's PDP-15 , which re-implemented the PDP-9 using integrated circuits in place of modules. Much faster than the PDP-9 even in basic form, the PDP-15 also included a floating point unit and

5586-700: The Professional was a superior machine, running inferior software. In addition, a new user would have to learn an awkward, slow, and inflexible menu-based user interface which appeared to be radically different from PC DOS or CP/M , which were more commonly used on the 8080- and 8088-based microcomputers of the time. A second offering, the DECmate II was the latest version of the PDP-8-based word processors, but not really suited to general computing, nor competitive with Wang Laboratories ' popular word processing equipment. The most popular early DEC microcomputer

5700-511: The Rainbow, and in its standard form was the first widely marketed diskless workstation . In 1984, DEC launched its first 10 Mbit/s Ethernet . Ethernet allowed scalable networking, and VAXcluster allowed scalable computing. Combined with DECnet and Ethernet-based terminal servers ( LAT ), DEC had produced a networked storage architecture which allowed them to compete directly with IBM. Ethernet replaced Token Ring , and went on to become

5814-608: The Spanish engineer Leonardo Torres Quevedo published Essays on Automatics , where he designed a special-purpose electromechanical calculator based on Charles Babbage 's analytical engine and described a way to store floating-point numbers in a consistent manner. He stated that numbers will be stored in exponential format as n x 10 m {\displaystyle ^{m}} , and offered three rules by which consistent manipulation of floating-point numbers by machines could be implemented. For Torres, " n will always be

SECTION 50

#1732791984702

5928-492: The System Modules to build their "Memory Test" machine for testing core memory systems, selling about 50 of these pre-packaged units over the next eight years. The PDP-1 and LINC computers were also built using System Modules (see below). Modules were part of DEC's product line into the 1970s, although they went through several evolutions during this time as technology changed. The same circuits were then packaged as

6042-469: The TX-0 successfully proved the basic concepts, attention turned to a much larger system, the 36-bit TX-2 with a then-enormous 64 kWords of core memory . Core was so expensive that parts of TX-0's memory were stripped for the TX-2, and what remained of the TX-0 was then given to MIT on permanent loan. At MIT, Ken Olsen and Harlan Anderson noticed something odd: students would line up for hours to get

6156-436: The ability to address more memory, often by extending the address format to 18 or 24-bits in machines were otherwise similar to their earlier 16-bit designs. In contrast, DEC decided to make a more radical departure. In 1976, they began the design of a machine whose entire architecture was expanded from the 16-bit PDP-11 to a new 32-bit basis. This would allow the addressing of very large memories, which were to be controlled by

6270-515: The adoption of "\" for pathnames in MS-DOS and Microsoft Windows as opposed to "/" in Unix . The evolution of the PDP-11 followed earlier systems, eventually including a single-user deskside personal computer form, the MicroPDP-11. In total, around 600,000 PDP-11s of all models were sold, and a wide variety of third-party peripheral vendors had also entered the computer product ecosystem. It

6384-482: The aforementioned pragma, this can be globally controlled by the -ffp-contract command line option. The fused multiply–add operation was introduced as "multiply–add fused" in the IBM POWER1 (1990) processor, but has been added to numerous other processors since then: Floating-point arithmetic In computing , floating-point arithmetic ( FP ) is arithmetic on subsets of real numbers formed by

6498-512: The basis for the new design, although when they first viewed the proposal, management was not impressed and almost cancelled it. The result was the PDP-11 , released in 1970. It differed from earlier designs considerably. In particular, the new design did not include many of the addressing modes that were intended to make programs smaller in memory, a technique that was widely used on other DEC machines and CISC designs in general. This would mean

6612-451: The better-established vendors like IBM or Honeywell , in spite of its low cost around $ 300,000. Only 23 were sold, or 26 depending on the source, and unlike other models the low sales meant the PDP-6 was not improved with successor versions. However, the PDP-6 is historically important as the platform that introduced "Monitor", an early time-sharing operating system that would evolve into

6726-774: The company's first computer, the PDP-1 . In keeping with Doriot's instructions, the name was an initialism for " Programmable Data Processor ", leaving off the term "computer". As Gurley put it, "We aren't building computers, we're building 'Programmable Data Processors'." The prototype was first shown publicly at the Joint Computer Conference in Boston in December 1959. The first PDP-1 was delivered to Bolt, Beranek and Newman in November 1960, and formally accepted

6840-411: The compatible DECSYSTEM-20 , along with a TOPS-20 operating system that included virtual memory support. The Jupiter Project was supposed to continue the mainframe product line into the future by using gate arrays with an innovative Air Mover Cooling System, coupled with a built-in floating point processing engine called "FBOX". The design was intended for a top tier scientific computing niche, yet

6954-465: The compiler to round the ( x × x ) term first) using fused multiply–add, then the result may be negative even when x = y due to the first multiplication discarding low significance bits. This could then lead to an error if, for instance, the square root of the result is then evaluated. When implemented inside a microprocessor , an FMA can be faster than a multiply operation followed by an add. However, standard industrial implementations based on

SECTION 60

#1732791984702

7068-568: The computer representation for binary floating-point numbers in IEEE 754 (a.k.a. IEC 60559) in 1985. This first standard is followed by almost all modern machines. It was revised in 2008 . IBM mainframes support IBM's own hexadecimal floating point format and IEEE 754-2008 decimal floating point in addition to the IEEE 754 binary format. The Cray T90 series had an IEEE version, but the SV1 still uses Cray floating-point format. The standard provides for many closely related formats, differing in only

7182-420: The corresponding real number arithmetic operations by rounding any result that is not a floating-point number itself to a nearby floating-point number. For example, in a floating-point arithmetic with five base-ten digits, the sum 12.345 + 1.0001 = 13.3451 might be rounded to 13.345. The term floating point refers to the fact that the number's radix point can "float" anywhere to the left, right, or between

7296-483: The creation of the IEEE 754 standard once the 32-bit (or 64-bit) word had become commonplace. This standard was significantly based on a proposal from Intel, which was designing the i8087 numerical coprocessor; Motorola, which was designing the 68000 around the same time, gave significant input as well. In 1989, mathematician and computer scientist William Kahan was honored with the Turing Award for being

7410-486: The critical performance measurement was based upon COBOL compilation which did not fully utilize the primary design features of Jupiter technology. When the Jupiter Project was cancelled in 1983, some of the engineers adapted aspects of the 36-bit design into a forthcoming 32-bit design, releasing the high-end VAX8600 in 1985. DEC's successful entry into the computer market took place during a fundamental shift in

7524-503: The digits 0 and 1 ), this non-zero digit is necessarily 1 . Therefore, it does not need to be represented in memory, allowing the format to have one more bit of precision. This rule is variously called the leading bit convention , the implicit bit convention , the hidden bit convention , or the assumed bit convention . The floating-point representation is by far the most common way of representing in computers an approximation to real numbers. However, there are alternatives: In 1914,

7638-473: The fact that several competitors had just entered the market with machines aimed directly at the PDP-5's market space, which the PDP-8 trounced. This gave the company two years of unrestricted leadership, and eventually 1450 "straight eight" machines were produced before it was replaced by newer implementations of the same basic design. DEC hit an even lower price-point with the PDP-8/S, the S for "serial". As

7752-475: The first "R" (red) series " Flip-Chip " modules. Later, other Flip-Chip module series provided additional speed, much higher logic density, and industrial I/O capabilities. DEC published extensive data about the modules in free catalogs that became very popular. With the company established and a successful product on the market, DEC turned its attention to the computer market once again as part of its planned "Phase II". In August 1959, Ben Gurley started design of

7866-428: The first to exploit a MAC for division (using multiplication seeded by reciprocal, via the convergent series (1+ x ) ). The first modern processors to be equipped with MAC units were digital signal processors , but the technique is now also common in general-purpose processors. When done with integers , the operation is typically exact (computed modulo some power of two ). However, floating-point numbers have only

7980-487: The fledgling company change its business plan to focus less on computers, and even change their name from "Digital Computer Corporation". The pair returned with an updated business plan that outlined two phases for the company's development. They would start by selling computer modules as stand-alone devices that could be purchased separately and wired together to produce a number of different digital systems for lab use. Then, if these "digital modules" were able to build

8094-411: The front of the modules. Three versions were offered, running at 5 MHz (1957), 500 kHz (1959), or 10 MHz (1960). The Modules proved to be in high demand by other computer companies, who used them to build equipment to test their own systems. Despite the recession of the late 1950s, the company sold $ 94,000 worth of these modules during 1958 alone (equivalent to $ 992,700 in 2023), turning

8208-492: The given number is scaled by a power of 10 , so that it lies within a specific range—typically between 1 and 10, with the radix point appearing immediately after the first digit. As a power of ten, the scaling factor is then indicated separately at the end of the number. For example, the orbital period of Jupiter 's moon Io is 152,853.5047 seconds, a value that would be represented in standard-form scientific notation as 1.528535047 × 10 seconds. Floating-point representation

8322-413: The inspiration for many microcomputer OS's, as these were generally being written by programmers who cut their teeth on one of the many PDP-11 models. For example, CP/M used a command syntax similar to RT-11's, and even retained the awkward PIP program used to copy data from one computer device to another. As another historical footnote, DEC's use of "/" for "switches" (command-line options) would lead to

8436-453: The left if the exponent is negative. Using base-10 (the familiar decimal notation) as an example, the number 152,853.5047 , which has ten decimal digits of precision, is represented as the significand 1,528,535,047 together with 5 as the exponent. To determine the actual value, a decimal point is placed after the first digit of the significand and the result is multiplied by 10 to give 1.528535047 × 10 , or 152,853.5047 . In storing such

8550-548: The limited information available, they used it to process radar cross section data for the Lockheed A-12 reconnaissance aircraft . Gordon Bell remembered that it was being used in Oregon some time later, but could not recall who was using it. In November 1962, DEC introduced the $ 65,000 PDP-4 . The PDP-4 was similar to the PDP-1 and used a similar instruction set, but used slower memory and different packaging to lower

8664-492: The lines were shut down in early 1967. Like the PDP-1 before it, the PDP-5 inspired a series of newer models based on the same basic design that would go on to be more famous than its parent. On March 22, 1965, DEC introduced the PDP-8 , which replaced the PDP-5's modules with the new R-series modules using Flip Chips. The machine was re-packaged into a small tabletop case, which remains distinctive for its use of smoked plastic over

8778-496: The machine would cost much less than the larger systems then available, it would also be able to serve users that needed a lower-cost solution dedicated to a specific task, where a larger 36-bit machine would not be needed. In 1957, when the pair and Ken's brother Stan sought capital, they found that the American business community was hostile to investing in computer companies. Many smaller computer companies had come and gone in

8892-438: The machine would spend more time accessing memory, which would slow it down. However, the machine also extended the idea of multiple "General Purpose Registers" (GPRs), which gave the programmer flexibility to use these high-speed memory caches as they needed, potentially addressing the performance issues. A major advance in the PDP-11 design was DEC's Unibus , which supported all peripherals through memory mapping . This allowed

9006-411: The mainframe level was an ongoing problem by the early 1970s for those writing and maintaining higher-level source code; these manufacturer floating-point standards differed in the word sizes, the representations, and the rounding behavior and general accuracy of operations. Floating-point compatibility across multiple computing systems was in desperate need of standardization by the early 1980s, leading to

9120-545: The mid-1990s, but was too late to save the company. DEC was acquired in June 1998 by Compaq in what was at that time the largest merger in the history of the computer industry. During the purchase, some parts of DEC were sold to other companies; the compiler business and the Hudson Fab were sold to Intel . At the time, Compaq was focused on the enterprise market and had recently purchased several other large vendors. DEC

9234-733: The multiply and add are performed using a single FMA step. This instruction has been a part of the VAX instruction set since its original 11/780 implementation in 1977. The 1999 standard of the C programming language supports the FMA operation through the fma() standard math library function and the automatic transformation of a multiplication followed by an addition (contraction of floating-point expressions), which can be explicitly enabled or disabled with standard pragmas ( #pragma STDC FP_CONTRACT ). The GCC and Clang C compilers do such transformations by default for processor architectures that support FMA instructions. With GCC, which does not support

9348-425: The name implies the /S used a serial arithmetic unit, which was much slower but reduced costs so much that the system sold for under $ 10,000. DEC then used the new PDP-8 design as the basis for a new LINC, the two-processor LINC-8 . The LINC-8 used one PDP-8 CPU and a separate LINC CPU, and included instructions to switch from one to the other. This allowed customers to run their existing LINC programs, or "upgrade" to

9462-458: The next April. The PDP-1 sold in basic form for $ 120,000 (equivalent to $ 9,269,291 in 2023). By the time production ended in 1969, 53 PDP-1s had been delivered. The PDP-1 was supplied standard with 4096 words of core memory , 18-bits per word, and ran at a basic speed of 100,000 operations per second. It was constructed using many System Building Blocks that were packaged into several 19-inch racks . The racks were themselves packaged into

9576-440: The original IBM RS/6000 design require a 2 N -bit adder to compute the sum properly. Another benefit of including this instruction is that it allows an efficient software implementation of division (see division algorithm ) and square root (see methods of computing square roots ) operations, thus eliminating the need for dedicated hardware for those operations. Some machines combine multiple fused multiply add operations into

9690-456: The performance niche of the minicomputer was rapidly eroded. By the early 1990s, the company was in turmoil as their mini sales collapsed and their attempts to address this by entering the high-end market with machines like the VAX 9000 were market failures. After several attempts to enter the workstation and file server market, the DEC Alpha product line began to make successful inroads in

9804-581: The price. Like the PDP-1, about 54 PDP-4s were eventually sold, most to a customer base similar to the original PDP-1. In 1964, DEC introduced its new Flip Chip module design, and used it to re-implement the PDP-4 as the PDP-7 . The PDP-7 was introduced in December 1964, and about 120 were eventually produced. An upgrade to the Flip Chip led to the R series, which in turn led to the PDP-7A in 1965. The PDP-7

9918-420: The primary architect behind this proposal; he was aided by his student Jerome Coonen and a visiting professor, Harold Stone . Among the x86 innovations are these: A floating-point number consists of two fixed-point components, whose range depends exclusively on the number of bits or digits in their representation. Whereas components linearly depend on their range, the floating-point range linearly depends on

10032-457: The radix point is not specified, then the string implicitly represents an integer and the unstated radix point would be off the right-hand end of the string, next to the least significant digit. In fixed-point systems, a position in the string is specified for the radix point. So a fixed-point scheme might use a string of 8 decimal digits with the decimal point in the middle, whereby "00012345" would represent 0001.2345. In scientific notation ,

10146-422: The result. The output of the register is fed back to one input of the adder, so that on each clock cycle, the output of the multiplier is added to the register. Combinational multipliers require a large amount of logic, but can compute a product much more quickly than the method of shifting and adding typical of earlier computers. Percy Ludgate was the first to conceive a MAC in his Analytical Machine of 1909, and

10260-607: The same design. During construction of the prototype PDP-1, some design work was carried out on a 24-bit PDP-2, and the 36-bit PDP-3. Although the PDP-2 never proceeded beyond the initial design, the PDP-3 found some interest and was designed in full. Only one PDP-3 appears to have been built, in 1960, by the CIA's Scientific Engineering Institute (SEI) in Waltham, Massachusetts . According to

10374-437: The same number of digits (e.g. six), the first digit of n will be of order of tenths, the second of hundredths, etc, and one will write each quantity in the form: n ; m ." The format he proposed shows the need for a fixed-sized significand as is presently used for floating-point data, fixing the location of the decimal point in the significand so that each representation was unique, and how to format such numbers by specifying

10488-496: The significand is a string of 24 bits . For instance, the number π 's first 33 bits are: 11001001   00001111   1101101 0 _   10100010   0. {\displaystyle 11001001\ 00001111\ 1101101{\underline {0}}\ 10100010\ 0.} In this binary expansion, let us denote the positions from 0 (leftmost bit, or most significant bit) to 32 (rightmost bit). The 24-bit significand will stop at position 23, shown as

10602-417: The significand range and exponentially on the range of exponent component, which attaches outstandingly wider range to the number. On a typical computer system, a double-precision (64-bit) binary floating-point number has a coefficient of 53 bits (including 1 implied bit), an exponent of 11 bits, and 1 sign bit. Since 2 = 1024, the complete range of the positive normal floating-point numbers in this format

10716-408: The significant digits of the number. This position is indicated by the exponent, so floating point can be considered a form of scientific notation . A floating-point system can be used to represent, with a fixed number of digits, numbers of very different orders of magnitude — such as the number of meters between galaxies or between protons in an atom . For this reason, floating-point arithmetic

10830-500: The single-precision format, and any integer with absolute value less than 2 can be exactly represented in the double-precision format. Furthermore, a wide range of powers of 2 times such a number can be represented. These properties are sometimes used for purely integer data, to get 53-bit integers on platforms that have double-precision floats but only 32-bit integers. The standard specifies some special values, and their representation: positive infinity ( +∞ ), negative infinity ( −∞ ),

10944-547: The underlined bit 0 above. The next bit, at position 24, is called the round bit or rounding bit . It is used to round the 33-bit approximation to the nearest 24-bit number (there are specific rules for halfway values , which is not the case here). This bit, which is 1 in this example, is added to the integer formed by the leftmost 24 bits, yielding: 11001001   00001111   1101101 1 _ . {\displaystyle 11001001\ 00001111\ 1101101{\underline {1}}.} When this

11058-489: The underlying organization of the machines from word lengths based on 6-bit characters to those based on 8-bit words needed to support ASCII . DEC began studies of such a machine, the PDP-X, but Ken Olsen did not support it as he could not see how it offered anything their existing 12-bit or 18-bit machines didn't. This led the leaders of the PDP-X project to leave DEC and start Data General , whose 16-bit Data General Nova

11172-467: The widely used TOPS-10 . When newer Flip Chip packaging allowed the PDP-6 to be re-implemented at a much lower cost, DEC took the opportunity to refine their 36-bit design, introducing the PDP-10 in 1968. The PDP-10 was as much a success as the PDP-6 was a commercial failure; about 700 mainframe PDP-10s were sold before production ended in 1984. The PDP-10 was widely used in university settings, and thus

11286-455: Was a major player overseas where Compaq had less presence. However, Compaq had little idea what to do with its acquisitions, and soon found itself in financial difficulty of its own. Compaq subsequently merged with Hewlett-Packard (HP) in May 2002. Ken Olsen and Harlan Anderson were two engineers who had been working at MIT Lincoln Laboratory on the lab's various computer projects. The Lab

11400-478: Was either bought from the company that built the computer or custom-constructed for one client. However, the emerging third-party software industry disregarded the PDP-11/Professional line and concentrated on other microcomputers where distribution was easier. At DEC itself, creating better programs for the Professional was not a priority, perhaps from fear of cannibalizing the PDP-11 line. As a result,

11514-408: Was established, and since the 1990s, the most commonly encountered representations are those defined by the IEEE. The speed of floating-point operations, commonly measured in terms of FLOPS , is an important characteristic of a computer system , especially for applications that involve intensive mathematical calculations. A floating-point unit (FPU, colloquially a math coprocessor ) is a part of

11628-507: Was even sold in kit form as the Heathkit H11 , although it proved too expensive for Heathkit 's traditional hobbyist market. The introduction of semiconductor memory in the early 1970s, and especially dynamic RAM shortly thereafter, led to dramatic reductions in the price of memory as the effects of Moore's Law were felt. Within years, it was common to equip a machine with all the memory it could address, typically 64 KB on 16-bit machines. This led vendors to introduce new designs with

11742-623: Was eventually ported along with MS-DOS 2.0 and introduced in late 1983. Although the Rainbow generated some press, it was unsuccessful due to its high price and lack of marketing and sales support. By late 1983 IBM was outselling DEC's personal computers by more than ten to one. A further system was introduced in 1986 as the VAXmate , which included Microsoft Windows 1.0 and used VAX/VMS-based file and print servers along with integration into DEC's own DECnet -family, providing LAN/WAN connection from PC to mainframe or supermini. The VAXmate replaced

11856-636: Was followed by the even more successful VT100 and its follow-ons, making DEC one of the largest terminal vendors in the industry. This was supported by a line of inexpensive computer printers , the DECwriter line. With the VT and DECwriter series, DEC could now offer a complete top-to-bottom system from computer to all peripherals, which formerly required collecting the required devices from different suppliers. The VAX processor architecture and family of systems evolved and expanded through several generations during

11970-731: Was initially available only to DEC employees. It was only after IBM had successfully launched the IBM PC in 1981 that DEC responded with their own systems. In 1982, DEC introduced not one, but three incompatible machines which were each tied to different proprietary architectures. The first, the DEC Professional , was based on the PDP-11/23 (and later, the 11/73) running the RSX-11M+ derived, but menu-driven, P/OS ("Professional Operating System"). This DEC machine easily outperformed

12084-498: Was launched, effectively a PDP-8 on a chip. This was a way to allow PDP-8 software to be run even after the official end-of-life announcement for the DEC PDP-8 product line. While the PDP-5 introduced a lower-cost line, 1963's PDP-6 was intended to take DEC into the mainframe market with a 36-bit machine. However, the PDP-6 proved to be a "hard sell" with customers, as it offered few obvious advantages over similar machines from

12198-1010: Was not until the launch of the Intel i486 in 1989 that general-purpose personal computers had floating-point capability in hardware as a standard feature. The UNIVAC 1100/2200 series , introduced in 1962, supported two floating-point representations: The IBM 7094 , also introduced in 1962, supported single-precision and double-precision representations, but with no relation to the UNIVAC's representations. Indeed, in 1964, IBM introduced hexadecimal floating-point representations in its System/360 mainframes; these same representations are still available for use in modern z/Architecture systems. In 1998, IBM implemented IEEE-compatible binary floating-point arithmetic in its mainframes; in 2005, IBM also added IEEE-compatible decimal floating-point arithmetic. Initially, computers used many different representations for floating-point numbers. The lack of standardization at

12312-419: Was only surpassed by another DEC product, the late-1970s VAX "supermini" systems that were designed to replace the PDP-11. Although a number of competitors had successfully competed with Digital through the 1970s, the VAX cemented the company's place as a leading vendor in the computer space. As microcomputers improved in the late 1980s, especially with the introduction of RISC -based workstation machines,

12426-472: Was president until he was forced to resign in 1992, after the company had gone into precipitous decline. The company produced many different product lines over its history. It is best known for the work in the minicomputer market starting in the early 1960s. The company produced a series of machines known as the PDP line, with the PDP-8 and PDP-11 being among the most successful minis in history. Their success

12540-539: Was released in 1969 and was a huge success. The success of the Nova finally prompted DEC to take the switch seriously, and they began a crash program to introduce a 16-bit machine of their own. The new system was designed primarily by Harold McFarland, Gordon Bell , Roger Cady, and others. The project was able to leap forward in design with the arrival of Harold McFarland, who had been researching 16-bit designs at Carnegie Mellon University . One of his simpler designs became

12654-404: Was the PDP-11's first disk operating system, but was soon supplanted by more capable systems. RSX provided a general-purpose multitasking environment and supported a wide variety of programming languages . IAS was a time-sharing version of RSX-11D. Both RSTS and Unix were time-sharing systems available to educational institutions at little or no cost, and these PDP-11 systems were destined to be

12768-454: Was the basis of many advances in computing and operating system design during the 1970s. DEC later re-branded all of the models in the 36-bit series as the "DECsystem-10", and PDP-10s are generally referred to by the model of their CPU, starting with the "KA10", soon upgraded to the "KI10" (I:Integrated circuit); then to "KL10" (L:Large-scale integration ECL logic ); also the "KS10" (S: Small form factor ). Unified product line upgrades produced

12882-535: Was the dual-processor (Z80 and 8088) Rainbow 100 , which ran the 8-bit CP/M operating system on the Z80 and the 16-bit CP/M-86 operating system on the Intel 8088 processor. It could also run a UNIX System III implementation called VENIX . Applications from standard CP/M could be re-compiled for the Rainbow, but by this time users were expecting custom-built (pre-compiled binary) applications such as Lotus 1-2-3 , which

12996-441: Was used as a printer . The Soroban system was notoriously unreliable, and often replaced with a modified Friden Flexowriter , which also contained its own punched tape system. A variety of more-expensive add-ons followed, including magnetic tape systems, punched card readers and punches, and faster punched tape and printer systems. When DEC introduced the PDP-1, they also mentioned larger machines at 24, 30 and 36 bits, based on

#701298