Синоним архитектуры фон неймана

#статьи

  • 11 мар 2022

  • 0

Принципы фон Неймана и первые компьютеры на их основе

Рассказываем, как фон Нейман присвоил себе чужие лавры, почему он ни в чём не виноват и что умели компьютеры, созданные на «не совсем его» идеях.

Иллюстрация: John von Neumann / EDSAC / Meery Mary для Skillbox Media

Марина Демидова

Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.

В 1946 году американский учёный Герман Голдстайн опубликовал доклад математика Джона фон Неймана «Предварительное рассмотрение логической конструкции электронно-вычислительного устройства». Автор доклада изложил принципы, ставшие основой архитектуры всех последующих поколений ЭВМ:

  • Память компьютера состоит из ячеек, каждой из которых присвоен номер — адрес. Любая из ячеек доступна компьютеру в любой момент времени, и он может обратиться к её содержимому по адресу.
  • Память компьютера используется как для хранения данных, так и для хранения программы. Команды и числа кодируются в двоичной системе счисления. Над командами можно производить те же операции, что и над числами. На этом принципе основана трансляция — перевод текста программы с языка высокого уровня на язык конкретной ЭВМ.
  • Компьютером управляет программа, которая состоит из команд, хранящихся в последовательных ячейках памяти. Каждая команда выполняет операцию из набора операций, доступных компьютеру.
  • Компьютер выполняет команды последовательно — от первой к последней, согласно порядку следования в программе. Этот порядок может быть изменён с помощью специальных команд в зависимости от результатов вычислений.

Первым в истории электронным компьютером был ENIAC, построенный в 1946 году в Пенсильванском университете США: огромное 30-тонное устройство, работавшее на 18 000 электронных ламп. Вычисления производились в десятичной системе, что сильно замедляло работу компьютера и приводило к перерасходу ламп.

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

Создатели ENIAC Эккерт и Мокли видели его недостатки, поэтому ещё в 1943 году начали проектировать усовершенствованную модель электронного компьютера — да, в тот момент они даже не доделали ENIAC. Будущий компьютер назвали EDVAC (от англ. Electronic Discrete Variable Automatic Computer). Работа была строго засекречена.

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

Спустя полтора года к Эккерту и Мокли в качестве научного консультанта присоединился Джон фон Нейман — известный математик и участник Манхэттенского проекта. Он сразу увидел перспективность новой ЭВМ и помог выбить финансирование у армии США.

Учёные были обязаны регулярно отчитываться перед военными о проделанной работе. Фон Нейман подготовил «Предварительный доклад о машине EDVAC», в котором описал её основные элементы и логику работы. Он отправил отчёт военному куратору Голдстайну, и тот был впечатлён глубиной идей и ясностью изложения основных концепций. Наплевав на секретность, он перепечатал и разослал отчёт европейским и американским учёным без ведома Эккерта и Мокли, а на титульном листе в качестве автора указал только фон Неймана.

Отчёт произвёл эффект разорвавшейся бомбы. А так как фон Неймана знали в научном мире, никто не сомневался, что он и был единственным автором документа. Так описанную в отчёте структуру ЭВМ назвали архитектурой фон Неймана.

Эккерт и Мокли были возмущены действиями Голдстайна — сами они из-за секретности не могли публиковать материалы о своей работе. Создатели EDVAC не сомневались, что их машина будет очень полезной для всего мира, а потому опасались, что им не дадут оформить патент на изобретение.

И не зря — потому что именно так всё и вышло. Администрация Пенсильванского университета настаивала, чтобы Мокли и Эккерт отказались от прав на EDVAC. Возмущённые изобретатели отвергли это требование и в 1946 году, сразу после запуска компьютера ENIAC, покинули университет. Через несколько месяцев из проекта ушли фон Нейман и Голдстайн, а работа над EDVAC затянулась ещё на несколько лет.

В итоге EDVAC завершили только в 1949 году, а «выкатили в прод» в 1951-м, после устранения всех багов. Он весил около восьми тонн и занимал 45 квадратных метров.

EDVAC в Лаборатории баллистических исследований
Фото: Wikimedia Commons

Компьютер использовал двоичную систему счисления — это позволило сократить количество электровакуумных ламп до 3600 штук (в ENIAC их было 18 000) — и умел проводить операции сложения, вычитания и деления. Объём памяти составлял 1024 слова — то есть около 5,5 килобайт. Причём в памяти хранились уже не только данные, но и сама программа.

EDVAC установили в Лаборатории баллистических исследований армии США — его работа была строго засекречена. Машина проработала до 1961 года, пока её не заменили на более современную.

После публикации отчёта фон Неймана в других странах тоже стали строить компьютеры с подобной архитектурой. Первый создали в Англии, давнем конкуренте Америки в компьютерной гонке — причём за два года до запуска EDVAC.

В 1946 году профессору Кембриджа Морису Уилксу попалась копия доклада фон Неймана — знакомый из США дал почитать на одну ночь. Уилкс оценил идеи и решил, что в будущем развитие ЭВМ пойдёт именно по такому пути.

Он пересёк океан, прибыл в Пенсильванский университет и прослушал лекции по EDVAC, а на обратном пути разработал логическую схему своего будущего компьютера, в дальнейшем названного EDSAC. Уилксу удалось добиться финансирования постройки ЭВМ Министерством обороны Великобритании, а сама машина заработала уже в 1949 году.

EDSAC в Кембридже
Фото: Wikimedia Commons

EDSAC почти полностью копировал архитектуру EDVAC, но при этом был компактнее: занимал площадь в 20 квадратных метров, состоял из 3000 электровакуумных ламп и использовал 32 ртутные линии задержки, дающие 1024 ячейки памяти.

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

Первая программа для EDSAC рассчитывала квадраты положительных чисел от 0 до 99.

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

  • S — «вычитание»;
  • Т — «передать информацию в память»;
  • Z — «остановка машины» и так далее.

Так именно для EDSAC впервые были разработаны мнемонические коды операций и транслятор — ассемблер.

Другим важным новшеством стала разработка библиотеки подпрограмм. Программисты уже были знакомы с этим понятием — Грейс Хоппер и её коллеги использовали подпрограммы на своей гарвардской машине. Правда, они записывали их в блокноты, чтобы каждый раз не составлять заново.

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

Мнемонику операций и библиотеку подпрограмм Уилкс назвал «собирающей системой» (от англ. assembly system) — ведь она собирала программу на машинном языке из мнемонических кодов и подпрограмм.

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

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

В 1951 году для EDSAC была написана и первая интерактивная компьютерная игра — OXO, разновидность крестиков-ноликов. Для этого к компьютеру был подсоединён небольшой дисплей на основе электронно-лучевой трубки.

