Computer lessons

The principle of program control and the von Neumann machine. John von Neumann's principles

The construction of the vast majority of computers is based on the following general principles, formulated in 1945 by the American scientist John von Neumann (Figure 8.5). These principles were first published in his proposals for the EDVAC machine. This computer was one of the first stored program machines, i.e. with a program stored in the machine's memory, rather than read from a punched card or other similar device.

Figure 9.5 - John von Neumann, 1945

1. Program control principle . It follows from it that the program consists of a set of commands that are executed by the processor automatically one after another in a certain sequence.

A program is retrieved from memory using a program counter. This processor register sequentially increases the address of the next instruction stored in it by the instruction length.

And since the program commands are located in memory one after another, a chain of commands is thereby organized from sequentially located memory cells.

If, after executing a command, it is necessary to move not to the next one, but to some other memory cell, conditional or unconditional jump commands are used, which enter the number of the memory cell containing the next command into the command counter. Fetching commands from memory stops after reaching and executing the “stop” command.

Thus, the processor executes the program automatically, without human intervention.

According to John von Neumann, a computer should consist of a central arithmetic-logical unit, a central control unit, a storage device, and an information input/output device. A computer, in his opinion, should work with binary numbers and be electronic (not electrical); perform operations sequentially.

All calculations prescribed by the algorithm for solving the problem must be presented in the form of a program consisting of a sequence of control words-commands. Each command contains instructions for the specific operation being performed, the location (addresses) of the operands and a number of service characteristics. Operands are variables whose values ​​are involved in data transformation operations. A list (array) of all variables (input data, intermediate values ​​and calculation results) is another integral element of any program.

To access programs, instructions and operands, their addresses are used. The addresses are the numbers of computer memory cells intended for storing objects. Information (command and data: numeric, text, graphic, etc.) is encoded with binary digits 0 and 1.



Therefore, various types of information located in computer memory are practically indistinguishable; their identification is possible only when the program is executed, according to its logic, in context.

2. The principle of memory homogeneity . Programs and data are stored in the same memory. Therefore, the computer does not distinguish between what is stored in a given memory cell - a number, text or command. You can perform the same actions on commands as on data. This opens up a whole range of possibilities. For example, a program can also be processed during its execution, which allows you to set rules for obtaining some of its parts in the program itself (this is how the execution of cycles and subroutines is organized in the program). Moreover, commands from one program can be obtained as results from the execution of another program. Translation methods are based on this principle - translating program text from a high-level programming language into the language of a specific machine.

3. Targeting principle . Structurally, main memory consists of renumbered cells; Any cell is available to the processor at any time. This implies the ability to name memory areas so that the values ​​stored in them can later be accessed or changed during program execution using the assigned names.

Von Neumann's principles can be practically implemented in many different ways. Here we present two of them: a computer with a bus and a channel organization. Before describing the principles of computer operation, we introduce several definitions.

Computer architecture is called its description at some general level, including a description of user programming capabilities, command systems, addressing systems, memory organization, etc. The architecture determines the principles of operation, information connections and interconnection of the main logical nodes of a computer: processor, RAM, external storage and peripheral devices. The common architecture of different computers ensures their compatibility from the user's point of view.

Computer structure is a set of its functional elements and connections between them. The elements can be a wide variety of devices - from the main logical nodes of a computer to the simplest circuits. The structure of a computer is graphically represented in the form of block diagrams, with the help of which you can describe the computer at any level of detail.

The term is very often used computer configuration , which is understood as the layout of a computing device with a clear definition of the nature, quantity, relationships and main characteristics of its functional elements. The term " computer organization» determines how the computer’s capabilities are implemented,

Team the collection of information necessary for the processor to perform a specific action when executing a program.

The team consists of operation code, containing an indication of the operation to be performed and several address fields, containing an indication of the location of the instruction operands.

The method of calculating an address from the information contained in the address field of a command is called addressing mode. The set of commands implemented in a given computer forms its command system.

Thuring machine

Turing machine (MT)- abstract performer (abstract computing machine). It was proposed by Alan Turing in 1936 to formalize the concept of an algorithm.

A Turing machine is an extension of a finite state machine and, according to the Church-Turing thesis, capable of imitating all performers(by specifying transition rules) that somehow implement the step-by-step calculation process, in which each calculation step is quite elementary.

