Jump to content

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

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

Архитектура фон Неймана , также известная как модель фон Неймана или архитектура Принстона , представляет собой компьютерную архитектуру, основанную на описании 1945 года Джона фон Неймана и других авторов в первом проекте отчета о EDVAC . [1] В документе описывается архитектура проекта электронного цифрового компьютера со следующими компонентами:

Термин «архитектура фон Неймана» развился для обозначения любого компьютера с хранимой программой , в котором выборка инструкций и операция с данными не могут происходить одновременно (поскольку они используют общую шину ). Это называется узким местом фон Неймана , которое часто ограничивает производительность соответствующей системы. [3]

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

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

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

История [ править ]

Первые вычислительные машины имели фиксированные программы. Некоторые очень простые компьютеры до сих пор используют эту конструкцию либо для простоты, либо в целях обучения. Например, настольный калькулятор (в принципе) представляет собой компьютер с фиксированной программой. Он может выполнять базовые математические задачи , но не может запускать текстовый процессор или игры. Изменение программы машины с фиксированной программой требует перемонтажа, реструктуризации или перепроектирования машины. Самые ранние компьютеры были не столько «запрограммированы», сколько «спроектированы» для выполнения конкретной задачи. «Перепрограммирование» — если оно вообще было возможно — представляло собой трудоемкий процесс, который начинался с блок-схем и бумажных заметок, за которым следовали подробные инженерные проекты, а затем часто трудный процесс физического перемонтажа и восстановления машины. Настройка и отладка программы на ENIAC может занять три недели . [4]

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

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

Возможности [ править ]

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

Некоторые языки высокого уровня используют архитектуру фон Неймана, предоставляя абстрактный, машинно-независимый способ манипулирования исполняемым кодом во время выполнения (например, LISP ) или используя информацию времени выполнения для настройки своевременной компиляции (например, языки, размещенные на платформе Java). виртуальная машина или языки, встроенные в веб-браузеры ).

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

Разработка концепции хранимой программы [ править ]

Математик Алан Тьюринг , который был предупрежден о проблеме математической логики лекциями Макса Ньюмана в Кембриджском университете , написал в 1936 году статью под названием « О вычислимых числах с применением к Entscheidungsproblem» , которая была опубликована в журнале «Proceedings». Лондонского математического общества . [6] В нем он описал гипотетическую машину, которую назвал универсальной вычислительной машиной , ныне известную как « Универсальная машина Тьюринга ». Гипотетическая машина имела бесконечную память (память в современной терминологии), содержащую как инструкции, так и данные. Джон фон Нейман познакомился с Тьюрингом, когда он был приглашенным профессором в Кембридже в 1935 году, а также во время года работы Тьюринга в докторантуре в Институте перспективных исследований в Принстоне, штат Нью-Джерси, в 1936–1937 годах. Неясно, знал ли он в то время о статье Тьюринга 1936 года.

В 1936 году Конрад Цузе в двух патентных заявках также предположил, что машинные инструкции могут храниться в том же хранилище, что и данные. [7]

Независимо от этого Дж. Преспер Экерт и Джон Мочли , разрабатывавшие ENIAC в Школе электротехники Мура , Пенсильванского университета написали о концепции хранимой программы в декабре 1943 года. [8] [9] Планируя новую машину EDVAC , Экерт писал в январе 1944 года, что они будут хранить данные и программы в новом адресуемом запоминающем устройстве — ртутной металлической памяти с линией задержки . Это был первый раз, когда была предложена конструкция практичной машины с хранимой программой. В то время он и Моучли не знали о работе Тьюринга.

Фон Нейман участвовал в Манхэттенском проекте Национальной лаборатории Лос-Аламоса . Это потребовало огромных объемов расчетов, что привлекло его летом 1944 года к проекту ENIAC. Там он присоединился к продолжающимся обсуждениям конструкции компьютера с хранимой программой, EDVAC. В составе этой группы он написал описание под названием « Первый проект отчета о EDVAC». [1] на основе работ Экерта и Мокли. Когда его коллега Герман Гольдштейн распространил его, он был незавершенным и носил только имя фон Неймана (к ужасу Эккерта и Моучли). [10] Статью прочитали десятки коллег фон Неймана в Америке и Европе, и она оказала влияние на [ нечеткий ] следующий раунд компьютерных разработок.

Джек Коупленд считает, что «исторически неуместно называть электронные цифровые компьютеры с хранимой программой «машинами фон Неймана » ». [11] Его коллега из Лос-Аламоса Стэн Франкель сказал об уважении фон Неймана к идеям Тьюринга. [12]