Так выглядела OXO
Фото: Wikimedia Commons

Легендарный EDSAC выключили только в 1958 году. Его заменил более совершенный компьютер, EDSAC 2, с памятью на ферритовых сердечниках, в котором использовались ещё и магнитные ленты.

Закат архитектуры фон Неймана, о котором вы еще не слышали и что будет дальше?

Время на прочтение
5 мин

Количество просмотров 12K

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

image

На изображении отладочная плата с расположенными чипами Loihi.

Дисклеймер

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

Эта статья является вступлением для статьи Neuromorphic inspired computing и описывает проблематику вопроса, решения предлагаются во второй статье.

Классическая архитектура фон Неймана

“Бутылочное горлышко” архитектуры фон Неймана.

Все классические компьютеры обладают так называемой архитектурой фон Неймана.

The decline of von Neumanns architecture
Рис. 1. The decline of von Neumanns architecture

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

Физические ограничения материалов

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

Реалии представляются таким образом, что этот закон начинает испытывать давление со стороны “законов физики микромира”.

Рис. 2. Уменьшение размеров транзистора приводит к ошибкам в его производстве.
Рис. 2. Уменьшение размеров транзистора приводит к ошибкам в его производстве

Тут мы сталкиваемся сразу с несколькими сложностями:

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

Отказоустойчивость и брак в производстве

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

image
Рис. 3. Блок схема процессора Xeon

Это сделано для того, чтоб в том случае, если в каком-то блоке выйдет из строя большое количество транзисторов из-за брака во время производства, этот блок можно было отключить, а процессор целиком остался в рабочем состоянии. Как вы понимаете, производство процессоров очень дорогое, и одна из причин этого большой процент брака. Процент брака кристаллов для 28-ядерных процессоров Intel Xeon составляет до 65 %. Если у конечного процессора не работает один из блоков памяти или одно из ядер не проходит TDP тест, его отключают, а процессор упаковывают в коробку “младшей модели”.

Подход хороший, но он требует отключения очень больших блоков: в случае отказа нескольких транзисторов, которых в одном ядре может быть семьсот миллионов. То есть отказ 0.000000001% транзисторов приводит к потере 10% и более производительности устройства.

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

Потребление электроэнергии и размер суперкомпьютеров

В современном мире, когда мобильный телефон обладает вычислительными способностями компьютера пятилетней давности и при этом работает от аккумулятора, нам кажется, что мы почти достигли предела в уменьшении потребления энергии компьютерами. Но, если мы сравним вычислительные способности суперкомпьютера IBM Summit, его размеры и потребляемые им объемы энергии с мозгом мыши, окажется, что он неимоверно большой и очень неэффективный.

image
Рис 4. IBM Power System AC922, IBM POWER9 22C 3.07GHz, NVIDIA Volta GV100, Dual-rail Mellanox
EDR InfiniBand, 2.41 million cores, 148.6 petaflops
Пиковая потребляемая мощность: 13 000 000 W
Размеры: 4,608 nodes * 0.2 m^3 = 920 m^3
Мозг мыши способен обрабатывать куда более сложные задачи при потреблении всего 1-5 ватт.

Online learning and continuous-flow

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

Да, сейчас существуют различные подходы bi-directional soft attention (см. BERT) для того, чтобы связывать эти самые кадры в работе с языковыми моделями. Также современные подходы машинного обучения лишены возможности обучаться непосредственно в процессе решения поставленной задачи. Это все еще две различные задачи.

Параллелизм и масштабируемость

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

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

Сегодня конечная цель программирования получение кода, управляющего универсальным процессором. Однако не исключено, что когда-нибудь программирование будет служить и для создания специализированного аппаратного обеспечения, позволяющего устранить так называемое «бутылочное горло Джона фон Неймана».

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

Теория информации Клода Шеннона, которую, по примеру самого Шеннона, все же следует называть «теорией передачи данных», никоим образом больше не может соответствовать современным представлениям об информации. Напомним, что она возникла как ответ на необходимость решать задачи, связанные с передачей данных, и предлагает соответствующую меру для передаваемых данных. Иначе говоря, шенноновская теория отражает то видение информации, которое было выработано в связи с процессами передачи данных. Поэтому вполне естественно, что ее область действия не может распространяться на множество современных приложений наподобие обработки неструктурированных данных, работы с мультимедийным контентом и т.д. Как это ни странно, но ИТ-специалисты в подавляющем большинстве не знают теории информации, а слова «информация» и «данные» часто используются как синонимы. Показательно, что даже самые старательные студенты компьютерных специальностей, прослушавшие обстоятельный курс по теории информации, не могут соотнести содержание этого курса с профильными специальностями. Из-за существующего разрыва между практической работой с информацией и теорией информации технологии, называемые «информационными», имеют дело вовсе не с информацией, а с обычными данными. Единого признанного представления о том, что же такое информация и что такое технологии для работы ней, не существует*.

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

Еще один «постаревший» кит— ставшая по нынешним временам архаичной фон-неймановская архитектура. Именно она является самым серьезным тормозом на пути дальнейшего совершенствования аппаратного и программного обеспечения. Моральное старение фон-неймановской архитектуры приводит к тому, что вся отрасль, связанная с обработкой данных, несмотря на ее видимое процветание, несмотря на бесчисленные разговоры об информационном обществе и пр., с неизбежностью приближается к критическому состоянию. Что же вызывает старение? Дело в количественном и качественном росте. Компьютерный мир все плотнее и плотнее объединяется с миром реальным. Появился специальный термин «всепроникающие компьютерные системы» (pervasive computing). Компьютер перестал быть ЭВМ, электронной вычислительной машиной, и неожиданно выяснилось, что в своем первоначальном виде компьютер не вполне соответствует окружающей среде. Реальный мир во всех его проявлениях параллелен, а современный компьютерный мир по своей природе последователен: данные передаются по последовательным каналам, команды выполняются одна за другой, как следствие любые попытки распараллеливания и адаптации к условиям реального мира рождают чрезвычайно сложные и искусственные решения.

Одну из фундаментальных слабостей современных компьютеров вскрыл в 1977 году Джон Бэкус в речи, с которой он выступил при получении Тьюринговской премии. С тех пор в ход пошло прозвучавшее в ней выражение «бутылочное горло фон Неймана», символизирующее собой органический недостаток архитектурной схемы, ассоциирующейся с именем Джона фон Неймана. Но несмотря ни на что, с 1945 года и поныне архитектурная схема фон Неймана служит основой всех компьютеров, за исключением небольшого количества специализированных микроконтроллеров, построенных с использованием «гарвардской схемы», называемой так по имени машины Говарда Айкена Harvard Mark I, где программы хранились на перфорированных лентах, а обрабатываемые данные— в релейных массивах (рис. 1). В современных микроконтроллерах перфоленты заменила память ROM, реле— память RAM, но суть осталась прежней: в процессоре встречаются два независимых и не сдерживающих друг друга потока команд и данных. Как следствие, такие специализированные устройства обладают производительностью, необходимой для работы в технических системах в режиме реального времени.

