Basic computer command system. Basic computer architecture: Textbook. Data Transfer Commands


Send your good work in the knowledge base is simple. Use the form below

Students, graduate students, young scientists who use the knowledge base in their studies and work will be very grateful to you.

Posted on http://www.allbest.ru/

Federal Agency for Education

Rosobrazovanie

Arkhangelsk State Technical University

Computing systems and telecommunications

TEST

by discipline

Architecture of computers and systems

on the topic

Computer command system

Shevchenko Oleg Nikolaevich

Faculty of ONOT, course 3, group 7261

Head O.L. Polonchik

Arkhangelsk 2009

  • INTRODUCTION
  • 1. GENERAL CONCEPTS
  • 2. FORMAT OF DATA PROCESSING COMMANDS
  • 3. DIRECT ADDRESSING METHODS
    • 3.3 Autodecrement method
    • 3.4 Index addressing method
  • 5. METHODS OF INDIRECT ADDRESS
  • 6. USING COMMAND COUNTER (PC) AS RON
  • CONCLUSION

INTRODUCTION

Since the mid-60s, the approach to creating computers has changed dramatically. Instead of developing hardware and software, a system began to be designed consisting of a synthesis of hardware and software. At the same time, the concept of interaction came to the fore. This is how a new concept arose - computer architecture.

Computer architecture is usually understood as a set of general principles for the organization of hardware and software and their main characteristics, which determines the functionality of the computer when solving relevant types of problems.

Computer architecture covers a wide range of problems associated with the creation of a complex of hardware and software and taking into account a large number of determining factors. Among these factors, the most important are: cost, scope of application, functionality, ease of use, and hardware is considered one of the main components of the architecture.

1. GENERAL CONCEPTS

Computer commands intended for data processing, in addition to the code of the operation being performed, must in one way or another indicate the location (address) of this data (operands) in the computer memory. In this regard, the operand addressing methods implemented in a particular computer are of great importance, i.e. methods of indicating in a machine instruction the location of operands in computer memory.

Addressing methods can be classified into direct and indirect. With the direct addressing method, the executive address is taken directly from the command or calculated using the value specified in the command and the contents of a register.

The indirect addressing method assumes that the command contains the value of the indirect address, i.e. addresses of the memory cell in which the final execution address is located.

When implementing computer addressing methods, central processor registers (CPU) are significantly used. In the following, we will use the term address register to refer to any CPU register that contains an address.

2. FORMAT OF DATA PROCESSING COMMANDS

The format of a command is a pre-agreed structure of fields in its codes, which allows the computer to recognize the component parts of the code.

Data processing instructions can specify the location of one or more operands used to perform a specific operation. The length of the command depends on the number of address fields. Based on the number of addresses, commands are divided into:

- addressless

- unicast, bicast and more

In this case, a distinction is usually made between the source operand and the destination operand. The source operand is the contents of a memory cell or register that is used when performing the operation specified in the command and which does not change during the execution of the command. The receiver operand is a memory cell or RON, the contents of which can also be used when executing a command and into which the result of the performed operation is placed (result receiver). In the examples below, the source destination is denoted by the letters src or S (source), and the destination operand is dst or D (destination). The command field containing the operation code will be abbreviated as COP.

The format of unicast commands (HALT, CLR...) is as follows:

Figure 1 - Unicast command format

Bits 15-06 contain an opcode that specifies the command to be executed. Bits 05-00 form a six-bit field called the receiver operand addressing field, which in turn consists of two subfields:

1) Bits 02-00 determine one of the eight RONs that this command uses;

2) Bits 05-03 determine how the selected register is used (addressing method). Moreover, bit 03 determines direct or indirect addressing.

Operations on two operands (such as addition, forwarding, comparison) are performed using instructions that specify two addresses. The assignment of bits in the addressing fields of the source and destination operands is determined by the addressing methods and general purpose registers used. The two-address command format is as follows:

Figure 2 - Two-address command format

The source operand addressing field is used to fetch the source operand. The destination operand addressing field is used to fetch the destination operand and store the result. For example, with the ADD A,B command, the contents of cell "A" (source operand) are added to the contents of cell "B" (destination operand). After performing the addition operation, cell “B” will contain the result of the operation, but the contents of cell “A” will not change.

3. DIRECT ADDRESSING METHODS

