Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Трансляторы




Как следует из многоуровневой архитектуры ЭВМ, прикладные программы пишутся на языках высокого уровня (ЯВУ). Существуют сотни таких языков, но процессор понимает только язык единиц и нулей. Поэтому программы на ЯВУ обычно транслируются на уровень 3 или 4 (уровень ассемблера). Программы трансляторы бывают двух видов – интерпретаторы и компиляторы.

Программа (микропрограмма) способная вызывать команды, операнды из памяти, определять тип команд и выполнять эти команды называется – интерпретатор.

Интерпретатор разбивает исходную программу на маленькие шаги и последовательно переводит каждую команду в исполняемый машинный код, посылая ее сразу на исполнение. Интерпретатор, как правило, хранится в виде микрокоманд в ПЗУ, например, устройства управления.

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

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

Отличительные особенности: быстро, но изменение платформы приводит к необходимости разработки нового компилятора. Есть и третья возможность, известная под именем Java машины или виртуальной машины Java – это компилятор, транслирующий ЯВУ на промежуточный псевдокод, а затем с псевдокода интерпретатор. При этом сочетаются отличительные особенности того и другого метода.

Компьютеры могут иметь интерпретатор и тогда они гораздо проще и дешевле чем компьютеры без интерпретации, а могут и не иметь, но тогда они должны использовать технику компиляции. Впервые интерпретация получила применение при реализации компьютеров способных выполнять сложные команды, предназначенные для высокопроизводительных и дорогих машин (IBM S./360, S/370, S/390). Это сформировало тенденцию введения все более и более сложных команд (порядка 300 у VAX DEC и 200 способов определения операндов). Главное преимущество интерпретации заключалось в том, что можно было разработать простой процессор, а вся сложность сводилась к созданию интерпретатора.

(Такое операторное управление вычислительным процессом привело к необходимости использовать разнообразные форматы обработки данных (например: тривиальное суммирование в S/360 имело около 20 различных форматов). Хотя машина была способна вычислять экспоненту, логарифм, но простые операции производились очень медленно. Действительно, что бы перевести команду сложения в машинный код, интерпретатор должен был просмотреть более 20 возможных команд. Такое разнообразие инструкций потребовало и множества командных форматов различной длины.) Каждый процессор имеет свои специфические команды, наборы регистров и режимы адресации, поэтому программу на Ассемблере невозможно перенести с одной аппаратной платформы на другую. Для того чтобы не зависеть от конкретного процессора, часто используют язык описания команд RTL, от англ. Register Transfer Language — язык перемещения регистров. Фактически RTL представляет собой Ассемблер, не зависящий от конкретного процессора. Многие компиляторы, например, gcc, не переводят программу с языка высокого уровня сразу на язык машинных команд, а сначала транслируют ее на язык RTL. Затем на уровне RTL выполняется оптимизация кода, которая составляет 99% работы компилятора. И лишь на последнем этапе программа c языка RTL переводится на язык команд конкретного процессора. Поскольку RTL максимально приближен к Ассемблеру, трансляция из RTL в конкретный Ассемблер не представляет никакого труда. Такой подход позволяет сделать компилятор с языка высокого уровня практически независимым от конкретной архитектуры. Зависим лишь модуль, осуществляющий перевод с RTL в Ассемблер, но его реализация требует минимальных усилий.

Архитектура системы команд и классификация процессоров

Итак, именно эволюция ЭВМ с интерпретатором (позже названных машинами с CISC процессорами) сформировала тенденцию использования:

· сложных, длинных команд;

· разнообразных форматов данных;

· разнообразных форматов команд;

· медленное выполнение наиболее простых операций.

С другой стороны, именно эволюция CISC (Complex Instruction Set Computer) процессоров послужила мощным стимулом для возникновения концепции RISC (Reduced Instruction Set Computer) архитектуры. Дело в том, что в начале 80-х архитектура CISC стала серьезным препятствием на пути реализации идеи «один процессор в одном кристалле», поскольку для работы с традиционным расширенным списком команд требуется очень сложное устройство управления (микропрограммный интерпретатор), занимающее свыше 60% площади кристалла. К тому времени стали известны результаты статистических исследований ученых IBM – правило 20/80.

На 20% команд программы приходится 80% времени исполнения задания.

В 1980 году группа разработчиков университета Беркли во главе с Девидом Паттерсоном и Карлом Секуин начали разработку процессора без использования интерпретации. Именно они и придумали термин RISC архитектура и выпустили RISC I, RISC II, которые эволюционировали в процессоры SPARC, а уже в 1981 году появились и знаменитые процессоры MIPS (Джон Хенноси – Стенфорд). Концепция RISC – архитектуры базируется на почти очевидной логической формуле: если быстрые технологии и параллельная обработка недостижимы для всего списка команд из-за высокого уровня затрат, необходимо оставить в системе команд несколько десятков простых, наиболее универсальных и часто употребляемых инструкций, исключив сложные и редко используемые.

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

Первоначально RISC – процессоры действительно существенно вырвались вперед, сравните:

· процессор 80386, технология КМОП, частота 25 МГц, число транзисторов 275 000, производительность – 5 млн.оп.в сек (CISC);

· процессор R3000, технология КМОП, частота 25 МГц, число транзисторов 11500, производительность – 20 млн.оп.в сек (RISC). Сегодня условны и эти названия и различия между ними. Те и другие заимствовали лучшие черты конкурентов.

Для CISC процессоров характерно:

· небольшое число РОН (до 16);

· большое количество машинных команд (свыше 200);

· большое количество разнообразных форматов команд и методов адресации;

· преобладание двухадресного и безадресного формата команд;

· наличие команд типа «регистр - память»;

· команда выполняется за несколько тактов;

· использование механизма интерпретации.

Для RISC процессоров характерно:

· все обычные команды непосредственно выполняются аппаратным обеспечением, они не интерпретируются микрокомандами;

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

· большое количество РОН (свыше 32), лучший способ избежать транзакций – иметь достаточное количество регистров;

· сокращенный набор команд (несколько десятков);

· единообразие форматов команд, одинаковая длина и минимум адресных форматов;

· наличие и преобладание форматов команд «регистр - регистр», к памяти должны обращаться только команды загрузки и сохранения;

· команды выполняются за один такт, а, как правило, несколько команд за один такт;

· использование механизма компиляции.

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

При построении большинства CISC – процессоров используется аккумуляторная архитектура («память-регистр»). При этой архитектуре, в общем случае, требуется кроме собственно команды (например – сложение) еще две, по крайней мере, операции пересылки данных. При построении большинства RISC – процессоров применяется исключительно архитектура «регистр-регистр». При таком подходе любая из команд процессора может быть 3-х операндной и выполнена за один такт. При этом даже если RISC должен выполнить 4-5 простых команд вместо одной сложной, которую выполняет CISC все равно в выигрыше будет RISC т.к. его команды выполняются в 10 раз быстрее (поскольку они не интерпретируются). То, что в CISC архитектуре является сложной внутренней командой процессора, которую реализует интерпретатор, в RISC – целая подпрограмма, состоящая из простых, элементарных команд фиксированной длины, которую готовит компилятор. Реализация полной Гарвардской архитектуры, предсказание переходов и введение конвейеров команд и конвейеров обработки данных позволило на долгие годы RISC архитектуре стать лидером высокопроизводительных процессоров для серверов и рабочих станций.




Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 556; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.016 сек.