Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

История развития средств вычислительной техники (Фоннеймановская архитектура ЭВМ)

Содержание:

Введение

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

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

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

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

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

Двоичная СС является широко распространенной, но не единственной использующейся в ЭВМ в настоящее время. Существуют современные ЭВМ на базе троичной СС, например, ЭВМ «TCA2», построенная в США в 2008 году Джеффом Коннелли, Кирагом Пателем и Антонио Чавезом при поддержке профессора Филлипа Нико.

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

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

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

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

Фоннеймановская архитектура ЭВМ

Джон фон Нейман, годы жизни – 28.12.1903 – 08.02.1957. Рисунок 1.

JohnvonNeumann-LosAlamos.gifРисунок 1. Джон фон Нейман, фото 1940-е годы

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

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

https://upload.wikimedia.org/wikipedia/commons/3/3c/%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D1%84%D0%BE%D0%BD_%D0%9D%D0%B5%D0%B9%D0%BC%D0%B0%D0%BD%D0%B0.png

Рисунок 2. Фоннеймановская архитектура ЭВМ

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

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

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

http://ok-t.ru/studopedia/baza10/3599510110623.files/image077.jpg

Рисунок 3. Канальная архитектура ЭВМ

По сути дела, центральный процессор только раздает команды подчиненным периферийным процессорам – каналам, а также собирает и анализирует результаты вычислений периферийных процессоров. Тем самым основной процессор системы разгружается от несвойственных ему задач. Подобное устройство вычислительных комплексов позволило советским разработкам держать первенство по производительности до середины 90-х годов 20 века и стало сходить на нет только с появлением процессоров «Pentium» фирмы Intel, когда советская электронная промышленность была уже разрушена и новых типов ЭВМ не выпускала [8].

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

Картинки по запросу материнка с видеокартой

Рисунок 4. Системная плата ЭВМ с установленными специализированными процессорами (контроллерами)

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

Даже появление контроллера DMA (Direct Memory Access) – контроллера захвата общей шины по требованию устройства, которому понадобилось считать или записать данные напрямую в оперативную память миную центральный процессор, особой роли в устранении проблемы общей шины не сыграло. Читать или записывать данные в оперативную память по-прежнему может только одно устройство в один момент времени. Все остальные должны ждать освобождения шины [2].

Появление многоядерных процессоров еще больше усугубило проблему общей шины. Теперь не только устройства должны ждать освобождения шины, но даже отдельные ядра самого центрального процессора. Тем самым сводится практически на нет установка большого числа ядер (по сути дела нескольких копий процессора) в один корпус микросхемы, так как основное время ядро процессора тратит не на вычисления, а на ожидание доступа к памяти, чтобы считать очередную команду программы или записать/считать данные в память. К тому же если вдруг какое-то устройство «захотело» через DMA контроллер монопольно воспользоваться доступом к памяти, то все ядра процессора будут остановлены до того момента пока устройство «не наиграется» с памятью и не вернет управление системной шиной процессору [5].

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

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

Еще одним недостатком архитектуры Неймана является короткое машинное слово – 8 бит и как следствие низкая скорость обмена данными. Это вероятно продиктовано стремлением к удешевлению системы. В советских ЭВМ того времени уже использовались 16-ти битные машинные слова, например, в машине МЭСМ (Макет Электронной Счетной Машины), созданной Лебедевым С.А. и запущенной 6 ноября 1950 года [10], рисунок 5.

https://upload.wikimedia.org/wikipedia/ru/1/1e/MESM.jpg

Рисунок 5. МЭСМ (Макет Электронной Счетной Машины)

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

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

Дополнительную путаницу в состояние дел ввело появление набора команд х64. Программисты, с большим удивлением, обнаружили, что перекомпиляция исходных текстов программы под новый набор команд невозможна, так как размер основных типов данных был изменен и те типы данных, которые в старом наборе команд х86 имели длину 8 бит в новом имеют длину 16 бит [1]. Таком образом программистам приходилось переписывать программы практически заново под новый набор команд или вносить значительные изменения для их адаптации к новому набору. Огромное количество программного обеспечения вообще не смогли адаптировать к новому набору команд из-за их зависимости от других программ или динамических библиотек, поддержка которых на тот момент уже была прекращена разработчиками.

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

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

Достоинства фоннеймановской архитектуры

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

