Composition of computer technology. Basic characteristics of computer technology. History of the development of computer technology

The concept of computer technology is a set of technical and mathematical means, methods and techniques used to mechanize and automate the processes of calculations and information processing. The basis of the technical means of modern computing consists of electronic computers (computers), input, output, presentation and transmission devices (scanners, printers, modems, monitors, plotters, keyboards, magnetic tape and disk drives, etc.) , laptops, microcalculators, electronic notebooks, etc.

A personal computer is a desktop or portable single-user microcomputer that meets the requirement of universal accessibility and universality.

The basis of a personal computer is a microprocessor. The development of microprocessor technology and technology has determined the change in PC generations:

1st generation (1975 – 1980) – based on 8-bit MP;

2nd generation (1981 – 1985) – based on 16-bit MP;

3rd generation (1986 – 1992) – based on 32-bit MP;

4th generation (since 1993) – based on 64-bit MP.

Today the computer world is on the verge of a revolution: CPUs with new generation transistors and powerful mobile chips will increase the performance of laptops, tablets and smartphones by an order of magnitude.

Processing elements measuring 10 and 12 nm will completely change the computer world in the coming year: their thickness is 10,000 times smaller than a human hair (100,000 nm), and their diameter is close to silicon atoms (0.3 nm).

The main manufacturers of microprocessors for PCs at present are still:

Intel is a pioneer in the creation and production of modern processors. Today, the most popular PCs on the expensive computer market are PCs with processors based on multi-core architecture. Intel Core.

In April 2012, Intel introduced the 3rd generation of the quad-core Intel® Core™ processor family, available in powerful desktop systems professional grade and mobile and thin all-in-one PCs that feature the world's first 22nm chips using Tri-Gate 3D transistors.

AMD (Advanced Micro Deviced) is the most real competitor to Intel. Until recently, it occupied a niche in the computer market with inexpensive but fast processors, intended mainly for inexpensive computers and upgrades.

With the creation in 1999 of the Athlon processor, Thunderbird, Polamino, Thoroughbred, Barton processors, and after 2003, the K8 series processors, it began to seriously compete with Intel. Today, both companies produce a good quality product that can satisfy the needs of almost any demanding users.

Currently, about 85% of personal computers are produced on the basis of these processors. Depending on their purpose, they can be divided into three groups:

Household, intended for mass consumption and having the simplest basic configuration;

General purpose, intended for solving scientific, technical, economic and other problems and training. This class is most widespread and is served, as a rule, by non-professional users;

Professional used in the scientific field to solve complex information and production problems. They feature high technical characteristics and are serviced by professional users.

In addition, according to their design, PCs are divided into:

LAPTOP computers (“laptop” computer). In a Laptop, the keyboard and system unit are made in one case, which is closed on top with a lid with an LCD display. Most models do not differ for the better in their technical parameters and have monochrome displays;

