Системы классификации архитектур компьютеров
В 1966 г. М.Флинном (Flynn) был предложен чрезвычайно удобный подход к классификации архитектур вычислительных систем. В его основу было положено понятие потока, под которым понимается последовательность элементов, команд или данных, обрабатываемая процессором. Соответствующая система классификации основана на рассмотрении числа потоков инструкций и потоков данных и описывает четыре архитектурных класса: SISD (single instruction stream / single data stream) – одиночный поток команд и одиночный поток данных. К классу SISD относятся последовательные компьютерные системы, которые имеют один центральный процессор, способный обрабатывать только один поток последовательно исполняемых инструкций. В настоящее время практически все высокопроизводительные системы имеют более одного центрального процессора, однако каждый из них выполняет несвязанные потоки инструкций, что делает такие системы комплексами SISD-систем, действующих на разных пространствах данных. Для увеличения скорости обработки команд и скорости выполнения арифметических операций может применяться конвейерная обработка. В случае векторных систем векторный поток данных следует рассматривать как поток из одиночных неделимых векторов. Примерами компьютеров с архитектурой SISD могут служить большинство рабочих станций Compaq, Hewlett-Packard и Sun Microsystems; MISD (multiple instruction stream / single data stream) – множественный поток команд и одиночный поток данных. Теоретически в этом типе машин множество инструкций должно выполняться над единственным потоком данных. До сих пор ни одной реальной машины, попадающей в данный класс, создано не было; SIMD (single instruction stream / multiple data stream) – одиночный поток команд и множественный поток данных. Эти системы обычно имеют большое количество процессоров, от 1024 до 16384, которые могут выполнять одну и ту же инструкцию относительно разных данных в жесткой конфигурации. Единственная инструкция параллельно выполняется над многими элементами данных. Примерами SIMD -машин являются системы CPP DAP, Gamma II и Quadrics Apemille. Другим подклассом SIMD -систем являются векторные компьютеры. Векторные компьютеры манипулируют массивами сходных данных подобно тому, как скалярные машины обрабатывают отдельные элементы таких массивов. Это делается за счет использования специально сконструированных векторных центральных процессоров. Когда данные обрабатываются посредством векторных модулей, результаты могут быть выданы на один, два или три такта частотогенератора (такт частотогенератора является основным временным параметром системы). При работе в векторном режиме векторные процессоры обрабатывают данные практически параллельно, что делает их в несколько раз более быстрыми, чем при работе в скалярном режиме. Примерами систем подобного типа являются, например, компьютеры Hitachi S3600;
MIMD (multiple instruction stream / multiple data stream) – множественный поток команд и множественный поток данных. Эти машины параллельно выполняют несколько потоков инструкций над различными потоками данных. В отличие от многопроцессорных SISD -машин, команды и данные связаны, потому что они представляют различные части одной и той же задачи. Например, MIMD -системы могут параллельно выполнять множество подзадач с целью сокращения времени выполнения основной задачи. Большое разнообразие попадающих в данный класс систем делает классификацию Флинна не полностью адекватной. Действительно, и четырехпроцессорный SX-5 компании NEC, и тысячепроцессорный Cray T3E попадают в этот класс. Это заставляет использовать другой подход к классификации, иначе описывающий классы компьютерных систем. Основная идея такого подхода может состоять, например, в следующем. Будем считать, что множественный поток команд может быть обработан двумя способами: либо одним конвейерным устройством обработки, работающем в режиме разделения времени для отдельных потоков, либо каждый поток обрабатывается своим собственным устройством. Первая возможность используется в MIMD -компьютерах. Их обычно называют конвейерными или векторными, вторая – в параллельных компьютерах. В основе векторных компьютеров лежит концепция конвейеризации, т.е. явного сегментирования арифметического устройства на отдельные части, каждая из которых выполняет свою подзадачу для пары операндов. В основе параллельного компьютера лежит идея использования для решения одной задачи нескольких процессоров, работающих сообща, причем процессоры могут быть как скалярными, так и векторными.
Для параллельных компьютерных систем существует своя классификация. I. Векторно-конвейерные компьютеры (PVP). Имеют MIMD-архитектуру. Основные особенности: · конвейерные функциональные устройства; · набор векторных инструкций в системе команд; · зацепление команд (используется как средство ускорения вычислений). II. Массивно-параллельные компьютеры с распределенной памятью. Объединяется несколько серийных микропроцессоров, каждый со своей локальной памятью, посредством некоторой коммуникационной среды. Достоинств у такой архитектуры много: если нужна высокая производительность, то можно добавить еще процессоров; если ограничены финансы или заранее известна требуемая вычислительная мощность, то легко подобрать оптимальную конфигурацию и т.д. Каждый процессор имеет доступ лишь к своей локальной памяти, а если программе нужно узнать значение переменной, расположенной в памяти другого процессора, то задействуется механизм передачи сообщений. Этот подход позволяет создавать компьютеры, включающие в себя тысячи процессоров. Но эта архитектура имеет два существенных недостатка: · требуется быстродействующее коммуникационное оборудование, обеспечивающее среду передачи сообщений; · при создании программ необходимо учитывать топологию системы и специальным образом распределять данные между процессорами, чтобы минимизировать число пересылок и объем пересылаемых данных.
Последнее обстоятельство и мешает широкому внедрению подобных архитектур. III. Параллельные компьютеры с общей памятью (SMP). Вся оперативная память разделяется между несколькими одинаковыми процессорами. Это снимает проблемы предыдущего класса, но добавляет новые - число процессоров, имеющих доступ к общей памяти, нельзя сделать большим. Основное преимущество таких компьютеров - относительная простота программирования. В ситуации, когда все процессоры имеют одинаково быстрый доступ к общей памяти, вопрос о том, какой процессор какие вычисления будет выполнять, не столь принципиален, и значительная часть вычислительных алгоритмов, разработанных для последовательных компьютеров, может быть ускорена с помощью распараллеливающих и векторизирующих трансляторов. SMP-компьютеры - это наиболее распространенные сейчас параллельные вычислители. Однако общее число процессоров в SMP-системах, как правило, не превышает 16, а их дальнейшее увеличение не дает выигрыша из-за конфликтов при обращении к памяти. IV. Кластерная архитектура. Кластерная архитектура представляет собой комбинации предыдущих трех. Из нескольких процессоров (традиционных или векторно-конвейерных) и общей для них памяти формируется вычислительный узел. Если полученной вычислительной мощности не достаточно, то объединяется несколько узлов высокоскоростными каналами.
Другие распространенные критерии классификации компьютеров. Классификация по назначению: · большие электронно-вычислительные машины (ЭВМ) или Main Frame; · миниЭВМ; · микроЭВМ; · персональные компьютеры. Классификация по уровню специализации [2, 5, 6, 8, 13, 15, 18]: · универсальные; · специализированные. Классификация по раз меру: · настольные (desktop); · портативные (notebook); · карманные (palmtop). Классификация по совместимости: · аппаратная совместимость (платформа IBM PC и Apple Macintosh); · совместимость на уровне операционной системы;
· программная совместимость; · совместимость на уровне данных. Таким образом, выбрав в качестве критериев классификации выше перечисленные признаки, в первую очередь, вычислительную мощность и габариты, получем слудующую схему:
Следует заметить, что любая классификация является в некоторой мере условной, поскольку развитие компьютерной науки и техники настолько бурное, что, например, сегодняшняя микро ЭВМ не уступает по мощности мини ЭВМ суперкомпьютерам недавнего прошлого. Кроме того, зачисление компьютеров к определенному классу довольно условно через нечеткость разделения групп, так и вследствии внедрения в практику заказной сборки компьютеров, где номенклатуру узлов и конкретные модели адаптируют к требованиям заказчика. В организации цифровой вычислительной системы можно выделить девять уровней иерархии: Первый уровень, физический, объединяет в себе физические законы, явления и эффекты, лежащие в основе создания и функционирования аппаратной составляющей вычислительной системы. Это уровень интегральной и функциональной микроэлектроники, обеспечивающей элементную базу вычислительной аппаратуры. Второй уровень, уровень аналоговой схемотехники, связан с построением базовых логических элементов (вентилей) из аналоговых компонентов (диодов, транзисторов, емкостей и т.д.). Третий уровень, уровень цифровой схемотехники, определяет принципы, модели и методы построения функциональных узлов и устройств аппаратуры в заданном логическом базисе. Этот уровень имеет свою внутреннюю иерархию, которая детально представлена в разделе главы. Четвертый уровень, уровень системотехники, определяет общую структуру вычислительной системы, организацию взаимосвязей ее подсистем и модулей между собой, выбор оптимальных режимов функционирования и т.д. Это уровень, отражающий принципы построения и закономерности функционирования системы в целом с учетом влияния внешних факторов, технико-экономических и других показателей. На этом уровне в первом приближении распределяются функции между аппаратной и программной составляющими архитектуры вычислительной системы. Пятый уровень, микроархитектурный, связан с организацией управления аппаратными средствами компьютера на языке микрокоманд. Это уровень интерпретации машинных команд, на котором реализуются (аппаратно или микропрограммно) эффективные технологии исполнения инструкций с применением упреждающей выборки команд, конвейеризации, распараллеливания, кэширования, динамического предсказания ветвлений, переименования регистров и других приемов, способствующих повышению эффективности вычислительного процесса.
Шестой уровень, уровень машинных команд, представляет набор команд (инструкций), выполняемых аппаратными средствами или микропрограммой-интерпретатором. Это связующее звено между аппаратным и программным обеспечением, поэтому организация его должна быть рациональной как с точки зрения разработчиков аппаратного обеспечения, так и с точки зрения создателей программ-трансляторов с языков высокого уровня. Седьмой уровень, уровень операционной системы, отличается от предыдущего наличием дополнительных команд, своей организации памяти, мультипрограммного режима и других расширений, реализуемых специальным интерпретатором, построенным на базе шестого и возможно пятого уровней и называемым операционной системой. Последние три из рассмотренных уровней изначально планируются как инструментальная среда для создания системного программного обеспечения (трансляторов, оболочек операционных систем и других расширений, поддерживающих языки более высоких уровней). В отличие от них, средства восьмого и девятого уровней ориентируются на прикладных программистов.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|