
- •Основные понятия.
- •Понятие архитектуры и организации эвм.
- •Обобщенное понятие архитектуры.
- •Виды архитектуры эвм и их составные элементы.
- •Краткое представление основных элементов прикладной архитектуры компьютеров. Типы, форматы и способы представления данных, аппаратно поддерживаемых в эвм.
- •Для числовых данных необходимо представлять диапазон и точность. Программная модель (регистровая структура) процессора.
- •1) Полная специализация регистров, когда каждый регистр используется только по одному специальному назначению.
- •2) Полная универсализация, когда каждый регистр можно использовать по любому назначению.
- •Регистр ip (Instruction Pointer).
- •Регистр fr (Flag Register).
- •If (Interrupt Flag) – Флаг Прерывания
- •Адресная структура основной памяти и принципы размещения информации в ней. Принципы формирования физического адреса.
- •Режимы адресации.
- •Структура и форматы машинных команд.
- •Базовая система команд.
- •1. Поддержка защищённого режима (i286).
- •3. Включение в Pentium блока mmx (Multimedia Extension), система команд, которая содержит порядка 60 команд для поддержки принципа векторной обработки на уровне целочисленных данных.
- •Внедрение в кристалл процессора блока sse (sse2)
- •Cisc- и risc – архитектура.
- •Основные особенности risc – архитектуры.
- •Стремление к выполнению большинства машинных команд за 1 машинный такт (машинный цикл).
- •Широкое использование принципов суперскалярной и суперконвейерной обработки.
- •Команды загрузки и сохранения системных регистров.
- •Команды ввода/вывода: in/out, ins/outs.
- •Команда останова процессора - hlt.
- •Упрощенная структура компьютера (эвм).
- •1. Центральную;
- •2. Периферийную.
- •Организация ввода/вывода. Понятие, основные характеристики и уровни представления интерфейса.
- •1) Совокупность линий, шин, обеспечивающих обмен информацией между устройствами.
- •2) Алгоритм (протокол) обмена, определяющий последовательность организации передачи информации по линиям интерфейса.
- •3) Разделение интерфейса на ряд уровней представлений.
- •Основные характеристики интерфейса:
- •Пропускная способность определяется максимальным количеством бит или байт данных, передаваемых по интерфейсу за одну секунду.
- •Информационная ширина (количество бит или байт данных, передаваемых параллельно по шине данных, т.Е. Разрядность линии).
- •Максимально возможное удаление устройств, подключаемых к интерфейсу.
- •Шины (интерфейсы) персональных компьютеров на базе процессоров Pentium.
- •Основные аспекты организации ввода/вывода.
- •1.Структура компьютера в плане организации связей между ядром и периферийными устройствами:
- •2. Адресация к ву или пу. Основным аспектом, связанным с адресацией ву, является объединение или разделение адресных пространств памяти и ввода/вывода.
- •3.Способ организации ввода/вывода:
- •Адресация ву.
- •Способы адресации портов ввода/вывода и их сравнительный анализ.
- •Раздельное адресное пространство.
- •Единое адресное пространство.
- •Организация ввода/вывода с отображением на память обладает следующими достоинствами:
- •Недостатками использование совмещенного адресного пространства являются:
- •Способы организации ввода/вывода.
- •Ввод/вывод по прерыванию.
- •Прямой доступ к памяти – dma (Direct Memory Access).
- •2) Стандартные контроллеры dma позволяют реализацию следующих видов обмена:
- •В современных моделях пк для обмена с жесткими дисками наряду с dma также используется и pio. Канальный ввод/вывод (квв).
- •Основные функции квв:
- •Функции по установлению логической связи между ву и оп.
- •2) Функции, связанные с непосредственной передачей данных между ву и оп.
- •3) Функции, связанные с завершением обмена и разрушением логической связи между ву и оп.
- •Участие цп в организации квв сводится к выполнению следующих функций:
- •Классификация квв.
- •Сравнение Канального вв с pio и с dma.
- •Организация прерываний. Основные отличия организации прерываний в защищенном режиме по сравнению с реальным режимом.
- •Программируемый контроллер прерываний (pic i8259a).
- •Основные функции pic.
- •Внутренняя структура pic.
- •Шифратор выделенного запроса.
- •Основные режимы работы pic.
- •1) Fnm (Fully Nested Mode – Режим вложенных прерываний).
- •Взаимодействие между cpu и ведущим pic.
- •Основы программирования pic.
- •Приказы инициализации.
- •Icw1 имеет следующий формат:
- •Icw2 определяет базовый адрес последовательности векторов прерываний, размещаемых в таблице векторов прерываний. Собственно, под базовый адрес отводятся старшие 5 битов приказа(3-7).
- •Icw4 Наиболее важным битом приказа icw4 является бит 1, именуемый aeoi – Automatic End Of Interrupt.
- •Слова рабочих приказов.
- •Установка и отмена так называемого режима специального маскирования;
- •Установка и сброс режима опроса (полинга);
- •Разрешение чтения регистров irr и isr контроллера.
- •Организация центральных процессоров.
- •Как обрабатывающее устройство: цп осуществляет выполнение программ, связанных с какой-либо обработкой данных.
- •Как управляющее устройство: цп осуществляет координацию остальных устройств компьютера, а также связь компьютера с внешним миром.
- •Принципы построения и функционирования конвейеров команд.
- •Сравнение производительности последовательного процессора (без конвейера команд) и «параллельного» процессора (с конвейером команд).
- •Наличие в программах зависимостей по данным (конфликты по данным).
- •Использование различными блоками конвейера одного и того же ресурса (структурные конфликты).
- •Наличие при выполнении программы особых случаев, приводящих к прерыванию.
- •Различное время выполнения отдельных фаз машинных команд.
- •Большой разброс длительности фазы ех для различных машинных команд. Основные действия, выполняемые процессором на различных фазах (этапах) команды.
- •Санкт-Петербург
- •1. Принципы построения и функционирования компьютеров
- •1.1. Назначение компьютеров и принцип программного управления
- •1.2. Неймановский принцип программного управления
- •1.3. Структура компьютеров
- •1.4. Запоминающие устройства и организация памяти
- •1.5. Организация ввода-вывода данных
- •1.6. Принцип многоуровневой реализации функций
- •Программа
- •Аппаратура компьютера
- •2. Характеристики и классификация компьютеров
- •2.1. Характеристики компьютеров
- •2.2. Программно-аппаратный интерфейс и интерфейс прикладных программ
- •2.3. Быстродействие и производительность компьютеров
- •2.4. Емкость памяти
- •2.5. Надежность компьютеров
- •2.6. Стоимость компьютеров
- •2.7. Классификация компьютеров
- •Оглавление Предисловие 3
- •Принципы построения и функционирования компьютеров 7
- •Характеристики и классификация компьютеров 25
- •3.Архитектура компьютеров
- •3.1.Машинные слова и байты
- •3.2.Коды с обнаружением и исправлением ошибок
- •3.3. Представление данных в компьютерах
- •3.4. Способы адресации данных
- •3.5. Операции, выполняемые компьютерами
- •3.6. Системы команд компьютеров
- •3.7. Режимы работы компьютеров
- •3.8. Средства мультипрограммирования
- •3.10. Привилегированные операции и состояния процессора
- •3.11. Организация прерывания программ
- •3.12. Средства защиты памяти
- •4. Структура операционных устройств компьютера
- •4.1. Принцип микропрограммного управления операционными устройствами
- •4.2. Каноническая структура процессора
- •4.3. Конвейерные процессоры
- •5. Организация памяти компьютеров
- •5.1. Организация виртуальной памяти
- •5.2. Организация кэш-памяти
- •5.3. Организация raid – массивов



. . .
Адрес K
Адрес 1
Код операции




Адресная часть
Операционная часть

Слово, представляющее команду, разделяется на части – поля: поле кода операции, поле первого адреса, поле второго адреса и т.д. Код операции определяет наименование операции, предписываемой командой: сложить, умножить, прочитать, записать и т.д. В адресной части команды записываются адреса операндов, участвующих в операции. Структура команд обычно представляется в следующем виде:
Здесь КО – код операции, представляемый полем из l битов, А1, А2 и А3 – адреса операндов длиной в m битов. В поле кода операции можно закодировать наименования до L=2l операций номерами 0, 1, … , L-1. В поле адреса можно указать адреса M=2m операндов, представляемых целыми числами 0, 1, … , M-1.
Основные команды реализуют операторы вида:
[ А3 ] := [ А1 ] * [ А2 ],
где [ Аi ] – слово с адресом Аi, := – знак “присвоить”, * – символ операции, указанный в коде операции. В соответствии со структурой команды (1.2) и используя мнемонические обозначения кода операции и адресов, команду можно представить в следующем виде
* [ А1 ] [ А2 ] [ А3 ],
где * – символ операции и [ А1 ], [ А2 ], [ А3 ] – операнды, размещаемые в ячейках памяти с адресами А1, А2, А3. Однако эта команда, представленная в двоичной форме (1.2), хранится в памяти компьютера как слово, состоящее из последовательности битов:
,
11010011101……….10001
в котором могут быть выделены поля кода операции и адресов в соответствии со структурой команды (1.2).
Команды перехода в адресной части содержат адреса команд, к одной из которых будет выполнен переход в результате выполнения операции перехода.
Процесс вычислений, выполненных компьютером по заданной программе, состоит в последовательном выполнении команд. Первой выполняется команда, заданная начальным адресом – адресом первой команды программы. Адрес следующей команды однозначно определяется в процессе выполнения текущей команды. Основные команды выполняются в естественном порядке – в порядке их следования по адресам А, А+1, А+2 и т.д. Команды перехода определяют адрес следующей команды принудительно. Например, при положительном результате предыдущей операции адрес следующей команды будет А1, а при отрицательном результате А2, где А1 и А2 – адреса, указанные в команде перехода. Процесс вычислений заканчивается после выполнения последней команды программы.
1.3. Структура компьютеров
Компьютер как техническая система состоит из совокупности устройств, обеспечивающих хранение, обработку, ввод и вывод информации. Устройства соединяются между собой, образуя единую систему – компьютер. Совокупность устройств и связей между ними определяют структуру компьютера.
Каноническая структура компьютера. Каноническая (основополагающая) структура компьютера представлена на рис. 1.2.
Память – устройство для хранения данных в компьютере. В памяти размещаются программы и данные – исходные данные, промежуточные и конечные результаты.