Рис. 1 (а). Архитектура фон Неймана

Рис. 1 (а). Архитектура фон Неймана

Рис. 1 (б). Гарвардская архитектура

Рис. 1 (б). Гарвардская архитектура

Двуликий закон Мура

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

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

Тормозом— или, скорее, консервирующим фактором— закон Мура можно считать потому, что он на протяжении добрых десяти лет позволял сохранять динамику развития, обходясь без радикальных инновационных шагов. Работала своеобразная положительная обратная связь; увеличением количества транзисторов разработчики процессоров компенсировали снижение качества архитектуры. Как результат производительность продолжала расти, но медленнее, чем число транзисторов. Однако какой ценой это достигалось? Как показано на рис. 2, за последнее десятилетие удельная производительность процессоров в пересчете на число транзисторов упала на один-два порядка. Дальнейшее развитие полупроводниковых технологий по закону Мура не может компенсировать чудовищную неэффективность современных процессоров. Диспропорцию между числом транзисторов на кристалле и удельной производительностью, выраженной в скорости выполнения, отнесенной к площади, иногда называют «дефицитом Мура» (Moore Gap).

Архитектура фон Неймана, реконфигурируемые компьютерные системы и антимашина

Рис. 2. Падение удельной производительности процессоров. За шесть лет удельная производительность DEC Alpha сократилась в 100 раз, а процессоров IBM- в шесть раз

Но с другой стороны, количественный рост, постулируемый законом Мура, предопределяет неизбежные перемены, и в какой-то момент должен сработать диалектический переход количества в качество. Легендарный Дэйв Паттерсон, профессор из Калифорнийского университета в Беркли, изобретатель RISC-процессоров и RAID-массивов, считает, что грядет новое время, когда перестанут действовать прежние прописные истины и им на смену придут новые. Однако переход этот осложняется наличием трех «стен».

  • Энергетическая стена. Старая истина— энергия не стоит ничего, транзисторы дороги. Новая истина— дорога энергия, транзисторы не стоят ничего.

  • Стена памяти. Старая истина— память работает быстро, а операции с плавающей запятой медленны. Новая истина— системную производительность сдерживает память, операции выполняются быстро.

  • Стена параллелизма на уровне команд. Старая истина— производительность можно повысить за счет качества компиляторов и таких архитектурных усовершенствований, как конвейеры, внеочередное выполнение команд, сверхдлинное командное слово (Very Long Instruction Word, VLIW), явный параллелизм команд (Explicitly Parallel Instruction Computing, EPIC) и др. Новая истина— естественный параллелизм, команды и длинные, и короткие, но выполняются они параллельно, на разных ядрах.

Некоторые авторы считают, что есть еще одна стена, «стена ментальности» (educational wall). За 60 лет существования компьютеров сложилась определенная образовательная традиция. Тем, кто вырос как специалист на не подвергаемых сомнению догматах, непросто признать их уязвимость. Вообще говоря, несовершенство и избыточная затратность современных компьютерных систем становится популярной темой для обсуждения. К примеру, об этом недавно, во время своего пребывания в Москве, говорил Билл Инмон. «Отец» хранилищ данных указывает, что все современные решения для работы с данными объединяет то, что стоимость функциональных компонентов (транзисторы, диски и т.д.) становится все менее значимой, а основная стоимость продуктов приходится на поддерживающую инфраструктуру.

Аргументы сторонников искусственного интеллекта

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

Одно ядро— это плохо, а много— это хорошо?

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

Вернемся к двуликости закона Мура. История процессора Itanium прекрасно иллюстрирует то, как можно его использовать для консервирования действующей парадигмы. Через год исполнится 20 лет с того памятного момента, когда в HP, придя к выводу об ограниченной возможности для дальнейшего развития архитектуры RISC, отдали предпочтение казавшейся им более перспективной архитектуре с явным параллелизмом EPIC, позволяющей выполнять за один такт очень длинное командное слово. Но и они, и те, кто стал их союзником, просчитались; вопреки ожиданиям процессор с одним ядром (а про другие тогда не знали) получился невероятно сложным, а компиляторы, способные реализовать его возможности,— и того сложнее. Период собственно разработки затянулся на 12 лет, но и после еще семи лет доработки желаемый результат остается не достигнутым. Продукты, построенные на Itanium, не смогли составить конкуренцию ни RISC-серверам (их, по данным Gartner, в 2007 году было выпущено на порядок больше, чем серверов на Itanium), ни тем более стандартным серверам на процессорах х86, на замену которым планировался Itanium (здесь он уступает более чем два порядка). Даже в сегменте HPC, где, казалось бы, выдающаяся по сравнению с другими процессорами производительность на операциях с плавающей запятой дает Itanium преимущества, он уступает свои позиции; в нынешнем списке Top?500 на его долю приходится всего 3,2% общего числа суперкомпьютеров.

Нетрудно прийти к выводу, что, если нельзя использовать возможности закона Мура на одном ядре из-за исключительной сложности такого ядра, то следует пойти по пути увеличения числа ядер. Именно так поступили в Sun Microsystems, выпустив 8-ядерный процессор Niagara. Идея многоядерности стала очевидной и для тех, кто делал ставку на EPIC, и вот на очередном форуме IDF осенью 2004 года Пол Отеллини, генеральный директор Intel, заявил: «Мы связываем наше будущее с многоядерными продуктами; мы верим, что это ключевая точка перегиба для всей индустрии»***. Тогда эту перспективу рассматривали ограниченно, поэтому слова Отеллини отнесли к вполне ожидаемым двухъядерным или четырехъядерным процессорам и особого внимания на прозрачный намек по поводу прогнозируемого перегиба не обратили. В стороне от общественного внимания осталось и еще одно многозначительное высказывание по поводу грядущего увеличения числа ядер, сделанное им тогда же: «Это не гонка. Это радикальное изменение в компьютинге, мы не имеем права рассматривать происходящее как простую технологическую гонку».

Три года спустя один из самых авторитетных современных специалистов в области многоядерных процессорных архитектур, профессор Массачусетского технологического института Ананд Агарвал, выступая на конференции, посвященной проблемам современных процессоров, имея опыт собственной разработки в основанной им компании Tilera, сказал следующее: «Процессоры становятся все более и более единообразными и обезличенными, критичнее становится система», а далее подарил афоризм: «Процессор— это транзистор современности».

