ЛЕКЦИИ ПО ИНФОРМАТИКЕ

Оглавление

План лекций
ЧАСТЬ I
   Лекция 1. Введение
   Лекция 2. Принципы работы ЭВМ
   Лекция 3. Представление чисел в ЭВМ
   Лекция 4. Логические основы построения ЭВМ
   Лекция 5. Память ЭВМ
   Лекция 6. Память ЭВМ (продолжение)
   Лекция 7. Процессор
   Лекция 8. Шины
   Лекция 9. Внешние устройства
ЧАСТЬ II
   Лекция 10. Большие компьютерные системы
   Лекция 11. Сети ЭВМ
   Лекция 12. Интернет
   Лекция 13. Программное обеспечение ЭВМ
   Лекция 14. Программное обеспечение ЭВМ (продолжение)
   Лекция 15. Размещение информации на магнитном диске
   Лекция 16. Базы данных
   Лекция 17. Языки программирования
Библиографический список

ЧАСТЬ I

Лекция 1. Введение

Основные понятия

Определение 1.

Информатика – научная дисциплина, изучающая структуру и общие свойства информации, а также вопросы, связанные с её сбором, хранением, поиском, переработкой, преобразованием, распространением и использованием в различных сферах деятельности.

Данное определение носит общий характер и не позволяет провести чёткую грань между информатикой и другими научными дисциплинами, например, математикой и генетикой. В данном курсе лекций информатика рассматривается в более узком смысле:

Определение 2.

Информатика – научная дисциплина, изучающая законы и методы накопления, передачи и обработки информации с помощью ЭВМ.

В США информатика в таком понимании получила название Computer Science. В основе информатики лежат два фундаментальных понятия: информация и алгоритм. Вместе с философскими категориями материя, энергия, время они образуют основу, на которой строится вся система человеческих знаний. Дать точные определения этим понятиям невозможно. Приведённые ниже определения приблизительны. Их следовало бы назвать толкованиями.

Информация – это сообщение, сведения о чём-либо.

Алгоритм – это предписание, определяющее преобразование исходных данных в искомый результат и обладающее следующими свойствами:

  1. определённостью, т. е. точность, не оставляющей места для произвола;
  2. результативностью, т. е. свойством приводить к искомому результату за конечное число шагов;
  3. массовостью, т. е. применимостью для решения любой задачи из некоторого класса.

В последнем определении слова данные и результат – синонимы слову информация.

Все ЭВМ делятся на аналоговые и цифровые. Будем рассматривать только цифровые ЭВМ (компьютеры) и опустим слово цифровые.

В ЭВМ алгоритм представляется в виде последовательности команд (логических, арифметических и т. д.) называемой программой.

Каждая команда выполняется аппаратно. В специализированных ЭВМ бывают команды, по сложности выполняемых преобразований информации не уступающие небольшой программе, написанной в командах для универсальной ЭВМ. Теоретически можно построить ЭВМ, выполняющую некоторый заданный алгоритм аппаратно без хранимой в памяти программы. Практическая ценность такой ЭВМ будет невелика, так как она будет очень дорога и иметь крайне узкую область применения.

Примечание. Между аппаратным и программным уровнями в некоторых ЭВМ существует ещё один уровень, называемый микропрограммным. Академик В. М. Глушков, используя микропрограммный способ управления, встроил в ЭВМ МИР-2 язык высокого уровня Аналитик. Таким образом, ЭВМ МИР-2 не имела традиционной системы команд (машинных кодов). Её командами были операторы языка высокого уровня.

Для того чтобы создавать эффективные ЭВМ и качественное программное обеспечение, необходимо знать логические основы построения ЭВМ и методы создания программ. Построение логических схем (материальных объектов), из которых состоит ЭВМ, очень близко к электронике и автоматике (техническим дисциплинам), а написание программ близко к математике (теории алгоритмов, численным методам и т. д.), т. е. к нематериальной категории. Информатика (computer science) объединяет все необходимые знания из областей построения схем и написания программ в единую дисциплину, овладение которой позволяет решать сложнейшие задачи проектирования и использования ЭВМ.

Субъективность восприятия информации

Информацию специалисты в разных областях человеческой деятельности рассматривают по-разному. Журналисты иногда говорят: "В этом сообщении нет никакой информации". Для них информация – это такие сведения, которые заинтересуют читателей, которые можно продать.

Связистов не интересует содержание сообщения, посылается ли поздравление с днём рождения, или биржевые котировки акций. Для них сообщение – это последовательность бит, которую нужно передать без искажений. Для измерения неопределённости, возникающей при передаче сообщения, используется специальная мера, называемая энтропией. Шеннон определил энтропию H следующим образом.

Пусть
   s1, s2, . . , sn - исходы передачи сообщения;
   p1, p2, . . , pn - вероятности этих исходов;

      ni=1pi = 1

Тогда
      H(s1, s2, . . , sn) = ni=1pilog2(1/pi) ,        где принимается   0·log2(1/0) = 0.
 

Пример. Передаётся сообщение, состоящее из двух бит: "10". На приёмнике возможно одно из четырех событий:
    S1 = 10 ;
    S2 = 00 ;
    S3 = 01 ;
    S4 = 11 .

В первом случае сообщение принято без искажений, в остальных произошла ошибка. Так как сообщение очень короткое, а линия связи надёжная, то вероятность искажения пренебрежимо мала, т. е. можно положить
    P1 = 1 , а P2 = P3 = P4 = 0 .

Подсчитаем энтропию передачи этого сообщения:

H(s1, s2, s3, s4) = p1log2(1/p1) + p2log2(1/p2) + p3log2(1/p3) + p4log2(1/p4) =
        = 1·log2(1/1) + 0·log2(1/0) + 0·log2(1/0) + 0·log2(1/0) = 0 .

Информацию, хранимую в ЭВМ, принято делить на программы и данные.

Зависимость получаемой информации при рассмотрении какого-либо предмета или при чтении сообщения (книги, статьи) от имеющейся у рассматривающего или читающего априорной информации привела к любопытной трактовке трёх терминов
        данные → информация → знания.         (1)

Например, житель деревни в джунглях Новой Гвинеи, впервые видящий часы, получает только данные, так как у него нет о них никакой предварительной информации. Самый далёкий от техники европеец имеет предварительную информацию о назначении часов. Часовщик обладает необходимыми знаниями для ремонта часов. Вместе с тем стоит отметить отсутствие чёткой границы между этими тремя понятиями.

Информация обладает уникальным свойством "неразменного пятака". Сколько бы раз владелец не продавал информацию, она остаётся при нём. Это свойство одновременно и достоинство и проклятие информации. Карл Маркс в книге "Капитал" писал: " При 300% (прибыли) нет такого преступления, на которое он (капиталист) не рискнул бы пойти, хотя бы под страхом виселицы". Обладателю юридических прав на информацию, её продажа может принести не триста, а многие миллионы процентов прибыли.

Классификация информации

Дать исчерпывающую классификацию информации едва ли возможно. Приведённая ниже классификация, не претендуя на полноту, позволяет выделить те виды информации, которые используются в информатике согласно определению 2. Разделим всю информацию на три вида

Данная классификация делит информацию по способу её хранения, но не по смыслу. Человек способен воспринимать и биологическую информацию (генетика) и физическую. Только форма хранения будет отличаться от исходной, природной. Так как ЭВМ создана человеком, то и информация хранится в ней в форме, придуманной человеком и воспринимаемой им через органы чувств.

По своей сложности все виды информации, хранимой в памяти человека, хорошо укладываются в цепочку (1). Между информацией в памяти человека и в памяти ЭВМ можно провести грубую аналогию. Данным в памяти человека соответствуют значения переменных и элементов массивов. Информация и знания хорошо интерпретируются в объектно-ориентированном программировании. Информация - это объекты вместе с их свойствами. Знания на самом примитивном уровне описываются классами объектов с их свойствами и методами (алгоритмами). Для более точного описания знаний вводятся такие понятия как базы знаний и экспертные системы.

С точки зрения пользователя информация имеет следующие характеристики: ценность, достоверность, полноту, доступность.

В соответствии с органами чувств, через которые она поступает, информация делится на:

  1. зрительную,
  2. слуховую,
  3. осязательную,
  4. обонятельную,
  5. вкусовую.

Наибольшее количество информации к нам поступает через зрение в виде текстов, рисунков, чертежей, фильмов. Текстовая, графическая, звуковая и видео- информация может быть закодирована, введена и обработана на ЭВМ.

Кодирование информации

Код – это обозначение, отличное от общепринятого.

Цели кодирования информации:

Кодирование текстовой информации

Текстовая информация состоит из букв, цифр, специальных символов (+, & и т. д.). В некоторых языках используются иероглифы. Современные ЭВМ строятся по принципам фон Неймана. Один из принципов фон Неймана – хранение информации в памяти ЭВМ в двоичном коде, т. е. в виде последовательности нулей и единиц.

В США первоначально кодировали 26 букв латиницы, цифры 0, 1, 2, . ., 9 и несколько десятков специальных символов, всего чуть больше сотни. Код из n бит позволяет закодировать 2n символов. Так как 27=128, то был принят семиразрядный двоичный код, получивший название ASCII (American standard code for information interchange - американский стандартный код для обмена информацией).

Для того чтобы кодировать кроме латиницы ещё и национальные алфавиты, к ASCII добавили слева один разряд, расширив таблицу кодирования со 128-и до 256-и символов. В настоящее время имеется большое количество восьмибитных кодировок, отличающихся только второй половиной таблицы кодов. Для кириллицы используется несколько кодировок.

Пример кодирования русской буквы "А" в кодировках КОИ-8 и Windows-1251.

    КОИ-8        E116 = 1110 00012 =22510 ,
    Windows-1251 C016 = 1100 00002 =19210.

Любая цифра в обеих кодировках имеет один код. Например, код цифры 6

         3616 = 0011 01102 = 5410.

Во многих практических случаях, например, при записи иероглифов используется гораздо больше, чем 256 символов, поэтому были разработаны многобайтовые кодировки.

Кодировки UNICODE

UNICODE (Юникод) - стандарт кодирования символов, разработанный в 1991 году и предназначенный для кодирования большого, практически неограниченного (1 112 064) количества различных символов. Стандарт состоит из двух частей (разделов):

Универсальный набор символов UCS. Кодовое пространство UCS разделено на 17 плоскостей (табл. 1) по 216 (65536) символов
Таблица 1. Плоскости Юникода
№ плоскости Название Диапазон символов
0 Базовая многоязыковая плоскость
(Basic multilingual plane, BMP)
U+0000…U+FFFF
1 Дополнительная многоязыковая плоскость
(Supplementary multilingual plane, SMP)
U+10000…U+1FFFF
2 Дополнительная иероглифическая плоскость
(Supplementary ideographic plane, SIP)
U+20000…U+2FFFF
3 Третичная иероглифическая плоскость
(Tertiary ideographic plane, TIP)
U+30000…U+3FFFF
4—13 не используются U+40000…U+DFFFF
14 Дополнительная плоскость особого назначения
(Supplementary special-purpose plane, SSP)
U+E0000…U+EFFFF
15—16 Дополнительные области для частного использования
(Supplementary private use area, SPUA-A/B)
U+F0000…U+10FFFF

Нулевая плоскость называется базовой и содержит символы наиболее употребительных письменностей. Остальные плоскости — дополнительные. Первая плоскость используется в основном для исторических письменностей, вторая — для редко используемых иероглифов китайского письма (ККЯ), третья зарезервирована для архаичных китайских иероглифов. Плоскости 15 и 16 выделены для частного употребления.

Для обозначения символов Unicode используется запись вида «U+xxxx» (для кодов 0…FFFF), или «U+xxxxx» (для кодов 10000…FFFFF), или «U+xxxxxx» (для кодов 100000…10FFFF), где x — шестнадцатеричная цифра. Например, символ «д» (U+0436) имеет код 043416 = 107610.

Для кодирования русскоязычных текстов используется базовая плоскость с диапазоном кодов U+0000…U+FFFF.
Коды 0000 – 007F (0000 – 0127)10 – это коды ASCII.
Коды 0400 – 04FF – кириллица.
Коды 0410 – 0427 – буквы А – Я, кроме Ё.
Коды 0430 – 044F – буквы а – я, кроме ё.
Код 0401 – буква Ё.
Код 0451 – буква ё.

Коды UCS из разных плоскостей имеют разную длину и не все кратны байту. Передача и хранение данных в современных ЭВМ и сетях производится побайтно. Память адресуется также побайтно. Поэтому для использования в ЭВМ коды UCS преобразуются в кратные байту коды одной из трёх кодировок UTF: UTF-8, UTF-16 и UTF-32. В кодировке UTF-32 используется для кодирования любого символа ровно 32 бита. Кодировки UTF-8 и UTF-16 используют для представления символов переменное число байтов. Один символ кодировки UTF-16 представлен последовательностью двух байтов или двух пар байтов. Коды символов в UTF-8 имеют длину от одного до шести байт.

Примечание. Для понимания способа преобразования кода UCS в UTF-8 необходимо отметить, что длина кода символа в UCS подсчитывается в битах. Длина кода в диапазоне U+0000…U+007F равна семи битам, т. е. взят самый большой код из диапазона, отброшены левые нули, получившийся код 7F16 переведён в двоичную систему счисления: 7F16 = 111 11112. Таким образом, в UCS коды ASCII, как и в изначальной кодировке ASCII, семибитные. Аналогично коды кириллицы в UCS имеют длину 11-бит:
      U+04FF → 4FF → 100 1111 11112.

Наиболее широкое применение получила кодировка UTF-8 (табл. 2).

Таблица 2. Соответствие кодов UCS и UTF-8
Диапазон кодов UCS UTF-8
Длина (байт)Диапазон кодов
0000-007F 10-7F
0080-07FF 2c280 - dfbf
0800-FFFF 3e0a080 - efbfbf
10000-10FFFF 4 f0908080 - f48fbfbf

Коды в UTF-8 получаются из кодов UCS с помощью шаблонов (табл. 3). Обозначим через X двоичную цифру кода UCS, тогда любой n-битный код в общем виде будет обозначен как последовательность из n бит. Например, однобайтный код UCS будет записываться в виде XXXXXXX. Для перевода в UTF-8 формально к этому коду слева добавляется 0.

Таблица 3.Шаблоны для перевода из UCS в UTF-8
Длина в UCS Шаблон
В байтахв битах
1 7 0xxxxxxx
2 11 110xxxxx 10xxxxxx
3 16 1110xxxx 10xxxxxx 10xxxxxx
4 21 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

Пример перевод однобайтного UCS кода. Переведём код числа 1. Код единицы в UCS U+0031, или в виде семи бит 011 0001. Формально для перевода в UTF-8 семибитный код добавляется до байта нулём слева: 0011 00012 → 3116.

Пример перевода двухбайтного UCS кода. Рассмотрим, как кодируется в UTF-8 буква Ж. Её код в UCS - 104610 или 041616 или 10000 0101102 . Код UCS в двоичном виде разбивается на две части: пять левых бит 10000 и шесть правых 010110. Левая часть дополняется до байта признаком 110 двухбайтного кода UTF-8: 11010000. В признаке 110 две единицы - это число 2 в единичной системе счисления. К правой части приписываются два бита 10 признака продолжения многобайтного кода: 10010110. Окончательно код буквы Ж в UTF-8 выглядит так:

11010000 100101102 или D0 9616

Пример перевода трёхбайтного UCS кода. Переведём в UTF-8 код U+266B нотного символа . Код U+266B лежит в диапазоне
        0800 < 266B < FFFF,
поэтому код в UTF-8 - трёхбайтный (см. табл. 2). Переведём U+266B в двоичную систему счисления и разобьём двоичный код на три части

266B16 → 0010 011001 1010112

Дополнив первую часть до байта признаком 1110 трёхбайтного кода UTF-8, а вторую и третью части - признаком продолжения многобайтного кода, получим код нотного символа в кодировке UTF-8:

