# 14. Классификация архитектур

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

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

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

1. по принципу действия;

2. по поколениям;

3. по областям применения;

4. по архитектуре набора команд;

5. по разрядности машинного слова;

6. по типу управления;

7. по степени и способу организации параллелизма.

# 14.1 Классификация по принципу действия

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

1. дискретные, или цифровые, вычислительные машины (ЦВМ), которые применяются для обработки дискретных сигналов и сообщений;

2. аналоговые вычислительные машины (АВМ), используемые для непрерывных сигналов и сообщений.

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

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

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

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

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

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

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

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

АВМ делятся на универсальные и специализированные. Универсальные используются для решения целого круга задач, в то время как специализированные нацелены только на одну задачу.

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

# 14.2 Классификация по поколениям

Выделяют следующие поколения:

нулевое поколение (1642 – 1945);

первое поколение (1945 – 1955) – вакуумные лампы;

второе поколение (1955 – 1965) – транзисторы;

третье поколение (1965 – 1980) – интегральные схемы;

четвертое поколение (1980 - ?) – сверхбольшие интегральные схемы (СБИС);

пятое поколение.

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

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

В ХХ веке Конрад Цузе спроектировал в Германии несколько вычислительных машин (Z1 – механическая с электроприводом (1938), Z2 – на основе реле, Z3 – первый программируемый компьютер (1941), Z4 (1950)), первый высокоуровневый язык программирования Plankalkul (1943-1945) для Z4 с поддержкой присваивания, условных переходов, циклов, массивов, записей, механизма исключений и др. Его компьютеры осуществляли ввод/вывод с использованием перфокарт, работали в двоичной системе счисления. В ходе войны большинство из прототипов машин были уничтожены.

Говард Айкен создал в 1944 году в Гарварде машину Mark I руководствуясь идеями Бэббиджа, но на основе реле. В ней также использовались перфокарты, но десятичная система.

Стимулом развития компьютерной техники первого поколения была война. В 1943 году в Великобритании был сконструирован компьютер COLOSSUS для взлома кодов шифровальной машины ENIGMA. В 1943 – 1946 в США создавался компьютер ENIAC (Electronic Numerical Integrator and Computer). Элементной базой компьютеров этого поколения служили вакуумные лампы. При этом компьютеры занимали целые комнаты, выделяли огромное количество тепла, были ненадежными. Скорость работы составляла 5 -30 тыс. арифметических операций в секунду. Программирование осуществлялось на машинном коде. Важнейшей вехой данного этапа стал принцип совместного хранения команд и данных (впоследствии получивший название архитектуры фон Неймана), которой в той или иной форме используется в большинстве современных систем, рис. 13.1.

Рис. 14.1 – Архитектура фон Неймана.

Изобретение транзисторов преобразило компьютерную отрасль: компьютеры второго поколения характеризовались меньшими габаритами, более высокой надежностью и скоростью обработки данных (до 1 млн. операций в секунду), увеличением объема хранимой информации (объем ОЗУ 32 – 64 Кб).

В архитектурах второго поколения было введено совмещение во времени работы ЦПУ и каналов ввода/вывода, появлялись первые параллельные машины, включавшие несколько одновременно работающих функциональных модулей, получила распространение концепция шины (bus). Развивались высокоуровневые языки программирования (Фортран и Алгол-60).

Среди машин стоит упомянуть о CDC 6600. В ней Сеймуром Креем (Seymour Cray) были заложены предпосылки суперкомпьютеров. Машина характеризовалась высоким параллелизмом, ввод/вывод выполнялся отдельными микросхемами. Архитектурные идеи этой машины широко используются по сей день.

В СССР БЭСМ-6 - очень успешная модель (некоторое время была самой быстрой в Европе, по быстродействию сравнима с CDC 6600: 1 млн. оп./с). В ней были реализованы конвейерная архитектура, виртуальная память, кэш, привилегии для команд, операции для системных вызовов. В дальнейшем стала основой семейства Эльбрус.

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