Я знаю, что примерно в 1943 или 1944 году фон Нейман хорошо осознавал фундаментальную важность статьи Тьюринга 1936 года...Фон Нейман познакомил меня с этой статьей, и по его настоянию я внимательно ее изучил. Многие люди провозглашали фон Неймана «отцом компьютера» (в современном смысле этого слова), но я уверен, что сам он никогда бы не совершил такой ошибки. Возможно, его вполне можно было бы назвать акушеркой, но он твердо подчеркнул мне и, я уверен, другим, что фундаментальная концепция принадлежит Тьюрингу - в той степени, в которой это не было предвосхищено Бэббиджем... И Тьюринг, и фон Нейман , конечно, также внес существенный вклад в « приведение к практике » этих концепций, но я бы не считал их сравнимыми по важности с введением и объяснением концепции компьютера, способного хранить в своей памяти свою программу действий и модификации этой программы в ходе этой деятельности.

В то время, когда был распространен «первый проект» отчета, Тьюринг готовил отчет под названием « Предлагаемый электронный калькулятор » . В нем подробно описана инженерия и программирование, его идея машины, которую он назвал автоматической вычислительной машиной (ACE) . [13] Он представил это исполнительному комитету Британской национальной физической лаборатории 19 февраля 1946 года. Хотя Тьюринг из своего военного опыта в Блетчли-парке знал, что то, что он предложил, было осуществимо, секретность, окружавшая Колосса , которая впоследствии сохранялась в течение нескольких десятилетий, помешала его от таких слов. Были произведены различные успешные реализации конструкции ACE.

И в статьях фон Неймана, и в статьях Тьюринга описывались компьютеры с хранимыми программами, но более ранняя статья фон Неймана получила большее распространение, и изложенная в ней компьютерная архитектура стала известна как «архитектура фон Неймана». В публикации 1953 года « Быстрее, чем мысль: симпозиум по цифровым вычислительным машинам» (под редакцией Б.В. Боудена) раздел главы « Компьютеры в Америке» гласит следующее: [14]

Машина Института перспективных исследований, Принстон

В 1945 году профессор Дж. фон Нейман, работавший тогда в Инженерной школе Мура в Филадельфии, где был построен ЭНИАК, опубликовал от имени группы своих сотрудников доклад о логическом проектировании цифровых компьютеров. . В отчете содержалось подробное предложение по конструкции машины, которая с тех пор стала известна как EDVAC (электронный дискретно-регулируемый автоматический компьютер). Эта машина только недавно была завершена в Америке, но отчет фон Неймана вдохновил на создание EDSAC (электронного автоматического калькулятора с задержкой памяти) в Кембридже (см. стр. 130).

В 1947 году Беркс, Голдстайн и фон Нейман опубликовали еще один отчет, в котором описывалась конструкция машины другого типа (на этот раз параллельной машины), которая должна была быть чрезвычайно быстрой, способной выполнять примерно 20 000 операций в секунду. Они отметили, что основной проблемой при создании такой машины было создание подходящей памяти с мгновенно доступным содержимым. Сначала они предложили использовать специальную вакуумную лампу , названную « Селектрон », которую изобрели Принстонские лаборатории RCA. Эти лампы были дорогими и сложными в изготовлении, поэтому фон Нейман впоследствии решил построить машину на основе памяти Вильямса . Эта машина, завершенная в июне 1952 года в Принстоне, стала широко известна как «Маньяк». Конструкция этой машины вдохновила по меньшей мере полдюжины машин, которые сейчас строятся в Америке, и все их ласково называют «Джониаки».

В той же книге первые два абзаца главы об ACE гласят следующее: [15]

Автоматические вычисления в Национальной физической лаборатории

Один из самых современных цифровых компьютеров, воплощающий в себе разработки и усовершенствования в технике автоматических электронных вычислений, был недавно продемонстрирован в Национальной физической лаборатории Теддингтона, где он был спроектирован и изготовлен небольшой командой математиков и инженеров-исследователей-электронщиков. Лаборатории при содействии ряда инженеров-технологов компании English Electric Company, Limited. Оборудование, установленное к настоящему моменту в Лаборатории, является лишь пилотной моделью гораздо более крупной установки, которая будет известна как Автоматическая Вычислительная Машина, но, хотя она и сравнительно небольшая по размеру и содержит всего около 800 термоэмиссионных клапанов, как можно судить по Таблицам XII, XIII и XIV, это чрезвычайно быстрая и универсальная вычислительная машина.

