автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.15, диссертация на тему:Исследование и разработка конвейера команд процессора с архитектурой явного использования параллелизма команд

кандидата технических наук
Столярский, Евгений Зиновьевич
город
Москва
год
2001
специальность ВАК РФ
05.13.15
Диссертация по информатике, вычислительной технике и управлению на тему «Исследование и разработка конвейера команд процессора с архитектурой явного использования параллелизма команд»

Оглавление автор диссертации — кандидата технических наук Столярский, Евгений Зиновьевич

ВВЕДЕНИЕ

1. ПРОИЗВОДИТЕЛЬНОСТЬ УСТРОЙСТВ ПОДГОТОВКИ КОДА.

1.1 ПРОБЛЕМЫ ПОВЫШЕНИЯ ЭФФЕКТИВНОСТИ ПОДСИСТЕМ ПАМЯТИ

1.2. ФАКТОРЫ, ВЛИЯЮЩИЕ НА ПРОИЗВОДИТЕЛЬНОСТЬ

1.2.1. Препроцессор предварительной обработки.

1.2.2. Пропускная способность

1.2.3. Реакция на переход.

1.2.4. Условное исполнение.

1.2.5. Технология.

1.3. СУЩЕСТВУЮЩИЕ РЕАЛИЗАЦИИ УСТРОЙСТВ ПОДГОТОВКИ КОДА.

1.3.1. Структура памяти.

1.3.2. Эффективность и методы оценки производительности кэш-памяти

1.3.3. Типы кэш-памяти. .;.

1.3.4. Предсказание направления ветвления.

1.3.4.1. Затраты на промах по предсказанию.

1.3.4.2. Динамическое предсказание.

1.3.4.3. Статическое предсказание.

1.4. ПОСТАНОВКА ЗАДАЧИ.

1.5. ВЫВОДЫ.

2. ВЫПОЛНЕНИЕ ПЕРЕХОДОВ В ВЫСОКОПАРАЛЛЕЛЬНЫХ ПРОЦЕССОРАХ

2.1. ЕР1С-ПРОЦЕССОРЫ.

2.2. РАСЩЕПЛЕНИЕ КОМАНДЫ ПЕРЕХОДА НА ДВЕ ЧАСТИ.

2.2.1. Команды подготовки перехода.

2.2.2. Конвейер с подготовкой адреса перехода.

2.2.3. Конвейер с просмотром адреса перехода.

2.2.4. Конвейер с чтением кода ветвей перехода.

2.2.5. Конвейер с дешифрацией команд ветвей перехода.

2.3. РЕГИСТРЫ КОДА.

2.3.1. Размер регистра кода.:.

2.3.2. Чтение кода.

2.3.3. Количество регистров кода.

2.4. ВЫПОЛНЕНИЕ СПЕКУЛЯТИВНЫХ ВЫЧИСЛЕНИЙ.

2.5. ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИ, ИСТОРИЯ И ОТКАТ КОНВЕЙЕРА.

2.6. СТРУКТУРА КЭШ-ПАМЯТИ БОЛЬШОГО ОБЪЕМА.

2.6.1. Анализ возможных вариантов построения буфера команд.

2.7. ВЫВОДЫ.

3. РЕАЛИЗАЦИЯ БУФЕРА КОМАНД ЕР1С-ПРОЦЕССОРА "ЭЛЬБРУС".

3.1. СТРУКТУРА ПРОЦЕССОРА "ЭЛЬБРУС".

3.1.1. Временные диаграммы.

3.1.2. Требования к буферу команд процессора "Эльбрус".

3.1.3. Структура устр ойства управления.

3.1.4. Структура буфера команд.

3.2. МОДЕЛИРОВАНИЕ БУФЕРА КОМАНД £Р/С-ПРОЦЕССОРА.

3.2.1. Методология.

3.2.2. Полученные результаты.

3.3. РЕАЛИЗАЦИЯ БУФЕРА КОМАНД.

3.3.1. Факторы, влияющие на организацию буфер команд.