Заслуживает упоминания семейство System/360 IBM. Важным нововведением было мультипрограммирование. При этом в памяти находилось одновременно несколько программ, таким образом, когда одна ожидала ввода/вывода другая выполнялась, обеспечивая загрузку ресурсов процессора.

В семействе миникомпьютеров PDP огромный коммерческий успех имела модель PDP-11.

К 1980-ым появилась возможность размещать на одной микросхеме сотни тысяч и миллионы транзисторов. Компьютеры четвертого поколения имеют достаточно небольшие размеры. IBM PC положили начало персональным компьютерам, доступным для массового потребления. Развиваются операционные системы, концепции пользовательского интерфейса. Появляются специализированные игровые компьютеры, мобильные устройства. Набирает популярность концепция RISC. Развиваются суперкомпьютеры и сети. Появляются программируемые цифровые устройства (PLD, FPGA). В них содержится большое количество конфигурируемых элементов, которые могут быть «запрограммированы» в ту или иную схему как обычные программы. Это позволяет создавать процессоры и прочее аппаратное обеспечение даже в рамках небольших предприятий, не имея дорогостоящего сложного оборудования и избегая затрат в десятки миллионов долларов.

Некоторые авторы выделяют пятое поколение компьютеров. К нему относят мобильные устройства (смартфоны, планшеты), «невидимые компьютеры» внутри банковских карт, часов. Наблюдается повсеместное распространение компьютеров и проникновение их в большинство сфер человеческой деятельности.

# 14.3 Функциональная классификация

Классифицирующим критерием выступает область применения вычислительных средств. Выделяют следующие группы (см. таблицу 1)

Таблица 1

Тип | Цена $ | Сфера применения
«Одноразовые компьютеры» | 0,5 | Поздравительные открытки
Встроенные компьютеры | 5 | Часы, машины, бытовые приборы
Игровые компьютеры | 50 | Домашние компьютерные игры
Персональные компьютеры | 500 | Настольные и портативные компьютеры
Серверы | 5 тыс. | Сетевые серверы
Комплексы рабочих станций | 50 – 500 тыс. | Супер-мини компьютеры
Мэйнфреймы | 5 млн. | Пакетная обработка данных в банке

Одноразовые компьютеры. Сокращение стоимости изготовления открыло возможности создания очень дешевых компьютеров и новые области применения. Примеры: компьютеры, встраиваемые в открытки, RFID-чипы на товарах, грузах, внутри купюр (например, евро).

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

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

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

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

Мейнфреймы - используются для вычислительно сложных операций. Обеспечивают высокую производительность при высокой цене. В настоящее время уступают место кластерам обычных ПК.

# 14.4 Классификация по архитектуре системы команд

Рис. 14.2 – Классификация по архитектуре системы команд

1. Стековая архитектура включает память, АЛУ и стек. АЛУ получает операнды с вершины стека (TOS) со следующей за TOS ячейкой стека. Результат операции сохраняется в TOS. Взаимодействие с памятью также осуществляется через стек.

Достоинства: простота формата инструкций, а следовательно и аппаратуры декодирования.

Недостатки: узким местом является стек.

Рис. 14.3 а) Стековая архитектура; б) аккумуляторная архитектура; в) архитектура регистров общего назначения.

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

Достоинства: простота аппаратуры, обусловленная малым числом операндов.

Недостатки: аккумулятор является узким местом.

3. Архитектура регистров общего назначения.

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

Недостаток: сложный формат команд усложняет аппаратуру.

3.1 Архитектура CISC (Complex Instruction Set Computer) – один из вариантов развития архитектуры регистров общего назначения. Характеризуется наличием большого количества самых различных команд. (например, запись нескольких регистров, перемещение блоков памяти, вычисление sin, cos, квадратного корня). Команды имеют различное число полей, разную длину. Используется небольшое число регистров общего назначения. Команды выполняются различное число тактов. Имеется развитый механизм адресации (например, Pentium – 17 режимов адресации). Недостатки: высокая сложность аппаратуры из которой следует снижение тактовой частоты. Сложности распараллеливания.