Его мысль развил Энди Бехтольсхайм из Sun Microsystems: «Больше нельзя рассматривать производительность как серьезное ограничение. Теперь главное ограничение— ввод/вывод, а производительность ввода/вывода невозможно поднять за счет простого увеличения плотности транзисторов».

Можно говорить о двух заметно разнящихся между собой тенденциях в процессе увеличения числа ядер. Одну теперь называют мультиядерность (multi-core), в этом случае предполагается, что ядра являются высокопроизводительными и их относительно немного; сейчас их число— два-четыре, и согласно закону Мура оно будет периодически удваиваться. Этот путь имеет два основных прежних недостатка: первый— высокое энергопотребление, второй— высокая сложность чипа и, как следствие, низкий процент выхода готовой продукции. При производстве 8-ядерного процессора IBM Сell только 20% производимых кристаллов являются годными. Другой путь— многоядерность (many-core). В таком случае на кристалле собирается на порядок большее число, но при этом простейших ядер, потребляющих милливатты. Допустим, для начала ядер будет сто, но и это число с той же периодичностью удваивается, а следовательно, в обозримом будущем появятся процессоры с тысячами и десятками тысяч ядер. Данный подход попадает в категорию так называемых «разрушительных инноваций» (disruptive innovation). Такого рода технологии взламывают существующие рынки; к примеру, на наших глазах начинается замена жестких дисков твердотельными дисками, цифровая фотография вытеснила аналоговую.

Впрочем, эти революционные процессы прошли или происходят достаточно безболезненно для потребителей, чего нельзя сказать о многоядерности. Действительно, ни одна из современных школ программирования не в состоянии справиться с грядущими проблемами, не случайно на суперкомпьютерной конференции, прошедшей в Дрездене в 2007 году, один из центральных докладов назывался «Развал системы традиционных знаний в многоядерную эру. Все, что вы знаете,— неверно».

Если многоядерность, то какая?

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

Сколько вы знаете программистов, относящихся с энтузиазмом к будущим многоядерным процессорам? У всех, кого я знаю, они лишь вызывают огорчение, хотя разработчики процессоров говорят, что я не прав. Я знаю приложения, адаптируемые к параллельному исполнению; это графический рендеринг, сканирование изображений, моделирование биологических и физических процессов, но все они требуют подходов, которые чрезвычайно специализированы. Моих знаний хватило, чтобы написать о них в ‘Искусстве программирования’, но я считаю время, затраченное на них, потерянным, в этой области все быстро меняется, и совсем скоро написанное мной никому не будет нужным. Мультиядерность в том виде, как ее представляют, сейчас не прибавляет мне счастья».

Что же получается? Одноядерные процессоры бесперспективны, в этом убеждает пример Itanium. Но и многоядерные процессоры, если все сводится к размещению большего числа классических простых ядер на одной подложке, нельзя воспринимать как решение всех проблем. Их чрезвычайно сложно программировать, они могут быть эффективны только на приложениях, обладающих естественной многопотоковостью, таковых особенно много среди Web-приложений, но как быть со сложными задачами? Где же выход? Когда-то в моде была бионика, наука о применении в технических системах принципов организации, свойств, функций и структур живой природы. Пик бионических публикаций о промышленных аналогах форм живой природы пришелся на 60-е годы, потом о ней почти забыли. Многоядерность заставляет о ней вспомнить: из общих системных соображений понятно, что, если ядер будет много и количество их будет продолжать увеличиваться, то дальше все будет развиваться по сценарию биологической эволюции, когда вслед за одноклеточными организмами появились их многоклеточные преемники, а затем и еще более сложные создания. Однако остаются аргументы, высказываемые Кнутом. Какими должны стать эти ядра, чтобы не перекладывать ответственность на программистов?

Синдром фон Неймана и антимашина

Переход в новый мир с новыми истинами, в мир, каким его представляет Паттерсон, невозможен без понимания фундаментальных причин кризиса старого мира. Одной из наиболее интересных точек зрения на происхождение «стен» и других недостатков существующего компьютерного миропорядка обладает немецкий профессор Рейнер Хартенштайн. Он имеет огромный опыт преподавательской и научной работы в ведущих университетах Германии и в университете Беркли. С 1977 года возглавляющий лабораторию Xputer Lab, одну из немногих, где занимались тематикой, связанной с реконфигурируемым компьютингом (Reconfigurable Computing), Хартенштайн является создателем KARL, новаторского языка для проектирования аппаратного обеспечения. Профессор Хартенштайн— автор таких терминов, как «антимашина» (anti machine), «конфигурируемое аппаратное обеспечение» (сonfigware), «структурное проектирование аппаратного обеспечения» (structured hardware design) и ряда других. Реконфигурирование— это перепрограммирование аппаратуры; теоретически его можно применять к массивам, собранным из ядер с фон-неймановской архитектурой, но гораздо перспективнее— к ядрам, представляющим собой антимашины.

В последние годы Хартенштайна, как многих ветеранов, приглашают в качестве докладчика на многочисленные конференции и семинары. Основную тему, с которой он выступает, сегодня называют «синдромом фон Неймана». Авторство этого термина приписывают профессору из Беркли Чандуру Рамамути, однажды прослушавшему выступление Хартенштайна, а затем образно выразившему его взгляды. (Сам Рамамути в ряде своих работ показал, что чаще всего компьютеры с массовым параллелизмом, содержащие тысячи и десятки тысяч процессоров, оказываются менее продуктивными, чем ожидается при их проектировании. Основные причины этого эффекта, называемого самим Рамамути «суперкомпьютерным кризисом»,— наличие «стены памяти» и сложность программирования параллельных задач, что тоже является следствием фон-неймановской архитектуры.)

Целесообразно уточнить использование слова «синдром» в данном контексте. В русском языке его употребляют в медицинском смысле, как комплекс симптомов, но в данном случае его следует понимать шире, как цепь взаимосвязанных событий или сочетание явлений. В интерпретации Хартенштайна «синдром фон Неймана»— это цепочка событий, приведшая компьютерные технологии от изобретения архитектуры фон Неймана к нынешнему состоянию, хотя можно его понимать и в медицинском смысле, как застарелую болезнь. В качестве философской предпосылки для своих рассуждений Хартенштайн ссылается на Артура Шопенгауэра, писавшего: «Примерно каждые 30 лет наука, литература, искусство переживают период банкротства, коллапсируя под тяжестью накопленных ошибок». Хартенштайн считает, что в компьютерных технологиях и в компьютерных науках наступление кризиса было отложено лет на 30 благодаря опережающему развитию полупроводниковых технологий, зафиксированному в законе Мура.

