Принципы фон неймана организации эвм. Архитектура ЭВМ Джона фон Неймана

Право и ОСО

Урок 9. Магистрально-модульный принцип построения компьютера.

Задание: используя учебный текст ответить на следующие вопросы (записать в тетрадь).

1. Кто был основоположником магистрально-модульного принципа современной архитектуры ПК.

2. Архитектура компьютера – это…

3. Перечислите основные принципы положенные в основу магистрально-модульного построения архитектуры ПК.

4. Из каких частей состоит магистраль?

5. Для чего нужен интерфейс устройств?

6. Что используется для согласования интерфейсов? По какой схеме работает данное согласование (зарисуйте схему)?

7. Как происходит обработка данных на компьютере?

8. Изобразите схематично магистрально-модульный принцип ПК.

9. Магистраль-это …

10. Для чего служат шина управления, шина адреса, шина данных?

12. Что позволяет модульный принцип пользователю ПК? Перечислите основные достоинства модульно-магистрального принципа.

Д/з. Ответить на вопросы, подготовиться к ответу по учебному тексту.

Учебный текст

Магистрально-модульный принцип построения компьютера

Вспомним информацию, полученную на предыдущих занятиях:

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

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

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

В основу архитектуры современных компьютеров положены принципы Джона фон Неймана и магистрально-модульный принцип.

В 1946 году Д. фон Нейман, Г. Голдстайн и А. Беркс в своей совместной статье изложили новые принципы построения и функционирования ЭВМ. В последствие на основе этих принципов производились первые два поколения компьютеров. В более поздних поколениях происходили некоторые изменения, хотя принципы Неймана актуальны и сегодня.

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

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

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


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

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

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

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

6. Наличие устройств ввода и вывода информации . Именно эти устройства являются базовыми и достаточными для работы компьютера на пользовательском уровне.

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

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