3.2 Архитектура RISC (Reduced Instruction Set Computer) – важнейшая тенденция развития, возникшая как ответ на проблемы CISC. В архитектуру команд включаются только наиболее простые и часто используемые команды. Более сложные команды реализуются в виде последовательности простых. Для уменьшения обращений к памяти имеется большое количество регистров. Команды имеют простой формат и одинаковую длину. Команды выполняются за 1 такт. Работа осуществляется с операндами, находящимися в регистрах. Простая адресация. Обработка операндов отделена от обращений к памяти (отдельные команды для работы с памятью load и store).

Достоинства: облегчение конвейеризации и распараллеливания. Упрощение процессорной логики. Простая логика позволяет существенно повысить тактовую частоту.

Недостатки: отсутствие обратной совместимости. Большое количество программ уже написано для CISC Intel (огромные вложения денежных средств и времени). Именно это сдерживает повсеместное развитие RISC. Программы RISC занимают больше места в памяти.

3.3 Архитектура VLIW (Very Long Instruction Word) представляет собой развитие идей RISC. Процессор включает большое количество арифметико-логических функциональных блоков. Инструкции имеют очень большую длину (десятки - сотни байт).

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

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

Архитектура EPIC представляет собой развитие идей VLIW и RISC. Группирование инструкций происходит на этапе компиляции, как и во VLIW, однако присутствует вероятностный элемент (таблица 2). Используется большое количество регистров общего назначения, как в RISC.

Таблица 2

| Группирование | Назначение функц. модулей | Запуск
Суперскалярный | Аппаратно | Аппаратно | Аппаратно
EPIC | Компилятор | Аппаратно | Аппаратно
Динамический VLIW | Компилятор | Компилятор | Аппаратно
VLIW | Компилятор | Компилятор | Компилятор

Отличия EPIC от VLIW:

1. Инструкции в связке (bundle) могут иметь зависимости.

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

3. Поддержка модулей с различными характеристиками.

4. Динамическое назначение функциональных модулей (статическое расписание не является абсолютным и используется как подсказка).

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

6. Спекулятивная загрузка и выполнение.

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

# 14.4.1 Предпосылки появления и идеи RISC

Постепенно стоимость программного обеспечения в аппаратно-программной системе стала доминирующей. Для сокращения стоимости ПО разрабатывались более выразительные и сложные языки программирования (High-Level Languages, HLL), поддерживающие структурное или объектно-ориентированное программирование. В результате возник семантический разрыв между операциями, предлагаемыми HLL и операциями, предоставляемыми архитектурой команд. Симптомы: неэффективность выполнения, большой размер программ, cложность компиляторов. Для того, чтобы закрыть разрыв, проектировщики предложили архитектуры с большим количеством команд, десятками режимов адресации и различными высокоуровневыми конструкциями, реализованными аппаратно.

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

В то же время проводились исследования характеристик выполнения машинных инструкций, сгенерированных из высокоуровневых операндов. Исследовались следующие аспекты: выполняемые операции (определяют функции процессора и взаимодействие с памятью); типы операндов (определяют организацию памяти и режимы адресации); последовательность выполнения (определяет управляющую логику и организацию конвейера).

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

Таблица 3

Операции языка | Pascal, научные программы | Fortran, студенческие | Pascal, системные | C, системные | Sal, системные
Присваивание | 74 | 67 | 45 | 38 | 42
Цикл | 4 | 3 | 5 | 3 | 4
Вызов | 1 | 3 | 15 | 12 | 12
Условие | 20 | 11 | 29 | 43 | 36
GOTO | 2 | 9 | - | 3 | -
Другие | - | 7 | 6 | 1 | 6

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

Таблица 4

| Динамическая встречаемость | Взвешенных машинных инструкций | Взвешенных обращений к памяти
| Pascal | C | Pascal | C | Pascal | C
Присваивание | 45 % | 38 % | 13 % | 13 % | 14 % | 15 %
Цикл | 5 % | 3 % | 42 % | 32 % | 33 % | 26 %
Вызов | 15 % | 12 % | 31 % | 33 % | 44 % | 45 %
Условие | 29 % | 43 % | 11 % | 21 % | 7 % | 13 %
GOTO | - | 3 % | - | - | - | -
Другие | 6 % | 1 % | 3 % | 1 % | 2 % | 1 %

