1. Понятие архитектуры ЭВМ. Языки, уровни и виртуальные машины ЭВМ




Название1. Понятие архитектуры ЭВМ. Языки, уровни и виртуальные машины ЭВМ
страница7/13
Дата публикации21.03.2013
Размер1.25 Mb.
ТипДокументы
vbibl.ru > Информатика > Документы
1   2   3   4   5   6   7   8   9   10   ...   13

^ 27. Примеры микроархитектурного уровня: picoJava II
В системе picoJava II двоичные программы JVM могут работать практически без интерпретации. Большинство команд JVM выполняются непосредственно аппаратным обеспечением за один цикл, т.е. около 30 команд JVM являются микропрограммными. Лишь небольшое число команд не может выполняться аппаратным обеспечением picoJava II и вызывает traps (ловушки). Эти команды связаны с такими особенностями JVM как создание и управление сложными программными объектами (поддержка ООП).

Микросхема процессора picoJava II содержит разделенную кэш-память первого уровня. Кэш-память команд, как и данных, факультативна. Кэш-память команд является памятью прямого отображения. Кэш-память данных - это двухвходовая ассоциативная кэш-память. Частью picoJava П также является факультативный блок с плавающей точкой. Кэш-память команд передает в блок выборки, декодирования и свертывания по 8 байтов за раз. Этот блок, в свою очередь, связан с контроллером выполнения и с основным трактом данных. Ширина тракта данных составляет 32 бита для целочисленных операций. Этот тракт данных может также оперировать числами с плавающей точкой с одинарной и двойной точностью. Интересной частью picoJava II является регистровый файл, состоящий из 64-х 32-битных регистров. В этих регистрах могут содержаться верхние 64 слова стека JVM, что значительно повышает скорость доступа к словам в стеке. Как известно, JVM имеет стек операндов и стек локальных переменных. Оба они могут находиться в регистровом файле. Доступ к регистровому файлу происходит без задержек, тогда как доступ к кэш-памяти данных требует дополнительного цикла. Если, например, стек операндов состоит из двух слов, то в регистровом файле могут находиться до 62 слов локальных переменных. При помещении дополнительного слова в стек или его выталкивании может возникать дриблинг. Если в стек, например, помещается 63-я локальная переменная, то самая глубокая из них выгружается обратно в память. Для облегчения дриблинга регистровый файл действует как кольцевой буфер с указателями на самое нижнее и на самое верхнее слова. Дриблинг происходит автоматически всякий раз, когда регистровый файл пере­полняется или пустеет.

Конвейер системы picoJava II состоит из шести стадий. На первой стадии из кэш-памяти команд в буфер команд выбираются команды по 8 байтов за одно обращение. Емкость буфера команд составляет 16 байтов. На следующей стадии команды декодируются и определенным образом объединяются. На выходе из блока декодирования получается последовательность микроопераций, каждая из которых содержит код операции и три номера регистров (двух входных и одного выходного). PicoJava II сходна с Pentium II: обе получают поток CISC-команд, который преобразуется в последовательность RISC-микроопераций. В отличие от Pentium II, машина picoJava II не является суперскалярной, и микрооперации выполняются и завершаются в том порядке, в котором они запускаются. В случае промаха кэш-памяти процессор простаивает. На третьей стадии операнды выбираются из стека (фактически из регистрового файла). Четвертая стадия - это блок выполнения команд. На пятой стадии в случае необходимости производится обращение к кэш-памяти данных. Наконец, на шестой стадии результаты записываются обратно в стек. (на обороте…)










В современных компьютерах применяется прогнозирование условных переходов. ^ Динамическое прогнозирование ветвления производится во время выполнения программы. Для этого часто используется специальная таблица, в которую помещается информация о срабатывании условных переходов. Прогноз состоит в том, что программа пойдет тем же путем, которым пошла в предыдущий раз. Статическое прогнозирование ветвления осуществляется компилятором. В частности, только он точно знает об используемых в программе управляющих структурах (в частности, циклах) и может передать эту информацию в программу. Иногда для этой цели используется архитектурная поддержка.

^ Выполнение с изменением последовательности и подмена регистров

Команды программы часто находятся во взаимозависимости. Чтобы достичь лучшей производительности, некоторые процессоры пропускают взаимозависимые команды и переходят к выполнению независимых команд. Для этого требуется исследование видов взаимозависимости команд:

  • ^ RAW (Read After Write) – операнд очередной команды является результатом предыдущей команды;

  • WAR (Write After Read) – предыдущая команда должна завершить считывание регистра до того как следующая его перезапишет;

  • ^ WAW (Write After Write) – очередная команда должна записать результат в регистр после того как предыдущая команда запишет этот же регистр.

Взаимозависимоть команд можно уменьшить искусственными методами. Одним из них является подмена регистров. Современные процессоры содержат десятки скрытых регистров, используемых для записи промежуточных результатов.

^ Спекулятивное выполнение