Figure 3 shows the sequence of operations for executing commands with each of the four direct addressing methods. With the register addressing method, the operand is located in the selected register, which can be used as an accumulator. Since RONs are implemented in hardware within the CPU IC, they are faster than any other processor-controlled memory. This advantage is especially evident when performing operations with variables that need to be accessed frequently.

Figure 3 - direct addressing methods

3.1 Register addressing method

With the register addressing method, the operand is located directly in the register specified in the instruction.

Table 1

Register addressing method

Action: one is added to the contents of R3.

3.2 Auto-incremental addressing method

In the auto-incremental addressing method, the contents of the selected register is the address of the operand. After fetching an operand, the contents of this register are automatically increased to allow further access to the subsequent cell. For byte operations, the increment occurs by 1, for operations with full words - by 2. The contents of R6, R7 are always incremented by 2. The auto-incrementing addressing method is especially convenient for operations with arrays and stacks. With this method, you can select a table element and then increment the pointer to access the next element in the table. Although this method is most useful when working with tables, it can be used as a general method for a variety of purposes.

table 2

Auto-incrementing addressing method

3.3 Autodecrement method

Also used for processing tabulated data. However, unlike the auto-increment method, addressing array cells goes in the opposite direction. With this addressing method, the contents of the selected RON are first reduced (for byte instructions - by one, for instructions with full words - by two), and then used as the execution address.

A combination of auto-increment and auto-decrement addressing methods can be effectively used when working with the stack.

Table 3

Autodecrement addressing method

Action: The contents of R0 are decremented by 2 and used as the execution address. One is added to the operand selected from the cell at this address.

architecture hardware command addressing

Table 3.1

Autodecrement addressing method

3.4 Index addressing method

With the index addressing method, the executive address is determined as the sum of the contents of the selected RON with the index word. This method allows random access to elements of a data structure. The index word is contained in the memory cell next to the command word. With the index addressing method, the contents of a selected register can be used as the basis for calculating a series of addresses.

Table 4

Index addressing method

5. METHODS OF INDIRECT ADDRESS

Four basic methods can be used in combination with indirect addressing. If with the register method the contents of the selected register is the operand, then with the indirect register method this content is the address of the operand. In the other three indirect methods, the computed address allows only the address of the operand to be selected, not the operand itself. These methods are used when accessing tables consisting of addresses rather than operands.

Figure 4 - indirect addressing methods

Table 5

Index addressing method

Action: The contents of the cell whose address is in R2 is used as the address of the operand, the operand is incremented by one, and the contents of R2 is incremented by 2.

Table 5.1

Index addressing method

6. USING COMMAND COUNTER (PC) AS RON

The R7 program counter can be used with all addressing methods used in microcomputers. However, it is most effectively used with only four. These addressing methods received special names: direct, absolute, relative and indirectly relative. The use of these methods makes it possible to build programs whose functionality is not lost when moving them to any memory area. The table below shows the addressing methods using R7. It is necessary to understand that these four methods are similar to those described above, but R7 is used as the RON. Addressing methods using the program counter greatly simplify the processing of data that is not formed into arrays.

Table 6

Addressing methods

Octal code

Binary code

Name

Direct

The operand is selected from the cell next to the command word.

Absolute

The address of the operand is selected from the cell following the command word.

Relative

The operand is selected from a cell whose address is determined as the sum of the contents of R7 and the cell following the command word.

Indirectly relative

From the cell whose address is determined as the sum of the contents of R7 and the cell following the command word, the address of the operand is selected.

6.1

The direct addressing method is symbolically designated #N. It is equivalent to the auto-incrementing addressing method via the R7 program counter. This method saves the programmer time when composing a program due to the ability to place a constant in a memory location after the command word.

Table 7

Direct addressing method

Action: the contents of R0 are added to the number 10. The result is written to R0.

Table 7.1

Direct addressing method

After fetching a command, the contents of R7 (the address of this command) are increased by 2. Thus, code 27 is written in the address field of the source operand, R7 is used as an address pointer when fetching the operand, after which its contents are again increased by 2 to point to the next command.

6.2 Absolute addressing method

The absolute addressing method is symbolically designated @#A. It is equivalent to indirect auto-incrementing addressing via R7. This method is convenient because the address of the operand is its absolute address (that is, it remains constant regardless of the location of the program in memory).

