Knowledge (XXG)

Arithmetic logic unit

Source 📝

1014:
stores the carry out bit to an ALU status register. The algorithm then advances to the next fragment of each operand's collection and invokes an ALU operation on these fragments along with the stored carry bit from the previous ALU operation, thus producing another (more significant) partial and a carry out bit. As before, the carry bit is stored to the status register and the partial is written to designated storage. This process repeats until all operand fragments have been processed, resulting in a complete collection of partials in storage, which comprise the multi-precision arithmetic result.
863: 920: 913: 882: 875: 856: 669: 754:: B is subtracted from A (or vice versa) and the difference appears at Y and carry-out. For this function, carry-out is effectively a "borrow" indicator. This operation may also be used to compare the magnitudes of A and B; in such cases the Y output may be ignored by the processor, which is only interested in the status bits (particularly zero and negative) that result from the operation. 901: 695:") has passed for the signals to propagate through the ALU circuitry, the result of the ALU operation appears at the ALU outputs. The external circuitry connected to the ALU is responsible for ensuring the stability of ALU input signals throughout the operation, and for allowing sufficient time for the signals to propagate through the ALU before sampling the ALU result. 894: 31: 509:, and a code indicating the operation to be performed; the ALU's output is the result of the performed operation. In many designs, the ALU also has status inputs or outputs, or both, which convey information about a previous operation or the current operation, respectively, between the ALU and external 582:
that specifies the desired arithmetic or logic operation to be performed by the ALU. The opcode size (its bus width) determines the maximum number of distinct operations the ALU can perform; for example, a four-bit opcode can specify up to sixteen different ALU operations. Generally, an ALU opcode is
1017:
In multiple-precision shift operations, the order of operand fragment processing depends on the shift direction. In left-shift operations, fragments are processed LS first because the LS bit of each partial—which is conveyed via the stored carry bit—must be obtained from the MS bit of the previously
717:
simultaneously applies a value to the ALU's opcode input, configuring it to perform addition. At the same time, the CPU also routes the ALU result output to a destination register that will receive the sum. The ALU's input signals, which are held stable until the next clock, are allowed to propagate
989:
is an algorithm that operates on integers which are larger than the ALU word size. To do this, the algorithm treats each operand as an ordered collection of ALU-size fragments, arranged from most-significant (MS) to least-significant (LS) or vice versa. For example, in the case of an 8-bit ALU, the
1013:
In arithmetic operations (e.g., addition, subtraction), the algorithm starts by invoking an ALU operation on the operands' LS fragments, thereby producing both a LS partial and a carry out bit. The algorithm writes the partial to designated storage, whereas the processor's state machine typically
1030:
Although an ALU can be designed to perform complex functions, the resulting higher circuit complexity, cost, power consumption and larger size makes this impractical in many cases. Consequently, ALUs are often limited to simple functions that can be executed at very high speeds (i.e., very short
1630:
Microprocessors began to appear in the early 1970s. Even though transistors had become smaller, there was sometimes insufficient die space for a full-word-width ALU and, as a result, some early microprocessors employed a narrow ALU that required multiple cycles per machine language instruction.
1009:
The algorithm uses the ALU to directly operate on particular operand fragments and thus generate a corresponding fragment (a "partial") of the multi-precision result. Each partial, when generated, is written to an associated region of storage that has been designated for the multiple-precision
34:
A symbolic representation of an ALU and its input and output signals, indicated by arrows pointing into or out of the ALU, respectively. Each arrow represents one or more signals. Control signals enter from the left and status signals exit on the right; data flows from top to
1074:
The implementations above transition from fastest and most expensive to slowest and least costly. The square root is calculated in all cases, but processors with simple ALUs will take longer to perform the calculation because multiple ALU operations must be performed.
1021:
In bitwise logical operations (e.g., logical AND, logical OR), the operand fragments may be processed in any arbitrary order because each partial depends only on the corresponding operand fragments (the stored carry bit from the previous ALU operation is ignored).
718:
through the ALU and to the destination register while the CPU waits for the next clock. When the next clock arrives, the destination register stores the ALU result and, since the ALU operation has completed, the ALU inputs may be set up for the next ALU operation.
1642:
Modern integrated circuit (IC) transistors are orders of magnitude smaller than those of the early microprocessors, making it possible to fit highly complex ALUs on ICs. Today, many modern ALUs have wide word widths, and architectural enhancements such as
1056:. This circuit can accept new operands before finishing the previous ones and produces results as fast as the very complex ALU, though the results are delayed by the sum of the propagation delays of the ALU stages. For more information, see the article on 933:
that allow them to shift the operand by an arbitrary number of bits in one operation. In all single-bit shift operations, the bit shifted out of the operand appears on carry-out; the value of the bit shifted into the operand depends on the type of shift.
1627:" capable, meaning they had "carry look ahead" signals that facilitated the use of multiple interconnected ALU chips to create an ALU with a wider word size. These devices quickly became popular and were widely used in bit-slice minicomputers. 1018:
left-shifted, less-significant operand. Conversely, operands are processed MS first in right-shift operations because the MS bit of each partial must be obtained from the LS bit of the previously right-shifted, more-significant operand.
928:
ALU shift operations cause operand A (or B) to shift left or right (depending on the opcode) and the shifted operand appears at Y. Simple ALUs typically can shift the operand by only one bit position, whereas more complex ALUs employ
1611:
introduced the first ALU-like device implemented as an integrated circuit, the Fairchild 3800, consisting of an eight-bit arithmetic unit with accumulator. It only supported adds and subtracts but no logic functions.
659:
The status inputs allow additional information to be made available to the ALU when performing an operation. Typically, this is a single "carry-in" bit that is the stored carry-out from a previous ALU operation.
533:
between the ALU and external circuitry. When an ALU is operating, external circuits apply signals to the ALU inputs and, in response, the ALU produces and conveys signals to external circuitry via its outputs.
786:: all bits of A (or B) appear unmodified at Y. This operation is typically used to determine the parity of the operand or whether it is zero or negative, or to load the operand into a processor register. 691:
circuit, meaning that its outputs will change asynchronously in response to input changes. In normal operation, stable signals are applied to all of the ALU inputs and, when enough time (known as the "
1600:
that operated on one data bit at a time although they often presented a wider word size to programmers. The first computer to have multiple parallel discrete single-bit ALU circuits was the 1951
562:). Each data bus is a group of signals that conveys one binary integer number. Typically, the A, B and Y bus widths (the number of signals comprising each bus) are identical and match the native 600:
The status outputs are various individual signals that convey supplemental information about the result of the current ALU operation. General-purpose ALUs commonly have status signals such as:
439: 651:. The collection of bit registers that store the status outputs are often treated as a single, multi-bit register, which is referred to as the "status register" or "condition code register". 3182: 643:
Upon completion of each ALU operation, the status output signals are usually stored in external registers to make them available for future ALU operations (e.g., to implement
4097: 726:
A number of basic arithmetic and bitwise logic functions are commonly supported by ALUs. Basic, general purpose ALUs typically include these operations in their repertoires:
4623: 1010:
result. This process is repeated for all operand fragments so as to generate a complete collection of partials, which is the result of the multiple-precision operation.
2154: 432: 3293: 2476: 1031:
propagation delays), and the external processor circuitry is responsible for performing complex functions by orchestrating a sequence of simpler ALU operations.
2995: 3152: 2718: 2535: 425: 2498: 611:
resulting from an addition operation, the borrow resulting from a subtraction operation, or the overflow bit resulting from a binary shift operation.
3147: 4090: 3219: 2972: 1937: 1824: 1766: 1736: 4628: 3916: 3040: 2303: 2147: 1091:, or as part of a more complex IC. In the latter case, an ALU is typically instantiated by synthesizing it from a description written in 1052:: a group of simple ALUs that calculates a square root in stages, with intermediate results passing through ALUs arranged like a factory 3926: 3067: 244: 4669: 4083: 2194: 1841: 349: 3234: 3062: 3035: 2414: 2118: 2094: 2385: 4654: 4049: 3612: 2505: 2471: 2466: 2350: 4024: 3921: 3322: 3229: 3030: 2273: 2251: 2140: 1006:(LS). Since the size of a fragment exactly matches the ALU word size, the ALU can directly operate on this "piece" of operand. 1651:
that allow them to perform, in a single clock cycle, operations that would have required multiple operations on earlier ALUs.
4664: 2769: 2204: 698:
In general, external circuitry controls an ALU by applying signals to its inputs. Typically, the external circuitry employs
760:: B is subtracted from A (or vice versa) with borrow (carry-in) and the difference appears at Y and carry-out (borrow out). 4618: 3224: 3072: 2906: 2520: 2481: 2338: 1100: 644: 90: 4659: 4486: 4457: 3661: 3506: 3501: 3423: 2899: 2860: 2515: 2510: 2444: 2256: 1782: 530: 379: 2380: 4283: 4225: 3288: 2985: 2683: 1635:, which performed eight-bit additions with a four-bit ALU. Over time, transistor geometries shrank further, following 1034:
For example, computing the square root of a number might be implemented in various ways, depending on ALU complexity:
963:: the operand is treated as a circular buffer of bits so its least and most significant bits are effectively adjacent. 4462: 3938: 3585: 3002: 2493: 2461: 2231: 2219: 2199: 374: 4649: 4276: 4029: 3992: 3982: 2370: 706:
of a sufficiently low frequency to ensure enough time for the ALU outputs to settle under worst-case conditions.
648: 1592:
The cost, size, and power consumption of electronic circuitry was relatively high throughout the infancy of the
4593: 4506: 4479: 4450: 4213: 4044: 3451: 3387: 3364: 3214: 3176: 3012: 2962: 2957: 2434: 2328: 2236: 499: 402: 343: 239: 2241: 709:
For example, a CPU begins an ALU addition operation by routing operands from their sources (which are usually
4536: 4531: 4419: 4392: 3997: 3780: 3674: 3638: 3555: 3539: 3381: 3170: 3129: 3117: 2980: 2894: 2815: 2580: 2184: 1684: 1608: 1597: 495: 407: 3803: 3775: 3685: 3650: 3399: 3393: 3375: 3109: 3103: 3007: 2911: 2802: 2741: 2603: 2246: 1814: 1057: 1903: 1878: 150: 4426: 3977: 3886: 3344: 3162: 2921: 2889: 2847: 2759: 2560: 2375: 2365: 2355: 2345: 2315: 2298: 2163: 526: 412: 140: 1783:"1. An Introduction to Computer Architecture - Designing Embedded Hardware, 2nd Edition [Book]" 188: 145: 4414: 4007: 3943: 3529: 3251: 3141: 3088: 2620: 2333: 2189: 2171: 1048: 4054: 3656: 1690: 272: 4288: 4039: 3859: 3710: 3692: 3644: 3298: 3245: 3050: 3045: 3022: 2938: 2820: 2675: 2570: 2429: 1679: 1659: 1655: 944: 764: 688: 673: 627: 587:, though in some cases it may be directly encoded as a bit field within a machine language opcode. 487: 465: 397: 120: 85: 80: 3911: 3903: 3755: 3730: 3534: 3409: 2933: 2874: 2754: 2486: 2214: 2061: 2034:"An unconventional Arithmetic Logic Unit design and computing in Actin Quantum Cellular Automata" 1756: 1724: 1663: 1084: 710: 608: 277: 165: 135: 494:
numbers. It is a fundamental building block of many types of computing circuits, including the
4436: 4300: 4198: 4110: 3864: 3831: 3747: 3679: 3580: 3570: 3560: 3491: 3486: 3481: 3404: 3333: 3239: 3199: 2832: 2782: 2732: 2708: 2590: 2530: 2525: 2407: 2323: 2114: 2104: 2090: 2053: 1999: 1981: 1933: 1820: 1762: 1732: 1695: 1648: 1585:
proposed the ALU concept in 1945 in a report on the foundations for a new computer called the
1066:: a simple ALU that calculates the square root through several steps under the direction of a 967: 959: 951: 939: 862: 821: 813: 805: 797: 692: 522: 476: 320: 315: 310: 305: 300: 295: 234: 4271: 4162: 4034: 3967: 3808: 3715: 3669: 3476: 3471: 3466: 3461: 3456: 3446: 3316: 3283: 3194: 3189: 3098: 2950: 2945: 2928: 2916: 2855: 2419: 2397: 2283: 2261: 2179: 2045: 1989: 1971: 1925: 1582: 919: 699: 631:, which indicates the result of an arithmetic operation has exceeded the numeric range of Y. 325: 254: 170: 160: 17: 912: 4431: 4409: 4372: 4320: 4140: 4135: 4127: 3948: 3933: 3881: 3785: 3760: 3597: 3590: 3441: 3436: 3431: 3370: 3278: 3268: 2990: 2825: 2777: 2540: 2424: 2392: 2293: 2288: 2209: 1852: 1593: 543: 510: 468: 216: 211: 70: 1666:
circuits and, in recent years, research into biological ALUs has been carried out (e.g.,
578:
input is a parallel bus that conveys to the ALU an operation selection code, which is an
4496: 4397: 4167: 4150: 4059: 3893: 3876: 3869: 3765: 3622: 3359: 3273: 3204: 2787: 2749: 2698: 2693: 2688: 2402: 2226: 1994: 1959: 1700: 1644: 1636: 930: 881: 491: 874: 855: 4643: 4598: 4568: 4384: 4310: 4263: 4208: 4203: 4155: 3854: 3770: 2810: 2792: 2585: 2278: 2065: 2018: 1810: 1806: 1053: 750: 736: 483: 65: 2084: 1604:, which employed sixteen such "math units" to enable it to operate on 16-bit words. 955:: a logic zero is shifted into the operand. This is used to shift unsigned integers. 4474: 4362: 4345: 4340: 4118: 4064: 4002: 3818: 3795: 3607: 3328: 2266: 1067: 714: 703: 249: 1929: 971:: the carry bit and operand are collectively treated as a circular buffer of bits. 2019:"The biological microprocessor, or how to build a computer with biological parts" 4573: 4541: 4444: 4404: 4367: 4335: 4177: 3849: 3813: 3524: 3496: 3354: 3209: 1917: 1624: 1601: 1040: 947:
integer, meaning that the most significant bit is a "sign" bit and is preserved.
681: 668: 635: 579: 2049: 1615:
Full integrated-circuit ALUs soon emerged, including four-bit ALUs such as the
4588: 4305: 4235: 4230: 4220: 3735: 3725: 3720: 3702: 3602: 3575: 2837: 2670: 2640: 2360: 1976: 1616: 472: 206: 155: 130: 125: 75: 2108: 2057: 2033: 1985: 4583: 4578: 4562: 4491: 4330: 4182: 4145: 4075: 3826: 3823: 3565: 2635: 2613: 1632: 566:
of the external circuitry (e.g., the encapsulating CPU or other processor).
563: 453: 2003: 639:, which indicates whether an even or odd number of bits in Y are logic one. 900: 4521: 4172: 4107: 3841: 2713: 2660: 2132: 1918:"Mechanical Computing: The Computational Complexity of Physical Devices" 893: 4355: 4293: 4247: 2650: 2608: 1096: 547: 506: 480: 746:: A, B and carry-in are summed and the sum appears at Y and carry-out. 30: 4469: 4242: 3953: 2665: 2630: 2595: 584: 1044:: a very complex ALU that calculates a square root in one operation. 780:: A (or B) is decreased by one and the resulting value appears at Y. 774:: A (or B) is increased by one and the resulting value appears at Y. 623:, which indicates the result of an arithmetic operation is negative. 2110:
Computer Organization & Architecture: Designing for Performance
768:: A (or B) is subtracted from zero and the difference appears at Y. 3123: 2655: 2625: 1667: 1620: 1586: 1104: 1088: 677: 667: 29: 1639:, and it became feasible to build wider ALUs on microprocessors. 4546: 4440: 3987: 3135: 3055: 2645: 1092: 4079: 2136: 1879:"Inside the 74181 ALU chip: die photos and reverse engineering" 1103:. For example, the following VHDL code describes a very simple 4526: 4350: 2575: 2565: 2032:
Das, Biplab; Paul, Avijit Kumar; De, Debashis (2019-08-16).
740:: A and B are summed and the sum appears at Y and carry-out. 505:
The inputs to an ALU are the data to be operated on, called
1819:(2nd ed.). Cambridge University Press. pp. 990–. 994:
would be treated as a collection of three 8-bit fragments:
1958:
Lin, Chun-Liang; Kuo, Ting-Yu; Li, Wei-Xian (2018-08-14).
1750: 1748: 1718: 1716: 1083:
An ALU is usually implemented either as a stand-alone
1755:
Atul P. Godse; Deepali A. Godse (2009). "Appendix".
825:: all bits of A (or B) are inverted and appear at Y. 4611: 4555: 4514: 4505: 4383: 4319: 4262: 4191: 4126: 4117: 4017: 3966: 3902: 3840: 3794: 3746: 3701: 3621: 3548: 3517: 3422: 3343: 3307: 3261: 3161: 3087: 3021: 2971: 2882: 2873: 2846: 2801: 2768: 2740: 2731: 2551: 2454: 2443: 2314: 2170: 1960:"Synthesis of control unit for future biocomputer" 702:to control the ALU operation, which is paced by a 2086:Digital Logic and Microprocessor Design with VHDL 1904:"The Z-80 has a 4-bit ALU. Here's how it works." 680:integrated circuit, an early four-bit ALU, with 1286:-- decode the opcode and perform the operation: 617:, which indicates all bits of Y are logic zero. 1924:, New York, NY: Springer, pp. 5466–5482, 1922:Encyclopedia of Complexity and Systems Science 4624:History of computing hardware (1960s–present) 4091: 2148: 1127:-- the alu connections to external circuitry: 433: 8: 3153:Computer performance by orders of magnitude 4511: 4123: 4098: 4084: 4076: 3618: 3258: 2879: 2737: 2451: 2155: 2141: 2133: 1596:. Consequently, all early computers had a 833: 817:: the bitwise XOR of A and B appears at Y. 801:: the bitwise AND of A and B appears at Y. 440: 426: 108: 38: 1993: 1975: 809:: the bitwise OR of A and B appears at Y. 713:) to the ALU's operand inputs, while the 521:An ALU has a variety of input and output 1761:. Technical Publications. pp. C–1. 1731:. Technical Publications. pp. 9–3. 1723:Atul P. Godse; Deepali A. Godse (2009). 835:Bit shift examples for an eight-bit ALU 2113:(7th ed.). Pearson Prentice Hall. 1712: 395: 372: 341: 293: 270: 232: 204: 186: 118: 106: 63: 46: 1631:Examples of this includes the popular 7: 4629:List of pioneers in computer science 3124:Floating-point operations per second 985:In integer arithmetic computations, 542:A basic ALU has three parallel data 25: 1964:Journal of Biological Engineering 1840:Philip Levis (November 8, 2004). 4050:Semiconductor device fabrication 1842:"Jonathan von Neumann and EDVAC" 1623:. These devices were typically " 918: 911: 899: 892: 880: 873: 861: 854: 245:Booth's multiplication algorithm 4025:History of general-purpose CPUs 2252:Nondeterministic Turing machine 1851:. pp. 1, 3. Archived from 2205:Deterministic finite automaton 1920:, in Meyers, Robert A. (ed.), 943:: the operand is treated as a 498:(CPU) of computers, FPUs, and 1: 4619:History of computing hardware 2996:Simultaneous and heterogenous 1930:10.1007/978-0-387-30440-3_325 1101:hardware description language 987:multiple-precision arithmetic 981:Multiple-precision arithmetic 645:multiple-precision arithmetic 350:Multiply–accumulate operation 91:Signed number representations 27:Combinational digital circuit 4487:Network interface controller 3680:Integrated memory controller 3662:Translation lookaside buffer 2861:Memory dependence prediction 2304:Random-access stored program 2257:Probabilistic Turing machine 380:Category:Computer arithmetic 18:Integer arithmetic operation 4284:Refreshable braille display 4226:Refreshable braille display 3136:Synaptic updates per second 486:. This is in contrast to a 4686: 3540:Heterogeneous architecture 2462:Orthogonal instruction set 2232:Alternating Turing machine 2220:Quantum cellular automaton 2050:10.1007/s00542-019-04590-1 791:Bitwise logical operations 375:Category:Binary arithmetic 4670:Arithmetic logic circuits 4030:Microprocessor chronology 3993:Dynamic frequency scaling 3148:Cache performance metrics 1977:10.1186/s13036-018-0109-4 500:graphics processing units 490:(FPU), which operates on 47:Arithmetic logic circuits 4045:Hardware security module 3388:Digital signal processor 3365:Graphics processing unit 3177:Graphics processing unit 2038:Microsystem Technologies 1654:ALUs can be realized as 1109: 546:consisting of two input 344:Kochanski multiplication 240:Multiplication algorithm 4655:Central processing unit 4393:Central processing unit 3998:Dynamic voltage scaling 3781:Memory address register 3675:Branch target predictor 3639:Address generation unit 3382:Physics processing unit 3171:Central processing unit 3130:Transactions per second 3118:Instructions per second 3041:Array processing (SIMT) 2185:Stored-program computer 1685:Address generation unit 585:machine language opcode 558:) and a result output ( 496:central processing unit 86:Two's complement number 81:Ones' complement number 3804:Hardwired control unit 3686:Memory management unit 3651:Memory management unit 3400:Secure cryptoprocessor 3394:Tensor Processing Unit 3376:Vision processing unit 3110:Cycles per instruction 3104:Instructions per cycle 3051:Associative processing 2742:Instruction pipelining 2164:Processor technologies 1916:Reif, John H. (2009), 1816:The Art of Electronics 1758:Digital Logic Circuits 1058:instruction pipelining 684: 36: 4665:Computer architecture 3887:Sum-addressed decoder 3633:Arithmetic logic unit 2760:Classic RISC pipeline 2714:Epiphany architecture 2561:Motorola 68000 series 2083:Hwang, Enoch (2006). 2017:Gerd Hg Moe-Behrens. 1858:on September 23, 2015 1433:-- 1's complement 1064:Iterative calculation 908:Rotate through carry 730:Arithmetic operations 671: 649:conditional branching 647:) or for controlling 527:electrical conductors 458:arithmetic logic unit 413:Mechanical calculator 141:Carry-lookahead adder 33: 4008:Performance per watt 3586:replacement policies 3252:Package on a package 3142:Performance per watt 3046:Pipelined processing 2816:Tomasulo's algorithm 2621:Clipper architecture 2477:Application-specific 2190:Finite-state machine 1729:Digital Logic Design 1049:Calculation pipeline 968:Rotate through carry 830:Bit shift operations 758:Subtract with borrow 607:, which conveys the 183:Adder–subtractor (Âą) 4660:Computer arithmetic 4040:Digital electronics 3693:Instruction decoder 3645:Floating-point unit 3299:Soft microprocessor 3246:System in a package 2821:Reservation station 2351:Transport-triggered 1883:Ken Shirriff's blog 1680:Adder (electronics) 1247:-- operation result 836: 689:combinational logic 674:combinational logic 488:floating-point unit 42:Part of a series on 3912:Integrated circuit 3756:Processor register 3410:Baseband processor 2755:Operand forwarding 2215:Cellular automaton 2105:Stallings, William 1813:(1989). "14.1.1". 1660:electro-mechanical 1649:binary multipliers 1087:(IC), such as the 1085:integrated circuit 1026:Complex operations 834: 685: 583:not the same as a 477:bitwise operations 346:(exponentiation) 278:Division algorithm 166:Carry-select adder 136:Ripple-carry adder 37: 4637: 4636: 4607: 4606: 4537:Analog audio jack 4258: 4257: 4073: 4072: 3962: 3961: 3581:Instruction cache 3571:Scratchpad memory 3418: 3417: 3405:Network processor 3334:Network on a chip 3289:Ultra-low-voltage 3240:Multi-chip module 3083: 3082: 2869: 2868: 2856:Branch prediction 2833:Register renaming 2727: 2726: 2709:VISC architecture 2531:Quantum computing 2526:VISC architecture 2408:Secondary storage 2324:Microarchitecture 2284:Register machines 1939:978-0-387-30440-3 1826:978-0-521-37095-0 1768:978-81-8431-650-6 1738:978-81-8431-738-1 1696:Binary multiplier 1039:Calculation in a 926: 925: 851:Arithmetic shift 693:propagation delay 676:circuitry of the 664:Circuit operation 450: 449: 358: 357: 296:Bitwise operation 235:Binary multiplier 151:Kogge–Stone adder 16:(Redirected from 4677: 4650:Digital circuits 4512: 4163:Optical trackpad 4128:Pointing devices 4124: 4100: 4093: 4086: 4077: 4035:Processor design 3927:Power management 3809:Instruction unit 3670:Branch predictor 3619: 3317:System on a chip 3259: 3099:Transistor count 3023:Flynn's taxonomy 2880: 2738: 2541:Addressing modes 2452: 2398:Memory hierarchy 2262:Hypercomputation 2180:Abstract machine 2157: 2150: 2143: 2134: 2124: 2100: 2070: 2069: 2029: 2023: 2022: 2014: 2008: 2007: 1997: 1979: 1955: 1949: 1948: 1947: 1946: 1913: 1907: 1906:2013, righto.com 1900: 1894: 1893: 1891: 1889: 1874: 1868: 1867: 1865: 1863: 1857: 1846: 1837: 1831: 1830: 1803: 1797: 1796: 1794: 1793: 1779: 1773: 1772: 1752: 1743: 1742: 1720: 1602:Whirlwind I 1583:John von Neumann 1572: 1569: 1566: 1563: 1560: 1557: 1554: 1551: 1548: 1545: 1542: 1539: 1536: 1533: 1530: 1527: 1524: 1521: 1518: 1515: 1512: 1509: 1506: 1503: 1500: 1497: 1494: 1491: 1488: 1485: 1482: 1479: 1476: 1473: 1470: 1467: 1464: 1461: 1458: 1455: 1452: 1449: 1446: 1443: 1440: 1437: 1434: 1431: 1428: 1425: 1422: 1419: 1416: 1413: 1410: 1407: 1404: 1401: 1398: 1395: 1392: 1389: 1386: 1383: 1380: 1377: 1374: 1371: 1368: 1365: 1362: 1359: 1356: 1353: 1350: 1347: 1344: 1341: 1338: 1335: 1332: 1329: 1326: 1323: 1320: 1317: 1314: 1311: 1308: 1305: 1302: 1299: 1296: 1293: 1290: 1287: 1284: 1281: 1278: 1275: 1272: 1269: 1266: 1263: 1260: 1257: 1254: 1251: 1248: 1245: 1242: 1239: 1236: 1233: 1230: 1227: 1224: 1221: 1218: 1215: 1212: 1209: 1206: 1203: 1200: 1197: 1194: 1191: 1188: 1185: 1182: 1179: 1176: 1173: 1170: 1167: 1164: 1161: 1158: 1155: 1152: 1149: 1146: 1143: 1140: 1137: 1134: 1131: 1128: 1125: 1122: 1119: 1116: 1113: 1005: 1001: 997: 993: 945:two's complement 940:Arithmetic shift 922: 915: 903: 896: 884: 877: 865: 858: 837: 822:Ones' complement 765:Two's complement 700:sequential logic 580:enumerated value 525:, which are the 511:status registers 442: 435: 428: 326:Bit manipulation 255:Dadda multiplier 189:Adder–subtractor 171:Carry-skip adder 161:Carry-save adder 146:Brent–Kung adder 109: 52:Quick navigation 39: 21: 4685: 4684: 4680: 4679: 4678: 4676: 4675: 4674: 4640: 4639: 4638: 4633: 4603: 4551: 4501: 4379: 4373:USB flash drive 4322: 4315: 4254: 4187: 4141:Game controller 4136:Graphics tablet 4113: 4104: 4074: 4069: 4055:Tick–tock model 4013: 3969: 3958: 3898: 3882:Address decoder 3836: 3790: 3786:Program counter 3761:Status register 3742: 3697: 3657:Load–store unit 3624: 3617: 3544: 3513: 3414: 3371:Image processor 3346: 3339: 3309: 3303: 3279:Microcontroller 3269:Embedded system 3257: 3157: 3090: 3079: 3017: 2967: 2865: 2842: 2826:Re-order buffer 2797: 2778:Data dependency 2764: 2723: 2553: 2547: 2446: 2445:Instruction set 2439: 2425:Multiprocessing 2393:Cache hierarchy 2386:Register/memory 2310: 2210:Queue automaton 2166: 2161: 2131: 2121: 2103: 2097: 2082: 2079: 2077:Further reading 2074: 2073: 2031: 2030: 2026: 2016: 2015: 2011: 1957: 1956: 1952: 1944: 1942: 1940: 1915: 1914: 1910: 1901: 1897: 1887: 1885: 1877:Sherriff, Ken. 1876: 1875: 1871: 1861: 1859: 1855: 1849:cs.berkeley.edu 1844: 1839: 1838: 1834: 1827: 1805: 1804: 1800: 1791: 1789: 1787:www.oreilly.com 1781: 1780: 1776: 1769: 1754: 1753: 1746: 1739: 1722: 1721: 1714: 1709: 1691:Load–store unit 1676: 1645:barrel shifters 1594:Information Age 1579: 1574: 1573: 1570: 1567: 1564: 1561: 1558: 1555: 1552: 1549: 1546: 1543: 1540: 1537: 1534: 1531: 1528: 1525: 1522: 1519: 1516: 1513: 1510: 1507: 1504: 1501: 1499:"111" 1498: 1495: 1492: 1489: 1486: 1483: 1480: 1477: 1474: 1471: 1469:"110" 1468: 1465: 1462: 1459: 1456: 1453: 1450: 1447: 1444: 1441: 1439:"101" 1438: 1435: 1432: 1429: 1426: 1423: 1420: 1417: 1414: 1412:"100" 1411: 1408: 1405: 1402: 1399: 1396: 1393: 1390: 1387: 1384: 1382:"011" 1381: 1378: 1375: 1372: 1369: 1366: 1363: 1360: 1357: 1354: 1352:"010" 1351: 1348: 1345: 1342: 1339: 1336: 1333: 1330: 1327: 1324: 1322:"001" 1321: 1318: 1315: 1312: 1309: 1306: 1303: 1300: 1297: 1294: 1292:"000" 1291: 1288: 1285: 1282: 1279: 1276: 1273: 1270: 1267: 1264: 1261: 1258: 1255: 1252: 1249: 1246: 1243: 1240: 1237: 1234: 1231: 1228: 1225: 1222: 1219: 1216: 1213: 1210: 1207: 1204: 1201: 1198: 1195: 1192: 1189: 1186: 1183: 1180: 1177: 1174: 1171: 1168: 1165: 1162: 1159: 1156: 1153: 1150: 1147: 1144: 1141: 1138: 1135: 1132: 1129: 1126: 1123: 1120: 1117: 1114: 1111: 1081: 1054:production line 1028: 1003: 999: 995: 991: 990:24-bit integer 983: 978: 931:barrel shifters 832: 793: 732: 724: 666: 657: 598: 593: 572: 540: 531:digital signals 529:used to convey 519: 469:digital circuit 446: 417: 394: 393: 384: 371: 370: 361: 354: 340: 339: 330: 292: 291: 282: 269: 268: 259: 231: 230: 221: 217:Half subtractor 212:Full subtractor 203: 202: 193: 185: 184: 175: 117: 116: 105: 104: 95: 71:Boolean algebra 62: 61: 28: 23: 22: 15: 12: 11: 5: 4683: 4681: 4673: 4672: 4667: 4662: 4657: 4652: 4642: 4641: 4635: 4634: 4632: 4631: 4626: 4621: 4615: 4613: 4609: 4608: 4605: 4604: 4602: 4601: 4596: 4591: 4586: 4581: 4576: 4571: 4566: 4559: 4557: 4553: 4552: 4550: 4549: 4544: 4539: 4534: 4529: 4524: 4518: 4516: 4509: 4503: 4502: 4500: 4499: 4497:Expansion card 4494: 4489: 4484: 4483: 4482: 4477: 4467: 4466: 4465: 4455: 4454: 4453: 4448: 4434: 4424: 4423: 4422: 4417: 4407: 4402: 4401: 4400: 4398:Microprocessor 4389: 4387: 4381: 4380: 4378: 4377: 4376: 4375: 4370: 4360: 4359: 4358: 4353: 4348: 4338: 4333: 4327: 4325: 4317: 4316: 4314: 4313: 4308: 4303: 4298: 4297: 4296: 4286: 4281: 4280: 4279: 4268: 4266: 4264:Output devices 4260: 4259: 4256: 4255: 4253: 4252: 4251: 4250: 4240: 4239: 4238: 4228: 4223: 4218: 4217: 4216: 4206: 4201: 4195: 4193: 4189: 4188: 4186: 4185: 4180: 4175: 4170: 4168:Pointing stick 4165: 4160: 4159: 4158: 4148: 4143: 4138: 4132: 4130: 4121: 4115: 4114: 4105: 4103: 4102: 4095: 4088: 4080: 4071: 4070: 4068: 4067: 4062: 4060:Pin grid array 4057: 4052: 4047: 4042: 4037: 4032: 4027: 4021: 4019: 4015: 4014: 4012: 4011: 4005: 4000: 3995: 3990: 3985: 3980: 3974: 3972: 3964: 3963: 3960: 3959: 3957: 3956: 3951: 3946: 3941: 3936: 3931: 3930: 3929: 3924: 3919: 3908: 3906: 3900: 3899: 3897: 3896: 3894:Barrel shifter 3891: 3890: 3889: 3884: 3877:Binary decoder 3874: 3873: 3872: 3862: 3857: 3852: 3846: 3844: 3838: 3837: 3835: 3834: 3829: 3821: 3816: 3811: 3806: 3800: 3798: 3792: 3791: 3789: 3788: 3783: 3778: 3773: 3768: 3766:Stack register 3763: 3758: 3752: 3750: 3744: 3743: 3741: 3740: 3739: 3738: 3733: 3723: 3718: 3713: 3707: 3705: 3699: 3698: 3696: 3695: 3690: 3689: 3688: 3677: 3672: 3667: 3666: 3665: 3659: 3648: 3642: 3636: 3629: 3627: 3616: 3615: 3610: 3605: 3600: 3595: 3594: 3593: 3588: 3583: 3578: 3573: 3568: 3558: 3552: 3550: 3546: 3545: 3543: 3542: 3537: 3532: 3527: 3521: 3519: 3515: 3514: 3512: 3511: 3510: 3509: 3499: 3494: 3489: 3484: 3479: 3474: 3469: 3464: 3459: 3454: 3449: 3444: 3439: 3434: 3428: 3426: 3420: 3419: 3416: 3415: 3413: 3412: 3407: 3402: 3397: 3391: 3385: 3379: 3373: 3368: 3362: 3360:AI accelerator 3357: 3351: 3349: 3341: 3340: 3338: 3337: 3331: 3326: 3323:Multiprocessor 3320: 3313: 3311: 3305: 3304: 3302: 3301: 3296: 3291: 3286: 3281: 3276: 3274:Microprocessor 3271: 3265: 3263: 3262:By application 3256: 3255: 3249: 3243: 3237: 3232: 3227: 3222: 3217: 3212: 3207: 3205:Tile processor 3202: 3197: 3192: 3187: 3186: 3185: 3174: 3167: 3165: 3159: 3158: 3156: 3155: 3150: 3145: 3139: 3133: 3127: 3121: 3115: 3114: 3113: 3101: 3095: 3093: 3085: 3084: 3081: 3080: 3078: 3077: 3076: 3075: 3065: 3060: 3059: 3058: 3053: 3048: 3043: 3033: 3027: 3025: 3019: 3018: 3016: 3015: 3010: 3005: 3000: 2999: 2998: 2993: 2991:Hyperthreading 2983: 2977: 2975: 2973:Multithreading 2969: 2968: 2966: 2965: 2960: 2955: 2954: 2953: 2943: 2942: 2941: 2936: 2926: 2925: 2924: 2919: 2909: 2904: 2903: 2902: 2897: 2886: 2884: 2877: 2871: 2870: 2867: 2866: 2864: 2863: 2858: 2852: 2850: 2844: 2843: 2841: 2840: 2835: 2830: 2829: 2828: 2823: 2813: 2807: 2805: 2799: 2798: 2796: 2795: 2790: 2785: 2780: 2774: 2772: 2766: 2765: 2763: 2762: 2757: 2752: 2750:Pipeline stall 2746: 2744: 2735: 2729: 2728: 2725: 2724: 2722: 2721: 2716: 2711: 2706: 2703: 2702: 2701: 2699:z/Architecture 2696: 2691: 2686: 2678: 2673: 2668: 2663: 2658: 2653: 2648: 2643: 2638: 2633: 2628: 2623: 2618: 2617: 2616: 2611: 2606: 2598: 2593: 2588: 2583: 2578: 2573: 2568: 2563: 2557: 2555: 2549: 2548: 2546: 2545: 2544: 2543: 2533: 2528: 2523: 2518: 2513: 2508: 2503: 2502: 2501: 2491: 2490: 2489: 2479: 2474: 2469: 2464: 2458: 2456: 2449: 2441: 2440: 2438: 2437: 2432: 2427: 2422: 2417: 2412: 2411: 2410: 2405: 2403:Virtual memory 2395: 2390: 2389: 2388: 2383: 2378: 2373: 2363: 2358: 2353: 2348: 2343: 2342: 2341: 2331: 2326: 2320: 2318: 2312: 2311: 2309: 2308: 2307: 2306: 2301: 2296: 2291: 2281: 2276: 2271: 2270: 2269: 2264: 2259: 2254: 2249: 2244: 2239: 2234: 2227:Turing machine 2224: 2223: 2222: 2217: 2212: 2207: 2202: 2197: 2187: 2182: 2176: 2174: 2168: 2167: 2162: 2160: 2159: 2152: 2145: 2137: 2130: 2129:External links 2127: 2126: 2125: 2119: 2101: 2095: 2078: 2075: 2072: 2071: 2044:(3): 809–822. 2024: 2009: 1950: 1938: 1908: 1902:Ken Shirriff. 1895: 1869: 1832: 1825: 1807:Horowitz, Paul 1798: 1774: 1767: 1744: 1737: 1711: 1710: 1708: 1705: 1704: 1703: 1701:Execution unit 1698: 1693: 1688: 1682: 1675: 1672: 1581:Mathematician 1578: 1575: 1523:-- bitwise XOR 1463:-- bitwise AND 1110: 1099:or some other 1080: 1079:Implementation 1077: 1072: 1071: 1061: 1045: 1027: 1024: 982: 979: 977: 974: 973: 972: 964: 956: 948: 924: 923: 916: 909: 905: 904: 897: 890: 886: 885: 878: 871: 870:Logical shift 867: 866: 859: 852: 848: 847: 844: 841: 831: 828: 827: 826: 818: 810: 802: 792: 789: 788: 787: 781: 775: 769: 761: 755: 747: 744:Add with carry 741: 731: 728: 723: 720: 665: 662: 656: 653: 641: 640: 632: 624: 618: 612: 597: 594: 592: 589: 571: 568: 539: 536: 518: 515: 492:floating point 484:binary numbers 471:that performs 448: 447: 445: 444: 437: 430: 422: 419: 418: 416: 415: 410: 405: 400: 391: 390: 389: 386: 385: 383: 382: 377: 368: 367: 366: 363: 362: 360: 359: 356: 355: 353: 352: 347: 337: 336: 335: 332: 331: 329: 328: 323: 318: 313: 308: 303: 298: 289: 288: 287: 284: 283: 281: 280: 275: 273:Binary Divider 266: 265: 264: 261: 260: 258: 257: 252: 247: 242: 237: 229:Multiplier (×) 228: 227: 226: 223: 222: 220: 219: 214: 209: 201:Subtractor (−) 200: 199: 198: 195: 194: 192: 191: 182: 181: 180: 177: 176: 174: 173: 168: 163: 158: 153: 148: 143: 138: 133: 128: 123: 114: 113: 112: 102: 101: 100: 97: 96: 94: 93: 88: 83: 78: 73: 68: 59: 58: 57: 54: 53: 49: 48: 44: 43: 26: 24: 14: 13: 10: 9: 6: 4: 3: 2: 4682: 4671: 4668: 4666: 4663: 4661: 4658: 4656: 4653: 4651: 4648: 4647: 4645: 4630: 4627: 4625: 4622: 4620: 4617: 4616: 4614: 4610: 4600: 4597: 4595: 4592: 4590: 4587: 4585: 4582: 4580: 4577: 4575: 4572: 4570: 4569:Parallel port 4567: 4564: 4561: 4560: 4558: 4554: 4548: 4545: 4543: 4540: 4538: 4535: 4533: 4530: 4528: 4525: 4523: 4520: 4519: 4517: 4513: 4510: 4508: 4504: 4498: 4495: 4493: 4490: 4488: 4485: 4481: 4478: 4476: 4473: 4472: 4471: 4468: 4464: 4461: 4460: 4459: 4456: 4452: 4449: 4446: 4442: 4438: 4435: 4433: 4430: 4429: 4428: 4425: 4421: 4418: 4416: 4413: 4412: 4411: 4408: 4406: 4403: 4399: 4396: 4395: 4394: 4391: 4390: 4388: 4386: 4385:Computer case 4382: 4374: 4371: 4369: 4366: 4365: 4364: 4361: 4357: 4354: 4352: 4349: 4347: 4344: 4343: 4342: 4339: 4337: 4334: 4332: 4329: 4328: 4326: 4324: 4318: 4312: 4311:Graphics card 4309: 4307: 4304: 4302: 4299: 4295: 4292: 4291: 4290: 4287: 4285: 4282: 4278: 4275: 4274: 4273: 4270: 4269: 4267: 4265: 4261: 4249: 4246: 4245: 4244: 4241: 4237: 4234: 4233: 4232: 4229: 4227: 4224: 4222: 4219: 4215: 4212: 4211: 4210: 4209:Graphics card 4207: 4205: 4204:Image scanner 4202: 4200: 4197: 4196: 4194: 4190: 4184: 4181: 4179: 4176: 4174: 4171: 4169: 4166: 4164: 4161: 4157: 4154: 4153: 4152: 4149: 4147: 4144: 4142: 4139: 4137: 4134: 4133: 4131: 4129: 4125: 4122: 4120: 4119:Input devices 4116: 4112: 4109: 4101: 4096: 4094: 4089: 4087: 4082: 4081: 4078: 4066: 4063: 4061: 4058: 4056: 4053: 4051: 4048: 4046: 4043: 4041: 4038: 4036: 4033: 4031: 4028: 4026: 4023: 4022: 4020: 4016: 4009: 4006: 4004: 4001: 3999: 3996: 3994: 3991: 3989: 3986: 3984: 3981: 3979: 3976: 3975: 3973: 3971: 3965: 3955: 3952: 3950: 3947: 3945: 3942: 3940: 3937: 3935: 3932: 3928: 3925: 3923: 3920: 3918: 3915: 3914: 3913: 3910: 3909: 3907: 3905: 3901: 3895: 3892: 3888: 3885: 3883: 3880: 3879: 3878: 3875: 3871: 3868: 3867: 3866: 3863: 3861: 3858: 3856: 3855:Demultiplexer 3853: 3851: 3848: 3847: 3845: 3843: 3839: 3833: 3830: 3828: 3825: 3822: 3820: 3817: 3815: 3812: 3810: 3807: 3805: 3802: 3801: 3799: 3797: 3793: 3787: 3784: 3782: 3779: 3777: 3776:Memory buffer 3774: 3772: 3771:Register file 3769: 3767: 3764: 3762: 3759: 3757: 3754: 3753: 3751: 3749: 3745: 3737: 3734: 3732: 3729: 3728: 3727: 3724: 3722: 3719: 3717: 3714: 3712: 3711:Combinational 3709: 3708: 3706: 3704: 3700: 3694: 3691: 3687: 3684: 3683: 3681: 3678: 3676: 3673: 3671: 3668: 3663: 3660: 3658: 3655: 3654: 3652: 3649: 3646: 3643: 3640: 3637: 3634: 3631: 3630: 3628: 3626: 3620: 3614: 3611: 3609: 3606: 3604: 3601: 3599: 3596: 3592: 3589: 3587: 3584: 3582: 3579: 3577: 3574: 3572: 3569: 3567: 3564: 3563: 3562: 3559: 3557: 3554: 3553: 3551: 3547: 3541: 3538: 3536: 3533: 3531: 3528: 3526: 3523: 3522: 3520: 3516: 3508: 3505: 3504: 3503: 3500: 3498: 3495: 3493: 3490: 3488: 3485: 3483: 3480: 3478: 3475: 3473: 3470: 3468: 3465: 3463: 3460: 3458: 3455: 3453: 3450: 3448: 3445: 3443: 3440: 3438: 3435: 3433: 3430: 3429: 3427: 3425: 3421: 3411: 3408: 3406: 3403: 3401: 3398: 3395: 3392: 3389: 3386: 3383: 3380: 3377: 3374: 3372: 3369: 3366: 3363: 3361: 3358: 3356: 3353: 3352: 3350: 3348: 3342: 3335: 3332: 3330: 3327: 3324: 3321: 3318: 3315: 3314: 3312: 3306: 3300: 3297: 3295: 3292: 3290: 3287: 3285: 3282: 3280: 3277: 3275: 3272: 3270: 3267: 3266: 3264: 3260: 3253: 3250: 3247: 3244: 3241: 3238: 3236: 3233: 3231: 3228: 3226: 3223: 3221: 3218: 3216: 3213: 3211: 3208: 3206: 3203: 3201: 3198: 3196: 3193: 3191: 3188: 3184: 3181: 3180: 3178: 3175: 3172: 3169: 3168: 3166: 3164: 3160: 3154: 3151: 3149: 3146: 3143: 3140: 3137: 3134: 3131: 3128: 3125: 3122: 3119: 3116: 3111: 3108: 3107: 3105: 3102: 3100: 3097: 3096: 3094: 3092: 3086: 3074: 3071: 3070: 3069: 3066: 3064: 3061: 3057: 3054: 3052: 3049: 3047: 3044: 3042: 3039: 3038: 3037: 3034: 3032: 3029: 3028: 3026: 3024: 3020: 3014: 3011: 3009: 3006: 3004: 3001: 2997: 2994: 2992: 2989: 2988: 2987: 2984: 2982: 2979: 2978: 2976: 2974: 2970: 2964: 2961: 2959: 2956: 2952: 2949: 2948: 2947: 2944: 2940: 2937: 2935: 2932: 2931: 2930: 2927: 2923: 2920: 2918: 2915: 2914: 2913: 2910: 2908: 2905: 2901: 2898: 2896: 2893: 2892: 2891: 2888: 2887: 2885: 2881: 2878: 2876: 2872: 2862: 2859: 2857: 2854: 2853: 2851: 2849: 2845: 2839: 2836: 2834: 2831: 2827: 2824: 2822: 2819: 2818: 2817: 2814: 2812: 2811:Scoreboarding 2809: 2808: 2806: 2804: 2800: 2794: 2793:False sharing 2791: 2789: 2786: 2784: 2781: 2779: 2776: 2775: 2773: 2771: 2767: 2761: 2758: 2756: 2753: 2751: 2748: 2747: 2745: 2743: 2739: 2736: 2734: 2730: 2720: 2717: 2715: 2712: 2710: 2707: 2704: 2700: 2697: 2695: 2692: 2690: 2687: 2685: 2682: 2681: 2679: 2677: 2674: 2672: 2669: 2667: 2664: 2662: 2659: 2657: 2654: 2652: 2649: 2647: 2644: 2642: 2639: 2637: 2634: 2632: 2629: 2627: 2624: 2622: 2619: 2615: 2612: 2610: 2607: 2605: 2602: 2601: 2599: 2597: 2594: 2592: 2589: 2587: 2586:Stanford MIPS 2584: 2582: 2579: 2577: 2574: 2572: 2569: 2567: 2564: 2562: 2559: 2558: 2556: 2550: 2542: 2539: 2538: 2537: 2534: 2532: 2529: 2527: 2524: 2522: 2519: 2517: 2514: 2512: 2509: 2507: 2504: 2500: 2497: 2496: 2495: 2492: 2488: 2485: 2484: 2483: 2480: 2478: 2475: 2473: 2470: 2468: 2465: 2463: 2460: 2459: 2457: 2453: 2450: 2448: 2447:architectures 2442: 2436: 2433: 2431: 2428: 2426: 2423: 2421: 2418: 2416: 2415:Heterogeneous 2413: 2409: 2406: 2404: 2401: 2400: 2399: 2396: 2394: 2391: 2387: 2384: 2382: 2379: 2377: 2374: 2372: 2369: 2368: 2367: 2366:Memory access 2364: 2362: 2359: 2357: 2354: 2352: 2349: 2347: 2344: 2340: 2337: 2336: 2335: 2332: 2330: 2327: 2325: 2322: 2321: 2319: 2317: 2313: 2305: 2302: 2300: 2299:Random-access 2297: 2295: 2292: 2290: 2287: 2286: 2285: 2282: 2280: 2279:Stack machine 2277: 2275: 2272: 2268: 2265: 2263: 2260: 2258: 2255: 2253: 2250: 2248: 2245: 2243: 2240: 2238: 2235: 2233: 2230: 2229: 2228: 2225: 2221: 2218: 2216: 2213: 2211: 2208: 2206: 2203: 2201: 2198: 2196: 2195:with datapath 2193: 2192: 2191: 2188: 2186: 2183: 2181: 2178: 2177: 2175: 2173: 2169: 2165: 2158: 2153: 2151: 2146: 2144: 2139: 2138: 2135: 2128: 2122: 2120:0-13-185644-8 2116: 2112: 2111: 2106: 2102: 2098: 2096:0-534-46593-5 2092: 2088: 2087: 2081: 2080: 2076: 2067: 2063: 2059: 2055: 2051: 2047: 2043: 2039: 2035: 2028: 2025: 2020: 2013: 2010: 2005: 2001: 1996: 1991: 1987: 1983: 1978: 1973: 1969: 1965: 1961: 1954: 1951: 1941: 1935: 1931: 1927: 1923: 1919: 1912: 1909: 1905: 1899: 1896: 1884: 1880: 1873: 1870: 1854: 1850: 1843: 1836: 1833: 1828: 1822: 1818: 1817: 1812: 1811:Winfield Hill 1808: 1802: 1799: 1788: 1784: 1778: 1775: 1770: 1764: 1760: 1759: 1751: 1749: 1745: 1740: 1734: 1730: 1726: 1719: 1717: 1713: 1706: 1702: 1699: 1697: 1694: 1692: 1689: 1686: 1683: 1681: 1678: 1677: 1673: 1671: 1669: 1665: 1661: 1657: 1652: 1650: 1646: 1640: 1638: 1634: 1628: 1626: 1622: 1618: 1613: 1610: 1605: 1603: 1599: 1595: 1590: 1588: 1584: 1576: 1493:-- bitwise OR 1108: 1106: 1102: 1098: 1094: 1090: 1086: 1078: 1076: 1069: 1065: 1062: 1059: 1055: 1051: 1050: 1046: 1043: 1042: 1037: 1036: 1035: 1032: 1025: 1023: 1019: 1015: 1011: 1007: 988: 980: 975: 970: 969: 965: 962: 961: 957: 954: 953: 952:Logical shift 949: 946: 942: 941: 937: 936: 935: 932: 921: 917: 914: 910: 907: 906: 902: 898: 895: 891: 888: 887: 883: 879: 876: 872: 869: 868: 864: 860: 857: 853: 850: 849: 845: 842: 839: 838: 829: 824: 823: 819: 816: 815: 811: 808: 807: 803: 800: 799: 795: 794: 790: 785: 782: 779: 776: 773: 770: 767: 766: 762: 759: 756: 753: 752: 748: 745: 742: 739: 738: 734: 733: 729: 727: 721: 719: 716: 712: 707: 705: 701: 696: 694: 690: 683: 679: 675: 670: 663: 661: 654: 652: 650: 646: 638: 637: 633: 630: 629: 625: 622: 619: 616: 613: 610: 606: 603: 602: 601: 595: 590: 588: 586: 581: 577: 569: 567: 565: 561: 557: 553: 549: 545: 537: 535: 532: 528: 524: 516: 514: 512: 508: 503: 501: 497: 493: 489: 485: 482: 478: 474: 470: 467: 466:combinational 463: 459: 455: 443: 438: 436: 431: 429: 424: 423: 421: 420: 414: 411: 409: 406: 404: 401: 399: 396: 388: 387: 381: 378: 376: 373: 365: 364: 351: 348: 345: 342: 334: 333: 327: 324: 322: 319: 317: 314: 312: 309: 307: 304: 302: 299: 297: 294: 286: 285: 279: 276: 274: 271: 263: 262: 256: 253: 251: 248: 246: 243: 241: 238: 236: 233: 225: 224: 218: 215: 213: 210: 208: 205: 197: 196: 190: 187: 179: 178: 172: 169: 167: 164: 162: 159: 157: 154: 152: 149: 147: 144: 142: 139: 137: 134: 132: 129: 127: 124: 122: 119: 111: 110: 107: 99: 98: 92: 89: 87: 84: 82: 79: 77: 74: 72: 69: 67: 66:Binary number 64: 56: 55: 51: 50: 45: 41: 40: 32: 19: 4475:Power MOSFET 4458:Power supply 4427:Data storage 4363:Flash memory 4341:Optical disc 4323:data storage 4065:Chip carrier 4003:Clock gating 3922:Mixed-signal 3819:Write buffer 3796:Control unit 3632: 3608:Clock signal 3347:accelerators 3329:Cypress PSoC 2986:Simultaneous 2803:Out-of-order 2435:Neuromorphic 2316:Architecture 2274:Belt machine 2267:Zeno machine 2200:Hierarchical 2109: 2085: 2041: 2037: 2027: 2012: 1967: 1963: 1953: 1943:, retrieved 1921: 1911: 1898: 1886:. Retrieved 1882: 1872: 1860:. Retrieved 1853:the original 1848: 1835: 1815: 1801: 1790:. Retrieved 1786: 1777: 1757: 1728: 1653: 1641: 1629: 1614: 1606: 1591: 1580: 1406:-- increment 1376:-- decrement 1259:architecture 1187:-- operand B 1157:-- operand A 1082: 1073: 1068:control unit 1063: 1047: 1041:single clock 1038: 1033: 1029: 1020: 1016: 1012: 1008: 986: 984: 976:Applications 966: 958: 950: 938: 927: 820: 814:Exclusive-OR 812: 804: 796: 784:Pass through 783: 777: 771: 763: 757: 749: 743: 735: 725: 715:control unit 708: 704:clock signal 697: 687:An ALU is a 686: 658: 642: 634: 626: 620: 614: 604: 599: 575: 573: 559: 555: 551: 541: 520: 504: 461: 457: 451: 250:Wallace tree 4574:Serial port 4565:(IEEE 1394) 4542:DisplayPort 4532:Thunderbolt 4405:Motherboard 4368:Memory card 4336:Floppy disk 4178:Touchscreen 3850:Multiplexer 3814:Data buffer 3525:Single-core 3497:bit slicing 3355:Coprocessor 3210:Coprocessor 3091:performance 3013:Cooperative 3003:Speculative 2963:Distributed 2922:Superscalar 2907:Instruction 2875:Parallelism 2848:Speculative 2680:System/3x0 2552:Instruction 2329:Von Neumann 2242:Post–Turing 2089:. Thomson. 1862:January 20, 1637:Moore's law 1550:'X' 1346:-- subtract 682:logic gates 290:Bitwise ops 267:Divider (á) 4644:Categories 4321:Removable 4306:Sound card 4236:Sound chip 4231:Sound card 4221:Microphone 4111:components 3970:management 3865:Multiplier 3726:Logic gate 3716:Sequential 3623:Functional 3603:Clock rate 3576:Data cache 3549:Components 3530:Multi-core 3518:Core count 3008:Preemptive 2912:Pipelining 2895:Bit-serial 2838:Wide-issue 2783:Structural 2705:Tilera ISA 2671:MicroBlaze 2641:ETRAX CRIS 2536:Comparison 2381:Load–store 2361:Endianness 1945:2020-09-03 1792:2020-09-03 1707:References 1664:electronic 1656:mechanical 1598:serial ALU 1568:behavioral 1262:behavioral 473:arithmetic 369:Categories 321:Bit shifts 207:Subtractor 156:Ling adder 131:Full adder 126:Half adder 103:Components 76:Logic gate 4584:PS/2 port 4579:Game port 4492:Fax modem 4331:Disk pack 4183:Trackball 4146:Light pen 3904:Circuitry 3824:Microcode 3748:Registers 3591:coherence 3566:CPU cache 3424:Word size 3089:Processor 2733:Execution 2636:DEC Alpha 2614:Power ISA 2430:Cognitive 2237:Universal 2066:202099203 2058:1432-1858 1986:1754-1611 1970:(1): 14. 1670:-based). 1633:Zilog Z80 1625:bit slice 1609:Fairchild 1607:In 1967, 1217:-- opcode 778:Decrement 772:Increment 722:Functions 711:registers 605:Carry-out 564:word size 454:computing 115:Adder (+) 4563:FireWire 4556:Obsolete 4522:Ethernet 4301:Speakers 4199:Keyboard 4173:Touchpad 4108:computer 3842:Datapath 3535:Manycore 3507:variable 3345:Hardware 2981:Temporal 2661:OpenRISC 2356:Cellular 2346:Dataflow 2339:modified 2107:(2006). 2004:30127848 1674:See also 1199:unsigned 992:0x123456 751:Subtract 628:Overflow 621:Negative 548:operands 507:operands 502:(GPUs). 392:See also 338:See also 4612:Related 4515:Current 4356:Blu-ray 4294:Plotter 4289:Printer 4272:Monitor 4248:Softcam 4156:Optical 4018:Related 3949:Quantum 3939:Digital 3934:Boolean 3832:Counter 3731:Quantum 3492:512-bit 3487:256-bit 3482:128-bit 3325:(MPSoC) 3310:on chip 3308:Systems 3126:(FLOPS) 2939:Process 2788:Control 2770:Hazards 2656:Itanium 2651:Unicore 2609:PowerPC 2334:Harvard 2294:Pointer 2289:Counter 2247:Quantum 1995:6092829 1577:History 1097:Verilog 889:Rotate 596:Outputs 517:Signals 481:integer 464:) is a 35:bottom. 4470:MOSFET 4410:Memory 4277:Screen 4243:Webcam 4106:Basic 3954:Switch 3944:Analog 3682:(IMC) 3653:(MMU) 3502:others 3477:64-bit 3472:48-bit 3467:32-bit 3462:24-bit 3457:16-bit 3452:15-bit 3447:12-bit 3284:Mobile 3200:Stream 3195:Barrel 3190:Vector 3179:(GPU) 3138:(SUPS) 3106:(IPC) 2958:Memory 2951:Vector 2934:Thread 2917:Scalar 2719:Others 2666:RISC-V 2631:SuperH 2600:Power 2596:MIPS-X 2571:PDP-11 2420:Fabric 2172:Models 2117:  2093:  2064:  2056:  2002:  1992:  1984:  1936:  1823:  1765:  1735:  1617:Am2901 1544:others 1529:others 1316:-- add 1238:downto 1229:signed 1208:downto 1178:downto 1169:signed 1148:downto 1139:signed 1112:entity 1002:, and 998:(MS), 960:Rotate 846:Right 655:Inputs 636:Parity 591:Status 576:opcode 570:Opcode 60:Theory 4589:eSATA 4507:Ports 4192:Other 4151:Mouse 4010:(PPW) 3968:Power 3860:Adder 3736:Array 3703:Logic 3664:(TLB) 3647:(FPU) 3641:(AGU) 3635:(ALU) 3625:units 3561:Cache 3442:8-bit 3437:4-bit 3432:1-bit 3396:(TPU) 3390:(DSP) 3384:(PPU) 3378:(VPU) 3367:(GPU) 3336:(NoC) 3319:(SoC) 3254:(PoP) 3248:(SiP) 3242:(MCM) 3183:GPGPU 3173:(CPU) 3163:Types 3144:(PPW) 3132:(TPS) 3120:(IPS) 3112:(CPI) 2883:Level 2694:S/390 2689:S/370 2684:S/360 2626:SPARC 2604:POWER 2487:TRIPS 2455:Types 2062:S2CID 1888:7 May 1856:(PDF) 1845:(PDF) 1687:(AGU) 1668:actin 1621:74181 1587:EDVAC 1547:=> 1538:<= 1532:=> 1508:<= 1502:=> 1478:<= 1472:=> 1448:<= 1442:=> 1421:<= 1415:=> 1391:<= 1385:=> 1361:<= 1355:=> 1331:<= 1325:=> 1301:<= 1295:=> 1274:begin 1107:ALU: 1105:8-bit 1089:74181 843:Left 840:Type 678:74181 609:carry 544:buses 456:, an 121:Adder 4547:HDMI 4463:SMPS 4451:SSHD 4445:NVMe 4441:SATA 4420:BIOS 3988:ACPI 3721:Glue 3613:FIFO 3556:Core 3294:ASIP 3235:CPLD 3230:FPOA 3225:FPGA 3220:ASIC 3073:SPMD 3068:MIMD 3063:MISD 3056:SWAR 3036:SIMD 3031:SISD 2946:Data 2929:Task 2900:Word 2646:M32R 2591:MIPS 2554:sets 2521:ZISC 2516:NISC 2511:OISC 2506:MISC 2499:EPIC 2494:VLIW 2482:EDGE 2472:RISC 2467:CISC 2376:HUMA 2371:NUMA 2115:ISBN 2091:ISBN 2054:ISSN 2000:PMID 1982:ISSN 1934:ISBN 1890:2024 1864:2015 1821:ISBN 1763:ISBN 1733:ISBN 1647:and 1619:and 1559:case 1526:when 1496:when 1466:when 1436:when 1409:when 1379:when 1349:when 1319:when 1289:when 1277:case 1121:port 1093:VHDL 1004:0x56 1000:0x34 996:0x12 672:The 615:Zero 574:The 554:and 538:Data 523:nets 475:and 4599:VGA 4594:DVI 4527:USB 4480:VRM 4437:SSD 4432:HDD 4415:RAM 4351:DVD 4214:GPU 3983:APM 3978:PMU 3870:CPU 3827:ROM 3598:Bus 3215:PAL 2890:Bit 2676:LMC 2581:ARM 2576:x86 2566:VAX 2046:doi 1990:PMC 1972:doi 1926:doi 1725:"3" 1662:or 1565:end 1556:end 1514:xor 1454:and 1424:not 1268:alu 1253:alu 1250:end 1244:)); 1226:out 1115:alu 798:AND 737:Add 479:on 462:ALU 452:In 408:AGU 403:GPU 398:FPU 316:XOR 306:AND 301:NOT 4646:: 4443:/ 4346:CD 3917:3D 2060:. 2052:. 2042:28 2040:. 2036:. 1998:. 1988:. 1980:. 1968:12 1966:. 1962:. 1932:, 1881:. 1847:. 1809:; 1785:. 1747:^ 1727:. 1715:^ 1658:, 1589:. 1553:); 1484:or 1283:is 1280:OP 1271:is 1265:of 1214:); 1196:in 1190:OP 1184:); 1166:in 1154:); 1136:in 1118:is 1095:, 806:OR 513:. 311:OR 4447:) 4439:( 4099:e 4092:t 4085:v 2156:e 2149:t 2142:v 2123:. 2099:. 2068:. 2048:: 2021:. 2006:. 1974:: 1928:: 1892:. 1866:. 1829:. 1795:. 1771:. 1741:. 1571:; 1562:; 1541:( 1535:Y 1520:; 1517:B 1511:A 1505:Y 1490:; 1487:B 1481:A 1475:Y 1460:; 1457:B 1451:A 1445:Y 1430:; 1427:A 1418:Y 1403:; 1400:1 1397:+ 1394:A 1388:Y 1373:; 1370:1 1367:- 1364:A 1358:Y 1343:; 1340:B 1337:- 1334:A 1328:Y 1313:; 1310:B 1307:+ 1304:A 1298:Y 1256:; 1241:0 1235:7 1232:( 1223:: 1220:Y 1211:0 1205:2 1202:( 1193:: 1181:0 1175:7 1172:( 1163:: 1160:B 1151:0 1145:7 1142:( 1133:: 1130:A 1124:( 1070:. 1060:. 560:Y 556:B 552:A 550:( 460:( 441:e 434:t 427:v 20:)

Index

Integer arithmetic operation

Binary number
Boolean algebra
Logic gate
Ones' complement number
Two's complement number
Signed number representations
Adder
Half adder
Full adder
Ripple-carry adder
Carry-lookahead adder
Brent–Kung adder
Kogge–Stone adder
Ling adder
Carry-save adder
Carry-select adder
Carry-skip adder
Adder–subtractor
Subtractor
Full subtractor
Half subtractor
Binary multiplier
Multiplication algorithm
Booth's multiplication algorithm
Wallace tree
Dadda multiplier
Binary Divider
Division algorithm

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