The structure of a Turing machine[

The Turing machine includes an unlimited in both directions ribbon(Turing machines are possible that have several infinite tapes), divided into cells, and control device(also called read-write head(GZCH)), capable of being in one of set of states. The number of possible states of the control device is finite and precisely specified.

The control device can move left and right along the tape, read and write characters of some finite alphabet into cells. Stands out special empty a symbol that fills all the cells of the tape, except those of them (the final number) on which the input data is written.

The control device operates according to transition rules, which represent the algorithm, realizable this Turing machine. Each transition rule instructs the machine, depending on the current state and the symbol observed in the current cell, to write a new symbol into this cell, move to a new state and move one cell to the left or right. Some Turing machine states can be labeled as terminal, and going to any of them means the end of the work, stopping the algorithm.

A Turing machine is called deterministic, if each combination of state and ribbon symbol in the table corresponds to at most one rule. If there is a "ribbon symbol - state" pair for which there are 2 or more instructions, such a Turing machine is called non-deterministic.

Description of the Turing machine[

A specific Turing machine is defined by listing the elements of the set of letters of the alphabet A, the set of states Q, and the set of rules by which the machine operates. They have the form: q i a j →q i1 a j1 d k (if the head is in the state q i, and the letter a j is written in the observed cell, then the head goes to the state q i1, a j1 is written in the cell instead of a j, the head makes a movement d k, which has three options: one cell to the left (L), one cell to the right (R), stay in place (N)). For every possible configuration there is exactly one rule (for a non-deterministic Turing machine there can be more rules). There are no rules only for the final state, once in which the car stops. In addition, you must specify the final and initial states, the initial configuration on the tape, and the location of the machine head.

Example of a Turing machine[

Let's give an example of MT for multiplying numbers in the unary number system. The entry of the rule “q i a j →q i1 a j1 R/L/N” should be understood as follows: q i is the state in which this rule is executed, a j is the data in the cell in which the head is located, q i1 is the state to go to, a j1 - what needs to be written in the cell, R/L/N - command to move.

Computer architecture by John von Neumann

Von Neumann architecture- a well-known principle of joint storage of commands and data in computer memory. Computing systems of this kind are often referred to as “von Neumann machines,” but the correspondence of these concepts is not always unambiguous. In general, when people talk about von Neumann architecture, they mean the principle of storing data and instructions in one memory.

Von Neumann principles

Von Neumann's principles[

The principle of memory homogeneity

Commands and data are stored in the same memory and are externally indistinguishable in memory. They can only be recognized by the method of use; that is, the same value in a memory cell can be used as data, as a command, and as an address, depending only on the way it is accessed. This allows you to perform the same operations on commands as on numbers, and, accordingly, opens up a number of possibilities. Thus, by cyclically changing the address part of the command, it is possible to access successive elements of the data array. This technique is called command modification and is not recommended from the standpoint of modern programming. More useful is another consequence of the principle of homogeneity, when instructions from one program can be obtained as a result of the execution of another program. This possibility underlies translation - the translation of program text from a high-level language into the language of a specific computer.

Targeting principle

Structurally, the main memory consists of numbered cells, and any cell is available to the processor at any time. Binary codes of commands and data are divided into units of information called words and stored in memory cells, and to access them the numbers of the corresponding cells - addresses are used.

Program control principle

All calculations provided for by the algorithm for solving the problem must be presented in the form of a program consisting of a sequence of control words - commands. Each command prescribes some operation from a set of operations implemented by the computer. Program commands are stored in sequential memory cells of the computer and are executed in a natural sequence, that is, in the order of their position in the program. If necessary, using special commands, this sequence can be changed. The decision to change the order of execution of program commands is made either based on an analysis of the results of previous calculations, or unconditionally.

Processor types

Microprocessor- this is a device that is one or more large integrated circuits (LSI) that perform the functions of a computer processor. A classic computing device consists of an arithmetic unit (AU), a control device (CU), a storage device (SU) and an input-output device (I/O) ).

IntelCeleron 400 Socket 370 in a plastic PPGA case, top view.

There are processors of various architectures.

CISC(eng. ComplexInstructionSetComputing) is a processor design concept that is characterized by the following set of properties:

· a large number of commands of different formats and lengths;

· introduction of a large number of different addressing modes;

· has complex instruction coding.

A CISC processor has to deal with more complex instructions of unequal length. A single CISC instruction can execute faster, but processing multiple CISC instructions in parallel is more difficult.

Facilitating debugging of programs in assembler entails cluttering the microprocessor unit with nodes. To improve performance, the clock frequency and degree of integration must be increased, which necessitates improved technology and, as a result, more expensive production.

Advantages of CISC architecture[show]

Disadvantages of CISC architecture[show]

RISC(Reduced Instruction Set Computing). Processor with a reduced instruction set. The command system is simplified. All commands have the same format with simple encoding. Memory is accessed using load and write commands; the remaining commands are of the register-register type. The command entering the CPU is already divided into fields and does not require additional decryption.

Part of the crystal is freed up to accommodate additional components. The degree of integration is lower than in the previous architectural variant, so lower clock speeds are allowed for high performance. The command clutters up the RAM less, the CPU is cheaper. These architectures are not software compatible. Debugging RISC programs is more difficult. This technology can be implemented in software compatible with CISC technology (for example, superscalar technology).

Because RISC instructions are simple, fewer logic gates are needed to execute them, which ultimately reduces the cost of the processor. But most software today is written and compiled specifically for Intel CISC processors. To use the RISC architecture, current programs must be recompiled and sometimes rewritten.

Clock frequency

Clock frequency is an indicator of the speed at which commands are executed by the central processor.
Tact is the period of time required to perform an elementary operation.

In the recent past, the clock speed of a central processor was identified directly with its performance, that is, the higher the clock speed of the CPU, the more productive it is. In practice, we have a situation where processors with different frequencies have the same performance, because they can execute a different number of instructions in one clock cycle (depending on the core design, bus bandwidth, cache memory).

The processor clock speed is proportional to the system bus frequency ( see below).

Bit depth

Processor capacity is a value that determines the amount of information that the central processor is capable of processing in one clock cycle.

For example, if the processor is 16-bit, this means that it is capable of processing 16 bits of information in one clock cycle.

I think everyone understands that the higher the processor bit depth, the larger volumes of information it can process.

Typically, the higher the processor capacity, the higher its performance.

Currently, 32- and 64-bit processors are used. The size of the processor does not mean that it is obliged to execute commands with the same bit size.

Cache memory

First of all, let's answer the question, what is cache memory?

Cache memory is a high-speed computer memory designed for temporary storage of information (code of executable programs and data) needed by the central processor.

What data is stored in cache memory?

Most frequently used.

What is the purpose of cache memory?

The fact is that RAM performance is much lower compared to CPU performance. It turns out that the processor is waiting for data to arrive from RAM - which reduces the performance of the processor, and therefore the performance of the entire system. Cache memory reduces processor latency by storing data and code of executable programs that were accessed most frequently by the processor (the difference between cache memory and computer RAM is that the speed of cache memory is tens of times higher).

Cache memory, like regular memory, has a capacity. The higher the cache memory capacity, the larger volumes of data it can work with.

There are three levels of cache memory: cache memory first (L1), second (L2) and third (L3). The first two levels are most often used in modern computers.

Let's take a closer look at all three levels of cache memory.

First cache level is the fastest and most expensive memory.

L1 cache is located on the same chip as the processor and operates at the CPU frequency (hence the fastest performance) and is used directly by the processor core.

The capacity of the first level cache is small (due to its high cost) and is measured in kilobytes (usually no more than 128 KB).

L2 cache is a high-speed memory that performs the same functions as the L1 cache. The difference between L1 and L2 is that the latter has lower speed but larger capacity (from 128 KB to 12 MB), which is very useful for performing resource-intensive tasks.

L3 cache located on the motherboard. L3 is significantly slower than L1 and L2, but faster than RAM. It is clear that the volume of L3 is greater than the volume of L1 and L2. Level 3 cache is found in very powerful computers.

Number of Cores

Modern processor manufacturing technologies make it possible to place more than one core in one package. The presence of several cores significantly increases the performance of the processor, but this does not mean that the presence n cores gives increased performance in n once. In addition, the problem with multi-core processors is that today there are relatively few programs written taking into account the presence of several cores in the processor.

The multi-core processor, first of all, allows you to implement the multitasking function: distributing the work of applications between the processor cores. This means that each individual core runs its own application.

Motherboard structure

Before choosing a motherboard, you need to at least superficially consider its structure. Although it is worth noting here that the location of the sockets and other parts of the motherboard do not play a special role.

The first thing you should pay attention to is the processor socket. This is a small square recess with a fastener.

For those who are familiar with the term “overlocking” (overclocking a computer), you should pay attention to the presence of a double radiator. Often motherboards do not have a double heatsink. Therefore, for those who intend to overclock their computer in the future, it is advisable to ensure that this element is present on the board.

Elongated PCI-Express slots are designed for video cards, TV tuners, audio and network cards. Video cards require high bandwidth and use PCI-Express X16 connectors. For other adapters, PCI-Express X1 connectors are used.

Expert advice!PCI slots with different bandwidths look almost the same. It is worth looking especially carefully at the connectors and reading the labels underneath them to avoid sudden disappointments at home when installing video cards.

Smaller connectors are intended for RAM sticks. They are usually colored black or blue.

The board's chipset is usually hidden under the heatsink. This element is responsible for the joint operation of the processor and other parts of the system unit.

The small square connectors on the edge of the board are used to connect the hard drive. On the other side there are connectors for input and output devices (USB, mouse, keyboard, etc.).

Manufacturer

Many companies produce motherboards. It is almost impossible to single out the best or worst of them. Any company's payment can be called high-quality. Often even unknown manufacturers offer good products.

The secret is that all boards are equipped with chipsets from two companies: AMD and Intel. Moreover, the differences between the chipsets are insignificant and play a role only when solving highly specialized problems.

Form factor

In the case of motherboards, size matters. The standard ATX form factor is found in most home computers. The large size, and, consequently, the presence of a wide range of slots, allows you to improve the basic characteristics of the computer.

The smaller mATX version is less common. Possibilities for improvement are limited.

There is also mITX. This form factor is found in budget office computers. Improving performance is either impossible or makes no sense.

Often processors and boards are sold as a set. However, if the processor was purchased previously, it is important to ensure that it is compatible with the board. By looking at the socket, the compatibility of the processor and motherboard can be determined instantly.

Chipset

The connecting link of all components of the system is the chipset. Chipsets are manufactured by two companies: Intel and AMD. There is not much difference between them. At least for the average user.

Standard chipsets consist of a north and south bridge. The newest Intel models consist only of northern. This was not done for the purpose of saving money. This factor does not in any way reduce the performance of the chipset.

The most modern Intel chipsets consist of a single bridge, since most of the controllers are now located in the processor, including the DD3 RAM controller, PCI-Express 3.0 and some others.

AMD analogues are built on a traditional two-bridge design. For example, the 900 series is equipped with a southbridge SB950 and a northbridge 990FX (990X, 970).

When choosing a chipset, you should start from the capabilities of the north bridge. Northbridge 990FX can support simultaneous operation of 4 video cards in CrossFire mode. In most cases, such power is excessive. But for fans of heavy games or those who work with demanding graphics editors, this chipset will be most suitable.

The slightly stripped-down version of the 990X can still support two video cards at the same time, but the 970 model works exclusively with one video card.

Motherboard Layout

· data processing subsystem;

· power supply subsystem;

· auxiliary (service) blocks and units.

The main components of the motherboard data processing subsystem are shown in Fig. 1.3.14.

1 – processor socket; 2 – front tire; 3 – north bridge; 4 – clock generator; 5 – memory bus; 6 – RAM connectors; 7 – IDE (ATA) connectors; 8 – SATA connectors; 9 – south bridge; 10 – IEEE 1394 connectors; 11 – USB connectors; 12 – Ethernet network connector; 13 – audio connectors; 14 – LPC bus; 15 – Super I/O controller; 16 – PS/2 port;

17 – parallel port; 18 – serial ports; 19 – Floppy Disk connector;

20 – BIOS; 21 – PCI bus; 22 – PCI connectors; 23 – AGP or PCI Express connectors;

24 – internal bus; 25 – AGP/PCI Express bus; 26 – VGA connector

FPM (Fast Page Mode) is a type of dynamic memory.
Its name corresponds to the principle of operation, since the module allows faster access to data that is on the same page as the data transferred during the previous cycle.
These modules were used on most 486-based computers and early Pentium-based systems around 1995.

EDO (Extended Data Out) modules appeared in 1995 as a new type of memory for computers with Pentium processors.
This is a modified version of FPM.
Unlike its predecessors, EDO begins fetching the next block of memory at the same time it sends the previous block to the CPU.

SDRAM (Synchronous DRAM) is a type of random access memory that works so fast that it can be synchronized with the processor frequency, excluding standby modes.
The microcircuits are divided into two blocks of cells so that while accessing a bit in one block, preparations are in progress for accessing a bit in another block.
If the time to access the first piece of information was 60 ns, all subsequent intervals were reduced to 10 ns.
Starting in 1996, most Intel chipsets began to support this type of memory module, making it very popular until 2001.

SDRAM can operate at 133 MHz, which is almost three times faster than FPM and twice as fast as EDO.
Most computers with Pentium and Celeron processors released in 1999 used this type of memory.

DDR (Double Data Rate) was a development of SDRAM.
This type of memory module first appeared on the market in 2001.
The main difference between DDR and SDRAM is that instead of doubling the clock speed to speed things up, these modules transfer data twice per clock cycle.
Now this is the main memory standard, but it is already beginning to give way to DDR2.

DDR2 (Double Data Rate 2) is a newer variant of DDR that should theoretically be twice as fast.
DDR2 memory first appeared in 2003, and chipsets supporting it appeared in mid-2004.
This memory, like DDR, transfers two sets of data per clock cycle.
The main difference between DDR2 and DDR is the ability to operate at significantly higher clock speeds, thanks to improvements in design.
But the modified operating scheme, which makes it possible to achieve high clock frequencies, at the same time increases delays when working with memory.

DDR3 SDRAM (double data rate synchronous dynamic random access memory, third generation) is a type of random access memory used in computing as RAM and video memory.
It replaced DDR2 SDRAM memory.

DDR3 has a 40% reduction in energy consumption compared to DDR2 modules, which is due to the lower (1.5 V, compared to 1.8 V for DDR2 and 2.5 V for DDR) supply voltage of the memory cells.
Reducing the supply voltage is achieved through the use of a 90-nm (initially, later 65-, 50-, 40-nm) process technology in the production of microcircuits and the use of Dual-gate transistors (which helps reduce leakage currents).

DIMMs with DDR3 memory are not mechanically compatible with the same DDR2 memory modules (the key is located in a different location), so DDR2 cannot be installed in DDR3 slots (this is done to prevent the mistaken installation of some modules instead of others - these types of memory are not the same according to electrical parameters).

RAMBUS (RIMM)

RAMBUS (RIMM) is a type of memory that appeared on the market in 1999.
It is based on traditional DRAM but with a radically changed architecture.
The RAMBUS design makes memory access more intelligent, allowing pre-access to data while slightly offloading the CPU.
The main idea used in these memory modules is to receive data in small packets but at a very high clock speed.
For example, SDRAM can transfer 64 bits of information at 100 MHz, and RAMBUS can transfer 16 bits at 800 MHz.
These modules did not become successful as Intel had many problems with their implementation.
RDRAM modules appeared in the Sony Playstation 2 and Nintendo 64 game consoles.

RAM stands for Random Access Memory - memory that is accessed by address. Sequentially accessed addresses can take on any value, so any address (or "cell") can be accessed independently.

Statistical memory is memory built from static switches. It stores information as long as power is supplied. Typically, at least six transistors are required to store one bit in an SRAM circuit. SRAM is used in small systems (up to several hundred KB of RAM) and is used where access speed is critical (like cache inside processors or on motherboards).

Dynamic memory (DRAM) originated in the early 70s. It is based on capacitive elements. We can think of DRAM as a series of capacitors controlled by switching transistors. Only one "capacitor transistor" is needed to store one bit, so DRAM has more capacity than SRAM (and is cheaper).
DRAM is organized as a rectangular array of cells. To access a cell, we need to select the row and column in which that cell is located. Typically this is implemented in such a way that the high part of the address points to a row, and the low part of the address points to a cell in the row ("column"). Historically (due to slow speeds and small IC packets in the early 70s), the address was supplied to the DRAM chip in two phases - a row address with a column address on the same lines. First, the chip receives the row address and then after a few nanoseconds the column address is transmitted to the same line. The chip reads the data and transmits it to the output. During the write cycle, the data is received by the chip along with the column address. Several control lines are used to control the chip. RAS (Row Address Strobe) signals which transmit the row address and also activate the entire chip CAS (Column Address Strobe) signals that transmit the column address WE (Write Enable) indicating that the access performed is a write access OE (Output Enable) opens the buffers used to transfer data from the memory chip to the “host” (processor) .
FP DRAM

Since each access to classic DRAM requires the transfer of two addresses, it was too slow for 25 MHz machines. FP (Fast Page) DRAM is a variant of classic DRAM in which there is no need to transfer the row address in each access cycle. As long as the RAS line is active, the row remains selected and individual cells from that row can be selected by passing only the column address. So, while the memory cell remains the same, the access time is less because only one address transfer phase is needed in most cases.

EDO (Extended Data Out) DRAM is a variant of FP DRAM. In FP DRAM, the column address must remain correct during the entire data transfer period. Data buffers are activated only during the column address transmission cycle, by the CAS signal activity level signal. Data must be read from the memory data bus before the new column address is received on the chip. EDO memory stores data in output buffers after the CAS signal returns to the inactive state and the column address is removed. The address of the next column can be transmitted in parallel with reading the data. This provides the ability to use partial matching when reading. While EDO RAM memory cells are the same speed as FP DRAM, sequential access can be faster. So EDO should be something faster than FP, especially for massive access (like in graphics applications).

Video RAM can be based on any of the DRAM architectures listed above. In addition to the "normal" access mechanism described below, VRAM has one or two special serial ports. VRAM is often referred to as dual-port or triple-port memory. Serial ports contain registers that can store the contents of a whole series. It is possible to transfer data from an entire row of a memory array to a register (or vice versa) in a single access cycle. The data can then be read from or written to the serial register in chunks of any length. Because a register is made up of fast, static cells, access to it is very fast, usually several times faster than a memory array. In most typical applications, VRAM is used as a screen memory buffer. The parallel port (standard interface) is used by the processor, and the serial port is used to transmit data about points on the display (or read data from a video source).

WRAM is a proprietary memory architecture developed by Matrox and (who else, let me remember... - Samsung?, MoSys?...). It is similar to VRAM, but allows faster access by the host. WRAM was used on Matrox's Millenium and Millenium II graphics cards (but not on the modern Millenium G200).

SDRAM is a complete redesign of DRAM, introduced in the 90s. "S" stands for Synchronous, since SDRAM implements a completely synchronous (and therefore very fast) interface. Inside SDRAM contains (usually two) DRAM arrays. Each array has its own its own Page Register, which is (a bit) like the serial access register on VRAM. SDRAM works much smarter than regular DRAM. The entire circuit is synchronized with an external clock signal. At each clock tick, the chip receives and executes a command transmitted along the command lines. The command line names remain the same as in classic DRAM chips, but their functions are only similar to the original. There are commands for transferring data between the memory array and page registers, and for accessing data in page registers. Access to a page register is very fast - modern SDRAMs can transfer a new word of data every 6..10 ns.

Synchronous Graphics RAM is a variant of SDRAM designed for graphics applications. The hardware structure is almost identical, so in most cases we can change SDRAM and SGRAM (see Matrox G200 cards - some use SD, others SG). The difference is in the functions performed by the page register. The SG can write multiple locations in a single cycle (this allows for very fast color fills and screen clearing), and can only write a few bits per word (the bits are selected by a bit mask stored by the interface circuit). Therefore, SG is faster in graphics applications, although not physically faster than SD in "normal" use. Additional features of SG are used by graphics accelerators. I think the screen clearing and Z-buffer capabilities in particular are very useful.

RAMBUS (RDRAM)

RAMBUS (trademark of RAMBUS, Inc.) began to be developed in the 80s, so it is not new. Modern RAMBUS technologies combine old but very good ideas and today's memory production technologies. RAMBUS is based on a simple idea: we take any good DRAM, we build a static buffer into the chip (as in VRAM and SGRAM), and provide a special, electronically configurable interface operating at 250..400 MHz. The interface is at least twice as fast as that used in SDRAM, and while the random access time is usually slower , sequential access is very, very, very fast. Remember that when 250 MHz RDRAMs were introduced, most DRAMs operated at frequencies of 12..25 MHz. RDRAM requires a special interface and very careful physical placement on the PCB. Most RDRAM chips look very different from other DRAMs: they all have all the signal lines on one side of the package (so they are the same length), and only 4 power lines on the other side. RDRAMs are used in graphics cards based on Cirrus 546x chips. We will soon see RDRAMs used as main memory in PCs.

Hard drive device.

The hard drive contains a set of plates, most often representing metal disks, coated with a magnetic material - platter (gamma ferrite oxide, barium ferrite, chromium oxide...) and connected to each other using a spindle (shaft, axis).

The discs themselves (approximately 2 mm thick) are made of aluminum, brass, ceramics or glass. (see pic)

Both surfaces of the discs are used for recording. 4-9 plates are used. The shaft rotates at a high constant speed (3600-7200 rpm)

The rotation of the disks and radical movement of the heads is carried out using 2 electric motors.

Data is written or read using write/read heads, one on each surface of the disk. The number of heads is equal to the number of working surfaces of all disks.

Information is recorded on the disk in strictly defined places - concentric tracks (tracks). The tracks are divided into sectors. One sector contains 512 bytes of information.

Data exchange between RAM and NMD is carried out sequentially by an integer (cluster). Cluster - chains of sequential sectors (1,2,3,4,…)

A special motor, using a bracket, positions the read/write head over a given track (moves it in the radial direction).

When the disk is rotated, the head is located above the desired sector. Obviously, all heads move simultaneously and read information; data heads move simultaneously and read information from identical tracks on different drives.

Hard drive tracks with the same serial number on different hard drive drives are called a cylinder.

The read-write heads move along the surface of the platter. The closer the head is to the surface of the disk without touching it, the higher the permissible recording density .

Hard drive interfaces.

IDE (ATA – Advanced Technology Attachment) is a parallel interface for connecting drives, which is why it was changed (with SATA output) to PATA (Parallel ATA). Previously used to connect hard drives, but was supplanted by the SATA interface. Currently used to connect optical drives.

SATA (Serial ATA) – serial interface for data exchange with drives. An 8-pin connector is used for connection. As in the case of PATA, it is obsolete and is used only for working with optical drives. The SATA standard (SATA150) provided a throughput of 150 MB/s (1.2 Gbit/s).

SATA 2 (SATA300). The SATA 2 standard doubled the throughput, up to 300 MB/s (2.4 Gbit/s), and allows operation at 3 GHz. Standard SATA and SATA 2 are compatible with each other, however, for some models it is necessary to manually set the modes by rearranging the jumpers.

SATA 3, although according to the specifications it is correct to call it SATA 6Gb/s. This standard doubled the data transfer speed to 6 Gbit/s (600 MB/s). Other positive innovations include the NCQ program control function and commands for continuous data transfer for a high-priority process. Although the interface was introduced in 2009, it is not yet particularly popular among manufacturers and is not often found in stores. In addition to hard drives, this standard is used in SSDs (solid-state drives). It is worth noting that in practice the bandwidth of SATA interfaces does not differ in data transfer speed. In practice, the speed of writing and reading disks does not exceed 100 MB/s. Increasing the performance only affects the bandwidth between the controller and the drive cache.

SCSI (Small Computer System Interface) - a standard used in servers where increased data transfer speed is required.

SAS (Serial Attached SCSI) is a generation that replaced the SCSI standard, using serial data transmission. Like SCSI, it is used in workstations. Fully compatible with the SATA interface.

CF (Compact Flash) – Interface for connecting memory cards, as well as for 1.0 inch hard drives. There are 2 standards: Compact Flash Type I and Compact Flash Type II, the difference is in thickness.

FireWire is an alternative interface to the slower USB 2.0. Used to connect portable hard drives. Supports speeds up to 400 Mb/s, but the physical speed is lower than regular ones. When reading and writing, the maximum threshold is 40 MB/s.

Types of video cards

Modern computers (laptops) are available with various types of video cards, which directly affect performance in graphics programs, video playback, and so on.

There are currently 3 types of adapters in use that can be combined.

Let's take a closer look at the types of video cards:

  • integrated;
  • discrete;
  • hybrid;
  • two discrete;
  • Hybrid SLI.

Integrated graphics card- This is an inexpensive option. It does not have video memory and graphics processor. With the help of the chipset, graphics are processed by the central processor, RAM is used instead of video memory. Such a device system significantly reduces the performance of the computer in general and graphic processing in particular.

Often used in budget PC or laptop configurations. Allows you to work with office applications, watch and edit photos and videos, but it is impossible to play modern games. Only legacy options with minimum system requirements are available.

Computer architectureits representation at some general level is considered, including a description of user programming capabilities, command systems, addressing systems, memory organization, etc. The architecture determines the principles of operation, information connections and mutual connection of the main logical nodes of a computer: processor, random access memory (RAM, OP), external storage and peripheral devices.

Computer architecture components are: computing and logical capabilities, hardware and software.

Computer structure is a set of its functional elements and connections between them. The elements can be the most typical devices - from the main logical nodes of a computer to the simplest circuits. The structure of a computer is graphically represented in the form of block diagrams, with the help of which you can describe it at any level of detail.

The architecture of a computer should be distinguished from its structure. The structure defines a specific set of devices, blocks, nodes that make up a computer, while the architecture defines the rules for the interaction of the computer's components.

Von Neumann's principles (architecture). The construction of most computers is based on the following general principles, formulated in 1945 by the American scientist John von Neumann.

1. Program control principle. It follows from it that the program consists of a set of commands that are executed by the processor automatically one after another in a certain sequence.

A program is retrieved from memory using a program counter. This processor register sequentially increases the address of the next instruction stored in it by the instruction length. Since the program commands are located in memory one after another, a chain of commands is thereby organized from sequentially located memory cells.

The structure of an individual command is:

<код операции> <операнды>,

Where<код операции>determines which operation should be performed;

<операнды>- a list (possibly single-element) of those constants, addresses or variable names on which this operation is performed.

Depending on the number of operands, one-, two- and three-address machine instructions are distinguished. Each command has a certain size, measured in bytes.

2. The principle of conditional transition. If, after executing a command, one should move not to the next one, but to some other one, conditional or unconditional jump (branch) commands are used, which enter the number of the memory cell containing the next command into the command counter. Fetching commands from memory stops after reaching and executing the stop command.



Thus, the processor executes the program automatically, without human intervention.

3. The principle of memory homogeneity. Programs and data are stored in the same memory. Therefore, the computer does not distinguish between what is stored in a given memory cell - a number, text or command. You can perform the same actions on commands as on data. This opens up a whole range of possibilities. For example, a program can also be processed during its execution, which allows you to set rules for obtaining some of its parts in the program itself (this is how the execution of cycles and subroutines is organized in the program). Moreover, commands from one program can be obtained as results from the execution of another program. Translation methods are based on this principle - translating program text from a high-level programming language into the language of a specific machine.

4. The principle of placing a program in memory. The program required for the operation of the computer is pre-located in the computer's memory, rather than entering command after command.

5. Targeting principle. Structurally, main memory consists of renumbered cells; Any cell is available to the processor at any time. This implies the ability to name memory areas so that the values ​​stored in them can later be accessed or changed during program execution using the assigned names.

6. The principle of memory hierarchy. Computer memory is heterogeneous. For frequently used data, smaller but faster memory is allocated; For rarely used data, larger but slower memory is allocated.

7. The principle of the binary number system. For the internal representation of data and programs in computer memory, a binary number system is used, which can be more easily implemented technically.

Computers built on these principles are of the von Neumann type. There are other classes of computers that are fundamentally different from von Neumann ones. Here, for example, the principle of program control may not be fulfilled, i.e. they can operate without a program counter (address register) pointing to the program command being executed. To access a variable stored in memory, these computers do not need to give it a name. Such computers are called non-von Neumann computers.

The von Neumann machine consisted of a memory, which was a set of registers, an ALU, an input/output device, and a control device (Fig. 3.7).

The input device passed commands and data to the ALU, from where they were written to memory. All teams, the totality of which is called a program, are written into memory into neighboring cells in ascending order of their addresses, and data that requires processing is written into cells with arbitrary addresses. The last command of the program is necessarily the stop command. Each command contains the code of the operation that must be performed and the addresses of the cells that contain the data processed by this command. The control device contains a special register called " Program counter" After loading the program and data into memory, the address of the first instruction of the program is written to the program counter. After which the computer goes into automatic program execution mode.

Rice. 3.7. von Neumann machine

The control device reads from memory the contents of the memory cell, the address of which is in the program counter, and places it in a special device - “ Command register" The command register stores the command while it is executed. The control device deciphers the type of command operation, reads from memory the data whose addresses are specified in the command, and begins executing it. For each command, the control device has its own processing algorithm, which consists of generating control signals for all other devices of the machine. This algorithm could be implemented on the basis of combinational logic circuits or using special internal memory, where these algorithms were written in the form of microinstructions combined into microprograms. The microprogram is executed according to the same principle as programs in the main memory, i.e. according to von Neumann's principle. Each microinstruction contains a set of control signals for machine devices. Note that devices for controlling the execution of processor commands in modern computer systems are also built on the principle of combinational circuits or microprogram automata, according to which they are divided into RISC And CISC processors, which will be discussed below.

The microprogram for executing any command necessarily contains signals that change the contents of the program counter by one. Thus, after the completion of the next command, the program counter pointed to the next memory cell, which contained the next program command. The control device reads the instruction whose address is in the program counter, places it in the instruction register, etc. This process continues until the next executable command turns out to be a command to stop program execution. It is interesting to note that both instructions and data residing in memory are binary integer sets. The control device cannot distinguish a command from data, therefore, if the programmer forgot to end the program with a stop command, the control device reads the next memory cells that no longer contain program commands and tries to interpret them as commands.

A special case can be considered unconditional or conditional jump commands, when you need to execute a command that is not next in order to the current one, but is separated from the given one by a certain number of addresses. In this case, the jump command contains the address of the cell to which control must be transferred. This address is written by the control device directly into the program counter and a transition to the corresponding program command occurs.

State educational institution

higher professional education of the Tyumen region

TYUMEN STATE ACADEMY

WORLD ECONOMY, GOVERNANCE AND LAW

Department of Mathematics and Informatics

by discipline

"COMPUTERING SYSTEMS, NETWORKS AND TELECOMMUNICATIONS"

"VON NEUMANN'S PRINCIPLES"

1. Introduction……………………………………………………………....2

2. Basic principles of John von Neumann’s architecture…………….3

3. Computer structure………………………………………………………3

4. How John von Neumann's machine works……………………………...4

5. Conclusion……………………………………………………………...6

References………………………………………………………...8


Introduction

Since the mid-60s, the approach to creating computers has changed greatly. 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 organizing hardware and software and their main characteristics, which determines the functionality of a computer when solving relevant types of problems.

Computer architecture covers a significant 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 main ones are: cost, scope of application, functionality, ease of use, and hardware is considered one of the main components of the architecture.

The architecture of a computing tool must be distinguished from the structure, since the structure of a computing tool determines its current composition at a certain level of detail and describes the connections 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 interaction rules. It does not establish all connections, but only the most necessary ones, which must be known for more competent use of the tool used.

Thus, the computer user does not care on what elements the electronic circuits are made, whether commands are executed by circuit or program, and the like. Computer architecture truly reflects a range of problems that relate to the general design and construction of computers and their software.

The computer architecture includes both a structure that reflects the composition of the PC and software and mathematical support. The structure of a computer is a set of elements and connections between them. The basic principle of building all modern computers is program control.

The foundations of the doctrine of computer architecture were laid by John von Neumann. The combination of these principles gave rise to the classical (von Neumann) computer architecture.

John von Neumann's Basic Principles of Architecture

John von Neumann (1903 - 1957) was an American mathematician who made a major contribution to the creation of the first computers and the development of methods for their use. It was he who laid the foundations for the doctrine of computer architecture, joining in the creation of the world's first tube-based computer, ENIAC, in 1944, when its design had already been chosen. In the process of work, during numerous discussions with his colleagues G. Goldstein and A. Berks, John von Neumann expressed the idea of ​​a fundamentally new computer. In 1946, scientists outlined their principles for constructing computers in the now classic article “Preliminary Consideration of the Logical Design of an Electronic Computing Device.” More than half a century has passed since then, but the provisions put forward in it remain relevant today.

The article convincingly substantiates the use of the binary system to represent numbers, since previously all computers stored processed numbers in decimal form. The authors demonstrated the advantages of the binary system for technical implementation, the convenience and ease of performing arithmetic and logical operations in it. Later, computers began to process non-numeric types of information - text, graphic, sound and others, but binary data coding still forms the information basis of any modern computer.

Another revolutionary idea, the importance of which is difficult to overestimate, is the “stored program” principle proposed by Neumann. Initially, the program was set by installing jumpers on a special patch panel. This was a very labor-intensive task: for example, it took several days to change the program of the ENIAC machine, while the calculation itself could not last more than a few minutes - the lamps, of which there were a huge number, failed. Neumann was the first to realize that a program could also be stored as a series of zeros and ones, in the same memory as the numbers it processed. The absence of a fundamental difference between the program and the data made it possible for the computer to form a program for itself in accordance with the results of the calculations.

Computer structure

John von Neumann not only put forward the fundamental principles of the logical structure of a computer, but also proposed its structure, which was reproduced during the first two generations of computers. The main blocks according to Neumann are a control unit (CU) and an arithmetic-logical unit (ALU), usually combined into a central processor, which also includes a set of general purpose registers (GPR) - for intermediate storage of information during its processing; memory, external memory, input and output devices. It should be noted that external memory differs from input and output devices in that data is entered into it in a form convenient for a computer, but inaccessible to direct perception by a person.

Computer architecture built on the principles of John von Neumann.

Solid lines with arrows indicate the direction of information flows, dotted lines indicate control signals.

How does John von Neumann's machine work?

Now let's talk in more detail about how a machine built on this architecture works. A von Neumann machine consists of a storage device (memory) - a memory, an arithmetic-logical unit - ALU, a control device - CU, as well as input and output devices, which can be seen in their circuits and as discussed earlier.

Programs and data are entered into memory from the input device through an arithmetic logic unit. All program commands are written to adjacent memory cells, and data for processing can be contained in arbitrary cells. For any program, the last command must be the shutdown command.

The command consists of an indication of what operation should be performed and the addresses of the memory cells where the data on which the specified operation should be performed is stored, as well as the addresses of the cell where the result should be written if it needs to be stored in memory.

The arithmetic logic unit performs the operations specified by the instructions on the specified data. From it, the results are output to memory or an output device.

The control unit (CU) controls all parts of the computer. From it, other devices receive signals “what to do,” and from other devices the control unit receives information about their status. It contains a special register (cell) called the “program counter”. After loading the program and data into memory, the address of the first command of the program is written to the program counter, and the control unit reads from memory the contents of the memory cell, the address of which is in the program counter, and places it in a special device - the “Command Register”. The control unit determines the operation of the command, “marks” in memory the data whose addresses are specified in the command, and controls the execution of the command.

ALU – provides arithmetic and logical processing of two variables, as a result of which an output variable is formed. ALU functions are usually reduced to simple arithmetic, logical and shift operations. It also generates a number of result attributes (flags) characterizing the result obtained and the events that occurred as a result of its receipt (equality to zero, sign, parity, overflow). Flags can be analyzed by the control unit in order to decide on the further sequence of command execution.

As a result of the execution of any command, the program counter changes by one and, therefore, points to the next command of the program. When it is necessary to execute a command that is not next in order to the current one, but is separated from the given one by a certain number of addresses, then a special jump command contains the address of the cell to which control must be transferred.


Conclusion

So, let us highlight once again the basic principles proposed by von Neumann:

· The principle of binary coding. The binary number system is used to represent data and commands.

· The principle of memory homogeneity. Both programs (instructions) and data are stored in the same memory (and encoded in the same number system - most often binary). You can perform the same actions on commands as on data.

· The principle of memory addressability. Structurally, main memory consists of numbered cells; Any cell is available to the processor at any time.

Law and CCA

Lesson 9. Backbone-modular principle of computer construction.

Assignment: using the educational text, answer the following questions (write in your notebook).

1. Who was the founder of the backbone-modular principle of modern PC architecture.

2. Computer architecture is...

3. List the basic principles underlying the backbone-modular construction of PC architecture.

4. What parts does the highway consist of?

5. What is the device interface for?

6. What is used to negotiate interfaces? How does this coordination work (draw a diagram)?

7. How is data processed on a computer?

8. Draw a schematic diagram of the backbone-modular principle of a PC.

9. The highway is...

10. What is the purpose of the control bus, address bus, data bus?

12. What does the modular principle allow the PC user? List the main advantages of the modular-backbone principle.

D/z. Answer questions, prepare to answer the educational text.

Educational text

Backbone-modular principle of computer construction

Let's remember the information received in previous lessons:

A computer is an electronic device designed to work with information, namely introduction, processing, storage, output and transmission of information. In addition, a PC is a single entity of two entities - hardware and software.

Computer architecture is a description of its logical organization, resources and operating principles of its structural elements. Includes the main computer devices and the structure of connections between them.

Usually, when describing the architecture of a computer, special attention is paid to those principles of its organization that are characteristic of most machines belonging to the family being described, and also that influence programming capabilities.

The architecture of modern computers is based on principles of John von Neumann and the backbone-modular principle.

In 1946, D. von Neumann, G. Goldstein and A. Berks, in their joint article, outlined new principles for the construction and operation of computers. Subsequently, the first two generations of computers were produced on the basis of these principles. There have been some changes in later generations, although Neumann's principles are still relevant today.

In fact, Neumann managed to summarize the scientific developments and discoveries of many other scientists and formulate something fundamentally new on their basis.

Von Neumann's principles

1. Use of the binary number system in computers. The advantage over the decimal number system is that devices can be made quite simple, and arithmetic and logical operations in the binary number system are also performed quite simply.


2. Computer software control. The operation of the computer is controlled by a program consisting of a set of commands. Commands are executed sequentially one after another. The creation of a machine with a stored program was the beginning of what we call programming today.

3. Computer memory is used not only to store data, but also programs.. In this case, both program commands and data are encoded in the binary number system, i.e. their recording method is the same. Therefore, in certain situations, you can perform the same actions on commands as on data.

4. Computer memory cells have addresses that are numbered sequentially. At any time, you can access any memory cell by its address. This principle opened up the possibility of using variables in programming.

5. Possibility of conditional jump during program execution. Despite the fact that commands are executed sequentially, programs can implement the ability to jump to any section of code.

6. Availability of information input and output devices. These devices are basic and sufficient for computer operation at the user level.

7. Open Architecture Principle– rules for building a computer, according to which each new block must be compatible with the old one and be easily installed in the same place in the computer. In a computer, you can just as easily replace old blocks with new ones, wherever they are located, as a result of which the operation of the computer is not only not disrupted, but also becomes more productive. This principle allows you not to throw away, but to modernize a previously purchased computer, easily replacing outdated units in it with more advanced and convenient ones, as well as purchasing and installing new units. Moreover, in all of them, the connectors for connecting them are standard and do not require any changes in the design of the computer itself.

The most important consequence of these principles is that now the program was no longer a permanent part of the machine (like, for example, a calculator). It became possible to easily change the program. But the equipment, of course, remains unchanged and very simple.

A computer is not an indivisible, integral object. It consists of a number of devices - modules.(The user can complete his computer from these modules at his own request). For each device in the computer there is an electronic circuit that controls it. This circuit is called a controller, or adapter. Some controllers can control several devices at once. All controllers and adapters interact with the processor and RAM through the system bus (a set of electronic lines. A bus is a cable consisting of many wires.

The backbone provides data exchange between computer devices.

The highway consists of three parts:

1. address bus, on which the address of the required memory cell or device with which information will be exchanged is set.

2. Data bus, through which the necessary information will be transmitted.

3. Control bus regulating this process. (signals are transmitted via the control bus that determine the nature of the exchange of information along the highway. These signals indicate what operation should be performed).

In order for a computer to function correctly, it is necessary that all its devices work together, “understand” each other and “do not conflict.” This is ensured thanks to the same interface that all computer devices have.
An interface is a means of connecting two devices, in which all physical and logical parameters are consistent with each other.

Since data exchange between devices occurs through the bus, to coordinate interfaces, all external devices are connected to the bus not directly, but through their controllers (adapters) and ports.

Ports can be serial or parallel. Slow or remote devices (mouse, modem) are connected to serial ports, and faster ones (scanner, printer) are connected to parallel ports. The keyboard and monitor are connected to specialized ports.

In order to avoid connecting a device to someone else’s port by mistake or ignorance, each device has an individual plug shape that does not fit into the “foreign” connector.

Information presented in digital form and processed on a computer is called data.

The sequence of commands that a computer executes while processing data is called program.

Processing data on a computer:

1. The user launches a program stored in long-term memory, it is loaded into operational memory and begins to execute.

2. Execution: The processor reads the instructions and executes them. The necessary data is loaded into RAM from long-term memory or entered using input devices.

3. The output (received) data is written by the processor into RAM or long-term memory, and is also provided to the user using information output devices.

To ensure information exchange between different devices, some kind of backbone must be provided to move information flows.

Trunk (system bus) includes three multi-bit buses: data bus, address bus and control bus, which are multi-wire lines. The processor and RAM, as well as peripheral input, output and information storage devices that exchange information in machine language (sequences of zeros and ones in the form of electrical pulses) are connected to the bus.

Data bus. This bus transfers data between different devices. For example, data read from RAM may be sent to the processor for processing, and then the received data may be sent back to RAM for storage. Thus, data on the data bus can be transferred from device to device in any direction, i.e. the data bus is bidirectional. The main operating modes of the processor using the data bus include the following: writing/reading data from RAM, writing/reading data from external memory, reading data from an input device, sending data to an output device.

The data bus width is determined by the processor bit capacity, that is, the number of binary bits that can be processed or transmitted by the processor simultaneously. The capacity of processors is constantly increasing as computer technology develops.

Address bus. The choice of device or memory cell to which data is sent or read via the data bus is made by the processor. Each device or RAM cell has its own address. The address is transmitted along the address bus, and signals are transmitted along it in one direction - from the processor to RAM and devices (unidirectional bus).

The width of the address bus determines the amount of addressable memory (address space), that is, the number of one-byte RAM cells that can have unique addresses.

The number of addressable memory cells can be calculated using the formula:

N=2 I, where I is the address bus width.

Each bus has its own address space, i.e. the maximum amount of addressable memory:

2 16 = 64 KB

2 20 = 1 MB

2 24 = 16 MB

2 32 = 4 GB

Control bus. The control bus transmits signals that determine the nature of information exchange along the highway. Control signals indicate what operation - reading or writing information from memory - needs to be performed, synchronize the exchange of information between devices, and so on.

Modular principle allows the consumer to assemble the computer configuration he needs and, if necessary, upgrade it. Each individual computer function is implemented by one or more modules - structurally and functionally complete electronic units in a standard design. Organizing a computer structure on a modular basis is similar to building a block house.

The backbone-modular principle has a number of advantages:

1. To work with external devices, the same processor commands are used as for working with memory.

2. Connecting additional devices to the backbone does not require changes to existing devices, processor, or memory.

3. By changing the composition of the modules, you can change the power and purpose of the computer during its operation.