Table 8

Absolute addressing method

6.3 Relative addressing method

The relative addressing method is symbolically designated X(PC) or A, where X is the executive address relative to the program counter. This method is equivalent to index addressing via R7. The index word is stored in the cell next to the command word and, when added to the contents of R7, gives the address of the operand. This method is useful when writing a program that may be located in different memory locations, since the address of the operand is fixed in relation to the contents of R7. When a program needs to be moved in memory, the operand is moved the same number of locations as the instruction itself.

Table 9

Relative addressing method

Action: “1” is added to the operand whose address is determined by adding the contents of R7 and the index word (000054).

Table 9.1

Relative addressing method

6.4 Indirect-relative addressing method

The indirect-relative addressing method is symbolically denoted @X(PC) or @A, where X is the address of the cell containing the execution address relative to the program counter. This method is equivalent to indirect index addressing through the IC.

CONCLUSION

The architecture of a computing facility must be distinguished from its structure. The structure of a computing tool defines its current composition at a certain level of detail and describes the relationships within the tool. The architecture determines the basic rules for the interaction of the component elements of a computing tool, the description of which is carried out to the extent necessary for the formation of the rules for their interaction. It establishes not all connections, but the most necessary ones, which must be known for more competent use of the tool used.

Thus, the computer user does not care on which elements the electronic circuits are made, whether commands are executed by circuit or program, etc. Something else is important: how certain structural features of the computer are related to the capabilities provided to the user, what alternative solutions are implemented when creating the machine and what criteria were used to make decisions, how the characteristics of the devices included in the computer are related to each other, and what effect they have on the general characteristics of the computer. In other words, computer architecture really reflects a range of problems that relate to the general design and construction of computers and their software.

BIBLIOGRAPHY

1. Tanenbaum, Andrew. Computer architecture, St. Petersburg, 2007.

2. A.S. Koval, A.V. Sychev. Architecture of computers and systems, Voronezh 2007

3. Frank T.S. PDP-11: Architecture and Programming, Radio and Communications, 1986.

4. Wikipedia - http://ru.wikipedia.org

Posted on Allbest.ru

Similar documents

    Studying basic PC commands based on MP i286 and their formats. Study of direct ways of addressing data. Developing practical skills in working with teams. Development of a register model for performing data transfer operations. Command implementation program.

    test, added 03/12/2011

    Types of system memory. RAM (random access memory), ROM (read only memory), "non-volatile memory" (CMOS). CPU. Main tires. Address data. The set of all possible commands is the processor instruction system.

    test, added 03/30/2009

    Internal architecture of the Intel 486 microprocessor. Data and command format. General purpose registers. Software model of the FPU device, flag register. Development of the structure and microprogram of a microprocessor, a control machine with rigid logic.

    course work, added 05/27/2013

    A brief overview of Intel processors. Main characteristics of i80286: real addressing mode, protection mode, i80287 coprocessor, i80287 programming conditions. Main characteristics of i80386: 32-bit architecture, addressing methods.

    course work, added 06/23/2007

    Studying the architecture of a personal computer using the example of an Intel microprocessor. General purpose registers. RAM; data and command formats. Transfer instructions with different ways of addressing operands. Structure of a program in assembler.

    course of lectures, added 05/03/2014

    Modeling of given commands, internal functional devices and I/O objects of the microcontroller. Development of a program to demonstrate the joint operation of a microcontroller and a simulated external device. ATMega128 architecture components.

    course work, added 06/12/2013

    Types of commands, assembler syntax, and the opcode by which the command is translated. Commands for calculating and directly transferring data between registers. Field for defining the calculation operation. Program execution sequence control.

    abstract, added 11/13/2009

    Synthesis of the structure of a simple mainline processor with one ALU that executes 8 given instructions. Development of the format and encoding of commands, a block diagram of the processor, functional diagrams of all its blocks as a whole, indicating buses and control signals.

    abstract, added 05/18/2009

    Information system (IS) as a set of interconnected hardware and software designed to automate the accumulation and processing of information. Features of creating the IS "Real Estate Agency": database, technical documentation for it.

    course work, added 08/30/2012

    Mobile robots and complexes based on them. Analytical review of software tools for creating databases and user interfaces. Open Interface and command classification. Development of a hardware complex for generating robot control programs.

