К какому принципу относят модификацию команд. Архитектура фон Неймана: история возникновения термина. Использование двоичной системы представления данных

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

Считается, что первый электронный компьютер ЭНИАК был изготовлен в США в 1946 году. ЭНИАК состоял из 18000 электронных ламп и 1500 реле и весил 30 тонн. Он и мел 20 регистров, каждый из которых мог содержать 10-разрядное десятичное число.Блестящий анализ сильных и слабых сторон проекта ЭНИАК был дан в отчете Принстонского института перспективных исследований «Предварительное обсуждение логического конструирование электронного вычислительного устройства» (июнь 1946 года). Этот отчет, составленный выдающимся американским математиком Джоном фон Нейманом и его коллегами по Принстонскому институту Г.Голдстайном и А.Берксом, представлял проект нового электронного компьютера. Идеи, высказанные в этом отчете, известны под названием «Неймановских Принципов».

Говоря об основоположниках теоретической информатики, нельзя не упомянуть о двух научных достижениях: алгебре логики и теории алгоритмов. Алгебра логики была разработана в середине 19-го века английским математиком Джорджем Булем и рассматривалась им в качестве метода математизации формальной логики. Разработка электронных компьютеров на двухпозиционных электронных элементах создала возможным широкое использование «булевой логики» для проектирования компьютерных схем. В первой половине 30-х годов 20-гостолетия появились математические работы, в которых была доказана принципиальная возможность решения с помощью автоматов любой проблемы, поддающейся алгоритмический обработке. Данное доказательство содержалось в опубликованных в 1936 году работах английского математика Э.Поста. (Джордж Буль (1815-1864), Алан Тьюринг (1912-1954)).

В Советском Союзе работы по созданию электронных компьютеров были начаты несколько позже. Первый советский электронный компьютер был изготовлен в Киеве в 1953 году. Он назывался МЭСМ (малая электронная вычислительная машина), а его главным конструктором был академик Сергей Лебедев, автор проектов компьютеров серии БЭСМ (большая электронная счетная машина). В проекте МЭСМ Сергей Лебедев независимо от Неймана пришел к тем же идеям конструирования электронных компьютеров, что и Нейман.

Сущность «Неймановских Принципов» состояла в следующем:

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

2.Компьютеры на электронных элементах должны работать не в десятичной, а в двоичной системе счисления.

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

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

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

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

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

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

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

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

Память

Принцип линейности и однородности памяти.

Память – линейная (упорядоченная) однородная последовательность некоторых элементов, называемых ячейками . В любую ячейку памяти другие устройства машины (по толстым стрелкам) могут записать и считать информацию, причём время чтения из любой ячейки одинаково для всех ячеек. Время записи в любую ячейку тоже одинаково (это и есть принцип однородности памяти). Такая память в современных компьютерах называется памятью с произвольным доступом (Random Access Memory, RAM). На практике многие ЭВМ могут иметь участки памяти разных видов, одни из которых поддерживают только чтение информации (Read Only Memory, ROM), другие могут допускать запись, но за большее время, чем в остальную память (это так называемая полупостоянная память) и др.

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

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

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

1. Объём памяти – сотни миллионов ячеек (обычно восьмиразрядных).

2. Скорость работы памяти: время доступа (минимальная задержка на чтение слова) и время цикла (минимальная задержка на чтение из одной и той же ячейки двух слов) – порядка единиц и десятков наносекунд (1 секунда=10 9 наносекунд). Заметим, что для упомянутой выше динамической памяти время цикла больше , чем время доступа, так как надо ещё восстановить разрушенное при чтении содержимое ячейки.

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

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

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

3. Принципы фон Неймана. Архитектура классической ЭВМ, Принципы фон Неймана

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

Свойства алгоритмов

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

    детерминированность - воспроизводимость результатов выполнения алгоритма;

    массовость - возможность применения алгоритма для различных исходных данных из допустимого множества

Программа - описание алгоритма на каком-либо языке.

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