Следует все же отметить, что первый проект по постройке ЭВМ фоннеймановской архитектуры потерпел фиаско из-за отсталости промышленной базы того времени, на которой не смогли создать нужную для ЭВМ память. Проект носил название EDVAC (Electronic Discrete Variable Automatic Computer) [6]. В дальнейшем на фоннеймановских принципах были созданы удачные проекты ЭВМ:

  1. Прототип—Манчестерская малая экспериментальная машина—Манчестерский университет, Великобритания, 21 июня 1948 года;
  2. EDSAC—Кембриджский университет, Великобритания, 6 мая 1949 года;
  3. Марк I—Манчестерский университет, Великобритания, 1949 год;
  4. BINAC— США, апрель или август 1949 года;
  5. CSIR Mk 1— Австралия, ноябрь 1949 года;
  6. EDVAC— США, август 1949 года— фактически запущен в 1952 году;
  7. CSIRAC— Австралия, ноябрь 1949 года;
  8. SEAC— США, 9 мая 1950 года;
  9. ORDVAC— США, ноябрь 1951 года;
  10. IAS-машина— США, 10 июня 1952 года;
  11. MANIAC I— США, март 1952 года;
  12. AVIDAC— США, 28 января 1953 года;
  13. ORACLE— США, конец 1953 года;
  14. WEIZAC— Израиль, 1955 год;
  15. SILLIAC— Австралия, 4 июля 1956 года. [15]

Принципы не фон Неймана

Истоки появление фоннеймановской архитектуры

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

Основные логические основы функционирования ЭВМ фоннеймановской архитектуры впервые были описаны в документе, который носил название «Первый проект отчета по EDVAC» [14], рисунок 6.

https://upload.wikimedia.org/wikipedia/commons/8/83/Firstdraftofrepo00vonn_0003.jpg

Рисунок 6. Титульный лист первого отчета по EDVAC

Данный документ появился в институте Мура в Пенсильванском университете во время работы группы ученных над проектом ENIAC (сокращение от английского Electronic Numerical Integrator and Computer - Электронный числовой интегратор и вычислитель), рисунок 7.

https://upload.wikimedia.org/wikipedia/commons/thumb/4/4e/Eniac.jpg/1024px-Eniac.jpg

Рисунок 7. ENIAC.

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

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

Основанием назвать описанную в отчете логическую структуру ЭВМ именем Неймана послужило то, что на титульном листе документа было указано только одно имя – John von Neumann, рисунок 8.

Рисунок 8. Имя John von Neumann на титульном листе отчета по EDVAC

Данный 100-страничный документ получил широкое распространение и как следствие появилось ошибочное представление о том, что автором данной работы является только один человек, а именно тот чье имя указано на документе т.е. Джон фон Нейман [14].

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

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

Принадлежит ли Нейману идея использовать для хранения команд программы, ту же память, что и для хранения данных (так называемый «принцип однородной памяти фон Неймана»)? Этот вопрос остается открытым. Вполне возможно, что подобные мысли высказывал кто-то из команды ученых, работавших вместе с Нейманом над проектом ENIAC и идеи именно этого ученого были описаны в отчете по EDVAC.

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

Принципы EDVAC

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

Итак, разберем подробно основные принципы построения вычислительных систем, описанные в отчете по EDVAС:

Принцип двоичного кодирования

Согласно этому принципу данные и инструкции программы, по которой работает ЭВМ должны быть записаны в память в двоичной системе счисления и закодированы двумя двоичными цифрами (битами): «1» и «0». Естественно в электронной памяти машины никаких цифр нет, цифрами их называют просто для удобства обозначения. В действительности двоичные цифры в памяти машины представляют собой электрические потенциалы напряжения, например, напряжение в 2,5 вольта может интерпретироваться как «0», а напряжение в 0,2 вольта как «1» (или наоборот). Рисунок 9.

Картинки по запросу уровни напряжения для логических состояний

Рисунок 9. Кодировка двоичных цифр уровнями напряжения

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

В современной вычислительной технике для хранения двоичных чисел используются специальные полупроводниковые элементы: мемристоры (рисунок 10) или конденсаторы (рисунок 11), в быстродействующей (т.н. «кэш») памяти используются логические элементы – триггеры (рисунок 12)

Похожее изображение.

Рисунок 10. Мемристор, фото с электронного микроскопа

Похожее изображение

Рисунок 11. Конденсатор, ячейка (бит) динамической памяти

Картинки по запросу триггер памяти

Рисунок 12. Триггер, условное графическое обозначение