An important component of computer architecture is the instruction system. Despite the large number of types of computers, at the lowest (“machine”) level they have much in common. The command system of any computer necessarily contains the following groups of information processing commands.

1. Data transfer (census) commands that copy information from one place to another.

2. Arithmetic operations, to which computer technology actually owes its name. Of course, the number of computational activities in a modern computer has decreased noticeably, but they still play an important role in programs. Note that the basic arithmetic operations usually include addition and subtraction (the latter ultimately most often also reduces to addition in one way or another). As for multiplication and division, in many computers they are performed using special programs.

3. Logical operations that allow the computer to analyze the displayed information. The simplest examples are comparison, as well as the well-known logical operations AND, OR, NOT (inversion). In addition, analysis of individual code bits, their reset and installation are often added to them.

4. Binary code shifts left and right. To prove the importance of this group of commands, it is enough to recall the rule of column multiplication: each subsequent product is written in such a scheme with a shift of one digit to the left. In some special cases, multiplication and division can generally be replaced by a shift (remember that by adding or removing a zero to the right, i.e., actually shifting a decimal number, you can increase or decrease it by 10 times).

5. Commands for input and output of information for exchange with external devices. In some computers, external devices are special service memory addresses, so input and output is carried out using census commands.

6. Control commands that implement nonlinear algorithms. This primarily includes conditional and unconditional jumps, as well as commands for calling a subroutine (jump with return). Some computers have special commands for organizing loops, but this is not necessary: ​​a loop can be reduced to one or another combination of conditional and unconditional transitions.

H Often this same group of commands includes a few operations to control the processor - such as “stop” or NOP (“no operation”). Sometimes they are separated into a special group.

WITH As the complexity of the processor device increases, the number of commands that analyze the state of control bits and act on them also increases. Here, as an example, we can name the processor operating mode bits and the control bits for interrupt mechanisms from external devices.

IN Recently, an increasingly important role in the command set has been played by commands for converting from one data format to another (for example, from 8-bit to 16-bit, etc.), which significantly simplify the processing of data of various types, but in principle can be replaced a sequence of several simpler commands. Considering the command system, one cannot help but mention two modern mutually competing directions in its construction: a computer with a full set of instructions - CISC (Complex Instruction Set Computer) and with a limited set - RISC (Reduced Instruction Set Computer). The division arose due to the fact that most of the time the computer has to execute a small part of its set of instructions, while the rest are used sporadically (in one of the popular articles, this is jokingly formulated in the form of the following visual analogy: “20% of the population drinks 80% of the beer”) Thus, if you significantly limit the set of operations to the simplest and shortest, but carefully optimize them, you will get a fairly efficient and fast RISC machine. True, you will have to pay for the speed by the need to implement “discarded” commands in software, but this is often acceptable: for example, for scientific calculations or computer graphics, speed is much more important than programming problems. Issues related to the instruction system of modern microprocessors will be discussed in more detail later in this chapter.

P To summarize, we once again emphasize that the basic set of commands has changed quite little during the rapid evolution of computers. At the same time, the methods of indicating the address of the location of information in memory have undergone significant changes and deserve special consideration.

An important component of computer architecture is the instruction system. Despite the large number of types of computers, at the lowest (“machine”) level they have much in common. The command system of any computer necessarily contains the following groups of information processing commands.

1. Data transmission commands (census), copying information from one place to another.

2. Arithmetic operations, to which computer technology actually owes its birth. Of course, the share of computational actions in a modern computer has noticeably decreased, but they still play an important role in programs. Note that the basic arithmetic operations usually include addition and subtraction (the latter, inside the processor, most often also comes down to addition in one way or another). As for multiplication and division, in many computers they are performed using special programs.

3. Logical operations, allowing the computer to analyze the information received. After executing such a command, using a conditional jump, the computer is able to select the further course of program execution. The simplest examples of commands of the group under consideration are comparison, as well as the well-known logical operations AND, OR, NOT (inversion), described earlier in paragraph 1.4. In addition, analysis of individual code bits, their reset and installation are often added to them.

4. Shifts binary code left and right. To prove the importance of this group of commands, it is enough to recall the rule of column multiplication: each subsequent product is written in such a scheme with a shift of one digit to the left. In some special cases, multiplication and division can generally be replaced by a shift (remember that by adding or removing a zero to the right, i.e., actually shifting a number, you can increase or decrease it by 10 times).