3.3.2. Реализованные механизмы.

3.3.3. Особенности реализации.

3.4. ВЕРИФИКАЦИЯ ПРОЕКТА.

3.5. ВЫВОДЫ.

Введение 2001 год, диссертация по информатике, вычислительной технике и управлению, Столярский, Евгений Зиновьевич

Актуальность работы

Для поддержания полной загруженности исполнительных устройств в процессорах необходимо обеспечить их непрерывное наполнение кодом. Отметим, что современные процессоры способны выполнять до восьми команд за такт, а по оценкам специалистов, к 2005 году технология позволит создавать процессоры, способные выполнять по шестнадцать команд за такт. Более того, с повышением степени интеграции кристаллов и доли спекулятивных вычислений это число будет расти и, в дальнейшем, недостаточная пропускная способность устройств подготовки кода может стать существенным фактором, ограничивающим производительность процессора. Таким образом, уже сегодня необходимо предлагать механизмы и алгоритмы, направленные на значительное повышение объема подготавливаемого кода.

Одной из составляющих частей процессорной архитектуры, отвечающей за подготовку кода, исполняемого процессором, является буфер команд. Проблематика, связанная с проектированием буфера команд, включает в себя два основных вопроса.

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

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

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

Статическое планирование вычислений делает возможным эффективное использование спекулятивных вычислений. Поскольку заранее известно расписание исполнения всех операций, время их запуска и получения результата, использование спекулятивных вычисления позволяет эффективно использовать ресурсы машины. Формируемые широкие команды содержат код как основной, так и спекулятивно исполняемой ветви. Спекулятивные вычисления дают возможность сократить количество переходов по коду, что позволяет избежать снижения производительности.

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

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

Цель исследования

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

1. разработка методов обеспечения конвейера процессора достаточным количеством кода, необходимым для его непрерывной загрузки;

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

3. в рамках ОКР "Эльбрус-ЗМ (11)" проекта микропроцессора "Эльбрус" разработка варианта реализации аппаратуры устройства подготовки кода, удовлетворяющего технологическим требованиям и требованиям, выдвинутым архитектурой проектируемого процессора.

Научная новизна

Научная новизна диссертационной работы заключается:

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

• в разработке аппаратной реализации этого алгоритма для процессора с явным использованием параллелизма команд проекта "Эльбрус";

• в разработке эффективного способа построения кэш-памяти буфера команд, учитывающего современный уровень технологии и особенности процессора "Эльбрус".

Результаты работы, выносимые на защиту

На защиту выносятся следующие основные результаты, полученные автором в процессе проведения исследования:

• алгоритмы подготовки кода для архитектур с широким командным словом;

• несколько вариантов аппаратной реализации этих алгоритмов, различающихся по степени сложности;

• реализация структуры кэш-памяти буфера команд для процессоров с архитектурой широкого командного слова, использующих предложенный вариант механизма подготовки кода.

Практическая ценность

Диссертационная работа содержит обобщение опыта работы над проектами микропроцессоров "Narch " и "Эльбрус" с архитектурой явного использования параллелизма команд. В работе предлагаются новые способы подготовки кода, позволяющие реализовать механизмы переключения конвейера на новое направление с минимальными задержками.

В процессе проведения исследований автором получены следующие практические результаты:

1. Разработана логическая модель устройства подготовки кода, интегрированного в архитектуру процессора проекта "Эльбрус".

2. Разработана физическая реализация кэш-памяти буфера команд и механизмов предварительной подготовки кода по предложенным в диссертационной работе алгоритмам, учитывающая современные технологические требования.

3. Показана возможность применения предложенного алгоритма в других процессорах, использующих архитектуру широкого командного слова.

Результаты диссертационной работы использованы при разработке буфера команд в рамках ОКР "Эльбрус-ЗМ (11)"процессора "Эльбрус", являющегося развитием методологии и идей предшествующих проектов "Эльбрус" [1].

Апробация

