Классификация архитектур вычислительных систем

Автор работы: Пользователь скрыл имя, 17 Ноября 2013 в 19:45, реферат

Краткое описание

По-видимому, самой ранней и наиболее известной является классификация архитектур вычислительных систем, предложенная в 1966 году М.Флинном. Классификация базируется на понятии потока, под которым понимается последовательность элементов, команд или данных, обрабатываемая процессором. На основе числа потоков команд и потоков данных Флинн выделяет четыре класса архитектур: SISD,MISD,SIMD,MIMD.

Прикрепленные файлы: 1 файл

ref_5394_parta_ua.doc

— 864.50 Кб (Скачать документ)

 

1. Классификация архитектур вычислительных систем.

По-видимому, самой ранней и наиболее известной является классификация  архитектур вычислительных систем, предложенная в 1966 году М.Флинном. Классификация базируется на понятии потока, под которым понимается последовательность элементов, команд или данных, обрабатываемая процессором. На основе числа потоков команд и потоков данных Флинн выделяет четыре класса архитектур: SISD,MISD,SIMD,MIMD.


 

 

 

 

 

Рис. 1. Архитектура SISD

SISD (single instruction stream / single data stream) - одиночный поток команд и одиночный поток данных. К этому классу относятся, прежде всего, классические последовательные машины, или иначе, машины фон-неймановского типа, например, PDP-11 или VAX 11/780. В таких машинах есть только один поток команд, все команды обрабатываются последовательно друг за другом и каждая команда инициирует одну операцию с одним потоком данных.




 

 

 

 

Рис. 2. Архитектура SIMD

Но данные в программе обладают неким параллелизмом. Например С = A + B и N = K*M – никак не связаны между собой и могут выполняться параллельно.

С другой стороны, если A, B и C – вектора, то необходимо организовать цикл для прохода и счета.

SIMD (single instruction stream / multiple data stream) - одиночный поток команд и множественный поток данных. В архитектурах подобного рода сохраняется один поток команд, включающий, в отличие от предыдущего класса, векторные команды. Это позволяет выполнять одну арифметическую операцию сразу над многими данными - элементами вектора. Способ выполнения векторных операций не оговаривается, поэтому обработка элементов вектора может производится либо процессорной матрицей, как в ILLIAC IV, либо с помощью конвейера, как, например, в машине CRAY-1. Это технология MMX.


 

 

 

 

 

Рис. 3. Архитектура MISD

MISD (multiple instruction stream / single data stream) - множественный поток команд и одиночный поток данных. Определение подразумевает наличие в архитектуре многих процессоров, обрабатывающих один и тот же поток данных. Однако ни Флинн, ни другие специалисты в области архитектуры компьютеров до сих пор не смогли представить убедительный пример реально существующей вычислительной системы, построенной на данном принципе. Ряд исследователей относят конвейерные машины к данному классу, однако это не нашло окончательного признания в научном сообществе. Будем считать, что пока данный класс пуст.

 

 

 

 

 

 


 


 

 

 

 

 

Рис. 4. Архитектура MIMD

MIMD (multiple instruction stream / multiple data stream) - множественный поток команд и множественный поток данных. Этот класс предполагает, что в вычислительной системе есть несколько устройств обработки команд, объединенных в единый комплекс и работающих каждое со своим потоком команд и данных.

2. Архитектура микропроцессоров.

Мы настолько привыкли к темпам развития вычислительной техники, что уже как-то даже перестали удивляться им. А удивляться есть чему: за всю историю человечества ничего подобного не знала и не знает ни одна область техники. И самое удивительное, что эти темпы сохраняются уже более пятидесяти лет, с момента появления первой ЭВМ.

"Если бы начиная с 1971 года прогресс автомобилестроения был столь же стремительным, как в области создания микропроцессоров, то сегодня в нашем распоряжении были бы легковые машины, способные мчаться со скоростью 480 тыс. км/ч, затрачивая 1 л топлива на 355 тыс. км пути". Надо сразу же заметить, что этот тезис, высказанный в связи с 25-летием выпуска компанией Intel первого в мире микропроцессора 4004, - не оригинален. Практически такая же фраза с похожими цифрами была в ходу еще лет двадцать назад для характеристики развития вычислительной техники за первые тридцать лет ее существования (там еще часто добавлялось "и этот автомобиль стоил бы 75 центов"). Но одно существенное различие между тогдашней и нынешней ситуацией все же имеется.

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