5. Input and Output Commands information for exchange with external devices. In some computers, external devices are special service memory addresses, so input and output is carried out using census commands.

6. Control commands, implementing nonlinear algorithms. This primarily includes conditional and unconditional jumps, as well as commands for calling a subroutine (jump with return). Some computers have special commands for organizing cycles, but this is not necessary: any the cycle can be reduced to one or another combination of conditional and unconditional transitions.

Often this same group of commands includes processor control operations such as stop or NOP - no operation. Sometimes they are separated into a special group. As the complexity of the processor device increases, the number of such instructions increases.

Any computer command usually consists of two parts - operating room And address. The operating part (otherwise it is called operation code - KOP) indicates what action needs to be performed on the information. The address part describes where the information used is stored and where the result should be placed. Some few commands for controlling the operation of the machine may have no address part, for example, in the stop command; the operating part is always available.

An operation code can be thought of as a certain conventional number in the general list of command systems. Basically, this list is built in accordance with certain internal patterns, although they are not always obvious.

The address part has much greater variety and should be considered in more detail.

First of all, note that commands can be one-, two- and three-address depending on the number of possible operands.

The first computers had the simplest and most intuitive three-address command system. For example: take numbers from memory addresses A1 and A2, add them and place the sum in address A3. If an operation required a smaller number of addresses, then the extra ones were simply not used. Let's say that in the census operation only the source and receiver cells of information A1 and A3 were indicated, and the contents of A2 had no meaning.

The three-address command was easy to decipher and was convenient to use, but as the amount of RAM grew, its length became prohibitively large. Indeed, the length of such a command is the sum of the length of three addresses and the operation code. It follows, for example, that for a modest RAM of 1024 cells, only writing the address part requires 3 * 10 = 30 binary bits, which is not very convenient for technical implementation. Therefore, two-address machines appeared, in which the length of the command was reduced by eliminating the address for recording the result. In such computers, the result of the operation remained in a special register ( adder) and was suitable for use in subsequent calculations. In some machines, the result was written instead of one of the operands.

Further simplification of the command led to the creation of unicast machines. Let us consider the command system of such a computer using a specific simple example. Suppose we need to add the numbers stored in RAM addresses A1 and A2, and place the sum in A3. To solve this problem, a unicast machine will need to run three commands:

  1. extract the contents of cell A1 into the adder;
  2. add the adder with the number from A2;
  3. write the result from the adder to A3.

It might seem that a unicast machine would require three times as many commands to complete a task as a three-address machine. In fact, this is not always the case. Try to plan your own program for calculating the expression Y=(X1+X2)*X3/X4 and you will be surprised to find that you will need 3 three-address commands and only 5 unicast ones. Thus, a unicast machine is in some ways even more efficient, because it does not write unnecessary intermediate results into memory.

For the sake of completeness, it should be said about the possibility of implementing an addressless (zero-address) machine that uses a special way of organizing memory - stack. Understanding the principles of such a machine would require some fairly detailed explanations; At the same time, now addressless computers are practically not used. Therefore, we will limit ourselves to just mentioning the fact that a command system arranged in a similar way was the basis of some programmable microcalculators such as “B3-21” and “B3-34” and the like.

© E.A.Eremin, 1997
From book:
Eremin E.A. How a modern computer works. - Perm: publishing house PRIPIT, 1997. 176 p.

