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

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

Cтраница 3


31 Уровень команд - это промежуточное звено между компиляторами и аппаратным обеспечением. [31]

Все это вовсе не значит, что разработка уровня команд не имеет никакого значения. Хорошо разработанный уровень архитектуры команд имеет огромные преимущества перед плохим, особенно в отношении вычислительных возможностей и стоимости. Мы просто хотим сказать, что рынок несколько затрудняет ( хотя и не делает невозможным) устранение старой архитектуры команд и введение новой. Тем не менее иногда появляются новые уровни команд универсального назначения, а на специализированных рынках ( например, на рынке встроенных систем или на рынке мультимедийных процессоров) они возникают гораздо чаще. Следовательно, важно понимать принципы разработки этого уровня.  [32]

Мы просто хотим продемонстрировать важные аспекты архитектуры команд и показать, как эти аспекты меняются от одной архитектуры к другой.  [33]

Над цифровым логическим уровнем находится микроархитектурный уровень. Его задача - интерпретация команд уровня 2 ( уровня архитектуры команд), как показано на рис. 1.2. Строение микроархитектурного уровня зависит от того, каков уровень архитектуры команд, а также от стоимости и предназначения компьютера. В других системах ( например, в системах Pentium II) на этом уровне имеются более сложные команды; выполнение одной такой команды занимает несколько циклов. Чтобы выполнить команду, нужно найти операнды в памяти, считать их и записать полученные результаты обратно в память. Управление уровнем команд со сложными командами отличается от управления уровнем команд с простыми командами, так как в первом случае выполнение одной команды требует определенной последовательности операций.  [34]

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

Это машина со стековой организацией. Хотя для наших дней это необычно, такая машина дает простую архитектуру команд, которую легко компилировать.  [36]

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

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

Основная архитектура команд обеспечивает выполнение программ, написанных для процессоров 8086 и 8088 ( которые имеют одну и ту же архитектуру команд), а в машине даже содержатся элементы 8080 - 8-разрядный процессор, который был популярен в 70 - е годы.  [39]

Создание аппаратного обеспечения, которое выполняет одну команду JVM за раз и при выполнении одной команды обращается к памяти два или три раза, кажется нонсенсом. Но благодаря помещению на микросхему стека из 64 слов и переделыванию целых последовательностей команд в современные трехадресные команды RISC машина picojava II умудряется неплохо работать с очень неэффективной архитектурой команд.  [40]

Над цифровым логическим уровнем находится микроархитектурный уровень. Его задача - интерпретация команд уровня 2 ( уровня архитектуры команд), как показано на рис. 1.2. Строение микроархитектурного уровня зависит от того, каков уровень архитектуры команд, а также от стоимости и предназначения компьютера. В других системах ( например, в системах Pentium II) на этом уровне имеются более сложные команды; выполнение одной такой команды занимает несколько циклов. Чтобы выполнить команду, нужно найти операнды в памяти, считать их и записать полученные результаты обратно в память. Управление уровнем команд со сложными командами отличается от управления уровнем команд с простыми командами, так как в первом случае выполнение одной команды требует определенной последовательности операций.  [41]

Цель кластеризации по управлению - сгруппировать вместе операции в нити ( потоки управления) как можно более длинные, чтобы уменьшить число передач управления между группами операций. О том, что условные ветвления замедляют работу программ и усложняют устройство процессоров, мы уже говорили в § 4.1, когда речь шла о механизме предикации в архитектуре команд IA-64. Поскольку в реальных программах содержатся многочисленные операторы выбора, то было бы желательно минимизировать число передач управления между кластерами, соответствующими последовательным участкам программ.  [42]

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

Она состоит из памяти, которую можно рассматривать либо как массив из 4 294 967 296 байтов ( 4 Гбайт), либо как массив из 1 073 741 824 слов, каждое из которых содержит 4 байта. В отличие от большинства архитектур команд, виртуальная машина Java не совершает обращений к памяти, видимых на уровне команд, но здесь существует несколько неявных адресов, которые составляют основу для указателя. Команды IJVM могут обращаться к памяти только через эти указатели.  [44]

Хотя самые первые компьютеры работали в основном с числами, современные компьютеры часто используются для нечисловых приложений, например, для обработки текстов или управления базой данных. Для этих приложений нужны другие, нечисловые, типы данных. Они часто поддерживаются командами уровня архитектуры команд. Здесь очень важны символы, хотя не каждый компьютер обеспечивает аппаратную поддержку для них. Наиболее распространенными символьными кодами являются ASCII и UNICODE. Они поддерживают 7-битные и 16-битные символы соответственно.  [45]



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