f computer architecture by von Neumann (VN), 6 the core of a standard computer is made of a memory, and of an algorithmic and logical unit (ALU), as illustrated in Fig. 15.2. It is seen that the VN architecture is completed with a control unit and the interfaces enabling the computer to communicate with the outside word and its peripherals. The memory is a device containing the instructions to initialize and run the computer with its interfaces and peripherals. It includes the program to be performed, in the form of a stack of instructions, and the data before, during, and after 6 See, for instance, http://en.wikipedia.org/wiki/Von_Neumann_architecture 15.2 From computer architecture to logic gates computation. As the figure shows, the ALU works with two dedicated memory buffers, called registers, or sometimes "accumulators." The two registers (A and B) are input from the memory with binary data words aja2, ak and b1 b2 bk of identical size, typically k =32 bits, 64 bits, and, today, 128 bits. This size is the same as that of the cells in the memory, and also of the address used to index the memory cells (the memory, thus, has 2k different addresses). Registers are literally used as scratchpads for the ALU to perform various logical operations between the two data words {a}} and {bi}, such as addition, subtraction, multiplication, division, comparison, complementation, rotational permutation, overflow test, and zero-divide test, for the main ones. These operations are performed by an internal circuit of the ALU, which is formed of a complex network of logic gates, whose functions can be switched at will through a set of control bits. A basic example of a four-bit ALU circuit is provided later in this chapter (one may yet have a look at Fig. 15.6 for a flavor), which will come after I have described the principles of the elementary logic gates themselves. All logical operations between the register data and the ALU are instructed from a "micromachine" program, which decodes the higher-level instructions fed by the