11100010 10011001 101010112 → E2 99 AB16

Пример перевода четырёхбайтного UCS кода. Переведём в UTF-8 код U+1F31B символа 🌛 "Первая четверть луны с лицом". Код U+1F31B лежит в диапазоне
        10000 < 1F31B < 10FFFF,
поэтому код в UTF-8 - четырёхбайтный (см. табл. 2). Переведём U+1F31B в двоичную систему счисления и разобьём двоичный код на четыре части

Дополнив первую часть до байта признаком 11110 четырёхбайтного кода UTF-8, а вторую, третью и четвёртую части - признаком 10 продолжения многобайтного кода, получим код символа 🌛 в кодировке UTF-8:

11110000 10011111 10001100 100110112 → F0 9F 8C 9B16

Кодировку UTF-8 необходимо применять только к текстам, содержащим символы, отсутствующие в однобайтных кодировках (КОИ-8, windows-1251 и т. д.).

Единицы измерения информации

Альтернативным называется вопрос, на который можно ответить либо да, либо нет. Например: "Ты сдал зачёт?". Это минимальное количество информации, которое можно сообщить. Ответу да присваивают код (одноразрядное число) 1, а нет - 0. Величина, принимающая значение 0 или 1 содержит один бит информации. На вопрос "Он сдал зачёт?" возможны три варианта ответа: да, нет, не знаю, и для его хранения потребуется 2 бита: 00 - нет, 01 - да и 11 - не знаю.

Вся информация в ЭВМ хранится в виде последовательности битов. Совокупность из восьми битов называется байтом. К сожалению, близость значений 210 = 1024 и 103=1000 привела к некоторой путанице в терминологии. Первоначально различали (а специалисты и сейчас различают) метрическую единицу 1 килобайт = 1000 байт и двоично-десятичную единицу 1 Кбайт = 1024 байта. Но на бытовом уровне вместо Кбайт или Мбайт говорят килобайт или мегабайт. Ошибка приводит к преуменьшению реальной ёмкости накопителей памяти, причем, чем больше ёмкость, тем больше ошибка. В табл. 4 приведены значения в байтах двоично-десятичных единиц измерения информации и метрических (десятичных).

Таблица 4. Единицы измерения информации
двоично-десятичныедесятичные
1 байт 1 байт
1 Кбайт = 210 =1024 байта 1 килобайт = 103=1000 байт
1 Мбайт = 220 =1024×1024 = 1 048 576 байт байта1 мегабайт = 106=1 000 000 байт
1 Гбайт = 230 =1024×1024×1024 = 1 073 741 824 байта1 гигабайт = 109=1 000 000 000 байт
1 Тбайт = 240 =1024×1024×1024×1024 = 1 099 511 627 776 байта1 терабайт = 1012 =1 000 000 000 000 байт
1 Пбайт = 250 байт1 петабайт = 1015 байт

Лекция 2. Принципы работы ЭВМ

Классификация ЭВМ

Электронные вычислительные машины по своему физическому принципу действия делятся на три группы (рис. 1)

Рис. 1. Классификация ЭВМ

Устройство аналоговых вычислительных машин основано на принципе моделирования одних непрерывных процессов другими непрерывными. В качестве моделей используются электронные схемы. Исследователь составляет из типовых электронных элементов схему, процесс в которой развивается так же как моделируемый процесс. Результаты выводятся на экран осциллографа в виде непрерывно изменяющихся или застывших кривых. Например, с помощью колебательного контура можно исследовать колебания маятника. Можно брать интегралы, решать дифференциальные уравнения. Результат получается практически мгновенно, но точность невелика.

Применяются аналоговые вычислительные машины в научных исследованиях.

Цифровые вычислительные машины (ЦВМ) обрабатывают только цифровую информацию. Так как абсолютное большинство пользователей ЭВМ работает на ЦВМ, то вместо ЦВМ почти всегда говорят ЭВМ. Функционирование ЦВМ основано на сформулированном в 1945 году фон Нейманом принципе программного управления. В [1] принцип программного управления изложен следующим образом:

  1. Информация кодируется в двоичной форме и разделяется на единицы (элементы) называемые словами.
  2. Разнотипные слова информации различаются по способу использования, но не по способу кодирования.
  3. Слова информации размещаются в ячейках памяти машины и идентифицируются номерами ячеек, называемыми адресами слов.
  4. Алгоритм представляется в форме последовательности управляющих слов, которые определяют наименование операции и слова информации, участвующие в операции, и называются командами. Алгоритм, представленный в терминах машинных команд, называется программой.
  5. Выполнение вычислений, предписанных алгоритмом, сводится к последовательному выполнению команд, в порядке, однозначно определяемом программой.

Согласно первому пункту ЦВМ обрабатывают только цифровую информацию, представленную в двоичном коде. Второй пункт принципа, в частности, означает, что программа и данные по виду в памяти ЭВМ неразличимы и программа может обрабатываться как данные. При вводе в ЦВМ текстовая, графическая, звуковая и другие виды информации преобразуются в двоичный код. Результаты обработки преобразуются обратно в нужный пользователю вид.

Пример простейшей ЦВМ, построенной по принципу фон Неймана

В состав ЦВМ любого назначения и любой конфигурации всегда входят процессор и оперативная память. Остальные устройства добавляются к ЦВМ в зависимости от её назначения и называются внешними. Для понимания принципов работы ЦВМ достаточно рассмотреть только взаимодействие процессора и оперативной памяти. Пример такой ЦВМ изображён на рис. 2.

Рис. 2. Простейшая ЦВМ

В соответствии с принципом фон Неймана вся информация в ЦВМ хранится и обрабатывается в двоичной системе счисления. Длина машинного слова - 10 бит. Команды ЦВМ - двухадресные и имеют следующую структуру:

     |           |     |     |           |     |     |     
 КОп         Адрес 1        Адрес 2

Под код операции (КОп) отводится два бита. Максимальное количество команд - 22 = 410. Адреса в команде - 4-разрядные. Максимальный адрес - 24-1 = 11112 = 1510.

Задача

Вычислим на этой ЦВМ произведение двух сумм:

g = (a + b)*(c + d), где a = 2; b = 5; c =3; d = 6.

Для решения этой задачи в систему команд ЦВМ должны входить четыре команды

 
00                    
- останов

 

 
01   A1             
- пересылка из АЛУ в ячейку памяти с адресом A1

 

 
10   A1      A2   
- сложение с фиксированной запятой операндов с адресами A1 и A2

 

 
11   A1      A2   
- умножение с фиксированной запятой операндов с адресами A1 и A2

 

Результат арифметической операции остаётся в АЛУ.

Чтобы на этой очень простой машине можно было хоть что-то посчитать, к ней нужно добавить не показанный на рисунке пульт управления, с которого можно ввести в память данные и команды, просмотреть содержимое памяти и запустить процесс выполнения программы.

Работающую модель ЭВМ с пультом управления можно посмотреть здесь.

Предположим, что данные и программа уже введены. Введём с пульта управления в счётчик команд адрес начала программы 1000 и нажмём кнопку ПУСК. Заработает генератор тактовых импульсов, задающий темп работы машины. В нашей машине за один такт выполняется ровно одна команда.

Вся программа состоит из семи команд, расположенных в ячейках памяти с адресами с 1000 по 1110, и будет, согласно принципу фон Неймана выполняться подряд команда за командой.

Выполнение программы

В первом такте будет выполнена команда сложения a и b. Её выполнение состоит из следующих действий (микроопераций):

  1. содержимое счётчика команд передаётся на регистр адреса;
  2. содержимое счётчика команд увеличивается на единицу (1000 + 1 =1001, это состояние счётчика показано на рис. 2);
  3. из ячейки памяти с адресом, взятым из регистра адреса, данные (команда сложения 10 0000 0001) передаются на регистр данных;
  4. из регистра данных команда передаётся на регистр команд;
  5. из команды, находящейся на регистре команд выделяется код операции

Эти пять действий для всех команд одинаковые. Дальнейшие действия зависят от выбранной операции. В нашей программе первая команда - сложение и действия следующие:

  1. из регистра команд выбирается адрес первого операнда Адр1 и заносится на регистр адреса;
  2. из ячейки памяти с адресом Адр1 данные (операнд 1) передаются на регистр данных;
  3. из регистра данных операнд 1 передаётся в АЛУ на регистр первого операнда;
  4. из регистра команд выбирается адрес второго операнда Адр2 и заносится на регистр адреса;
  5. из ячейки памяти с адресом Адр2 данные (операнд 2) передаются на регистр данных;
  6. из регистра данных операнд 2 передаётся в АЛУ на регистр второго операнда;
  7. производится сложение операнда 1 с операндом 2 и результат помещается на регистр результата.

Следующая команда пересылки суммы e из регистра результата в память состоит из семи действий. Первые пять действий такие же, как и в первой команде, а два последних действия отличаются:

  1. из регистра команд выбирается адрес Адр1 ячейки памяти, в которой будет храниться сумма, и заносится на регистр адреса;
  2. из регистра результата, находящегося в АЛУ, данные переносятся в ячейку памяти с адресом Адр1.

По аналогичному алгоритму выполнятся и следующие две пары операций:
- сложение с и d и занесение из АЛУ в память суммы f;
- умножение e на f занесение из АЛУ в память произведения g.

Последняя операция остановит генератор тактовых импульсов.

Примечание. В современных ЦВМ генератор тактовых импульсов работает непрерывно от момента включения до момента выключения питания. Подробно эта проблема будет рассмотрена в Лекции 13. Программное обеспечение ЭВМ. Чтобы расширить систему команд и увеличить объём памяти рассмотренной машины, нужно сделать её одноадресной (см. Лекция 5. Память ЭВМ).

Универсальность ЦВМ. Машина Тьюринга.

С практической и теоретической точек зрения очень важно знать, какими свойствами должна обладать ЦВМ, способная выполнить любой алгоритм. В 1936 году Аланом Тьюрингом была предложена абстрактная вычислительная машина, с помощью которой может быть реализован всякий интуитивный алгоритм. В состав машины Тьюринга входит бесконечная лента, разделённая на ячейки, и управляющее устройство (головка записи-чтения), способное находиться в одном из множества состояний. Число возможных состояний управляющего устройства конечно и точно задано. Управляющее устройство может перемещаться влево и вправо по ленте, читать и записывать в ячейки символы некоторого конечного алфавита. Выделяется особый пустой символ, заполняющий все клетки ленты, кроме тех из них (конечного числа), на которых записаны входные данные.

Управляющее устройство работает согласно правилам перехода, которые представляют алгоритм, реализуемый данной машиной Тьюринга. Каждое правило перехода предписывает машине, в зависимости от текущего состояния и наблюдаемого в текущей клетке символа, записать в эту клетку новый символ, перейти в новое состояние и переместиться на одну клетку влево или вправо. Некоторые состояния машины Тьюринга могут быть помечены как терминальные, и переход в любое из них означает конец работы, остановку алгоритма.

Несмотря на простоту машины Тьюринга, на ней можно вычислить всё, что можно вычислить на любой другой машине, осуществляющей вычисления с помощью последовательности элементарных действий. Это свойство называется полнотой. Таким образом, любая ЦВМ с точки зрения реализуемости любого алгоритма универсальна. На практике возможность выполнения алгоритма ограничивается ресурсами ЦВМ, как правило, объёмом памяти и быстродействием.

Например, у исследователей часто возникает необходимость решать огромные системы, состоящие из сотен тысяч или миллионов линейных уравнений. Не всякая ЦВМ имеет достаточный объём памяти для решения таких систем.

По способам связи с внешним миром ЦВМ можно разделить на управляющие, коллективного пользования и персональные.

Управляющие ЦВМ

Управляющие ЦВМ предназначены для автоматического управления объектом (станком, стиральной машиной, ракетой и т. д.) в реальном масштабе времени. Они оснащены специальными разъёмами для приёма информации от датчиков и выдачи команд на управляемые устройства. У управляющей ЦВМ могут отсутствовать дисплей и клавиатура.

ЦВМ коллективного пользования

ЦВМ коллективного пользования - широкий класс компьютеров. Их объединяет возможность одновременной работы с большим количеством пользователей. В качестве ЦВМ коллективного пользования чаще всего служат мэйнфреймы и суперэвм. Они обладают огромной памятью, производительностью и мощными устройствами ввода-вывода. Для связи (интерфейса) с пользователями в ЦВМ коллективного пользования первоначально применялись простейшие терминалы, состоящие из монитора и клавиатуры. В настоящее время в качестве терминалов служат персональные ЭВМ.

Персональные ЭВМ (ПЭВМ).

Строго говоря, нужно было бы писать труднопроизносимое "ПЦВМ", но эта аббревиатура, к счастью, не применяется. Основное преимущество ПЭВМ перед ЭВМ коллективного пользования - это возможность доступа к ней в любое время. По признаку доступности ПЭВМ можно разделить на:

К сожалению, чем меньше размеры ПЭВМ, тем менее удобно на ней работать. Наиболее удобны для работы настольные ПЭВМ. К ним можно подключить монитор любого размера. Клавиатура настольных ПЭВМ имеет оптимальные для человеческой руки размеры. Их необходимым атрибутом является мышка. Экран ноутбука определяет его размер и вес и не может быть большим, Клавиатура ноутбуков нестандартная, к ней нужно привыкнуть. Служащая для управления курсором сенсорная панель ноутбука не так удобна, как мышка, а носить вместе с ноутбуком мышку тоже неудобно. Сенсорный экран планшета только теоретически компенсирует отсутствие клавиатуры и мышки. Смартфон, рассматриваемый как компьютер, обладает кроме всех недостатков планшета ещё одним - крошечным экраном.

История развития вычислительных машин

Простейшим вычислительным устройством являются счёты, которые применяли 5 тысяч лет назад и успешно используют по сей день. Другое устройство подобного типа абак — семейство счётных досок, применявшихся для арифметических вычислений приблизительно с V века до н. э. в древних культурах — Древней Греции, Древнем Риме. Древнем Китае и ряде других.

В Национальном археологическом музее в Афинах хранится Антикитерский механизм - устройство, поднятое в 1901 году с древнего судна. Дата его создания - II-I в. до н. э. Механизм содержал не менее 30 бронзовых шестерён и использовался для расчёта движения небесных тел, позволял узнать дату 42 астрономических событий.

Первый (?) механический калькулятор изготовил в 1623 году немец Вильгельм Шикард. В 1642 году девятнадцатилетний Блез Паскаль начал создание своей суммирующей машины «паскалины». До 1652 года под его наблюдением было создано около 50 вариантов «паскалины». Похожая, но более совершенная счётная машина была создана Лейбницем в 1673 году.

В 1801 году французский ткач Жаккар продемонстрировал первый станок с программным управлением. Сам Жаккар такой термин не употреблял. Это был станок для плетения рыбацких сетей. Несколько позже Жаккар построил станки для производства тканей с рисунками. Рисунок (программа) задавался с помощью отверстий на перфокарте. Ткани, полученные на станках Жаккара, очень красивы и получили название жаккардовые.

В середине XIX Ч. Беббидж предпринял попытку создать аналитическую машину, основанную на принципах, мало отличающихся от принципов построения современны ЦВМ. Программы для его машины разрабатывала дочь Байрона леди Лавлайс. К сожалению, в качестве элементов Беббидж мог использовать только механические детали (шестерни, рейки), машина получалась невероятно громоздкая и достроить её не удалось. Необходимые элементы (реле, электронные лампы, транзисторы, затем интегральные схемы) были изобретены уже после смерти этого замечательного человека.

Кто и когда построил первый программируемый, реально работающий компьютер, точно не известно. Приведём два примера компьютеров, которые в разных источниках считаются первыми.

В 1941 году Конрад Цузе в Германии создал вычислительную машину — Z3, которую сегодня многие считают первым реально действовавшим программируемым компьютером, который получил практическое применение и использовался для проектирования крыла самолёта.