Основные концепции и абстрактные принципы вычислений с помощью машины были сформулированы доктором А.М. Тьюрингом, FRS, в статье 1 . читался в Лондонском математическом обществе в 1936 году, но работа над такими машинами в Великобритании была задержана войной. Однако в 1945 году исследование этих задач было проведено в Национальной физической лаборатории г-ном Дж. Р. Уомерсли, тогдашним руководителем математического отдела лаборатории. К нему присоединился доктор Тьюринг и небольшой штат специалистов, и к 1947 году предварительное планирование было достаточно продвинуто, чтобы оправдать создание уже упомянутой специальной группы. В апреле 1948 года последний стал отделом электроники лаборатории под руководством г-на Ф. М. Коулбрука.

Ранние компьютеры с Неймана архитектурой фон

В первом проекте описывалась конструкция, которая использовалась многими университетами и корпорациями для создания своих компьютеров. [16] Среди этих различных компьютеров только ILLIAC и ORDVAC имели совместимые наборы команд.

Ранние компьютеры программой с хранимой

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

Эволюция [ править ]

единой системной шины Эволюция архитектуры

В течение десятилетий 1960-х и 1970-х годов компьютеры в целом становились меньше и быстрее, что привело к эволюции их архитектуры. Например, ввод-вывод, отображаемый в памяти, позволяет устройствам ввода и вывода обращаться так же, как и памяти. [24] Одну системную шину можно использовать для создания модульной системы с меньшими затратами. [ нужны разъяснения ] . Иногда это называют «оптимизацией» архитектуры. [25] В последующие десятилетия в простых микроконтроллерах иногда не учитывались особенности модели, чтобы снизить стоимость и размер.На более крупных компьютерах были добавлены функции для повышения производительности.

Ограничения дизайна [ править ]

фон Неймана editУзкое место

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

Узкое место фон Неймана было описано Джоном Бэкусом в его лекции на Премии Тьюринга ACM в 1977 году . По словам Бэкуса:

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

Смягчения [ править ]

Существует несколько известных методов устранения узких мест в производительности фон Неймана. Например, все следующее может улучшить производительность [ почему? ] :

Проблему также можно несколько обойти, используя параллельные вычисления , используя, например, архитектуру неоднородного доступа к памяти (NUMA) — этот подход обычно используется в суперкомпьютерах . Менее ясно, интеллектуальное узкое место , которое критиковал Бэкус, с 1977 года. Предложенное Бэкусом решение не оказало большого влияния. сильно ли изменилось [ нужна ссылка ] Современное функциональное и объектно-ориентированное программирование гораздо менее ориентировано на «перемещение огромного количества слов туда и обратно», чем более ранние языки, такие как FORTRAN , но внутренне это все еще то, на что компьютеры тратят большую часть своего времени, даже суперкомпьютеры с высокой степенью параллелизма.

По состоянию на 1996 год сравнительное исследование базы данных показало, что три из четырех циклов ЦП тратятся на ожидание памяти. Исследователи ожидают, что увеличение количества одновременных потоков инструкций с помощью многопоточности или однокристальной многопроцессорности еще больше усугубит это узкое место. [28] [29] В контексте многоядерных процессоров дополнительные накладные расходы требуются для поддержания согласованности кэша между процессорами и потоками.

Самомодифицирующийся код [ править ]

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

См. также [ править ]