Так как, согласно принципу двоичного кодирования Неймана, данные и команды программы кодируются двоичными разрядами, то визуально разобрать, где в памяти находятся инструкции программы, а где данные программы невозможно. Центральный процессор будет интерпретировать данные в зависимости от того, что именно он пытается считать из памяти. Если процессор читает данные, то прочитанные из памяти значения будут им интерпретированы как данные, даже если программист ошибочно запишет в это место памяти инструкцию программы и наоборот, данные прочитанные как инструкция будут интерпретироваться процессором ЭВМ именно как инструкция, после чего процессор попытается ее выполнить, что, скорее всего, приведет к нарушению работы программы или «зависанию» ЭВМ (вхождения программы в бесконечный цикл).

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

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

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

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

Картинки по запросу знаковое число в памяти

Рисунок 13. Пример записи знакового числа в памяти ЭВМ

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

Картинки по запросу мантисса и характеристика числа

Рисунок 14. Пример записи числа с плавающей запятой в памяти ЭВМ

Принцип однородности памяти

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

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

Похожее изображение

Рисунок 15. Устройства ЭВМ, связанные общей шиной

Принцип адресности

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

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

Картинки по запросу нумерация ячеек памяти

Рисунок 16. Нумерация ячеек памяти

Сам процесс обращения центрального процессора к ячейке памяти для чтения или записи называется – адресацией.

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

Картинки по запросу системная шина

Рисунок 17. Общая шина для памяти и внешних устройств

Принцип программного управления

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

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

Картинки по запросу счетчик команд

Рисунок 18. Работа счетчика команд программы

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

Заключение

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

Следует все же отметить, что идея использовать двоичную систему счисления для представления данных принадлежит именно Нейману. На это указывает его труд конца 1940-х годов по теории автоматов, в основу которого Нейман положил дискретную математику, оперирующую двумя логическими понятиями «истина» и «ложь». Кроме того, после окончания работы над ENIAC в 1946 году появляется широко известная 53-х страничная работа «Preliminary discussion of the logical design of an electronic computing instrument» (пер. с анг. «Предварительное рассмотрение логической конструкции электронно-вычислительного устройства») за авторством: Неймана, Голдстайна и Бёркса, датированная 28 июня [13] (работа издана в виде книги в 1982 году).

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

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

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

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

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

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

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

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

1. Аблязов Р.З. Программирование на ассемблере на платформе x86-64. Руководство. – Издательство: ДМК Пресс, 2016. – 302 с.

2. Авдеев В.А. ЭВМ и периферия с демонстрацией имитационных моделей. – Издательство: ДМК Пресс, 2014. – 708 с.

3. Джесси Рассел, Роланд Кон. Архитектура фон Неймана. – Издательство VSD, 2013. – 101 с.

4. Джон фон Нейман, Теория самовоспроизводящихся автоматов. –Издательство: Либроком, 2010. - 384 с.

5. Калачев А.В. Многоядерные процессоры. Учебное пособие. – Издательство: Интернет-Университет Информационных Технологий (ИНТУИТ), 2014. – 247 с.

6. Малиновский Б.Н. История вычислительной техники в лицах. - К.: фирма "КИТ", ПТОО "А.С.К.", 1995. - 384 с

7. Михайлов Б.М., Халабия Р.Ф. Классификация и организация вычислительных систем: Учебное пособие. – М.: МГУПИ, 2015. - 144 с.

8. Новожилов О.П. Архитектура ЭВМ и систем. Учебное пособие для академического бакалавриата. – Издательство: Юрайт, 2016. – 527 с.

9. Олифер В., Олифер Н. Компьютерные сети. Принципы, технологии, протоколы. – Издательство: Питер, 2017. – 992 с.

10. Ревич Ю.В. Информационные технологии в СССР. Создатели советской вычислительной техники. Издательство: БХВ-Петербург, 2014. – 336 с.

11. Таненбаум Эндрю, Бос Херберт . Современные операционные системы. – Издательство: Питер, 2017. – 1120 с.

12. Цилькер Б.Я. Организация ЭВМ и систем: Учебник для вузов / Б.Я. Цилькер, С.А. Орлов. - 2-е изд. - СПб.: Питер, 2013. - 688 с.

13. Arthur W. Burks, Herman H. Goldstine, John von Neumann. Preliminary Discussion of the Logical Design of an Electronic Computing Instrument. - Publisher: Springer Berlin Heidelberg, 1982 – 413 p.

14. First Draft of a Report on the EDVAC: John von Neumann, 1945 – 101 p.

15. Архитектура фон Неймана. // Википедия. [Электронный ресурс]. URL: https://ru.wikipedia.org/wiki/Архитектура_фон_Неймана (дата обращения: 01.07.2017).

16. Нейман, Джон фон. // Википедия. [Электронный ресурс]. URL: https://ru.wikipedia.org/wiki/Нейман,_Джон_фон (дата обращения: 01.07.2017).