Первым реально работающим компьютером считается и запущенный в Гарвардском университете 7 августа 1944 года программируемый компьютер Марк I. Основными его элементами были зубчатые колёса (для представления чисел) и электромеханические реле (для управления процессом вычислений). Марк I весил 4,5 тонны, занимал площадь в несколько десятков кв. м, содержал около 765 тысяч деталей (электромеханических реле, переключателей и т. п.) Основные вычислительные модули синхронизировались механически при помощи 15-метрового вала, приводившегося в движение электрическим двигателем мощностью в 5 л. с. (4 кВт).

В 1946 году создана первая ламповая ЭВМ ЭНИАК, в 1000 раз более производительная, чем Марк I.

Четыре поколения ЭВМ

Классификация чего бы то ни было вообще - вещь неблагодарная. Она никогда не бывает полной. Приемлемым признаком, позволяющим разобраться в том, как развивалась вычислительная техника, оказалась элементная база, на которой строится ЭВМ. Любопытно, что количество элементов оперативной памяти современной ЭВМ соизмеримо с количеством нейронов в мозгу человека (примерно 100 миллиардов нейронов) и сейчас удаётся решать на ЭВМ задачу, которая не так давно не поддавалась решению - опознать человека по его фотографии, т. е. решить одну из задач распознавания образов, фундаментальную задачу ассоциативного мышления человека. Можно с осторожностью сказать, что машина по своей сложности и по своим "интеллектуальным возможностям" приближается к человеку.

Первое поколение ЭВМ - ламповые. Первой серийно выпускавшейся ЭВМ первого поколения стал компьютер UNIVAC, разработка которого началась в 1946 году и завершилась в 1951. UNIVAC выполнял операцию сложения за 120 мкс, умножения – за 1800 мкс и деления – за 3600 мкс. Основная память состояла из 1000 слов. Каждое слово вмещало одно двоично-десятичное число, 12 символов или 72 бита. Другими словами, UNIVAC делал 8333 операции сложения в секунду и 278 операций деления в секунду. Он имел память объёмом 12 килобайт, использовал 5200 электровакуумных ламп, весил 13 тонн, потреблял 125 кВт электроэнергии и мог выполнять в среднем около 1905 операций в секунду, работая на тактовой частоте 2,25 МГц. Центральный комплекс (то есть только процессор и память) имел основание размером 4,3 Х 2,4 м и высоту 2,6 м. Вся система занимала площадь в 35,5 кв. м.

В СССР, начиная с 1953 года, был разработан ряд ламповых ЭВМ со сходными характеристиками. Например, ЭВМ Стрела (1953 г.) имела быстродействие — 2000 оп./с. элементную базу — 6200 электровакуумных ламп, 60 000 полупроводниковых диодов, оперативную память на электронно-лучевых трубках, 2048 слов, при длине слова — 43 двоичных разряда. ЭВМ М-20, выпущенная в 1959 году имела быстродействие 20 000 оп./с.

Второе поколение ЭВМ - полупроводниковые (транзисторные). Одна из лучших ЭВМ этого поколения - БЭСМ-6, разработанная (1967) под руководством С. А. Лебедева. Она имела быстродействие 1 млн оп./с., объем ферритового ОЗУ - от 32 до 128 тысяч 48-разрядных машинных слов. Главное её достоинство - уникальная архитектура, во многом превосходившая архитектуру ЭВМ третьего поколения, и делавшая её одной самых высокопроизводительных ЭВМ в мире.

Третье поколение ЭВМ - на интегральных схемах. Наиболее яркий представитель этого поколения - ряд компьютеров разной мощности, но единой архитектуры, получивший название IBM-360. Различные модели этого ряда имели быстродействие от 10 тыс. оп./с. до 10 млн оп./с. ЭВМ IBM-360 поставлялись заказчику с готовым к применению системным программным обеспечением, в которое входили операционная система OS-360 и трансляторы с языков ФОРТРАН, КОБОЛ, PL/I. До IBM-360 большинство ЭВМ поставлялось заказчику "голыми", т. е. без какого-либо программного обеспечения. По-видимому, именно наличие готового программного обеспечения и хорошая реклама сделали, несмотря на серьёзные недостатки, IBM-360 на целое десятилетие наиболее распространённой системой компьютеров. В СССР было принято решение прекратить разработки отечественных ЭВМ и копировать IBM-360 под названием ЕС ЭВМ. Это решение известный западноевропейский программист Дейкстра назвал самой большой победой Запада в экономической борьбе с СССР.

Четвёртое поколение ЭВМ - на больших интегральных схемах. В 1971 году компания Intel выпускает на рынок первый микропроцессор «Intel 4004», размещённый на одной большой интегральной схеме. Он имел тактовую частоту - 740 кГц и 2300 транзисторов. Современные процессоры Intel Core i7 имеют тактовую частоту до 4 ГГц и более миллиарда транзисторов.

В 1981 году на рынке ЭВМ произошло революционное событие: фирма IBM выпустила ПЭВМ IBM PC. Самым главным фактором, принесшим популярность IBM PC, стала открытость архитектуры. В корпорации впервые отказались от многолетних принципов и не стали лицензировать применявшиеся комплектующие или BIOS. Это позволило множеству сторонних фирм на основе опубликованных спецификаций наладить сборку «клонов». IBM PC продавался в различных конфигурациях. Самая дорогая стоила $3005, самая дешёвая конфигурация обходилась в сумму $1565. Клоны, производимые другими фирмами стоили ещё дешевлее. Любопытно, что с тех пор средняя цена ПЭВМ колеблется вокруг $1000. Это та цена, которую может заплатить массовый пользователь.

Дальнейшее развитие ЭВМ. Быстродействие процессора определяется тактовой частотой. Чем выше тактовая частота, тем больше выделяется тепла. На сегодняшний момент предел тактовой частоты, при которой БИС процессора ещё не расплавится, составляет примерно 5 ГГц. Другие физические принципы построения вычислительных машин (например, квантовый компьютер) рассматриваются на уровне гипотез. Поэтому путь к повышению производительности - распараллеливание вычислений, создание многопроцессорных (многоядерных) систем и специального программного обеспечения для параллельных вычислений.

Медленно, но верно приближается осуществление мечты создать "умную, интеллектуальную" ЭВМ. Выше уже упоминалось об успехах в области распознавания образов. Машины уже обыгрывают чемпионов мира по шахматам.

К сожалению, научную картину перспектив развития ЭВМ сильно искажают экономические и политические интересы. Примером может служить японский проект машин пятого поколения. Целью проекта было создание «эпохального суперкомпьютера» с мощными функциями искусственного интеллекта. Начало разработок — 1982, конец разработок — 1992, стоимость разработок — порядка 500 млн $. Программа закончилась провалом, так как не опиралась на четкие научные методики, более того, даже её промежуточные цели оказались недостижимы в технологическом плане.

Лекция 3. Представление чисел в ЭВМ

В ЭВМ наиболее простым технически и дешёвым экономически оказалось представление чисел в двоичной системе счисления. С другой стороны, современный человек с раннего возраста учится считать в десятичной системе счисления, доводя навыки счёта до автоматизма. Забавно слышать, как число 1002 программист читает так: "СТО ДВОИЧНОЕ", иногда поясняя: "ЧЕТЫРЕ". Следует отметить, что все правила выполнения арифметических действий с десятичными числами распространяются на действия с числами, записанными в любой позиционной системе счисления.

Основное отличие выполнения арифметических операций на ЭВМ от расчётов вручную - ограничение на количество знаков в числе. В приведённом в лекции 2 примере 10-разрядной ЭВМ самое большое целое число без знака состоит из десяти единиц 11111111112 = 102310. Традиционно формат для записи целых чисел называется форматом с фиксированной запятой. Для записи дробных чисел и расширения диапазона представимых в ЭВМ чисел используется формат с плавающей запятой. Для операций с числами, имеющим почти неограниченное количество знаков, используется символьная арифметика, реализуемая программным путём.

Системы счисления

Системой счисления называется набор знаков вместе с правилами составления из них натуральных чисел. Знаки называются цифрами, набор знаков - алфавитом.

Все системы счисления делятся на позиционные и непозиционные. Примеры непозиционных систем счисления: римская (XVII - семнадцать) и единичная (1111 - три). Последняя применяется для указания числа байт в коде символа в UTF-8.

Позиционной называется система счисления, в которой значение цифры определяется её местом в числе.

Позиционная система счисления называется n-ичной (2-ичной, 8-ричной, 10-ичной), если её алфавит состоит из цифр от 0 до n-1. Число цифр в системе называется её основанием. В десятичной системе счисления 10 цифр: 0, 1, . . .,9.

В числе, записанном в позиционной системе счисления k-й разряд, считая справа, имеет значение

Ck*Sk-1 , 
где Ck - цифра, стоящая в k-м разряде (в 10-й системе
        счисления Ck = 0, 1, . . .,9),
    S - основание системы счисления,
    k - номер разряда.

В общем виде число x (0 ≤ x ≤ S m) в позиционной системе счисления с основанием S может быть представлено в виде функции от основания S:

x = CmSm-1 + Cm-1Sm-2 + . . . + C2S1 + C1S0 ,             (2)
где m  -  количество разрядов в числе;
    Ci - цифра, стоящая в i-м разряде, i = 0,1,...,S-1.

Например, число 125010 можно представить так

1250 = 1×103 + 2×102 + 5×101 + 0×100 .

Примечание. Большинство математиков число ноль не включает в ряд натуральных чисел. В некоторых случаях это создаёт неудобства. В частности, в формуле (2) x=0 при C1=0 и r=1 , но по определению число в позиционной системе счисления - натуральное. Поэтому некоторые математики включают ноль в множество натуральных чисел.

При описании ЭВМ записывать числа в двоичной системе счисления неудобно. Например, число, хранящееся в четырёхбайтном слове, состоит из 32-х нулей и единиц. Каждые 4 разряда двоичного числа соответствуют одному разряду 16-ичного числа. Поэтому в информатике широко применяется 16-ичная система счисления. Алфавит 16-ичной системы состоит из 16 цифр. Обозначения первых 10 цифр совпадают с десятичными. Следующие шесть цифр обозначаются буквами латинского алфавита. Соответствие между десятичной, 16-ичной, восьмиричной, и двоичной системами счисления представлено в табл. 5
Таблица 5. Запись чисел в четырёх системах счисления
Десятич-
ная
Шестнадца-
тиричная
Восьми-
ричная
Двоичная
0 0 00
1 1 11
2 2 210
3 3 311
4 4 4100
5 5 5101
6 6 6110
7 7 7111
8 8 101000
9 9 111001
10 A121010
11 B131011
12 C141100
13 D151101
14 E161110
15 F171111

Перевод чисел из одной системы счисления в другую

Перевод из десятичной системы в двоичную. Переведём число 87,3510. Целая и дробная часть переводятся отдельно разными способами. Целая часть переводится путём последовательного деления на 2:

     87 | 2 
     86   43 | 2 
      1   42   21 | 2 
           1   20   10 | 2 
                1   10   5 | 2 
                     0   4    2 | 2 
                         1    2   1 
                              0

Первой цифрой двоичного числа будет результат последнего деления. Он всегда равен единице. Следующие разряды выписываются снизу справа вверх налево как остатки от делений:

8710 = 10101112 .
Проверка
10101112  = (1×26 + 0×25 + 1×24 + 0×23 + 1×24 +  + 1×24 +  + 1×24)10
 = (64 + 0 + 16 + 0 + 4 + 2 + 1)10 = 8710

Дробная часть переводится последовательным умножением на 2:

0.35×2 = 0.70
0.7×2 = 1.4   
0.4×2 = 0.8
0.8×2 = 1.6
0.6×2 = 1.2
0.2×2 = 0.4
0.4×2 = 0.8
0.8×2 = 1.6
0.6×2 = 1.2
0.2×2 = 0.4
 . . . . . 

Результатом служат целые части произведений, выписанные сверху вниз:

0.3510 = 0.010110(0110)2 .

Получилась двоичная периодическая дробь. Сложив целую и дробную части, окончательно получим:

87.3510 = 1010111.010110(0110)2 .

Приведённый алгоритм применим для перевода из любой позиционной системы счисления в любую другую.

Перевод из двоичной системы в шестнадцатиричную и обратно. Для перевода в шестнадцатиричную систему счисления нужно разбить двоичное число на группы по 4 разряда, начиная справа, и каждую группу перевести в шестнадцатиричную систему счисления. Например,

10 1100 0101 01112 = 2 С 5 7 16 

Для обратного перевода нужно каждый шестнадцатиричный разряд представить в виде четырёх двоичных.

Представление чисел с фиксированной запятой

При записи на бумаге принято целую часть числа от дробной отделять запятой (в США - точкой). Также первоначально стали представлять числа и в ЭВМ, но оказалось, что в достаточно длинном 32-разрядном машинном слове помещается число, которое после перевода в десятичную систему счисления содержит не более десяти цифр:

±(231-1) = ±2 147 483 647.

При инженерных и научных расчётах часто требуется более трёх знаков после запятой. Если под дробную часть отвести четыре разряда, т. е. зафиксировать запятую перед четвёртым разрядом справа, то самое большое по модулю число будет меньше 220 000:

214748,3647 .

Этого совершенно недостаточно для практических расчётов, поэтому для представления действительных чисел стали применять форму представления с плавающей запятой. Целые числа в программах, в основном, используются для нумерации, индексации и диапазона

-2 147 483 647 ÷ +2 147 483 647 

вполне хватает. Итак, под числами с фиксированной запятой понимают целые числа. На практике применяют 8-ми, 16-и, 32-х и 64-х разрядные форматы (со знаком или без знака) числа с фиксированной запятой. Пример записи числа -50010 = 1111101002 в 16-битном формате со знаком

1 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0

Крайний левый разряд отведён под знак числа: 0 - плюс, 1 - минус.

Для того, чтобы определить, сколько двоичных разрядов будет занимать целое положительное число N после перевода из десятичной системы счисления в двоичную, нужно вычислить k = log2N и взять ближайшее большее, чем k, целое число.

Примеры

	log215   = 3.90    k = 4   1510 = 11112
	log216   = 4       k = 5   1610 = 100002
	log2500  = 8,97    k = 9   50010 = 1 1111 01002
	log21000 = 9.96    k = 10  100010 = 11 1110 10002
	log21024 = 10      k = 11  102410 = 100 0000 00002

Представление чисел в формате с плавающей запятой

Полулогарифмическая форма представления чисел

Запись дробей, очень больших и очень маленьких чисел. В физике, астрономии, химии для записи очень больших и очень маленьких по модулю чисел используют полулогарифмическую форму. Например, расстояние от Земли до Солнца удобнее записывать не в виде

                       149 600 000 км,
а так                  1.496*108 км,

или с меньшей точностью 
                       1.5*108 км.

Общая формула для полулогарифмического представления чисел имеет вид:

                      x = q*sp
где       q  -   мантисса,
          h = sp - характеристика,
          s - основание,
          p - порядок.

Многие физические величины практически можно записать только в полулогарифмической форме, например, масса электрона равна

                      9.1091*10-31 кг.

Форматы чисел с плавающей запятой

Для записи числа в полулогарифмической форме в память ЭВМ примем

                    1) s = 2,
                    2)0.5 ≤ |q| < 1.

Число, мантисса q которого удовлетворяет условию 2, называется нормализованным.

Так как основание степени в ЭВМ никогда не меняется, то его в ячейку памяти записывать не нужно. Простейший 32-разрядный формат числа с плавающей запятой имеет вид:

±    |   |   |   |   |   |    ±    |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   
 0  1 |   |   |   |   |   |8    |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |31

В разряды 0 - 7 записывается порядок числа. В разряде 0 - знак порядка.

В разряды с 8-го по 31-й помещается мантисса. В 8-м разряде - знак мантиссы.