Результаты исследований преобладающих динамических типов операндов приводятся в таблице 5. Большинство обращений происходит к скалярным переменным, при этом 80% из них локальные (для процедуры) переменные. В среднем на инструкцию приходится 0,5 обращений к памяти и 1,5 обращений к регистрам. Следовательно, важно обеспечить быстрый доступ к операндам.

Таблица 5

| Pascal | C | Среднее
Целочисленные константы | 16 % | 23 % | 20 %
Скалярные переменные | 58 % | 53 % | 55 %
Массивы структуры | 26 % | 24 % | 25 %

Вызовы процедур – это наиболее затратные по времени операции высокоуровневых языков. Следовательно, имеет смысл найти способы их оптимизации. Важны два аспекта: количество параметров и глубина вложенности. Исследования Таненабаума показывают, что 98% процедур принимают меньше 6 параметров и 92% из них используют менее 6 локальных скалярных переменных. Аналогичные результаты представлены исследовательской группой Беркли (таблица 6).

Таблица 6

Процент вызовов процедур с | Тип программ: компиляторы, интерпретаторы | Тип программ: небольшие нечисловые программы
> 3 аргументов | 0 – 7 % | 0 – 5 %
> 5 аргументов | 0 – 3 % | 0 %
> 8 слов аргументов и локальных переменных | 1 – 20 % | 0 – 6 %
> 12 слов аргументов и локальных переменных | 1 – 6 % | 0 – 3 %

Вложенность вызовов процедур также была исследована (рис. 14.4). Для глубины окна в 8 сдвиг потребуется только в 1% случаев. Следовательно, обращения к операндам имеют высокую локальность.

# Рис. 14.4

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

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

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

Рис. 14.5.

В двух окнах пересекается только одна область (временные регистры из уровня J используются в качестве регистров параметров уровня J+1. Количество регистровых окон должно быть неограниченным, чтобы реализовать различные последовательности вызов\возврат. Вместо этого в регистровых окнах хранятся только самые недавние записи активаций процедур. Старые записываются в память и восстанавливаются по мере необходимости. На практике для реализации такой функциональности используется циклический буфер, пример на рис. 14.6.

Рис. 14.6

# 14.5 Классификация по типу управления

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

В машинах языков высокого уровня организация кодов данных и машинных команд привязывается к структурам данных и операциям над ним, характерным для того или иного языка программирования. В классических архитектурах единственной структурой данных, которая для обеспечения работы привязана к возможностям аппаратных средств, является последовательность бит в памяти. Наделение этой последовательности свойствами, превращающими ее в структуры данных, используемые в программах и необходимые для решения задач, возлагается на программное обеспечение, трансляторы и т.д. В архитектурах машин языков высокого уровня необходимые для языка структуры данных и операции над ними реализуются на аппаратном уровне, что влечет за собой существенное усложнение оборудования. Примеры: Western Digital Pascal Microengine – система, использовавшая в качестве машинного языка p-код Pascal; аппаратный интерпретатор Java-байткода – Jazelle.

Еще одна группа – машины баз данных, представляющие собой специализированные системы, приспособленные для задач, выполняемых БД. В них широко используются различные реализации ассоциативной памяти и ассоциативных процессоров. Пример: система DBC.

Потоковые компьютеры (Data Flow Computers) – компьютеры, управляемые потоком данных. В них нет счетчика команд, выполнение инструкций начинается по готовности их операндов. Используются в обработке сигналов, обработке графики, телеметрии.

Систолические массивы – компьютеры, построенные из однотипных обрабатывающих элементов (DPU, рис. 14.7), каждый из которых соединен с небольшим числом соседей. Используются в обработке сигналов. Хорошо подходят для матричных операций.

Рис. 14.7 – Систолическая структура.

Нейрокомпьютеры – сеть простых процессорных элементов (см. персептрон, нейронные сети).

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

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

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

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