An important component of computer architecture is the instruction system. Despite the large number of types of computers, at the lowest (“machine”) level they have much in common. The command system of any computer necessarily contains the following groups of information processing commands. 1. Data transfer (census) commands that copy information from one place to another. 2. Arithmetic operations, to which computer technology actually owes its name. Of course, the share of computational actions in a modern computer has noticeably decreased, but they still play an important role in programs. Note that the basic arithmetic operations usually include addition and subtraction (the latter ultimately most often also reduces to addition in one way or another). As for multiplication and division, in many computers they are performed using special programs. 3. Logical operations that allow the computer to analyze the information being processed. The simplest examples are comparison, as well as the well-known logical operations AND, OR, NOT (inversion). In addition, analysis of individual code bits, their reset and installation are often added to them. 4. Binary code shifts left and right. To prove the importance of this group of commands, it is enough to recall the rule of column multiplication: each subsequent product is written in such a scheme with a shift of one digit to the left. In some special cases, multiplication and division can generally be replaced by a shift (remember that by adding or removing a zero to the right, i.e., actually shifting a decimal number, you can increase or decrease it by 10 times). 5. Commands for input and output of information for exchange with external devices. In some computers, external devices are special service memory addresses, so input and output is carried out using census commands. 6. Control commands that implement nonlinear algorithms. This primarily includes conditional and unconditional jumps, as well as commands for calling a subroutine (jump with return). Some computers have special commands for organizing loops, but this is not necessary: ​​a loop can be reduced to one or another combination of conditional and unconditional transitions. Often, this same group of commands includes a few operations to control the processor, such as “stop” or NOP (“no operation”). Sometimes they are separated into a special group. As the complexity of the processor device increases, the number of commands that analyze the state of control bits and act on them also increases. Here, as an example, we can name the processor operating mode bits and the control bits for interrupt mechanisms from external devices. Recently, an increasingly important role in the command set is played by commands for converting from one data format to another (for example, from 8-bit to 16-bit, etc.), which significantly simplify the processing of data of various types, but in principle can be replaced by a sequence of several simpler commands. Considering the command system, one cannot help but mention two modern mutually competing directions in its construction: a computer with a full set of commands CISC (Complex Instruction Set Computer) and with a limited set - RISC (Reduced Instruction Set Computer). The division arose due to the fact that most of the time the computer has to execute a small part of its set of instructions, while the rest are used sporadically (one popular article jokingly phrases this in the form of the following visual analogy: “20% of the population drinks 80% of the beer.” ). Thus, if you significantly limit the set of operations to the simplest and shortest, but carefully optimize them, you will get a fairly efficient and fast RISC machine. True, you will have to pay for speed by the need to implement “discarded” commands in software, but often this payment is justified: for example, for scientific calculations or computer graphics, speed is much more important than programming problems. Issues related to the instruction system of modern microprocessors will be discussed in more detail later in this chapter. To summarize, we emphasize once again that the basic set of commands has changed quite little during the rapid evolution of computers. At the same time, the methods of indicating the address of the location of information in memory have undergone significant changes and deserve special consideration. A computer command usually consists of two parts - operational and address. The operational part (otherwise called the operation code - OPC) indicates what action needs to be performed with the information. The address part describes where the information used is stored. Several few commands for controlling the operation of the machine may have no address part, for example, in the stop command; the operating part is always there. An operation code can be thought of as a certain conventional number in the general list of command systems. Basically, this list is built in accordance with certain internal patterns, although they are not always obvious. The address part has much greater variety and should be considered in more detail. First of all, we note that instructions can be one-, two-, or three-address, depending on the number of operands involved in them. The first computers had the simplest and most intuitive three-address command system. For example: take numbers from memory addresses A1 and A2, add them and place the sum in address A3. If an operation required a smaller number of addresses, then the extra ones were simply not used. Let's say that in the census operation only the source and receiver cells of information A1 and A3 were indicated, and the contents of A2 had no meaning. The three-address command was easy to decipher and was convenient to use, but as the amount of RAM grew, its length became prohibitively large. Indeed, the length of the command is the sum of the length of three addresses and the operation code. It follows, for example, that for a modest RAM of 1024 cells, just writing the address part of one command requires 3 * 10 = 30 binary bits, which is not very convenient for technical implementation. Therefore, two-address machines appeared, in which the length of the command was reduced by eliminating the address for recording the result. In such computers, the result of the operation remained in a special register (adder) and was suitable for use in subsequent calculations. In some machines, the result was written instead of one of the operands. Further simplification of the command led to the creation of unicast machines. Let us consider the command system of such a computer using a specific simple example. Suppose we need to add the numbers stored in cells with RAM addresses A1 and A2, and place the sum in the cell with address A3. To solve this problem, a unicast machine will need to execute three commands: extract the contents of cell A1 into the adder; add the adder with the number from A2; write the result from the adder to A3. It might seem that a unicast machine would require three times as many commands to complete a task as a three-address machine. In fact, this is not always the case. Try to plan your own program for calculating the expression A5 = (A1 + A2)*AZ/A4 and you will find that you will need three three-address commands and only five unicast ones. Thus, a unicast machine is in some ways even more efficient, since it does not write unnecessary intermediate results to memory. For the sake of completeness, it should be said about the possibility of implementing an addressless (zero-address) machine that uses a special way of organizing memory - a stack. Understanding the principles of such a machine would require some fairly detailed explanations. Nowadays, addressless computers are practically not used. Therefore, we will limit ourselves to just mentioning the fact that a command system arranged in a similar way was the basis of some programmable microcalculators (for example, such as “BZ-21” and “BZ-34” and the like). Until now, in describing the structure of a machine instruction, we have used the intuitive concept of the address of information. Let us now consider the issue of addressing RAM elements in more detail and strictly. Memory was most simply organized in computers of the first two generations. It consisted of individual cells, the contents of each of which were read or written as a single unit. Each memory cell had its own number, which was called the address. Obviously, the addresses of neighboring RAM cells are consecutive integers, i.e. differ by one. The computers under consideration used data of only one type (real numbers), and their length was equal to the length of the machine instruction and coincided with the capacity of the memory and all other devices of the machine. For example, we point out that the cell of a typical second-generation computer consisted of 36 binary bits. Very often, a program was intended to process, using the same formulas, a certain amount of the contents of sequentially located cells (in high-level languages, such structures were later called arrays). The first two generations of computers provided special mechanisms for cyclic processing of information arrays. For this purpose, in machine instructions, in addition to regular addresses, it was possible to use modifiable addresses in which a special control bit was set to one. When the command was executed, the modified addresses marked in this way were added with the value from special index cells. By changing the contents of the index cells, it was possible to access different elements of the array. We especially emphasize that the formation of the resulting address was carried out in the control unit at the time the command was executed, so the original command in RAM was saved without changes. The described mechanism for modifying addresses significantly simplified the writing of cyclic programs, such as finding the sum of consecutive RAM cells, copying individual memory sections, etc. In third-generation computers, the ideology of memory construction changed significantly: the minimum piece of information for exchange with RAM was set equal to 8 binary digits, i.e. one byte. It has become possible to process several types of data: text characters (1 byte), integers (2 bytes), real numbers of ordinary or double precision (4 or 8 bytes, respectively). In this regard, a new conventional unit of information measurement was introduced - the machine word. It was equal to 4 bytes and corresponded to the length of a standard real number. All amounts of information began to be measured in units that are multiples of a word: double word, half word, etc. Naturally, the address (RAM cell number) in machines with a byte organization began to refer to a separate byte; memory bytes have numbers increasing by one. A word consists of several sequential bytes. As the address of a word, it is convenient to take the address of one of the bytes that form it (usually the low byte, which has the smallest number, is used). Thus, the addresses of words no longer change after one; their increment depends on the length of the machine word in bytes and is equal to four. The size of the machine word was apparently chosen based on the formats of the information being processed, and not in connection with the bit capacity of any devices. To confirm this, here are a few facts about typical third-generation computers from the EC family. The arithmetic-logical unit of the EC-1022 model had 16 binary bits, the EC-1033 had 32 bits, and the EC-1050 had 64 bits. At the same time, for one access to RAM in the ES-1022 and ES-1033, 4 bytes were selected, in the ES-1050 - 8 bytes (and in the ES-1045 - 16 bytes). Thus, the variety of numbers indicates that 32 bits (4 bytes) were not some technically allocated amount of information. In third-generation machines, several more features appeared: different lengths of instructions depending on the method of addressing data, the presence of a special ultra-random register memory, calculation of the effective RAM address as the sum of several registers, etc. All this was further developed in fourth-generation computers, for which the microprocessor capacity became one of the most important characteristics. We will postpone consideration of the structural features of fourth-generation computer memory until the next section.