Представим в форме с плавающей запятой число x = 12.510 = 1100.12. В нормализованном виде

               x = ( (12.5/24)*24 )10 = (0.78125*24)10 = (0.11001*10100)2
 

В 32-разрядной ячейке памяти число x выглядит так:

000001000110010 . . . . . . . . . . . . . . 0
+      4       +               0.78125

Представимость чисел в заданном формате

Большинство людей за всю свою жизнь ни разу не сталкивалось с числом, состоящим из такого большого количества цифр, что для его записи не хватало одной строки листа бумаги. К сожалению, в ЭВМ числа часто не помещаются в заданный формат.

Самое большое число с плавающей запятой определяется характеристикой

                h = sp. 

При  s = 2  и   pmax= 27-1 = 127

                hmax = 2127 = 1038 .

Данная оценка удобна, но не совсем точна. Запишем в рассмотренном выше 32-разрядном формате самое большое число:

 0  1 | 1 | 1 | 1 | 1 | 1 | 1   0  1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 
 0  1 | 1 | 1 | 1 | 1 | 1 |  7   8  1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 31

Переведём полученное число в десятичную систему счисления. Сначала переведём мантиссу:

 
0.111 1111 1111 1111 1111 11112 = 1 - 2-23.

Умножив мантиссу на характеристику, получим в десятичной системе счисления самое большое число, которое можно записать в 32-разрядном формате с плавающей

 
(1 - 2-23)*2127 = 1,70141*1038

Самое маленькое положительное число, которое можно записать в рассматриваемом формате, отличается по форме только знаковым разрядом порядка и в десятичной системе счисления оно имеет вид:

 
(1 - 2-23)*2-127 = 5,87747-39.

Итак, модуль числа Х в рассматриваемом формате должен находиться в диапазоне:

 
5,87747-39 ≤ |X| ≤  1,70141*1038

Погрешность чисел с плавающей запятой

Дробь, знаменатель которой не может быть приведён к виду 10n, n = 1, 2, ..., не может быть представлена точно в виде десятичной дроби. Например,

9/50 = 18/100 = 18/(10*10) = 0,18
5/24 = 5/(3*2*2*2) = 0,20833333(3)
1/3 = 0,333(3) 

Аналогичным свойством обладает и двоичная система счисления.

Точно в формате с плавающей запятой представляется число, модуль которого можно записать в виде следующей несократимой дроби:

       M    , где M и n – неотрицательные целые числа.
       2n

Может показаться неожиданным, что 0,1 (одна десятая) не может быть представлена точно в формате с плавающей запятой, а 0,25 – представима:

            0.110 =1/(2*5) = 0.00011001100 . . . = 0.000(1100)2 
            0.2510 =1/4 = 0.012                                        

Количество двоичных знаков в числе x определяется количеством разрядов в мантиссе. В рассматриваемом 32-разрядном формате длина мантиссы

             23 двоичных разряда,

количество десятичных знаков

             23*log102 ≅ 6.92369 ≅ 7 .

Целое число N не имеет погрешности в формате с плавающей запятой, если
в двоичном виде номер его самого младшего разряда, содержащего единицу, меньше или равен числу разрядов в мантиссе. Например, N=233 представляется точно, а N=233 -1, как показано в приведённом ниже примере, имеет погрешность.

Теория погрешностей вычислений в формате с плавающей запятой очень сложна. Ниже приводятся лишь примеры возникновения таких погрешностей.

Для простоты рассмотрим семибитный формат числа с плавающей запятой:

±     |     ±    |   |   
0   1   2   3          6

В этом формате при значении порядка p = 0 точно представимы только 4 числа: 1/2=4/8; 5/8; 6/8 и 7/8. В памяти ЭВМ эти числа хранятся так:

  0     0 |  0    0     1 |  0 |  0 
  0     0 |  0    0     1 |  0 |  1 
  0     0 |  0    0     1 |  1 |  0 
  0     0 |  0    0     1 |  1 |  1 

Разместим эти числа на числовой оси:

Все числа, заключённые между 1/2 и 5/8 в выбранном нами формате не могут быть представлены точно. Они будут округлены либо в меньшую сторону до 1/2, либо в большую до 5/8. Попытаемся представить в выбранном формате 9/16 =(0.1001)2:

  0     0 |  0    0     1 |  0 |  0 
1

Младший разряд вышел за пределы формата и вместо 9/16 в памяти ЭВМ будет храниться 8/16. В общем случае погрешность представления числа с плавающей запятой

      0 ≤ Δx < 2-m×2p , где m - число разрядов в мантиссе, исключая знаковый.

На практике для представления чисел с плавающей запятой чаще всего используются машинные слова длиной либо 32 либо 64 бита. Запишем в 32-разрядное слово число х = 233 - 1. В двоичной системе счисления - это число из 33-х единиц. Найдём мантиссу и порядок этого числа в нормализованном виде:

 x = 233 - 1*233 => q = 0.111 111 111 111 111 111 111 111 111 111 1112,               
       233         p = 3310 = 1000012

Для того чтобы, не теряя точности, разместить это число, требуется слово длиною 41 бит (7 бит под порядок и 34 бита под мантиссу). Разместив это число в 32-битном формате с 24-разрядной мантиссой, считая знак, мы потеряем 10 значащих цифр исходного числа х:

0 0|1|0|0|0|0|1 0 1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1
1 1 1 1 1 1 1 1 1 1
0 1|1|0|0|0|0|7 8
1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|131
23 разряда
10 разрядов

Вычислим погрешность числа х в 32-разрядном двоичном формате с плавающей запятой:

 Δx = x - q1×Sp = (233-1) - (1- 2-23)×233 = 210 - 1 = 1023 ,
 где q1 - 24-разрядная мантисса.

В десятичной системе счисления

            233 = 8 589 934 591, 
   (1- 2-23)×233 = 8 589 933 568,

т.е. в форме с длавающей запятой точно представлены только 6 старших разрядов исходного числа. Все числа в диапазоне 8 589 933 568 ≤ x ≤ 8 589 934 591 в 32-разрядном двоичном формате с плавающей запятой будут представлены одним числом 8 589 933 568.

Можно оценить погрешность представления числа N в формате с плавающей запятой без перевода из десятичной системы счисления в двоичную. Для простоты рассмотрим пример, в котором мантисса в формате с плавающей запятой имеет семь двоичных разрядов, а N=1030. В двоичном представлении N имеет 11 разрядов:

 ]log21030[ + 1 = 11, где ]X[ - целая часть числа X.

Так как мантисса имеет семь разрядов, то из числа N при записи в ячейку будут отброшены 11 – 7 = 4 разряда. Далее

Проверим результат прямым переводом N в двоичную систему счисления:

		1030 = 1024 + 6 = 100000001102
		Мантисса m = 0,10000002
		Порядок  p = 10112
 0  1|0|1|1  0  1|0|0|0|0|0|0
0 1 1 0
 +   1      4   +   6            12
остаток

Переведём полученное число с плавающей запятой в десятичную систему счисления:

       Nпл = 0,5×2 = 1024.
       Δ = N - Nпл = 1030 – 1024 = 6.

Погрешности возникают и при арифметических операциях над числами с плавающей запятой. Сложив на ЭВМ 8-значное целое десятичное число N с единицей, используя 32-разрядный двоичный формат с плавающей запятой, получим

            N + 1 = N !!!,

так как восьмая, младшая цифра числа N не попадает в мантиссу.

Чтобы проще представить исчезновение единицы при сложении, рассмотрим вместо записи в двоичной системе счисления пример с десятичными числами, представленными в полулогарифмической форме с 7-разрядной мантиссой:

          N  =  12 345 678 ≅ 0.1234567*108,
                                    7 цифр
        N + 1 = 12 345 679 ≅ 0.1234567*108.

N и N+1 в полулогарифмической форме с семью знаками выглядят одинаково, так как погрешность превышает величину изменения числа. При сложении чисел в форме с плавающей запятой может нарушаться сочетательный (ассоциативный) закон:

            N + 1 + 1 + ... + 1 ≠ N + ( 1 + 1 + ... + 1) ,
                  20 единиц                 20 единиц
            N + 1 + 1 + ... + 1 = N = 0.1234567*108,
                   20 единиц
        a
           N + ( 1 + 1 + ... + 1) = N + 20 = 0.1234569*108 +
                  20 единиц

В первом приближении можно считать, что если

   a  > 106 ,
   b
  то в 32-разрядном двоичном формате с плавающей запятой
  a + b = a.

Примеры сложения чисел в 32-разрядном двоичном формате с плавающей запятой из-за большого количества разрядов теряют свою наглядность, поэтому рассмотрим сложение чисел в 8-битном формате с 4-битной мантиссой. Сложим 8 и 1:

8
0  1 | 0 | 0  0  1 | 0 | 0 
 
+     p=4     +  
1
0  0 | 0 | 1  0  1 | 0 | 0 
 
+     p=1     +  

Для сложения нужно сдвинуть вправо мантиссу меньшего по модулю слагаемого на число разрядов, равное разности порядков складываемых чисел. В нашем примере нужно сдвинуть мантиссу единицы на 4-1=3 разряда:

  8
0  1 | 0 | 0  0  1 | 0 | 0 
 
+ 1
0  1 | 0 | 0  0  0 | 0 | 0 
1

Получим 8 !.

Сложим 8 и 3.

 3 =  3 ×22, p = 2
      4

Нужно сдвинуть мантиссу трёх на 2 разряда.

 3 
 0   0 | 1 | 0   0   1 | 1 | 0 
 
на 2 разряда
   3  
 0   1 | 0 | 0   0   0 | 0 | 1 
1                     
   8  
 0   1 | 0 | 0   0   1 | 0 | 0 
                      
8+3
 0   1 | 0 | 0   0   1 | 0 | 1 
                     

Получилась сумма

  5 ×24 = 10, а не 11.
  8

Прямой, обратный и дополнительный коды двоичных целых чисел

Обратный и дополнительный коды служат для упрощения и удешевления арифметико-логического устройства (АЛУ), позволяя исключить операцию вычитания.

Алгоритмы сложения и вычитания двоичных чисел сильно отличаются друг от друга. Чтобы наглядно убедиться в этом, выполним следующие действия:

1) сложение 7 + 2 = 9,
   в двоич. сис.счисления:
     + 1 1 1
       0 1 0
     1 0 0 1
2) вычитание 
  a) Уменьшаемое больше вычитаемого: 7 - 2 = 5,
     в двоич. сис.счисления:
       1 1 1
       0 1 0
       1 0 1
  б) Уменьшаемое меньше вычитаемого: 2 - 7 = -5.
     Операция состоит из трёх действий:
     1. меняем местами уменьшаемое и вычитаемое и их знаки,
     2. повторяем пункт а)
           1 1 1
           0 1 0
           1 0 1
     3. меняем знак разности и в итоге получаем
          1 0 - 1 1 1 = -1 0 1    

Вычитание, в отличие от сложения, не обладает свойством коммутативности. При сложении образуется единица переноса влево, а при вычитании слева занимается единица.

Обратный код

Для простоты будем рассматривать четырёхбитный формат целого числа:

    
↑                 
знак числа (0 - +; 1 - минус)

Обозначим количество разрядов в формате числа через n. В n входит и знаковый разряд.

Определение.
Обратный код положительного числа - само число.
Обратный код отрицательного числа a вычисляется по формуле

      aобр = 2n - 1 - |a| ,

или получается инвертированием всех разрядов модуля a, т.е. заменой всех единиц в двоичном коде |a| на нули и нулей на единицы.

Рассмотрим применение обратного кода на примере. Вычислим разность 5 - 2. Заменим -2 на обратный код:

      -2обр = (24 - 1 - 2)10 = (10000 - 1 - 10)2 = 
     = (1111 - 10)2 = 11012

Вычислим сумму 5 + (-2обр):

     +0 1 0 1          +0 1 0 1 
      1 1 0 1   =>      1 1 0 1
    1 0 0 1 0           0 0 1 1   = 3
    |       ↑
      циклический перенос единицы

Cумму 5 + (-2обр) можно записать так:

    5 + 24 - 1 - 2 > 24

Это неравенство является необходимым условием циклического переноса. Заменив 24 на единицу, получим

    5 + 1 -1 -2 = 5 - 2 = 3

В общем случае, если a > 0 , b > 0 , и a > b , то сложение в обратном коде a + (-bобр) выглядит так:

  a + 2n -1 - b = a + 1 -1 -b = a - b
      ↑ заменяем на 1 циклического переноса, так как  a + 2n -1 - b > 2n
   

Итак, если a > b > 0 , и a > b , то при замене вычитания a - b в прямом коде сложением в обратном коде возникает единица циклического переноса и результат получается в прямом коде.

К сожалению, общий алгоритм замены вычитания в прямом коде сложением в обратном коде распадается на несколько случаев. Рассмотрим часть из них.

1) Случай a - b при a > 0, b > 0, a > b уже рассмотрен.

2) a - b при a > 0, b > 0, b > a. Пусть a =2 b = 5.

     -5обр = 1010
 
     +0 0 1 0         
      1 0 1 0         
      1 1 0 0    перевод в прямой код => 1 0 1 1  = -3

Результат получился в обратном коде:

     2 + 24 -1 - 5 = 24 -1 - (5 -2) < 24

В общем случае условие получения результата в обратном коде:

     a + 2n -1 - b < 2n, или a - b < 1.

3) Переполнение может произойти, если оба слагаемых имеют одинаковые знаки, а сумма - противоположный. Найдём сумму 5 + 7 :

     +0 1 0 1         
      0 1 1 1         
      1 1 0 0

Сложим -5 и -7 :

     +1 0 1 0         
      1 0 0 0         
    1 0 0 1 0

Получился положительный знак суммы при отрицательных слагаемых.

4) При использовании обратного кода нуль в прямом коде представляется двумя способами: +0 и -0. Отрицательный нуль получается при замене вычитания сложением в обратном коде. Отрицательному нулю, имеющему в прямом коде вид 1000, соответствует обратный код 1111. Вычтем из двух два:

 в прямом коде
     -0 0 1 0         
      0 0 1 0         
      0 0 0 0  или +0
 в обратном коде
     +0 0 1 0         
      1 1 0 1         
      1 1 1 1 и, преобразовав в прямой код, получаем 1 0 0 0 или -0

5) Оба слагаемых отрицательные. Возможны два способа вычисления суммы.
а) Сложить модули чисел и присвоить сумме знак минус.
б) Сложить в обратном коде. В этом случае нужно учесть две особенности:

Пусть а<0 и b<0. Тогда

               1
   aобр + bобр = 2n -1 -|a| + 2n -1 -|b| =
   =2n -1 - (|b| + |a|) = (a + b)обр,
 

Рассмотрим конкретный пример. Пусть a = -2 и b = -3. Подставим эти значения в формулу сложения в обратном коде:

                        1
   24 -1 -2 + 24 -1 -3 = 24 -1 + 24 -1 -(3 + 2) =
      1
   = 24 -1 - 5 = -5обр = 10102.
   Непосредственно складывая в обратном коде, получим
     +1 1 0 1         
      1 1 0 0 
    1 1 0 0 1  =>   1 0 1 0   => 1101 =-5
    |       ↑
      циклический перенос единицы
   
 

Дополнительный код

В обратном коде, если в результате сложения появляется единица слева от знакового разряда, то нужно делать циклический перенос. В дополнительном коде циклический перенос делать не нужно, а единица слева от знакового разряда отбрасывается.

Определение.
Дополнительный код положительного числа равен самому числу.
Дополнительный код отрицательного числа больше обратного на единицу:

        aдоп = aобр + 1 = 2n - |a| .

Найдём a + b при a = 5 и b = -2:

   bобр = 1101
   bдоп = 1101 + 1 = 1110
     +0 1 0 1         
      1 1 1 0 
    1 0 0 1 1  = 3
    ↑
    отбрасывается

Найдём a + b при a = -5 и b = 2:

   aобр = 1010
   aдоп = 1010 + 1 = 1011
     +1 0 1 1         
      0 0 1 0 
      1 1 0 1  => прямой код 1011 = -3

