Э. Таненбаум - Архитектура компьютера (1127755), страница 2
Текст из файла (страница 2)
Сегментация Реализация сегментации Виртуальная память Репбцгп 4 Виртуальная память О!1гаЗРАЯС !8 Виртуальная память и кэширование Виртуальные команды ввода-вывода Файлы Реализация виртуальных команд ввода-вывода Команды управления каталогами . Виртуальные команды для параллельной работы Формирование процесса Состояние гонок Синхронизация процесса с использованием семафоров ... Примеры операционных систем Знакомство с операционными системами О!Ч!Х и ~Чпбоиэ ХР Примеры виртуальной памяти Примеры виртуального ввода-вывода Примеры управления процессами Краткое содержание главы . Вопросы и задания Глава 7. Уровень ассемблера . Знакомство с ассемблером .
Понятие ассемблера Назначение ассемблера Формат оператора в ассемблере . Директивы Макросы Макроопределение, макровызов и макрорасширение...... Макросы с параметрами Дополнительные возможности Реализация макросов в ассемблере Процессассемблирования . Ассемблирование за два прохода Первый проход Второй проход Таблица символов Компоновка и загрузка Задачи компоновщика Структура обьектного модуля Время компоновки и динамическое перераспределение памяти . Динамическая компоновка Краткое содержание главы . Вопросы и задания .
Глава 8. Параллельные компьютерные архитектуры Внугрипроцессорный параллелизм . Параллелизм на уровне команд 475 476 . 477 . 479 . 482 . 483 . 485 . 486 489 . 492 . 49? 500 501 502 503 . 506 508 509 509 . 514 5!7 . 5!8 527 531 543 549 550 557 558 558 559 561 564 567 567 569 570 570 571 571 572 576 578 580 581 584 585 588 592 593 587 599 599 Содержание Внутрипроцессорная многопоточность . Однокристальные мультипроцессоры Сопроцессоры Сетевые процессоры Мультимедиа-процессоры Криптопроцессоры .
Мультипроцессоры Мультипроцессоры и мультикомпьютеры Семантика памяти ЦМА-мультипроцессоры в симметричных мультипроцессорных архитектурах НОМА-мультипроцессоры СОМА-мультипроцессоры Мультикомпьютеры Коммуникационные сети Процессоры с массовым параллелизмом Кластерные вычисления Коммуникационное программное обеспечение для мультикомпьютеров Планирование Общая память на прикладном уровне Производительность Распределенные вычисления . Краткое содержание главы .
Вопросы и задания .. Глава 9. Библиография Литература для дополнительного чтения . Вводная и неспециальная литература Организация компьютерных систем Цифровой логический уровень . Уровень микроархитектуры . Уровень архитектуры набора команд Уровень операционной системы Уровень ассемблера Параллельные компьютерные архитектуры .
Двоичные числа и числа с плавающей точкой Программирование на языке ассемблера Алфавитный список литературы Приложение А. Двоичные числа Числа конечной точности Позиционные системы счисления Преобразование чисел из одной системы счисления в другую Отрицательные двоичные числа Двоичная арифметика Вопросы и задания . Приложение Б. Числа с плавающей точкой Принципы представления чисел с плавающей точкой Стандарт !ЕЕЕ 754 Вопросы и задания . Приложение В. Программирование на языке ассемблера Основные понятия Язык ассемблера . Небольшая программа на языке ассемблера .. 606 613 6!9 6!9 628 634 634 635 642 . 647 656 . 664 .
666 . 667 . 671 . 681 , 687 . 689 691 . 698 . 704 . 707 . 708 7'1 1 . 711 . 711 . 713 714 714 7! 5 . 7!6 . 717 . 717 . 719 719 720 733 . 733 735 , 737 . 739 . 741 . 742 745 745 749 752 754 . 755 . 755 . 756 12 Содержание вига е операции Список терминов Алфавитный указатель Процессор 8088 Цикл процессора Регистры общего назначения Регистры-указатели Памятьиадресация Организация памяти и сегменты Адресация Набор команд 8088 .
Перемещение, копирование и арифметические команды Логические операции, побитовые операции и операции сд Операции организации циклов и повторяющиеся строковы Команды перехода и вызова Вызовы подпрограмм . Системные вызовы и системные подпрограммы Заключительные замечания о наборе команд Ассемблер Введение Ассемблер аз88 из набора АСК Некоторые отличия от других ассемблеров 8088 . Трассер . Команды трассера Подготовительные действия Примеры Не!1о УУог!б Регистры общего назначения Вызов регистров команд и указателя .
Отладка программы вывода массива . Обработка символьных строк и строковые команды Таблицы диспетчеризации Буферизованный и произвольный доступ к файлам Вопросы и задания . 757 757 759 760 762 762 764 768 770 772 773 773 775 777 779 780 780 78! 785 786 788 790 791 791 795 796 800 803 806 809 8!3 818 828 Сюзанне, Барбаре, Марвину, памяти моих дорогих и Брэма Предисловие В основе первых четырех изданий книги лежит идея о том, что компьютер можно рассматривать как иерархию уровней, каждый из которых выполняет какую-либо определенную функцию. Это фундаментальное утверждение сейчас столь же правомерно, как в момент выхода в свет первого издания, поэтому я по-прежнему беру его за основу, на этот раз уже в пятом издании. Как и в первых четырех, в этом подробно описываются цифровой логический уровень, а также уровни микроархитектуры, архитектуры набора команд, операционной системы и ассемблера.
В целом структура книги осталась прежней, но в пятое издание внесены некоторые изменения, что объясняется стремительным развитием компьютерной отрасли. В качестве примеров в книге рассматриваются современные машины Реп11пш 4 производства ?псе? и Бпп ??11га5РАКС 1?? производства 5пп, а также еще один процессор ?п1е1 — 8051. Процессор Репт|пш 4 популярен в сегменте настольных систем. В противоположность ему, модель ?Лгга5РАКС 1П часто устанавливается в мультипроцессорных серверных системах. Вероятно, многих удивит выбор процессора 8051 в качестве примера. Действительно, эта микросхема применяется в промышленности уже несколько десятилетий.
Дело в том, что только сейчас, в условиях стремительного развития встроенных систем, потенциал 8051 можно признать полностью реализованным. Микроконтроллеры теперь устанавливаются в самые разные устройства — от будильников до микроволновых печей. Очень часто для этих целей применяется именно 8051, что связано с весьма низкой стоимостью самого процессора, широким выбором программ и периферийных устройств и изобилием квалифицированных программистов. Многие преподаватели, выстраивающне свои учебные курсы на основе этой книги, просили меня развить тему программирования на языке ассемблера.
В пятом издании я учел их пожелания — соответствующий материал имеется в приложении В. В примерах используется ассемблер 8088, который являет собой упрощенную версию популярного ассемблера Репг1цш. Можно было выбрать ассемблер Игга5РАКС, М?Р5 или какого-нибудь другого процессора, о котором мало кто слышал, но у 8088 есть важное преимущество — большинство студентов дома работают на компьютерах Репг1шп, а программы, написанные на ассемблере 8088, совместимы с этими системами. Поскольку отлаживать ассемблерный код очень сложно, я разработал несколько инструментальных средств, призванных помочь в процессе обучения, включая сам ассемблер 8088, а также симулятор и трассер.
Эти инструменты работают в средах ЪУ1пдоч з, ???~??Х и 1.шпх. Они есть как на сопроводительном компакт-диске, так и на веб-сайте книги. С годами увеличился объем книги. Это неизбежно, поскольку происходит постоянное развитие и о предмете становится известно все больше и больше. Поэтому, если книга используется в целях обучения, нужно иметь в виду, что этот курс может занять более длительное время, чем раньше. Возможный вариант — в качестве минимума изучать первые три главы, часть главы 4 (до раздела Предисловие 1 5 «Разработка уровня микроархитектуры» включительно) и главу 5, а оставшееся время на ваше усмотрение потратить на главы 6, 7 и 8, а также вторую часть главы 4.
В пятое издание внесены следующие изменения. В главе 1 по-прежнему излагается история развития архитектуры компьютеров, но мы расширили перечень рассматриваемых машин. В главу включены три основных примера, касающиеся процессоров Репг1пщ 4, Лсга8РАКС П1 и 8051. Материал главы 2 обновлен и переработан. В ней мы анализируем современные устройства ввода-вывода, делая упор на последние технологические решения. Среди рассматриваемых технологий — цифровые камеры, цифровые абонентские линии, кабельные модемы. Глава 3 претерпела некоторые изменения — теперь в ней рассматриваются компьютерные шины и современные устройства ввода-вывода.
Устройство микросхем иллюстрируется тремя новыми примерами. Написан новый раздел о шине РС1 Ехргезз, которая через некоторое время, вероятно, окончательно вытеснит шину РС1. Глава 4, в которой изложены основные принципы действия вычислительных систем, осталась после выхода четвертого издания почти без изменений. В нее введены лишь три новых раздела, посвященные уровню микроархитектуры процессоров Репг1пщ 4, ШггаБРАКС П1 и 8051. Изменения в главах 5, 6 и 7 преимущественно связаны с новыми примерами. В главе 6 вместо %'1пг(очз 1(Т материал объясняется на примере %'1пдочз ХР, теоретические же изменения минимальны.
Глава 8, наоборот, полностью переписана, и теперь она адекватно отражает развитие параллельных компьютерных архитектур. В ней рассматриваются пять классов параллельных систем: системы с внутрипроцессорным параллелизмом (параллелизм на уровне команд, внутрипроцессорная многопоточность, однокристальные мультипроцессоры), сопроцессоры, системы с общей памятью, кластеры и, вкратце, системы распределенных вычислений.
В изобилии представлены в этой главе актуальные примеры, в частности, процессор Тг(Мео1а, а также кластеры В1пебепе/1, Кед Ягогщ и Ооой!е. Список литературы в главе 9 претерпел существенные изменения. Это естественно, поскольку в нашей области новая литература появляется постоянно. Более половины ссылок, указанных в пятом издании, относятся к работам, опубликованным уже после выхода четвертого издания.