Архитектура фон Неймана и ее зеркальное отражение

Главный вывод Хартенштайна состоит в том, что и энергетическая стена, и стена памяти, и стена параллелизма на уровне команд являются прямым следствием фон-неймановской архитектуры. Из-за технологических ограничений Джоном фон Нейманом была избрана схема, в основе которой лежит управляемый поток команд, программа, выбирающая необходимые для команд данные. Этим определяется канонический состав архитектурных компонентов, составляющих любой компьютер,— счетчик команд, код операции и адреса операндов; он остается неизменным по сей день. Все мыслимые и немыслимые усовершенствования архитектуры фон Неймана в конечном счете сводятся к повышению качества управления потоком команд, методам адресации данных и команд, кэшированию памяти и т.п. При этом последовательная архитектура не меняется, но сложность ее возрастает. Очевидно, что представление о компьютере как об устройстве, выполняющем заданную последовательность команд, лучше всего подходит для тех случаев, когда объем обрабатываемых данных невелик, а данные являются статическими. Но в современных условиях приходится сталкиваться с приложениями, где относительно небольшое количество команд обрабатывает потоки данных. В таком случае целесообразно предположить, что компьютером может быть и устройство, которое имеет каким-то образом зашитые в него алгоритмы и способно обрабатывать потоки данных. Такие компьютеры могли бы обладать естественным параллелизмом, а их программирование свелось бы к распределению функций между большим числом ядер.

Итак, можно допустить существование двух альтернативных схем. Одна, фон-неймановская, предполагает, что вычислительным процессом управляет поток команд, а данные, в основном статичные, выбираются из каких-то систем хранения или из памяти. Вторая схема основывается на том, что процессом вычислений управляют входные потоки данных, которые на входе системы попадают в подготовленную вычислительную инфраструктуру, обладающую естественным параллелизмом. С точки зрения реализации первая схема гораздо проще, кроме того, она универсальна, программы компилируются и записываются в память, а вторая требует специальной сборки нужной для определенной задачи аппаратной конфигурации. Скорее всего, эти две схемы должны сосуществовать, отражая две стороны компьютинга, своего рода ян и инь. Как ни странно, но вторая схема старше; пример тому— табуляторы, изобретенные Германом Холлеритом и с успехом использовавшиеся на протяжении нескольких десятилетий. Корпорация IBM достигла своего могущества и стала одной из самых влиятельных компаний в США, производя электромеханические табуляторы для обработки больших массивов информации, не требующей выполнения логических операций. Их программирование осуществлялось посредством коммутации на пульте, а далее устройство управления в соответствии с заданной программой координировало работу остальных устройств.

Антипод машины фон Неймана почти по всем своим свойствам (см. таблицу) антисимметричен ей, поэтому Хартенштайн и назвал его антимашиной. От машины фон Неймана антимашина отличается наличием одного или нескольких счетчиков данных, управляющих потоками данных, она программируется с использованием потокового обеспечения (Flowware), а роль центрального процессора в ней играют один или несколько процессоров данных (Data Path Unit, DPU). Центральной частью антимашины может стать память с автоматической последовательностью (Auto-Sequence Memory).

Таблица.

Архитектура фон Неймана, реконфигурируемые компьютерные системы и антимашина

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

Рис. 3. Общая схема антимашины

Рис. 3. Общая схема антимашины

В антимашине доступ к памяти обеспечивается не по адресу команды или фрагмента данных, записанному в соответствующий регистр, а посредством универсального генератора адресов (Generic Address Generator, GAG). Его преимущество в том, что он позволяет передавать блоки и потоки данных. В то же время компиляция, посредством которой создается специализированная под определенную задачу система, заключается в объединении нужного количества настроенных процессоров данных в общий массив (Data Process Array, DPA), на котором выполняются алгоритмы Flowware и который может быть реконфигурируемым.

Методология GAG непоследовательна, а потому обладает такими достоинствами, как возможность работы с двухмерными адресами, что дает неоспоримые преимущества при работе с видеоданными и при выполнении параллельных вычислений. Счетчик данных (data counter)— альтернатива счетчику команд в машине фон Неймана; его содержимым управляет Flowware. Для новой методологии придумано и новое название— twin.paradigm; оно отражает симбиоз вычислительных ядер двух классов, как обычных центральных процессоров, построенных по фон-неймановской схеме, так и процессоров данных, реализующих антимашины.

Реконфигурируемый компьютинг— хорошо забытое старое

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

О реконфигурируемом компьютинге активно заговорили в последние годы, но сама идея адаптации аппаратного обеспечения под конкретную задачу далеко не нова. Ее выдвинул в 1959 году физик и математик Джон Паста, который был, что удивительно, коллегой Джона фон Неймана и вместе с Энрико Ферми работал над созданием атомной бомбы. Помимо других своих достижений он известен тем, что был первым, кто использовал компьютер в качестве инструмента для моделирования физических процессов. Полученный им опыт позволил прийти к выводу о том, что производители коммерческих компьютеров с самых первых шагов потеряли интерес к разработке альтернативных компьютерных архитектур, целиком сосредоточившись на архитектуре фон Неймана. И тогда Паста решил, что сначала необходимо выполнить определенный объем академических исследований и тем самым создать стимул для продолжения аналогичных работ в частном секторе. Своими соображениями относительно адаптируемых компьютерных архитектур он поделился с сотрудником Калифорнийского университета в Лос-Анджелесе Джеральдом Эстрином, который к тому времени обладал неплохим послужным списком, успев построить первый израильский компьютер WEIZAC (Weizmann Automatic Computer). Через год, в 1960 году, Эстрин выступил на известной в те годы конференции Western Joint Computer Conference с докладом «Организация вычислительной системы, состоящей из постоянной и переменной структур». Цель работы Эстрина состояла в разработке вычислительных систем, отличающихся от традиционных тем, что они представляли собой набор модулей для сборки специализированных компьютеров под определенную задачу. Впоследствии была предпринята попытка создать модульный комплект, из которого можно было бы собирать реконфигурируемые компьютеры, но на технологическом фундаменте начала 60-х она оказалась неудачной, однако тем не менее теоретические основы были сформулированы.

Технологический мэйнстрим отодвинул работу Эстрина на обочину, но периодически о ней вспоминали. Так, в экспериментальном компьютере PDP-16, предназначенном для управления технологическими процессами, который построили в корпорации Digital Equipment в 70-е годы, была реализована модульная схема Register-Transfer Modules. PDP-16 представлял собой своего рода конструктор, из которого можно было собирать компьютер, адаптированный к конкретным алгоритмам управления.