CISC

В первые годы развития ПК лучшим способом увеличить производительность было реализовать как можно больше инструкций в центральном процессоре. По мере усложнения программ, инженерам приходилось добавлять в микропроцессоры все большее количество инструкций и, следовательно, увеличивать количество транзисторов. Так сформировалась стратегия архитектуры СISС (Complex Instruction Set Computer - компьютер с комплексным набором инструкций), которую образно можно представить как перенос "центра тяжести" обработки инструкций на аппаратный уровень системы. За первые 10 лет компьютерной эры список инструкций типичного компьютера расширился от нескольких десятков до нескольких сотен операций самых различных форматов. Благодаря этому удалось максимально упростить компиляцию программ и заодно минимизировать размер исполняемого модуля - а это еще один эффективный способ увеличения производительности, поскольку компактную программу проще разместить в оперативной памяти

Основоположником CISC-архитектуры  можно считать компанию IBM с ее базовой архитектурой i360, ядро которой используется с1964 года и дошло до наших дней, например, в таких современных мейнфреймах как IBM ES/9000.

Лидером в разработке микропроцессоров c полным набором  команд (CISC - Complete Instruction Set Computer) считается компания Intel со своей серией x86 и Pentium. Эта архитектура является практическим стандартом для рынка микрокомпьютеров. Для CISC-процессоров характерно:

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

Бурное развитие CISC архитектуры  происходило до тех пор, пока процессоры не стали сложными, энергоемкими и  достаточно дорогостоящими устройствами. Идеология CISC стала серьезным препятствием в повышении быстродействия микропроцессоров. Дело в том, что для сверхбольших, интегральных схем, которыми по существу и являются микропроцессоры, наиболее критическим фактором является площадь кристалла - чем больше его размеры, тем выше вероятность появления производственных дефектов и, следовательно, меньше процент выхода годных изделий. Расширенный набор команд CISC требует достаточно сложного устройства управления, которое в типовом случае занимает 60% поверхности кристалла. Оставшихся 40% используются для размещения арифметических устройств, необходимых для выполнения операций с данными. Наличие данных недостатков CISC-процессоров привело к необходимости разработки альтернативного направления развития микропроцессоров, которые призваны перераспределить пространство кристалла в пользу "арифметики" за счет сокращения числа команд.

RISC

Идеология RISC, появившаяся  относительно недавно (10-15 лет назад), в какой-то степени основана на известном  статистическом законе "20/80" (20% населения выпивают 80% пива), который в данном случае звучит следующим образом: 80% всего объема вычислений CISC-процессора приходится на 20% его команд.

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

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

Основой архитектуры  современных рабочих станций  и серверов является архитектура компьютера с сокращенным набором команд (RISC - Reduced Instruction Set Computer). Зачатки этой архитектуры уходят своими корнями к компьютерам CDC6600, разработчики которых (Торнтон, Крэй и др.) осознали важность упрощения набора команд для построения быстрых вычислительных машин. Эту традицию упрощения архитектуры С. Крэй с успехом применил при создании широко известной серии суперкомпьютеров компании Cray Research. Однако окончательно понятие RISC в современном его понимании сформировалось на базе трех исследовательских проектов компьютеров: процессора 801 компании IBM, процессора RISC университета Беркли и процессора MIPS Стенфордского университета.

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

Среди других особенностей RISC-архитектур следует отметить наличие  достаточно большого регистрового файла (в типовых RISC-процессорах реализуются 32 или большее число регистров по сравнению с 8 - 16 регистрами в CISC-архитектурах), что позволяет большему объему данных храниться в регистрах на процессорном кристалле большее время и упрощает работу компилятора по распределению регистров под переменные. Для обработки, как правило, используются трехадресные команды, что помимо упрощения дешифрации дает возможность сохранять большее число переменных в регистрах без их последующей перезагрузки.

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

4 основных принципа RISC архитектуры:

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

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

Следует отметить, что в последних разработках компании Intel (имеется в виду Pentium P54C и процессор следующего поколения P6), а также ее последователей-конкурентов (AMD R5, Cyrix M1, NexGen Nx586 и др.) широко используются идеи, реализованные в RISC-микропроцессорах, так что многие различия между CISC и RISC стираются. Однако сложность архитектуры и системы команд x86 остается и является главным фактором, ограничивающим производительность процессоров на ее основе.

Принцип организации  простейшего конвейера

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

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

Информация о работе Классификация архитектур вычислительных систем