Файл: История развития средств вычислительной техники (Фоннеймановская архитектура ЭВМ).pdf
Добавлен: 28.03.2023
Просмотров: 181
Скачиваний: 3
Введение
Джон фон Нейман — венгеро-американский математик еврейского происхождения, сделавший важный вклад в квантовую физику, квантовую логику, функциональный анализ, теорию множеств, информатику, экономику и другие отрасли науки [16].
Вклад, который внес Д. Нейман в развитие вычислительной техники трудно переоценить. Словосочетание «фоннеймановская архитектура» известно любому человеку, чья профессия даже отдаленно связана с вычислительной техникой.
Большой вклад Нейман внес именно в общую схему устройства (архитектуру) компьютеров, которая с небольшими изменениями лежит в основе всех современных вычислительных машин. Основными нововведениями и особенностями данной архитектуры (предложенные Нейманом) является то, что программа, которую выполняет машина и данные, с которыми программа работает, а также промежуточные результаты работы программы хранятся в одной памяти. В существовавших на тот момент вычислительных машинах, использовалось четкое разделение памяти для хранения данных, с которыми работает программа и памяти для хранения команд самой программы. Это усложняло устройство ЭВМ, делало ее более дорогой и очень сложной в изготовлении, требовало очень высокой квалификация людей, работающих с такими машинами. Изменение, предложенные Нейманом, значительно упростили устройство ЭВМ, значительно сократилось время и трудоемкость разработки программ. Дело в том, что в те времена программы не хранились в памяти как на современных ЭВМ, а представляли из себя набор отверстий на куске картона (перфокарте) или бумажной ленте (перфоленте). На многих ЭВМ того времени программа представляла из себя набор тумблеров (или перемычек), которые нужно было выставить в нужное положение и тем самым заставить ЭВМ выполнять нужные действия. Процесс разработки программы представлял из себя прокалывание отверстий в перфокарте или на перфоленте.
Важнейшим новшеством Неймана, стало использование для хранения данных и команд программы двоичной системы счисления (далее СС), что также отразилось на упрощении всей конструкции ЭВМ. Многие ЭВМ того времени для хранения данных использовали десятичную СС. Десятичная СС привычна для человека, но для технической реализации в ЭВМ представляет собой очень сложную задачу, сильно усложняет и удорожает систему. Двоичная СС позволяет хранить данные, кодируя их всего лишь двумя значениями напряжения электрического тока. Как правило эти значения принято обозначать как «1» и «0», в настоящее время их называют битами (от английского «binary digit» - двоичная цифра). ЭВМ с двоичной СС хранения данных быстро вытеснили ЭВМ с другими СС и стали на сегодняшний день единственно существующими. Следует отметить, что использование двоичной СС приводит к увеличению количества электронных компонентов, из которых состоит память, однако упрощает их электронную схему и внутреннее устройство.
Двоичная СС хорошо подходит для хранение данных и упрощает электронную схему устройства для выполнения логических и арифметических операций над данными, упрощает устройство многих узлов центрального процессора ЭВМ, делает более легким контроль ошибок записи и чтения данных, однако данная СС не позволяет поддерживать большую скорость при передаче данных от одного устройства к другому. По этой причине в вычислительных сетях для передачи данных часто используют не два, а несколько уровней сигнала [9].
Двоичная СС является широко распространенной, но не единственной использующейся в ЭВМ в настоящее время. Существуют современные ЭВМ на базе троичной СС, например, ЭВМ «TCA2», построенная в США в 2008 году Джеффом Коннелли, Кирагом Пателем и Антонио Чавезом при поддержке профессора Филлипа Нико.
Целью настоящего курсового проекта является анализ истории развития средств вычислительной техники с момента появления первых электромеханических ЭВМ и до настоящего времени. Объектом исследования является история развития средств ЭВМ.
Изложенный в работе материал не затрагивает элементную базу, на которой строится вычислительная техника, так как исследований по данной тематике проведено огромное количество. Работа полностью посвящена средствам и принципам функционирования вычислительной техники (и их развитию), которые были заложены во времена Неймана, не зависимо от элементной базы. Это является предметом исследования настоящей работы.
Не смотря на то, что элементная база построения ЭВМ с тех времен поменялась уже несколько раз, принципы функционирования ЭВМ фон-неймановской архитектуры остаются неизменными и с незначительными изменениями дожили до наших дней. Как следствие, в настоящей курсовой работе не будет затрагиваться тема поколений ЭВМ т.к. она не попадает в цель исследования. Под средствами вычислительной техники в настоящей работе понимается не элементная база построения ЭВМ, а сами принципы функционирования ЭВМ фон-неймановской архитектуры, т.е. функциональные блоки ЭВМ и взаимосвязи между ними, а также физические принципы выполнения элементарных вычислительных операций и их программирование.
Найти современную литературу, описывающую принципы функционирования средств вычислительной техники, сложно, вероятно это связано с тем, что тема была исследована в огромном количестве работ несколько десятилетий назад и авторы не считают нужным к ней возвращаться. Поэтому библиография работы представлена в основном переводами зарубежных авторов и ссылками на сетевые ресурсы.
Фоннеймановская архитектура ЭВМ
Джон фон Нейман, годы жизни – 28.12.1903 – 08.02.1957. Рисунок 1.
Рисунок 1. Джон фон Нейман, фото 1940-е годы
Недостатки фоннеймановской архитектуры
В данном разделе на первое место осознано поставлено описание недостатков фоннеймановской архитектуры так как (на взгляд автора) для современных вычислительных систем недостатков в данной архитектуре больше, чем преимуществ перед современными альтернативными архитектурами. Рисунок 2.
Рисунок 2. Фоннеймановская архитектура ЭВМ
Основными недостатком фоннеймановской архитектуры можно считать низкую скорость работы вычислительной системы, большое количество операций над данными и как следствие повышенный расход электроэнергии, большое выделение тепла и большие затраты времени на выполнение операций. Однако низкая стоимость и простота фоннеймановских ЭВМ на то время перекрывала указанные недостатки.
Еще одним упрощением и удешевлением системы, который внес Нейман в архитектуру ЭВМ стало использование «общей шины» для связи всех электронных узлов. Общая шина позволяет обмениваться данными в один момент времени только двум устройствам, например, процессору и памяти. Все остальные устройства должны ждать освобождения шины для передачи или приема данных. Общая шина и по сей день является узким местом в производительности данной архитектуры и является еще одним большим недостатком фоннеймановских машин [3].
Справедливости ради следует отметить, что в тоже самое время советские инженеры вычислительной техники (которые, по все видимости, о стоимости думали в последнюю очередь) пошли по другому пути и основной архитектурой советских вычислительных систем стала, так называемая, «канальная архитектура», рисунок 3. Канальная архитектура значительно усложняет систему, но делает ее очень производительной. Канальная архитектура не строится на общей шине, а подразумевает распределение задач, по так называемым, периферийным процессорам. Каждый периферийный процессор предназначен для выполнения узких задач и делает то, чего требует от него центральный процессор системы.
Рисунок 3. Канальная архитектура ЭВМ
По сути дела, центральный процессор только раздает команды подчиненным периферийным процессорам – каналам, а также собирает и анализирует результаты вычислений периферийных процессоров. Тем самым основной процессор системы разгружается от несвойственных ему задач. Подобное устройство вычислительных комплексов позволило советским разработкам держать первенство по производительности до середины 90-х годов 20 века и стало сходить на нет только с появлением процессоров «Pentium» фирмы Intel, когда советская электронная промышленность была уже разрушена и новых типов ЭВМ не выпускала [8].
В конце 80-х годов фоннеймановская архитектура стала оснащаться элементами канальной архитектуры, то есть обработкой конкретного типа информации стали заниматься, так называемые, контроллеры устройств, рисунок 4.
Рисунок 4. Системная плата ЭВМ с установленными специализированными процессорами (контроллерами)
Обработкой звука - звуковые контроллеры, обработкой изображения - контроллеры мониторов (дисплеев). Появились контроллеры управления памятью, контролеры клавиатуры и координатного устройства ввода, контроллеры внешних запоминающих устройств, математические сопроцессоры и т.п. Однако узкое место - «общая шина» никуда не исчезла!
Даже появление контроллера DMA (Direct Memory Access) – контроллера захвата общей шины по требованию устройства, которому понадобилось считать или записать данные напрямую в оперативную память миную центральный процессор, особой роли в устранении проблемы общей шины не сыграло. Читать или записывать данные в оперативную память по-прежнему может только одно устройство в один момент времени. Все остальные должны ждать освобождения шины [2].
Появление многоядерных процессоров еще больше усугубило проблему общей шины. Теперь не только устройства должны ждать освобождения шины, но даже отдельные ядра самого центрального процессора. Тем самым сводится практически на нет установка большого числа ядер (по сути дела нескольких копий процессора) в один корпус микросхемы, так как основное время ядро процессора тратит не на вычисления, а на ожидание доступа к памяти, чтобы считать очередную команду программы или записать/считать данные в память. К тому же если вдруг какое-то устройство «захотело» через DMA контроллер монопольно воспользоваться доступом к памяти, то все ядра процессора будут остановлены до того момента пока устройство «не наиграется» с памятью и не вернет управление системной шиной процессору [5].
Выходом из данной ситуации, по мнению автора, является создание принципиально новой архитектуры ЭВМ или переход на давно уже испытанную советскими инженерами канальную архитектуру. Возможно поможет оснащение ядер процессор собственной памятью, по аналогии с большими многопроцессорными ЭВМ. Но это приведет к удорожанию системы и принципиально новому подходу к разработке программного обеспечения для таких ЭВМ. По сути дела, программистам придется массово осваивать разработку параллельных программ, что потребует значительных временных затрат и повышения стоимости труда программиста, а как следствие и самого программного обеспечения.
В настоящее время разработка программного обеспечения для многоядерных процессоров осуществляется как для одноядерных, а распределение частей программы (которые могу параллельно работать) по ядрам процессора занимается операционная система и программист лишь формально участвует в процессе загрузки ядер процессора, если вдруг захочет этим заниматься, чтобы оптимизировать скорость работы программы [11].
Еще одним недостатком архитектуры Неймана является короткое машинное слово – 8 бит и как следствие низкая скорость обмена данными. Это вероятно продиктовано стремлением к удешевлению системы. В советских ЭВМ того времени уже использовались 16-ти битные машинные слова, например, в машине МЭСМ (Макет Электронной Счетной Машины), созданной Лебедевым С.А. и запущенной 6 ноября 1950 года [10], рисунок 5.
Рисунок 5. МЭСМ (Макет Электронной Счетной Машины)
Появление в процессорах Pentium специального расширения набора основных команд – MMX, ситуацию не исправило, так как программисты в большей своей массе игнорировали использование данных команд из-за трудоемкости написания программного обеспечения и отсутствия поддержки MMX наборами микросхем системной логики. Использование MMX команд в программе грозило невозможностью запуска программы на некоторых ЭВМ.
Кроме того, изначально маленькое машинное слово наложило отпечаток на всей архитектуре ЭВМ и ее электронных компонентах, производителями которых стали огромное количество фирм по всему миру. Не говоря уже о том, что в сознание «буржуазных» программистов было крепко вбито правило, что размер байта равен восьми битам, а не шестнадцати как было в сознании у советских программистов.
Дополнительную путаницу в состояние дел ввело появление набора команд х64. Программисты, с большим удивлением, обнаружили, что перекомпиляция исходных текстов программы под новый набор команд невозможна, так как размер основных типов данных был изменен и те типы данных, которые в старом наборе команд х86 имели длину 8 бит в новом имеют длину 16 бит [1]. Таком образом программистам приходилось переписывать программы практически заново под новый набор команд или вносить значительные изменения для их адаптации к новому набору. Огромное количество программного обеспечения вообще не смогли адаптировать к новому набору команд из-за их зависимости от других программ или динамических библиотек, поддержка которых на тот момент уже была прекращена разработчиками.