Книга содержит исчерпывающие сведения о современном состоянии дел в области организации и архитектуры
компьютеров, включая обсуждение наиболее интенсивно развивающейся в настоящее время суперскалярной технологии и параллельной организации
процессоров. Ее назначение состоит в ясном и четком изложении сведений об особенностях построения и возможностях существующих компьютеров.
Излагаемый материал отвечает всем требованиям учебного процесса, поскольку его изложение опирается на фундаментальные принципы, одновременно
сохраняя акцент на важнейшем аспекте проектирования компьютеров - достижении максимальной производительности. Обсуждаемые темы иллюстрируются
большим количеством примеров, большая часть которых относится к семейству процессоров Pentium.
Книга будет полезна самому широкому кругу читателей, включая студентов соответствующих специальностей, профессионалов в области проектирования и
эксплуатации вычислительной техники, а также всем тем, кто всерьез интересуется современным состоянием дел в области архитектуры и организации
компьютеров.
Предисловие
Цель этой книги - изложить, по возможности доступно и в то же время исчерпывающе, основные принципы построения и функционирования современных компьютерных систем.
Это отнюдь не простая задача, и тому есть множество причин. Во-первых, на сегодняшний день существует огромное разнообразие электронных устройств, претендующих на название "компьютер", - от однокристальных микропроцессоров ценой в несколько долларов до суперкомпьютеров, стоящих миллионы долларов. Отличаются они функциональными возможностями, производительностью, размерами, областью применения и, естественно, ценой. Во-вторых, скорость развития компьютерной технологии на современном этапе не уменьшилась - эта отрасль по-прежнему прогрессирует такими темпами, с которыми вряд ли может сравниться какая-любая другая. Прогресс затрагивает все аспекты компьютерной технологии, от производства электронных компонентов до принципов параллельной организации таких компонентов в единую систему.
Но несмотря на такой гигантский шаг вперед, существуют определенные, достаточно консервативные принципы, которые составляют фундамент всего стройного здания современной компьютерной науки. Полнота реализации этих принципов определяется возможностями технологии на текущем этапе и соображениями оптимального выбора соотношения цена/производительность, которыми руководствуется проектировщик той или иной системы. Цель этой книги - ознакомить читателя с архитектурой и принципами структурной организации компьютерных систем, существующими взглядами на методику построения таких систем и современными методами их конструирования.
Подзаголовок раскрывает тему книги и подход, принятый при изложении материала. Основной целью конструктора при проектировании компьютерной системы является достижение максимальной производительности, но, как это ни парадоксально звучит, в настоящее время достичь этой цели оказывается сложнее, чем когда бы то ни было раньше. Все базовые характеристики компонентов системы - производительность процессора, быстродействие и емкость памяти, скорость обмена данными по каналам связи - растут с поразительной скоростью, причем рост этот происходит неравномерно по разным типам компонентов. Поэтому задача проектирования сбалансированной системы, которая в максимальной степени использовала бы возможности имеющихся на сегодняшний день компонентов, является отнюдь не тривиальной. Таким образом, разработка компьютерной системы все более походит на игру, в которой за счет изменения структуры и функций
одних компонентов стремятся компенсировать недостаток производительности или функциональных возможностей других. Примеры ст
Компьютерная система, как и любая другая, состоит из множества взаимодействующих компонентов. Наиболее полно система характеризуется своей структурной организацией - способом объединения отдельных компонентов в единое целое, обеспечивающим максимизацию некоторого критерия качества системы. Структура компьютерной системы является иерархической, т.е. каждый из ее главных компонентов может быть представлен декомпозицией на некоторые субкомпоненты со своими специфическими функциями, которые объединены в подсистему также согласно определенным принципам. Для того чтобы читатель смог более четко представить себе суть возникающих при этом проблем и методов их решения, такая иерархическая система описывается в данной книге по принципу сверху вниз - от верхних уровней иерархии к нижним, например:
компьютерная система и функции ее главных компонентов - процессора, памяти, устройств ввода-вывода;
процессор: состав главных компонентов - устройство управления, регистры, арифметическое и логическое устройство, блок выполнения команд - и их функции;
устройство управления и его главные компоненты - память микропрограмм, логические схемы, задающие последовательность микрокоманд, и регистры.
Выбрав такую последовательность изложения, мы добиваемся того, что приступая к изучению нового для себя компонента, читатель уже представляет себе его "среду обитания" - место в общей структуре и предъявляемые к нему со стороны системы требования.
При обсуждении тех или иных вопросов мы стремились к тому, чтобы системные аспекты рассматривались как с точки зрения архитектуры (тех атрибутов системы, которые "видимы", доступны программисту на уровне языка машинных команд), так и с точки зрения организации (операционных блоков и их взаимосвязей, которые и реализуют архитектуру).
Как правило, при изложении различных концепций мы будем приводить примеры их технической реализации в разных моделях существующих компьютерных систем, что позволит читателю глубже уяснить суть представленного материала. В большинстве примеров мы опирались на два семейства компьютеров: Pentium II фирмы Intel и PowerPC. (Появившийся недавно на рынке Pentium III представляет собой, по сути, тот же Pentium II, дополненный набором команд мультимедиа.) Эти два семейства в совокупности воплощают большинство из существующих на сегодняшний день тенденций в проектировании компьютерных систем. Семейство Pentium II является наиболее ярким представителем компьютеров с развитым набором команд (CISC - complex instruction set computer), в то время как PowerPC представляет собой типичный компьютер с сокращенным набором команд (RISC - reduced-instruction set computer). При проектировании обоих семейств
использовались принципы суперскалярной организации, и оба семейства поддерживают мультипроцессорную структуру компьютерной
Структура книги
Материал книги разделен на пять частей.
Часть I. Обзор. В этой части изложен материал, позволяющий читателю получить общее представление о сути рассматриваемых в книге вопросов и обеспечивающий необходимый контекст для дальнейшего изложения.
Часть II. Основные подсистемы компьютера. Описан состав компонентов компьютерной системы - центральный процессор, память и устройства (модули) ввода-вывода, - их функции и методы организации их совместной работы. В этой части рассмотрены подробно принципы организации и функционирования всех основных компонентов, кроме центрального процессора.
Часть III. Центральный процессор. Описан состав компонентов центрального процессора (ЦП) - устройства управления, регистров, арифметического и логического устройства (АЛУ), блока выполнения команд, - их функции и методы организации совместной работы этих компонентов. Отдельно рассмотрены вопросы архитектуры ЦП - выбора набора команд и типов данных. В этой же части анализируются и вопросы структурной организации, в частности организации конвейерной обработки.
Часть IV. Устройство управления. Структурно устройство управления входит в состав центрального процессора, и на него возложена функция организации совместной работы всех прочих компонентов ЦП. В этой части описаны алгоритмы работы устройства управления и методы их реализации на базе микропрограммирования.
Часть V. Организация параллельных вычислений. В заключительной части книги рассматриваются вопросы организации мультипроцессорной и векторной обработки информации.
Более детальную информацию о распределении материала по главам читатель найдет в конце главы 1.
Internet-ресурсы для преподавателей и студентов
Существует специальный Web-сервер, содержащий дополнительные материалы по тематике данной книги для студентов и преподавателей, читающих соответствующие курсы. На данном сервере имеется множество связей с другими Internet-ресурсами, копии иллюстраций к этой книге в формате PDF (для работы с ними можно использовать программу Adobe Acrobat) и информация о включении в список рассылки новых материалов по электронной почте. Адрес сервера в сети Internet: http://www.shore.net/~ws/COA5e.html. Более подробная информация представлена в разделе "Поддержка по сети Web". Список рассылки по Internet организован для тех преподавателей, использующих в работе данную книгу, которые пожелают обменяться с коллегами новой информацией, своими соображениями о содержании книги, задать вопросы коллегам и автору. Как только книга выйдет в свет и станут поступать замечания об ошибках, мы откроем специальный раздел
обнаруженных ошибок и опечаток на сервере http://www.shore.net/~ws.
Проекты в помощь преподавателям
На наш взгляд, важным компонентом учебного курса "Устройство и архитектура компьютерных систем" являются проекты, которые помогут студентам получить практический опыт использования концепций, изложенных в данной книге. В этой книге мы реализовали не имеющую аналогов в практике учебных изданий методику включения тем для самостоятельных проектов в состав дополнительных материалов, размещенных на Web-сервере. Руководство для преподавателей содержит не только наставление по выбору тематики проектов и их структуры, но и множество предположительных конкретных тем, охватывающих все аспекты курса, изложенные в книге.
Исследовательские проекты. Руководство включает ряд тем исследовательского характера, источниками для которых служат материалы, доступные по сети Web и представленные в специальной литературе.
Моделирующие проекты. Руководство обеспечивает поддержку при использовании моделирующего пакета SuperScalar, который можно применять для анализа различных аспектов проектирования архитектуры и структурной организации компьютерных систем.
Вопросы для самостоятельного изучения. Руководство включает перечень дополнительной литературы по тематике каждой из глав данной книги. Темы могут быть предложены студентам для самостоятельного изучения и подготовки реферата.
Что нового в пятом издании
За те четыре года, которые прошли после выхода в свет предыдущего, четвертого издания, в области устройства и архитектуры компьютерных систем появилось много новых идей. В этом новом издании я постарался включить в материал книги наиболее интересные из них и дать читателям по возможности более широкую информацию о том, как выглядит эта отрасль компьютерной науки на сегодняшний день. После выхода четвертого издания я получил множество пожеланий и дополнений от тех, кто на практике занимается преподаванием данной дисциплины. С учетом этих замечаний были более подробно освещены одни вопросы и исключена излишняя детализация при рассмотрении других, значительно обновлен иллюстративный материал. Кроме того, в книгу включено множество задач для самостоятельной проработки на базе изложенного материала.
Помимо этих методических доработок, в книгу было включено много материала, отражающего новейшие достижения в рассматриваемой области, хотя основная структура книги осталась прежней. В частности, хочу отметить следующие дополнения.
Оптическая память. Материал, касающийся оптических носителей информации, расширен, и в него включены сведения об устройствах, реализующих принципы магнито-оптической записи и хранения информации.
Проектирование суперскалярных систем. Материал в главе, касающейся суперскалярных систем, изложен более детально, и в него включены описания двух новых практических систем - UltraSparc II и MIPS R10000.
Набор команд мультимедиа. Рассмотрен набор команд мультимедиа MMX, который используется в процессорах Pentium II и Pentium III.
Выполнение с опережением и предпочтительное выполнение. В пятое издание включено рассмотрение этих новейших концепций, на базе которых фирмами Intel и Hewlett-Packard спроектирована архитектура IA-64.
Симметричная мультипроцессорная обработка, кластеры и мультипроцессор с переменным временем доступа к памяти. Глава о параллельной организации обработки информации полностью переработана. В новой редакции в нее включены описание и сравнительный анализ симметричной мультипроцессорной обработки (SMP - symmetric multiprocessing), кластеров и мультипроцессорных систем с переменным временем доступа к памяти (NUMA -nonuniform memory access multiprocessor).
Дополнительные материалы для преподавателей. Как уже упоминалось выше, в настоящем издании значительно расширен объем дополнительных методических материалов, которые могут использоваться преподавателями при чтении соответствующих курсов. Кроме того, множество аналогичных материалов читатели найдут и на сопутствующем Web-сервере.
Поддержка по сети Web
Дополнительные материалы, касающиеся тематики данной книги, доступны на специализированном Web-сервере http://www.shore.net/~ws/COA5e.html. На этом сервере имеются следующие рубрики.
Материалы книги в электронном формате
Копии иллюстраций из этой книги в формате PDF.
Тексты упражнений в формате PDF для самостоятельной работы студентов.
Набор слайдов в формате PowerPoint, которые можно использовать при чтении лекций по этой дисциплине.
Список замеченных в тексте книги ошибок и опечаток, который обновляется не реже, чем раз в месяц.
Учебные курсы по предмету "Архитектура и структурная организация компьютерных систем"
Страницы Web-сервера COA5e содержат множество связей с другими Web-страницами, на которых вы найдете специализированные курсы, построенные на базе материала данной книги. Эта информация может послужить хорошим пособием при планировании курсов лекций и семинарских занятий и содержит множество тем для самостоятельной работы студентов.
Полезные Web-страницы
Страницы Web-сервера COA5e включают ссылки на Web-страницы с аналогичной тематикой, причем перечень ссылок организован в соответствии с содержанием отдельных глав данной книги. Материал, на который указывают ссылки, затрагивает широкий спектр проблем с разным уровнем проработки. Пользуясь им, студенты имеют возможность по собственному выбору углублять полученные знания по тем или иным вопросам, освещаемым на страницах книги.
Список рассылки по Internet
На сервере COA5e организован список рассылки, рассчитанный на преподавателей, с помощью которого они могут обменяться информацией, своими соображениями о содержании книги, задать вопросы коллегам и автору. Информацию о порядке подписки вы найдете на Web-сервере.
Инструментальные средства моделирования
Web-сервер COA5e имеет связь с Web-сервером SimpleScalar. Программный продукт SimpleScalar представляет собой инструмент для проведения модельных экспериментов, касающихся разработки процессоров, и анализа полученных с помощью моделирования результатов. Саму программу можно загрузить непосредственно с этого сервера и на нем же получить необходимую документацию. Руководство преподавателя включает не только информацию о методике загрузки и использования программы, но и перечень тем, рекомендуемых для студенческих проектов.
Благодарности
При подготовке этого издания я учел множество замечаний и пожеланий, высказанных разными специалистами как в отношении предыдущего, четвертого издания, так и в отношении рукописи нового. В первую очередь я хочу высказать свою признательность тем специалистам, которые не пожалели времени и сил на анализ четвертого издания: Е Пен-Чунгу (Yew Pen-Chung) из университета Миннесота, Ювал Тамир (Yuval Tamir) из UCLA, Артуру Вербнеру (Arthur Werbner) и Бине Рамамурти (Bina Ramamurthy) из SUNY, Буффало, Китти Найлз (Kitty Niles) из университета Миннесота и Маркусу Гонсалвешу (Marcus Goncalves) из Automation Research Corp. Дэвид Ламверт (David Lambert) из Intel просмотрел материал, касающийся процессоров Pentium, и от него я получил множество полезных замечаний и рекомендаций. Отдельные главы рукописи нового издания внимательно просмотрели Джей Кубицкий (Jay Kubicky), Майк Элбуш (Mike Albaugh) из
Atari Games, Том Кэллауэй (Tom Callaway) из Silicon Graphics, Джемс Стайн (James Stine) из университета Лехай, Габреэль До
Их замечания, пожелания и предоставленная информация оказали мне большую помощь.