Теоретически возможно существование трех подходов к созданию реконфигурируемых процессоров.

  • Специализированные процессоры (Application-Specific Standard Processor). Процессоры, имеющие набор команд, адаптированный к определенным приложениям.

  • Конфигурируемые процессоры (Configurable Processor). Своего рода «заготовки» для создания специализированных процессоров, содержат в себе необходимый набор компонентов, адаптируемый к требованиям приложений. В таком случае проектирование специализированного процессора оказывается проще, чем с чистого листа.

  • Динамические реконфигурируемые процессоры (Dynamically Reconfigurable Processor). Процессоры, содержащие стандартное ядро и расширяющее его возможности устройство, которое может быть запрограммировано в процессе исполнения, обычно это бывает программируемая логическая матрица (Field Programmable Gate-Array, FPGA).

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

Реконфигурируемые сигнальные процессоры

Лет 15-20 назад было предпринято несколько попыток создания гибридного процессора, состоящего из переменной и постоянной частей. Тогда и вспомнили про Эстрина; ему даже была посвящена специальная публикация в журнале The Economist «Реконфигурируемые системы готовятся к реанимации». Возможность для реконфигурации создали появившиеся к тому времени программируемые логические матрицы компании Xilinx, а непосредственный интерес был вызван появлением архитектуры PRISM (Processor Reconfiguration through Instruction-Set Metamorphosis), где для ускорения отдельных приложений возможности ядра могли быть расширены дополнительными операциями. Одним из наиболее известных процессоров с возможностями реконфигурации был Garp, разработанный в Беркли, который сочетал в себе ядро MIPS и инфраструктуру на основе FPGA.

Из этой волны выросло поколение реконфигурируемых сигнальных процессоров. Самым интересным из современных проектов является разрабатываемый в Италии процессор XiRiх (Extended Instruction Set Risc). Тем, кто серьезно заинтересуется программированием таких процессоров, стоит обратиться к выложенной в Сети диссертации Каудио Муччи (Software tools for embedded reconfigurable processors).

Горячие головы увлеклись идеей реконфигурации. В 1995 году аналитик из Gartner Йордан Селбурн предположил, что за десять последующих лет рынок реконфигурируемых чипов составит 50 млрд долл., но этот прогноз не оправдался?— скорее всего, потому, что и тогда уровень развития полупроводниковых технологий оказался недостаточным. Но уроки извлекать следует и из неудачных прогнозов, в частности из того, чему могут научить встраиваемые процессоры.

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

Реконфигурируемый компьютинг и HPC

За всеобщим увлечением высокопроизводительными кластерами остается не слишком заметной деятельность компаний Cray, SGI и SRC, которые активно используют ускорители вычислений на базе FPGA. Такими устройствами снабжены машины Cray XD1 и сервер SGI Reconfigurable Application-Specific Computing (RASC). По мнению аналитиков, эти решения представляют собой примеры, свидетельствующие о возможности применения FPGA за пределами традиционных встраиваемых приложений.

Компания SRC, созданная Сеймуром Креем незадолго до его гибели, связывает всю свою производственную программу с реконфигурируемыми компьютерными системами. Она разрабатывает архитектуру Implicit+Explicit, состоящую из традиционных компонентов Dense Logic Device и реконфигурируемых устройств Direct Execution Logic. Программная среда SRC Carte Programming Environment поддерживает программирование на Си и Фортране, не требуя от программиста знаний, связанных с программированием аппаратного обеспечения.

Как жить дальше?

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

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

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

** Следует заметить, что эта управляющая отраслью «мировая константа» впервые была замечена не Гордоном Муром, как думают многие, а великим Дагом Энгельбартом. Именно он сделал прогноз о периодическом удвоении плотности в 1960 году, на пять лет раньше появления знаменитой статьи Мура.— Прим. автора.

*** Чтобы подчеркнуть степень радикальности грядущих трансформаций, Отеллини использовал очень сильный и подчеркнуто элитарный эпитет sea change. Это выражение впервые встречается у Шекспира, а в современный оборот его ввел американский поэт Эзра Паунд. Такие выражения не выбирают случайно.— Прим. автора.

Содержание

  1. Фон-неймановская и гарвардская архитектуры
  2. Архитектура микропроцессора. Основные понятия
  3. Архитектура вычислительных машин
  4. На пальцах про работу процессора
  5. Архитектура фон Неймана: состав и принципы
  6. Гарвардская архитектура: принципы и особенности, отличия от архитектуры фон Неймана
  7. Арифметико-логическое устройство
  8. Устройство выборки команд
  9. Набор инструкций процессора
  10. Схема ядра процессора
  11. 10 различий между фон Нейман и Гарвардской архитектуры
  12. Архитектура фон Неймана
  13. Применение и функции
  14. Гарвард Архитектура
  15. Применение и функции
  16. Особенности архитектуры фон Неймана
  17. Особенности Гарвардской Архитектуры
  18. Разница между фон Нейман и Гарвардской архитектуры
  19. Если вам понравилась эта статья, подпишитесь на вашу электронную почту для связанных материалов. Благодарю.
  20. Присоединяйтесь к более чем 5 миллионам подписчиков сегодня!
  21. Закат архитектуры фон Неймана, о котором вы еще не слышали и что будет дальше?
  22. Классическая архитектура фон Неймана
  23. Физические ограничения материалов
  24. Отказоустойчивость и брак в производстве
  25. Потребление электроэнергии и размер суперкомпьютеров
  26. Online learning and continuous-flow
  27. Параллелизм и масштабируемость

Фон-неймановская и гарвардская архитектуры

dark fb.4725bc4eebdb65ca23e89e212ea8a0ea dark vk.71a586ff1b2903f7f61b0a284beb079f dark twitter.51e15b08a51bdf794f88684782916cc0 dark odnoklas.810a90026299a2be30475bf15c20af5b

caret left.c509a6ae019403bf80f96bff00cd87cd

caret right.6696d877b5de329b9afe170140b9f935

Архитектура микропроцессора. Основные понятия

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

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

Полностью понятие архитектура МП включает:

— структурную схему МП,

— программную модель МП,

— описание организации памяти,

— описание организации процедур ввода/вывода.

Различают два основных типа архитектуры МП – фон Неймановскую (принстонскую) и гарвардскую.

image002image004

Фоннеймановская архитектура Гарвардская архитектура

Фон Неймановская (принстонская) архитектура (предложена Джо фон Нейманом в 1945 г.) предполагает, что программа и данные находятся в общей памяти, доступ к которой производится по одной шине данных и команд. Основным достижением группы инженеров, работавших с Джоном фон Нейманом, было осознание того факта, что программа может храниться в памяти вместе с данными. Основным преимуществом такого подхода является его гибкость, так как для изменения программы достаточно просто загрузить новый код в соответствующую область памяти. По существу, фон-неймановская архитектура, показанная на рис., состоит из центрального процессора (ЦПУ), памяти и общей шины (магистрали), по которой в обоих направлениях пересылаются данные. ЦПУ также должен взаимодействовать и с окружающим миром. При этом данные к/от соответствующих интерфейсных портов передаются по одной общей шине данных.

