# What is arithmetic logic unit (ALU)

What is ALU? Arithmetic logic unit, one of the components of the processor. In the article we invite you to learn the principles of its operation, the history of creation, the main characteristics of the operations performed, the existing classifications of the ALU.

## Concept definition

The arithmetic logic unit is one of the processor units controlled by the CU (control unit). Its purpose is to perform logical and arithmetic transformations on data operands (operation arguments, information processed by the program). The bit width of the operands in this case is the size or length of the machine word.

Modern multifunctional ALU consists of two parts today:

- Operating device
- Control device. Conducts the secondary decoding of command codes, defines the operation performed in the arithmetic logic unit.

## Set of operations performed

It is important to know what operations the ALU must perform in order to have functional completeness. As a rule, four is enough:

- Recall to device memory to read or write information.
- Decrement / increment.
- Comparison. Here the possibility of conditional transition is realized.
- Stop the operation of the device.

If we turn to the first arithmetic logic devices, we will see that the number of operations they perform was limited to the 16th. Modern ALUs are capable of performing hundreds! By the way, the number of operations today is the most important characteristic of these devices.

## ALU classification

We remember that the arithmetic logic unit is a control device and an operating one. But not all modern and historical ALU are the same. Next we give the most common of their classifications.

By way of presenting information:

- Floating point
- With a fixed comma.

By the way of actions with operands:

- Parallel. In this case, operations on all bits are performed by the ALU at the same time.
- Consecutive. In this case, operations will be performed in turn, sequentially over each of the digits.
- Parallel-sequential. The data word here is divided into syllables. The processing of information in such an ALU (arithmetic logic unit) is conducted in parallel over the syllable digits and successively over the syllables themselves.

On the use of numbering systems:

- Binary.
- Binary decimal.
- Octal.
- Hex and so on.

According to the features of the use of nodes and elements:

- Blocky. To perform individual arithmetic operations, special blocks are introduced into the system of the arithmetic logic unit of the processor. The latter allow for parallel processing of information.
- Conveyor belt What is the difference between this type of ALU? Any operation will be broken down into a sequence of micro-operations. They are performed for certain cycles (equal time intervals) at different levels of such a conveyor. The operation on the flow of operands is thus performed every clock cycle.
- Multifunctional. These are universal ALUs that are capable of performing many operations in one device. However, this requires tuning to perform a specific operation using its code.

According to the time characteristics:

- Synchronous. In such computer arithmetic logic units, each operation will be performed in one clock cycle.
- Asynchronous. Respectively, non-destructible ALU. Provide a high degree of speed, as performed on combinational circuits.

According to the characteristics of the control device:

- Having a firmware control.
- With rigid logic.

## Main functions

The arithmetic logic unit is an integral part of the computer processor. ALU will perform the following functions:

- Binary arithmetic for information in fixed-point formats.
- Binary arithmetic for floating point information.
- Binary decimal arithmetic.
- Logical operations (arithmetic and logical shifts).
- Shipment information.
- Work with character data.
- Work with graphic information.

## Main quantitative characteristics

The components of an arithmetic logic unit (OU and UU) determine the quantitative characteristics of the entire ALU system. In particular, it is the following:

- The execution time of one operation.
- The speed of performing operations in general.
- The number of operations performed.
- Accuracy of the information provided.

## Main quality characteristics

Arithmetic logic unit (ALU) is an integral part of the processor. This determines its most important qualitative characteristics:

- Structural features of the ALU system.
- Data Encoding Techniques
- Formats for the presentation of information - with a floating or fixed point.

## History of

The creator of arithmetic logic devices is considered to be John von Neumann, the developer of ENIAC computers (electronic numerical solvers).

Already in 1945 he published the first scientific papers on his starting invention - the computer EDVAC. The following year, he was already working with his colleagues on the creation of such a device at the Princeton Institute for Advanced Study.

The architecture of this invention ("von Neumann architecture") later became the base, the prototype of the architectures and most of the subsequent computers. In his works, the scientist pointed out the presence of devices that, in his opinion, are mandatory for each computer. Among them was mentioned the ALU. Von Neumann believed that an arithmetic logic device is necessary because it allows the system to perform mathematical basic operations. Like this: addition and subtraction, multiplication and division.

## Internal device ALU

We have already sorted out that conditionally the ALU can be divided into two parts:

- CU (firmware device).Specifies a sequence of commands and microinstructions.
- OU. Here the previously defined sequence of commands and microinstructions is implemented. Operational devices, in turn, are divided according to the type of information being processed, the data processing method, and the logical structure.

While conditionally, the composition of the ALU is also subject to the following gradation:

- Registers. They are used to process data from both passive and RAM.
- Logic commands. They are used to process words in microcommands. The latter, of course, will come from the UU - control device.

The microcommands themselves are divided into two categories:

- They come from an external source in the ALU. Call in the arithmetic logic unit information conversion.
- Generated in the ALU itself. They affect the firmware. Thereby changing the normal, standard order of commands.

## ALU register functions

To have an idea of the work of the ALU, we need to get a closer look at the functions of its registers:

- Pr1. This is a battery or rechargeable batteries. It is considered the main register of the device in which the result of the performed calculations is formed.
- Pr2, Pr3. Registers of operands, depending on the nature of the operation to be performed - a term, a divisor, a factor, and so on.
- Pr4. This is an address register. It remembers (in other cases forms) the address of the operands of the result.
- Pr6. A certain number of index registers. Their contents will be used to generate addresses.
- Pr7. Auxiliary registers. At the request of the developer, they can become batteries, index ones, or even be used to save intermediate results of a calculation.

Now we suggest you to turn to specific algorithms of the ALU.

## Addition operation

Functionally, the arithmetic logic unit will consist of Register 1, Register 2, an adder and a control circuit.

Now we will write out the arithmetic operation on cycles:

- The value of operand No. 1, participating in the operation of addition, enters Register 1 via the code bus.
- The value of operand No. 2, participating in the operation of addition, enters Register 2 via a code bus.
- Accordingly, the instruction bus is sent to the control circuit via the instruction bus for performing this operation.
- Data from the registers go to the adder. Further, the control circuit already gives the command to perform addition.
- The result of the performed operation goes to Register 1.
- The result of the operation of the arithmetic logic unit is then fed to the result block.

## Subtraction operation

Let's look at performing another simple arithmetic operation:

- The value of operand No. 1, which takes part in the subtraction operation, is passed to Register 1 on the code bus.
- The value of operand No. 2, which takes part in the subtraction operation, is passed to Register 2 via a code bus.
- Instructions for the implementation of this algorithm is displayed on the code bus instructions to the control circuit.
- There is a re-formation of a positive number into a negative control scheme.
- The result of such a conversion of the operand goes further into the adder.
- The adder performs the addition of these numbers.
- The result of the operation goes to Register 1.
- The result of the subtraction operation is sent to the result block.

## Operations in the device

And one more topic for last. We must remember that all operations performed in the ALU are logical. They can be divided into the following categories:

- Index arithmetic.
- Decimal arithmetic.
- Special arithmetic.
- Binary arithmetic for fixed-point values.
- Binary, hexadecimal arithmetic for floating point values.
- Over alphanumeric fields.
- Over logical codes.

Arithmetic logic unit - the main part of the processor of any computer. It was developed in the middle of the last century by the famous von Neumann. It is designed to perform simple arithmetic and logical operations in a computer. Today, there are a large number of varieties of ALU, as can be seen from the many presented classifications of these devices.