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

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

Cтраница 2


В этой главе подробно обсуждается уровень архитектуры команд. Он расположен между микроархитектурным уровнем и уровнем операционной системы, как показано на рис. 1.2. Исторически этот уровень развился прежде всех остальных уровней и изначально был единственным.  [16]

Разработка кодов операций является важной частью архитектуры команд. Однако значительное число битов программы используется для того, чтобы определить, откуда нужно брать операнды, а не для того, чтобы узнать, какие операции нужно выполнить. Рассмотрим команду ADD, которая требует спецификации трех операндов: двух источников и одного пункта назначения. Термин операнд обычно используется применительно ко всем трем элементам, хотя пункт назначения - это место, где сохраняется результат. Так или иначе команда ADD должна сообщать, где найти операнды и куда поместить результат. Если адреса памяти 32-битные, то спецификация этой команды требует помимо кода операции еще три 32-битных адреса. Адреса занимают гораздо больше бит, чем коды операции.  [17]

Однако когда программа выполняет команду уровня архитектуры команд, эта команда выполняется непосредственно микроархитектурным уровнем без участия операционной системы.  [18]

В идеале при создании новой машины разработчики архитектуры команд должны консультироваться и с составителями компиляторов, и с теми, кто конструирует аппаратное обеспечение, чтобы выяснить, какими особенностями должен обладать уровень команд. Если составители компилятора требуют наличия какой-то особенности, которую инженеры не могут реализовать, то такая идея не пройдет. Точно так же, если разработчики аппаратного обеспечения хотят ввести в компьютер какую-либо новую особенность, но составители программного обеспечения не знают, как построить программу, чтобы использовать эту особенность, то такой проект никогда не будет воплощен. После долгих обсуждений и моделирования появится уровень команд, оптимизированный для нужных языков программирования, который и будет реализован.  [19]

В главе 5 ( теперь она называется Уровень архитектуры команд) рассказывается о так называемом машинном языке.  [20]

Некоторые команды уровня операционной системы идентичны командам уровня архитектуры команд. Эти команды сразу выполняются микропрограммой, а не операционной системой. Учитывая ответ на предыдущий вопрос, подумайте, зачем это нужно.  [21]

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

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

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

Разработку данной микроархитектуры удобно считать проблемой программирования, при этом каждая команда уровня архитектуры команд - функция, вызываемая основной программой. В данном случае основная программа довольно проста. Она представляет собой бесконечный цикл. Сначала программа определяет, какую функцию нужно выполнить, затем вызывает эту функцию, а затем начинает все снова.  [25]

Чтобы программы на С и C могли работать на машине picojava II, к уровню архитектуры команд было добавлено 115 дополнительных команд. Большинство из них составляют два или более байтов в длину и начинаются с одного из двух зарезервированных кодов JVM ( OxFE и OxFF), которые показывают, что дальше следует расширенная команда.  [26]

27 Тракт данных микроархитектуры, рассматриваемой в этой главе. [27]

Им даны такие названия, поскольку они обычно содержат значения, соответствующие переменным с аналогичными названиями на уровне архитектуры команд. Содержание большинства регистров передается на шину В. Выходной сигнал АЛУ запускает схему сдвига, а затем шину С. Значение из шины С может записываться в один или несколько регистров одновременно. Шину А мы введем позже, а пока представим, что ее нет.  [28]

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

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



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