Основные положения и результаты диссертационной работы докладывались на научной конференции, посвященной 70-летию со дня рождения академика В.А. Мельникова (Москва, 19 февраля 1999 г.), Международных научных конференциях: XXV Гагаринские чтения (Москва, 6-10 апреля 1999 г.), XXVI Гагаринские чтения (Москва, 11-13 апреля 2000 г.), XXVII Гагаринские чтения (Москва, 3-6 апреля 2001 г.), а также докладывались и обсуждались на семинарах и научно-технических совещаниях НИИ "Вычислительные технологии" и Московского центра •ХРЛЛС-технологий.

Результаты работы использованы в архитектуре процессора "Эльбрус". Публикации

По теме диссертационной работы опубликованы следующие работы

Статьи

1. Волин B.C., Рудометов В.В., Столярский Е.З. Организация подкачки кода в VLIW-процессоре // Информационные технологии и вычислительные системы, 1999, № 1. - С. 58-64.

2. Столярский Е.З. Способы построения эффективной кэш-памяти //Компьютеры в учебном процессе, 2000, № 5. - С. 89-100.

3. Столярский Е.З., Шилов В.В. Организация и работа кэш-памяти // Информационные технологии, 2000, № 7. - С. 2-8.

4. Столярский Е.З. Способы сокращения задержек переключения конвейера процессора по переходу // Компьютерная хроника, 2000, №11. - С. 77-90.

Тезисы докладов

1. Волин B.C., Столярский Е.З. Организация подкачки кода в VLIW-процессоре Эльбрус 2000 // Научная конференция, посвященная 70-летию со дня рождения академика В.А. Мельникова, 19-22 февраля 1999 г. Сборник докладов. - М.: Научный фонд "Первая Исследовательская лаборатория им. ак. В. А. Мельникова", 1999. - С. 249-253.

2. Столярский Е.З. Метод выполнения быстрого переключения // XXV Гагарин-ские чтения. Тезисы докладов Международной молодежной научной конференции. Москва, 6-10 апреля 1999 г., т. 1. -М.: ЛАТМЭС, 1999. - С. 384-385.

3. Столярский Е.З. Способы сокращения задержек при переходах // XXVI Гага-ринские чтения. Тезисы докладов Международной молодежной научной конференции. Москва, 11-13 апреля 2000 г., т. 1. -М.: ЛАТМЭС, 2000. - С. 484-485.

4. Столярский Е.З. Современные способы реализации кэш-памяти // XXVII Гага-ринские чтения. Тезисы докладов Международной молодежной научной конференции. Москва, 3-6 апреля 2001 г., т. 5. -М.: ЛАТМЭС, 2001. - С. 41-42.

Структура и объем работы

Работа включает введение, три главы и заключение.

В первой главе рассматриваются проблемы подготовки кода и выполнения переходов. Дается анализ существующих алгоритмов подготовки кода и их аппаратной реализации в процессорах с высокой степенью параллельных вычислений. Анализируется влияние механизмов предсказания переходов и организации кэш-памяти на производительность процессора.

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

• пропускная способность кэш-памяти;

• реакция конвейера процессора на переход по коду;

• условное исполнение кода, позволяющее частично сократить количество переходов по коду;

• физическая реализация кэш-памяти, имеющая свои особенности при обеспечении кодом процессора с широким командным словом.

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

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

Анализируются структура и основные особенности, достоинства и недостатки гибридных кэш-памятей:

• Miss Cache (МС) - кэш промахов;

• Victim Cache (VC) - кэш замещений;

• Annex Cache (AC) - дополнительный кэш;

• Half-and-Half Cache (HHQ - "кэш 50x50";

• Branche cache (ВС) - кэш переходов.

Помимо этого, рассматриваются кэш трасс (trace cache), многотактный, конвейерный и DRAM кэш.

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

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

Во второй главе рассматриваются методы подготовки кода и выполнения переходов применительно к £Р/С-архитектуре и предлагается новый механизм подготовки кода. Приводятся разные варианты его реализации, различающиеся спектром предварительных работ. Предлагаются варианты физической реализации кэш-памяти буфера команд.

В разделе 2.1 рассматриваются возможности применения £Р/С-архитектуры для решения поставленной задачи.

Показано, что принципиально новым подходом к решению сформулированных выше проблем является реализация процессора на основе £Р/С-архитектуры. Это положительно сказывается:

1) на аппаратуре (процессор освобождается от работы по определению возможных параллельных вычислений);