В отличие от обратного кода в дополнительом коде при вычитании a - a получается +0. Положим a = 2 и вычислим

      +0 0 1 0         
       1 1 1 0 
     1 0 0 0 0  => прямой код 0000 = +0

Символьная арифметика

Символьная арифметика служит для операций с числами, состоящими из теоретически неограниченного числа знаков. На практике длина числа в символьной арифметике ограничена ёмкостью памяти ЭВМ и временем вычислений. Будем хранить число в виде строки символов. Каждая цифра числа будет записана в виде кода ASCII (коды 48 - 57).

В качестве примера рассмотрим два числа:

             a = 1234569975,
             b =         26.

В кодировке ASCII эти числа выглядят так:

             a = 49505152535457575553,
             b =                 5054.

Сложим эти числа. При сложении младших разрядов получим код младшего разряда суммы 49 и единицу переноса в следующий разряд. Сложение цифр следующего разряда с учётом переноса даст код 48 и единицу переноса. Пренос распространится на следующие три разряда. Окончательно сумма

             a + b = 49505152535548484849.

Лекция 4. Логические основы построения ЭВМ

Возведение в степень состоит из многократного повторения операции умножения, умножение - многократное сложение, а сложение ...? Сложение можно разложить на ещё более мелкие, элементарные, логические операции. Из каких логических операций состоят арифметические операции и другие преобразования информации? Как устроены логические схемы, с помощью которых выполняются различные преобразования информации? Изучению этих вопросов посвящена лекция 4.

В лекции приводится много логических схем, но не рассматриваются физические принципы их работы. Все схемы упрощены до минимума, достаточного, для того чтобы понять, что с их помощью делается, но не как. Данный курс лекций предназначен для будущих программистов, которым необходимо чётко понимать, как выполняется на ЭВМ написанная ими программа, как она взаимодействует с операционной системой и какие логические устройства ЭВМ при этом работают. Конечно, юному, пытливому уму хочется докопаться до самых тонких процессов, протекающих в ЭВМ, но требующийся для этого объём знаний настолько велик, что мало найдётся в мире голов, способных вместить его. Может быть Ваша голова, юный читатель, именно такая?

Логические операции и логические элементы

Алгеброй называется множество с определённым набором операций над его элементами, причём результат любой операции должен принадлежать этому же множеству.

Понятие алгебра - обобщённое, абстрактное. В школе, чтобы не мучить детишек, его не дают, но незаметно используют. В младших классах начинают изучать множество натуральных чисел и операции сложения и умножения, не выводящие за пределы этого множества. Дополнение набора операций вычитанием требует введения отрицательных чисел, а деления - действительных. Наконец, в старших классах рассматриваются комплексные числа и операции над ними.

В школе изучались алгебры в порядке их усложнения. А какая алгебра самая простая? Такую алгебру предложил английский математик и логик Джордж Буль (1815 - 1864).

Булева алгебра (алгебра логики) — это множество B = {0, 1} с определёнными на нем операциями логического умножения (конъюнкции, И), логического сложения (дизъюнкции, ИЛИ) и отрицания (инверсии, НЕ).

Алгебра логики принесла Джорджу Булю множество насмешек современников и славу у потомков.

Строго говоря, операций над двумя операндами (двухместных операций) не две, а 16, но все остальные операции выражаются через отрицание, сложение и умножение. При разработке цифровых схем используются все 16 операций, а в языках программирования только три (отрицание, сложение и умножение), иногда к ним добавляется исключающее или.

Возможных значений результата операции НЕ всего два, а И и ИЛИ - по четыре. Поэтому эти операции удобно описывать с помощью специальных таблиц, получивших название таблиц истинности (табицы 6, 7, 8).

Таблица 6. Отрицание НЕ
a b = a
0 1
1 0
Таблица 7. Сложение ИЛИ
ab с =a ∨ b
0 00
0 11
1 01
1 11
 
Таблица 8. Умножение И
ab с =a & b
0 00
0 10
1 00
1 11

Сравним таблицы 7 и 8. Колонки со значениями операндов у них одинаковые. Отличается колонка значений операций. Из нулей и единиц можно составить 16 четырёхразрядных кодов (чисел). Каждый из этих кодов можно рассматривать как множество всех возможных значений двухместной логической операции. В табл. 9 перечислены все возможные двухместные булевы операции (функции), а в табл. 10 - их названия.

 
Таблица 9. Двухместные логические операции
ОперандыОперации
ab 0& a→ba a←b ba⊕ba∨ba↓ba↔b b a←b a a→ba|b1
12345678910111213141516
000000000011 11 1 1 11
010000111100 00 1 1 11
100011001100 1 10 0 11
110101010101 0 10 1 0 1
 
Таблица 10. Названия логических операции
№ операцииОбозначениеНазвание
10Константа 0
2&Конъюнкция
3a→bОтрицание импликации
4aПовторение a
5a←bОтрицание импликации
6bПовторение b
7a⊕bИсключающее ИЛИ
8a∨bДизъюнкция (ИЛИ)
9a↓bСтрелка Пирса
10a↔bЭквиваленция
11bОтрицание b
12a←bИмпликация
13aОтрицание a
14a→bИмпликация
15a|bШтрих Шеффера
161Константа 1

Закон де Моргана

Отрицание дизъюнкции двух логических переменных равно конъюнкции их отрицаний

a∨b = a&b

Закон де Моргана позволяет заменить дизъюнкцию конъюнкцией и наоборот. Доказательство даётся в виде табл. 11.

Таблица 11. Доказательство закона де Моргана
ab a ∨ b a ∨ baba & b
0 001 111
0 110 100
1 010 010
1 110 000

ДНФ и КНФ

Пусть x1, x2, . . . ,xn, - булевы переменные. Конъюнкция произвольного набора xi и xi (i = 1, 2, ... , n) называется элементарной.

Примеры элементарных конъюнкций

x1&x2&x5, x1&x2&x3&x4

Дизъюнктивной нормальной формой (ДНФ) называется дизъюнкция элементарных конъюнкций.

Пример ДНФ

x1&x2&x5 ∨ x1&x2&x3&x4

Дизъюнкция произвольного набора xi и xi (i = 1, 2, ... , n) называется элементарной.

Примеры элементарных дизъюнкций

x1∨x2∨x5, x1∨x2x3∨x4

Конъюнктивной нормальной формой (КНФ) называется конъюнкция элементарных дизъюнкций.

Пример КНФ

(x1∨x2∨x5) & (x1&x2&x3&x4)

Логические элементы

В ЭВМ логические операции выполняются схемами, которые называются логическими элементами. На рис. 3 изображены обозначения логических элементов НЕ, И и ИЛИ.
Рис. 3. Логические элементы

Построение сумматора на логических элементах И, ИЛИ, НЕ

Сложим два двоичных числа

          ← ← ← ←
      +1 0 1 1 0 1        
           1 0 1 1 
       1 1 1 0 0 0

Стрелочками вверху помечен перенос единицы в соседний старший разряд. Введём обозначения:

На рис. 4 изображено условное обозначение элемента для сложения i-го разряда двух чисел. Такой элемент называется ПС - полный одноразрядный сумматор.

Рис. 4. Полный одноразрядный сумматор

На вход ПС поступают сигналы xi, yi и ci. На выходе si и сi+1. Функциональная зависимость выходных сигналов ПС от входных представлена в табл. 12.
Таблица 12
Входные переменныеВыходные переменные
xiyicisici+1
00000
00110
01010
01101
10010
10101
11001
11111

Составим булевы функции si = F(xi, yi, ci) и сi+1 = f(xi, yi, ci):

si = xi&yi&cixi&yi&ci ∨ xi&yi&ci ∨ xi&yi&ci;
сi+1 = xi&yi&ci ∨ xiyi&ci ∨ xi&yi&ci ∨ xi&yi&ci =
     = xi&yi ∨ &xi&ci ∨ &yi&ci.

На рис. 5 изображена логическая схема, с помощью которой множество входных сигналов {xi, yi, ci} преобразуется в выходной сигнал si, т. е. реализуется функция si = F(xi, yi, ci). Аналогичная схема для сi+1 = f(xi, yi, ci) изображена на рис. 6. Итак, задача сложения двоичных разрядов двух чисел сводится к преобразованию сигналов {xi, yi, ci} к сигналам si и сi+1 с помощью логических схем И, ИЛИ, НЕ.

Рис. 5. Схема вычисления одноразрядной суммы

Рис. 6. Схема вычисления переноса

Объединив n одноразрядных полных сумматоров, получим изображённый на рис.7 n-разрядный сумматор с последовательным переносом.

Рис. 7. n-разрядный сумматор с последовательным переносом

Комбинационные схемы и цифровые автоматы

ЦВМ состоит из схем, каждая из которых преобразует набор входных сигналов A = {a1, a2, ... ,an} в набор выходных сигналов B = {b1, b2, ... ,bm}. Например, ПС (полный одноразрядный сумматор) переводит набор сигналов A ={xi, yi,ci} в набор сигналов B ={si, ci+1}.

Схема, набор выходных сигналов которой полностью определяется набором входных сигналов, называется комбинационной.

Если набор выходных сигналов зависит и от состояния схемы, то схема называется цифровым автоматом

Цифровые автоматы имеют память, в которой хранится их состояние.

Комбинационные схемы

Выше была рассмотрена комбинационная схема - сумматор. Рассмотрим ещё один пример комбинационной схемы - дешифратор.

Дешифратор - это комбинационная схема, преобразующая входной набор из n сигналов в выходной набор из 2n сигналов. На рис. 8 изображён дешифратор с двумя входными сигналами.

Рис. 8. Дешифратор

Цифровые автоматы

В качестве примеров цифровых автоматов рассмотрим триггеры и два типа регистров.

Триггер - логическая схема с двумя устойчивыми состояниями. Одному из них приписывается состояние 0, а другому 1. Если информация в триггер заносится под воздействием синхронизирующего сигнала, то триггер называется синхронным. В асинхронный триггер информация заносится без синхронизирующего сигнала. Рассмотрим асинхронный RS-триггер и два синхронных: D-триггер и T-риггер.

Асинхронный RS-триггер (рис. 9) строится на логических схемах ИЛИ-НЕ. Отрицание на схеме элемента ИЛИ-НЕ обозначается кружочком справа.

Рис. 9. RS-триггер. а) логическая схема; б) обозначение

RS-триггер имеет два входных сигнала: S (set - установить) и R (reset -сбросить). Если S=R=0, то состояние не меняется. Пара значений S=R=1 запрещена. При S=1 и R=0 триггер устанавливается в 1. Возможные состояния RS-триггера Q(t+1)= f( R(t), S(t), Q(t) ) представлены в табл. 13.
Таблица 13. Состояния RS-триггера
  S    R    Q(t)  
0    1
  0    0 0    1
  0    1 0    0
  1    0 1    1
  1    1 -    -

D-триггер запоминает входной сигнал. В табл. 14 приведены состояния D-триггера, на рис. 10 показано обозначение.

Таблица 14. Состояния D-триггера
  D    Состояние  
0    1
  00    0
  11    1

 

 

Рис. 10. Обозначение D-триггера

T-триггер. Сигнал T=1 вызывает переход в противоположное состояние, Сигнал T=0 не изменяет состояния. В табл. 15 приведены состояния T-триггера, на рис. 11 показано его обозначение.

Таблица 15. Состояния T-триггера
  T    Состояние  
0    1
  00    1
  11    0

 

 

Рис. 11. Обозначение T-триггера

Регистр состоит из нескольких специальным образом соединённых триггеров. Рассмотрим простейший сдвиговый регистр, построенный на D-триггерах (рис. 12).
Рис. 12. Сдвиговый регистр на D-триггерах

Сдвиг вправо происходит в такой последовательности: сначала самый правый четвёртый триггер принимает состояние третьего триггера Q4= Q3, далее Q3= Q2, Q2= Q1 и Q1= X.

Счётчик на T-триггерах (рис. 13) построен таким образом, что каждый следующий (слева направо) триггер срабатывает в два раза реже предыдущего. Если i-й триггер переходит в состояние Qi = 1, то i+1-й триггер не меняет своё состояние, так как на него поступает запирающий сигнал C=Qi = 0. Если Qi = 0, i+1-й триггер меняет своё состояние.
Рис. 13. Счётчик на T-триггерах

В табл. 16 показаны последовательные изменения состояний трёхразрядного счётчика.

Таблица 16. Состояния счётчика
T3T2T1№ сигнала
0000
0011
0102
0113
1004
1015
1106
1117
0008

Лекция 5. Память ЭВМ

Необходимый и доступный объём памяти

Современное программное обеспечение требует огромных объёмов памяти. На моей ПЭВМ операционная система Windows 7 (домашняя 32-разрядная версия) занимала на момент написания этой лекции 29 Гбайт, антивирус - 1 Гбайт. Очень много места требуют для хранения фотографии. Наиболее расточительны фильмы. Один средний фильм занимает несколько Гбайт памяти. Тем не менее, современные магнитные диски ёмкостью до восьми Тбайт вполне удовлетворяют большинство пользователей ПЭВМ. Правительственные организации, корпорации и научно-исследовательские центры могут позволить себе иметь пакеты магнитных дисков с практически неограниченной суммарной ёмкостью. Для этих организаций актуальна другая проблема; как обработать за приемлемое время накопленную информацию.

Виды памяти

В предыдущей лекции мы рассмотрели регистры - вид памяти, в которой можно не только хранить, но и обрабатывать информацию. Именно эта особенность выделяет регистры в особый вид памяти. Регистры - самый быстрый, но и самый дорогой вид памяти. Из-за дороговизны их объём в ЭВМ ничтожен по сравнению с общим объёмом памяти. В некоторых процессорах имеется по 128 регистров для хранения чисел с фиксированной и чисел с плавающей запятой. Обычно объём регистровой памяти ещё меньше.

По способу поиска данных память делят на две группы: память с пронумерованными ячейкими, т. е с адресами, и ассоциативную память. В ассоциативной памяти информацию ищут не по адресу, а по признаку. Самый простой пример ассоциативной памяти - словарь. Аппаратным путём из ассоциатиной памяти выбирается перевод заданного слова. Другой пример, в связной ЭВМ сообщение ищется по его заголовку. Ассоциативной является кеш-память первого уровня. Ассоциативная память также дорогая, но её объём может доходить до нескольких мбайт.

Наиболее просто устроена память, состоящая из ячеек, каждая из которых имеет свой адрес. В современных ЭВМ длина адресуемой ячейки - 1 байт. Такое устройство имеет оперативная память (ОЗУ - оперативное запоминающее устройство).

Проблема адресации

Во второй лекции был приведён пример двухадресной команды для простейшей ЭВМ, имевшей ОЗУ обёмом 14 ячеек по 10 бит в каждой. Адрес имел длину 4 бита. В реальной ЭВМ объём памяти - несколько Гбайт и при длине машинной команды в 32 бита даже один адрес в неё не поместится. Зависимость возможного объёма адресуемой памяти от длины адреса представлена в табл. 17.
Таблица 17. Зависимость объёма адресуемой памяти от длины адреса
Длина адреса
(байт)
163240
Объём адресуемой
памяти
216 байт
64 Kбайт
4 Гбайт
4*109 байт
1 Tбайт
4*1012 байт

Проблема длинного адреса решается путём использования косвенной адресации, которая будет рассмотрена в лекции 7.

Организация связи процессора с памятью

Пересылка данных между процессором и памятью осуществляется с помощью двух регистров процессора (рис. 14) - регистра адреса и регистра данных. Операция пересылки начинается с загрузки адреса ячейки памяти на регистр адреса.

Рис. 14. Связь процессора с памятью
R/W - сигнал чтения/записи
    MFC - сигнал завершения операции