image006 Рис. – Элементарная фон-неймановская машина (шина адреса не показана)

Гарвардская архитектура (реализована в 1944 г. в ЭВМ Гарвардского университета) соответствует структуре с разделенными устройствами памяти команд и данных и отдельными шинами команд и данных.

Источник

Архитектура вычислительных машин

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

Принстонская архитектура

pk

Любую вычислительную машину образуют три основные компонента:

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

Системная шина, в свою очередь, представляет собой совокупность

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

Устройство управления (УУ) формирует адрес команды, которая должна быть выполнена в данном цикле, и выдает управляющий сигнал на чтение содержимого соответствующей ячейки запоминающего устройства (ЗУ). Считанная команда передается в УУ. По информации, содержащейся в адресных полях команды, УУ формирует адреса операндов и управляющие сигналы для их чтения из ЗУ и передачи в арифметико-логическое устройство (АЛУ). После считывания операндов устройство управления по коду операции, содержащемуся в команде, выдает в АЛУ сигналы на выполнение операции. Полученный результат записывается в ЗУ по адресу приемника результата под управлением сигналов записи. Признаки результата (знак, наличие переполнения, признак нуля и так далее) поступают в устройство управления, где записываются в специальный регистр признаков. Эта информация может использоваться при выполнении следующих команд программы, например команд условного перехода.

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

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

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

Основные принципы построения вычислительных машин с архитектурой фон Неймана

Архитектура фон Неймана имеет ряд важных достоинств.

Поэтому Принстонская архитектура в течение долгого времени доминировала в вычислительной технике.

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

Гарвардская архитектура

Гарвардская архитектура была разработана Говардом Эйкеном в конце 1930-х годов в Гарвардском университете с целью увеличить скорость выполнения вычислительных операций и оптимизировать работу памяти. Она характеризуется физическим разделением памяти команд (программ) и памяти данных. В ее оригинальном варианте использовался также отдельный стек для хранения содержимого программного счетчика, который обеспечивал возможности выполнения вложенных подпрограмм. Каждая память соединяется с процессором отдельной шиной, что позволяет одновременно с чтением-записью данных при выполнении текущей команды производить выборку и декодирование следующей команды. Благодаря такому разделению потоков команд и данных и совмещению операций их выборки реализуется более высокая производительность, чем при использовании Принстонской архитектуры.
pk harward
Недостатки Гарвардской архитектуры связаны с необходимостью проведения большего числа шин, а также с фиксированным объемом памяти, выделенной для команд и данных, назначение которой не может оперативно перераспределяться в соответствии с требованиями решаемой задачи. Поэтому приходится использовать память большего объема, коэффициент использования которой при решении разнообразных задач оказывается более низким, чем в системах с Принстонской архитектурой. Однако развитие микроэлектронной технологии позволило в значительной степени преодолеть указанные недостатки, поэтому Гарвардская архитектура широко применяется во внутренней структуре современных высокопроизводительных микропроцессоров, где используется отдельная кэш-память для хранения команд и данных. В то же время во внешней структуре большинства микропроцессорных систем реализуются принципы Принстонской архитектуры.

Источник

На пальцах про работу процессора

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

Теперь мы готовы сделать еще один шаг к пониманию работы процессора и прямо сейчас соберем самый простой, но вполне работающий процессор.

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

Архитектура фон Неймана: состав и принципы

Арифметико-логическое устройство процессора служит для выполнения арифметических операций над данными. Управляет всеми процессами дешифратор команд. Так его чаще всего называют. Единый набор шин служит для передачи адреса, данных и управляющих сигналов как к памяти, так и периферийному оборудованию, через которое осуществляется ввод и вывод данных. Рассмотренная архитектура носит название архитектура фон Неймана. Еще одно название — Принстонская архитектура.

Гарвардская архитектура: принципы и особенности, отличия от архитектуры фон Неймана

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

Арифметико-логическое устройство

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

Устройство части процессора, работающей с данными

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

Операция загрузки аккумулятора числом

Это довольно просто. Управление мультиплексора установлено в единицу, значит на вход регистра пройдут данные с нижнего входа мультиплексора. Данные запишутся в аккумулятор по переднему фронту тактового импульса. Еще одной операцией можно загрузить аккумулятор числом из памяти данных. Это тоже не сложно. На шину адреса памяти выставляется номер ячейки с нужным числом. Число выставляется на выход памяти. На два управления мультиплексорами выставляются нули чтобы данные проходили через верхние входы. По тактовому сигналу происходит запись числа в регистр.

Операция загрузки аккумулятора из памяти

Еще такая конструкция способна совершить арифметические операции.

Выполнение арифметических операций на процессоре

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

Сохранение содержимого аккумулятора в памяти

Устройство выборки команд

Рассмотрим конструкцию, задача которой производить выборку команд из памяти программ.

Устройство выборки команд

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

Последовательная выборка команд

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

Загрузка произвольного адреса инструкции

Набор инструкций процессора

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

Система команд процессора

Пусть для сложения код операции — 000. Операндом является адрес ячейки, с содержимым которой необходимо сложить содержимое аккумулятора. Результат будет помещен в аккумулятор. Эти восемь бит образуют машинный код команды. Сокращенная запись команды при помощи букв, более удобная для программиста называется мнемоникой.

Код операции вычитания это 001. Операндом также является адрес ячейки памяти. Содержимое ячейки вычитается из аккумулятора и результат записывается в аккумулятор. Код операции загрузки аккумулятора из памяти это 010. В операнде адрес ячейки, содержимое которой заносится в аккумулятор. Код операции сохранения содержимого аккумулятора это 011. Операндом является адрес ячейки памяти, в которую сохраняется содержимое аккумулятора. Операция перехода на новый адрес команды имеет код 100. Операндом является адрес новой команды. Команда загрузки числа в аккумулятор непосредственно из инструкции имеет код 110. Операндом является число, которое занесется в аккумулятор. Последней командой будет завершение выполнения программы. Она имеет код 111 и не будет иметь операнда. То есть содержимое пяти бит операнда безразлично и ни на что не влияет.

Схема ядра процессора

Перейдем к полной схеме ядра процессора.

Схема ядра процессора и система команд

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

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

Поддержите статью репостом если понравилось и подпишитесь чтобы ничего не пропускать, а также посетите канал на YouTube c интересными материалами в формате видео.