2) на планировании загрузки ресурсов процессора (широкие команды позволяют эффективнее планировать параллельные вычисления);

3) на эффективном использовании спекулятивных вычислений (с использованием широкой команды).

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

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

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

В разделе 2.5 описываются случаи возникновения особых ситуаций, возникающие в результате применения предложенного механизма подготовки кода. Фактически выполнение подготовки кода в буфере команд осуществляется заблаговременно и необходимы режимы, которые будут восстанавливать истинное значение истории подготовки кода для отработки возникших исключительных ситуаций. Здесь же предлагаются механизмы восстановления истории.

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

В третьей главе рассматриваются вопросы реализации предложенного алгоритма для проекта микропроцессора "Эльбрус". Приводятся результаты моделирования, полученные для проекта микропроцессора "Narch", в котором так же использован механизм предварительной подготовки кода для предполагаемого направления ветвления, на основе которых производится выбор параметров разрабатываемого буфера команд. А также приводится описание некоторых наиболее значимых, с точки зрения производительности, алгоритмов работы разработанного буфера команд.

В разделе 3.1 приводится описание архитектуры процессора "Эльбрус", распределение основных потоков информации и пропускной способности канала с оперативной памятью. Приводится описание конвейера процессора, и определяются требования к буферу команд, выдвигаемые со стороны процессора проекта "Эльбрус". Детальному рассмотрению подвергаются следующие параметры буфера команд:

• объем памяти кода. Объем кэш-памяти непосредственно влияет на общую производительность процессора. В результате исследований выбран объем памяти, равный 64 Кбайт;

• разрядность регистра кода. С учетом максимальной длины команды и требуемого запаса по коду на три такта выбран размер регистра кода, равный 2048 бит;

• разрядность памяти кода. Для реализации описанного в разделе 2.3 механизма чтения кода из кэш-памяти без применения коммутаторов выбрана разрядность кэш-памяти, равная ширине регистра кода - 2048 бит;

• структура памяти кода. Вся память представляется в виде четырех модулей разрядностью по 512 бит и количеством строк, равным 256;

• количество портов памяти кода - решено использовать однопортовые модули памяти;

• количество портов памяти тегов. За счет усложнения управления применяется кэш-память с тремя универсальными портами;

• количество регистров подготовки. Решено реализовать вариант с количеством регистров подготовки, равным трем;

• электронные требования.

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

В разделе 3.3 описаны особенности реализации спроектированного буфера команд. Среди них можно отметить:

• обслуживание нескольких потоков команд.

• асинхронная работа разных механизмов.

• тесное взаимодействие с устройством управления.

Реализованы механизмы: работы с кэш-памятью по коротким адресам, защиты памяти, поддержки когерентности для многопроцессорного варианта реализации, подготовки асинхронного кода.

В заключении приводятся выводы по диссертационной работе.

Заключение диссертация на тему "Исследование и разработка конвейера команд процессора с архитектурой явного использования параллелизма команд"

3.5. ВЫВОДЫ

1. Применение EPIC-архитектурьi позволяет в полной мере использовать спекулятивные вычисления, применить алгоритмы предварительной подготовки кода и его дешифрации, что позволяет реализовать быстрые переключения на новую ветвь кода без каких-либо потерь производительности.

2. В результате исследований определены требования к структуре буфера команд, предъявляемые проектируемым процессором проекта "Эльбрус", на основании которых разработана модель буфера команд.

3. Результаты проведенного моделирования показывают состоятельность предложенных алгоритмов подготовки кода, устанавливают зависимость производительности процессора от организации управления алгоритмом и определяют оптимальные условия работы буфера команд. Проведено исследование влияния на производительности" CPU следующих параметров:

