С середины 60-х годов очень сильно изменился подход к созданию вычислительных машин. Вместо разработки аппаратуры и средств математического обеспечения стала проектироваться система, состоящая из синтеза аппаратных (hardware) и программных (software) средств. При этом на главный план выдвинулась концепция взаимодействия. Так возникло новое понятие — архитектура ЭВМ.
Под архитектурой ЭВМ принято понимать совокупность общих принципов организации аппаратно-программных средств и их основных характеристик, определяющая функциональные возможности вычислительной машины при решении соответствующих типов задач.
Архитектура ЭВМ охватывает значительный круг проблем, связанных с созданием комплекса аппаратных и программных средств и учитывающих большое количество определяющих факторов. Среди этих факторов основными являются: стоимость, сфера применения, функциональные возможности, удобство в эксплуатации, а одним из основных компонентов архитектуры считаются аппаратные средства.
Архитектуру вычислительного средства необходимо отличать от структуры ВС. Структура вычислительного средства определяет его текущий состав на определенном уровне детализации и описывает связи внутри средства. Архитектура же определяет основные правила взаимодействия составных элементов вычислительного средства, описание которых выполняется в той мере, в какой необходимо для формирования правил взаимодействия. Она устанавливает не все связи, а только наиболее необходимые, которые должны быть известны для более грамотного использования применяемого средства.
Так, пользователю ЭВМ не важно, на каких элементах выполнены электронные схемы, схемно или программно исполняются команды и тому подобное. Архитектура ЭВМ действительно отражает круг проблем, которые относятся к общему проектированию и построению вычислительных машин и их ПО.
Архитектура ЭВМ включает в себя как структуру, отражающую состав ПК, так и программно – математическое обеспечение. Структура ЭВМ - совокупность элементов и связей между ними. Основным принципом построения всех современных ЭВМ является программное управление.
Основы учения об архитектуре вычислительных машин были заложены Джон фон Нейманом. Совокупность этих принципов породила классическую (фон-неймановскую) архитектуру ЭВМ.
Фон Нейман не только выдвинул основополагающие принципы логического устройства ЭВМ, но и предложил ее структуру, представленную на рисунке.
Положения фон Неймана:
Компьютер состоит из нескольких основных устройств (арифметико-логическое устройство, управляющее устройство, память, внешняя память, устройства ввода и вывода)
Арифметико-логическое устройство – выполняет логические и арифметические действия, необходимые для переработки информации, хранящейся в памяти
Управляющее устройство – обеспечивает управление и контроль всех устройств компьютера (управляющие сигналы указаны пунктирными стрелками)
Данные, которые хранятся в запоминающем устройстве, представлены в двоичной форме
Программа, которая задает работу компьютера, и данные хранятся в одном и том же запоминающем устройстве
Для ввода и вывода информации используются устройства ввода и вывода
Современную архитектуру компьютера определяют следующие принципы:
Принцип программного управления. Обеспечивает автоматизацию процесса вычислений на ЭВМ. Согласно этому принципу, для решения каждой задачи составляется программа, которая определяет последовательность действий компьютера. Эффективность программного управления будет выше при решении задачи этой же программой много раз (хотя и с разными начальными данными).
Принцип программы, сохраняемой в памяти. Согласно этому принципу, команды программы подаются, как и данные, в виде чисел и обрабатываются так же, как и числа, а сама программа перед выполнением загружается в оперативную память, что ускоряет процесс ее выполнения.
Принцип произвольного доступа к памяти. В соответствии с этим принципом, элементы программ и данных могут записываться в произвольное место оперативной памяти, что позволяет обратиться по любому заданному адресу (к конкретному участку памяти) без просмотра предыдущих.
На основании этих принципов можно утверждать, что современный компьютер - техническое устройство, которое после ввода в память начальных данных в виде цифровых кодов и программы их обработки, выраженной тоже цифровыми кодами, способно автоматически осуществить вычислительный процесс, заданный программой, и выдать готовые результаты решения задачи в форме, пригодной для восприятия человеком.
Реальная структура компьютера значительно сложнее, чем рассмотренная выше (ее можно назвать логической структурой). В современных компьютерах, в частности персональных, все чаще происходит отход от традиционной архитектуры фон Неймана, обусловленный стремлением разработчиков и пользователей к повышению качества и производительности компьютеров. Качество ЭВМ характеризуется многими показателями. Это и набор команд, которые компьютер способный понимать, и скорость работы (быстродействие) центрального процессора, количество периферийных устройств ввода-вывода, присоединяемых к компьютеру одновременно и т.д. Главным показателем является быстродействие - количество операций, какую процессор способен выполнить за единицу времени. На практике пользователя больше интересует производительность компьютера - показатель его эффективного быстродействия, то есть способности не просто быстро функционировать, а быстро решать конкретные поставленные задачи.
Как результат, все эти и прочие факторы способствуют принципиальному и конструктивному усовершенствованию элементной базы компьютеров, то есть созданию новых, более быстрых, надежных и удобных в работе процессоров, запоминающих устройств, устройств ввода-вывода и т.д. Тем не менее, следует учитывать, что скорость работы элементов невозможно увеличивать беспредельно (существуют современные технологические ограничения и ограничения, обусловленные физическими законами). Поэтому разработчики компьютерной техники ищут решения этой проблемы усовершенствованием архитектуры ЭВМ.
Так, появились компьютеры с многопроцессорной архитектурой, в которой несколько процессоров работают одновременно, а это означает, что производительность такого компьютера равняется сумме производительностей процессоров. В мощных компьютерах, предназначенных для сложных инженерных расчетов и систем автоматизированного проектирования (САПР), часто устанавливают два или четыре процессора. В сверхмощных ЭВМ (такие машины могут, например, моделировать ядерные реакции в режиме реального времени, прогнозировать погоду в глобальном масштабе) количество процессоров достигает нескольких десятков.
Скорость работы компьютера существенным образом зависит от быстродействия оперативной памяти. Поэтому, постоянно ведутся поиски элементов для оперативной памяти, затрачивающих меньше времени на операции чтения-записи. Но вместе с быстродействием возрастает стоимость элементов памяти, поэтому наращивание быстродействующей оперативной памяти нужной емкости не всегда приемлемо экономически.
Проблема решается построением многоуровневой памяти. Оперативная память состоит из двух-трех частей: основная часть большей емкости строится на относительно медленных (более дешевых) элементах, а дополнительная (так называемая кэш-память) состоит из быстродействующих элементов. Данные, к которым чаще всего обращается процессор находятся в кэш-памяти, а больший объем оперативной информации хранится в основной памяти.
Раньше работой устройств ввода-вывода руководил центральный процессор, что занимало немало времени. Архитектура современных компьютеров предусматривает наличие каналов прямого доступа к оперативной памяти для обмена данными с устройствами ввода-вывода без участия центрального процессора, а также передачу большинства функций управления периферийными устройствами специализированным процессорам, разгружающим центральный процессор и повышающим его производительность.
Методы классификации компьютеров
Номенклатура видов компьютеров сегодня огромная: машины различаются по назначению, мощности, размерам, элементной базе и т.д. Поэтому классифицируют ЭВМ по разным признакам. Следует заметить, что любая классификация является в некоторой мере условной, поскольку развитие компьютерной науки и техники настолько бурное, что, например, сегодняшняя микроЭВМ не уступает по мощности миниЭВМ пятилетней давности и даже суперкомпьютерам недавнего прошлого. Кроме того, зачисление компьютеров к определенному классу довольно условно через нечеткость разделения групп, так и вследствии внедрения в практику заказной сборки компьютеров, где номенклатуру узлов и конкретные модели адаптируют к требованиям заказчика. Рассмотрим распространенные критерии классификации компьютеров.
Классификация по назначению
большие электронно-вычислительные машины (ЭВМ);
миниЭВМ;
микроЭВМ;
персональные компьютеры.
Большие ЭВМ (Main Frame)
Применяют для обслуживания крупных областей народного хозяйства. Они характеризуются 64-разрядными параллельно работающими процессорами (количество которых достигает до 100), интегральным быстродействием до десятков миллиардов операций в секунду, многопользовательским режимом работы. Доминирующее положение в выпуске компьютеров такого класса занимает фирма IBM (США). Наиболее известными моделями суперЭВМ являются: IBM 360, IBM 370, IBM ES/9000, Cray 3, Cray 4, VAX-100, Hitachi, Fujitsu VP2000.
На базе больших ЭВМ создают вычислительный центр, который содержит несколько отделов или групп (структура которого изображена на рис. 2). Штат обслуживания - десятки людей.
группа технического обслуживания | центральний процессор | группа подготовки данных |
группа системных программистов | отдел выдачи результатов | группа прикладных программистов |
группа информационной поддержки |
Рис.2. Структура вычислительного центра на базе большой ЭВМ
Центральный процессор - основной блок ЭВМ, в котором происходит обработка данных и вычисление результатов. Представляет собой несколько системных блоков в отдельной комнате, где поддерживается постоянная температура и влажность воздуха.
Группа системного программирования - занимается разработкой, отладкой и внедрением программного обеспечения, необходимого для функционирования вычислительной системы. Системные программы обеспечивают взаимодействие программ с оборудованием, то есть программно-аппаратный интерфейс вычислительной системы.
Группа прикладного программирования - занимается созданием программ для выполнения конкретных действий с данными, то есть обеспечение пользовательского интерфейса вычислительной системы.
Группа подготовки данных - занимается подготовкой данных, которые будут обработаны на прикладных программах, созданных прикладными программистами. В частности, это набор текста, сканирование изображений, заполнение баз данных.
Группа технического обеспечения - занимается техническим обслуживанием всей вычислительной системы, ремонтом и отладкой аппаратуры, подсоединением новых устройств.
Группа информационного обеспечения - обеспечивает технической информацией все подразделения вычислительного центра, создает и сохраняет архивы разработанных программ (библиотеки программ) и накопленных данных (банки данных).
Отдел выдачи данных - получает данные от центрального процессора и превращает их в форму, удобную для заказчика (распечатка).
Большим ЭВМ присуща высокая стоимость оборудования и обслуживания, поэтому работа организована непрерывным циклом.
МиниЭВМ
Похожа на большие ЭВМ, но меньших размеров. Используют на крупных предприятиях, научных учреждениях и организациях. Часто используют для управления производственными процессами. Характеризуются мультипроцессорной архитектурой, подключением до 200 терминалов, дисковыми запоминающими устройствами, которые наращиваются до сотен гигабайт, разветвленной периферией. Для организации работы с миниЭВМ, нужен вычислительный центр, но меньший чем для больших ЭВМ.
МикроЭВМ
Доступны многим учреждениям. Для обслуживания достаточно вычислительной лаборатории в составе нескольких человек, с наличием прикладных программистов. Необходимые системные программы покупаются вместе с микроЭВМ, разработку прикладных программ заказывают в больших вычислительных центрах или специализированных организациях.
Программисты вычислительной лаборатории занимаются внедрением приобретенного или заказанного программного обеспечения, выполняют его настройку и согласовывают его работу с другими программами и устройствами компьютера. Могут вносить изменения в отдельные фрагменты программного и системного обеспечения.
Персональные компьютеры
Бурное развитие приобрели в последние 20 лет. Персональный компьютер (ПК) предназначен для обслуживания одного рабочего места и способен удовлетворить потребности малых предприятий и отдельных лиц. С появлением Интернета популярность ПК значительно возросла, поскольку с помощью персонального компьютера можно пользоваться научной, справочной, учебной и развлекательной информацией.
Персональные компьютеры условно можно поделить на профессиональные и бытовые, но в связи с удешевлением аппаратного обеспечения, грань между ними размывается. С 1999 года введен международный сертификационный стандарт - спецификация РС99:
массовый персональный компьютер (Consumer PC)
деловой персональный компьютер (Office PC)
портативный персональный компьютер (Mobile PC)
рабочая станция (WorkStation)
развлекательный персональный компьютер (Entertaiment PC)
Большинство персональных компьютеров на рынке подпадают до категории массовых ПК. Деловые ПК - имеют минимум средств воспроизведения графики и звука. Портативные ПК отличаются наличием средств коммуникации отдаленного доступа (компьютерная связь). Рабочие станции - увеличенные требования к устройствам хранения данных. Развлекательные ПК - основной акцент на средствах воспроизведения графики и звука.
Классификация по уровню специализации
универсальные;
специализированные.
На базе универсальных ПК можно создать любую конфигурацию для работы с графикой, текстом, музыкой, видео и т.п.. Специализированные ПК созданы для решения конкретных задач, в частности, бортовые компьютеры в самолетах и автомобилях. Специализированные миниЭВМ для работы с графикой (кино- видеофильмы, реклама) называются графическими станциями. Специализированные компьютеры, объединяющие компьютеры в единую сеть, называются файловыми серверами. Компьютеры, обеспечивающие передачу информации через Интернет, называются сетевыми серверами.
Классификация по размеру
настольные (desktop);
портативные (notebook);
карманные (palmtop).
Наиболее распространенными являются настольные ПК, которые позволяют легко изменять конфигурацию. Портативные удобны для пользования, имеют средства компьютерной связи. Карманные модели можно назвать "интеллектуальными" записными книжками, разрешают хранить оперативные данные и получать к ним быстрый доступ.
Классификация по совместимости
Существует великое множество типов компьютеров, которые собираются из деталей, изготовленных разными производителями. Важным является совместимость обеспечения компьютера:
аппаратная совместимость (платформа IBM PC и Apple Macintosh)
совместимость на уровне операционной системы;
программная совместимость;
совместимость на уровне данных.
Архитектура современных суперЭВМ
В этом обзоре не имеет смысла останавливаться на деталях классификации архитектуры суперкомпьютеров [3,4], ограничимся только рассмотрением типичных архитектур суперЭВМ, широко распространенных сегодня, и приведем классическую систематику Флинна [5].
В соответствии с ней, все компьютеры делятся на четыре класса в зависимости от числа потоков команд и данных. К первому классу (последовательные компьютеры фон Неймана) принадлежат обычные скалярные однопроцессорные системы: одиночный поток команд - одиночный поток данных (SISD). Персональный компьютер имеет архитектуру SISD, причем не важно, используются ли в ПК конвейеры для ускорения выполнения операций.
Второй класс характеризуется наличием одиночного потока команд, но множественного nomoka данных (SIMD). К этому архитектурному классу принадлежат однопроцессорные векторные или, точнее говоря, векторно-конвейерные суперкомпьютеры, например, Cray-1 [6]. В этом случае мы имеем дело с одним потоком (векторных) команд, а потоков данных - много: каждый элемент вектора входит в отдельный поток данных. К этому же классу вычислительных систем относятся матричные процессоры, например, знаменитый в свое время ILLIAC-IV. Они также имеют векторные команды и реализуют векторную обработку, но не посредством конвейеров, как в векторных суперкомпьютерах, а с помощью матриц процессоров.
К третьему классу - MIMD - относятся системы, имеющие множественный поток команд и множественный поток данных. К нему принадлежат не только многопроцессорные векторные суперЭВМ, но и вообще все многопроцессорные компьютеры. Подавляющее большинство современных суперЭВМ имеют архитектуру MIMD.
Четвертый класс в систематике Флинна, MISD, не представляет практического интереса,по крайней мере для анализируемых нами компьютеров. В последнее время в литературе часто используется также термин SPMD (одна программа - множественные данные). Он относится не к архитектуре компьютеров, а к модели распараллеливания программ и не является расширением систематики Флинна. SPMD обычно относится к MPP (т.е. MIMD) - системам и означает, что несколько копий одной программы параллельно выполняются в разных процессорных узлах с разными данными.
Интересно также упомянуть о принципиально ином направлении в развитии компьютерных архитектур - машинах потоков данных[7]. В середине 80-х годов многие исследователи полагали, что будущее высокопроизводительных ЭВМ связано именно с компьютерами, управляемыми потоками данных, в отличие от всех рассмотренных нами классов вычислительных систем, управляемых потоками команд. В машинах потоков данных могут одновременно выполняться сразу много команд, для которых готовы операнды. Хотя ЭВМ с такой архитектурой сегодня промышленно не выпускаются, некоторые элементы этого подхода нашли свое отражение в современных суперскалярных микропроцессорах, имеющих много параллельно работающих функциональных устройств и буфер команд, ожидающих готовности операндов. В качестве примеров таких микропроцессоров можно привести HP РА-8000 [8] и Intel Pentium Pro [9].
В соответствии с классификацией Флинна, рассмотрение архитектуры суперЭВМ следовало бы начать с класса SISD. Однако все векторно-конвейерные (в дальнейшем - просто векторные) суперЭВМ имеют архитектуру "не меньше" SIMD. Что касается суперкомпьютерных серверов, использующих современные высокопроизводительные микропроцессоры, таких как SGI POWER CHALLENGE на базе R8000 или DEC AlphaServer 8200/8400 на базе Alpha 21164, то их минимальные конфигурации бывают однопроцессорными. Однако, если не рассматривать собственно архитектуру этих микропроцессоров, то все особенности архитектуры собственно серверов следует анализировать в "естественной" мультипроцессорной конфигурации. Поэтому начнем анализ суперкомпьютерных архитектур сразу с класса SIMD.