Архитектура - команда - Большая Энциклопедия Нефти и Газа, статья, страница 1
Мы не левые и не правые, потому что мы валенки Законы Мерфи (еще...)

Архитектура - команда

Cтраница 1


Архитектура команд SPARC достаточно проста, хотя организация регистров была немного усложнена, чтобы сделать вызовы процедур более эффективными. Практика показывает, что организация регистров требует больших усилий и в общем эти усилия не стоят того, но правило совместимости не позволяет избавиться от этого.  [1]

Архитектуры команд различных процессоров могут иметь весьма существенные различия. В качестве примера сравним архитектуры IA-32 и Version 9 SPARC. Первая реализуется в таких процессорах фирмы Intel, как 8086, 8088, Pentium, Celeron и др. Вторая архитектура используется в процессорах SPARC. Набор команд IA-32 характерен для CISC-процессоров, хотя, как уже отмечалось, начиная с семейства процессоров Pentium, внутри ядра команды CISC разбиваются на операции RISC. А это все оборачивается дополнительными аппаратными затратами и в итоге - увеличением площади кристалла. Архитектура IA-32 поддерживает двухадресные команды и небольшой файл регистров. CISC-команды имеют разную длину, большое количество различных форматов, и, следовательно, их сложно декодировать. Способы адресации весьма нерегулярны.  [2]

Архитектура команд процессора UltraSPARC II состоит из 32-битных команд, выровненных в памяти. Каждая из них определяет только одно действие. Типичная команда указывает два регистра, из которых поступают входные операнды, и один выходной регистр. Вместо одного из регистров команда может использовать константу со знаком. При выполнении команды LOAD два регистра ( или один регистр и 13-битная константа) складываются вместе для определения адреса памяти, который нужно считать. Данные оттуда записываются в другой указанный регистр.  [3]

Некоторые архитектуры команд дают возможность копировать отрезки данных размером меньше слова ( они обычно измеряются в байтах), а также сразу несколько слов. Копирование нескольких слов рискованно, особенно если максимальное количество слов достаточно большое, поскольку такая операция может занять много времени и, возможно, ее придется прерывать в середине. Некоторые машины с изменяемой длиной слов содержат команды, которые определяют только адреса источника и места назначения, но не количество данных. Перемещение продолжается до тех пор, пока не появится специальное поле конца данных.  [4]

Уровень архитектуры команд имеет особое значение: он является связующим звеном между программным и аппаратным обеспечением. Конечно, можно было бы сделать так, чтобы аппаратное обеспечение сразу непосредственно выполняло программы, написанные на С, C, FORTRAN 90 или других языках высокого уровня, но это не очень хорошая идея. Преимущество компиляции перед интерпретацией было бы тогда потеряно. Кроме того, из чисто практических соображений компьютеры должны уметь выполнять программы, написанные на разных языках, а не только на одном.  [5]

Уровень архитектуры команд связывает компиляторы и аппаратное обеспечение. Это язык, который понятен и компиляторам, и аппаратному обеспечению. На рис. 5.1 показана взаимосвязь компиляторов, уровня архитектуры команд и аппаратного обеспечения.  [6]

7 Обращение к элементу массива a [ i ]. [7]

В архитектуре команд процессора UltraSPARC все команды используют непосредственную или регистровую адресацию, за исключением тех команд, которые обращаются к памяти. При регистровом способе адресации 5 битов просто сообщают, какой регистр нужно использовать. При непосредственной адресации данные обеспечивает 13-битная константа со знаком. Для арифметических, логических и подобных команд никакие другие способы адресации не используются.  [8]

Во-вторых, хорошая архитектура команд должна обеспечивать ясную цель для оттранслированной программы. Регулярность и полнота вариантов - важные черты, которые не всегда свойственны архитектуре команд. Эти качества важны для компилятора, которому трудно сделать лучший выбор из нескольких возможных, особенно когда некоторые очевидные на первый взгляд варианты не разрешены архитектурой команд. Если говорить кратко, поскольку уровень команд является промежуточным звеном между аппаратным и программным обеспечением, он должен быть удобен и для разработчиков аппаратного обеспечения, и для составителей программного обеспечения.  [9]

Важно, что архитектура команд имеет больше байтов, чем требуется для реализации, доскольку в будущем, скорее всего, понадобится увеличить размер памяти, к которой может обращаться процессор. Одна из самых серьезных проблем при разработке архитектур состоит в том, что архитектура команд ограничивает размер адресуемой памяти. В информатике существует один вопрос, который совершенно невозможно разрешить: никогда не хватает того количества битов, которое имеется в данный момент.  [10]

Набор команд уровня архитектуры команд полностью отличается от набора команд микроархитектурного уровня. И сами операции, и форматы команд на этих двух уровнях различны. Наличие нескольких одинаковых команд случайно.  [11]

12 Сравнение способов адресации. [12]

На практике для эффективной архитектуры команд вовсе не требуется большого количества различных способов адресации. Поскольку практически весь код, написанный на этом уровне, будет порождаться компиляторами, способов адресации должно быть мало, и они должны быть четкими и ясными. Машина должна предлагать либо все возможные варианты, либо только один вариант.  [13]

В настоящее время популярны архитектуры команд типа загрузка / сохранение, где обращение к памяти совершается только в тех случаях, когда нужно поместить операнды в регистры, а все вычисления выполняются с использованием трехад-ресных регистровых команд. Поскольку скорость работы процессора растет гораздо быстрее, чем скорость работы памяти, положение дел с IA-32 со временем все больше ухудшается.  [14]

В главе 5 обсуждается уровень архитектуры команд, который многие называют машинным языком. Здесь мы подробно рассмотрим 3 компьютера, выбранные нами в качестве иллюстративных примеров.  [15]



Страницы:      1    2    3    4