• количество предварительно подкачиваемого кода по прямой ветви. Результаты моделирования показали, что существует оптимальная величина объема подготавливаемого кода, меньше которой падение производительности обусловлено остановками конвейера из-за малого запаса кода впрок, а при большем количестве кода - из-за излишней нагрузке на каналы с внешней памятью;

• количество предварительно подкачиваемого кода при подготовке передачи управления. Как и в первом случае существует оптимальная величина подготавливаемого кода; В результате моделирования было выявлено важное свойство -зависимость производительности от объема предварительно подготавливаемого кода и установлено, что существует характерный максимум производительности, определенный свойствами выбранной архитектуры;

• размер сектора. Сектор - единица ассоциативности ITAG. Результаты моделирования демонстрируют зависимость производительности процессора от размера сектора. Наиболее заметное снижение производительности при росте размера сектора отмечается для SPEC92int с высокой частотой ветвлений;

• размер блока. Блок - единица подкачки кода из памяти. Определена зависимость производительности от размера блока подкачки кода из оперативной памяти.

Снижение производительности для малого размера блока можно объяснить недостаточным объемом подготовки кода.

4. Особенность реализации спроектированного буфера команд заключается:

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

• в применении асинхронной работы разных механизмов, из-за ограничения на количество ресурсов оборудования;

• в тесном взаимодействии с устройством управления.

5. Реализованы механизмы: работы с кэш-памятью по коротким адресам, защиты памяти, поддержки когерентности для многопроцессорного варианта реализации, подготовки асинхронного кода.

ЗАКЛЮЧЕНИЕ

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

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

2. В рамках работы по проекту ОКР "Эльбрус-ЗМ (11)" микропроцессор "Эльбрус" проведено исследование проблем выполнения перехода на предполагаемое направление ветвления в процессорах с EPIC-архитектурой и широким командным словом. Проведенный анализ показал:

• Применение ЕР/С-архитектуры позволяет упростить аппаратуру управления процессором, (благодаря отказу от динамического переопределения потока команд), что значительно сокращает конвейер дешифрации и уменьшает потери производительности процессора в случае выполнения перехода.

• Использование оптимизирующего компилятора для формирования широких команд позволяет более рационально использовать ресурсы процессора, что также положительно сказывается на производительности.

• Использование широких команд позволяет реализовать предложенный автором механизм подготовки и предварительной дешифрации кода, применение которого позволяет реализовывать переключение на код предполагаемого направления ветвления без задержек и потери производительности.

• Достоинством ЕР/С-архитектуры является возможность планирования спекулятивных вычислений, что положительно сказывается как на производительности, так и на использовании ресурсов машины.

3. В результате исследований предложены новые механизмы подготовки кода для аппаратуры разной степени сложности.

4. В результате исследований определены требования на структуру буфера команд со стороны проектируемого процессора проекта "Эльбрус", на основании которых разработана модель аппаратуры буфера команд.

5. На основании разработанных моделей предложен вариант аппаратуры буфера команд для процессора "Эльбрус", который имеет следующие особенности:

• В устройстве подготовки кода реализован вариант конвейера с дешифрацией ветвей перехода, что предполагает чтение кода по предполагаемому направлению ветвления, реализацию регистров кода и дешифрацию подготовленной команды.

• 'Позволяет производить переключения на подготовленную ветвь кода без остановки конвейера и без потери производительности.

• Применение регистров кода в структуре буфера команд формирует дополнительный уровень иерархии кэш-памяти, что позволяет реализовать алгоритм выполнения однотактных циклов. Короткие (в частности однотактные) циклы могут выполняться на регистрах кода без дополнительного обращения в основную кэшпамять.

• Применение регистров кода позволяет реализовать основную кэш-память с временем обращения более одного такта и повысить пропускную способность основной кэш-памяти.

6. Результаты проведенного моделирования показывают состоятельность предложенных механизмов подготовки кода, устанавливают зависимость производительности процессора от алгоритмов предварительной подготовки кода и определяют оптимальные условия работы буфера команд.