Источник

10 различий между фон Нейман и Гарвардской архитектуры

Разница между фон Нейманом и гарвардской архитектурой: архитектура фон Неймана была разработана известным физиком и математиком Джоном фон Нейманом в конце 1940-х годов, а архитектура Гарварда была основана на оригинальном релейном компьютере Harvard Mark I.

lazy placeholder

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

Архитектура фон Неймана

Архитектура фон Неймана это не что иное, как искусство хранения электронного компьютера. Это совсем не новая концепция, она существует уже давно, и мы следуем принципу этой архитектуры фон Неймана. Если мы вернемся в историю, совершенно очевидно, что архитектура фон Неймана была впервые опубликована в отчете Джона фон Неймана 30 июня 1945 года, и с тех пор тот же принцип применяется для хранения электронных компьютеров.

Применение и функции

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

Устройство управления: Это подразделение в основном отвечает за аспект управления. Все данные хранятся в памяти и во время обработки данных блок управления играет роль и управляет потоком данных. Фактически, если быть более типичным, это «По одному». Блок управления следует принципу One At A Time и, соответственно, обрабатывает все данные.

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

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

Гарвард Архитектура

Применение и функции

Состояние памяти

В предыдущей архитектуре мы наблюдали наличие двух воспоминаний. Однако в случае Гарвардский архитектуры, вы не найдете двух памяти и будет одна память. Имеющаяся память сможет выполнять все функции. Да, будет только постоянная память, и эта память будет использоваться для чтения, кодирования, декодирования и хранения данных.

Аспект скорости

Много говорилось о Гарвардский архитектура, но без скорости никакая архитектура не может быть принята. Но в случае архитектуры Havard производители разработали архитектуру таким образом, чтобы она могла обрабатывать данные с гораздо более высокой скоростью. Да, все внимание было уделено тому, чтобы архитектура могла обрабатывать данные с высокой скоростью.

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

Читайте также:

Особенности архитектуры фон Неймана

lazy placeholder

Особенности Гарвардской Архитектуры

Разница между фон Нейман и Гарвардской архитектуры

Точка сравнения Гарвард Архитектура Архитектура фон Неймана
Соглашение В гарвардской архитектуре ЦП связан как с памятью данных (RAM), так и с памятью программ (ROM), отдельно. В архитектуре фон Неймана нет отдельной памяти данных и программ. Вместо этого, одно соединение памяти предоставляется ЦПУ.
требования к оборудованию Для этого требуется больше оборудования, поскольку для каждой памяти потребуются отдельные данные и адресная шина. В отличие от архитектуры Гарварда, для этого требуется меньше оборудования, так как требуется только общая память.
требования к свободному пространству Это требует больше места. Архитектура фон Неймана требует меньше места.
Скорость исполнения Скорость выполнения выше, потому что процессор извлекает данные и инструкции одновременно. Скорость выполнения ниже, поскольку он не может одновременно получать данные и инструкции.
Использование пространства Это приводит к неэффективной трате пространства, поскольку, если в памяти данных остается пространство, память инструкций не может использовать пространство памяти данных, и наоборот. Пространство не тратится впустую, потому что пространство памяти данных может использоваться памятью инструкций и наоборот.

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

CSN Team.

Присоединяйтесь к более чем 5 миллионам подписчиков сегодня!

=> ПОСЛЕДУЮЩИЕ США НА INSTAGRAM | FACEBOOK & TWITTER ПОСЛЕДНИЕ ОБНОВЛЕНИЯ

Источник

Закат архитектуры фон Неймана, о котором вы еще не слышали и что будет дальше?

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

LoihiChipBoard

На изображении отладочная плата с расположенными чипами Loihi.

Классическая архитектура фон Неймана

“Бутылочное горлышко” архитектуры фон Неймана.

Все классические компьютеры обладают так называемой архитектурой фон Неймана.

image loader
Рис. 1. The decline of von Neumanns architecture

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

Физические ограничения материалов

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

Реалии представляются таким образом, что этот закон начинает испытывать давление со стороны “законов физики микромира”.

image loader
Рис. 2. Уменьшение размеров транзистора приводит к ошибкам в его производстве

Тут мы сталкиваемся сразу с несколькими сложностями:

Отказоустойчивость и брак в производстве

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

image loader
Рис. 3. Блок схема процессора Xeon

Это сделано для того, чтоб в том случае, если в каком-то блоке выйдет из строя большое количество транзисторов из-за брака во время производства, этот блок можно было отключить, а процессор целиком остался в рабочем состоянии. Как вы понимаете, производство процессоров очень дорогое, и одна из причин этого большой процент брака. Процент брака кристаллов для 28-ядерных процессоров Intel Xeon составляет до 65 %. Если у конечного процессора не работает один из блоков памяти или одно из ядер не проходит TDP тест, его отключают, а процессор упаковывают в коробку “младшей модели”.

Подход хороший, но он требует отключения очень больших блоков: в случае отказа нескольких транзисторов, которых в одном ядре может быть семьсот миллионов. То есть отказ 0.000000001% транзисторов приводит к потере 10% и более производительности устройства.

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

Потребление электроэнергии и размер суперкомпьютеров

В современном мире, когда мобильный телефон обладает вычислительными способностями компьютера пятилетней давности и при этом работает от аккумулятора, нам кажется, что мы почти достигли предела в уменьшении потребления энергии компьютерами. Но, если мы сравним вычислительные способности суперкомпьютера IBM Summit, его размеры и потребляемые им объемы энергии с мозгом мыши, окажется, что он неимоверно большой и очень неэффективный.

summit%20supercomputer%20ornl%20ibm 2
Рис 4. IBM Power System AC922, IBM POWER9 22C 3.07GHz, NVIDIA Volta GV100, Dual-rail Mellanox
EDR InfiniBand, 2.41 million cores, 148.6 petaflops
Пиковая потребляемая мощность: 13 000 000 W
Размеры: 4,608 nodes * 0.2 m^3 = 920 m^3
Мозг мыши способен обрабатывать куда более сложные задачи при потреблении всего 1-5 ватт.

Online learning and continuous-flow

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

Да, сейчас существуют различные подходы bi-directional soft attention (см. BERT) для того, чтобы связывать эти самые кадры в работе с языковыми моделями. Также современные подходы машинного обучения лишены возможности обучаться непосредственно в процессе решения поставленной задачи. Это все еще две различные задачи.

Параллелизм и масштабируемость

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

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

Источник

Понравилась статья? Поделить с друзьями:
  • Синоним архитектурный стиль
  • Синоним архитектурная среда
  • Синоним архитектура дома
  • Синоним архитектору
  • Синоним архимедовой силы