Alexander Savvateev

General information

The M-3 computer was developed under the leadership of I. S. Bruk. It belongs to the class of small universal machines.

The machine performs operations on 31-bit fixed-point numbers at a rate of 30 biaddress operations per second. The RAM is implemented on a magnetic drum and has a capacity of 2048 numbers. If memory on magnetic cores is connected to a computer, performance increases to 1500 operations per second.

The M-3 does not have external memory devices.

Punched tape and teletype are used for input and output of information.

The machine has 770 vacuum tubes and 3000 semiconductor diodes and consumes 10 kW of electricity. To accommodate it, 30-40 m2 is enough.

Memory and information structure

The RAM of the M-3 computer has a capacity of 2048 31-bit numbers or commands. All memory cells are equal to each other. To access memory cells, 11-bit addresses are used. The bits of memory cells are numbered from left to right; The most significant (leftmost) digit is number 0.

Binary fixed-point numbers contain the sign of the number in the zeroth digit, and the remaining 30 digits are occupied by the absolute value of the number. Thus, M-3 uses direct rather than two's complement code to represent negative numbers. It is generally accepted that the integer part of a number is equal to zero, and digits 1-30 contain its fractional part.

Decimal numbers also have a zero integer part. Their sign is placed in the zero digit, and in digits 1-28 there are seven notebooks encoding the decimal digits of the fractional part of the number. Bits 29-30 are not used.