ППУ включает в себя несколько архитектурно - функциональных принципов.

1) Принцип двоичного кодирования Информация кодируется в двоичной форме и разделяется на единицы (элементы) информации, называемые словами. Использование двоичной системы счисления определяется спецификой электронных схем. Слово является неделимой единицей информации.

2) Однотипность кодирования информации. Разнотипные слова информации различаются по способу использования, но не способами кодирования. Слова, представляющие разнотипную информацию неразличимы (данные, команды). Порядок их использования определяет их специфику. Одни и те команды могут использоваться для обработки различных данных.

3) Адресная организация оперативной памяти. Слова информации размещаются в ячейках памяти машины и идентифицируются номерами ячеек, называемых адресами слов. Определяет специфику хранения и идентификации информации. Адрес ячейки является машинным идентификатором величины и команды.

4)Вычислительная машина имеет ограниченный набор команд . Каждая отдельная команда определяет простой (единичный) шаг преобразования информации.

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

Простота реализации аппаратной части.

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

Недостатки:

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

пЗ. предполагает линейную организацию памяти. Это усложняет вычисление элементов расположения сложных типов данных.

Архитектура классической ЭВМ

Структура ЭВМ

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

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

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

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

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

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

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

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

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

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

Как работает машина фон Неймана

Машина фон Неймана состоит из запоминающего устройства (памяти) - ЗУ, арифметико-логического устройства - АЛУ, устройства управления – УУ, а также устройств ввода и вывода.

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

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

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

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

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

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

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

Какие достижения в информатике Джон фон Нейман совершил в ХХ веке, Вы узнаете из этой статьи.

Перед тем, как говорить о его достижениях в информатике, стоит рассказать о первых шагах ученого на пути науки. Его первая работа «К введению трансфинитных ординальных чисел» увидела свет в 1923 году на страницах Сегедского университета, где он обучался. В своей докторской диссертации он разработал систему аксиом . В 1925 году Нейман защитил диссертацию на тему «Аксиоматическое построение теории множеств» в Будапештском университете и получил диплом инженера-химика от цюрихского университета. В 1927 году он стал приват-доцентом Берлинского университета, а через два года и Гамбургского университета. В 1931 году он получил должность профессора в Пристонском университете.

Джон фон Нейман достижения в информатике

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

Джон фон Нейман предложил использовать электростатическую запоминающую систему вместо линии задержки как элементы памяти. Новосозданную машину назвали ДЖОНИАК, на честь Неймана.

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

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

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

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

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

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

  1. Использование двоичной системы счисления в вычислительных машинах . Преимущество перед десятичной системой счисления заключается в том, что устройства можно делать достаточно простыми, арифметические и логические операции в двоичной системе счисления также выполняются достаточно просто.
  2. Программное управление ЭВМ . Работа ЭВМ контролируется программой, состоящей из набора команд. Команды выполняются последовательно друг за другом. Созданием машины с хранимой в памяти программой было положено начало тому, что мы сегодня называем программированием.
  3. Память компьютера используется не только для хранения данных, но и программ . При этом и команды программы и данные кодируются в двоичной системе счисления, т.е. их способ записи одинаков. Поэтому в определенных ситуациях над командами можно выполнять те же действия, что и над данными.
  4. Ячейки памяти ЭВМ имеют адреса, которые последовательно пронумерованы . В любой момент можно обратиться к любой ячейке памяти по ее адресу. Этот принцип открыл возможность использовать переменные в программировании.
  5. Возможность условного перехода в процессе выполнения программы . Не смотря на то, что команды выполняются последовательно, в программах можно реализовать возможность перехода к любому участку кода.

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

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

Как работает машина фон Неймана

Машина фон Неймана состоит из запоминающего устройства (памяти) - ЗУ, арифметико-логического устройства - АЛУ, устройства управления – УУ, а также устройств ввода и вывода.

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

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

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

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

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

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

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



Понравилась статья? Поделиться с друзьями: