- •Введение
- •Системы счисления и представление данных
- •Числа конечной точности
- •Системы счисления
- •Преобразование чисел из одной системы счисления в другую
- •Правило замещения
- •Правило деления-умножения
- •Правило деления
- •Правило умножения
- •Упрощенные правила
- •Двоичная арифметика
- •Отрицательные двоичные числа
- •Сложение двоичных чисел
- •Числа с плавающей точкой
- •Принципы представления с плавающей точкой
- •Округление чисел
- •Стандарт ieee 754
- •Организация компьютерных систем
- •Архитектура и структура вычислительных машин
- •Языки, уровни и виртуальные машины
- •Компиляция
- •Интерпретация
- •Виртуальные машины
- •Многоуровневые машины
- •Многоуровневая организация компьютеров
- •Уровень 0
- •Уровень 1
- •Уровень 2
- •Уровень 3
- •Уровень 4
- •Уровень 5
- •Аппаратное и программное обеспечение
- •Структура компьютера
- •Организация памяти вычислительных машин
- •Адреса основной памяти
- •Упорядочение байтов
- •Цифровой логический уровень
- •Вентили и булева алгебра
- •Вентили
- •Булева алгебра
- •Реализация булевых функций
- •Основные цифровые логические схемы
- •Интегральные схемы
- •Комбинационные схемы
- •Мультиплексоры
- •Декодеры
- •Компараторы
- •Арифметические схемы Схемы сдвига
- •Сумматоры
- •Арифметико-логические устройства
- •Тактовые генераторы
- •Защелки
- •Синхронные sr-защелки
- •Синхронные d-защелки
- •Триггеры
- •Регистры
- •Организация большого объема памяти
- •Микроархитектурный уровень
- •Пример микроархитектуры: организация
- •Поток управления
- •Последовательный поток управления и переходы
- •Процедуры
- •Модель памяти
- •Набор команд
- •Пример микроархитектуры: управление микрокомандами
- •Тракт данных
- •Синхронизация тракта данных
- •Работа памяти
- •Микрокоманды
- •Управление микрокомандами
- •Уровень архитектуры команд
- •Уровень команд процессора Pentium II
- •Регистры
- •Выравнивание адресов
- •Типы данных
- •Форматы команд
- •Адресация
- •Непосредственная адресация
- •Прямая адресация
- •Регистровая адресация
- •Косвенная регистровая адресация
- •Базовая адресация
- •Индексная адресация
- •Команды процессора Pentium II
- •Команды перемещения
- •Арифметические команды
- •Двоично-десятичные команды
- •Логические команды
- •Команды сдвига/циклического сдвига
- •Команды тестирования/сравнения
- •Команды передачи управления
- •Команды для операций над цепочками
- •Команды управления флаговым регистром
- •Прочие команды
- •Уровень языка ассемблера
- •Формат оператора в языке ассемблера
- •Команды
- •Операнды
- •Комментарии
- •Директивы
- •Макросы
- •Процесс ассемблирования
- •Архитектуры компьютеров параллельного действия
- •Организация конвейерных и параллельных вычислений
- •Конвейеры
- •Параллелизм на уровне процессоров
- •Мультикомпьютеры
- •Классификация вычислительных платформ, типы процессоров
- •Классификация компьютеров параллельного действия
Раздел 1. Введение 2
Раздел 2. Системы счисления и представление данных 3
Тема 2.1. Числа конечной точности 3
Тема 2.2. Системы счисления 5
Тема 2.3. Преобразование чисел из одной системы счисления в другую 9
Тема 2.4. Двоичная арифметика 14
Тема 2.5. Числа с плавающей точкой 18
Раздел 3. Организация компьютерных систем 26
Тема 3.1. Архитектура и структура вычислительных машин 26
Тема 3.2. Организация памяти вычислительных машин 33
Раздел 4. Цифровой логический уровень 39
Тема 4.1. Вентили и булева алгебра 39
Тема 4.2. Основные цифровые логические схемы 48
Тема 4.3. Память 58
Тема 4.4. ОЗУ и ПЗУ 66
Раздел 5. Микроархитектурный уровень 70
Тема 5.1. Пример микроархитектуры: организация 70
Тема 5.2. Пример микроархитектуры: управление микрокомандами 78
Раздел 6. Уровень архитектуры команд 92
Тема 6.1. Уровень команд процессора Pentium II 92
Тема 6.2. Регистры 93
Тема 6.3. Выравнивание адресов 97
Тема 6.4. Форматы команд 99
Тема 6.5. Адресация 104
Тема 6.6. Команды процессора Pentium II 107
Раздел 7. Уровень языка ассемблера 113
Тема 7.1. Формат оператора в языке ассемблера 114
Тема 7.2. Директивы 116
Тема 7.3. Макросы 119
Тема 7.4. Процесс ассемблирования 121
Раздел 8. Архитектуры компьютеров параллельного действия 124
Тема 8.1. Организация конвейерных и параллельных вычислений 124
Тема 8.2. Классификация вычислительных платформ, типы процессоров 129
Введение
Уважаемые студенты, Вы уже успешно, смеем на это надеяться, усвоили материал рабочей тетради «Информационные технологии». Теперь Вам предстоит сделать очередной, более тяжелый и трудоемкий шаг, освоить такую дисциплину как «Архитектура ЭВМ». Это потребует от Вас усилий, т.к. здесь сходятся и физика и математика и информатика. Для облегчения Вашей работы материал начинается с изучения элементарных основополагающих категорий и заканчивается сведением всех полученных знаний в единый комплекс. Из тетради Вы узнаете:
в разделе 1 – о представлении данных в компьютерах, а также Вы узнаете о системах счисления;
раздел 2 знакомит Вас с основными компонентами компьютера: процессорами, памятью, устройствами ввода-вывода. В ней также дается краткое описание архитектуры компьютера;
раздел 3 посвящен цифровому логическому уровню, т.е. аппаратному обеспечению. В ней рассказывается, что такое вентили и как они объединяется в схемы. В этом разделе также вводятся основные понятия булевой алгебры, которая используется для обработки цифровых данных;
раздел 4 познакомит Вас со строением микроархитектурного уровня и принципами его работы;
в разделе 5 обсуждается уровень архитектуры команд, которые многие называют машинным языком. В качестве примера, здесь будет рассмотрена архитектура команд процессора Pentium II;
раздел 6 – об уровне языка ассемблера, сюда относится и сам язык, и процесс ассемблирования;
в разделе 7 обсуждаются параллельные компьютеры, важность которых возрастает с каждым днем. Все их разновидности и принципы их действия будут рассмотрены в данном разделе.
Изучая тетрадь, приложите усилия: выполняйте все задания, обращайтесь к мультимедийному курсу и не забывайте, что у Вас есть возможность решить свои проблемы и вопросы на консультациях.
Итак, в путь!!!
Системы счисления и представление данных
Числа конечной точности
В результате изучения данной темы Вы будете:
понимать особенности машинной арифметики;
знать ограничения и недостатки машинной арифметики.
Когда люди выполняют какие-либо арифметические действия, их не волнует вопрос, насколько длинным будет то или иное число. Физики, к примеру, могут вычислить, что во вселенной присутствует 1078 электронов, и их не волнует тот факт, что полная запись этого числа потребует 79 цифр.
С компьютерами дело обстоит иначе – они имеют фиксированное количество доступной памяти для хранения чисел, зависящее от того, когда был разработан этот компьютер. Поэтому в компьютерах мы можем иметь дело только с числами, длина которых ограничена. Такие числа называются числами конечной точности.
Рассмотрим ряд положительных целых чисел, которые можно записать тремя цифрами (тремя разрядами) без десятичной запятой и без знака. В этот ряд входит ровно 1000 чисел: 000, 001, 002, 003,..., 999. При таком ограничении невозможно выразить определенные типы чисел, например:
Числа больше 999.
Отрицательные числа.
Дроби.
Иррациональные числа.
Комплексные числа.
Одно из свойств набора всех целых чисел – замкнутость по отношению к операциям сложения, вычитания и умножения. Другими словами, для каждой пары целых чисел i и j, числа i+j, i-j и i×j – тоже целые числа, например:
1+2=3;
11-7=4;
10*12=120.
Ряд целых чисел не замкнут относительно деления, поскольку существуют такие значения i и j, для которых i/j не выражается в виде целого числа, например:
7/2 = 3,5;
1/0 = .
Числа же конечной точности не замкнуты относительно всех четырех операций. Ниже приведены примеры операций над трехразрядными числами:
600+600 = 1200 (слишком большое число);
003-005 = -2 (отрицательное число);
050×050 = 2500 (слишком большое число);
007/002 = 3,5 (не целое число).
Любые отклонения результатов операций от требуемого ряда чисел можно разделить на два класса:
ошибка переполнения (операции, результат которых превышает самое большое число ряда);
ошибка из-за потери значимости (операции, результат которых меньше, чем самое маленькое число ряда, и операции, результат которых не является слишком маленьким или слишком большим, а просто не является членом ряда).
Из четырех примеров, приведенных выше, первые три относятся к первому классу, а четвертый – ко второму классу.
Поскольку размер памяти компьютера ограничен, и он должен выполнять арифметические действия над числами конечной точности, результаты определенных вычислений будут неправильными с точки зрения классической математики. В качестве примера рассмотрим ассоциативный закон:
a+(b-c) = (a+b)-c
Вычислим обе части выражения для a=700, b=400 и c=300. В левой части сначала вычислим значение (b-с), оно равно 100. Затем прибавим это число к а и получим 800. Чтобы вычислить правую часть, сначала вычислим (а+b).
Для трехразрядных целых чисел получится переполнение. Результат будет зависеть от компьютера, но он не будет равен 1100. Вычитание 300 из какого-то числа, отличного от 1100, не даст результата 800. Ассоциативный закон не имеет силы.
Другой пример – дистрибутивный закон:
а×(b-с) = a×b-a×с
Сосчитаем обе части выражения для а=5, b=210 и с=195. В левой части 5×15=75. В правой части 75 не получается, поскольку a×b выходит за пределы ряда.
Исходя из этих примеров, кто-то может сделать вывод, что компьютеры совершенно непригодны для выполнения арифметических действий. Вывод, естествен но, неверен, эти примеры наглядно иллюстрируют важность понимания того, как работает компьютер и какие ограничения он имеет.
Подведем итоги
память компьютеров ограничена, поэтому в них использую числа с ограниченным количеством разрядов – числа конечной точности;
при операциях с числами конечной точности возможны отклонения двух видов: ошибки переполнения и ошибки из-за потери значимости.
Вопросы для самоконтроля
Вспомните особенности и ограничения представления чисел в компьютере. Можно ли сохранить в компьютере любое вещественное число?
Можно ли утверждать, что машинная арифметика строго соответствует классической математике? Чем это обусловлено? Приведите примеры.
Назовите основные классы отклонений машинной арифметики.
Всегда ли выполняются законы алгебры с числами конечной точности? Объясните почему.