Information input/output

Punched tape is used to enter the program into the computer memory. For each cell on the punched tape, its address, the end-of-address sign, the value of this cell and the end-of-value sign are printed. At the end of the program a special sign appears. The program is entered by pressing the corresponding button on the computer control panel.

Punched paper tape is also used to enter data, but it contains a continuous array of decimal numbers without any additional codes. Their input is provided by the program using a special command.

The information is output to a printing device such as a teletype.

Command system

The M-3 computer is a two-address machine. Each command occupies one memory cell. Command code bit 0 is not used, bits 1-6 contain the operation code, bits 7-18 are the address of the first operand, bits 19-30 are the address of the second operand and the result.

The arithmetic device of the M-3 computer has an adder into which the result of the last performed operation is entered. The contents of the adder can be used in the next operation.

When a negative result is received, including a negative zero, the sign w = 1 is formed. When a positive result is obtained, the sign w = 0.

All commands can be divided into two groups: arithmetic-logical and control commands.

The arithmetic-logical instruction code has the form xy, Where x- operation modifier (one octal digit); y- operation code (second octal digit). Possible values ​​of codes and modifiers of arithmetic-logical operations are given in the following tables. 1-2.

Table 1

table 2

In table 1 a And b mean the memory cells specified by the first and second addresses in the instruction code, respectively; r- adder register.

Control commands have no modifications, so their code always takes two octal digits. The list of control commands is given in table. 3.

Table 3

Operation code Team name Actions performed on command
07
27
Entering numbers from punched tape One number from the punched tape is entered into the cell b. It is not entered into the adder. Cell address a is zero
05
15
Carrying a number Number from cell a is transferred to the cell b
45
55
Transferring numbers and printing Number from cell a is transferred to the cell b and simultaneously printed on a teletype
24 Unconditional jump to first address a
b
64 Unconditional jump to first address and print Control is transferred to the cell with the address a
and at the same time the contents of the adder are written to the cell with the address b and printed on a teletype
74 Unconditional jump to the second address Control is transferred to the command with the address b. Address a in the command code is zero. The sign bit of the adder is cleared, i.e. the absolute value of its original value remains in the adder
34 Conditional jump If w =1, control is transferred to the cell with the address a, and if w =0 - to the cell with the address b
37 Stop The car stops. The control panel is issued a. The contents of the adder do not change. Address field b in the command code is equal to zero
Editor's Choice
Fundamental to preschool Waldorf pedagogy is the position that childhood is a unique period of a person’s life, before...

Studying at school is not very easy for all children. In addition, some students relax during the school year, and closer to it...

Not so long ago, the interests of those who are now considered the older generation were strikingly different from what modern people are interested in...

After a divorce, the life of the spouses changes dramatically. What seemed ordinary and natural yesterday has lost its meaning today...
1. Introduce into the Regulations on the presentation by citizens applying for positions in the federal public service, and...
On October 22, Decree of the President of the Republic of Belarus dated September 19, 2017 No. 337 “On regulation of the activities of physical...
Tea is the most popular non-alcoholic drink that has become part of our everyday life. For some countries, tea ceremonies are...
Title page of the abstract according to GOST 2018-2019. (sample) Formatting a table of contents for an abstract according to GOST 7.32-2001 When reading the table of contents...
PRICING AND STANDARDS IN CONSTRUCTION PROJECT MINISTRY OF REGIONAL DEVELOPMENT OF THE RUSSIAN FEDERATION METHODOLOGICAL...