Кем был построен первый компьютер в котором были воплощены принципы фон неймана
1.6. ПРИНЦИПЫ ФОН НЕЙМАНА
В 1945 г. к работе над созданием вычислительной машины был привлечен знаменитый математик Джон фон Нейман.
В своем докладе Джон фон Нейман описал, как должен быть устроен компьютер для того, чтобы он был универсальным и эффективным устройством для обработки информации.
Устройства компьютера
Прежде всего, компьютер должен иметь следующие устройства:
1. арифметическо-логическое устройство, выполняющее арифметические и логические операции;
2. устройство управления, которое организует процесс выполнения программ;
3. запоминающее устройство, или память для хранения программ и данных;
4. внешние устройства для ввода-вывода информации.
Память компьютера должна состоять из некоторого количества пронумерованных ячеек, в каждой из которых могут находиться или обрабатываемые данные, или инструкции программ. Все ячейки памяти должны быть одинаково легко доступны для других устройств компьютера.
Вот каковы должны быть связи между устройствами компьютера (одинарные линии показывают управляющие связи, двойные — информационные).
Особенности современных компьютеров. Следует заметить, что схема устройства современных компьютеров несколько отличается от приведенной выше. В частности, арифметическо-логическое устройство и устройство управления, как правило, объединены в единое устройство — центральный процессор. Кроме того, процесс выполнения программ может прерываться для выполнения неотложных действий связанных с поступившими сигналами от внешних устройств компьютера — прерываний. Многие быстродействующие компьютеры осуществляют параллельную обработку данных на нескольких процессорах. Тем не менее, большинство современных компьютеров в основных чертах соответствуют принципам, изложенным фон Нейманом.
Принципы работы компьютера
В общих чертах работу компьютера можно описать так. Вначале с помощью какого-либо внешнего устройства в память компьютера вводится программа. Устройство управления считывает содержимое ячейки памяти, где находится первая инструкция (команда) программы, и организует ее выполнение. Эта команда может задавать выполнение арифметических или логических операций, чтение из памяти данных для выполнения арифметических или логических операций или запись их результатов в память, ввод данных из внешнего устройства в память или вывод данных из памяти на внешнее устройство.
Как правило, после выполнения одной команды устройство управления начинает выполнять команду из ячейки памяти, которая находится непосредственно за только что выполненной командой. Однако этот порядок может быть изменен с помощью команд передачи управления (перехода). Эти команды указывают устройству управления, что ему следует продолжить выполнение программы, начиная с команды, содержащейся в некоторой другой ячейке памяти. Такой «скачок», или переход, в программе может выполняться не всегда, а только при выполнении некоторых условий, например, если некоторые числа равны, если в результате предыдущей арифметической операции получился пуль и т.д. Это позволяет использовать одни и те же последовательности команд в программе много раз (т.е. организовывать циклы), выполнять различные последовательности команд в зависимости от выполнения определенных условий и т.д., т.е. создавать сложные программы. Таким образом, управляющее устройство выполняет инструкции программы автоматически, т.е. без вмешательства человека. Оно может обмениваться информацией с оперативной памятью и внешними устройствами компьютера. Поскольку внешние устройства, как правило, работают значительно медленнее, чем остальные части компьютера, управляющее устройство может приостанавливать выполнение программы до завершения операции ввода-вывода. Все результаты выполненной программы должны быть ею выведены на внешние устройства компьютера, после чего компьютер переходит к ожиданию каких-либо сигналов внешних устройств.
Необходимо отметить огромную роль американского математика фон Неймана в становлении техники первого поколения. Нужно было осмыслить сильные и слабые стороны ENIAC и дать рекомендации для последующих разработок. В отчете фон Неймана и его коллег Г. Голдстайна и А.Беркса (июнь 1946 года) были четко сформулированы требования к структуре компьютеров. Отметим важнейшие из них:
· в машине используется параллельный принцип организации вычислительного процесса (операции над числами производятся одновременно по всем разрядам).
Чтобы упростить процесс задания программ, Моучли и Эккерт стали конструировать новую машину, которая могла бы хранить программу в своей памяти. В 1945 году к работе был привлечен знаменитый математик Джон фон Нейман, который подготовил доклад об этой машине. В этом докладе фон Нейман ясно и просто сформулировал общие принципы функционирования универсальных вычислительных устройств, т.е. компьютеров. Это первая действующая машина, построенная на вакуумных лампах, официально была введена в эксплуатацию 15 февраля 1946 года. Эту машину пытались использовать для решения некоторых задач, подготовленных фон Нейманом и связанных с проектом атомной бомбы. Затем она была перевезена на Абердинский полигон, где работала до 1955 года.
Параллелизм и масштабируемость
Возвращаясь к архитектуре фон Неймана, мы видим, что весь поток данных проходит через некий вычислительный центр, то есть по сути еще одно узкое горлышко. Количество ядер в современных чипах растет, но вслед за этим возникает и новая проблема: сперва данные нужно распараллелить, а после синхронизировать результаты. То есть, если у вас множество независимых входных сигналов и они не связаны между собой ни во времени, ни в контексте, множество ядер процессоров и ядер видеокарт хорошо справляются с этой задачей. Но в том случае, если у вас большой входной сигнал, то задача параллелизма вычислений, синхронизации результатов может занять большую часть этих самых вычислений.
Оригинал статьи
В следующей статье я рассказываю как решают все перечисленные сложности по средствам Neuromorphic архитектуры.
Практически все рекомендации фон Неймана впоследствии использовались в машинах первых трех поколений, их совокупность получила название «архитектура фон Неймана». Первый компьютер, в котором были воплощены принципы фон Неймана, был построен в 1949 году английским исследователем Морисом Уилксом. С той поры компьютеры стали гораздо более мощными, но подавляющее большинство из них сделано в соответствии с теми принципами, которые изложил в своем докладе в 1945 года Джон фон Нейман.
Устройство и работа компьютера по «принципу фон Неймана»
· трудности физической реализации запоминающего устройства, быстродействие которого соответствует скорости работы логических схем, требуют иерархической организации памяти (то есть выделения оперативной, промежуточной и долговременной памяти);
Новые машины первого поколения сменяли друг друга довольно быстро. В 1951 году заработала первая советская электронная вычислительная машина МЭСМ, площадью около 50 квадратных метров. МЭСМ имела 2 вида памяти: оперативное запоминающее устройство, в виде 4 панелей высотой в 3 метра и шириной 1 метр; и долговременная память в виде магнитного барабана объемом 5000 чисел. Всего в МЭСМ было 6000 электронных ламп, а работать с ними можно было только после 1,5-2 часов после включения машины. Ввод данных осуществлялся с помощью магнитной ленты, а вывод – цифропечатающим устройством сопряженным с памятью. МЭСМ могла выполнять 50 математических операций в секунду, запоминать в оперативной памяти 31 число и 63 команды (всего было 12 различных команд), и потребляла мощность равную 25 киловаттам.
Возможности машин первого поколения были достаточно скромны. Так, быстродействие их по нынешним понятиям было малым: от 100 («Урал-1») до 20 000 операций в секунду (М-20 в 1959 году). Эти цифры определялись в первую очередь инерционностью вакуумных ламп и несовершенством запоминающих устройств. Объем оперативной памяти был крайне мал – в среднем 2 048 чисел (слов), этого не хватало даже для размещения сложных программ, не говоря уже о данных. Промежуточная память организовывалась на громоздких и тихоходных магнитных барабанах сравнительно небольшой емкости (5 120 слов у БЭСМ-1). Медленно работали и печатающие устройства, а также блоки ввода данных. Если же остановиться подробнее на устройствах ввода-вывода, то можно сказать, что с начала появления первых компьютеров выявилось противоречие между высоким быстродействием центральных устройств и низкой скоростью работы внешних устройств. Кроме того, выявилось
несовершенство и неудобство этих устройств. Первым носителем данных в компьютерах, как известно, была перфокарта. Затем появились перфорационные бумажные ленты или просто перфоленты. Они пришли из телеграфной техники после того, как в начале XIX в. отец и сын из Чикаго Чарлз и Говард Крамы изобрели телетайп.
Первой работающей машиной с архитектурой фон Неймана стал манчестерский «Baby» — Small-Scale Experimental Machine (Малая экспериментальная машина), созданный в Манчестерском университете в 1948 году; в 1949 году за ним последовал компьютерМанчестерский Марк I, который уже был полной системой, с трубками Уильямса и магнитным барабаном в качестве памяти, а также с индексными регистрами. Другим претендентом на звание «первый цифровой компьютер с хранимой программой» стал EDSAC, разработанный и сконструированный в Кембриджском университете. Заработавший менее чем через год после «Baby», он уже мог использоваться для решения реальных проблем. На самом деле, EDSAC был создан на основе архитектуры компьютера EDVAC, наследника ENIAC. В отличие от ENIAC, использовавшего параллельную обработку, EDVAC располагал единственным обрабатывающим блоком. Такое решение было проще и надёжнее, поэтому такой вариант становился первым реализованным после каждой очередной волны миниатюризации. Многие считают, что Манчестерский Марк I / EDSAC / EDVAC стали «Евами», от которых ведут свою архитектуру почти все современные компьютеры.
Первый универсальный программируемый компьютер в континентальной Европе был создан командой учёных под руководствомСергея Алексеевича Лебедева из Киевского института электротехники СССР, Украина. ЭВМ МЭСМ (Малая электронная счётная машина) заработала в 1950 году. Она содержала около 6000 электровакуумных ламп и потребляла 15 кВт. Машина могла выполнять около 3000 операций в секунду. Другой машиной того времени была австралийская CSIRAC, которая выполнила свою первую тестовую программу в 1949 году.
В октябре 1947 года директора компании Lyons & Company, британской компании, владеющей сетью магазинов и ресторанов, решили принять активное участие в развитии коммерческой разработки компьютеров. Компьютер LEO I начал работать в 1951 году и впервые в мире стал регулярно использоваться для рутинной офисной работы.
Машина Манчестерского университета стала прототипом для Ferranti Mark I. Первая такая машина была доставлена в университет в феврале 1951 года, и, по крайней мере, девять других были проданы между 1951 и 1957 годами.
В июне 1951 года UNIVAC 1 был установлен в Бюро переписи населения США. Машина была разработана в компании Remington Rand, которая, в конечном итоге, продала 46 таких машин по цене более чем в 1 млн $ за каждую. UNIVAC был первым массово производимым компьютером; все его предшественники изготовлялись в единичном экземпляре. Компьютер состоял из 5200 электровакуумных ламп, и потреблял 125 кВт энергии. Использовались ртутные линии задержки, хранящие 1000 слов памяти, каждое по 11 десятичных цифр плюс знак (72-битные слова). В отличие от машин IBM, оснащаемых устройством ввода с перфокарт, UNIVAC использовал ввод с металлизированной магнитной ленты стиля 1930-х, благодаря чему обеспечивалась совместимость с некоторыми существующими коммерческими системами хранения данных. Другими компьютерами того времени использовался высокоскоростной ввод с перфоленты и ввод/вывод с использованием более современных магнитных лент.
Первой советской серийной ЭВМ стала Стрела, производимая с 1953 на Московском заводе счётно-аналитических машин. «Стрела» относится к классу больших универсальных ЭВМ (Мейнфрейм) с трёхадресной системой команд. ЭВМ имела быстродействие 2000-3000 операций в секунду. В качестве внешней памяти использовались два накопителя на магнитной ленте емкостью 200 000 слов, объём оперативной памяти — 2048 ячеек по 43 разряда. Компьютер состоял из 6200 ламп, 60 000 полупроводниковых диодов и потреблял 150 кВт энергии.
В 1954 году IBM выпускает машину IBM 650, ставшую довольно популярной — всего было выпущено более 2000 машин. Она весит около 900 кг, и ещё 1350 кг весит блок питания; оба модуля имеют размер примерно 1,5 × 0,9 × 1,8 метров. Цена машины составляет 500000 долл. (около 4 млн долл. в пересчёте на 2011 год) либо может быть взята в лизинг за 3500 долл. в месяц (30000 долл. на 2011 год). Память на магнитном барабане хранит 2000 10-знаковых слов, позже память увеличена до 4000 слов. По мере исполнения программы, инструкции считывались прямо с барабана. В каждой инструкции был задан адрес следующей исполняемой инструкции. Использовался компилятор Symbolic Optimal Assembly Program (SOAP), который размещал инструкции по оптимальным адресам, так чтобы следующая инструкция читалась сразу и не требовалось ждать пока барабан повернётся до нужного ряда.
В 1955 году Морис Уилкс изобретает микропрограммирование, принцип, который позднее широко используется в микропроцессорах самых различных компьютеров. Микропрограммирование позволяет определять или расширять базовый набор команд с помощью встроенных программ (которые носят названия микропрограмма илиfirmware).
В 1956 году IBM впервые продаёт устройство для хранения информации на магнитных дисках — RAMAC (Random Access Method of Accounting and Control). Оно использует 50 металлических дисков диаметром 24 дюйма, по 100 дорожек с каждой стороны. Устройство хранило до 5 МБ данных и стоило по 10 000 $ за МБ. (В 2006 году, подобные устройства хранения данных — жёсткие диски — стоят около 0,001 $ за Мб.)
Основы учения об архитектуре вычислительных машин заложил выдающийся американский математик Джон фон Нейман. Он подключился к созданию первой в мире ламповой ЭВМ ENIAC в 1944 г., когда ее конструкция была уже выбрана. В процессе работы во время многочисленных дискуссий со своими коллегами Г . Голдстайном и А. Берксом фон Нейман высказал идею принципиально новой ЭВМ. В 1946 г. ученые изложили свои принципы построения вычислительных машин в ставшей классической статье “Предварительное рассмотрение логической конструкции электронно-вычислительного устройства”. С тех пор прошло полвека, но выдвинутые в ней положения сохраняют актуальность и сегодня.
В статье убедительно обосновывается использование двоичной системы для представления чисел (нелишне напомнить, что ранее все вычислительные машины хранили обрабатываемые числа в десятичном виде). Авторы убедительно продемонстрировали преимущества двоичной системы для технической реализации, удобство и простоту выполнения в ней арифметических и логических операций. В дальнейшем ЭВМ стали обрабатывать и нечисловые виды информации –текстовую, графическую, звуковую и другие, но двоичное кодирование данных по-прежнему составляет информационную основу любого современного компьютера.
Еще одной поистине революционной идеей, значение которой трудно переоценить, является предложенный Нейманом принцип “хранимой программы”. Первоначально программа задавалась путем установки перемычек на специальной коммутационной панели. Это было весьма трудоемким занятием: например, для изменения программы машины ENIACтребовалось несколько дней (в то время как собственно расчет не мог продолжаться более нескольких минут – выходили из строя лампы). Нейман первым догадался, что программа может также храниться в виде набора нулей и единиц, причем в той же самой памяти, что и обрабатываемые ею числа. Отсутствие принципиальной разницы между программой и данными дало возможность ЭВМ самой формировать для себя программу в соответствии с результатами вычислений.
Фон Нейман не только выдвинул основополагающие принципы логического устройства ЭВМ, но и предложил ее структуру, которая воспроизводилась в течение первых двух поколений ЭВМ. Основными блоками по Нейману являются устройство управления (УУ) и арифметико-логическое устройство (АЛУ) (обычно объединяемые в центральный процессор), память, внешняя память, устройства ввода и вывода. Схема устройства такой ЭВМ представлена на рис. 1. Следует отметить, что внешняя память отличается от устройств ввода и вывода тем, что данные в нее заносятся в виде, удобном компьютеру, но недоступном для непосредственного восприятия человеком. Так, накопитель на магнитных дисках относится к внешней памяти, а клавиатура – устройство ввода, дисплей и печать – устройства вывода.
Рис. 1. Архитектура ЭВМ, построенной на принципах фон Неймана. Сплошные линии со стрелками указывают направление потоков информации, пунктирные – управляющих сигналов от процессора к остальными узлам ЭВМ
Устройство управления и арифметико-логическое устройство в современных компьютерах объединены в один блок –процессор, являющийся преобразователем информации, поступающей из памяти и внешних устройств (сюда относятся выборка команд из памяти, кодирование и декодирование, выполнение различных, в том числе и арифметических, операций, согласование работы узлов компьютера). Более детально функции процессора будут обсуждаться ниже.
Память (ЗУ) хранит информацию (данные) и программы. Запоминающее устройство у современных компьютеров “многоярусно” и включает оперативное запоминающее устройство (ОЗУ), хранящее ту информацию, с которой компьютер работает непосредственно в данное время (исполняемая программа, часть необходимых для нее данных, некоторые управляющие программы), и внешние запоминающие устройства (ВЗУ) гораздо большей емкости, чем ОЗУ. но с существенно более медленным доступом (и значительно меньшей стоимостью в расчете на 1 байт хранимой информации). На ОЗУ и ВЗУ классификация устройств памяти не заканчивается – определенные функции выполняют и СОЗУ (сверхоперативное запоминающее устройство), и ПЗУ (постоянное запоминающее устройство), и другие подвиды компьютерной памяти.
В построенной по описанной схеме ЭВМ происходит последовательное считывание команд из памяти и их выполнение. Номер (адрес) очередной ячейки памяти. из которой будет извлечена следующая команда программы, указывается специальным устройством – счетчиком команд в УУ. Его наличие также является одним из характерных признаков рассматриваемой архитектуры.
Разработанные фон Нейманом основы архитектуры вычислительных устройств оказались настолько фундаментальными, что получили в литературе название “фон-неймановской архитектуры”. Подавляющее большинство вычислительных машин на сегодняшний день – фон-неймановские машины. Исключение составляют лишь отдельные разновидности систем для параллельных вычислений, в которых отсутствует счетчик команд, не реализована классическая концепция переменной и имеются другие существенные принципиальные отличия от классической модели (примерами могут служить потоковая и редукционная вычислительные машины).
По-видимому, значительное отклонение от фон-неймановской архитектуры произойдет в результате развития идеи машин пятого поколения, в основе обработки информации в которых лежат не вычисления, а логические выводы.
За последние тридцать лет компьютеры настолько стали популярны, что успели изменить многие процессы в жизни человека и соответственно общества. С каждым годом, согласно закону Мура, они приобретают все больше вычислительных способностей, что позволяет им решать все более сложные задачи. Уже сегодня компьютеры столкнулись с рядом ограничений, которые не позволяют нам решать задачи из фильмов про будущее. Так ли будет и дальше, есть ли предел у современной архитектуры и что нам делать, если такой стремительный рост в дальнейшем невозможен?
На изображении отладочная плата с расположенными чипами Loihi.
Компьютер фон Неймана все так же будет обрабатывать задачи, связанные с реляционными базами данных (про BigData не уверен), численными методами, интернетом и тд. В общем он так и будет заниматься всем тем, для чего он был создан, но уже не будет такого быстрого прироста вычислительных способностей, а для решения задач обработки сигналов “реального мира” будет использоваться другой архитектурный подход. Оба архитектурных подхода будут использоваться на одной печатной плате, а со временем и в одном чипе.
Эта статья является вступлением для статьи Neuromorphic inspired computing и описывает проблематику вопроса, решения предлагаются во второй статье.
· арифметическое устройство (процессор) конструируется на основе схем, выполняющих операцию сложения; создание специальных устройств для выполнения других арифметических и иных операций нецелесообразно;
Online learning and continuous-flow
Тут хочется сказать больше об алгоритмах, нежели об архитектуре, хотя в данном контексте алгоритмы продиктованы архитектурой. Современный компьютер хорошо справляется с дискретными данными, когда есть, пускай и большое количество, но все же порционных, конечных, желательно целочисленных данных, тут он может себя проявить очень хорошо. Но вот, когда речь заходит о последовательностях, непрерывности, бесконечно малых или бесконечно больших значениях, тут мы пытаемся найти некое приближение. В результате мы интерпретируем наши данные в последовательность дискретных кадров, дробим, разделяем и обрабатываем каждый фрейм как нечто статическое и конечное.
Да, сейчас существуют различные подходы bi-directional soft attention (см. BERT) для того, чтобы связывать эти самые кадры в работе с языковыми моделями. Также современные подходы машинного обучения лишены возможности обучаться непосредственно в процессе решения поставленной задачи. Это все еще две различные задачи.
· машины на электронных элементах должны работать не в десятичной, а в двоичной системе счисления;
ENIAC стал первым представителем 1-го поколения компьютеров. Любая классификация условна, но большинство специалистов согласилось с тем, что различать поколения следует исходя из той элементной базы, на основе которой строятся машины. Таким образом, первое поколение представляется ламповыми машинами.
Отказоустойчивость и брак в производстве
Задумывались ли вы, как производят младшие модели процессоров и чипов для видеокарт? Вы наверное подумаете, что есть специально выделенные команды, которые разрабатывают каждый год новый упрощенный чип. На самом деле процесс выглядит по-другому. Компания разрабатывает один максимально мощный чип. Его устройство выглядит, как некая повторяющаяся архитектура. Обратите внимание на то, что практически все элементы дублируются, как и в авиации.
Рис. 3. Блок схема процессора Xeon
Подход хороший, но он требует отключения очень больших блоков: в случае отказа нескольких транзисторов, которых в одном ядре может быть семьсот миллионов. То есть отказ 0.000000001% транзисторов приводит к потере 10% и более производительности устройства.
Если предположить, что мы можем создавать блоки, основанные на ста транзисторах при количестве этих самых блоков более миллиона мы бы получили значительный прирост отказоустойчивости в чипе. Это значит, что при выходе из строя небольшого количества транзисторов мы бы теряли очень маленький процент блоков от их общего числа. Этот подход сильно бы удешевил стоимость производства, и топовый чип стоил бы уже не, как малолитражный автомобиль, а как хорошая рубашка.
· программа, как и исходные данные, должна размещаться в памяти машины;
Потребление электроэнергии и размер суперкомпьютеров
В современном мире, когда мобильный телефон обладает вычислительными способностями компьютера пятилетней давности и при этом работает от аккумулятора, нам кажется, что мы почти достигли предела в уменьшении потребления энергии компьютерами. Но, если мы сравним вычислительные способности суперкомпьютера IBM Summit, его размеры и потребляемые им объемы энергии с мозгом мыши, окажется, что он неимоверно большой и очень неэффективный.
Рис 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 ватт.
На следующем рисунке показано, каковы должны быть связи между устройствами компьютера согласно принципам фон Неймана (одинарные линии показывают управляющие связи, пунктир - информационные).
Классическая архитектура фон Неймана
“Бутылочное горлышко” архитектуры фон Неймана.
Все классические компьютеры обладают так называемой архитектурой фон Неймана.
Рис. 1. The decline of von Neumanns architecture
Недостатком такой архитектуры является тот факт, что данные из области памяти цикл за циклом должны передаваться в область вычислительного юнита и обратно. Интерфейс, связывающий вычислительный юнит и память компьютера, ограничен в своей пропускной способности. Даже тот факт, что современные процессоры имеют несколько уровней кэша непосредственно в вычислительном юните, не решает проблему. Данный подход усугубляется необходимостью аккумулировать и структурировать данные для полного заполнения буфера вычисляемых операций. Можно привести метафору с поездом: пока все пассажиры не займут именно свои места в поезде, поезд никуда не поедет.
Физические ограничения материалов
Согласно закону Мура, количество транзисторов удваивается примерно каждые два года при уменьшении стоимости их производства. Реализуется этот факт посредством уменьшения размера транзистора. Уменьшение размеров транзистора приводит нас к еще одному ограничению: их размеры обусловлены физическими свойствами материалов из которых они производятся.
Реалии представляются таким образом, что этот закон начинает испытывать давление со стороны “законов физики микромира”.
Рис. 2. Уменьшение размеров транзистора приводит к ошибкам в его производстве
Тут мы сталкиваемся сразу с несколькими сложностями:
- Во-первых, при уменьшении размеров электрический разряд начинает “пробивать” затвор и затвор перестает выполнять свою роль.
- Во-вторых, усложняется задача отведения тепла от такого транзистора.
- В-третьих, при уменьшении размера транзистора брак при их производстве возрастает, так как меньшее количество вещества на молекулярном уровне формирует сам транзистор.
· программа, как и числа, должна записываться в двоичном коде;
Читайте также: