- •Введение
- •Системы счисления и представление данных
- •Числа конечной точности
- •Системы счисления
- •Преобразование чисел из одной системы счисления в другую
- •Правило замещения
- •Правило деления-умножения
- •Правило деления
- •Правило умножения
- •Упрощенные правила
- •Двоичная арифметика
- •Отрицательные двоичные числа
- •Сложение двоичных чисел
- •Числа с плавающей точкой
- •Принципы представления с плавающей точкой
- •Округление чисел
- •Стандарт ieee 754
- •Организация компьютерных систем
- •Архитектура и структура вычислительных машин
- •Языки, уровни и виртуальные машины
- •Компиляция
- •Интерпретация
- •Виртуальные машины
- •Многоуровневые машины
- •Многоуровневая организация компьютеров
- •Уровень 0
- •Уровень 1
- •Уровень 2
- •Уровень 3
- •Уровень 4
- •Уровень 5
- •Аппаратное и программное обеспечение
- •Структура компьютера
- •Организация памяти вычислительных машин
- •Адреса основной памяти
- •Упорядочение байтов
- •Цифровой логический уровень
- •Вентили и булева алгебра
- •Вентили
- •Булева алгебра
- •Реализация булевых функций
- •Основные цифровые логические схемы
- •Интегральные схемы
- •Комбинационные схемы
- •Мультиплексоры
- •Декодеры
- •Компараторы
- •Арифметические схемы Схемы сдвига
- •Сумматоры
- •Арифметико-логические устройства
- •Тактовые генераторы
- •Защелки
- •Синхронные sr-защелки
- •Синхронные d-защелки
- •Триггеры
- •Регистры
- •Организация большого объема памяти
- •Микроархитектурный уровень
- •Пример микроархитектуры: организация
- •Поток управления
- •Последовательный поток управления и переходы
- •Процедуры
- •Модель памяти
- •Набор команд
- •Пример микроархитектуры: управление микрокомандами
- •Тракт данных
- •Синхронизация тракта данных
- •Работа памяти
- •Микрокоманды
- •Управление микрокомандами
- •Уровень архитектуры команд
- •Уровень команд процессора Pentium II
- •Регистры
- •Выравнивание адресов
- •Типы данных
- •Форматы команд
- •Адресация
- •Непосредственная адресация
- •Прямая адресация
- •Регистровая адресация
- •Косвенная регистровая адресация
- •Базовая адресация
- •Индексная адресация
- •Команды процессора Pentium II
- •Команды перемещения
- •Арифметические команды
- •Двоично-десятичные команды
- •Логические команды
- •Команды сдвига/циклического сдвига
- •Команды тестирования/сравнения
- •Команды передачи управления
- •Команды для операций над цепочками
- •Команды управления флаговым регистром
- •Прочие команды
- •Уровень языка ассемблера
- •Формат оператора в языке ассемблера
- •Команды
- •Операнды
- •Комментарии
- •Директивы
- •Макросы
- •Процесс ассемблирования
- •Архитектуры компьютеров параллельного действия
- •Организация конвейерных и параллельных вычислений
- •Конвейеры
- •Параллелизм на уровне процессоров
- •Мультикомпьютеры
- •Классификация вычислительных платформ, типы процессоров
- •Классификация компьютеров параллельного действия
Многоуровневые машины
Изобретение целого ряда языков, каждый из которых более удобен для человека, чем предыдущий, может продолжаться до тех пор, пока мы не дойдем до подходящего нам языка. Каждый такой язык использует своего предшественника как основу, поэтому мы можем рассматривать компьютер в виде ряда уровней.
Компьютер с n уровнями можно рассматривать как n разных виртуальных машин, у каждой из которых есть свой машинный язык. Термины уровень и виртуальная машина можно использовать как синонимы. Только программы, написанные на Я0, могут выполняться компьютером без применения компиляции и интерпретации. Программы, написанные на Я1, Я2,.... Яn, должны проходить через интерпретатор более низкого уровня или компилироваться на язык, соответствующий более низкому уровню.
Большинство программистов, использующих машину уровня n, интересуются только самым верхним уровнем, то есть уровнем, который меньше всего сходен с машинным языком. Однако те, кто хочет понять, как в действительности работает компьютер, должны изучить все уровни. Те, кто проектирует новые компьютеры или новые уровни (т.е. новые виртуальные машины), также должны быть знакомы со всеми уровнями.
Многоуровневая организация компьютеров
Большинство современных компьютеров состоит из двух и более уровней (Рис. 2 .4).
Рис. 2.4. Компьютер с шестью уровнями. Способ поддержки каждого уровня указан под ним. В скобках указывается название поддерживающей программы
Уровень 0
На самом нижнем уровне, цифровом логическом, объекты называются вентилями. Хотя вентили состоят из аналоговых компонентов, таких как транзисторы, они могут быть точно смоделированы как цифровые средства. У каждого вентиля есть одно или несколько цифровых входных данных (сигналов, представляющих 0 или 1). Вентиль вычисляет простые функции этих сигналов, такие как И или ИЛИ. Каждый вентиль формируется из нескольких транзисторов. Несколько вентилей формируют 1 бит памяти, который может содержать 0 или 1. Биты памяти, объединенные в группы, например, по 16, 32 или 64, формируют регистры. Каждый регистр может содержать одно двоичное число, соответствующее его разрядности (количеству бит). Из вентилей может состоять и сам компьютер.
Уровень 1
Следующий уровень – микроархитектурный уровень. На этом уровне можно видеть совокупности 8 или 32 регистров, которые формируют локальную память и схему, называемую АЛУ (арифметико-логическое устройство). АЛУ выполняет простые арифметические операции. Регистры вместе с АЛУ формируют тракт данных. Основная операция тракта данных состоит в следующем: выбирается один или два регистра, АЛУ производит над ними какую-либо операцию, например сложения, а результат помещается в один из этих регистров.
Уровень 2
На некоторых машинах работа тракта данных контролируется особой программой, которая называется микропрограммой. На других машинах тракт данных контролируется аппаратными средствами.
На машинах, где тракт данных контролируется программным обеспечением, микропрограмма – это интерпретатор для команд на уровне 2. Микропрограмма вызывает команды из памяти и выполняет их одну за другой, используя при этом тракт данных. Например, для того чтобы выполнить команду ADD, эта команда вызывается из памяти, ее операнды помещаются в регистры, АЛУ вычисляет сумму, а затем результат переправляется обратно. На компьютере с аппаратным контролем тракта данных происходит такая же процедура, но при этом нет программы, которая контролирует интерпретацию команд уровня 2.