Ссылки [ править ]

  1. Перейти обратно: Перейти обратно: а б с фон Нейман, Джон (1945), Первый проект отчета о EDVAC (PDF) , заархивировано из оригинала (PDF) 14 марта 2013 г. , получено 24 августа 2011 г.
  2. ^ Ганесан 2009 .
  3. ^ Маркграф, Джоуи Д. (2007), Узкое место фон Неймана , заархивировано из оригинала 12 декабря 2013 года .
  4. ^ Коупленд 2006 , с. 104.
  5. ^ Запись MFTL (My Favorite Toy Language), жаргонный файл 4.4.7 , получено 11 июля 2008 г.
  6. ^ Тьюринг, Алан М. (1936), «О вычислимых числах с применением к проблеме Entscheidungs», Труды Лондонского математического общества , 2, том. 42 (опубликовано в 1937 г.), стр. 230–265, doi : 10.1112/plms/s2-42.1.230 , S2CID   73712 и Тьюринг, Алан М. (1938), «О вычислимых числах с применением к проблеме Entscheidungs. Исправление», Труды Лондонского математического общества , 2, том. 43, нет. 6 (опубликовано в 1937 г.), стр. 544–546, doi : 10.1112/plms/s2-43.6.544 .
  7. ^ Уильямс, ФК; Килберн, Т. (25 сентября 1948 г.), «Электронные цифровые компьютеры», Nature , 162 (4117): 487, Бибкод : 1948Natur.162..487W , doi : 10.1038/162487a0 , S2CID   4110351 .
  8. ^ Луков, Герман (1979). От цифр к битам: личная история электронного компьютера . Портленд, Орегон: Robotics Press. ISBN  0-89661-002-0 . LCCN   79-90567 .
  9. ^ Администратор проекта ENIAC Грист Брейнерд в отчете о ходе работы за первый период разработки ENIAC за декабрь 1943 года неявно предлагал концепцию хранимой программы (одновременно отвергая ее реализацию в ENIAC), заявляя, что «чтобы иметь самый простой проект и не усложнять ситуацию «ЭНИАК будет построен без какого-либо «автоматического регулирования».
  10. ^ Коупленд 2006 , с. 113.
  11. ^ Коупленд, Джек (2000), Краткая история вычислений: ENIAC и EDVAC , получено 27 января 2010 г.
  12. ^ Коупленд, Джек (2000), «Краткая история вычислений: ENIAC и EDVAC» , получено 27 января 2010 г. (работа, в которой цитируется Рэнделл, Брайан (1972), Мельцер, Б.; Мичи, Д. (ред.), «Об Алане Тьюринге и происхождении цифровых компьютеров», Machine Intelligence , 7 , Эдинбург: Издательство Эдинбургского университета : 10, ISBN  0-902383-26-4 .
  13. ^ Коупленд 2006 , стр. 108–111.
  14. ^ Боуден 1953 , стр. 176, 177.
  15. ^ Боуден 1953 , с. 135.
  16. ^ «Электронный компьютерный проект» . Институт перспективных исследований . 11 сентября 2009 года . Проверено 26 мая 2011 г.
  17. Перейти обратно: Перейти обратно: а б Кэмпбелл-Келли, Мартин (апрель 1982 г.). «Развитие компьютерного программирования в Великобритании (1945–1955 гг.)». IEEE Анналы истории вычислений . 4 (2): 121–139. дои : 10.1109/MAHC.1982.10016 . S2CID   14861159 .
  18. ^ Робертсон, Джеймс Э. (1955), Illiac Design Techniques , номер отчета UIUCDCS-R-1955–146, Лаборатория цифровых компьютеров, Университет Иллинойса в Урбана-Шампейн .
  19. ^ Электронный калькулятор выборочной последовательности (веб-сайт USPTO) .
  20. ^ Электронный калькулятор выборочной последовательности (патенты Google) .
  21. ^ Грош, Герберт Р.Дж. (1991), Компьютер: отрывки из жизни , Книги третьего тысячелетия, ISBN  0-88733-085-1 .
  22. ^ Лавингтон, Саймон, изд. (2012). Алан Тьюринг и его современники: создание первых в мире компьютеров . Лондон: Британское компьютерное общество . п. 61. ИСБН  978-1906124908 .
  23. ^ Джонсон, Роджер (апрель 2008 г.). «Школа компьютерных наук и информационных систем: краткая история» (PDF) . Биркбекский колледж . Лондонский университет . Проверено 23 июля 2017 г.
  24. ^ Белл, К. Гордон ; Кэди, Р.; МакФарланд, Х.; О'Лафлин, Дж.; Нунан, Р.; Вульф, В. (1970), «Новая архитектура для мини-компьютеров - DEC PDP-11» (PDF) , Весенняя совместная компьютерная конференция , стр. 657–675 .
  25. ^ Налл, Линда; Лобур, Джулия (2010), Основы компьютерной организации и архитектуры (3-е изд.), Jones & Bartlett Learning, стр. 36, 199–203, ISBN  978-1-4496-0006-8 .
  26. ^ Бэкус, Джон В. (август 1978 г.). «Можно ли программирование освободиться от стиля фон Неймана? Функциональный стиль и его алгебра программ» . Коммуникации АКМ . 21 (8): 613–641. дои : 10.1145/359576.359579 . S2CID   16367522 .
  27. ^ Дейкстра, Эдсгер В. «Архив Э.В. Дейкстры: обзор лекции о премии Тьюринга 1977 года» . Проверено 11 июля 2008 г.
  28. ^ Сайты, Ричард Л. (5 августа 1996 г.). «Архитекторы смотрят на процессоры будущего» (PDF) . Отчет микропроцессора . 10 (10). Это Память, Глупый!.
  29. ^ Патт, Йельский университет (5 августа 1996 г.). «Архитекторы смотрят на процессоры будущего» (PDF) . Отчет микропроцессора . 10 (10). Во-первых, давайте разберемся с однопроцессором правильно.

Дальнейшее чтение [ править ]

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: e99f693591dbc6cd3911c474265d0ad4__1718242500
URL1:https://arc.ask3.ru/arc/aa/e9/d4/e99f693591dbc6cd3911c474265d0ad4.html
Заголовок, (Title) документа по адресу, URL1:
von Neumann architecture - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)