Процессор – устройство для выборки команд из памяти и выполнения действий, предписанных командами. Другими словами, процессор обрабатывает команды и данные. Обработка команды состоит из следующих действий:
Процессор посылает в память адрес А команды, и из памяти в процессор выбирается команда К. Процессор дешифрирует код операции, указанный в команде, и читает из памяти операнды с адресами А, заданными в команде.
Процессор выполняет над операндами Д операцию, указанную в коде операции, в результате чего формируется результат. Результат Р, если это предписано кодом операции, записывается в память по указанному в команде адресу.
Процессор формирует адрес следующей команды в порядке естественной адресации А:= А+1 или из адресной части команд перехода А:= Ак.
После этого цикл выборки и исполнения команды повторяется.
Для обмена информацией между компьютером и внешней средой служат устройства ввода-вывода. Так, для обмена информацией с человеком наиболее широко в качестве устройств ввода используются клавиатура и мышь, указывающая позицию на экране монитора, а в качестве устройства вывода – монитор, для передачи данных между компьютером и удаленными объектами по линиям связи, например по телефонной линии, – канал связи, для ввода изображений используют сканеры, считывающие листы текста, фотографии и чертежи, для вывода текстов, графики, изображений – печатающие устройства и т.д.
Ввод-вывод информации инициируется программой с помощью команд ввода-вывода. Обрабатывая команду, процессор передает ее на исполнение указанному в команде устройству ввода‑вывода. Операция ввода сводится к передаче данных Д от устройства ввода в память, а операция вывода – к передаче данных Р из памяти в устройство вывода. Операции ввода иначе называются операциями чтения, а операции вывода – операциями записи. Поэтому команды ввода-вывода называются командами чтения‑записи.
Основные характеристики процессора:
длина обрабатываемого слова, исчисляемая в битах или байтах;
система команд процессора, определяющая состав операций и способы адресации операндов;
быстродействие, определяющее количество операций, выполняемых процессором за секунду;
стоимость.
Наиболее широкое распространение получили процессоры с длиной слова от 8 до 64 битов, т.е. от 1 до 8 байт. Системы команд процессора ориентируются на области их применения, т.е. классы задач, и существенно различаются как составом операций, так и способами адресации данных и объемом адресуемой памяти, определяющим длину адреса, указываемого в командах. Быстродействие процессора зависит от быстродействия (скорости переключения) транзисторов, определяемого типом и технологией производства полупроводниковых интегральных схем, а также способом обработки команд и выполнения операций в процессоре. Стоимость процессора зависит в первую очередь от уровня технологии производства интегральных схем и функциональных возможностей процессора, определяемых длиной обрабатываемых слов, системой команд и быстродействием процессора. Чем больше длина слова, сложнее система команд и выше быстродействие, тем больше стоимость процессора.
Основные характеристики памяти – емкость и быстродействие. Емкость памяти – предельное количество размещаемой информации. Емкость исчисляется в килобайтах (Кбайт), мегабайтах (Мбайт), гигабайтах (Гбайт) и терабайтах (Тбайт): 1 Кбайт = 1024 байт, 1 Мбайт = 1024 Кбайт, 1 Гбайт = 1024 Мбайт, 1 Тбайт = 1024 Гбайт. Быстродействие памяти определяется затратами времени на передачу некоторого объема данных при их чтении из памяти и записи в память и существенно зависит от типа устройств, используемых для организации памяти.
Каноническая структура компьютера (см. рис. 1.2) соответствует неймановскому принципу программного управления и в принципе обеспечивает реализацию программ. Однако каждая область применения компьютеров, определяемая классом задач, решение которых возлагается на компьютеры, порождает специфичные требования к компьютерам:
емкость памяти должна быть достаточной для хранения данных и программ, соответствующих области применения компьютера;
быстродействие процессора, памяти и устройств ввода-вывода должны быть достаточны для выполнения программ за заданное время, т.е. производительность компьютера должна обеспечивать решение требуемого количества задач за установленное время;
стоимость компьютера и его эксплуатации должна обеспечивать экономическую эффективность компьютерной технологии обработки данных, т.е. быть ниже стоимости обработки данных другими методами, например с помощью калькулятора и таблиц для записи вычисляемых результатов.
В вычислительной технике для хранения, обработки и ввода-вывода информации используется широкая номенклатура разнотипных устройств, отличающихся быстродействием, емкостью и стоимостью. Поэтому в различных компьютерах используются разнотипные процессоры, память организуется на основе запоминающих устройств с различными принципами хранения и доступа к информации и для ввода-вывода используются различные устройства, объединяемые в структуры более сложные, чем каноническая структура. Таким образом, каноническая структура компьютера – это прообраз структурной организации компьютеров, на основе которого строятся различные варианты компьютеров для различных областей применения.
Интерфейсы. Устройства соединяются между собой обычно проводными линиями, обеспечивающими передачу электрических сигналов (рис. 1.3). В течение некоторого интервала времени по каждой линии может быть передан двоичный сигнал со значением b = 0 или b = 1, т.е. бит информации. Совокупность линий, соединяющих устройства, называется шиной.
Линия
Шина
Устройство
B
Устройство
A
Рис. 1.3. Сопряжение устройств
компьютера
Совокупность линий (шина) и алгоритм взаимодействия устройств путем передачи сигналов по линиям называется интерфейсом. Подразумевая наличие алгоритма, определяющего порядок взаимодействия устройств, шину, связывающую устройства, называют интерфейсом, и термины шина и интерфейс рассматривают как синонимы.
Обмен информацией между устройствами инициируется одним из устройств, которое формирует определенную алгоритмом совокупность сигналов. Реагируя на эти сигналы, другое устройство вступает в процесс передачи информации (сигналов) в порядке, заданном алгоритмом функционирования интерфейса.
Интерфейс определяется на двух уровнях: логическом и конструктивном (физическом). Логический интерфейс устанавливает состав линий интерфейса, т.е. шины, и алгоритм передачи сигналов и данных по линиям. Конструктивный интерфейс устанавливает электрические и временные параметры сигналов, передаваемых по линиям интерфейса: уровни напряжения, соответствующие значениям 0 и 1, время переключения сигналов и их длительность и т.д. Кроме того, конструктивный интерфейс устанавливает тип проводников, из которых составляется интерфейсная шина, тип разъемов и распределение линий по контактам разъемов.
Интерфейсы подразделяются на последовательные и параллельные. Последовательный интерфейс обеспечивает передачу информации побитно – бит за битом. Параллельный интерфейс обеспечивает передачу информации байтами или словами.
Для обеспечения возможности подключения разнотипных устройств, например различных устройств ввода‑вывода, интерфейсы стандартизуются и называются стандартными интерфейсами.
Основная характеристика интерфейса – пропускная способность, определяемая предельным количеством данных, которое может быть передано через интерфейс за секунду. Пропускная способность зависит от типа электронных схем, формирующих сигналы, передаваемые по линиям, числа, типа и длины линий, и алгоритма обмена данными, определяющего порядок взаимодействия устройств при передаче данных через интерфейс. Другая характеристика интерфейса – предельно допустимая длина интерфейса, определяющая предельное расстояние между сопрягаемыми устройствами.
1.4. Запоминающие устройства и организация памяти
Для построения памяти могут использоваться устройства с различными физическими принципами хранения информации и различной организацией доступа к ней. Устройства, предназначенные для хранения информации и селективного доступа к ней, называются запоминающими устройствами или накопителями.
Основные характеристики запоминающего устройства (ЗУ) – емкость, быстродействие и стоимость. Емкость ЗУ определяется предельным количеством информации, размещаемым в ЗУ, и исчисляется в кило-, мега-, гига- и терабайтах. Быстродействие ЗУ характеризуется затратами времени на чтение‑запись информации при обращении к ЗУ. Стоимость ЗУ – это затраты средств в денежном выражении на хранение всего объема информации, определяемого емкостью ЗУ. Для сравнения качества ЗУ различных типов используется характеристика, называемая удельной стоимостью и равная стоимости ЗУ, деленной на емкость ЗУ. Удельная стоимость имеет размерность, например, доллар/Мбайт.
Наиболее широкое применение получили следующие типы ЗУ: полупроводниковые, магнитные, оптические и магнитооптические.
Полупроводниковые ЗУ. Полупроводниковые ЗУ строятся на основе интегральных схем памяти. Наиболее широко используются интегральные схемы емкостью до нескольких гигабайт и с длительностью цикла обращения (чтения‑записи) порядка десятка наносекунд. Полупроводниковые ЗУ обеспечивают хранение слов заданной длины (обычно до 8 байт) и требуемую емкость (от десятков мегабайт до гигабайт). Функциональная организация полупроводниковых ЗУ представлена на рис 1.4.















Рис. 1.4. Функциональная организация полупроводникового ЗУ
Адрес
Чтение
Запись
Слово
Дешифратор
Ячейки
E-1
…
…
…
A
…
…
…
2
1
0
Обращение к ЗУ производится с указанием адреса слова. Дешифратор выделяет ячейку с указанным адресом, из которой по сигналу «Чтение» читается или в которую по сигналу «Запись» записывается слово. Промежуток времени от момента начала обращения к ЗУ до получения или записи слова данных называется временем доступа к ЗУ. Промежуток времени, необходимый ЗУ для выполнения операции чтения или записи, иначе называется циклом обращения к ЗУ. Длительность цикла обращения к полупроводниковому ЗУ Tп зависит от быстродействия электронных элементов, на которых строятся интегральные схемы, и емкости интегральной схемы и всего ЗУ,
а также от используемой полупроводниковой технологии. Длительность цикла Tп постоянна при обращении к ячейке с любым адресом и характеризует быстродействие полупроводникового ЗУ. За единицу времени можно прочитать или записать V=1/ Tп слов или V=n/ Tп байтов, где n – длина слова в байтах. Так, при длине слова n=4 байта и длительности цикла Tп=10 нс производительность полупроводникового ЗУ составляет V=400 Мбайт/с.
Наиболее существенное свойство полупроводниковых ЗУ – независимость времени доступа от местоположения данных в памяти. В связи с этим ЗУ такого типа выделяются в особый класс ЗУ – ЗУ с произвольным доступом (RAM – Random Access Memory).
ЗУ на магнитных носителях. ЗУ на магнитных носителях подразделяются на три основных типа: ЗУ на магнитных дисках, ЗУ на дискетах, ЗУ на магнитной ленте.
ЗУ на магнитных дисках строятся по схеме, представленной на рис. 1.5. В качестве носителя информации используется магнитная пленка, нанесенная на диск. Запись и чтение данных производится магнитной головкой. В одной точке диска может быть записан один бит информации – значения 0 или 1. Данные размещаются по дорожкам 0, 1,…, D-1, выделяемым фиксированными положениями механизма доступа, несущего головку. Каждая дорожка разделяется на секторы, в которых размещаются последовательности битов, образующие сегменты данных. Наименьшей адресуемой единицей данных является сегмент.
Дорожки
Адрес сегмента состоит из адреса цилиндра, адреса дорожки и адреса сектора. Обращение к сегменту данных с целью их записи или чтения разделяется на следующие этапы:
1. Перемещение механизма доступа на заданный цилиндр. Длительность этого этапа составляет от 0, если механизм доступа уже находится на заданном цилиндре, до υ1, если механизм должен переместиться между крайними дорожками, и является случайной величиной.
2. Ожидание подхода заданного сектора на позицию головки. Длительность этого этапа также случайная величина, лежащая в диапазоне от 0 до υ2=1/, где – скорость вращения диска (оборот/с).
3. Запись-чтение сегмента данных. Длительность этого этапа зависит от числа секторов и скорости вращения диска. При записи-чтении данные передаются со скоростью V байт/с, зависящей от плотности записи информации на диске, которая определяется свойствами системы «головка-диск». ЗУ на магнитных дисках имеют емкость десятки Гбайт и среднее время доступа составляет десяток миллисекунд.
ЗУ на магнитных дискетах состоят из дисковода, обеспечивающего вращение сменной дискеты и перемещение магнитной головки на заданную дорожку. Наиболее широко используются дискеты диаметром 3,5'', емкость которых составляет до 1,44 Мбайт. Время позиционирования между соседними дорожками составляет 3‑6 мс, максимальное время позиционирования – до 100 мс. Скорость вращения дискеты – 300 об/мин, в результате чего максимальное время ожидания перехода после окончания позиционирования составляет 200 мс. Скорость передачи данных обычно равна 250‑500 Кбайт/с.
ЗУ на магнитных дисках и дискетах обеспечивают доступ к затребованной единице данных (сегменту данных) за случайный промежуток времени, ограниченный предельным временем позиционирования и предельным временем ожидания. Такого рода ЗУ относятся к классу ЗУ с прямым доступом.
ЗУ на магнитной ленте состоят из лентопротяжного механизма (стримера) и кассет (картриджей) с магнитной лентой, обычно шириной 8 мм (рис. 1.6). Запись-чтение данных происходит при движении ленты и доступ к сегменту данных происходит при последовательном продвижении ленты из начала в конец или из конца в начало. ЗУ такого типа называются ЗУ с последовательным доступом.
ЗУ на оптических дисках. ЗУ на оптических дисках (компакт‑дисках) относятся к классу ЗУ с последовательным доступом и функционируют подобно ЗУ с магнитными лентами. Компакт‑диски имеют емкость до тысячи Мбайт. Дисководы для компакт‑дисков обеспечивают среднее время доступа порядка 20‑35 мс и скорость передачи данных порядка 0,9‑5,5 Мбайт/с. Стоимость хранения одного мегабайта информации невелика и составляет для компакт-дисков без перезаписи (CD‑R), но значительно больше для компакт‑дисков с перезаписью информации (CD‑RW). Оптические диски являются основными носителями для ввода в компьютер больших объемов информации: программных комплексов, справочной информации и т.д., а также для архивирования больших объемов данных.
Сравнительные характеристики ЗУ. Вышепредставленные характеристики позволяют сделать следующие выводы:
Только полупроводниковые ЗУ имеют малое время доступа, соответствующее темпу работы процессора. Однако удельная стоимость хранения данных в полупроводниковых ЗУ высока и ограничивает емкость полупроводниковой памяти.
Остальные типы ЗУ обеспечивают низкую удельную стоимость хранения данных, однако имеют низкое быстродействие – значительное время доступа к данным и невысокую скорость передачи данных.
Многоуровневая организация памяти. Память компьютера должна обеспечивать:
емкость, соответствующую области применения компьютера, т.е. классу решаемых задач;
быстродействие, достаточное для обеспечения работы процессора и устройств ввода‑вывода;
минимальную стоимость.
В общем случае ни одно из вышеперечисленных ЗУ не удовлетворяет этим трем противоречивым требованиям. Так, полупроводниковое ЗУ для хранения большого объема данных, исчисляемого в гигабайтах, будет крайне дорогим. В связи с этим память компьютеров строится из ЗУ нескольких типов по двухуровневой схеме (рис. 1.7).
…
Для обеспечения высокого быстродействия процессора используется полупроводниковая память ограниченной емкости. Процессор имеет прямой доступ только к этой памяти, и ее называют оперативной (основной) памятью. Основная масса данных хранится вне оперативной памяти – в ЗУ на жестких дисках. Эти ЗУ называют внешними (ВЗУ), и их совокупность образует внешнюю память компьютера. Обычно емкость внешней памяти значительно больше емкости оперативной памяти.
Процессор имеет доступ к информации (командам и данным), хранимым только в оперативной памяти. При этом чтение и запись информации производится словами. Доступ к информации, хранимой во внешней памяти, организуется следующим образом. Для обращения к сегменту информации, хранимому во внешней памяти, необходимо сначала его передать в оперативную память, после чего информация из сегмента может обрабатываться процессором. Для разгрузки оперативной памяти сегмент информации, хранимой в оперативной памяти, передается в ВЗУ. На освободившееся в оперативной памяти место может быть передан из внешней памяти другой необходимый сегмент, который после этого становится доступным для процессорной обработки. Передача информации между оперативной и внешней памятью производится сегментами большого объема – 103‑104 байт. Это позволяет снижать влияние большого времени доступа к ВЗУ на время решения задач.
Важно отметить, что обмен данными между любыми ВЗУ невозможен и его можно производить только через оперативную память: прочитать данные из одного ВЗУ в оперативную память и затем записать эти данные в другое ВЗУ.
Обмен информацией между оперативной и внешней памятью программируется командами ввода‑вывода. Таким образом, ВЗУ приравниваются по своему статусу к устройствам ввода‑вывода.
Внешняя память компьютера может комплектоваться ЗУ со сменными носителями информации: компакт‑дисками, картриджами с магнитной лентой и дискетами (см. рис.1.7). Сменные носители используются для ввода и вывода программ и данных. Сменные носители хранятся вне компьютера и образуют архивную память. Доступ к информации, находящейся в архивной памяти, обеспечивается человеком, устанавливающим соответствующий носитель информации на ВЗУ.
Наряду со сказанным, быстродействие процессоров, используемых для решения научно-технических и коммерческих задач, как правило в 5-10 выше, чем быстродействие оперативной памяти. Поэтому возникает проблема согласования быстродействия процессора с быстродействием оперативной памяти. Эта проблема решается за счет использования