7. На основании полученных результатов разработана модель буфера команд для процессора проекта "Эльбрус", интегрированная в общую модель процессора. Произведена ее верификация и изготавливается физическая модель.

В заключение автор хотел бы высказать глубокую признательность коллегам, оказавшим огромное содействие в выполнении и написании данной работы. Особо хотелось бы поблагодарить д.т.н. Ю.Х. Сахина за постоянную поддержку на всех стадиях исследования и к.т.н. Назарова JI.H. за проявленное внимание и советы, способствовавшие значительному улучшению качества изложения материала.

СЛОВАРЬ

Конвейер подготовки кода - совокупность устройств подготовки кода процессора.

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

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

EPIC (.Explicitly Parallel Instruction Computing) - вычисления с явным указанием исполняемых команд в одном широком командном слове.

Задержанная команда (переход) - команда, следующая за условным переходом и выполняемая независимо от условия перехода.

Логическая скорость - теоретически максимальная производительность, приведенная к единице частоты.

Компенсационный код - код, позволяющий восстановить вычислительный процесс после возникновения программной исключительной ситуации.

Невыравненные команды - команды, невыравненные по какой-либо границе.

Предикат - бит информации, используемый для управления условными переходами и спекулятивными вычислениями.

Предикатные вычисления - вычисления под управлением предиката (ов).

Библиография Столярский, Евгений Зиновьевич, диссертация по теме Вычислительные машины и системы

1. Бабаян Б.А. и др. Многопроцессорные ЭВМ и методы их проектирования. -М.: Высшая школа, 1990. С. 143.

2. Hinton, Glen et al. The Mcroarchitecture of the Pentium 4 Processor // Intel Technology Journal Ql, 2001.

3. Rotenberg E., Bennett S., Smith, James E. Trace cache: A low latency approach to high instruction fetching // Proc. 29th Ann. Symp. on Microarchitecture, 1996, Paris.

4. Reinman G., Austin Т., Calder B. A Scalable Front-End Architecture for Fast Instruction Delivery. Intel Corporation, Microcomputer Research Labs, 1996.

5. Gramvald D., Klauser A., Manne S., Preszkun A. Confidence Estimation for. Speculation Control // 25th Intel Symposium On Computer Architecture, Barcelona, June 1998.

6. McFarling S. Combining Branch Predictors. Western Research Laboratory, TN-36, June 1993.

7. Klauser A., GramvaldD. Instruction Fetch Mechanisms for Multipath Execution Processors. Department of Computer Science, University of Colorado, 1998.

8. ОКР "Эльбрус-ЗМ", микропроцессор "Narch". Техническое описание. Центральный процессор. М.: ЗАО "МЦСТ", 1997.

9. Merced Processor & IA-64 Architecture, http://developer.intel.com. design/processor/future/ia64. htm

10. August D.I., Connors D.A., Mahlke S.A. et al. Integrated Predicted and Speculative Execution in the IMPACT EPIC Architecture. Center for Reliable and High-Performance Computing University of Illinois and Hewlett-Packard Laboratories, 1998.

11. Wilson KM., Olukotun K. Designing high bandwidth on-chip caches // ISC A 24 Conference Proceedings, 1997.

12. Christy, Peter. IA-64 and Merced What and Why // Microprocessor Report v. 10, № 17, Dec. 1996.

13. Gwennap, Linley. Digital 21264 Sets New Standard // Microprocessor Report, v. 10, № 14, Oct. 1996.

14. Gwennap, Linley. Alpha Sails, PowerPC Fails // Microprocessor Report, v. 11, № 1, Jan. 1997.

15. PA-RISC 1.1 Architecture and Instruction Set Reference Manual, Third Edition. -Hewlett-Packard Company, Feb. 1994.

16. PowerPC 604 RISC Microprocessor Technical Summary. IBM / Motorola, 1996.