Компьютерные программы можно разбивать на базовые элементы, каждый из которых представляет собой линейную последовательность команд (цепочку) с точкой входа в начале и точкой выхода в конце. Базовые элементы связываются между собой операторами управления (ветвления, циклы). Рассмотренная в предыдущем пункте технология работает в пределах одного базового элемента. Однако, большинство базовых элементов коротки и в них недостаточно возможностей для параллелизма. Поэтому делаются попытки перестановок базовых элементов, приводящие к эквивалентным, но более эффективным, программам. С точки зрения параллелизма выгодно передвигать потенциально медленные блоки операций на более ранние стадии выполнения. Такое перемещение называется подъемом. Оно приводит к выполнению некоторых команд до того как будет известно, что их выполнение понадобится. Этот процесс называется спекулятивным выполнением. Эта технология ставит несколько интересных проблем. В частности, важно, чтобы спекулятивные команды не имели неотменяемых окончательных результатов. Это часто решается (хотя и довольно сложно) использованием подмены регистров.



^ Направления разработки микроархитектурного уровня

При разработке микроархитектурного уровня аналогично другим уровням существует альтернатива между быстродействием и стоимостью. Существуют 3 основных пути увеличения скорости выполнения операций:

  • сокращение количества циклов, необходимых для выполнения команды;

  • упрощение организации машины с целью сокращения цикла;

  • одновременное выполнение нескольких операций.

Количество циклов, необходимых для выполнения набора операций, называется длиной пути. Сокращения длины пути можно добиться следующими способами:

  • слияние цикла интерпретатора (“основной программы”) с микропрограммой (в конце каждой последовательности микрокоманд - “функции” происходит переход к следующей последовательности, без возврата в “основную программу”);

  • использование дополнительной входной шины (каждому из операндов - своя шина);

  • упреждающая выборка команд (выборку команд осуществляет блок, реализованный в виде конечного автомата и независимый от блока обработки команд);

  • микроархитектурный конвейер (использование наряду с блоком выборки других дополнительных блоков - декодирования, формирования очереди, …).





^ Микросхемы ввода-вывода:

Именно через эти микросхемы компьютер обменивается информацией с внешними устройствами. К наиболее распространенным видам этих микросхем относятся следующие: UART, USART, контроллеры CRT (CRT - электронно-лучевая трубка), дисковые контроллеры и РIO. UART (Universal Asynchronous Receiver Transmitter - универсальный асинхронный приемопередатчик) - это микросхема, которая может считывать байт из шины данных и передавать этот байт по битам на линию последовательной передачи к терминалу или получать данные от терминала. Микросхема может обеспечивать проверку на четность или на нечетность. Микросхема USART (Universal Synchronous Asynchronous Receiver Transmitter - универ­сальный синхронно-асинхронный приемопередатчик) может осуществлять синхронную передачу, используя ряд протоколов. Она также выполняет все функции UART. Микросхема PIO (Parallel Input/Output - параллельный ввод-вывод) содержит 24 линии ввода-вывода и может сопрягаться с устройствами широкого диапазона. Программа центрального процессора может записать 0 или 1 на любую линию или считать входное состояние любой линии, обеспечивая высокую гибкость. Центральный процессор может конфигурировать микросхему, загружая регистры состояния. В простейшем режиме данную микросхему можно представить в виде трех 8-битных портов: А, В и С. С каждым портом связан 8-битный регистр. Чтобы установить линии, центральный процессор записывает 8-битное число в соответствующий регистр, и это 8-битное число появляется на выходных линиях и остается там до тех пор, пока регистр не будет перезаписан. Чтобы использовать порт для входа, центральный процессор считывает соответствующий регистр. Помимо 24 выводов для трех портов микросхема 8255А содержит восемь линий, непосредственно связанных с шиной данных, линию выбора элемента памяти, линии чтения и записи, две адресные линии и линию для переустановки микросхемы. Две адресные линии выбирают один из четырех внутренних регистров, три из которых соответствуют портам А, В и С. Четвертый регистр - регистр состояния. Он определяет, какие порты используются для входа, а какие для выхода, а также выполняет некоторые другие функции. Обычно две адресные линии соединяются с двумя младшими битами адресной шины.



Блок декодирования умеет свертывать команды. Т. е., вместо нескольких CISC-команд JVM, для которых может потребоваться несколько обращений к памяти, блок декодирования распознает эту ситуацию и запускает лишь одну RISC-микрооперацию. Процесс свертыва­ния происходит только тогда, когда требуемые локальные переменные находятся достаточно близко от вершины стека, то есть содержатся в регистровом файле. Тем не менее свертывание команд происходит довольно часто.

В машине picoJava II используется примитивное прогнозирование ветвлений: она всегда предсказывает, что перехода не будет. Это объясняется намерением сохранить микросхему простой и дешевой. Однако благодаря более короткому конвейеру проигрыш при неправильном предсказании оказывается менее существенным