сверхоперативной (буферной) памяти, включаемой между процессором и оперативной памятью (рис. 1.8). Емкость сверхоперативной памяти невелика и составляет несколько процентов от емкости оперативной памяти. За счет этого и использования более сложной структурной организации время обращения к сверхоперативной памяти в 5-10 раз меньше, чем к оперативной памяти. Основное назначение сверхоперативной памяти – подмена ячеек оперативной памяти ячейками сверхоперативной памяти. Процессор, обращаясь за командами и данными к памяти, формирует адрес ячейки, который сначала поступает в
сверхоперативную память, где адрес сравнивается с адресами ячеек. Если указанный процессором адрес отсутствует в сверхоперативной памяти, обращение к памяти обслуживается оперативной памятью и выбранное слово передается и в процессор, и в сверхоперативную память. В результате этого в сверхоперативной памяти накапливаются команды и данные, участвующие в вычислительном процессе, и повторные обращения к ним обслуживаются сверхоперативной памятью, а не оперативной памятью. Таким образом сверхоперативная память, локализуя в себе команды и данные, уменьшает количество обращений к оперативной памяти, в результате чего быстродействие процессора увеличивается возможно до предельного значения.
Следует отметить, что сверхоперативная память прозрачна для программ компьютера, поскольку все функции по подмене ячеек оперативной памяти ячейками сверхоперативной памяти реализуется аппаратными средствами компьютера. Поэтому наличие сверхоперативной памяти сказывается только на времени выполнения программ и никоим образом не влияет на структуру программ.
Высокое
быстродействие процессора достигается
в частности за счет использования в
процессорах регистровой памяти.
Регистровая память процессора состоит
из совокупности регистров, предназначенных
для хранения наиболее часто используемых
данных: промежуточных результатов
вычислений, индексов, определяющих
порядковые номера элементов массивов
данных, и базовых адресов, определяющих
адреса начала массивов. За счет того,
что регистры образуют небольшую часть
сверхбольшой интегральной схемы
процессора, время доступа к любому
регистру крайне мало (десятки фемтосекунд),
что обеспечивает высокую скорость
переключения регистров. Количество
регистров в процессоре невелико.
Регистры, в которых хранятся вышеуказанные
данные, называются регистрами общего
назначения, и их число составляет
обычно от 8 до нескольких десятков. Как
и ячейки оперативной памяти, регистры
общего назначения имеют адреса
R=0,1,2,…,2r-1,
где r=3,4,5,6, и позволяют
использовать команды вида
,
где КО – код операции и R1, R2, R3 – адреса регистров общего назначения. Естественно, что в регистрах общего назначения хранятся слова данных, наиболее интенсивно используемые в процессе вычислений. Именно в связи с использованием регистровой памяти процессоры обеспечивают выполнение команд, не требующих обращений к сверхоперативной и оперативной памяти, за 1-2 наносекунды.
1.5. Организация ввода-вывода данных
К операциям ввода-вывода относятся все операции, управляющие работой внешних устройств и обеспечивающие передачу данных между внешними устройствами и оперативной памятью. Операции ввода-вывода распространяются и на внешние запоминающие устройства, и на устройства ввода-вывода, которые в связи с этим принято относить к одному классу устройств – внешним (периферийным) устройствам.
Внешние устройства (ВУ) подключаются к интерфейсу ввода-вывода через контроллеры (К) по схеме, представленной на рис. 1.9. Ядро компьютера – процессор и оперативная память, к которым подключен интерфейс ввода-вывода.
Контроллер – электронное устройство, выполняющее следующие функции:
Опознавание обращения к ВУ путем сравнения собственного адреса с адресом ВУ, представленным на шине ввода-вывода.
Прием команды ввода-вывода, посылаемой по шине.
Исполнение команды ввода-вывода, что сводится к передаче данных между интерфейсом и ВУ и формированию сигналов, управляющих работой ВУ.
Формирование и передачу в шину информации о завершении операции ввода-вывода или об особых ситуациях в работе ВУ (неготовность к работе, ошибка в передаче данных и т.п.).
Опознавание обращения к ВУ путем сравнения собственного адреса с адресом ВУ, представленным на шине ввода-вывода.
Прием команды ввода-вывода, посылаемой по шине.
Исполнение команды ввода-вывода, что сводится к передаче данных между интерфейсом и ВУ и формированию сигналов, управляющих работой ВУ.
Формирование и передачу в шину информации о завершении операции ввода-вывода или об особых ситуациях в работе ВУ (неготовность к работе, ошибка в передаче данных и т.п.).
Таким образом, команды ввода-вывода исполняются ВУ, работающим под управлением контроллера, интерпретирующего наборы управляющих сигналов, поступающие по шине, в соответствующие действия, реализуемые аппаратурой ВУ и контроллера. Контроллер также передает данные между ВУ и шиной в стандарте интерфейса ввода-вывода и формирует сигналы запросов от ВУ на передачу информации через интерфейс.
Количество ВУ, подключаемых к шине ввода-вывода, ограничивается следующими факторами: предельно допустимой длиной шины ввода-вывода и разрядностью адреса ВУ, представляемого на линиях интерфейса.
Структура компьютера с программно управляемым интерфейсом. В данной структуре (рис.1.10) на процессор возлагаются функции обеспечения ввода-вывода и ВУ подключаются через интерфейс ввода-вывода непосредственно к процессору. Команда ввода-вывода содержит код операции (КО) и адрес внешнего устройства (АВУ) и исполняется следующим образом:
Код операции КО и адрес АВУ посылается процессором в шину ввода-вывода.
Контроллеры ВУ сравнивают свои адреса с АВУ. Контроллер с заданным адресом принимает КО и инициирует работу ВУ.
3. При вводе данных слово данных СД предается по шине ввода-вывода в процессор, а при выводе – из процессора в контроллер ВУ, после чего команда ввода-вывода считается выполненной.
Процессор обеспечивает обработку слова данных СД, например передачу слова в оперативную память. Передача сегмента данных, состоящего из последовательности слов, программируется совокупностью команд, в которой после команды ввода-вывода выполняются операции передачи СД в оперативную память (или в обратном направлении) и подсчет количества переданных слов. Таким образом, ввод-вывод каждого слова данных программируется несколькими операциями процессора, и процессор непосредственно обслуживает процесс ввода-вывода.
Процессор, исполняя команду ввода-вывода, может инициировать операции ввода-вывода и, не дожидаясь ее выполнения, продолжить исполнение программы. В этом случае процессор и ВУ работают параллельно во времени. Когда ВУ готово к передаче слова данных, оно формирует сигнал запроса, поступающий в процессор. По этому сигналу работа процессора прерывается с переходом к выполнению программы ввода-вывода, обслуживающей данное ВУ.
Достоинство рассматриваемой структуры – малые затраты оборудования в системе ввода-вывода за счет того, что процессор реализует функции по передаче вводимых и выводимых слов в оперативную память и по подсчету числа переданных слов. Однако структуре с программно-управляемым интерфейсом присущи следующие недостатки:
Снижение производительности процессора за счет простоев процессора при ожидании передачи данных в ВУ (или обратно) и выполнения процессором операций по обслуживанию передачи последовательности слов.
Невозможность подключения к интерфейсу ввода-вывода высокоскоростных ВУ, поскольку для передачи данных между процессором и оперативной памятью требуется несколько процессорных операций.
В связи с этим структура с программно управляемым интерфейсом используется в компьютерах с низкой интенсивностью ввода-вывода данных, например в компьютерах встраиваемых в измерительные приборы и другие технические устройства.
Структура компьютера с общей шиной. Все устройства компьютера (рис.1.11) процессор П, оперативная память ОП и внешние устройства ВУ, подключаются к обшей шине


…
ОП
ВУN
КN
ВУ1
К1
П
КОШ
Рис.1.11. Структура компьютера
с общей шиной
через контроллеры К. Общая шина состоит из совокупности шин: шины адреса, по которой передаются адреса ячеек оперативной памяти и ВУ; шины данных, по которой передаются слова данных; шины управления, по которой передаются запросы на передачу данных, тип передачи (чтение-запись) и т.п. Общая шина обслуживает передачу данных между всеми устройствами в режиме мультиплексирования – разделение времени шины между параллельно работающими устройствами (рис.1.12). Процесс мультиплексирования организуется






t



