Введение
Краткий обзор содержания книги
В ЭТОЙ КНИГЕ мы разрабатываем детальный проект конвейерного RISC процессора с отсроченным ветвлением (delayed branch), пересылкой (forwarding), аппаратной взаимной блокировкой (hardware interlock), точными маскируемыми вложенными прерываниями (precise maskable nested interrupts), кэшем и полностью IEEE- совместимым сопроцессором для операций с плавающей точкой.
Образованный читатель должен немедленно спросить "И что? Такие конструкции существовали в промышленности несколько лет назад.. В чем смысл разбора всех подробностей?"
Смысл вот в чем: законченная конструкция, представленная здесь - простая и модульная . Конечно, достаточно простая для представления и объяснения студентам. Это открывает путь для обсуждения в этом тексте и в аудитории следующих тем:
• Начало очевидно: мы определяем стоимость и времена циклов конструкций. Всякий раз, когда представляется новая методика, мы можем оценить ее эффективность и побочные эффекты по счетчику циклов, аппаратной стоимости и времени цикла всей машины. Мы можем изучать взаимоотношения между этими реальными мерками.
• поскольку дизайн модульный, мы можем дать для каждого модуля точную спецификацию того, что модуль, как предполагается, делает.
• После конструирования модулей мы даем полное объяснение, почему конструкция выполняет спецификацию. Наиболее быстрый путь к
2 |
получению таких объяснений – строгие математические доказательства1 правильности.
• Из известных модулей, чье поведение хорошо определено, мы иерархически создаем новые модули, и мы покажем, что новые сложные модули, созданные таким образом, выполняют их спецификации, обращаясь только к спецификациям старых и к конструкциям новых модулей. Мы будем следовать этим путем до конструирования всей машины, где мы покажем, как машина аппаратными средствами интерпретирует систему команд и как точным способом обслуживаются прерывания.
Поскольку на всех этапах конструирования мы используем модули с хорошо определенным поведением, процесс объединения их всех вместе полностью точно описан в этом тексте.
Как использовать этот текст
Мы видим три пути использования этой книги:
• Сперва мы начнем с очевидного: можно попробовать изучить весь материал, читая только одну книгу. Поскольку книга - полностью включает в себя все эти работы. Понимание основ программирования, знание математики средней школы и некоторого знакомства с доказательствами индукцией достаточно, чтобы понять и проверить (или отвергнуть!) каждое утверждение в этой книге.
• Материал этой книги может быть охвачен в течение двух семестров. Для класса "компьютерные структуры" сопровождаемого классом "архитектура вычислительной системы 1" материал несколько тяжеловат. Но наш опыт показывает, что студенты классов "архитектура вычислительной системы 1 и 2 " хорошо работают со всем материалом. Многие расширенные возможности, а именно суперскалярные процессоры, неупорядоченное выполнение, страничная организация (paging) и параллельная обработка, которые не охвачены в этой книге, могут быть очень хорошо рассмотрены на семинарах параллельно с классом "архитектура вычислительной системы 2". Студенты, которые работали с первой частью этой книги, обычно представляют и обсуждают с значительной зрелостью расширенный материал на семинарах.
Разделы 2.1 - 2.5, глава 7 и глава 8 представляют отдельную конструкцию путей данных (data paths) IEEE-совместимого сопроцессора для операций с плавающей точкой. Этот материал может быть охвачен в течение одного семестра в классе по компьютерной арифметике.
1 нужно ли доверять математическим доказательствам правильности - волнующая проблема, к которой мы кратко обратимся.
• книга может использоваться как дополнительное чтение в классах более традиционной архитектуры или как справочник для профессионалов.
Верить или не верить в доказательства: Конструкторы компьютеров не имеют тенденции к подробным доказательствам. Как будто конструкторы компьютеров не верят в математику. Даже математические формулы редко встречаются в большинстве учебников по архитектуре вычислительных систем, в отличие от множества других технических дисциплин. Причины этого просты:
• Доказательства правильности - невероятно склонны к ошибкам. Когда они применяются для проверки компьютерных систем, очень трудно отличить правильное доказательство от доказательства, которое является почти, но не совсем верным. Доказательства в этой книге не исключение.
• Пересылка аппаратных средств, про которые думают, что они правильные и которые оборачиваются позже дефектными, может стоить для изготовителя компьютеров МНОГО денег.
Твердо сохраняя в памяти вышеупомянутые ограничения доказательств правильности, мы, однако, видим три очень сильных довода в пользу использования математики в книге о компьютерной архитектуре.
• Основная причина - скорость. Если вкладывать капитал в развитие соответствующего математического формализма (использование формул), то можно выражать мысли гораздо яснее и короче, чем без него. Это, в свою очередь, позволяет быстрее развиваться.
Вспомните известную формулу: квадрат суммы первого и второго числа равняется сумме квадрата первого числа, удвоенного произведения первого числа на второе и квадрата второго числа. Строка
(a + b)2 = a2+2ab + b2
утверждает то же самое, но намного понятнее. Изучение формализма алгебры - инвестиционное, оно происходит в средней школе и требует времени. Но оно окупится, если время, сохраненное в течение вычислений с формализмом, превышает потраченное на его изучение время.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.