Компьютер не является неделимым, цельным объектом. Он состоит из некоторого количества устройств – модулей. (Комплектовать свой компьютер из этих модулей пользователь может по собственному желанию). Для каждого устройства в компьютере имеется электронная схема, которая им управляет. Эта схема называется контроллером, или адаптером. некоторые контроллеры могут управлять сразу несколькими устройствами. Все контроллеры и адаптеры взаимодействуют с процессором и оперативной памятью через системную магистраль (набор электронных линий. Шина - это кабель, состоящий из множества проводов.

Магистраль обеспечивает обмен данными между устройствами компьютера.

Магистраль состоит из трех частей:

1. Шина адреса, на которой устанавливается адрес требуемой ячейки памяти или устройства, с которым будет происходить обмен информацией.

2. Шина данных , по которой будет передаваться необходимая информация.

3. Шина управления , регулирующая этот процесс. (по шине управления передаются сигналы, определяющие характер обмена информацией по магистрали. Эти сигналы показывают – какую операцию следует производить).

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

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

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

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

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

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

Обработка данных на компьютере:

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

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

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

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

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

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

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

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

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

Количество адресуемых ячеек памяти можно рассчитать по формуле:

N=2 I , где I – разрядность шины адреса.

Каждой шине соответствует свое адресное пространство, т. е. максимальный объем адресуемой памяти:

2 16 = 64 Кб

2 20 = 1 Мб

2 24 = 16 Мб

2 32 = 4 Гб

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

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

Магистрально-модульный принцип имеет ряд достоинств:

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

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

3. меняя состав модулей можно изменять мощность и назначение компьютера в процессе его эксплуатации.

Основы учения об архитектуре вычислительных машин заложил выдающийся американский математик Джон фон Нейман. Он подключился к созданию первой в мире ламповой ЭВМ ENIAC в 1944 г., когда ее конструкция была уже выбрана. В процессе работы во время многочисленных дискуссий со своими коллегами Г . Голдстайном и А. Берксом фон Нейман высказал идею принципиально новой ЭВМ. В 1946 г. ученые изложили свои принципы построения вычислительных машин в ставшей классической статье “Предварительное рассмотрение логической конструкции электронно-вычислительного устройства”. С тех пор прошло полвека, но выдвинутые в ней положения сохраняют актуальность и сегодня.

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

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

Фон Нейман не только выдвинул основополагающие принципы логического устройства ЭВМ, но и предложил ее структуру, которая воспроизводилась в течение первых двух поколений ЭВМ. Основными блоками по Нейману являются устройство управления (УУ) и арифметико-логическое устройство (АЛУ) (обычно объединяемые в центральный процессор), память, внешняя память, устройства ввода и вывода. Схема устройства такой ЭВМ представлена на рис. 1. Следует отметить, что внешняя память отличается от устройств ввода и вывода тем, что данные в нее заносятся в виде, удобном компьютеру, но недоступном для непосредственного восприятия человеком. Так, накопитель на магнитных дисках относится к внешней памяти, а клавиатура – устройство ввода, дисплей и печать – устройства вывода.

Рис. 1. Архитектура ЭВМ, построенной на принципах фон Неймана. Сплошные линии со стрелками указывают направление потоков информации, пунктирные – управляющих сигналов от процессора к остальными узлам ЭВМ

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

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

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

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

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

Архитектура фон Неймана (англ. von Neumann architecture) - широко известный принцип совместного хранения программ и данных в памяти компьютера. Вычислительные системы такого рода часто обозначают термином «машина фон Неймана», однако, соответствие этих понятий не всегда однозначно. В общем случае, когда говорят об архитектуре фон Неймана, подразумевают физическое отделение процессорного модуля от устройств хранения программ и данных.

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

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

Джон фон Нейман. Биография

Янош Лайош Нейман родился старшим из трёх сыновей в состоятельной еврейской семье в Будапеште, бывшем в те времена городом Австро-Венгерской империи. Его отец, Макс Нейман (венг. Neumann Miksa, 1870-1929), переселился в Будапешт из провинциального городка Печ в конце 1880-х годов, получил степень доктора от юриспруденции и работал адвокатом в банке. Мать, Маргарет Канн (венг. Kann Margit, 1880-1956), была домохозяйкой и старшей дочерью (во втором браке) преуспевающего коммерсанта Якоба Канна - партнёра в фирме «Kann-Heller», специализирующейся на торговле мельничными жерновами и другим сельскохозяйственным оборудованием.

Янош, или просто Янси, был необыкновенно одарённым ребёнком. Уже в 6 лет он мог разделить в уме два восьмизначных числа и беседовать с отцом на древнегреческом. Янош всегда интересовался математикой, природой чисел и логикой окружающего мира. В восемь лет он уже хорошо разбирался в математическом анализе. В 1911 году он поступил в Лютеранскую Гимназию. В 1913 году его отец получил дворянский титул, и Янош вместе с австрийским и венгерским символами знатности - приставкой фон (von) к австрийской фамилии и титулом Маргиттаи (Margittai) в венгерском именовании - стал называться Янош фон Нейман или Нейман Маргиттаи Янош Лайош. Во время преподавания в Берлине и Гамбурге его называли Иоганн фон Нейман. Позже, после переселения в 1930-х годах в США, его имя на английский манер изменилось на Джон. Любопытно, что его братья после переезда в США получили совсем другие фамилии: Vonneumann и Newman. Первая, как можно заметить, является "сплавом" фамилии и приставки "фон", вторая же - дословным переводом фамилии с немецкого на английский.

Фон Нейман получил степень доктора философии по математике (с элементами экспериментальной физики и химии) в университете Будапешта в 23 года. Одновременно он изучал химическую инженерию в швейцарском Цюрихе (Макс фон Нейман полагал профессию математика недостаточной для того, чтобы обеспечить надёжное будущее сына). С 1926 по 1930 год Джон фон Нейман был приват-доцентом в Берлине.

В 1930 году фон Нейман был приглашён на преподавательскую должность в американский Принстонский университет. Был одним из первых приглашённых на работу в основанный в 1930 году научно-исследовательский Институт перспективных исследований (англ. Institute for Advanced Study), также располагавшийся в Принстоне, где с 1933 года и до самой смерти занимал профессорскую должность.

В 1936-1938 годах Алан Тьюринг защищал в институте под руководством Алонзо Чёрча докторскую диссертацию. Это случилось вскоре после публикации в 1936 году статьи Тьюринга «О вычислимых числах в применении к проблеме разрешимости» (англ. On Computable Numbers with an Application to the Entscheidungs problem), которая включала в себя концепции логического проектирования и универсальной машины. Фон Нейман, несомненно, был знаком с идеями Тьюринга, однако неизвестно, применял ли он их в проектировании IAS-машины десять лет спустя.

В 1937 году фон Нейман стал гражданином США. В 1938 он был награждён премией имени М. Бохера за свои работы в области анализа.

Фон Нейман был женат дважды. В первый раз он женился на Мариэтте Кёвеши (Mariette Kövesi) в 1930 году. Брак распался в 1937 году, а уже в 1938 он женился на Кларе Дэн (Klara Dan). От первой жены у фон Неймана родилась дочь Марина - в последующем известный экономист.

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

В 1957 году фон Нейман заболел раком кости, возможно, вызванным радиоактивным облучением при исследовании атомной бомбы в Тихом океане или, может быть, при последующей работе в Лос-Аламосе, штат Нью-Мексико (его коллега, пионер ядерных исследований Энрико Ферми, умер от рака желудка в 1954 году). Через несколько месяцев после постановки диагноза фон Нейман умер в тяжёлых мучениях. Рак также поразил его мозг, практически лишив его возможности мыслить. Когда он лежал при смерти в госпитале Вальтера Рида, он шокировал своих друзей и знакомых просьбой поговорить с католическим священником.

История

В середине 1940-х проект компьютера, хранящего свои программы в общей памяти был разработан в Школе электрических разработок Мура (англ. The Moore School of Electrical Engineering) в Университете штата Пенсильвания (англ. The University of Pennsylvania).В процессе работы во время многочисленных дискуссий со своими коллегами Г. Голдстайном и А. Берксом фон Нейман высказал идею принципиально новой ЭВМ. В 1946 г. ученые изложили свои принципы построения вычислительных машин в ставшей классической статье “Предварительное рассмотрение логической конструкции электронно-вычислительного устройства”.В статье убедительно обосновывается использование двоичной системы для представления чисел (нелишне напомнить, что ранее все вычислительные машины хранили обрабатываемые числа в десятичном виде). Авторы убедительно продемонстрировали преимущества двоичной системы для технической реализации, удобство и простоту выполнения в ней арифметических и логических операций (в дальнейшем ЭВМ стали обрабатывать и нечисловые виды информации – текстовую, графическую, звуковую и другие, но двоичное кодирование данных по-прежнему составляет информационную основу любого современного компьютера). Еще одной поистине революционной идеей, значение которой трудно переоценить, является предложенный Нейманом принцип “хранимой программы”. Первоначально программа задавалась путем установки перемычек на специальной коммутационной панели. Нейман первым догадался, что программа может также храниться в виде набора нулей и единиц, причем в той же самой памяти, что и обрабатываемые ею числа. Отсутствие принципиальной разницы между программой и данными дало возможность ЭВМ самой формировать для себя программу в соответствии с результатами вычислений.

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

Манчестерский Марк I. Прототип - Манчестерская малая экспериментальная машина. Университет Манчестера (англ. The University of Manchester), Великобритания, 21 июня 1948 года;

EDSAC. Кембриджский университет (англ. The Cambridge University), Великобритания, 6 мая 1949 года;

BINAC. США, апрель или август 1949 года;

CSIR Mk 1. Австралия, ноябрь 1949 года;

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

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

В 1946 году Д. фон Нейман, Г. Голдстайн и А. Беркс в своей совместной статье изложили новые принципы построения и функционирования ЭВМ. В последствие на основе этих принципов производились первые два поколения компьютеров. В более поздних поколениях происходили некоторые изменения, хотя принципы Неймана актуальны и сегодня.

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

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

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

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

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

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

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

Для сравнения, программа компьютера ENIAC (где не было хранимой в памяти программы) определялась специальными перемычками на панели. Чтобы перепрограммировать машину (установить перемычки по-другому) мог потребоваться далеко не один день. И хотя программы для современных компьютеров могут писаться годы, однако они работают на миллионах компьютеров после несколько минутной установки на жесткий диск.

Машина фон Неймана

В соответствии с принципами фон Неймана компьютер состоит из арифметико-логического устройства - АЛУ (англ. ALU, Arithmetic and Logic Unit), выполняющего арифметические и логические операции; устройства управления, предназначенного для организации выполнения программ; запоминающих устройств (ЗУ), в т.ч. оперативного запоминающего устройства (ОЗУ) и внешнего запоминающего устройства (ВЗУ); внешних устройств для ввода-вывода данных. Фон-неймановская архитектура компьютера считается классической, на ней построено большинство компьютеров. В общем случае, когда говорят об архитектуре фон Неймана, подразумевают физическое отделение процессорного модуля от устройств хранения программ и данных.

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

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

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

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

УУ управляет всеми частями компьютера. От управляющего устройства на другие устройства поступают сигналы «что делать», а от других устройств УУ получает информацию об их состоянии.

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

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

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

Основы учения об архитектуре вычислительных машин заложил выдающийся американский математик Джон фон Нейман. Он подключился к созданию первой в мире ламповой ЭВМ ENIAC в 1944 г., когда ее конструкция была уже выбрана. В процессе работы во время многочисленных дискуссий со своими коллегами Г. Голдстайном и А. Берксом фон Нейман высказал идею принципиально новой ЭВМ. В 1946 г. ученые изложили свои принципы построения вычислительных машин в ставшей классической статье “Предварительное рассмотрение логической конструкции электронно-вычислительного устройства”. С тех пор прошло полвека, но выдвинутые в ней положения сохраняют актуальность и сегодня.

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

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

Фон Нейман не только выдвинул основополагающие принципы логического устройства ЭВМ, но и предложил ее структуру, которая воспроизводилась в течение первых двух поколений ЭВМ. Основными блоками по Нейману являются устройство управления (УУ) и арифметико-логическое устройство (АЛУ) (обычно объединяемые в центральный процессор), память, внешняя память, устройства ввода и вывода. Схема устройства такой ЭВМ представлена на рис. 1. Следует отметить, что внешняя память отличается от устройств ввода и вывода тем, что данные в нее заносятся в виде, удобном компьютеру, но недоступном для непосредственного восприятия человеком. Так, накопитель на магнитных дисках относится к внешней памяти, а клавиатура – устройство ввода, дисплей и печать – устройства вывода.

Рис. 1. Архитектура ЭВМ, построенной на принципах фон Неймана. Сплошные линии со стрелками указывают направление потоков информации, пунктирные – управляющих сигналов от процессора к остальными узлам ЭВМ

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

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

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

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

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

Что-то вроде ностальгии: принципы фон Неймана

Я не сумел отыскать тетрадь с первой частью лекций по Архитектуре ЭВМ, поэтому данные пришлось брать из других источников.
В 1945 году Джон фон Нэйман, физик и математик венгерского происхождения, работавший в США над проектом ENIAC, опубликовал доклад, в котором были намечены основные принципы построения компьютера. Высказанные в докладе положения получили название "Принципы фон Нэймана".

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


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

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


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

Разные типы данных в свою очередь могут быть различены по форматам.

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

Структурно основная память (ОЗУ) состоит из пронумерованных ячеек. Процессору в произвольный момент времени доступна любая ячейка.


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

Эти принципы надолго стали определяющими в развитии ЭВМ. Лишь в 60-е годы появилась теория вычислительных систем, выходящая за пределы принципов фон Нэймана (главное отличие состояло в параллельности вычислений). Но это касалось больших профессиональных ЭВМ, а персональные компьютеры использовали эти принципы до последнего времени. Наш преподаватель архитектуры ЭВМ Игорь Юсупович говорил нам, что фоннэймановский компьютер себя практически исчерпал. Тогда я не представлял во что это выльется, а теперь двух и четырёхядерные процессоры стали обыденностью

Также известная как модель фон Неймана, или Принстонская архитектура, основана на методике, описанной в 1945 году математиком и физиком Джоном фон Нейманом в рамках доклада «Первый проект» о вычислительной машине EDVAC.

Схема архитектуры

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

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

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

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

Предыстория

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

Новая идея

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

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

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

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

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

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

Архитектура компьютера: принцип фон Неймана

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

Основные принципы архитектуры фон Неймана, изложенные в «Первом проекте», набирали широкую известность, в то время как Тьюринг освещал свой доклад об электронном калькуляторе, который был подробно описан в технике и программировании. В нем было изложено и представление автора о машине, которая называлась Automatic Computing Engine (ACE). Он представил его исполнительному комитету британской Национальной физической лаборатории в 1946 году. Спустя некоторое время даже были произведены различные успешные реализации конструкции ACE.

Начало реализации проектов

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

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

Maniacs и Joniacs

В 1947 году Беркс, Гольдштейн и фон Нейман опубликовали еще один доклад, в котором освещалась конструкция другого типа машины (на этот раз параллельная), которая должна была стать чрезвычайно быстрой, способной, возможно, осуществлять до 20 000 операций в секунду. Они отметили, что нерешенной проблемой при построении ее была разработка подходящей памяти, все содержимое которой должно быть мгновенно доступно. Сначала они предложили использовать специальную вакуумную трубку, называемую Selectron, которая была изобретена в Принстонской лаборатории. Такие трубки были дорогими, и сделать их очень трудно, особенно если используется данная архитектура. Фон Нейман впоследствии решил построить машину, основанную на памяти Williams. Эта машина, которая была завершена в июне 1952 года в Принстоне, стала широко известна MANIAC (или просто Maniacs). Ее дизайн вдохновил создателей на конструирование полудюжины или более аналогичных приборов, которые сейчас строятся в Америке и называются шуточно Johniacs.

Принципы создания

Один из самых современных цифровых компьютеров, воплощавших разработки и усовершенствования в технике автоматического электронного вычисления, был продемонстрирован в Национальной физической лаборатории в Теддингтоне, где он был спроектирован и построен небольшой группой математиков, электронщиков и инженеров-исследователей, при содействии ряда производственных инженеров из английской Electric Company Ltd. Оборудование до сих пор находится в лаборатории, но только как опытный образец гораздо большей установки, которая известна как Automatic Computing Engine. Но, несмотря на сравнительно небольшую массу и содержание только 800 термоионных клапанов, он является чрезвычайно быстрой и универсальной счетной машиной.

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

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

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

Классическая архитектура фон Неймана была воплощена в Манчестерской малой экспериментальной машине (SSEM) по прозвищу Baby из университета Манчестера, которая совершила свой первый успешный запуск как устройство, хранящее программу в памяти, 21 июня 1948 года.

EDSAC из Кембриджского университета, первый практический электронный компьютер такого типа, был запущен первый раз успешно в мае 1949 года.

Развитие созданных моделей

IBM SSEC имел возможность рассматривать инструкции как данные и был публично продемонстрирован 27 января 1948 года. Эта способность утверждалась в патенте США. Однако это была частично электромеханическая машина, а не полностью электронная. На практике инструкции были прочитаны с бумажной ленты из-за его ограниченной памяти.

Baby был первым полностью электронным компьютером для запуска сохраненных программ. Он запускал программу факторинга в течение 52 минут 21 июня 1948 года после запуска простого вычисления деления и расчета, который показывает, что два числа являются взаимно простыми.

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

BINAC провел несколько тестовых программ в феврале, марте и апреле 1949 года, хотя и не был завершен до сентября 1949 года. Кроме того, осуществлялись тестовые запуски (некоторые успешные) других электронно-вычислительных машин, для которых свойственна данная архитектура. Фон Нейман, к слову, продолжал работу и над проектом "Манхеттен". Вот такой универсальный человек.

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

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