Рис. 1.12. Мультиплексный режим работы канала ввода-вывода (, , - адреса внешних устройств 0, 1, 2,…)
контроллером общей шины КОШ, к которому обращаются внешние устройства ВУ, ВУ, ВУ,…, хранящие в своих контроллерах слова данных. В каждом цикле работы обшей шины между двумя устройствами передается одно слово данных, например между процессором и оперативной памятью или же между ВУ и оперативной памятью. Распределение времени общей шины между устройствами и управление передачей слов данных обеспечивается контроллером общей шины. Контроллер реагирует на запросы от устройств, выделяя наиболее приоритетный запрос, и предоставляет общую шину одному устройству. Устройство формирует адрес ячейки оперативной памяти, тип обращения к памяти (чтение-запись) и получает-передает слово данных. В следующем цикле обслуживается очередное устройство, сформировавшее запрос к общей шине.
Структура с общей шиной позволяет создавать компьютеры с более высокой производительностью, чем на основе программно управляемого интерфейса. Однако это достигается за счет дополнительных затрат оборудования в контроллере общей шины, и контроллере ВУ. Вместе с тем производительность компьютера ограничивается пропускной способностью общей шины, которая обычно составляет 40-60 млн. слов/с (к тому же длина общей шины ограничена). Чем выше пропускная способность шины, тем меньше ее длина, а этот фактор влияет на количество устройств, подключаемых к общей шине. Структуры ввода-вывода с общей шиной наиболее широко используются в персональных компьютерах. При этом контроллер общей шины называется системным контроллером, системным адаптером и т.д.
Структура компьютеров с каналами ввода-вывода. В этой структуре (рис. 1.13) процессор полностью освобождается от обслуживания ввода-вывода данных, а выполнение операций ввода-вывода возлагается на каналы ввода-вывода (КВВ). Команда ввода-вывода, поступающая в процессор в общем потоке команд, содержит адрес КВВ, адрес внешнего устройства и адрес начала программы ввода-вывода, хранимой в оперативной памяти ОП. Исполняя команду ввода-вывода, процессор только инициирует указанный в команде КВВ и переходит к выполнению следующей команды программы.
КВВ
…
…
К ВУ
К ВУ
ОП
П
…
КВВ
К ВУ
К ВУ
Рис.1.13. Структура компьютера с каналами ввода-вывода
КВВ реализует следующие функции:
Выборку из ОП управляющего слова канала, содержащего код операции, исполняемой КВВ и заданным ВУ, адрес области оперативной памяти, в которую вводятся или выводятся данные, и длину сегмента вводимых (выводимых) данных.
Выполнение управляющего слова канала путем управления работой внешнего устройства ВУ и передачи данных между ВУ и КВВ через интерфейс ввода-вывода. По окончании передачи сегмента данных КВВ выбирает из оперативной памяти следующее управляющее слово канала.
Формирование сигналов, поступающих в процессор, о завершении программы ввода-вывода или особых ситуациях, возникших в процессе выполнения программы (неготовность ВУ, ошибка в данных и т.п.).
При наличии нескольких КВВ одновременно могут исполняться много программ ввода-вывода. При этом процессор свободен от обслуживания ввода-вывода и способен обрабатывать данные по другим программам. Структуры с каналами ввода-вывода широко используются в серверах, содержащих обычно от 2 до 200 процессоров и обеспечивающих параллельную во времени обработку многих программ, и в суперкомпьютерах.
КВВ функционирует во времени в следующих режимах:
Мультиплексный режим, при котором ресурсы канала и интерфейса ввода-вывода распределяются поочередно во времени для обслуживания нескольких одновременно работающих внешних устройств. При этом каждое внешнее устройство совместно с КВВ выполняет собственную программу ввода-вывода.
Монопольный режим, при котором ресурсы КВВ и интерфейс ввода-вывода предоставляются для обслуживания одного внешнего устройства на весь период передачи сегмента данных.
Мультиплексный режим обеспечивает одновременную работу низкоскоростных внешних устройств, а монопольный – высокоскоростных, производительность которых близка к пропускной способности интерфейса ввода-вывода и КВВ. КВВ, реализующие мультиплексный и монопольный режимы передачи данных, называют блок-мультиплексными каналами.
Структура компьютеров с каналами ввода-вывода обеспечивает высокую производительность системы ввода-вывода за счет использования нескольких КВВ и параллельной работы многих внешних устройств, подключаемых к одному каналу, в мультиплексном режиме. Высокая производительность системы ввода-вывода обеспечивается за счет значительных затрат аппаратуры, используемой для построения каналов ввода-вывода и организации многоканального доступа к оперативной памяти. По своей сути каналы ввода-вывода являются специализированными процессорами – процессорами ввода-вывода.
1.6. Принцип многоуровневой реализации функций
Функция (назначение) компьютера – реализация программ. Программы исполняются аппаратурой компьютера: процессором, запоминающими устройствами (ЗУ) и устройствами ввода-вывода (УВВ) (рис.1.14), которые взаимодействуют между собой в соответствии с рис.1.2 и 1.7. Возможности аппаратуры компьютера по вводу-выводу, хранению и обработке
Процессор
Память Устройства
ввода-вывода
ЗУ
… ЗУ УВВ … УВВ
Программа
Программно-аппаратный
интерфейс
Аппаратура компьютера
Рис. 1.14. Программно-аппаратный интерфейс
информации ограничены технологиями микроэлектроники и электромеханики, позволяющими сделать по приемлемой цене только ограниченную по реализуемым функциями и быстродействию аппаратуру. Поскольку возможности аппаратуры ограничены, встает вопрос о разумном по стоимости составе операций, реализуемых аппаратурой компьютера. Состав операций определяют операционные возможности аппаратуры компьютера и, следовательно, состав команд, в которых программируются алгоритмы. Таким образом, аппаратура компьютера устанавливает язык программирования задач, определяющий размер слов, систему команд и операций, размер адресуемой памяти, предельное количество запоминающих устройств и устройств ввода-вывода.
Язык программирования компьютера можно рассматривать как программно-аппаратный интерфейс. Существует проблема погружения задач, формулируемых в терминах языка людей, в аппаратуру компьютера, способную выполнять только ограниченный набор операций обработки, хранения и ввода-вывода данных. Эта проблема решается на основе принципа многоуровневой реализации функций.
Функции
процессора. Рассмотрим
вопрос о том, какой минимальный набор
операций должен выполнять процессор,
чтобы решать любые алгоритмически
разрешимые задачи. Доказано, что любые
алгоритмически разрешимые задачи могут
исполняться в простейших, примитивных
алгоритмических базисах. Так,
алгоритмическая система Поста, состоящая
всего лишь из трех операций: y:=0
(переменной у
присвоить значение 0), y:=1
(переменной у
присвоить
значение 1), y=0?
(проверить, равно ли у
нулю), достаточна, чтобы реализовать
все алгоритмически вычислимое. Такой
же полнотой обладает и алгебра Буля:
у:=
а,
y:=ab,
y:=ab,
y=0?,
или
даже более простой набор из одной
операции y:=ab
и операции следования у=0?.
Однако программирование вычислений в
столь примитивном операционном базисе
приводит к большим издержкам на
программирование и вычисления.
Человечество свои материальные проблемы
связало с численным выражением сущности,
и четыре операции арифметики y:=a+b,
y:=a-b,
y:=ab,
y:=ab
и
операция следования стали основой
математики, финансовой и инженерной
деятельности. При этом в качестве
операндов a
и b
выступают
целые числа 0, 1, 2,.. или действительные
числа, посредством которых отображаются
время, пространство, энергия и т.д.
Оказалось,
что четырех действий арифметики
достаточно для разрешения многих
проблем. Для исчисления высказываний
достаточно только трех операций булевой
алгебры у:=а,
y:=ab,
y:=ab.
Для обработки текстов – символьной
информации, достаточно реализовать
операции над последовательностями
байтов, а обработку графической
информации аналитическая геометрия
свела к тем же известным четырем
арифметическим действиям. Таким образом,
операции арифметики и булевой алгебры
стали самодостаточными для решения
всех алгоритмически разрешимых задач.
Однако существуют и другие алгоритмические
системы со свойствами алгоритмической
полноты, например нормальные алгоритмы
Маркова.
Инженерная мысль выбрала в качестве функций процессора арифметические и логические операции над числами и последовательностями битов (байтов). Кроме этого процессор должен обеспечивать обслуживание операций ввода-вывода (передача команд ввода-вывода в определенные запоминающие устройства и устройства ввода-вывода и установления момента завершения операций ввода-вывода). Таким образом, функции процессора ограничиваются реализацией процедур:
Выборки команды из оперативной памяти и операндов, указанных в адресной части команды.
Выполнение операции, заданной кодом операции в команде, что сводится к выполнению арифметических или логических операций над операндами, передаче команд на исполнение средствами ввода-вывода, в том числе внешними запоминающими устройствами, и формированию адреса следующей команды.
Программная реализация функций. Программно-аппаратный интерфейс вводит ограниченное количество форм представления данных, элементарных арифметических и логических операций и простейшие операции передачи данных между оперативной памятью и внешними устройствами (в том числе и внешними запоминающими устройствами). Программирование прикладных задач в терминах программно-аппаратного интерфейса, т.е. на языке компьютера, становится возможным, если запрограммировать элементарные функции по вводу-выводу данных, написанию, загрузке и исполнению программ, и предоставить эти функции в качестве интерфейса пользователям компьютера. Только таким образом можно приблизить язык компьютера к естественным для человека формам представления данных и способам их обработки. Комфортный интерфейс “пользователь-компьютер” строится на основе четырехуровневой модели (рис. 1.15).
Для реализации функций по обеспечению согласованной работы устройств служит операционная система. Операционная система (ОС) – комплекс программ, обеспечивающий управление устройствами компьютера и программами. ОС вводит набор макроопераций и макрокоманд, каждая из которых реализует функцию управления устройством или программой. Эта функция реализуется совокупностью команд, исполняемых аппаратурой компьютера. Например, перед началом операции ввода необходимо проверить готовность устройства (включено – выключено, наличие носителя информации и т.д.). Для подготовки к выполнению операции ввода-вывода выполнить операции с целью выделения в оперативной памяти области для размещения вводимых данных, обеспечить посимвольный или посегментный ввод данных в заданную область с использованием команд ввода и завершить операцию в естественном порядке или в особом режиме (например, из-за ошибки в передаваемых данных). Управление программами обеспечивается поиском местоположения программы во внешней памяти, выделением области оперативной памяти для размещения первого блока программы и т.д. Макрокоманды операционной системы определяют набор примитивов, достаточных для создания систем программирования, управления данными и контроля работоспособности компьютера как целостных операций, уровень которых превышает программно-аппаратный интерфейс. Совокупность макрокоманд, реализуемых программно средствами ОС, определяют интерфейс ОС, а через него программируемые возможности компьютера.
Инструментальные системы – это совокупность программных систем, обслуживающих потребности программирования и управления данными безотносительно к аппаратным возможностям компьютера. В состав инструментальной системы (обслуживающих программ) включаются трансляторы, обеспечивающие преобразование программ, написанных на языках высокого уровня на машинный язык, системами управления базами данных и разного рода пакеты программ, обеспечивающие обмен документами, табличную обработку данных и многое другое. Инструментальные системы вводят возможности, на основе которых можно построить с помощью технологий программирования прикладные программы, обеспечивающие функции конкретного должностного лица: продавца, снабженца, инженера, менеджера и т.д. Кроме того инструментальные системы предоставляют пользователю конкретные возможности по подготовке текстов - текстовые редакторы, графической информации – графические редакторы, обмена сообщениями по каналам связи – электронной почте и т.п. Инструментальные средства и обслуживающие программы вводят собой совокупность функций для использования их при программировании прикладных задач и обслуживания конечных пользователей.
Совокупность прикладных программ реализует конечное назначения компьютера –обслуживание пользователей, применяющих программы для обеспечения своей профессиональной деятельности. Прикладные программы устанавливают состав и форму представления исходных данных и результатов, а также порядок управления процессом решения задач и этим определяется интерфейс конечных пользователей, т.е. язык взаимодействия пользователей и компьютера.
Аппаратура компьютера реализует конкретный набор типов данных, над которыми могут выполняться операции, набор операций ввода, хранения, обработки и вывода данных и набор команд, в терминах которых программируется обработка данных. Аппаратура компьютера – физическая машина, возможности которой определяются программно-аппаратным интерфейсом. Таким образом, компьютер – это платформа, на основе которой реализуются функции более высокого ранга исключительно посредством программирования, т.е. с помощью программ.
Операционная система вводит собой операции ввода, вывода, хранения данных, управление аппаратурой компьютера и вычислительными процессами более высокого уровня, чем операции, реализуемые аппаратурой компьютера. При этом общая большая часть операций, реализованная аппаратурой, доступна для использования в программах более высокого уровня: на 2-, 3-, 4-м уровнях (см. рис 1.15). Другая часть операций, называемая привилегированными операциями, становится доступной программистам только при обращении к ним через операционную систему, например с помощью команды CALL target (ВЫЗОВ процедуры), в которой target – номер вызываемой процедуры. В общем случае команда CALL исполняется, если процессор находится в состоянии СУПЕРВИЗОР, в котором разрешается выполнять операции управления устройствами и программами. Если же процессор находится в другом состоянии, команда CALL не может быть исполнена и ее появление в потоке команд вызывает прерывание программы – остановку программы при выборке команды CALL.
Таким образом, интерфейс операционной системы вводит совокупность процедур, управляющих устройствами и программами в состоянии СУПЕРВИЗОР, и одновременно с этим совокупность операций, которые могут исполняться на любом уровне программирования.
2. Характеристики и классификация компьютеров
2.1. Характеристики компьютеров
Основными являются следующие характеристики компьютеров:
1) программно-аппаратный интерфейс и интерфейс прикладных программ;
2) быстродействие и производительность;
3) емкость памяти;
4) надежность;
5) стоимость.
Программно-аппаратный интерфейс определяет функциональные возможности аппаратуры, используемые программами для обработки, хранения и ввода-вывода данных. Интерфейс прикладных программ вводится операционной системой компьютера и более высокими уровнями программного обеспечения.
Быстродействие компьютера определяется временем выполнения операций обработки, хранения и ввода-вывода данных, т.е. временем выполнения процессорных операций, операций записи-чтения данных во внешних запоминающих устройствах и операций ввода-вывода, исполняемых устройствами ввода-вывода. Величина, обратная времени выполнения операции, определяется количеством операций, выполняемых в единицу времени, как правило, за одну секунду – операций/с. Быстродействие компьютера связано с быстродействием аппаратуры, т.е. с быстродействием устройств, входящих в состав компьютера. Аппаратура компьютера реализует многие десятки или сотни операций обработки, хранения и ввода-вывода данных. Поэтому перечень времен выполнения десятков или сотен операций является мало информативным. Более информативной является характеристика, называемая производительностью компьютера.
Производительность компьютера оценивается временем решения задач или обратной величиной – количеством задач за единицу времени: в минуту, час, сутки и т.д. Таким образом, быстродействие и производительность – характеристики вычислительной мощности компьютера, т.е. количества вычислительной работы, которую может выполнять компьютер за единицу времени.
Емкость памяти определяется предельным количеством данных, которое может храниться в памяти компьютера, и исчисляется в кило-, мега-, гига- и терабайтах. Память компьютера строится по многоуровневой схеме из разнотипных запоминающих устройств и характеризуется емкостью регистровой, сверхоперативной, оперативной и внешней памяти.
Надежность компьютера – характеристика способности компьютера выполнять возложенные на него функции. Работоспособность компьютера нарушается из-за сбоев и отказов аппаратуры, которые носят случайный, непрогнозируемый характер. Чем реже возникают сбои и отказы, тем выше надежность компьютера.
Стоимость компьютера – сумма затрат на приобретение компьютера, включающая в себя стоимость аппаратуры компьютера, программных средств поставляемых покупателю, установки компьютера и передачи его в эксплуатацию. Иначе говоря, стоимость компьютера – объем капитальных вложений, необходимых для приобретения, установки и передачи компьютера в эксплуатацию. По сравнению с капитальными вложениями эксплуатационные расходы являются, как правило, более значимой составляющей затрат на владение компьютером. Эксплуатационные расходы включают в себя затраты на техническое обслуживание компьютера, развитие программного обеспечения, обучения пользователей и т.д. Обычно эти расходы за весь период эксплуатации компьютера в 3 – 5 раз превосходят объем капитальных вложений и, следовательно, учет эксплуатационных расходов – непременная составляющая при оценки экономической эффективности компьютерных систем.
Наряду с основными характеристиками компьютеров существенное значение имеют дополнительные характеристики: масса и габариты, допустимый диапазон температур, устойчивость к вибрациям и ударным нагрузкам, ремонтопригодность и т.д. Эти характеристики существенно зависят от конструктивного исполнения компьютера и являются особенно важными для компьютеров, применяемых в промышленных системах, на подвижных объектах и т.д.
2.2. Программно-аппаратный интерфейс и интерфейс прикладных программ
Возможности аппаратных средств компьютера определяют программно-аппаратный интерфейс, который характеризует функции аппаратуры и организацию компьютера, необходимые и достаточные для разработки программ. Программно-аппаратный интерфейс фиксирует в себе все необходимые программистам сведения об аппаратуре, составляющей компьютер. При этом не затрагиваются никакие аспекты внутренней организации компьютера: тип полупроводниковых элементов, напряжение электропитания, конструктивы печатных плат и т.п. Совокупность свойств аппаратуры компьютера, существенной для разработки программ, т.е. для программистов, называется архитектурой компьютера. Таким образом, термины архитектура и программно-управляемый интерфейс будем использовать как синонимы, понимая, что конкретной архитектуре соответствует конкретный программно-аппаратный интерфейс.
Как уже отмечалось, программирование в терминах программно-аппаратного интерфейса доступно только системным программистам, создающими программы – драйверы для обслуживания периферийных устройств, программ обслуживания запоминающих устройств, переключения задач, распределение памяти между задачами и т.д., которые в комплексе образуют операционную систему. Операционная система вводит интерфейс следующего уровня – интерфейс прикладных программ (API – Applicaton Programming Interface). Интерфейс прикладных программ вводит систему операторов, используемых программистами для выполнения операций ввода-вывода и хранения данных, распределения устройств и памяти между задачами, управления устройствами компьютера и процессами обработки данных. Все операторы интерфейса прикладных программ реализуются через операционную систему, т.е. посредствам соответствующих программ операционной системы, интерпретирующих операторы интерфейса прикладных программ в последовательность команд программно-аппаратного интерфейса, реализуемых аппаратурой компьютера. Программы операционной системы являются неотъемлемой частью аппаратуры компьютера: именно программы операционной системы создают операторы (функции), в терминах которые исполняются обслуживающие программы, инструментальные системы и прикладные программы.
Таким образом, аппаратура и операционной системы компьютера выступают как единый программно-аппаратный комплекс – компьютерная платформа, на которой строится программное обеспечение более высокого уровня, в том числе прикладные программы, взаимодействующие с аппаратурой через интерфейс прикладных программ.
Программно-аппаратный интерфейс. Программно-аппаратный интерфейс определяет функции, реализуемые аппаратурой компьютера. Эти функции принято подразделять на следующие группы:
состав и форма представления машинных единиц информации;
типы данных и формы их представления;
способы адресации данных;
система команд;
функции управления состояниями устройств и процессов.
Первые четыре группы функций, реализуемые аппаратурой компьютера, порождают систему команд компьютера, которая устанавливает коды операций и правила кодирования адресов операндов, участвующих в операциях. Последовательности команд, составляющие программы, корректны в том случае, когда команды предписывают операции над соответствующими типами данных: целыми числами, логическими значениями, строками символов и т.д. Наряду с программируемыми функциями, работа компьютера сопровождается событиями, происходящими в темпе работы устройств (окончание операций ввода-вывода, ошибки в передаваемых данных и т.д.) или при выполнении команд (некорректность кода операции, нарушение правил адресации, доступ к незащищенным данным и т.д.). В этих условиях устройства компьютера, реагируя на окончание процессов или особые ситуации при выполнении предписанных командами операций, формируют сигналы прерывания. Эти сигналы воспринимаются процессором, который обеспечивает переход к специальным программам, обрабатывающим возникшие ситуации в работе устройств и при выполнении программ. За счет этого операционная система обеспечивает управление устройствами и процессами выполнения программ и объединяет аппаратные и программные средства в единый аппаратно-программный комплекс.
Подавляющее большинство ныне используемых архитектур относятся к классу процессорно-ориентированных (processor-center). При этом для каждой архитектуры создается специфичный программно-аппаратный интерфейс, порождающий уникальную систему команд, реализуемых операционной системой компьютера. Это означает, что для каждого процессора и системы внешних устройств создается специфичная операционная система, служащая фундаментом для написания прикладных программ и централизованного управления всеми системными ресурсами – устройствами и программами.
Интерфейс прикладных программ. Производители компьютерного оборудования разработали архитектуры, в основе которых лежит интерфейс прикладных программ API (Application Programming Interface). API–ориентированные архитектуры устанавливают интерфейс, который используется для доступа всех прикладных программ к функциям операционной системы и изолирует прикладные программы от аппаратных и программных деталей операционной системы.
Один из наиболее известных API – POSIX (Portable Operation System Interface based on uniX), - международный стандарт для Unix–подобных операционных систем. В 1993 году группа разработчиков приложений для операционных систем Unix определила собственный набор интерфейса прикладных программ API, включающий в себя 1179 функций. Стандарт «Единая спецификация Unix» стал современной промышленной версией POSIX.
Другой вариант API – независимый от технологии машинный интерфейс (Tecnology Independent Machine Interface), часто называемый просто MI (Machine Interface). Этот интерфейс включает в себя набор функций операционной системы компьютера, работающей по двухступенчатой схеме: генерация шаблона программы – генерация кода программы. Компилятор генерирует из исходного текста код MI, который представляется в виде шаблона программы. На втором этапе транслятор генерирует двоичный код программы по шаблону программы, и двоичный код программы, созданный транслятором, хранится в памяти компьютера как единый программный объект. Такая программа называется отслеживаемой (observable). Если в компьютере начинает применяться, например, 64-разрядный процессор, то для новой аппаратуры создается специальный транслятор, который транслирует код шаблона программы в новый двоичный код, соответствующий составу данных, с которым оперирует новый 64-разрядный процессор. В результате этого за один день компьютер получает 64-разрядную операционную систему и тысячи 64-разрядных прикладных программ.
Существенный недостаток API – отсутствие гибкости. Клиент не может выбрать операционную систему одного производителя, базу данных – другого, защиты данных – третьего, так как они не могут работать как единая интегрированная система. Единственный способ обеспечить гибкость - самостоятельное объединение разнородных компонент в интегрированную систему. Однако для этого требуются средства на обучение пользователей и сопровождения программных систем.
2.3. Быстродействие и производительность компьютеров
Оценка быстродействия и производительности компьютера представляет собой сложную задачу из-за отсутствия общепринятой меры вычислительной работы и эталона вычислительной работы. По этой причине вычислительную мощность компьютера нельзя охарактеризовать количеством операций, выполняемых компьютером за секунду, поскольку все устройства компьютера (процессор, внешние запоминающие устройства, устройства передачи данных и т.д.) не могу работать одновременно, и в каждый момент времени используется лишь часть мощности компьютера.
В этой ситуации для оценки быстродействия и производительности компьютеров используется система показателей включающая с себя:
номинальное быстродействие;
комплексную производительность;
системную производительность;
индекс производительности.
Номинальное быстродействие. Номинальное быстродействие – количество операций, выполняемых устройствами компьютера за секунду. Так, если компьютер состоит из N устройств 1,…,N, то номинальное быстродействие характеризуется вектором V = (V1,…,VN), где V1,…,VN – средние быстродействия устройств 1,…,N, входящих в состав компьютера. При этом предполагается, что все устройства работают со 100%-ой загрузкой и каждое устройство выполняет в среднем V1,…,VN операций за секунду.
Среднее быстродействие устройства оценивается следующем образом. Если устройство, например процессор, выполняет G операций за время τ1,…,τG и вероятности операций равны p1,…,pG , то среднее быстродействие устройства
,
операций/с,
где n=1,…,N – номер устройства компьютера. Аналогично оценивается быстродействие и других устройств компьютера: внешних запоминающих устройств, устройств передачи данных и т.д.
Процессоры общего назначения используются для решения двух основных типов задач: научно-технических расчетов и коммерческих расчетов. Применительно к этому номинальное быстродействие принято характеризовать двумя значениями:
количеством миллионов коротких операций (операций целочисленной арифметики), выполняемых за секунду – MIPS (Million Instruction Per Second);
количеством миллионов операций с плавающей запятой, выполняемых за секунду,– MFLOPS (Million Floaping point Operation Per Second).
Номинальное быстродействие процессора (точнее системы процессор – оперативная память) зависит от следующих факторов:
Быстродействия элементной базы процессора и оперативной памяти, т.е. времени переключения сигнала в полупроводниковых интегральных схемах, а быстродействие схем наиболее существенно зависит от используемой технологии. Уровень технологии определяет, во-первых, минимальный размер полупроводниковых элементов, уменьшение которого повышает быстродействия элементов, во-вторых, предельное количество элементов в одной интегральной схеме, увеличение числа которых позволяет создавать более высокопроизводительные электронные структуры.
Структурной организации процессора, направленной на повышения быстродействия за счет совмещения во времени обработки потока команд и выполнения операций над ними.
Архитектуры компьютера и в первую очередь система команд процессора, т.е. состава реализуемых процессором операций, способов адресации и форм представления данных.
Номинальное быстродействие характеризует потенциальные возможности устройств, составляющих компьютер: процессора, сверхоперативной и оперативной памяти, внешних запоминающих устройств, устройств ввода-вывода и т.д.
Комплексная производительность. Все устройства связаны между собой и с общими для них ресурсами. Так, в структурах с общей шиной (см. рис.1.11) общая шина является общим для всех устройств ресурсом, и пропускная способность шины ограничивает возможность одновременной работы устройств компьютера. Аналогично, в структурах с каналами ввода-вывода (см. рис.1.13) общим ресурсом, разделяемым процессором и каналами ввода-вывода, является оперативная память, и быстродействие оперативной памяти ограничивает и быстродействие процессора, и пропускную способность системы ввода-вывода.
Чтобы учесть влияние структурной организации компьютера на производительность совокупности устройств, работающих как единый комплекс, используется понятие комплексная производительность. Так, если пропускная способность общего ресурса (устройства или интерфейса) составляет V0 байт/с, то суммарная пропускная способность всех устройств, использующих этот ресурс, не может превышать V0 байт/с:
,
где суммирование производится по всем устройствам n {1,…,N}, использующим общий ресурс. Если цикл оперативной памяти равен оп=20 нс и длина слова составляет lоп= 4 байта, то пропускная способность оперативной памяти V0 = lоп/оп = 200 Мбайт/с. Суммарная пропускная способность всех устройств, подключенных к памяти, ограничена этим значением. Пример зависимости быстродействия процессора V1 и пропускной способности системы ввода-вывода V2 от интенсивности ввода-вывода 2 байт/с представлен на рис. 2.1. При интенсивности ввода-вывода 22 быстродействие процессора V1 не уменьшается. Когда интенсивность ввода-вывода 2<2<2, быстродействие процессора V1 резко снижается, поскольку система ввода-вывода существенно загружает оперативную память, что приводит к простою процессора в период занятости оперативной памяти обслуживанием обращений от ввода-вывода.
Т
аким
образом комплексная производительность
всегда меньше значений, определяемых
номинальным быстродействием устройств,
входящих в состав компьютера.
Системная производительность. Системная производительность – количество вычислительной работы (задач), выполняемой компьютером, работающим под управлением операционной системы, за единицу времени. Операционная система определяет порядок обслуживания вычислительных процессов аппаратурой компьютера: моменты загрузки программы, организацию обмена данными между оперативной и внешней памятью и т.д.
Системную производительность компьютеров принято оценивать на стандартных для заданного класса приложений наборах задач: научно-технических, коммерческих, специальных, и характеризовать временем решения заданного набора задач. Чем меньше время решения набора задач, тем выше системная производительность компьютера.
Системная производительность компьютера всегда меньше номинального быстродействия и комплексной производительности компьютера. Это связано с тем, что процесс решения задач распадается на два этапа: процессорную обработку и ввод-вывод. В общем случае во время процессорной обработки устройства ввода-вывода простаивают, а когда работает устройство ввода-вывода, простаивает процессор. Поэтому когда компьютер обрабатывает задачу, то суммарная загрузка всех устройств компьютера
где n = 1, …, N – количество устройств компьютера и
отношение
времени работы устройства
к времени решения задачи Т. Загрузка
характеризует долю времени, в течение
которого устройство n
= 1,…,N занято работой,
и одновременно вероятность того, что
устройство n работает.
Значение
,
называется коэффициентом простоя устройства n = 1,…,N и характеризуют одновременно долю времени, в течение которого устройство n простаивает, и вероятность простоя устройства за время Т.
Для повышения системной производительности
компьютера используют режим
мультипрограммирования – одновременную
обработку компьютером нескольких
задач. При этом в памяти компьютера
размещается более одной программы
(две, три и т.д.). После окончания
процессорной обработки управление
передается процессу ввода-вывода,
реализуемого средствами операционной
системы, и затем другой программе,
ожидающей процессорной обработки. В
результате загрузка
устройств возрастает и достигает
значений
,
превышающего системную производительность при однопрограммном режиме обработки задач.
Значение определяет среднее количество задач, обрабатываемых компьютером и характеризует системную производительность компьютера на заданном классе задач.
Индекс производительности. В связи с отсутствием единицы и меры вычислительной работы системную производительность компьютера можно характеризовать на определенном классе задач с помощью индекса производительности – отношения системной производительности компьютера к системной производительности компьютера базовой модели, способного обрабатывать тот же класс задач. Ясно, что индекс производительности – относительная оценка системной производительности, характеризующая степень увеличения производительности компьютера по отношению к производительности базовой модели компьютера. Естественно, что индекс производительности характеризует изменение производительности компьютера на фиксированном классе задач.
2.4. Емкость памяти
Емкость памяти зависит от назначения компьютера, т.е. от класса задач, решение которых возлагается на компьютер. Чем больше объем программ и данных, с которым должен оперировать компьютер, тем больше должна быть емкость памяти.
Как правило, наименьшей емкостью памяти обладают компьютеры специального назначения, встраиваемые в технические системы. В простейшем случае в таких компьютерах используется оперативная память емкостью 128 – 512 слов, и постоянная память емкостью 512 – 4096 слов, в которых размещаются данные и программы для выполнения функций локального управления электроприводами, стабилизации режимов функционирования и т.д. В персональных компьютерах, предназначенных для обслуживания одного сотрудника, емкость оперативной памяти составляет 32 – 2048 Мбайт. В оперативной памяти размещается и данные, и программы, вызываемые из накопителей на магнитных дисках. Большие мощные компьютеры – серверы и суперкомпьютеры, строятся обычно на мультипроцессорной платформе и имеют емкость оперативной памяти 512 – 4096 Мбайт на каждый процессор и развитую систему внешней памяти, в которую входит значительной число и, возможно, система архивирования данных. Для научно–технических расчетов используются мощные компьютеры, содержащие сотни процессоров, но имеющие меньшую по сравнению с коммерческими системами емкость оперативной, внешней и архивной памяти.
Все компьютеры, кроме рядовых компьютеров специального назначения, оснащаются сверхоперативной памятью – кэш-памятью, емкостью 256 – 2048 Кбайт и временем обращения, меньшим тактовой частоты процессора. Кэш-память уменьшает количество обращений к оперативной памяти, в результате чего повышается производительность процессора и мультипроцессорной системы в целом.
Наиболее существенное влияние на характеристики компьютера оказывает емкость оперативной памяти: чем больше емкость оперативной памяти, тем больше системная производительность и стоимость компьютера. Увеличение производительности компьютера связано с увеличением вероятности нахождения в оперативной памяти данных и программ. В результате этого снижается интенсивность обмена информацией между оперативной памятью и дисками и, как следствие, возрастает системная производительность компьютера.
К такому же эффекту приводит увеличение емкости кэш-памяти: чем больше кэш-память, тем больше системная производительность и стоимость компьютера. Обращение к кэш-памяти производиться с целью чтения или записи слов данных – значений и команд. Чем больше емкость кэш-памяти, тем больше вероятность наличия в ней слова, и, следовательно, тем меньше вероятность обращения к оперативной памяти. Уменьшения числа обращений к оперативной памяти приводит к увеличению системной производительности компьютера.
2.5. Надежность компьютеров
Надежность – это свойство компьютера выполнять возложенные на него функции в течение заданного промежутка времени. Работоспособность компьютера нарушается в результате сбоев и отказов оборудования, возникающих из-за неисправности элементов и соединений. Сбои и отказы – случайные события, частоту которых принято характеризовать интенсивностью отказов. Интенсивность отказов – среднее количество отказов, за единицу времени, например за год. Интенсивность отказов зависит от сложности компьютера. Сложность – число элементов и соединений, входящих в состав объекта. Чем больше элементов ( в том числе и соединений ) входит в состав объекта, тем выше интенсивность отказов. Кроме того крайне существенно на надежность влияет технология производства изделий. Прогресс в области вычислительной техники в первую очередь связан с технологией производства интегральных схем и периферийных устройств. Именно технологии позволили создать компьютеры на процессорах, содержащих десятки и сотни миллионов логических элементов, элементы памяти емкостью 256-512 Мбайт, запоминающие устройства на магнитных дисках емкостью от 10 Гбайт и более и другие уникальные устройства, надежность которых значительно превышает надежность компьютеров первых поколений.
Характеристики надежности. При расчете надежности интенсивность отказов рассматривается как постоянная во времени величина. Если принять, что отказы различных элементов взаимонезависимы и любой отказ носит катастрофический для компьютера характер, то интенсивность отказов устройства равна сумме интенсивностей отказов элементов ( в том числе соединений ), входящих в состав устройства:
г
де
i
- интенсивность отказа элемента,
i = 1, …, N
и ni
- количество элементов типа i
в устройстве. Интенсивность отказов –
основная характеристика надежности
элементов, устройств и системы в целом.
Если
- интенсивность отказов, то средний
промежуток времени между двумя соседними
отказами
и
называется наработкой на отказ.
Вероятность исправной работы в
течении времени t
равна
и называется наработкой на отказ. Вероятность исправной работы в течение времени t
После возникновения отказа устройство либо заменяют, либо ремонтируют и используют повторно. Затраты времени на восстановление работоспособности устройства складываются из времени поиска причины отказа и времени замены вышедшего из строя устройства. Это время – случайная величина, называемая временем восстановления ТВ. Время восстановления зависит в основном от технологии поиска неисправности в компьютере.
Эксплуатационные свойства компьютеров
и составляющих их устройств принято
характеризовать к
оэффициентом
готовности :
где Т и ТВ- время наработки на отказ и время восстановления соответственно. Значение кг имеет двоякий смысл. Во-первых, коэффициент готовности характеризует долю времени, в течение которого устройство работоспособно. Так, если kг =0,99 , то в среднем 99% времени устройство работоспособно, а 1% времени устройство простаивает из-за отказов оборудования. Во-вторых, коэффициент готовности kг характеризует вероятность того, что в любой момент времени t устройство работоспособно.
Классы надежности. Сложившийся к настоящему времени уровень технологии обеспечивает возможность создания простейших систем, таких как персональные компьютеры, рабочие станции и простейшие серверы, с коэффициентом готовности порядка 0,99. Это означает, что в течение года работы такие компьютерные системы обеспечивают безотказную работу в среднем в течение 361,5 дней и простой в среднем в течение 3,5 дней при условии, что для любых ремонтно-восстановительных работ имеются все необходимые устройства для замены отказавшей аппаратуры. Этот показатель надежности весьма высокий. Естественно, что другие более мощные компьютерные системы, содержащие несколько процессоров, большое число запоминающих устройств на магнитных дисках и лентах, значительное количество высокоскоростных каналов передачи данных и т.д., имеют гораздо худшие показатели надежности, близкие к десяткам дней простоя системы.
Чтобы обеспечить непрерывность функционирования больших компьютерных систем, используется широкая палитра программных и аппаратных методов повышения надежности, основанных на контроле верности результатов и наличие в составе системы резервных устройств, исключающих отказ системы при отказе одного устройства. В результате этого для каждого индекса надежности, определяемого значением коэффициентом готовности kг, вводятся четыре класса систем, представленные в табл. 2.1.
Таблица 2. 1. Классы надежности
Класс надежности kг |
Среднее время простоя Тп в году |
Тип системы |
0,99 |
3,5 дней |
Обычная |
0,999 |
8,5 часов |
Высокая надежность |
0,9999 |
1 час |
Отказоустойчивая |
0,99999 |
5 минут |
Безотказная |
Компьютерные системы относятся к классу обычных систем, если они имеют надежность, обеспечивающую среднее время простоя на уровне 3,5 дня в год. При более высоком коэффициенте готовности принято выделять компьютерные системы высоконадежные, отказоустойчивые и безотказные, в которых используются дополнительные меры для повышения надежности.
2.6. Стоимость компьютеров
Стоимость компьютера – сумма затрат на приобретение и установку компьютера. Затраты на приобретение включают в себя оплату аппаратурной части компьютера, т.е. всей совокупности устройств, составляющих компьютер, и программного обеспечения – операционной системы, необходимых инструментальных систем, систем управления базами данных и пакетов прикладных программ. Затраты на установку компьютера определяются стоимостью пусконаладочных работ и стоимостью обучения обслуживающего персонала.
Стоимость компьютера изменяется в широком диапазоне: от нескольких долларов до десятков миллионов долларов. Наиболее дешевыми являются компьютеры специального применения, встраиваемые в технические системы и решающие задачи управления и контроля работоспособности оборудования. Наиболее дорогими являются крупные компьютерные системы, содержащие тысячи процессоров, мощные системы внешней и архивной памяти и системы передачи данных по каналам связи.
Наибольшее влияние на стоимость компьютеров оказывает технология производства интегральных схем и технология периферийного оборудования. Производство интегральных схем начало активно развиваться в 60-х годах и концу этого десятилетия компьютеры начали строиться на малых и средних интегральных схемах, содержащих десятки и сотни интегрированных на одном конструктивном элементе активных (транзисторы и диоды) и пассивных элементов. В 70-х годах началось производство больших интегральных схем, содержащих тысячи элементов. В этот период наблюдается значительное снижение стоимости полупроводниковых элементов и резкое снижение стоимости процессоров и контроллеров внешних устройств. В 80-х и 90-х годах компьютеры выпускаются с процессорами, выполненными по интегральной технологии в виде одной сверхбольшой интегральной схемы или многочиповой конструкции, содержащей несколько сверхбольших интегральных схем, находящихся в едином корпусе. В этот период стоимость процессоров широкого применения снижается до сотен долларов и стоимость многочиповых процессоров, применяемых в мощных компьютерных системах до 103 – 104 долларов.
В 70-х годах существенно изменилась технология периферийных устройств: внешних запоминающих устройств, дисплеев и печатающих устройств. На смену классическим магнитным головкам приходят интегральные магнитные и магнитно-резистивные головки, благодаря чему значительно возросла плотность записи информации на магнитных дисках и лентах. Широкое распространение интегральной технологии существенно повлияло на массо-габаритные характеристики дисплеев и их функциональные возможности. В 80-х годах символьные интерфейсы заменяются графическими и значительно развиваются мультимедийные технологии и системы их процессорной поддержки. Столь же революционными явились изменения в системах вывода данных: массовое распространение получили каплеструйные и лазерные технологии печати данных.
2.7. Классификация компьютеров
Класс – множество объектов, обладающих определенными свойствами. Класс объектов выделяется, когда определены свойства, позволяющие относить каждый объект к определенному классу. Наиболее существенными свойствами компьютеров являются их области применения, определяемые множеством задач, для решения которых создаются компьютеры, и производительность компьютеров, определяемая количеством вычислительной работы, выполняемой за единицу времени.