Система UltraSPARC II содержит конвейер с 9 стадиями. На стадии выборки считываются команды из кэш-памяти команд. На стадии декодирования перед копированием команд в очередь к каждой команде прибавляются дополнительные биты. Эти биты уско­ряют последующую обработку. Стадия группировки соответствует рассмотренной выше схеме группировки. С этого момента стадии конвейера для операций с целыми числами и для опе­раций с плавающей точкой разделяются. На стадии 4 в блоке целых чисел большинство команд выполняется за один цикл. Блок с плавающей точкой содержит отдельные 4 стадии. Первая нужна для доступа к регистрам с плавающей точкой. Следующие три выполняют команды. Еще одна стадия, общая для обоих блоков, нужна для разрешения исключительных ситуаций. Наконец, на последней стадии результаты записываются обратно в регистры. Если команда прошла эту стадию, она завершена.


^ Блок отправки/выполнения устанавливает очередность, выполняет микрооперации, разрешает взаимозависимости и конфликты ресурсов. Он состоит из резервации (очередь из 20 элементов для микроопераций) и функциональных блоков, которые связаны с пятью портами. Поэтому за один цикл можно выпустить для выполнения пять микроопераций. Микрооперации могут запускаться не по порядку, но блок возврата должен завершать их выполнение по порядку. Когда операция готова для выполнения, она может начаться, даже если другие операции, которые поступили в буфер ROB раньше нее, еще не готовы. Когда микрооперация выполнена, ее результат переходит обратно в резервацию, а затем в буфер ROB, и там ожидает возврата.

^ Блок возврата отвечает за отправку результатов в нужные места - в соответствующий регистр или в другие устройства блока отправки/выполнения, которым требуется данное значение. Система Pentium II поддерживает процедуру спекулятивного выполнения, по­этому некоторые команды могут выполняться напрасно, и их результаты никуда не нужно записывать. Именно поэтому поддерживается способность возвращаться в предыдущее состояние. Все это контролирует блок возврата. Только результаты “официально” выполненных команд могут возвращаться в регистры, причем это
1   2   3   4   5   6   7   8   9   10   ...   13

Похожие:

1. Понятие архитектуры ЭВМ. Языки, уровни и виртуальные машины ЭВМ iconПараллельная обработка данных
Машины (эвм) разделяются на аналоговые(непрерывные) и дискретные машины, реализующие цифровые вычисления. Так как для обозначения...

1. Понятие архитектуры ЭВМ. Языки, уровни и виртуальные машины ЭВМ iconФизические основы элементной базы современных ЭВМ
Поколения ЭВМ и их элементная база. Роль полупроводниковых материалов в современных ЭВМ. Преимущества интегральных схем перед дискретными...

1. Понятие архитектуры ЭВМ. Языки, уровни и виртуальные машины ЭВМ iconАрхитектура ЭВМ связана с качествами машины, к-е влияют на ее взаимодействие...
Это обусловлено развитием техники. Зу ЭВМ имеет несколько уровней: 1 внутреннее зу – содержит информацию, обрабатываемую в нем в...

1. Понятие архитектуры ЭВМ. Языки, уровни и виртуальные машины ЭВМ iconМетодические указания по прохождению преддипломной практики и дипломному...
Методические указания к дипломному проектированию составлены и доц каф ЭВМ лебеденко Ю. И. и обсуждены на заседании кафедры ЭВМ факультета...

1. Понятие архитектуры ЭВМ. Языки, уровни и виртуальные машины ЭВМ iconКафедра «Электронных вычислительных машин» методические указания...
Методические указания к дипломному проектированию составлены и доц каф ЭВМ лебеденко Ю. И. и обсуждены на заседании кафедры ЭВМ факультета...

1. Понятие архитектуры ЭВМ. Языки, уровни и виртуальные машины ЭВМ iconПлан лекции: Виды и операции технического обслуживания Организация эксплуатации ЭВМ
Эвм силами и средствами персонала ЭВМ. При этом виде обслуживания предполагается проведение регламентных работ, контроль технического...

1. Понятие архитектуры ЭВМ. Языки, уровни и виртуальные машины ЭВМ iconПлан лекции: Задачи, решаемые вычислительными центрами Структура...
Создание вычислительных центров является способом повышения эффективности работы ЭВМ. Вычислительный центр объединяет технику различных...

1. Понятие архитектуры ЭВМ. Языки, уровни и виртуальные машины ЭВМ iconЛабораторная работа №1 по дисциплине «эксплуатацияэвми систем»
...

1. Понятие архитектуры ЭВМ. Языки, уровни и виртуальные машины ЭВМ iconКонтроль работы ЭВМ
Процесс определения технического состояния и поддержания работы ЭВМ включает 4 этапа

1. Понятие архитектуры ЭВМ. Языки, уровни и виртуальные машины ЭВМ iconУрокам тема №1: этапы решения задач на ЭВМ. Алгоритмизация. Основные понятия. Блок-схемы
Программно дидактическое обеспечение: ЭВМ типа ibm. Turbo-Pascal Обучающие программы. Тесты

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
vbibl.ru
Главная страница