Если нужно выполнить операцию чтения, процессор устанавливает управляющую линию R/W в состояние 1. В ответ память помещает данные на шину данных и выдаёт сигнал MFC (Memory Function Completed - операция памяти завершена). Приняв этот сигнал, процессор загружает данные с шины данных в регистр данных.

Чтобы выполненить операцию записи в память, процессор загружает передаваемые данные в регистр данных, а адрес - в регистр адреса и устанавливает управляющую линию R/W в сотояние 0.

Длина k регистра адреса и такое же количество линий в шине адреса определяют объём адресуемой памяти V = 2k ячеек памяти. Общепринятая длина ячейки памяти - 1 байт. Длина машинного слова совпадает с длиной яейки памяти.

Количество разрядов n регистра данных и в шине адреса равны длине ячеек памяти.

В реальных ЭВМ длина машинного слова - величина переменная, но обмен данными с памятью производится побайтно.

Быстродействие памяти

Для измерения быстродействия памяти используются две характеристики:

Время цикла несколько больше времени доступа к памяти.

Классификация памяти

В начале лекции были выделены три вида памяти: регистровая, ассоциативная и память, состоящая из нумерованных ячеек фиксированной длины. Физически все эти виды памяти - полупроводниковые. По времени доступа память делится на два вида.

Физические типы памяти

По физическим принципам работы запоминающие устройства делятся на полупроводниковые и электромеханические (рис.15). До недавнего времени вся внешняя память была электромеханической. Сейчас начала применяться внешняя полупроводниковая память, получившая название твёрдотельные накопители

Рис. 15. Классификация памяти ЭВМ

Полупроводниковая память

RAM (Random Access Memory) - память с произвольным доступом - предназначена как для чтения так и для записи данных. Виды RAM:

ROM (Read Only Memory) - буквально - память только для записи, иначе называется постояной памятью или ПЗУ (постоянное запоминающее устройство). Виды ROM:

EEPROM отличается от RAM ограниченным количеством циклов записи, поэтому память этого типа не может использоваться в качестве оперативной. При выполнении многих программ может происходить запись в одну ячейку несколько миллионов раз.

Разновидностью EEPROM является флеш-память, из которой считывать ячейки можно по одной, а записывать блоками. Флеш-память используется во флешках, картах памяти и твёрдотельных накопителях.

Флешка - это жаргонная производная (сленг) от строгого технического термина USB-флеш-накопитель. Ёмкость флешек приближается к ёмкости винчестеров. Компактность, высокое быстродействие, удобство подключения через USB-порт сделали флешки самым популярным внешним накопителем.

Карта памяти - крошечная прямоугольная пластинка со срезанным углом и плоскими контактами, содержит в себе флеш память в виде интегральной схемы, применяется в мобильных устройствах.

Твёрдотельный накопитель, иначе называемй твёрдотельным диском, служит для замены жёсткого диска.

Лекция 6. Память ЭВМ (продолжение)

Особенности терминологии. В настоящее время в информатике сосуществуют, причудливо переплетаясь, две терминологии: бытовая и профессиональная. С профессиональной точки зрения все устройства ЭВМ, кроме процессора и оперативной памяти - внешние. В магазине продаются встроенные и внешние магнитные диски и твёрдотельная память. Встоенными называют устройсва, которые находятся в одном корпусе с процессором и оперативной памятью и извлечь их можно, только вскрыв корпус. Внешние устройства подключаются через внешние разъёмы. Возникает абсурдна ситуация: диск может быть встроенным внешним и внешним внешним. Удивительно, но такая противоречивая терминология не создаёт заметных трудностей.

Электромеханическая память

Магнитные диски

Магнитные диски делятся на гибкие и жёсткие. Гибкие магнитные диски практически вытеснены из употребления флешками, поэтому рассматривать их не будем. Жёсткие магнитные диски (рис. 16) иначе называют винчестерами. Носителем информации на винчестере служит тонкий алюминевый или стекляный диск (иначе называемый пластиной, тарелочкой, или, уж совсем гастрономически, блином) с магнитным покрытием. Поверхность диска идеально ровная. Несколько дисков закрепляются на одной оси, вокруг которой они вращаются с огромной скоростью (от 4200 до 15000 об./мин.). Такую скорость вращения имеют некоторые гироскопы. Магнитная головка парит в воздушном потоке на расстоянии около десяти нанометров над поверхностью диска. Толщина человеческого волоса (50 микрометров) в 5000 раз больше. Перед остановкой вращения диска блок головок перемещается за его пределы (паркуется).

Юные пользователи ноутбуков, старайтесь не работать с ноутбуком, держа его на руках, стоя в коридоре вуза. Даже небольшой толчок в неудачном направлении, может привести к тому, что головка чиркнет по магнитной поверхности. Если это произойдёт, то не удивляйтесь, что какая-то программа перестанет работать. Когда винчестеры только появились и не были столь совершенны, как сейчас, знаменитый программист Питер Нортон, чтобы обезопасить свой винчестер от толчков, поставил свою персональную ЭВМ на жёсткий металличекий стол (говорят, это был верстак).

Рис. 16. Жёсткий магнитный диск (винчестер)

Информация записывается на концентрические дорожки, разделённые на секторы (рис. 17). Совокупность дорожек одинакового диаметра на всех поверхностях всех пластин называется цилиндром. Для начала операции чтения или записи блок магнитных головок перемещается на заданную дорожку и ждет, пока под головкой не окажется нужный сектор. Время произвольного доступа — среднее время, за которое винчестер выполняет операцию подвода головки чтения/записи к нужному участку магнитного диска, зависит от скорости вращения. Диапазон этого параметра — от 2,5 до 16 мс, часто в спецификациях указывают среднее время доступа порядка 10 мс. За это время процессор успеет выполнить несколько миллионов операций. Скорость чтения-записи после подвода головок соизмерима со скоростью работы ОЗУ. Поэтому обмен информацией между магнитным диском и ОЗУ всегда идёт большими блоками, а не по одному слову. Подробнее организация обмена данными между устройствами памяти разных типов рассмотрена в лекциях 8 и 12.

Рис. 17. Размещение информации на магнитном диске

Оптические диски

Оптические диски высокого качества могут хранить информацию, по заверению изготовителей, 100 лет. Это больше, чем на магнитной ленте (30 - 50 лет) и значительно больше, чем на магнитных дисках (3-10 лет) и флешках (3 - 7) лет. На практике проверен срок длительного хранения информации на магнитных лентах. У автора этих строк винчестер исправно работает 19 лет, а многие компакт-диски (оптические) переставали читаться через 5 - 7 лет (плохое качество?).

Информация на оптических дисках записывается на одну спиралевидную дорожку, которая радиусом условно делится на части, называемые по аналогии с винчестером дорожками. Для считывания информации служит лазерный луч с длиной волны λ = 780 нм. Ширина впадины - 0,5 мк, длина впадины от 0,8 до 3 мк. Расстояние между дорожками - 1,6 мк. Длина спиральной дорожки около пяти километров. Ёмкость CD-ROM 650 - 800 Mбайт. Рассмотрим устройство оптических дисков различных типов.

CD-ROM - компакт-диск, отливаемые на заводе. Его дорожка состоит из выступов и впадин (рис. 18), выдавливаемых в прозрачном слое поликарбонатного пластика, поверх которого наносится тонкий слой алюминия, а на него - защитное акриловое покрытие с этикеткой. Дорожка освещается лучом лазера. Глубина впадины равна четверти длины волны света. Свет, попадающий на выступ или впадину полностью отражается и попадает на детектор, а свет отражающийся от границы выступа и впадины взаимно поглощается со светом от источника. Здесь используется эффект "свет + свет = тьма". Отражающие участки кодируются нулём, а поглощающие - единицей.

Рис. 18. Срез CD-ROM

Для литья CD-ROM предварительно изготавливается специальная матрица (форма) с выступами на месте впадин на будущих дисках и с впадинами на месте выступов. В эту матрицу заливается поликарбонат, в точности повторяющий рельеф матрицы. Такая технология возможна только при массовом производстве.

CD-R - оптический диск, спералевидная дорожка на который наносится на заводе, а информация - на компьютере пользователя. CD-R покрыт специальным органическим веществом. Впадины на CD-R заменяются тёмными участками, создаваемыми путём нагрева этого вещества мощным лучом лазера. Записать информацию на CD-R можно только один раз.

CD-RW - оптический диск многократной записи - отличается от CD-R тем, что вместо органического слоя здесь используется специальный сплав серебра, индия, сурьмы и теллура. Если этот сплав нагреть до 500 oС, то после охлаждения он перейдёт в аморфное состояние и приобретёт способность поглощать свет. Но при повторном нагреве до 200 oС с последующим охлаждением он перейдёт в кристаллическое состояние и станет отражать свет. CD-RW может выдержать до 1000 перезаписей.

DVD

Для записи фильма ёмкости одного CD-ROM не хватает, поэтому, уменьшив все основные характеристики, получили диск DVD (Digital Video Disc — цифровой видеодиск), ёмкостью 4,7 Гбайт.

Технические характеристики DVD:

Многоуровневая память

На рис. 19 изображена пятиуровневая структура памяти персональной ЭВМ. Зачем так сложно? Можно выделить три причины.

  1. Стоимость памяти резко растёт с ростом её быстродействия. Чтобы цена ЭВМ была в доступных для покупателя пределах, приходится для хранения больших объёмов инфрмации (сотни Гбайт) использовать самую дешёвую память. Сейчас - это магнитные диски и быстро дешевеющая флеш-память.
  2. Самая быстрая память, построенная на элементах SRAM и DRAM, теряет информацию при выключении питания и в ней можно хранить программы и данные, необходимые только в текущем сеансе работы компьютера от момента его включения до момента выключения.
  3. Обычно подряд выполняется целый блок последовательно расположенных в памяти команд. Данные также часто обрабатываюся блоками, например, массивы. Устройства памяти могут передавать друг другу блоки данных без вмешательства процессора, работая параллельно с ним.
Рис. 19. Зависимость между стоимостью, быстродействием и объёмом памяти

Программа перед началом выполнения полностью или, если она большая, частично загружается из внешней памяти в оперативную. Часть загруженной в оперативную память программы передаётся во вторичный кеш, а из вторичного кеша ещё меньшая часть программы передаётся в первичный кеш. И только из первичного кеша загружается команда на регистр команд процессора для выполнения. Данные также распределяются блоками между устройствами памяти разных уровней.

После выполнения очередной команды процессор ищет следующую команду в первичном кеше. Если её там нет, то поиск переходит во вторичный кеш, оперативную память и, если программа была загружена в оперативную память не полностью, то и во внешнюю память. Поиск прекращается на том уровне, где была обнаружена искомая команда. Далее команда вместе с блоком, в котором она находится передаётся на следующие уровни, пока не попадёт в процессор.

Обмен между внешней и оперативной памятью управляется программным путём, а обмен с кешами - аппаратно. Первичный кеш ассоциативный и делится на две части. В одной хранится программа, в другой - данные. Здесь произошло отступление от принципа фон Неймана.

Лекция 7. Процессор

Процессор - это устройство, выполняющее последовательность команд (программу) и координирующее действия других устройств.

В ЭВМ может быть несколько процессоров. Другие устройства ЭВМ, например, ОЗУ, также могут иметь свои процессоры. Процессор, управляющий всей ЭВМ, называется центральным. Процессоры, размещённые на одной интегральной схеме, называются ядрами.

Структура процессора

Структуры процессоров отличаются огромным разнообразием от простейшей четырёхбитной до суперскалярной с несколькими конвейерами, одновременно выполняющими десятки команд. На рис. 20 изображён взаимодействующий с памятью процессор, имеющий простую "классическую" структуру.

Рис. 20. Процессор.
РОН - регистры общего назначения.
        АЛУ - арифметико-логическое устройство

РОН - регистры общего назначения - это собственная память процессора, самая быстрая память в ЭВМ. Они доступны программисту. В РОН хранятся операнды, которые могут потребоваться при выполнении ближайших команд программы. В программе один и тот же операнд часто используется соседними или близко расположенными командами. Необходимость РОН вызвана тем, что процессор работает гораздо быстрее, чем основная память.

АЛУ - арифметико-логическое устройство - служит для выполнения логических и арифметических опрераций.

Счётчик команд - регистр, играющий центральную роль в организации последовательного выполнения команд. ЭВМ - очень сложный автомат, темп работы которого задаётся генератором тактовых импульсов.

Приведём грубую аналогию между двумя автоматами: ЭВМ и автоматом Калашникова (простите меня оружейники за дилетантизм). Автомат Калашникова может стрелять очередями и одиночными выстрелами. При стрельбе очередями из магазина подаётся патрон, производится выстрел, отбрасывается гильза, Эти три действия повторяются многократно, но если установлен режим одиночного выстрела, производится только один выстрел. Таким образом, автомат Калашникова имеет память, как цифровой автомат в ЭВМ. Разница в том, что последовательность действий в автомате Калашникова задаётся кинематической схемой, а в ЭВМ - электронными схемами. Целью автомата Калашникова является физическое действие - выстрел, а цель ЭВМ - преобразование информации.

Последовательность выполнения команды

В разных процессорах за один такт выполняется разное количество действий. Примем для простоты, что за один такт выполняется одна команда. В начале такта на счётчике команд находится адрес команды, которую нужно выполнить. Последовательность действий процессора следующая.

  1. Содержимое со счётчика команд передаётся на регистр адреса (СчКом → РгАдр).
  2. В регистр данных из ячейки ОЗУ с адресом, находящимся на РгАдр, передаются данные на регистр данных (ОЗУ[РгАдр] → РгДан).
  3. Содежимое счётчика увеличивается на единицу (СчКом = СчКом +1).
  4. Содежимое регистра данных (команда) передаётся на регистр команд (РгДан → РгКом).
  5. Выделяется код операции из команды , находящейся на регистре команд.
  6. Выполняется выбранная операция

Действия, перечисленные в пунктах 1,2,4,5, служат для подготовки очередной операции к выполнению. Действие 3 - подготовка к следующему такту. Все первые пять действий для всех команд одинаковые. Шестое действие в зависимости от кода операции выполняется по-разному. Процесс выполнения операции состоит из комбинации следующих действий.

  1. Пересылка Ргi → Ргj или Ргi ↔ АЛУ.
  2. Выполнение операции на АЛУ.
  3. Передача из ячейки ОЗУ в регистр процессора.
  4. Передача из регистр процессора в ячейку ОЗУ.

Особо следует отметить команды условного и безусловного перехода, которые заносят в счётчик команд новый адрес, меняя последовательность выполнения команд.

Последовательность выполнения команд и микрокоманд одной команды можно наглядно проследить на Модели ЭВМ

Аппараратный и микропрограммный подходы к организации управления выполнением команд

При аппаратном подходе для генерации последовательности управляющих сигналов, требующихся для выполнения каждой команды, создаются специальные схемы. Если нужно изменить систему команд, то придётся проектировать новый процессор.

Микропрограммный подход состоит в том, что процесс выполнения команды разбивается на элементарные действия - микрооперации. Для каждой команды существует своя последовательность микроопераций, называемая микропрограммой.

Микропрограмма хранится в памяти микропрограмм и может быть легко изменена. Этим приёмом пользуются для эмуляции (моделирования) системы команд другой ЭВМ.

Стоимость процессора с микропрограммным управлением ниже, чем с аппаратным.

Структура команд и адресация

Для большинства логических и арифметических операций удобно было бы указать в команде три адреса: двух операндов и результата. Но, как показано в табл. 17, длина адреса ячейки ОЗУ слишком большая, чтобы в командное слово поместились три адреса. На практике используются одноадресные и двухадресные команды с относительной адресацией.

Рассмотрим четыре вида адресации.

  1. Прямая - указывается полный (прямой, абсолютный) адрес ячейки ОЗУ.
  2. Относительная - адрес состоит из двух частей: базового адреса и смещения относительно базового адреса. Полный адрес вычисляется как сумма базового адреса и смещения.
  3. Косвенная - указывается адрес ячейки, в которой хранится искомый адрес.
  4. Непосредственная - в команде на месте адреса хранится операнд.