Рис.2.3. Классификация компьютеров по области применения.
Классификация компьютеров по областям применения. Как отмечалось в разделе 1.1, компьютеры можно подразделять на два класса: компьютеры общего применения и специализированные компьютеры (рис. 2.3). Компьютеры общего применения подразделяются на три класса: персональные компьютеры, серверы и суперкомпьютеры.
Персональные компьютеры (ПК) предназначены для информационного обслуживания одного пользователя и имеют соответствующий набор ресурсов: процессор, оперативную, внешнюю и, возможно, архивную память, комплект устройств для ввода и вывода данных и канал связи для обмена данными с внешней средой – электронной почты и обращения к возможностям глобальной сети передачи данных Internet. Начиная с 1999 года ПК подразделяются на три основных класса (сегмента): базовый, для досуга, рабочие станции.
Базовый ПК предназначен для работы в офисной среде (в составе локальной сети передачи данных) или в качестве ПК, подключаемого к глобальной сети передачи данных. Базовые ПК требуют процессор с тактовой частотой от 300 МГц, кэш-память от 128 Кбайт, оперативную память 32-64 Мбайта и относительно небольшой набор периферийных устройств, обеспечивающий обслуживание пользователя, работающего в составе отдела.

ПК для досуга и развлечений требуют не менее 64 Мбайт оперативной памяти и развитую систему вывода информации, в том числе TV-вход-выход, монитор с большим экраном и хорошую звуковую систему.
Рабочие станции на базе ПК предназначены для обслуживания пользователей, профессионально обрабатывающих графическую информацию, т.е. работающих с текстами, рисунками, фотографиями, чертежами и т.д. ПК такого класса требуют процессор уровня 400 МГц или многопроцессорную конфигурацию, емкость кэш-памяти на уровне 512 Кбайт на каждый процессор, оперативную память на уровне 512 Мбайт – 2 Гбайт и соответствующую подсистему ввода-вывода графической информации.
Сервер – компьютер, предназначенный для информационного обслуживания группы пользователей. Типичный сервер имеет не менее двух процессоров и сохраняет работоспособность при одном работающем процессоре, развитую систему памяти, содержащую несколько запоминающих устройств на магнитных дисках, сетевой адаптер для ввода-вывода данных, поступающих от периферийных персональных компьютеров, и комплект устройств для управления работой сервера. Типичная схема подключения сервера к системе персональных компьютеров представлена на рис. 2.4. Сервер взаимодействует с персональными компьютерами через сеть передачи данных, к которой сервер подключен с помощью сетевого адаптера, преобразующего последовательности сигналов интерфейса ввода-вывода сервера в последовательности сигналов, соответствующих стандартам сети передачи данных.
Основное назначение сервера – хранение баз данных и приложений, используемых для работы с базами данных. Взаимодействия сервера с конечными пользователями, работающими за персональными компьютерами, сводятся к обеспечению доступа к сегментам данных, выбираемым из заданных баз данных, обработки выбранных сегментов данных с помощью приложений, реализующих требуемые алгоритмы.
При этом используются следующие способы обработки данных:
Требуемый сегмент данных и требуемое приложение выделяются и обрабатываются сервером, а персональный компьютер используется для ввода и вывода данных;
Требуемый сегмент данных выделяется сервером, передается для обработки в персональный компьютер и обрабатывается заданным приложением;
Требуемый сегмент данных и соответствующие приложения передаются в персональный компьютер для последующей обработки.
Выбор способа обработки данных зависит от большого числа факторов, основным из которых является соотношение системной производительности сервера, системы передачи данных, связывающих сервер с персональным компьютерами, и распределением обработки по совокупности персональных компьютеров. Компьютерные системы, обрабатывающие данные с использованием сервера, называются клиент-серверными системами. При этом к клиентам относится совокупность пользователей, имеющих доступ к серверу по сети передачи данных.
В зависимости от производительности серверы подразделяются на следующие классы (см. рис. 2.3): серверы подразделений, серверы предприятий, серверы корпораций.
Серверы подразделений служат для информационного обслуживания служб и отделов предприятий, содержащих несколько десятков компьютеров. Серверы подразделений, как правило, являются двухпроцессорными, имеют оперативную память емкостью 256-2048 Мбайт, как минимум два накопителя на магнитных дисках, адаптер для связи с сетью передачи данных, клавиатуру, мышь и монитор для управления сервером.
Серверы предприятий в зависимости от масштаба предприятия содержат от 4 до 8 процессоров, каждый из которых имеет оперативную память 512-4096 Мбайта и соответствующую кэш-память, не менее четырех накопителей на магнитных дисках и высокоскоростную аппаратуру для передачи данных по каналам связи.
Серверы корпораций используются для информационного обслуживания совокупности предприятий, расположенных в различных точках пространства, т.е. для управления деятельностью распределенной в пространстве совокупности предприятий. В серверах корпораций формируются базы данных, необходимые для анализа эффективности деятельности и стратегического управления деятельностью корпорации. В качестве первичных данных в серверах корпораций используются, например, данные о еженедельном обороте товаров и услуг, поставляемых корпорацией, затратах труда на выпуск товаров и предоставление услуг, котировки акций предприятий корпорации и отраслей, с которыми связана деятельность корпорации, и деловые данные о проектах развития корпорации. Серверы корпораций являются многопроцессорными системами и содержат от 8 до 64 процессоров. Каждый процессор имеет емкость оперативной памяти 512-4096 Мбайт и кэш-память емкостью 1-2 Мбайт. Серверы корпораций оснащаются развитыми системами накопителей на магнитных дисках, обеспечивающими высокую надежность хранения данных.
Серверы предприятий и корпораций строятся обычно по многокомпьютерной схеме, обеспечивающей создание систем с высокой устойчивостью к аппаратурным сбоям и отказам. Устойчивость обеспечивается, во-первых, за счет того, что каждый сервер имеет операционную систему, реагирующую на отказы таких компонентов как процессор, накопитель на магнитных дисках, источник питания и т.д. Отказ компонента приводит к исключению его из работающих ресурсов сервера и запуску программы, перераспределяющей нагрузку на оставшиеся ресурсы. В результате перераспределения нагрузки обработка транзакции будет выполнена повторно от момента ее запуска. Во-вторых, устойчивость к отказам достигается за счет параллельного включения двух серверов с использованием операционной системы, распределяющей нагрузку между ресурсами. При отказе компонента, в том числе и сервера, операционная система перераспределяет нагрузку и повторно запускает процессы, при выполнении которых произошел отказ. За счет этого надежность систем может быть увеличена до уровня 0,999-0,99999.
Суперкомпьютеры (см. рис. 2.3) – большие компьютерные системы, управляемые как единое целое от консоли оператора компьютера. Главные компьютеры широко применяются для научно-технических расчетов. Эти компьютеры строятся на мультипроцессорной основе и обеспечивают обработку векторов и матриц. К главным компьютерам подключается через сеть передачи данных система персональных компьютеров, обеспечивающая программирование задач и ввод-вывод данных. В качестве главных компьютеров могут использоваться и компьютеры коммерческого назначения, обеспечивающие хранение и селективный доступ к большим объемам данных через сеть Internet или сети специального применения.
Специальные компьютеры (см. рис. 2.3) предназначены для встраивания в системы различного назначения для контроля и управления промышленными, транспортными, и прочими объектами. Специальные компьютеры состоят из процессора, системы первичных датчиков, исполнительных блоков, управляемых сигналами компьютера, и, возможно, блоков ввода, отображения и передачи данных по каналам связи. Главная особенность большинства специальных компьютеров – наличие постоянной или перезаписываемой памяти для хранения в ней программ, управляющих работой компьютера. В зависимости от сферы применения выделяют следующие классы специальных компьютеров: контроллеры, сигнальные процессоры, промышленные персональные компьютеры и прочие.
Контроллеры – специальные компьютеры, содержащие каналы ввода и вывода данных. Контроллеры представляют собой одну большую интегральную схему и обеспечивают выполнение операций над целыми числами, а в ряде применений и над числами с плавающей запятой. Операнды, как правило, являются короткими и имеют длину от 8 до 32 бит. Стоимость контроллеров невелика и составляет от десятков центов до нескольких долларов.
Сигнальные процессоры служат для цифровой обработки сигналов в реальном масштабе времени. Основное назначение сигнальных процессоров – фильтрация сигналов, вычисление значений корреляционной функции двух сигналов, Фурье-преобразование сигнала и т.д. Стоимость сигнальных процессоров существенно зависит от тактовой частоты процессора и функциональных возможностей – обработки сигналов в форму с фиксированной или плавающей запятой.
Промышленные персональные компьютеры существенно отличаются от обычных персональных компьютеров своим конструктивным исполнением, которое должно гарантировать безотказность компьютера при работе не в офисных условиях, а совместно с промышленным, транспортным и другим оборудованием в условиях высоких вибраций, ударных нагрузок, широких диапазонах температур и т.д.
К классу прочих специальных компьютеров будем относить все «экзотические» специальные компьютеры, которые не могут быть отнесены к ранее перечисленным классам специальных компьютеров, в том числе компьютеры, содержащие значительную долю аналоговых устройств.
Поколения компьютеров. Первый электронный цифровой компьютер ENIAC (Electronic Numerical Integrator and Calculator) был создан в США в Пенсильванском университете Дж. Эккертом и Дж. Моучли на основе принципов, предоставленных Дж. Атанасовым, по проекту Дж. Моучли, в 1942 году. В конце Второй мировой войны компьютер вступил в эксплуатацию и использовался для расчета стрельбовых таблиц. В 1944 году Дж. фон Нейман был привлечен к работе с компьютером ENIAC и предложил идею использования двоичной системы счисления и хранения программ и данных в памяти компьютера, которая стала основополагающей для всех последующих поколений компьютеров.
Компьютеры первого поколения, создаваемые в 50-х годах на электронных лампах и полупроводниковых диодах, занимали площадь в несколько десятков и сотен квадратных метров и стоили от нескольких сотен тысяч до нескольких миллионов долларов. Быстродействие компьютеров составляло от 10 тыс. операций/с и выше. Оперативная память строилась на ферритовых кольцах диаметром порядка 1 мм и имела емкость 4-8 Кслов. В качестве внешней памяти использовались в основном накопители на магнитной ленте, каждый из которых имел объем не менее 0,1-0,2 м3. Для компьютеров первого поколения разрабатывались первые системы автоматизации программирования на основе языков Фортран и АЛГОЛ и первые операционные системы, реализующие обработку заданий в пакетном режиме.
Компьютеры второго поколения строились сначала на транзисторах и диодах, а затем с использованием малых, средних и больших интегральных схем, насчитывающих десятки, сотни и тысячи элементов соответственно. В 60-х годах полупроводниковые компьютеры полностью заменили ламповые, поскольку значительно опережали последние по технико-экономическим показателям: занимаемой площади и потребляемой мощности. В эти годы IBM создала архитектуру System/360 и выпустила модели больших компьютеров стоимостью от 225 тыс. долларов до 1,9 млн. долларов, имевших производительность в десятки раз большую, чем ламповые компьютеры. DEC выпустила первый коммерческий миникомпьютер PDP-8, стоимостью 10 тыс. долларов, ориентированный на управление промышленными объектами и транспортными системами. Архитектура IBM System/360 и архитектура DEC PDP-11 была принята в СССР в качестве базовой и на ее основе начали создаваться Единая Система ЭВМ (ЕС ЭВМ) и Система Малых ЭВМ (СМ ЭВМ). В 60-х годах компьютеризация охватывает все сферы человеческой деятельности. И в это время были разработаны основополагающие принципы построения операционных систем, методы автоматизации программирования, системы управления базами данных и т.д.
Третье поколение компьютеров создавалось в 70-х годах на основе технологии больших и в последние годы десятилетия сверхбольших интегральных схем. Основной результат – значительное уменьшение габаритов компьютеров и миникомпьютеров при увеличении их производительности и снижении стоимости. В 1976 году был выпущен суперкомпьютер Cray-1 с быстродействием 166 млн. операций/с и стоимостью 4 млн. долларов, который оказал революционное влияние на технологию научно-технических расчетов. В 1971 году компания Intel создала 4-разрядный однокристальный микропроцессор Intel 4004, на котором размещалось 2300 транзисторов. Этот микропроцессор начал использоваться в калькуляторах и стал первым однокристальным контроллером.
Четвертое поколение компьютеров создавалось в 80-х годах на основе технологии больших и сверхбольших интегральных схем. Эта технология позволила создать эффективные мультипроцессорные системы для решения научно-технических задач, повысить производительность и уменьшить габариты главных компьютеров и миникомпьютеров, создать широкую номенклатуру специальных компьютеров для встраиваемых применений. В 1977 году С.Джобс и С.Уозник создали первый персональный компьютер Apple для домашних и лабораторных применений. Однако в 1981 году фирма IBM выпустила персональный компьютер IBM PC на основе микропроцессора Intel 8086, содержащего 29 тыс. транзисторов. Этот персональный компьютер стал родоначальником знаменитого семейства персональных компьютеров IBM PC.
В 90-х годах компьютеры создавались исключительно на основе сверхбольших интегральных схем с размером транзисторов от 5x5 мкм до 0,12х0,12 мкм, соединяемых алюминиевыми или медными проводниками. Чем меньше размер транзисторов, тем меньше задержка электрических сигналов и тем выше быстродействие интегральной схемы, достигшее к 2000 году уровня 1 ГГц, что обеспечивает выполнение 1 млрд. коротких операций в секунду, не требующих обращений к оперативной памяти. Использование в процессорах системы параллельной обработки команд позволяет достичь производительности в 2-4 раза больше указанной, т.е. 2-4 млрд. операций в секунду.
Оглавление Предисловие 3
Принципы построения и функционирования компьютеров 7
1.1. Назначение компьютеров и принцип программного управления 7
1.2. Неймановский принцип программного управления 9
1.3. Структура компьютеров 11
1.4. Запоминающие устройства и организация памяти 14
1.5. Организация ввода-вывода данных 19
1.6. Принцип многоуровневой организации функций 22
Характеристики и классификация компьютеров 25
2.1. Характеристики компьютеров 25
2.2. Программно-аппаратный интерфейс и интерфейсы прикладных
программ 26
2.3. Быстродействие и производительность компьютеров 28
2.4. Емкость памяти 27
2.5. Надежность компьютеров 31
2.6. Стоимость компьютеров 33
2.7. Классификация компьютеров 34
3.Архитектура компьютеров
3.1.Машинные слова и байты
Все компьютеры от самых маленьких до сверхбольших хранят в памяти и обрабатывают информацию, представленную в виде двоичных последовательностей – последовательностей битов, принимающих значения либо 0, либо 1. Именно в такой форме представляются команды программ и все данные. Многообразие форм представления данных на клавиатурах, экранах мониторов, устройствах ввода графической информации и изображений, печатающих устройствах и т.д. свидетельствует только о том, что все вводимые в компьютер данные преобразуются в двоичную форму представления, как правило с помощью программ, и все выводимые из компьютера данные подвергаются обратному преобразованию – переводятся опять же программами из двоичных последовательностей в общепринятые формы представления результатов вычислений. Таким образом биты – внутрикомпьютерная форма представления программ и данных, основанная на простоте выполнения операций над двоичными сигналами при их передаче и преобразовании.
Однако для представления команд программ, целых и действительных чисел, логических значений, текстовых строк, чертежей и т.д. необходимы последовательности битов, представляющие команды программ, текстовые строки разной длины и т.д. Полупроводниковые запоминающие устройства хранят данные в ячейках постоянной длины. Поэтому необходимо в первую очередь определить длины слов, размещаемых в ячейках полупроводниковой памяти – оперативной и сверхоперативной памяти компьютера и регистровой памяти процессора.
В компьютерах общего применения, используемых для решения научно-технических и коммерческих задач, самым значимым устройством является процессор, длина слова которого предопределяет большинство характеристик компьютера: быстродействие и производительность, стоимость процессора и т.д. На сегодняшний день длина слова в персональных компьютерах составляет 32 бита, а большинство серверов обрабатывают 64-битные слова. При этом система команд процессора позволяет выполнять операции над словами удвоенной длины: 64-битными словами в персональных компьютерах и 80-битными словами в серверах. При этом сверхоперативная память и в персональных компьютерах, и в серверах имеет длину слов, совпадающую с длиной слова процессора: 32 разряда для персональных компьютеров и 64 разряда для серверов. Однако длина слова, хранимого в ячейке оперативной памяти, как правило увеличивается как минимум в два раза, чтобы с использованием сверхоперативной памяти сократить разрыв между высоким быстродействием процессора и низким быстродействием оперативной памяти (см. рис. 1.8). Таким образом, длина слова оперативной памяти может составлять 64 разряда в персональных компьютерах и как минимум 128 разрядов в серверах. При этом каждое обращение к оперативной памяти сопровождается пересылкой в сверхоперативную память по крайней мере слова двойной длины, в результате чего увеличивается вероятность того, что последующее обращение процессора к сверхоперативной памяти будет обслужено без обращения к оперативной памяти.
Компьютеры общего применения обрабатывают крайне широкую номенклатуру команд и данных: команды разной длины, целые и действительные числа с разным диапазоном значений и, следовательно, имеющие разную длину, текстовые строки, насчитывающие от нескольких символов до десятков и сотен символов, последовательности из многих мега-, гига- и терабайтов данных и крайнее разнообразие специальных структур данных. В связи с этим адресация данных производится как правило с точностью до одного байта. Например, адрес ячейки памяти, формируемый процессором персонального компьютера имеет следующую структуру:
31 0
b31
b30
. . . . . . . . . . b3
b2
b1
b0
,
Адрес слова Адрес
байта
где b31b30…b1b0 – 32-разрядный адрес байта, который разделяется на 30-разрядный адрес слова памяти b31b30…b3b2 и адрес байта в 32-разрядном слове b1b0 = 00, 01, 10 или 11. Аналогичную структуру имеет адрес, формируемый сервером, однако длина адреса возрастает на несколько разрядов и адрес байта в слове имеет длину три двоичных разряда. Таким образом, персональный компьютер позволяет адресовать 232 = 4 Гбайта памяти, а серверы обеспечивают адресацию значительно большего числа ячеек памяти – от 236 = 64 Тбайта и более.
Естественно, что в ячейках памяти команды программ, числа и логические значения хранятся записанными слева направо – от старших разрядов к младшим. Однако для записи текстовых строк, состоящих из последовательностей байтов, используется два стандарта: запись текстовой строки слева направо, как это принято в большинстве компьютеров IBM и компьютерах Sun Microsystems, и запись строки справа налево, как это принято в компьютерах IBM PC и Intel. В результате этого возникает сложная проблема по передаче программ и данных между компьютерами, работающими с разными способами записи текстовых строк.
3.2.Коды с обнаружением и исправлением ошибок
Компьютер при передаче данных между устройствами и при выполнении вычислений может делать ошибки из-за сбоев и отказов аппаратуры. Если компьютер не оснащен средствами для обнаружения и исправления ошибок, то необнаруженные ошибки приводят к сколь угодно серьезным искажениям результатов вычислений, и компьютер становится источником дезинформации пользователей. В связи с этим большинство компьютеров оснащаются средствами, обеспечивающими контроль работоспособности аппаратуры компьютеров за счет увеличения длины байтов, слов и сегментов данных на некоторое число битов, с помощью которых обеспечивается возможность обнаружения и исправления ошибок в передаваемых и обрабатываемых данных, т.е. за счет использования специальным образом представленных данных – кодированных байтов, слов и сегментов.
Наиболее простой способ кодирования данных – присоединение к данным одного бита четности. Например, байт данных представляется двоичной последовательностью
10110011.
Бит четности формируется за счет присоединения к байту одного бита, формируемого следующим образом: если число единиц в байте четно, то бит четности равен 0, если число единиц в байте нечетно, то бит четности равен 1. Таким образом, указанный байт с битом четности имеет следующую структуру:
10110011 1 ,
Байт Бит
четности
где бит имеет значение 1. Ясно, что при указанном правиле вычисления значения бита четности, число битов в кодированном байте всегда четно, в результате чего всякая одиночная ошибка в кодированном байте будет обнаружена. Впрочем, будут обнаружены и 3-, 5-, 7- и 9-кратные ошибки, но не поддаются обнаружению 2-, 4- и 8- кратные ошибки. Бит четности формируется аппаратурой компьютера крайне просто и обеспечивает защиту от многих ошибок.
Для обнаружения и исправления ошибок теория информации предлагает значительное число различных методов. Ясно, что с увеличением длины данных, определяемой длиной битов в данных, должно увеличиваться число контрольных разрядов, присоединяемых к данным для обнаружения и исправления ошибок. Число контрольных разрядов, необходимое для кода, способного обнаруживать и исправлять ошибки по методу Хэмминга, представлено в табл. 3.1.
Таблица 3.1.Число контрольных разрядов кода, способного обнаруживать и исправлять ошибки
Длина данных, бит |
Количество контрольных разрядов, бит |
Общая длина данных, бит |
Увеличение длины данных, % |
8 |
4 |
12 |
50 |
16 |
5 |
21 |
31 |
32 |
6 |
38 |
19 |
64 |
7 |
71 |
11 |
128 |
8 |
136 |
6 |
256 |
9 |
265 |
4 |
512 |
10 |
522 |
2 |
1024 |
11 |
1035 |
1 |
Из таблицы видно, что для обнаружения и исправления одиночной ошибки к байту данных необходимо добавить четыре контрольных разряда, в результате чего длина кодирование сегмента данных будет равна 12 разрядам при увеличении длины кодирования сегмента на 50%. Из последующих строк таблицы видно, что при увеличении длины сегмента в 2 раза, количество контрольных разрядов увеличивается только на единицу, в результате чего процент увеличения длины данных уменьшается. При длине данных 1024 битов для исправления одиночных ошибок необходимо всего 11 разрядов, что приводит к увеличению длины контрольного сегмента всего на 1%. Естественно, что затраты оборудования для обнаружения и исправления единственной ошибки по методу Хэмминга значительно больше затрат оборудования при использовании бита четности. Однако при этом достигается существенный эффект – возможность исправления одной ошибки в работе компьютера.
Наряду с кодами Хэмминга, обеспечивающими обнаружение и исправление одной, двух и более ошибок в кодированных словах, широкое применение получили циклические коды, имеющие широкие возможности обнаружения и исправления при сложной картине многократных помех и достаточно простых способах построения систем контроля кодированных слов. Кодированные слова используются и для контроля арифметических и логических операций, выполняемых процессором. Таким образом, существует широкая гамма методов защиты устройств компьютеров от всякого рода искажений обрабатываемых и передаваемых данных, но любые системы защиты не дают 100% гарантии в результативности методов защиты.
3.3. Представление данных в компьютерах
Компьютеры оперируют с данными трех основных типов: числами, строками символов и логическими значениями. Отметим, что адреса относятся к типу числовых данных.
Двоичные числа. Основной формой представления числовых значений в компьютерах являются двоичные числа. Двоичное число – это значение, представляемое в двоичной системе счисления. Числовые значения могут быть двух типов: целые и действительные. Для представления целых значений и выполнения операций над ними используются целые двоичные числа, а для действительных значений – числа с плавающей запятой.
Целое двоичное число имеет следующий формат:
(3.1)
± Цифровые
разряды
.
Разряд с номером n является знаком числа: знак плюс кодируется цифрой 0, знак минус – цифрой 1. Разряды от (n-1) до 0 являются цифровыми. Запятая фиксируется после младшего разряда с номером 0. Формат (3.1) обеспечивает представление целых значений в диапазоне [–(2n–1); +(2n–1)]. Отсюда видно, что число цифровых разрядов процессора определяет диапазон значений, которые могут быть представлены в формате (3.1). Увеличение количества цифровых разрядов процессора на единицу расширяет диапазон представления в два раза.
Выполнение операций над целыми числами, изображаемыми словами фиксированной длины, имеет следующие особенности. Операции сложения и вычитания определены только в том случае, если результат может быть представлен в n цифровых разрядах, т.е. если результат |C |<2n. В противном случае говорят, что результат переполняет разрядную сетку процессора. Если |C |≥2n, в процессоре формируется признак переполнения, используемый для управления ходом вычислительного процесса, например для прекращения вычислений. Произведение состоит из 2n цифровых разрядов. Поскольку результат должен представляться n-разрядным значением, используется следующий способ формирования результата:
2n-1 n n–1 0
.
Старшие разряды Младшие разряды
Старшие n разрядов
произведения можно отбросить, если они
равны нулю, т.е. когда произведение
|A
B|≥2n
рассматривается как переполнение
разрядной сетки. Результат деления
целых чисел A и
B – целая часть
от деления A на
B, т.е. C=A
(mod B).
Результат определен при любых значениях
A и B,
кроме B=0. последний
случай фиксируется как переполнение
при делении.
В компьютерах используются целые числа с длиной 16, 32 и 64 двоичных разряда. Кроме того в компьютерах общего применения могут использоваться целые числа без знака, количество двоичных разрядов в которых равно 8, 16, 32 и 64 двоичных разряда.
В
настоящее время числа с плавающей
запятой (точкой) строятся на основе
стандарта IEEE 754, определяющего
три формата чисел (рис 3.1): с одинарной
точностью (32 бита), с двойной точностью
(64 бита) и с повышенной точностью (80
битов). Все форматы начинаются со
знакового бита числа: 0 определяет
положительное число, а 1 – отрицательное.
Затем указывается значение порядка:
для чисел с одинарной точностью порядок
указывается со смещением 127, а для чисел
с двойной и повышенной точностью – со
смещением 1023. когда порядок указывается
со смещением, значение порядка в числе
с одинарной точностью от 0 до 126
соответствуют отрицательному порядку,
значение 127 – нулевому порядку, а
значения от 128 до 255 – положительному
порядку числа. Стандарт IEEE
754 определяет в качестве основания для
показателя число 2. Однако в компьютерах
могут использоваться в качестве
основания числа 2, 4, 8 и 16. Чем больше
длина порядка и чем больше основание
порядка, тем шире диапазон значений,
представляемых числами с плавающей
запятой. За порядком числа следует
мантисса, длина которой определяет
точность представления действительных
чисел. Чем больше длина мантиссы, тем
выше точность представления значений.
В рассматриваемом стандарте значение
1 в старшем разряде нормализованной
мантиссы хранится в неявном виде слева
от запятой (см. рис. 3.1). Поэтому все
нормализованные числа имеют значения
1
и M<2, где M
– мантисса числа. Стандарт IEEE
754 определяет порядок представления и
способы выполнения операций над
ненормализованными числами и бесконечно
большими значениями, которые мы не
будем рассматривать.
Числовые характеристики стандарта IEEE 754 для чисел с плавающей запятой представлены в табл. 3.2. Как видно из таблицы, нормализованные числа с одинарной точностью представляют значения в диапазоне от 10–38 до 10+38, а при двойной точности – в диапазоне от 10–308 до 10+308.
Таблица 3.2. Характеристики чисел с плавающей запятой стандарта IEEE 754
Параметр |
Одинарная точность |
Двойная точность |
Количество битов |
32 |
64 |
Количество битов в порядке |
8 |
11 |
Количество битов в мантиссе |
23 |
52 |
Смещение порядка |
127 |
1023 |
Значение порядка |
–126 до +127 |
–1022 до +1023 |
Минимальное нормализованное число |
2–126 |
2–1022 |
Максимальное нормализованное число |
2128 |
21024 |
Диапазон десятичных чисел |
10–38 до 1038 |
10–308 до 10308 |
Минимальное ненормализованное число |
10–45 |
10–324 |
Текстовые строки. Значительную долю информации, обрабатываемой компьютером, могут составлять текстовые строки – строки символов некоторого алфавита. Типичным примером обработки текстовой информации является трансляция программ, записанных на языках программирования, в машинные программы, представляемые в терминах команд. Отдельный символ (буква, цифра или знак) кодируется байтом, что обеспечивает работу с алфавитами, содержащими до 28 = 256 различных символов. Строка символов представляет собой последовательность байтов следующего вида:
Таблица 3.2. Характеристики чисел с плавающей запятой стандарта IEEE 754
-
Параметр
Одинарная
точность
Двойная
точность
Количество битов
32
64
Количество битов в порядке
8
11
Количество битов в мантиссе
23
52
Смещение порядка
127
1023
Значения порядка
–126 до +127
–1022 до +1023
Минимальное нормализованное число
2-126
2-1022
Максимальное нормализованное число
~2128
~21024
Диапазон десятичных чисел
10-38 до 1038
10-308 до 10308
Минимальное ненормализованное число
~10-45
~10-324
Нормализованные числа с одинарной точностью представляют значения в диапазоне от 10-38 до 1038, а при двойной точности - в диапазоне от 10-308 до 10308.
Текстовые строки. Значительную долю информации, обрабатываемой компьютером, могут составлять текстовые строки – строки символов некоторого алфавита. Типичным примером обработки текстовой информации является трансляция программ, записанных на языках программирования, в машинные программы, представляемые в терминах команд. Отдельный символ (буква, цифра или знак) кодируется байтом, что обеспечивает работу с алфавитами, содержащими до 28=256 различных символов. Строка символов представляет собой последовательность байтов следующего вида:
.
.
. .
.
. .
.
. .
.
. .
A+0
Булевы переменные используются в программах как самостоятельные объекты достаточно редко. Чаще всего они являются элементами наборов – булевых векторов и матриц. К тому же слова информации, представляющие команды и числа, а также поля переменной длины, представляющие строки символов и тексты, часто приходится обрабатывать с использованием логических (булевых) операций, по отношению к которым двоичные разряды слов и полей являются логическими значениями. Таким образом, логические значения 0 и 1 чаще всего участвуют в операциях в виде байтов, слов или полей переменной длины, каждый разряд которых рассматривается как значение булевой переменной. По этой причине логические значения представляются словами и полями переменной длины (3.2). Информация, представляемая словами (3.3), трактуется как нечисловая и в процессе выполнения логических операций все разряды слова
обрабатываются одинаково, как отдельные логические значения, объединенные в один набор. Таким образом, при обработке логических значений логические операции распространяются на байты, слова и поля переменной длины, используемые для представления булевых переменных.