NOTEBOOK (“notebooks”). The latest models have fairly high technical parameters, comparable to general purpose PCs ( Core processors i7-3612QM, video up to 6144 Mb, hard drives – HDD over 600 GB or SSD up to 256 GB;

ULTRABUK (English Ultrabook) is an ultra-thin and light laptop, with even smaller dimensions and weight compared to conventional subnotebooks, but at the same time - most of the characteristic features of a full-fledged laptop. The term began to spread widely in 2011, after Intel Corporation presented a new class of mobile PCs - ultrabooks, a concept from Intel and Apple, developed on the basis of the one released in 2008 Apple laptop MacBook Air. Ultrabooks are smaller than regular laptops, but slightly larger than netbooks. They are equipped with a small liquid crystal display from 11 to 13.3 inches, are compact - thickness up to 20 mm, and weigh up to 2 kg. Due to their small size, ultrabooks have few external ports and most do not have a DVD drive.

A netbook is a laptop with relatively low performance, designed primarily for accessing the Internet and working with office applications. It has a small screen diagonal of 7-12 inches, low power consumption, light weight and relatively low cost.

The operating principle of modern PCs can be described by the following algorithm:

I. Initialization

After turning on the computer, loading the OS and the necessary program, the program counter is assigned an initial value equal to the address of the first command of this program.

II. Team selection

The CPU performs the operation of reading a command from memory. The contents of the program counter are used as the address of the memory cell.

III. Interpret command and increment program counter

The contents of the read memory cell are interpreted by the CPU as a command and placed in the command register. The control unit begins to interpret the command. Based on the operation code field from the first word of the command, the CU determines its length and, if necessary, organizes additional reading operations until the entire command is read by the CPU. The length of the command is added to the contents of the program counter, and when the command is completely read, the address of the next command is generated in the program counter.

IV. Command decryption and command execution

Using the address fields of the instruction, the control unit determines whether the instruction has operands in memory. If it has, then based on the addressing modes specified in the address fields, the addresses of the operands are calculated and memory read operations are performed to read the operands.

The control unit and ALU perform the operation specified in the operation code field of the command. The processor flag register stores the characteristics of the operation.

V. If necessary, the Controller performs operation of writing the result into memory.

If the last command was not “stop processor”, then the described sequence of operations is performed again. This sequence of operations is called processor cycle .

In specific computers, the implementation of this algorithm may differ slightly. But in principle, the functioning of any von Neumann computer is described by a similar algorithm and is a sequence of fairly simple operations.

A PC includes three main devices: system unit, keyboard and display . To expand the functionality of the PC, peripheral devices are additionally connected: printer, scanner, manipulators etc. These devices are either connected to the system unit using cables through connectors located on the rear wall system unit, or are inserted directly into the system unit. The PC has a modular structure. All modules are connected to the system bus.

Used to control external devices controllers (VU adapters) . After receiving a command from the MP, the controller, operating autonomously, frees the MP from performing specific functions for servicing the external device.

It should be noted that the increase in the performance of modern MP and individual devices external to it (main and external memory, video systems, etc.) has led to the problem of increasing bandwidth system bus when connecting these devices. To solve this problem, local buses were developed, connected directly to the MP bus.

The main device in a PC is system unit . It consists of a CPU, a coprocessor, permanent and random access memory, controllers, magnetic disk drives, power supply and other functional modules. The PC configuration can be changed by connecting additional modules. To ensure consistent operation of PC devices motherboard contains a chipset, i.e. set of microcircuits (chips).

The chipset determines the main capabilities of the board:

· types of supported CPUs;

· maximum system bus frequency;

· device switching logic;

supported types and maximum size main memory;

· speed of work with each type of memory;

· support for accelerated graphics port;

· type of disk interface and its modes;

· maximum number of expansion slots;

· PC monitoring.

The chipset of a modern PC usually consists of two chips: a north bridge or a memory controller hub (Memory Controller Hub, MCH), which serves central devices and contains controllers for the main memory, graphics bus, system bus and memory bus, and a south bridge. bridge (South Bridge) or I/O Controller Hub (ICH), containing controllers for I/O devices and standard peripheral devices.

Functional diagram of a computer - According to its purpose computer - This is a universal device for working with information. According to the principles of its design, a computer is a model of a person working with information.

Personal Computer(PC) is a computer designed to serve one workstation. Its characteristics may differ from mainframe computers, but it is functionally capable of performing similar operations. According to the method of operation, desktop (desktop), portable (laptop and notebook) and pocket (palmtop) PC models are distinguished.

Hardware. Since the computer provides all three classes of information methods for working with data (hardware, software and natural), it is customary to speak of a computer system as consisting of hardware and software working together. The components that make up the hardware of a computer are called hardware. They perform all physical work with data: registration, storage, transportation and transformation, both in form and content, and also present them in a form convenient for interaction with natural information methods person.

The totality of a computer's hardware is called its hardware configuration.

Software. Programs can be in two states: active and passive. In a passive state, the program does not work and looks like data, the content of which is information. In this state, the contents of the program can be “read” by other programs, like books are read, and changed. From it you can find out the purpose of the program and how it works. In the passive state, programs are created, edited, stored and transported. The process of creating and editing programs is called programming.

When a program is in an active state, the content of its data is considered as commands according to which the computer hardware operates. To change the order of their operation, it is enough to interrupt the execution of one program and start the execution of another, containing a different set of commands.

The set of programs stored on a computer forms it software. The set of programs prepared for operation is called installed software. The set of programs running at one time or another is called a software configuration.

Computer device. Any computer (even the largest one) consists of four parts:

  • input devices
  • information processing devices
  • storage devices
  • information output devices.

Structurally, these parts can be combined in one case the size of a book, or each part can consist of several rather bulky devices

Basic PC hardware configuration. The basic hardware configuration of a personal computer is the minimum set of hardware sufficient to start working with a computer. Over time, the concept of a basic configuration gradually changes.

Most often, a personal computer consists of the following devices:

  • System unit
  • Monitor
  • Keyboard

Additionally, other input and output devices can be connected, for example sound speakers, printer, scanner...

System unit- main block computer system. It contains devices that are considered internal. Devices connected to the system unit externally are considered external. The term peripheral equipment is also used for external devices.
Monitor- a device for visual reproduction of symbolic and graphic information. Serves as an output device. For desktop PCs, the most common monitors today are those based on cathode ray tubes. They vaguely resemble household televisions.
Keyboard- a keyboard device designed to control the operation of a computer and enter information into it. Information is entered in the form of alphanumeric character data.
Mouse- graphical control device.

Internal devices of a personal computer.
Devices located in the system unit are considered internal. Some of them are accessible on the front panel, which is convenient for quick changes information media, such as floppy magnetic disks. The connectors of some devices are located on the rear wall - they are used to connect peripheral equipment. Access to some system unit devices is not provided - it is not required for normal operation.

CPU. Microprocessor is the main chip of a personal computer. All calculations are performed in it. The main characteristic of the processor is the clock frequency (measured in megahertz, MHz). The higher the clock speed, the higher the processor performance. So, for example, at a clock frequency of 500 MHz, the processor can change its
state 500 million times. For most operations, one clock cycle is not enough, so the number of operations a processor can perform per second depends not only on the clock speed, but also on the complexity of the operations.

The only device the existence of which the processor “knows from birth” is RAM - it works together with it. This is where data and commands come from. Data is copied into processor cells (called registers) and then converted according to the contents of the instructions. You'll get a more complete picture of how the processor interacts with RAM in the chapters on programming fundamentals.

RAM. RAM can be thought of as a vast array of cells that store numeric data and commands while the computer is turned on. The amount of RAM is measured in millions of bytes - megabytes (MB).

The processor can access any RAM cell (byte) because it has a unique numeric address. The processor cannot access an individual bit of RAM, since the bit does not have an address. At the same time, the processor can change the state of any bit, but this requires several actions.

Motherboard. The motherboard is the largest circuit board of a personal computer. It contains highways that connect the processor with RAM - the so-called buses. There is a data bus through which the processor copies data from memory cells, an address bus through which it connects to specific memory cells, and a command bus through which the processor receives commands from programs. All other internal devices of the computer are also connected to the motherboard buses. The operation of the motherboard is controlled by a microprocessor chipset - the so-called chipset.

Video adapter. A video adapter is an internal device installed in one of the connectors on the motherboard. The first personal computers did not have video adapters. Instead, a small area was allocated in RAM for storing video data. A special chip (video controller) read data from video memory cells and controlled the monitor in accordance with them.

As the graphic capabilities of computers improved, the video memory area was separated from the main RAM and, together with the video controller, was separated into a separate device, which was called a video adapter. Modern video adapters have their own computing processor (video processor), which has reduced the load on the main processor when constructing complex images. The video processor plays a particularly important role when building on a flat screen. 3D images. During such operations, he has to perform a particularly large number of mathematical calculations.

In some motherboard models, the functions of the video adapter are performed by chipset chips - in this case they say that the video adapter is integrated with motherboard. If the video adapter is made as a separate device, it is called a video card. The video card connector is located on the rear wall. A monitor is connected to it.

Sound adapter. For IBM PC computers, work with sound was not initially provided. For the first ten years of its existence, computers of this platform were considered office equipment and did without sound devices. Currently, audio tools are considered standard. To do this on motherboard The sound adapter is installed. It can be integrated into the motherboard chipset or implemented as a separate plug-in card called a sound card.
The sound card connectors are located on the back wall of the computer. To play sound, speakers or headphones are connected to them. A separate connector is intended for connecting a microphone. In the presence of special program this allows you to record sound. There is also a connector (line output) for connecting to external sound recording or sound reproducing equipment (tape recorders, amplifiers, etc.).

HDD. Since the computer's RAM is cleared when the power is turned off, a device is needed to store data and programs for a long time. Currently, so-called hard drives are widely used for these purposes.
Operating principle hard drive is based on recording changes in the magnetic field near the recording head.

Main hard parameter The disk capacity is measured in gigabytes (billions of bytes), GB. The average size of a modern hard drive is 80 - 160 GB, and this parameter is steadily growing.

Floppy drive. To transport data between remote computers, so-called floppy disks are used. A standard floppy disk (floppy disk) has a relatively small capacity of 1.44 MB. By modern standards, this is completely insufficient for most data storage and transportation tasks, but the low cost of media and high availability have made floppy disks the most common storage media.

To write and read data stored on floppy disks, a special device is used - a disk drive. The drive receiving hole is located on the front panel of the system unit.

CD-ROM drive. To transport large amounts of data, it is convenient to use CD-ROMs. These discs can only read previously written data; they cannot be written to. The capacity of one disk is about 650-700 MB.

CD-ROM drives are used to read CDs. The main parameter of a CD-ROM drive is the reading speed. It is measured in multiple units. The reading speed approved in the mid-80s is taken as one. for music CDs (audio CDs). Modern CD-ROM drives provide reading speeds of 40x - 52x.
Main disadvantage CD-ROM drives- the impossibility of recording discs - has been overcome in modern write-once devices - CD-R. There are also CD-RW devices that allow multiple recordings.

The principle of data storage on CDs is not magnetic, like floppy disks, but optical.

Communication ports. To communicate with other devices, such as a printer, scanner, keyboard, mouse, etc., the computer is equipped with so-called ports. A port is not just a connector for connecting external equipment, although a port ends in a connector. A port is a more complex device than just a connector, having its own microcircuits and controlled by software.

Network adapter. Network adapters are necessary for computers to be able to communicate with each other. This device ensures that the processor does not send a new portion of data to the external port until the network adapter of a neighboring computer has copied the previous portion to itself. After this, the processor is given a signal that the data has been collected and new ones can be submitted. This is how the transfer takes place.

When a network adapter “learns” from a neighboring adapter that it has a piece of data, it copies it to itself, and then checks whether it is addressed to it. If yes, it passes them to the processor. If not, it puts them on the output port, from where the network adapter of the next neighboring computer will pick them up. This is how data moves between computers until it reaches the recipient.
Network adapters can be built into the motherboard, but are more often installed separately, in the form of additional cards called network cards.

Electronic computers are usually classified according to a number of characteristics, in particular: functionality and the nature of the tasks being solved, according to the method of organization computing process, by architectural features and computing power.

Based on functionality and the nature of the tasks being solved, the following are distinguished:

Universal (general purpose) computers;

Problem-oriented computers;

Specialized computers.

Mainframe computers are designed to solve a wide variety of engineering and technical problems, characterized by the complexity of the algorithms and the large volume of processed data.

Problem-oriented computers are designed to solve a narrower range of tasks related to the registration, accumulation and processing of small amounts of data.

Specialized computers are used to solve a narrow range of problems (microprocessors and controllers that perform control functions for technical devices).

By way of organizing the computing process Computers are divided into single-processor and multiprocessor, as well as sequential and parallel.

Single-processor. The computer has one central processor and all computing operations and operations for controlling input/output devices are carried out on this processor.

Multiprocessor. The computer contains several processors between which functions for organizing the computing process and managing information input/output devices are redistributed.

Consistent. They work in single-program mode, when the computer is designed in such a way that it can execute only one program, and all its resources are used only in the interests of the program being executed.

Parallel. They work in multiprogram mode, when several user programs are running on the computer and resources are shared between these programs, ensuring their parallel execution.

Based on architectural features and computing power, they are distinguished:



Let us consider the scheme for classifying computers according to this criterion (Fig. 1).

Fig.1. Classification of computers according to architectural characteristics

and computing power.

Supercomputers- These are the most powerful computing machines in terms of speed and performance. Supercomputers include “Cray” and “IBM SP2” (USA). They are used to solve large-scale computing problems and modeling, for complex calculations in aerodynamics, meteorology, high-energy physics, and are also used in the financial sector.

Large machines or mainframes. Mainframes are used in the financial sector, the defense complex, and are used to staff departmental, territorial and regional computing centers.

Medium computers widely used to control complex technological production processes.

Minicomputer designed for use as control computer systems and network servers.

Microcomputer- These are computers that use a microprocessor as the central processing unit. These include built-in microcomputers (built into various equipment, equipment or devices) and personal computers (PCs).

Personal computers. It has developed rapidly in the last 20 years. A personal computer (PC) is designed to serve a single workstation and can meet the needs of small businesses and individuals. With the advent of the Internet, the popularity of PCs has increased significantly, since using a personal computer you can use scientific, reference, educational and entertainment information.

Personal computers include desktop and laptop PCs. Portable computers include Notebook (notepad or Notebook) and pocket personal computers (Personal Computers Handheld - Handheld PC, Personal Digital Assistants - PDA and Palmtop).

Embedded computers. Computers that are used in various devices, systems, and complexes to implement specific functions. For example, car diagnostics.

Since 1999, an international certification standard, the PC99 specification, has been used to classify PCs. According to this specification, PCs are divided into the following groups:

· mass PCs (Consumer PC);

· business PCs (Office PC);

· portable PCs (Mobile PC);

· workstations (WorkStation);

· entertainment PCs (Entertaiment PC).

Most PCs are massive and include a standard (minimum required) set of hardware. This set includes: system unit, display, keyboard, mouse. If necessary, this set can be easily supplemented with other devices at the user's request, for example, a printer.

Business PCs include a minimum of graphics and sound reproduction tools.

Laptop PCs differ in the presence of remote access communication means.

Workstations meet increased requirements for the memory capacity of data storage devices.

Entertainment PCs focused on high-quality graphics and sound reproduction.

By design features PCs are divided into:

· stationary (desktop, Desktop);

portable:

· portable (Laptop);

· notebooks;

· pocket (Palmtop).

To effectively study applied computer technology, it is extremely important to have a clear understanding of computer hardware and software. The composition of computer technology is called configuration . Hardware and software Computer technology is usually considered separately. Accordingly, they consider separately hardware configuration and them software configuration This separation principle is of particular importance for computer science, since very often the solution to the same problems can be provided by both hardware and software. The criteria for choosing a hardware or software solution are performance and efficiency. For example, either type the text in a text editor, or use a scanner.

Basic hardware configuration of a personal computer

Personal computer – universal technical system. His configuration (equipment composition) can be flexibly changed as needed. However, there is a concept basic configuration , which is considered typical, i.e. minimum set of equipment. The computer usually comes with this kit. The concept of a basic configuration may vary. Currently considered in the basic configuration following devices(Fig. 2.1.):


Let's take a look at its parts.

To the main technical means personal computer include:

- system unit;

- monitor (display);

- keyboard.

Additionally, you can connect to your computer, for example:

- Printer;

- mouse;

- scanner;

- modem (modulator-demodulator);

- plotter;

- joystick, etc.

System unit

The system unit is the main unit within which the most important components are installed. System unit (see Fig. 2.2., 2.3.) is a case in which almost all of the computer’s hardware is located.

Devices located inside the system unit are called internal, and devices connected to it externally are called external. External additional devices, also called peripheral.

Internal organization system unit:

· motherboard;

· HDD:

· floppy disk drive;

· CD-ROM drive;

· video card (video adapter);

· sound card;

· power unit.

Systems located on motherboard:

· RAM;

· processor;

· ROM chip and BIOS system;

· bus interfaces, etc.

Magnetic disks, unlike RAM, are designed for permanent storage of information.

There are two types of magnetic disks used in PCs:


· non-removable hard disk (hard drive);

· removable, flexible disks (floppy disks).

The hard disk is designed for permanent storage of information that is more or less often used in work: operating system programs, compilers from programming languages, service (maintenance) programs, user application programs, text documents, database files, etc. The hard drive is significantly superior to floppy disks in terms of access speed, capacity and reliability.

3. Computer technology 1

3.1 History of the development of computer technology 1

3.2 Methods for classifying computers 3

3.3 Other types of computer classification 5

3.4 Composition of the computing system 7

3.4.1 Hardware 7

3.4.2 Software 7

3.5 Classification of application software 9

3.6 Classification of utility software 12

3.7 The concept of information and mathematical support for computer systems 13

3.8 Summing up 13

  1. Computer Engineering

    1. History of the development of computer technology

Computing system, computer

Finding means and methods for mechanization and automation of work is one of the main tasks of technical disciplines. Automation of work with data has its own characteristics and differences from automation of other types of work. For this class of tasks, special types of devices are used, most of which are electronic devices. A set of devices designed for automatic or automated data processing is called computer technology, A specific set of interacting devices and programs designed to serve one work area is called computing system. The central device of most computing systems is computer.

A computer is an electronic device designed to automate the creation, storage, processing and transportation of data.

How the computer works

In defining a computer as a device, we indicated the defining feature - electronic. However, automatic calculations were not always performed by electronic devices. Mechanical devices are also known that can perform calculations automatically.

Analyzing early history computer technology, some foreign researchers often call a mechanical calculating device as an ancient predecessor of the computer abacus. The “from the abacus” approach indicates a deep methodological misconception, since the abacus does not have the property of automatically performing calculations, but for a computer it is decisive.

The abacus is the earliest mechanical counting device, originally a clay plate with grooves in which stones representing numbers were placed. The appearance of the abacus dates back to the fourth millennium BC. e. The place of origin is considered to be Asia. In the Middle Ages in Europe, the abacus was replaced by graphed tables. Calculations using them were called counting on the lines, and in Russia in the 16th-17th centuries a much more advanced invention appeared, which is still used today - Russian abacus.

At the same time, we are very familiar with another device that can automatically perform calculations - a watch. Regardless of the operating principle, all types of clocks (sandwatch, water clock, mechanical, electric, electronic, etc.) have the ability to generate movements or signals at regular intervals and record the resulting changes, that is, perform automatic summation of signals or movements. This principle can be seen even in sundials containing only a recording device (the role of a generator is performed by the Earth-Sun system).

A mechanical watch is a device consisting of a device that automatically performs movements at regular specified intervals and a device for recording these movements. The place where the first mechanical watches appeared is unknown. The earliest examples date back to the 14th century and belong to monasteries (tower clock).

At the heart of any modern computer, as in electronic watch, lies clock generator, generating electrical signals at regular intervals that are used to drive all devices in a computer system. Controlling a computer actually comes down to managing the distribution of signals between devices. Such control can be carried out automatically (in this case we speak of program control) or manually using external controls - buttons, switches, jumpers, etc. (in early models). In modern computers, external control is largely automated using special hardware-logical interfaces to which control and data input devices (keyboard, mouse, joystick and others) are connected. In contrast to program control, such control is called interactive.

Mechanical sources

The world's first automatic device for performing the addition operation was created on the basis of a mechanical watch. In 1623, it was developed by Wilhelm Schickard, a professor at the Department of Oriental Languages ​​at the University of Tübingen (Germany). Nowadays, a working model of the device has been reproduced from the drawings and has confirmed its functionality. The inventor himself called the machine a “summing clock” in his letters.

In 1642, the French mechanic Blaise Pascal (1623-1662) developed a more compact adding device, which became the world's first mass-produced mechanical calculator (mainly for the needs of Parisian moneylenders and money changers). In 1673, the German mathematician and philosopher G. W. Leibniz (1646-1717) created a mechanical calculator that could perform multiplication and division operations by repeating addition and subtraction operations over and over again.

During the 18th century, known as the Age of Enlightenment, new, more advanced models appeared, but the principle of mechanical control of computing operations remained the same. The idea of ​​programming computational operations came from the same watch industry. The ancient monastery tower clock was set to turn on a mechanism connected to a system of bells at a given time. Such programming was tough - the same operation was performed at the same time.

The idea of ​​flexible programming of mechanical devices using perforated paper tape was first realized in 1804 in the Jacquard loom, after which it was only one step to program control computational operations.

This step was taken by the outstanding English mathematician and inventor Charles Babbage (1792-1871) in his Analytical Engine, which, unfortunately, was never fully built by the inventor during his lifetime, but was reproduced in our days according to his drawings, so that today we have the right to talk about the Analytical Engine as a really existing device. A special feature of the Analytical Engine was that it was the first to implement the principle of dividing information into commands and data. The analytical engine contained two large units - a “warehouse” and a “mill”. Data was entered into the mechanical memory of the "warehouse" by installing blocks of gears, and then processed in the "mill" using commands that were entered from perforated cards (as in a Jacquard loom).

Researchers of Charles Babbage's work certainly note the special role of Countess Augusta Ada Lovelace (1815-1852), daughter of the famous poet Lord Byron, in the development of the Analytical Engine project. It was she who came up with the idea of ​​using perforated cards for programming computational operations (1843). In particular, in one of her letters she wrote: “The Analytical Engine weaves algebraic patterns in the same way as a loom reproduces flowers and leaves.” Lady Ada can rightfully be called the world's first programmer. Today one of the famous programming languages ​​is named after her.

Charles Babbage's idea of ​​separate consideration teams And data turned out to be unusually fruitful. In the 20th century it was developed in the principles of John von Neumann (1941), and today in computing the principle of separate consideration programs And data is very important. It is taken into account both when developing the architectures of modern computers and when developing computer programs.

Mathematical sources

If we think about what objects the first mechanical predecessors of the modern electronic computer worked with, we must admit that numbers were represented either in the form of linear movements of chain and rack mechanisms, or in the form of angular movements of gear and lever mechanisms. In both cases, these were movements, which could not but affect the dimensions of the devices and the speed of their operation. Only the transition from recording movements to recording signals made it possible to significantly reduce dimensions and increase performance. However, on the way to this achievement it was necessary to introduce several more important principles and concepts.

Leibniz binary system. In mechanical devices, gears can have quite a lot of fixed and, most importantly, different between constitute provisions. The number of such positions is at least equal to the number of gear teeth. In electrical and electronic devices we're talking about not about registration provisions structural elements, and about registration states device elements. So stable and distinguishable There are only two states: on - off; open - closed; charged - discharged, etc. Therefore, the traditional decimal system used in mechanical calculators is inconvenient for electronic computing devices.

The possibility of representing any numbers (and not only numbers) with binary digits was first proposed by Gottfried Wilhelm Leibniz in 1666. He came to the binary number system while researching the philosophical concept of unity and the struggle of opposites. An attempt to imagine the universe in the form of a continuous interaction of two principles (“black” and “white”, male and female, good and evil) and to apply the methods of “pure” mathematics to its study prompted Leibniz to study the properties of the binary representation of data. It must be said that Leibniz had already thought about the possibility of using a binary system in a computing device, but since there was no need for this for mechanical devices, he did not use the principles of the binary system in his calculator (1673).

Mathematical logic of George Boole, Speaking about the work of George Boole, researchers of the history of computer technology certainly emphasize that this outstanding English scientist of the first half of the 19th century was self-taught. Perhaps it was precisely due to the lack of a “classical” (as understood at that time) education that George Boole introduced revolutionary changes to logic as a science.

While studying the laws of thinking, he applied a system of formal notation and rules in logic that was close to the mathematical one. Subsequently this system called logical algebra or Boolean algebra. The rules of this system are applicable to a wide variety of objects and their groups (sets, according to the author's terminology). The main purpose of the system, as conceived by J. Boole, was to encode logical statements and reduce the structures of logical conclusions to simple expressions close in form to mathematical formulas. The result of a formal evaluation of a logical expression is one of two logical values: true or lie.

The importance of logical algebra was ignored for a long time, since its techniques and methods did not contain practical benefits for the science and technology of that time. However, when the fundamental possibility of creating computer technology on an electronic basis arose, the operations introduced by Boole turned out to be very useful. They are initially focused on working with only two entities: true And lie. It is not difficult to understand how they were useful for working with binary code, which in modern computers is also represented by only two signals: zero And unit.

Not all of George Boole's system (nor all of the logical operations he proposed) were used to create electronic computers, but four main operations: And (intersection), OR (Union), NOT (appeal) and EXCLUSIVE OR - form the basis of the operation of all types of processors in modern computers.

Rice. 3.1. Basic operations of logical algebra


Classification of computer equipment

1. Hardware

The composition of a computing system is called configuration. Computer hardware and software are usually considered separately. Accordingly, the hardware configuration of computing systems and their software configuration are considered separately. This separation principle is of particular importance for computer science, since very often the solution to the same problems can be provided by both hardware and software. The criteria for choosing a hardware or software solution are performance and efficiency. It is generally accepted that hardware solutions are on average more expensive, but the implementation software solutions requires more highly qualified personnel.

TO hardware computing systems include devices and instruments that form a hardware configuration. Modern computers and computing systems have a block-modular design - the hardware configuration necessary for the execution specific types work, which can be assembled from ready-made units and blocks.

The main hardware components of a computing system are: memory, central processor and peripheral devices, which are interconnected by a system bus (Fig. 1.) The main memory is designed to store programs and data in binary form and is organized in the form of an ordered array of cells, each of which has unique digital address. Typically, the cell size is 1 byte. Typical operations on main memory: reading and writing the contents of a cell with a specific address.

2. Central processor

The central processing unit is the central unit of a computer that performs data processing operations and controls the computer's peripheral devices. The central processor includes:

Control device - organizes the process of program execution and coordinates the interaction of all devices of the computer system during its operation;

Arithmetic-logical unit - performs arithmetic and logical operations on data: addition, subtraction, multiplication, division, comparison, etc.;

Storage device - is internal memory processor, which consists of registers, when used, the processor performs calculations and stores intermediate results; To speed up work with RAM, cache memory is used, into which commands and data from RAM necessary for the processor for subsequent operations are pumped ahead;

Clock generator - generates electrical impulses that synchronize the operation of all computer nodes.

The central processor performs various operations with data using specialized cells for storing key variables and temporary results - internal registers. Registers are divided into two types (Fig. 2.):

General purpose registers - used for temporary storage of key local variables and intermediate results of calculations, include data registers and pointer registers; main function is to provide quick access to frequently used data (usually without memory access).

Specialized registers - used to control the operation of the processor, the most important of them are: the instruction register, the stack pointer, the flags register and the register containing information about the program state.

The programmer can use data registers at his discretion to temporarily store any objects (data or addresses) and perform the required operations on them. Index registers, like data registers, can be used in any way; their main purpose is to store indexes or offsets of data and instructions from the beginning of the base address (when fetching operands from memory). The base address may be in the base registers.

Segment registers are a critical element of processor architecture, providing addressing of a 20-bit address space using 16-bit operands. Main segment registers: CS - code segment register; DS - data segment register; SS is the stack segment register, ES is the additional segment register. Memory is accessed through segments - logical formations superimposed on any portion of the physical address space. The starting address of the segment, divided by 16 (without the least significant hexadecimal digit) is entered into one of the segment registers; after which access to the memory section starting from the specified segment address is provided.

The address of any memory cell consists of two words, one of which determines the location in memory of the corresponding segment, and the other - the offset within this segment. The size of a segment is determined by the amount of data it contains, but can never exceed 64 KB, which is determined by the maximum possible offset value. The segment address of the instruction segment is stored in the CS register, and the offset to the addressed byte is stored in the IP instruction pointer register.

Fig.2. 32-bit processor registers

After loading the program, the offset of the first command of the program is entered into the IP. The processor, having read it from memory, increases the contents of IP exactly by the length of this instruction (Intel processor instructions can have a length of 1 to 6 bytes), as a result of which IP points to the second instruction of the program. Having executed the first command, the processor reads the second from memory, again increasing the IP value. As a result, the IP always contains the offset of the next command - the command following the one being executed. The described algorithm is violated only when executing jump instructions, subroutine calls, and interrupt servicing.

The segment address of the data segment is stored in the DS register, the offset may be in one of the general purpose registers. The additional segment register ES is used to access data fields not included in the program, such as the video buffer or system cells. However, if necessary, it can be configured for one of the program segments. For example, if a program is working with a large amount of data, you can provide two segments for them and access one of them through the DS register, and the other through the ES register.

The stack pointer register SP is used as a pointer to the top of the stack. A stack is a program area for temporary storage of arbitrary data. The convenience of the stack lies in the fact that its area is used repeatedly, and storing data on the stack and retrieving it from there is performed using the push and pop commands without specifying names. The stack is traditionally used to store the contents of registers used by a program before calling a subroutine, which in turn will use the processor registers for its own purposes. The original contents of the registers are popped from the stack after the subroutine returns. Another common technique is to pass the parameters it requires to a subroutine via the stack. The subroutine, knowing in what order the parameters are placed on the stack, can take them from there and use them during its execution.

A distinctive feature of the stack is the unique order in which the data contained in it is retrieved: at any given time, only the top element is available on the stack, that is, the element that was last loaded onto the stack. Popping the top element from the stack makes the next element available. Stack elements are located in the memory area allocated for the stack, starting from the bottom of the stack (at its maximum address) at successively decreasing addresses. The address of the top, accessible element is stored in the stack pointer register SP.

Special registers are only available in privileged mode and are used by the operating system. They control various cache blocks, main memory, input/output devices, and other devices in the computing system.

There is one register that is accessible in both privileged and user modes. This is the PSW (Program State Word) register, which is called the flag register. The flag register contains various bits needed by the central processor, the most important are condition codes that are used in comparisons and conditional jumps. They are set in each cycle of the processor's arithmetic-logical unit and reflect the state of the result of the previous operation. The contents of the flag register depend on the type of computing system and may include additional fields that indicate: the machine mode (for example, user or privileged); trace bit (which is used for debugging); processor priority level; interrupt enable status. The flag register is usually read in user mode, but some fields can only be written in privileged mode (for example, the bit that indicates mode).

The command pointer register contains the address of the next command in the queue for execution. After selecting an instruction from memory, the instruction register is adjusted and the pointer moves to the next instruction. The instruction pointer monitors the progress of program execution, indicating at each moment the relative address of the instruction following the one being executed. The register is not programmatically accessible; The address increment in it is performed by the microprocessor, taking into account the length of the current instruction. The commands for jumps, interrupts, calling subroutines and returning from them change the contents of the pointer, thereby making transitions to the required points in the program.

The accumulator register is used in the vast majority of instructions. Frequently used commands using this register have a shortened format.

To process information, data is usually transferred from memory cells to general-purpose registers, performing an operation central processor and transferring the results to main memory. Programs are stored as a sequence of machine instructions that must be executed by the central processor. Each command consists of an operation field and operand fields - the data on which the operation is performed. A set of machine instructions is called machine language. The programs are executed as follows. The machine instruction pointed to by the program counter is read from memory and copied into the instruction register, where it is decoded and then executed. After its execution, the program counter points to the next command, etc. These actions are called a machine cycle.

Most central processors have two operating modes: kernel mode and user mode, which is specified by a bit in the processor status word (flag register). If the processor is running in kernel mode, it can execute all instructions in the instruction set and use all the capabilities of the hardware. The operating system runs in kernel mode and provides access to all hardware. User programs run in user mode, which allows execution of many commands but makes available only a portion of the hardware.

To communicate with the operating system, a user program must issue a system call that enters kernel mode and activates operating system functions. The trap (emulated interrupt) command switches the processor's operating mode from user to kernel mode and transfers control to the operating system. After completion of work, control returns to the user program, to the command following the system call.

In computers, in addition to instructions for executing system calls, there are interrupts that are called by hardware to warn of exception situations, such as an attempt to divide by zero or a floating point overflow. In all such cases, control passes to the operating system, which must decide what to do next. Sometimes you need to terminate the program with an error message, sometimes you can ignore it (for example, if a number loses significance, it can be set to zero) or transfer control to the program itself to handle certain types of conditions.

Based on the arrangement of devices relative to the central processor, internal and external devices are distinguished. External, as a rule, are most input/output devices (also called peripheral devices) and some devices designed for long-term data storage.

Coordination between individual nodes and blocks is performed using transitional hardware-logical devices called hardware interfaces. Standards for hardware interfaces in computing are called protocols - a set of technical conditions that must be provided by device developers to successfully coordinate their operation with other devices.

Numerous interfaces present in the architecture of any computing system can be divided into two large groups: serial and parallel. Through a serial interface, data is transmitted sequentially, bit by bit, and through a parallel interface - simultaneously in groups of bits. The number of bits involved in one message is determined by the interface width; for example, eight-bit parallel interfaces transmit one byte (8 bits) per cycle.

Parallel interfaces are usually more complex than serial interfaces, but provide higher performance. They are used where data transfer speed is important: for connecting printing devices, graphic input devices, devices for recording data on external media, etc. The performance of parallel interfaces is measured in bytes per second (byte/s; KB/s; MB/s).

Device serial interfaces easier; as a rule, they do not need to synchronize the operation of the transmitting and receiving devices (therefore they are often called asynchronous interfaces), but their throughput is less and the coefficient useful action below. Since data exchange through serial devices is carried out not by bytes, but by bits, their performance is measured in bits per second (bps, Kbps, Mbps). Despite the apparent simplicity of converting serial transmission speed units into parallel data transfer speed units by mechanical division by 8, such a conversion is not performed because it is not correct due to the presence of service data. As a last resort, adjusted for service data, sometimes the speed of serial devices is expressed in characters per second or in characters per second (s/s), but this value is not of a technical, but of a reference, consumer nature.

Serial interfaces are used to connect slow devices (the simplest low-quality printing devices: devices for input and output of character and signal information, control sensors, low-performance communication devices, etc.), as well as in cases where there are no significant restrictions on the duration of data exchange (digital cameras).

The second main component of a computer is memory. The memory system is constructed in the form of a hierarchy of layers (Fig. 3.). The top layer consists of the internal registers of the central processor. Internal registers provide storage capacity of 32 x 32 bits on a 32-bit processor and 64 x 64 bits on a 64-bit processor, which is less than one kilobyte in both cases. Programs themselves can manage registers (that is, decide what to store in them) without hardware intervention.

Fig.3. Typical hierarchical structure memory

The next layer contains the cache memory, which is mainly controlled by the hardware. RAM is divided into cache lines, usually 64 bytes, with addresses from 0 to 63 in line zero, from 64 to 127 in line one, etc. The most frequently used cache lines are stored in high-speed cache memory located inside or very close to the CPU. When a program needs to read a word from memory, the cache chip checks to see if the desired line is in the cache. If this is the case, then an effective access to the cache memory occurs, the request is satisfied entirely from the cache, and the memory request is not sent to the bus. A successful cache access usually takes about two clock cycles, while an unsuccessful one results in a memory access with a significant loss of time. Cache memory is limited in size due to its high cost. Some machines have two or even three levels of cache, each one being slower and larger than the previous one.

Next comes RAM (RAM - random access memory, English RAM, Random Access Memory - random access memory). This is the main working area of ​​the computing system's storage device. All CPU requests that cannot be fulfilled by the cache memory are sent to main memory for processing. When running several programs on a computer, it is advisable to place complex programs in RAM. Protecting programs from each other and moving them in memory is realized by equipping the computer with two specialized registers: the base register and the limit register.

In the simplest case (Fig. 4.a), when the program starts working, the base register is loaded with the address of the beginning of the executable program module, and the limit register indicates how much the executable program module takes up along with the data. When fetching a command from memory, the hardware checks the program counter, and if it is less than the limit register, it adds the value of the base register to it, and transfers the sum to the memory. When a program wants to read a word of data (for example, from address 10000), the hardware automatically adds the contents of the base register (for example, 50000) to that address and transfers the sum (60000) to memory. The base register allows a program to reference any part of memory following the address stored in it. In addition, the limit register prevents the program from accessing any part of the memory after the program. Thus, with the help of this scheme, both problems are solved: protection and movement of programs.

As a result of data verification and transformation, the address generated by the program and called the virtual address is translated into an address used by memory and called the physical address. The device that performs the checking and conversion is called a memory management unit or memory manager (MMU, Memory Management Unit). The memory manager is located either in the processor circuit or close to it, but is logically located between the processor and memory.

A more complex memory manager consists of two pairs of base and limit registers. One pair is for program text, the other pair is for data. The command register and all references to program text work with the first pair of registers; references to data use the second pair of registers. Thanks to this mechanism, it becomes possible to share one program between several users while storing only one copy of the program in RAM, which is excluded in a simple scheme. When program No. 1 is running, the four registers are located as shown in Fig. 4 (b) on the left, when program No. 2 is running - on the right. Managing the memory manager is a function of the operating system.

Next in the memory structure is the magnetic disk (hard disk). Disk memory is two orders of magnitude cheaper than RAM on a per-bit basis and larger in size, but accessing data located on disk takes about three orders of magnitude longer. The reason for the slow speed of a hard drive is the fact that the drive is a mechanical structure. The hard drive consists of one or more metal plates rotating at a speed of 5400, 7200 or 10800 rpm (Fig. 5.). Information is recorded on plates in the form of concentric circles. The read/write heads at each given position can read a ring on the platter called a track. Together, the tracks for a given fork position form a cylinder.

Each track is divided into a number of sectors, typically 512 bytes per sector. On modern drives outer cylinders contain more sectors than inner ones. Moving a head from one cylinder to another takes about 1 ms, and moving to a random cylinder takes 5 to 10 ms, depending on the drive. When the head is located above the desired track, you need to wait until the motor rotates the disk so that the required sector is under the head. This takes an additional 5 to 10 ms, depending on the disk rotation speed. When a sector is under the head, the read or write process occurs at speeds ranging from 5 MB/s (for low-speed drives) to 160 MB/s (for high-speed drives).

The last layer is occupied by magnetic tape. This medium was often used to create backup copies hard drive space or storage large sets data. To access information, the tape was placed in a magnetic tape reader, then it was rewound to the requested block of information. The whole process lasted minutes. The memory hierarchy described is typical, but in some embodiments not all levels or other types of them may be present (for example, an optical disk). In any case, when moving through the hierarchy from top to bottom, random access time increases significantly from device to device, and capacity grows equivalent to access time.

In addition to the types described above, many computers have read-only random access memory (ROM, Read Only Memory), which does not lose its contents when the computer system is turned off. The ROM is programmed during manufacturing and its contents cannot be changed after that. On some computers, the ROM contains boot programs used to start the computer and some I/O cards for controlling low-level devices.

Electrically erasable ROM (EEPROM, Electrically Erasable ROM) and flash RAM (flash RAM) are also non-volatile, but unlike ROM, their contents can be erased and rewritten. However, writing data to them takes much longer than writing to RAM. Therefore, they are used in exactly the same way as ROMs.

There is another type of memory - CMOS memory, which is volatile and is used to store the current date and current time. The memory is powered by a battery built into the computer and may contain configuration parameters (for example, indicating which hard drive to boot from).

3. I/O devices

Other devices that interact closely with the operating system are input/output devices, which consist of two parts: the controller and the device itself. The controller is a microcircuit (chipset) on a board that is inserted into a connector, which receives and executes commands from the operating system.

For example, the controller receives a command to read a specific sector from the disk. To execute the command, the controller converts the linear number of the disk sector into the number of the cylinder, sector and head. The conversion operation is complicated by the fact that the outer cylinders may have more sectors than the inner ones. The controller then determines which cylinder is located above this moment head, and gives a sequence of pulses to move the head the required number of cylinders. After which the controller waits for the disk to rotate, placing the required sector under the head. Then the processes of reading and storing bits as they arrive from the disk, the processes of removing the header and calculating checksum. Next, the controller collects the received bits into words and stores them in memory. To carry out this work, the controllers contain built-in firmware.

The I/O device itself has a simple interface that must comply with the unified IDE standard (IDE, Integrated Drive Electronics - built-in drive interface). Since the device interface is hidden by the controller, the operating system sees only the controller interface, which may differ from the device interface.

Since controllers for different devices I/O devices differ from each other, then to manage them you need appropriate software - drivers. Therefore, each controller manufacturer must supply drivers for the controllers it supports. operating systems. There are three ways to install the driver into the operating system:

Rebuild the kernel with a new driver and then reboot the system, which is how many UNIX systems work;

Create an entry in the file included in the operating system that a driver is required and reboot the system; during the initial boot, the operating system will find required driver and download it; This is how the Windows operating system works;

Accept new drivers and quickly install them using the operating system while it is running; This method is used by USB and IEEE 1394 removable buses, which always require dynamically loaded drivers.

There are certain registers for communication with each controller. For example, a minimal disk controller may have registers to specify the disk address, memory address, sector number, and direction of operation (read or write). To activate the controller, the driver receives a command from the operating system, then translates it into values ​​suitable for writing to device registers.

On some computers, I/O device registers are mapped to the operating system's address space so that they can be read or written like ordinary words in memory. Register addresses are placed in RAM outside the reach of user programs in order to protect user programs from the hardware (for example, using the base and limit registers).

On other computers, device registers are located in special I/O ports, and each register has its own port address. On such machines, IN and OUT commands are available in privileged mode, which allow drivers to read and write registers. The first scheme eliminates the need for special I/O instructions, but uses some address space. The second scheme does not affect the address space, but requires special commands. Both schemes are widely used. Data input and output is carried out in three ways.

1. The user program issues a system request, which the kernel translates into a procedure call for the corresponding driver. The driver then begins the I/O process. During this time, the driver executes a very short program loop, constantly polling the readiness of the device it is working with (usually there is some bit that indicates that the device is still busy). When the I/O operation completes, the driver places the data where it is needed and returns to the initial state. The operating system then returns control to the program that made the call. This method is called ready wait or active wait and has one disadvantage: the processor must poll the device until it completes its work.

2. The driver starts the device and asks it to issue an interrupt when the I/O is completed. After this, the driver returns the data, the operating system blocks the calling program, if necessary, and begins to perform other tasks. When the controller detects the end of a data transfer, it generates an interrupt to signal the completion of the operation. The mechanism for implementing input-output occurs as follows (Fig. 6.a):

Step 1: the driver transmits the command to the controller, writing information to the device registers; The controller starts the I/O device.

Step 2: After finishing reading or writing, the controller sends a signal to the interrupt controller chip.

Step 3: If the interrupt controller is ready to receive an interrupt, then it sends a signal to a specific pin of the CPU.

Step 4: The interrupt controller places the I/O device number on the bus so that the CPU can read it and know which device has completed its work. When the CPU receives an interrupt, the contents of the program counter (PC) and processor status word (PSW) are pushed onto the current stack, and the processor switches to privileged mode (operating system kernel mode). The I/O device number can be used as an index to a part of memory used to find the address of the interrupt handler of this device. This part of the memory is called the interrupt vector. When the interrupt handler (the part of the device driver that sent the interrupt) begins its work, it removes the program counter and processor status word located on the stack, stores them, and queries the device for information about its state. After interrupt processing is completed, control returns to the user program that was running before, to the command whose execution has not yet been completed (Fig. 6 b).

3.For input and output of information, a direct memory access controller (DMA, Direct Memory Access) is used, which controls the flow of bits between RAM and some controllers without constant intervention from the central processor. The processor calls the DMA chip, tells it how many bytes to transfer, provides device and memory addresses and the direction of data transfer, and lets the chip do its own thing. Upon completion, the DMA issues an interrupt, which is handled accordingly.

Interrupts can occur at inappropriate times, such as while another interrupt is being processed. For this reason, the CPU has the ability to disable interrupts and enable them later. While interrupts are disabled, all devices that have completed their work continue to send their signals, but the processor is not interrupted until interrupts are enabled. If multiple devices exit at the same time while interrupts are disabled, the interrupt controller decides which one should be processed first, usually based on the static priorities assigned to each device.

The Pentium computing system has eight buses (cache bus, local bus, memory bus, PCI, SCSI, USB, IDE and ISA). Each bus has its own data transfer speed and functions. The operating system must contain information about all buses to manage the computer and configure it.

ISA bus (Industry Standard Architecture) - first appeared on IBM PC/AT computers, operates at 8.33 MHz and can transfer two bytes per clock cycle with a maximum speed of 16.67 MB/s; it is included in the system for backward compatibility with older slow I/O cards.

PCI bus (Peripheral Component Interconnect) - created by Intel as a successor to the ISA bus, can operate at a frequency of 66 MHz and transfer 8 bytes per clock at a speed of 528 MB/s. Currently PCI buses use most high-speed I/O devices, as well as computers with non-Intel processors, since many I/O cards are compatible with it.

The local bus in the Pentium system is used by the CPU to transfer data to the PCI bridge chip, which accesses memory on a dedicated memory bus, often running at 100 MHz.

The cache bus is used to connect external cache, since Pentium systems have a first-level cache (L1 cache) built into the processor and a large external second-level cache (L2 cache).

The IDE bus is used to connect peripheral devices: disks and CD-ROM readers. The bus is a descendant of the PC/AT disk controller interface and is currently standard on all systems based on Pentium processors.

USB bus (Universal Serial Bus, universal serial bus) is designed for connecting slow input/output devices (keyboard, mouse) to a computer. It uses a small four-wire connector with two wires supplying power to USB devices.

The USB bus is a centralized bus over which the host device polls I/O devices every millisecond to see if they have data. It can manage data downloads at a speed of 1.5 MB/s. All USB devices use the same driver, so they can be connected to the system without rebooting it.

The SCSI bus (Small Computer System Interface) is a high-performance bus used for fast disks, scanners and other devices that require significant bandwidth. Its performance reaches 160 MB/s. The SCSI bus is used on Macintosh systems and is popular on UNIX systems and other systems based on Intel processors.

The IEEE 1394 bus (FireWire) is a bit-serial bus and supports packet data transfer at speeds up to 50 MB/s. This property allows you to connect portable digital video cameras and other multimedia devices to your computer. Unlike a tire USB bus IEEE 1394 does not have a central controller.

The operating system must be able to recognize hardware components and be able to configure them. This requirement led Intel and Microsoft to develop a personal computer system called plug and play. Before this system, each I/O board had fixed I/O register addresses and an interrupt request level. For example, the keyboard used interrupt 1 and addresses in the range 0x60 to 0x64; The floppy disk controller used interrupt 6 and addresses 0x3F0 to 0x3F7; the printer used interrupt 7 and addresses from 0x378 to 0x37A.

If the user bought sound card and modem, it happened that these devices accidentally used the same interrupt. There was a conflict, so the devices could not work together. Possible solution It was to build a set of DIP switches (jumpers) into each board and configure each board so that the port addresses and interrupt numbers of different devices did not conflict with each other.

Plug and play allows the operating system to automatically collect information about I/O devices, centrally assign interrupt levels and I/O addresses, and then communicate this information to each board. This system runs on Pentium computers. Each computer with Pentium processor contains the motherboard on which the program is located - the BIOS system (Basic Input Output System). The BIOS contains low-level I/O programs, including procedures for reading from the keyboard, for displaying information on the screen, for I/O data from the disk, etc.

When the computer boots up, the BIOS system starts, which checks the amount of RAM installed in the system, the connection and correct operation of the keyboard and other main devices. Next, the BIOS checks the ISA and PCI buses and all devices connected to them. Some of these devices are traditional (pre-plug and play). They have fixed interrupt levels and I/O port address (for example, set using switches or jumpers on the I/O board and cannot be changed by the operating system). These devices are registered, then plug and play devices are registered. If the devices present are different from those present during the last boot, then new devices are configured.

The BIOS then determines which device to boot from by trying each of the list stored in the CMOS memory in turn. The user can change this list by entering the BIOS configuration program immediately after booting. Typically, it will first attempt to boot from the floppy disk. If this fails, the CD is tried. If your computer does not have both a floppy disk and a CD, the system boots from the hard disk. The first sector is read into memory from the boot device and executed. This sector contains a program that checks the partition table at the end of the boot sector to determine which partition is active. The secondary bootloader is then read from the same partition. It reads the operating system from the active partition and starts it.

The operating system then polls the BIOS to obtain information about the computer's configuration and checks for the presence of a driver for each device. If the driver is missing, the operating system asks the user to insert a floppy disk or CD containing the driver (these disks are supplied by the device manufacturer). If all the drivers are in place, the operating system loads them into the kernel. It then initializes the driver tables, creates any necessary background processes, and runs the password entry program or GUI at each terminal.

5. History of the development of computer technology

All IBM-compatible personal computers are equipped with Intel-compatible processors. The history of the development of microprocessors of the Intel family is briefly as follows. Intel's first universal microprocessor appeared in 1970. It was called the Intel 4004, was four-bit and had the ability to input/output and process four-bit words. Its speed was 8000 operations per second. The Intel 4004 microprocessor was designed for use in programmable calculators with a memory size of 4 KB.

Three years later, Intel released the 8080 processor, which could already perform 16-bit arithmetic operations, had a 16-bit address bus and, therefore, could address up to 64 KB of memory (2,516 0 = 65536). 1978 was marked by the release of the 8086 processor with a word size of 16 bits (two bytes), a 20-bit bus and could operate with 1 MB of memory (2 520 0 = 1048576, or 1024 KB), divided into blocks (segments) of 64 KB each. every. The 8086 processor was included in computers compatible with the IBM PC and IBM PC/XT. The next major step in the development of new microprocessors was the 8028b processor, which appeared in 1982. It had a 24-bit address bus, could manage 16 megabytes of address space and was installed on computers compatible with IBM PC/AT. In October 1985, the 80386DX was released with a 32-bit address bus (maximum address space 4 GB), and in June 1988, the 80386SX was released, which was cheaper than the 80386DX and had a 24-bit address bus. Then in April 1989 the 80486DX microprocessor appeared, and in May 1993 the first version of the Pentium processor appeared (both with a 32-bit address bus).

In May 1995 in Moscow at the international exhibition Comtec-95, Intel presented new processor- P6.

One of the most important goals set during the development of the P6 was to double the performance of the Pentium processor. At the same time, the production of the first versions of P6 will be carried out according to the already debugged "Intel" and used in production latest versions Pentium semiconductor technology (O.6 microns, 3.3 V).

Using the same manufacturing process ensures that the P6 can be mass produced without major problems. However, this means that doubling performance is achieved only through comprehensive improvements in the processor microarchitecture. The P6 microarchitecture was designed using a carefully thought-out and tuned combination of various architectural techniques. Some of them were previously tested in processors of large computers, some were proposed by academic institutions, and the rest were developed by Intel engineers. This unique combination of architectural features, which Intel refers to as "dynamic execution", allowed the first P6 dies to exceed originally planned performance levels.

When compared with alternative Intel processors of the x86 family, it turns out that the P6 microarchitecture has much in common with the microarchitecture of NexGen's Nx586 and AMD's K5 processors, and, although to a lesser extent, with Cyrix's M1. This commonality is explained by the fact that engineers from four companies were solving the same problem: introducing elements of RISC technology while maintaining compatibility with Intel x86 CISC architecture.

Two crystals in one package

The main advantage and unique feature of the P6 is its positioned in the same package with the processor there is a secondary static cache memory of 256 KB in size, connected to the processor by a specially dedicated bus. This design should significantly simplify the design of P6-based systems. The P6 is the first microprocessor designed for mass production to contain two chips in one package.

The CPU die in the P6 contains 5.5 million transistors; L2 cache crystal - 15.5 million. By comparison, the latest Pentium model included about 3.3 million transistors, and the L2 cache was implemented using an external set of memory dies.

Such a large number of transistors in the cache is explained by its static nature. The P6's static memory uses six transistors to store one bit, while dynamic memory would only need one transistor per bit. Static memory is faster, but more expensive. Although the number of transistors on a chip with a secondary cache is three times greater than on a processor chip, the physical dimensions of the cache are smaller: 202 square millimeters versus 306 for the processor. Both crystals are enclosed together in a ceramic package with 387 contacts ("dual cavity pin-drid array"). Both dies are manufactured using the same technology (0.6 µm, 4-layer metal-BiCMOS, 2.9 V). Estimated maximum power consumption: 20 W at 133 MHz.

The first reason for combining the processor and secondary cache in one package is to facilitate the design and production of high-performance P6-based systems. The performance of a computing system built on fast processor, very much depends on the fine tuning of the processor environment chips, in particular the secondary cache. Not all computer manufacturing companies can afford the appropriate research. In P6, the secondary cache is already configured optimally for the processor, which simplifies the design of the motherboard.

The second reason for the merger is to improve productivity. The second-level CPU is connected to the processor by a specially dedicated 64-bit wide bus and operates at the same clock frequency as the processor.

The first Pentium processors at 60 and 66 MHz accessed the secondary cache over a 64-bit bus at the same clock speed. However, as Pentium clock speeds increased, it became too difficult and expensive for designers to maintain such clock speeds on the motherboard. Therefore, frequency dividers began to be used. For example, for a 100 MHz Pentium, the external bus operates at a frequency of 66 MHz (for a 90 MHz Pentium, it is 60 MHz, respectively). The Pentium uses this bus both for accessing the secondary cache and for accessing main memory and other devices, such as the PCI chipset.

Using a dedicated bus to access the secondary cache improves system performance. Firstly, this achieves complete synchronization of processor and bus speeds; secondly, competition with other I/O operations and associated delays are eliminated. The L2 cache bus is completely separate from the external bus, through which memory and external devices. The 64-bit external bus can operate at half, one-third, or one-fourth the speed of the processor, while the secondary cache bus operates independently at full speed.

Combining the processor and secondary cache into a single package and communicating them over a dedicated bus is a step toward the performance-enhancing techniques used in the most powerful RISC processors. Thus, in the Alpha 21164 processor from Digital, the second level cache of 96 kB is located in the processor core, like the primary cache. This provides very high cache performance by increasing the number of transistors on the chip to 9.3 million. The performance of the Alpha 21164 is 330 SPECint92 at 300 MHz. The P6's performance is lower (Intel estimates 200 SPECint92 at 133 MHz), but the P6 provides the best cost/performance ratio for its potential market.

When assessing the cost/performance ratio, it is worth considering that while the P6 may be more expensive than its competitors, most other processors must be surrounded by an additional set of memory chips and a cache controller. Additionally, to achieve comparable cache performance, other processors will need to use larger caches than 256 KB.

Intel typically offers numerous variations of its processors. This is done in order to satisfy the varied requirements of system designers and leave less space for competing models. Therefore, we can assume that soon after the start of production of the P6, both modifications with an increased volume of secondary cache memory, and cheaper modifications with an external location of the secondary cache, but with a retained dedicated bus between the secondary cache and the processor, will appear.

Pentium as a starting point

Pentium processor with its pipeline and superscalar architecture has achieved impressive levels of performance. The Pentium contains two 5-stage pipelines that can run in parallel and execute two integer instructions per machine clock cycle. In this case, only a pair of commands can be executed in parallel, following each other in the program and satisfying certain rules, for example, the absence of register dependencies of the “write after read” type.

In P6, to increase throughput, a transition was made to a single 12-stage pipeline. Increasing the number of stages leads to a decrease in the work performed at each stage and, as a result, to a reduction in the time a team spends at each stage by 33 percent compared to the Pentium. This means that using the same technology used to produce a P6 as a 100 MHz Pentium would result in a P6 clocked at 133 MHz.

The power of the Pentium's superscalar architecture, with its ability to execute two instructions per clock, would be difficult to beat without a completely new approach. P6's new approach eliminates the rigid relationship between the traditional "fetch" and "execute" phases, where the sequence of commands through these two phases corresponds to the sequence of commands in the program.

The new approach involves the use of the so-called command pool and new effective methods predicting the future behavior of the program. In this case, the traditional “execution” phase is replaced by two: “dispatching/execution” and “rollback”. As a result, commands may start executing in any order, but always complete their execution in accordance with their original order in the program. The P6 core is implemented as three independent devices interacting through a command pool (Fig. 1).

The main problem in improving productivity

The decision to organize the P6 as three independent devices interacting via an instruction pool was made after a thorough analysis of the factors limiting the performance of modern microprocessors. A fundamental fact, true of the Pentium and many other processors, is that the processor's power is not used to its fullest when executing real-world programs.

While processor speeds have increased at least 10 times over the past 10 years, main memory access times have decreased by only 60 percent. This increasing lag in memory speed relative to processor speed was the fundamental problem that had to be solved when designing the P6.

One possible approach to solving this problem is to shift its focus to the development of high-performance components surrounding the processor. However, mass production of systems that include both a high-performance processor and high-speed specialized environment chips would be too expensive.

One possible brute force solution could be to increase the size of the L2 cache to reduce the percentage of times the cache misses the required data.

This solution is effective, but also extremely expensive, especially considering today's speed requirements for L2 cache components. The P6 was designed from the point of view of efficient implementation of a complete computing system, and it was required that high performance of the entire system be achieved using a low-cost memory subsystem.

Thus, The P6's combination of architectural techniques such as improved branch prediction (the next sequence of commands is almost always correctly determined), data flow analysis (the optimal order of command execution is determined) and lookahead execution (the predicted sequence of commands is executed without downtime in the optimal order) doubled performance in relation to Pentium using the same production technology. This combination of methods is called dynamic execution.

Currently, Intel is developing a new 0.35 micron production technology, which will make it possible to produce P6 processors with a core clock speed of over 200 MHz.

P6 as a platform for building powerful servers

Among the most significant trends in computer development in recent years can be highlighted as the increasing use of systems based on x86 family processors as application servers, and the growing role of Intel as a supplier of non-processor technologies, such as buses, network technologies, video compression, flash memory and system administration tools.

The release of the P6 processor continues Intel's policy of bringing capabilities previously found only in more expensive computers to the mass market. Parity control is provided for the internal P6 registers, and the 64-bit bus connecting the processor core and the second level cache is equipped with error detection and correction tools. New diagnostic capabilities built into the P6 enable manufacturers to design more reliable systems. The P6 provides the ability to obtain information through processor contacts or using software about more than 100 processor variables or events occurring in it, such as the absence of data in the cache, the contents of registers, the appearance of self-modifying code, and so on. The operating system and other programs can read this information to determine the state of the processor. P6 also features improved support for checkpoints, meaning the computer can be rolled back to a previously recorded state if an error occurs.

Similar documents

    Computer technology appeared a long time ago, since the need for various kinds of calculations existed at the dawn of the development of civilization. Rapid development of computer technology. Creation of the first PCs, mini-computers since the 80s of the twentieth century.

    abstract, added 09.25.2008

    Characteristics of technical and preventive maintenance systems for computer equipment. Diagnostic programs for operating systems. Interrelation of automated control systems. Protecting your computer from external adverse influences.

    abstract, added 03/25/2015

    Development of an information and analytical system for analyzing and optimizing the configuration of computer equipment. Structure of automated control of computer equipment. Software, justification of the economic efficiency of the project.

    thesis, added 05/20/2013

    The manual stage of computer technology development. Positional number system. Development of mechanics in the 17th century. Electromechanical stage of development of computer technology. Fifth generation computers. Options and distinctive features supercomputer.

    course work, added 04/18/2012

    The structure and principle of operation of a personal computer (PC). Diagnostics of PC performance and identification of faults. Tasks Maintenance computer facilities. Development of methods for maintaining equipment in working condition.

    course work, added 07/13/2011

    Study of foreign and domestic practices in the development of computer technology, as well as prospects for the development of computers in the near future. Technologies for using computers. Stages of development of the computing industry in our country. Merging PC and communications.

    course work, added 04/27/2013

    Classification of design procedures. History of the synthesis of computer technology and engineering design. Functions of computer-aided design systems, their software. Features of the use of three-dimensional scanners, manipulators and printers.

    abstract, added 12/25/2012

    Automation of data processing. Computer science and its practical results. History of the creation of digital computer technology. Electromechanical computers. Usage vacuum tubes and computers of the first, third and fourth generations.

    thesis, added 06/23/2009

    The concept and characteristics of a personal computer, its main parts and their purpose. Computer science teaching tools and features of organizing work in a computer science classroom. Equipment of workplaces and application of software.

    abstract, added 07/09/2012

    The composition of a computer system is the configuration of the computer, its hardware and software. Devices and instruments that form the hardware configuration of a personal computer. Main memory, I/O ports, peripheral adapter.




Top