Относительная адресация позволяет загрузить программу и данные в любые область памяти, без перенастройки адресов в её командах. При абсолютной адресации данные и программа должны загружаться в ячейки памяти с теми адресами, которые указаны в командах программы. При относительной адресации в ОЗУ может находиться много программ, готовых к выполнению, в частности, модули операционной системы.

Система прерываний

Как сообщить пользователю, что на принтере кончилась бумага, или запустить по сигналу таймера программу резервного копирования? Для этих целей служит регистр прерываний, в котором каждый разряд соответствует своей причине прерывания. Когда на определённый разряд поступает сигнал прерывания, то запускается соответствующая программа обработки. Выполнявшаяся в этот момент программа прерывается. Её состояние (команда, на выполнении которой произошло прерывания, РОНы и т. д.) запоминается и после реакции на прерывание выполнение прерванной программы возобновляется.

На некоторые сигналы прерывания нужно отреагировать немедленно, например, на сбой оборудования, обслуживание других можно отложить на допустимый промежуток времени. Прерывания могут образовать очередь. Для выбора из очереди кандидата на обслуживание каждому прерыванию присваивается приоритет. Во многих управляющих комплексах существует очень сложная система приоритетов. В простейшем случае используются три вида приоритетов:

  1. обслуживание без приоритетов, в свою очередь имеющее три разновидности:
  2. Обслуживание с относительными приоритетами - обслуживаемая заявка (выполняющаяся программа) не прерывается, выполняется до конца, после чего начинается выполнение заявки с самым высоким приоритетом;
  3. Обслуживание с абсолютными приоритетами - обслуживаемая заявка прерывается заявкой с самым высоким приоритетом.

Конвейерная обработка

Самый простой способ увеличить быстродействие процессора - увеличить тактовую частоту. Но чем больше тактовая частота, тем больше разогревается интегральная схема процессора. Современные БИС перегреваются при частоте более пяти ГГц. Поэтому рабочую частоту процессра выбирают в полтора-два раза меньше. Больше нельзя. Поэтому основной способ повышения производительности - распараллеливание выполнения программы. Процессор выполняет одновременно несколько последовательных команд. Так как выполнение любой операции состоит из нескольких микроопераций, то можно организовать конвейер, на котором несколько операций находятся на разных стадиях выполнения.

Простейшая форма совмещения выполнения команд во времени была реализована в машине Z3 Конрада Цузе в 1941 году. Ламповая малая ЭЦВМ «Урал» (1957 год, СССР) имела двухступенчатый конвейер операций. Рассмотрим работу подобного конвейера, изображённого на рис. 21.

Рис. 21. Двухступенчатый конвейер

На рис. 21а изображена диаграмма работы двухступенчатого конвейера. На первом блоке (ступени) команда читается из памяти, на втором исполняется. Буфер служит для согласования работы ступеней. В верхней части рисунка для сравнения представлена диаграмма последовательного выполнения команд. Одна i-я команда как при последовательной, так и при параллельной обработке выполняется за два такта, но при параллельной обработке на каждом такте завершается одна команда. В результате 7 команд при последовательной обработке выполнились за 14 тактов, а при параллельной - за 8.
Рис. 21а. Диаграмма работы двухступенчатого конвейера
Чi - чтение i-й команды, Иi - исполнение i-й команды, i=1,2,...,7.

В реальных процессорах количество ступеней конвейера может быть очень большим. В одной из моделей процессора фирмы Intel конвейер имел 31 ступень, но в следующей модели число ступеней снизилось до 14. Идёт поиск рациональной архитектуры процессора.

Процесс выполнения команды можно разбить на разное количество этапов (микроопераций). Важно, чтобы длительность этапов была приблизительно одинаковой, иначе отдельные блоки конвейера будут простаивать. При параллельно выполнении между командами могут возникнуть конфликты, если

  1. две команды обращаются к одному аппаратному средству;
  2. в следующей операции операции используются результаты предыдущей;
  3. выполняется команда условного или безусловного перехода.

Для эффективного использования конвейеров разрабатываются специальные трансляторы, распараллеливающие программу. Для ускорения работы конвейера служит кеш-память.

Суперскалярная обработка команд

При конвейерной обработке максимальная производительность - одна команда за такт. Для повышения производительности можно создать несколько одинаковых или разных параллельно работающих конвейеров. Такая обработка называется суперскалярной. На рис. 22 приведён пример суперскалярной обработке на двух арифметических устройствах (АУ). Одно АУ - с фиксированной запятой, другое - с плавающей.

Рис. 22. Суперскалярная обработка

RISC и CISC процессоры

RISC (reduced instruction set computer — «компьютер с сокращённым набором команд») — архитектура процессора, в котором быстродействие увеличивается за счёт упрощения команд, чтобы их декодирование было более простым, а время выполнения — меньшим.

CISC (Complex instruction set computer — «компьютер с полным набором команд») — тип процессорной архитектуры, которая характеризуется следующим набором свойств:

Количество команд у RISC-процессоров бывает даже больше, чем у CISC. Поэтому слово "сокращённый" вводит в заблуждение и лучше было бы переводить reduced instruction set computer как компьютер с упрощённым набором команд, или ещё точнее компьютер с набором команд упрощённой структуры.

RISC- архитектура оказалась более приспособленной для параллельной обработки, чем CISC, и применяется в современных процессорах, в частности, в некоторых моделях процессоров фирмы Intel.

Лекция 8. Шины

Шина в ЭВМ - физический кабель или система проводников на печатной платы.

Назначение шины - передача информации между устройствами ЭВМ. Шина состоит из линий трёх типов:

Сложная шина может состоять из более простых шин. На рис. 14 шина, связывающая процессор и память разделена на шину данных, шину адреса и управляющие линии. Данные по шине передаются в определённой последовательности, по определённым правилам.

Набор правил, полностью регламентирующий передачу данных по шине, называется протоколом.

Шина входит в состав интерфейса - общего понятия, служащего для описания взаимодействия устройств вычислительной системы.

Интерфейс - совокупность аппаратных и программных средств и правил обеспечивающих взаимодействие устройств вычислительной системы.

В ЭВМ часто применяется общая шина, принцип работы которой заключается в следующем:

Шины могут быть синхронными, передающими данных только по тактовым импульсам, и асинхронными, осуществляющими передачу данных в произвольные моменты времени. Синхронные шины имеют большую скорость передачи, чем сравнимые с ними асинхронные, но требуют тщательной разработки.

На рис. 23 изображена архитектура типичной ПЭВМ. К шине процессора подключаются устройства, которым требуется очень высокая скорость взаимодействия с процессором.

Рис. 23. Архитектура типичной ПЭВМ

Через неё с процессором связана основная память (ОЗУ). Так как к шине процессора непосредственно не может быть подсоединено большое количество устройств, то с ней через мост связана шина расширения. Мост вызывает небольшую задержку во взаимодействии процессора с подключёнными к шине расширения устройствами.

В примере на рис. 23 в качестве шины расширения использована шина PCI (Peripheral component interconnect, дословно — взаимосвязь периферийных компонентов). Она поддерживает типичные для шины процессора функции в стандартизированном формате независимо от типа процессора. В ней используется технология plug-and-play (включил и работай, дословно, играй). Устройство, подключаемое к компьютеру через шину PCI, должно иметь постоянную память, в которой содержится вся необходимая информация для автоматического подключения этого устройства.

SCSI-шина, в отличие от жестких шин расширения, реализуется в виде отдельного кабельного шлейфа, который допускает соединение до 8 устройств (спецификация SCSI-1) внутреннего и внешнего исполнения. Применяется SCSI-шина преимущественно в серверах.

ISA (Industry Standard Architecture) — 8- или 16-разрядная шина ввода-вывода IBM PC-совместимых компьютеров. Служит для подключения плат расширения стандарта ISA.

USB (Universal Serial Bus — «универсальная последовательная шина») — последовательный интерфейс для подключения периферийных (находящихся вне материнской платы) устройств. USB-шина имеет древовидную структуру (рис. 24)

Рис. 24. Структура шины USB

В каждом узле дерева находится специальное устройство — концентратор (хаб). Хаб занимается электрическим согласованием кабелей, маршрутизацией пакетов, обнаружением подключения/отключения устройств и другими функциями. Хаб имеет несколько входов (портов) для подключения устройств и других хабов.

Портом называется вход-выход устройства. Порты стандартизированы и согласуются со стандартами шин. Порт состоит из разъёма, к которому подсоединяется устройство, и схем согласования шины, ведущей от устройства, с шиной компьютера.

Кабель USB 2.0 содержит в себе четыре линии — пару для приёма/передачи данных, плюс и ноль питания, разъём имеет 4 контакта. Для передачи высокоскоростных SuperSpeed сигналов в USB 3.0 добавлено ещё четыре линии связи (две витые пары) и один контакт сигнальной земли (GND_DRAIN). Новые контакты в разъёмах USB 3.0 расположены отдельно от старых в другом контактном ряду.

USB-2 имеет скорость передачи 480 Мбит/сек., а USB-3 - 5 Гбит/сек.

Разъёмы USB устроены так, что сначала соедняются линии заземления, а затем - остальные линии шины. Это позволяет подключать к компьютеру устройства, не выключая питания. Удобные, компактные разъёмы, высокая скорость передачи данных, возможность быстро подключать и отключать большое количество устройства сделали USB самой популярной внешней шиной.

Шина PCI Express

PCI Express — компьютерная шина, использующая программную модель шины PCI и высокопроизводительный физический протокол, основанный на последовательной передаче данных. Коммутатор и устройства имеют соединение (рис. 25) "точка-точка", т. е. соединяются непосредственно друг с другом в отличие от соединения через общую шину, когда множество устройств подсоединяются к общему кабелю. Поэтому физически PCI Express шиной не является.

Строго говоря, соединение с коммутатором - двухточечное. Оно состоит из двух однонаправленных каналов (линий), по одному в каждом из направлений. Канал состоит из двух проводов (сигнального и заземляющего), что обеспечивает высокую помехозащищённость. При таком соединении быстрое устройство не зависит от медленного, что было при соединении с общей шиной.

Соединение этого типа произошло от соединения "звезда", применяемого в компьютерных сетях. Оно предполагает, в отличие от общей шины, использование дополнительного оборудования (коммутатор), но значительно увеличивает надёжность и упрощает взаимодействие устройств.

Рис. 25. Шина PCI Express

Данные через PCI Express передаются не по одному слову, а пакетами. Пакет содержит заголовок, в котором передаётся управляющая информация. Отпадает необходимость в управляющих сигналах и управляющей линии, но усложняется протокол передачи данных.

Прямой доступ к памяти

Как отмечалось в лекции 6, обмен данными между оперативной памятью и внешними устройствами происходит не по одному слову, а сразу целыми блоками последовательно расположенных в памяти слов. В первых ЭВМ процессор после окончания передачи очередного слова сообщал контроллеру ОЗУ адрес следующего слова. В современных ЭВМ процессор перед началом передачи блока слов сразу сообщает контроллеру внешнего устройства размер передаваемого блока слов и адрес первого слова в пакете. После этого процессор в передаче блока участия не принимает, а управляет передачей блока контроллер. Таким образом, внешнее устройство взаимодействует с памятью напрямую, минуя процессор. После окончания передачи блока процессор получает сигнал через прерывание. Такой способ передачи получил название прямой доступ к памяти (ПДП или DMA - Direct Memory Access), а соответствующий контроллер - контроллер ПДП.

Конструкторы стремятся повысить производительность ЭВМ за счёт одновременной работы как можно большего количества устройств. В одном процессоре одновременно обрабатывают информацию несколько конвейеров. В многопроцессорной ЭВМ одновременно работают несколько процессоров. ПДП - это способ одновременной работы нескольких внешних устройств с памятью. Чтобы одновременно загрузить множество устройств ЭВМ, понадобилось создать новый вид программ - операционную систему (см. лекцию 13), с помощью которой организуется мультипрограммный режим работы ЭВМ.

Лекция 9. Внешние устройства

В лекции 6 были рассмотрены относящиеся к устройствам ввода-вывода магнитные диски, ленты, оптические диски и кеш-память.

Устройства ввода

Клавиатура

Для программиста клавиатура является основным средством ввода информации в ЭВМ. Размер клавиатуры для настольных ПЭВМ оптимальный для человеческих рук. Набор и расположение клавиш соответствует принятому для PC IBM/IT. К сожалению, в ноутбуках клавиатуры отличаются большим разнообразием, в основном, в расположении навигационных клавиш.

Во многих редакторах текстов (Notepad++, UltraEdit), предназначенных для разработки программ, используются следующие сочетания клавиш, значительно ускоряющие редактирование текстов программ:

Все перечисленные клавиши находятся в левой нижней части клавиатуры (рис. 26).

Рис. 26. Часто используемые сочетания клавиш

Для быстрого перемещения по редактируемому тексту полезны следующие навигационные клавиши:

Клавиатуры по своей конструкции делятся на четыре вида:

В механических клавиатурах кнопка после нажатия возвращается пружиной. Достоинсивами таких устройств являются долговечность и надежность, а также отсутствие эффекта «усталости» конструкции. Механические клавиши выдерживают гораздо большее количество нажатий, чем мембранные и полумеханические. Недостаток моделей данного типа – достаточно шумная работа. Кроме того, эти устройства довольно дорого стоят и их механизм не защищен от внешних воздействий. Правда, есть герметизированные модели, но они стоят еще дороже.

В мембранных клавиатурах при нажатии клавиши смыкаются две мембраны (обычно они выглядят как диски на пластиковой пленке, поэтому и употребляется наименование «пленочная клавиатура»). За возврат клавиши отвечает эластичный купол (с углублением в центре). Для разделения мембран служит промежуточная пленка с отверстиями. Благодаря тому что контакты находятся на внутренних сторонах пленок, эта конструкция хорошо защищена от пыли и влаги. В максимально герметизированной реализации мембранная клавиатура содержит внутри единый резиновый «коврик» с расположенными под клавишами выступающими куполами. К плюсам мембранных клавиатур можно отнести тихую работу, «мягкость» (легкость нажатия на клавиши), упомянутую выше защищенность от внешних воздействий и низкую цену. Единственным их недостатком является меньшая по сравнению с другими типами конструкций долговечность. Со временем упругие элементы теряют свою эластичность и требуется (иногда очень) сильное нажатие для срабатывания клавиши.

Описанная мембранная конструкция не единственная, существует множество других, отличающихся количеством, формой, материалом упругих элементов.

В полумеханических клавиатурах используются более долговечные металлические контакты (в дорогих моделях они могут быть даже позолоченными), распаянные на печатной плате. В остальном они не отличаются от мембранных: в исходное состояние клавиши в них также возвращаются с помощью эластичного пластикового купола. Только стоят такие устройства дороже.

Сенсорная клавиатура имеет тот же принцип действия, что и сенсорные панели, описанные ниже в этой лекции. Её можно представить как cенсорный экран или сенсорную панель, с нарисованными клавишами. Сенсорные клавиатуры дорогие, непривычны, широкого распространения не получили.

Компьютерные мыши

Компьютерная мышь служит для управления движением курсора по экрану монитора. Человек передвигает мышку по плоской поверхности, а курсор повторяет эти движения в соответствующем масштабе на экране монитора. Мышки бывают двух типов: механические с шаровым приводом и оптические.

У мышки с шаровым приводом на дне имеется выступающий из корпуса обрезиненный стальной шарик. Его вес и резиновое покрытие обеспечивают хорошее сцепление с поверхностью, по которой движется мышка. При перемещении мышки шарик вращается. Два прижатых к шарику взаимно перпендикулярных ролика снимают его движения по каждому из измерений и передают их на датчики угла поворота, преобразующие эти движения в электрические сигналы.