17. Lesartre G., Hunt D. PA-8500: The Continuing Evolution of the PA-8000 Family. -Hewlett-Packard Company, 1997.

18. R10000 Microprocessor User's Manual Version 2.0. MIPS Technologies, Inc., Dec. 1996.

19. Performance of Pentium Pro and Pentium II Processor/Cache Combinations. -Compaq Computer Corporation, Technology Brief, May 1997.

20. Wasserman H. Victim-caching for large Caches and modern workloads // Computer Science 252 Project. UC, Berkley, USA, Spring 1991. *

21. Smith A.J. Cache Memories//Computing Surveys, v. 14, №. 3, September 1982.

22. Jouppi, Norman P. Improving direct mapped cache performance by the addition of small fully associative cache and prefetch buffer // WRL Technical Note TN-14. Digital Corp., Western Research Lab., March 1990.

23. Theobald K.B., Gao G.R. A unified framework for hybrid access cache design and its applications // Advanced compilers, Architectures and Parallel System, December 1993.

24. Столярский Е.З. Способы построения эффективной кэш-памяти // Компьютеры в учебном процессе, 2000, № 5. С. 89-100.

25. Столярский Е.З., Шилов В.В. Организация и работа кэш-памяти // Информационные технологии, 2000, № 7. С. 2-8.

26. John L., Subramanian A. Design and performance evaluation of cache assist to implement selective caching // Electrical and Computer Engineering Department University of Texas at Austin, 1996.

27. Soner O., Jun Xu, Gupta R. Caching and Predicting Branch Sequences for Improved Fetch Effectivnes. Dept. of Computer Science, University of Arisona, 1999.

28. Jourdan S., Rappoport LAlmog Y., et al. extended Block Cache. Intel Corporation, 1999.

29. Black В., RychilkB., Shen J. The Block-based Trace Cache // Proceeding of the 26th International Symposium on Computer Architecture, May 1999.

30. Столярский Е.З. Способы сокращения задержек переключения конвейера процессора по переходу // Компьютерная хроника, 2000, № 11. С. 7790.

31. Patterson, Jason R.C. Accurate Static Branch Prediction by Value Range Propagation // Proceedings of the ACM SIGPLAN '95, Conference on Programming language Design and Implementation, June 1995.

32. Calder В., Mozer M., Zorn B. Corpus-based Static Branch Prediction // ACM SIGPLAN Conference on Program Language Design and Implementation (PLDI'95). Department of Computer Science University of Colorado, 1995.

33. GrumvaldD., Lindsay D., Zorn B. Static Methods in Hybrid Branch Prediction // Proceedings of the International Conference on Parallel Architectures and Compilation Techniques (PACT). Department of Computer Science, University of Colorado, 1998.

34. Intel, HP Make EPIC Disclosure // Microprocessor Report, v. 11, № 14, Oct. 27, 1997, p.l.

35. The IBM Research VLIW project // 1995 Symposium, IBM T.J.Watson Research Center, Yorktown Heights. NY, November 1995.

36. Babciicin В., Volkonsky V. et al. Wide Instruction Word Architecture Central Processor. US Patent № 5418975, May 23, 1995: PCT Pub. Date: Oct. 15, 1992; PCT Filed: Aug. 20, 1991.

37. Останевич А.Ю. Экспериментальное исследование поддержки предикатных вычислений в архитектурах с явно выраженным параллелизмом // Информационные технологии и вычислительные системы, 1999, № 1.

38. Дополнение к эскизно-техническому проекту опытно-конструкторской работы "Эльбрус-ЗМ(П)", Кн. 6, Микропроцессор Эльбрус. М.: ЗАО "МЦСТ", 2000.

39. Волин B.C., Рудометов В.В., Столярский Е.З. Организация подкачки кода в FL/Ж-процессоре // Информационные технологии и вычислительные системы, 1999, № 1. С. 58-64.

40. Груздов Ф.А., Сахин Ю.Х. Архитектурная поддержка типизации данных // Информационные технологии и вычислительные системы, 1999, № 1. С. 3-13.