Основным недостатком механической мышки является прилипание к роликам грязи собираемой со стола шариком. Грязь легко удалить, после чего мышка снова работает нормально. (Грязь состоит из смеси жира выделяемого кожей ладони и пыли, оседающей на стол.)

Идея оптической мыши несколько фантастична. В нижней части мыши установлена специальная быстрая видеокамера. Она непрерывно делает снимки поверхности стола и, сравнивая их, определяет направление и величину смещения мышки. Специальная контрастная подсветка поверхности светодиодом или лазером облегчает работу камеры. Появление оптической мыши стало возможным благодаря встроенному в неё мощному микропроцессору, обрабатывающему "карту стола". Теоретически возможно обмануть оптическую мышь, если передвигать её по абсолютно ровной одноцветной поверхности.

Оптические мышки также страдают от пыли, но в гораздо меньшей степени, чем механические, и почти вытеснили последние.

Есть ещё один вид мышек - гироскопические, но они используются очень редко. Такая мышка, благодаря встроенному в неё гироскопу передаёт своё положение в пространстве.

Трекбол и джойстик

Трекбол - это перевёрнутая мышка с шаровым приводом. Сам трекбол непдвижен, а шарик вращают рукой.

Джойстик (англ. joystick, дословно «палочка радости») — устройство ввода информации в персональный компьютер, которое представляет собой качающуюся в двух плоскостях вертикальную ручку.

Сенсорная панель

Принцип работы сенсорной панели заключается в том, что при прикосновении к какой-либо точке панели пальцем или стилусом, меняются электрические характеристики этой точки и можно определить её координаты. (Стилус — небольшая металлическая или пластиковая палочка со специальным силиконовым наконечником.) Прозрачную сенсорную панель объединяют с экраном монитора. Такой экран называется сенсорным экраном и служит для ввода-вывода.

Сенсорную панель часто называют сенсорным экраном, что приводит к изрядной путанице.

По своему устройству сенсорные панели делятся на множество видов.

Резистивная сенсорная панель (рис. 27) состоит из стеклянной панели и гибкой пластиковой мембраны. И на панель, и на мембрану нанесено резистивное покрытие. Пространство между стеклом и мембраной заполнено микроизоляторами, которые равномерно распределены по активной области экрана и надёжно изолируют проводящие поверхности. Когда на экран нажимают, панель и мембрана замыкаются, и контроллер с помощью аналогово-цифрового преобразователя регистрирует изменение сопротивления и преобразует его в координаты прикосновения (X и Y). Считывание происходит в два этапа:

  1. Между верхними электродами подаётся напряжение +5 В, нижние заземляются. Между точкой нажаия и землёй измеряется напряжение. Это напряжение соответствует Y-координате экрана. Этот этап показан на рис. 27.
  2. Аналогично между нижними электродами подаётся +5 В, а верхние заземляются. В точке нажатия считывается X-координата.

Рис. 27. Устройство 4-проводной резистивной сенсорной панели.

Матричная сенсорная панель аналогична резистивной, но упрощена до предела. На стекло нанесены горизонтальные проводники, на мембрану — вертикальные. При прикосновении к экрану проводники соприкасаются. Контроллер определяет, какие проводники замкнулись, и передаёт в микропроцессор соответствующие координаты.

Матричные сенсорные панели имеют очень низкую точность. Элементы интерфейса приходится специально располагать с учётом клеток матричного экрана. Единственное достоинство — простота, дешевизна и неприхотливость. Обычно матричные экраны опрашиваются по строкам (аналогично матрице кнопок).

В ёмкостной сенсорной панели (или поверхностно-ёмкостной) используется тело человека в качестве конденсатора, проводяшего переменный ток (рис. 28).

Рис. 28. Устройство емкостной сенсорной панели.

Ёмкостная сенсорная панель представляет собой стеклянную панель, покрытую прозрачным резистивным материалом. Через электроды, расположенные по углам панели, подаётся на проводящий слой небольшое переменное напряжение (одинаковое для всех углов). При касании панели пальцем или другим проводящим предметом появляется утечка тока. При этом чем ближе палец к электроду, тем меньше сопротивление панели, а значит, сила тока больше. Ток во всех четырёх углах регистрируется датчиками и передаётся в контроллер, вычисляющий координаты точки касания.

Ёмкостные сенсорные панели надёжны, выдерживают порядка 200 млн нажатий, не пропускают жидкости и отлично терпят токонепроводящие загрязнения. Прозрачность на уровне 90%. Недостаком является не очень прочное проводящее покрытие, расположенное прямо на внешней поверхности. Поэтому ёмкостные панели широко применяются в автоматах, лишь установленных в защищённом от непогоды помещении. Не реагируют на руку в перчатке, точнее, на прикосновение любым диэлектриком.

Проекционно-емкостная сенсорная панель имеет более сложное устройство по сравнению с поверхностно-ёмкостной. На внутренней стороне экрана нанесена сетка электродов (рис. 29). Электрод вместе с телом человека образует конденсатор; электроника измеряет ёмкость этого конденсатора (подаёт импульс тока и измеряет напряжение).

Рис. 29. Устройство проекционно-емкостной сенсорной панели.

Прозрачность таких экранов до 90%, температурный диапазон чрезвычайно широк. Очень долговечны (узкое место — сложная электроника, обрабатывающая нажатия). На проекционно-ёмкостных экранах может применяться стекло толщиной вплоть до 18 мм, что обеспечивает большую вандалоустойчивость. На непроводящие загрязнения не реагируют, проводящие легко подавляются программными методами. Поэтому проекционно-ёмкостные сенсорные панели широко применяются и в персональной электронике, и в автоматах, в том числе установленных на улице. Многие разновидности поддерживают мультитач.

Мультитач (от англ. Multi-touch — «множественное касание») — функция сенсорных систем ввода (сенсорный экран, сенсорная панель), осуществляющая одновременное определение координат двух и более точек касания.

Другие типы сенсорных панелей используют различные физические принципы: пьезоэффект, оптические эффекты, электромагнитную индукцию.

Сканеры

Сканеры служат для копирования в ЭВМ изображения с бумажного носителя. Можно скопировать изображение любого объёкта, который поместится на рабочее поле сканера, например кисти руки.

Бывают ручные, рулонные, планшетные и проекционные сканеры. Разновидностью проекционных сканеров являются слайд-сканеры, предназначенные для сканирования фотоплёнок. В высококачественной полиграфии применяются барабанные сканеры, в которых в качестве светочувствительного элемента используется фотоэлектронный умножитель (ФЭУ).

Принцип работы однопроходного планшетного сканера состоит в том, что вдоль сканируемого изображения, расположенного на прозрачном неподвижном стекле, движется сканирующая каретка с источником света. Отражённый свет через оптическую систему сканера (состоящую из объектива и зеркал или призмы) попадает на 3 расположенных параллельно друг другу фоточувствительных полупроводниковых элемента на основе ПЗС (прибор с зарядовой связью) , каждый из которых принимает информацию о компонентах изображения.

Устройства вывода

Мониторы и дисплеи

Дисплей (англ. display — показывать) - синоним экрана, на который выводится изображение. Сенсорный дисплей - дисплей с прикреплённой к нему сенсорной панелью. Монитор состоит из дисплея, устройства управления, блока питания и корпуса. Наиболее распространённые типы дисплеев: на электронно-лучевой трубке (ЭЛТ), жидкокристаллический, плазменнй. Применяются также светодиодные и лазерно-фосфорные дисплеи.

ЭЛТ-монитор представляет собой прибор, в котором пучки электронных лучей вырисовывают изображение на внутренней стороне электронно-лучевой трубки (рис.30).

Рис. 30. Электронно-лучевая трубка

В ЭЛТ используется свойство нагретых металлов испускать электроны. Между нагретым катодом и анодом подаётся высокое (несколько тысяч или десятков тысяч вольт) напряжение. Электроны, будучи отрицательно заряженными частицами, устремляются к положительному аноду, проскакивают сквозь него, попадают в электромагнитное поле отклоняющей системы и ударяются в люминисцентный экран. Происходит вспышка света.

Люминисцентное покрытие экранов состоит из рядов пикселей. Количество пикселей по горизонтали и по вертикали определяет физическую разрешающую способность экрана. Пиксель цветного экрана состоит из трёх элементов: красного, зелёного и синего, катод излучает три пучка злектронов, которые попадают в соответствующие элементы пикселя. Траекторией и интенсивностью пучков электронов управляет сложная электронная система. Вспышка света при попадании злектрона в люминофор кратковременная, поэтому электронный луч, пробегая по всем пикселям экрана, непрерывно восстанавливает изображение. Частота восстановления изображения на экране обычно 50-75 Гц. При такой частоте, человек не видит мелькания изображения, но глаз чувствует и утомляется. Чем больше частота восстановления, тем меньше утомляются глаза. Часть электронов вылетает из экрана и вблизи экрана существует слабое бета-излучение. Поэтому не следует слишком близко приближать глаза к экрану.

ЭЛТ-мониторы позволяют формировать очень качественное изображение, но главный их недостаток - большие габариты - стал причиной их вытеснения мониторами других типов, главным образом, жидкокристаллическими.

Жидкокристаллические (ЖК-) дисплеи получили широчайшее распространение благодаря тому, что они плоские. Это свойство делает возможным существование портативных устройств: ноутбуков, планшетов, мобильных телефонов. ЖК-дисплеи потребляют в среднем меньше энергии, чем ЭЛТ-дисплеи, не имеют мерцаний и вредных излучений. Главный недостаток ЖК-дисплеев - искажение цветов при разных углах зрения. Я был свидетелем того, как острый глаз художника выявил изменение оттенка цветов тестовой картинки по вертикали на очень дорогих высококачественных моделях ЖК-дисплеев.

Принцип действия ЖК-дисплеев заключается в возможности поворота плоскости поляризации луча света. На рис. 31 неполяризованный луч света проходя через прозрачную пластину с вертикальными штрихами, поляризуется в вертикальной плоскости. Если плоскость поляризации не изменить, то этот луч не пройдёт через пластину с горизонтальными штрихами. На рисунке плоскость поляризации поворачивается какими-то силами на 90o и вторая пластина становится полностью прозрачной для луча. Если луч развернуть на меньший угол, то вторая пластина пропустит меньше света. Для разворота плоскости поляризации луча света и служат управляемые с помощь электромагнитного поля жидкие кристаллы.

Рис. 31. Поляризация света

Жидкие кристаллы имеют структуру вязкой жидкости, которая состоит из молекул дискообразной формы. Ориентация этих молекул может изменяться при взаимодействии с электромагнитными полями. Изображение на ЖК-дисплее строится из пикселей. Каждый пиксель состоит из трёх субпикселей: красного (рис. 32), зелёного и синего. Субпиксель состоит из

Рис. 32. Субпиксель цветного ЖК-дисплея

Жидкие кристаллы под действием переменного напряжения, подаваемого на электроды, меняют своё положение в пространстве. Плоскость поляризации луча света, при его прохождении через жидкие кристаллы меняет свой угол относительно оси луча в соответствии с положением молекул жидкого кристалла. На рис. 32 кристаллы развернулись так, что угол между плоскостью поляризации луча с его осью изменился на 90o и луч свободно прошёл через горизонтальный поляризатор.

Для управления положением субпикселей используются пассивные и активные матрицы. ЖК-дисплей на пассивной матрице использует две системы прозрачных электродов: вертикальных и горизонтальных. В ЖК-дисплей на активной матрице используется для управления каждым пикселем тонкоплёночный транзистор.

Плазменные дисплеи используют явление свечения люминофора при попадании на него ультрафиолетовых лучей. Лучи возникают при электрическом разряде в ионизированном газе (плазме). Каждый субпиксель представляет собой миниатюрную люминисцентную лампу.

Принтеры

Матричные принтеры по принципу действия напоминают пишущие машинки. Между бумагой и пишущим узлом (печатающей головкой) находится красящая лента. При ударе элементов пишущего узла по ленте на бумаге остаётся отпечаток. Элементами печатающей головки матричного принтера является вертикальный ряд крохотных стержней (иголок), управляемых электромагнитами. Печатаемое изображение (символ) получается в виде комбинации точек, оставляемых стержнями. Для улучшения качества печати стержни делают квадратного сечения. Матричные принтеры самые дешёвые в эксплуатации и, не смотря на невысокое качество печати и шумность, применяются там где нужно печатать документы "под копирку" и к качеству печати не предъявляется высоких требований.

Струйные принтеры, так же как и матричные, печатают изображение, состоящее из точек, но для печати точки используется чернильница с узким отверстием (фильерой), через которую капелька чернил под давлением выстреливается на бумагу. На струйных принтерах при использовании специальной бумаги и чернил получаются цветные изображения наилучшего качества, передающие мельчайшие оттенки цвета. Недостаток струйных принтеров - очень высокая стоимость чернильных картриджей.

Лазерные принтеры имеют более сложное устройство, чем матричные и струйные, но и высокое качество и самую высокую скорость печати. Основной узел лазерного принтера - фотобарабан - цилиндр с покрытием из фотополупроводника (материала, способного менять своё электрическое сопротивление при освещении). Перед формированием изображения вся поверхность фотобарабана заряжается отрицательно, затем с тех мест, в которых должно быть изображение, лучом лазера снимается часть заряда, и наконец, на вал наносится красящий порошок (тонер). Тонер прилипает там где частично или полностью снят электрический заряд. Следующий этап - перенесение тонера с фотобарабана (получение оттиска) на бумагу. Последний этап - закрепление тонера на бумаге путём её нагрева. Это самый неприятный этап, так как при нагреве выделяется озон (и не только). Лазерные принтеры широко применяются там, где нужно много печатать. Из-за выделения озона помещение с лазерным принтером должно хорошо проветриваться.

Плоттеры можно назвать промышленными принтерами. Их отличительная особенность - возможность печатать изображения большого формата. Второе название плоттеров - графопостроители. Различают два типа плоттеров - рулонные и планшетные. Различие очевидно из названий.

Рис. 33. Планшеттный плоттер

Планшетный плоттер (рис.33) позволяет не только печатать но и вырезать из материала детали заданной формы, если печатающий узел заменить режущим инструментом (например, лазерным).

Запись и воспроизведение звуковой информации

Человек воспринимает как звук колебания воздуха. Средний человек слышит колебания воздуха в диапазоне частот примерно от 20 Гц до 16000 Гц. Для передачи звуковой информации (например, по радиосети) её нужно преобразовать в электрическую. Самое простое устройство преобразования звуковых сигналов в электрические - угольный микрофон. Под мембраной угольного микрофона находится коробочка с угольным порошком. Через порошок пропускается электрический ток. Под воздействием звука мембрана колеблется и меняет плотность угольного порошка и его сопротивление. Меняется в такт колебаниям звука и сила тока, проходящего через мембрану.

Обратное преобразование информации, записанной в виде электрических сигналов, в звукую производится в динамике (рис. 34). К диффузору динамика прикреплена катушка, которая находится в магнитном поле сильного постоянного магнита. Под воздействием переменного тока вокруг катушки возникает электромагнитное поле, которое взаимодействуя с магнитным, заставляет катушку и диффузор колебаться в такт с электрическим сигналом.

Рис. 34. Схема динамика

В микрофоне и в динамике электрический сигнал - непрерывный, и его нужно для хранения в памяти ЭВМ преобразовать в дискретный, цифровой. Для этого (рис. 35) отрезок времени, в течение которого поступает непрерывный сигнал, разбивается на интервалы равной длины и в каждом интервале измеряется среднее значение сигнала. Эти значения и запоминаются в ЭВМ. Воспроизвести непрерывный сигнал из цифрового легко с помощью интерполяции.

Для преобразования звуковой информации из непрерывной формы в дискретную и обратно в ЭВМ служит звуковая карта, которая либо встроена в материнскую плату, либо существует в виде отдельной платы, вставляемой в разъём материнской.

Рис. 35. Преобразование непрерывного
сигнала в дискретные

Продолжение. Лекция 10.