Принципы организации ЭВМ

Принципы организации ЭВМ с фоннеймановской архитектурой

  • 1. Название «электронная вычислительная машина» говорит о том, что эта машина предназначена, во-первых, для решения сложных вычислительных задач, и во-вторых, что она должна быть реализована на базе электронных элементов.
  • 2. ЭВМ — это машина с хранимой (в памяти ЭВМ) программой, представленной в виде последовательности команд.
  • 3. Составляющие выполняемую ЭВМ программу команды и данные, над которыми выполняются задаваемые командами операции, должны быть представлены в ЭВМ в виде двоичного кода.
  • 4. Память ЭВМ должна быть организована в виде последовательности запоминающих ячеек, в каждой из которых может храниться (запоминаться) какой-либо двоичный код (код команды, числа, символа алфавита). При этом в конкретный момент времени можно обратиться для записи или чтения к любой одной из этих ячеек независимо от места ее расположения в памяти, указав адрес (порядковый номер) этой ячейки.
  • 5. Для хранения кодов команд и кодов данных в ЭВМ используется одна общая память. При этом в двоичных кодах самих команд и данных отсутствуют какие-либо признаки, позволяющие явно отличать команды от данных.
  • 6. Предназначение содержащихся в ячейках памяти данных, их тип и способ интерпретации и обработки также явно в их двоичном коде не указываются.
  • 7. В классической фоннеймановской ЭВМ используется один центральный процессор.

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

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

Рассмотрим приведенные выше принципы более подробно, пытаясь определить мотивацию создателей ЭВМ при выборе этих решений.

ЭВМ — это машина с хранимой (в памяти ЭВМ) программой, представленной в виде последовательности команд.

В этом тезисе содержится два ключевых слова — «программой» и «хранимой».

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

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

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

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

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

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

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

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

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

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

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

Интересен следующий тезис.

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

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

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

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

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

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

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

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

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

Контрольные вопросы

  • 1. Объясните, в чем состоит принципиальный смысл формулы «ЭВМ — это машина с хранимой программой».
  • 2. Какая система счисления и почему выбрана в фоннеймановской ЭВМ для внутреннего представления чисел?
  • 3. Представление в памяти фоннеймановской ЭВМ данных и команд.
  • 4. Что такое программа ЭВМ? В каком виде и где она должна размещаться для того, чтобы процессор мог ее выполнять?
  • 5. Для чего в ЭВМ нужна память? Особенности организации памяти фоннеймановской ЭВМ.
  • 6. Что такое память с произвольным доступом? Возможны ли другие способы доступа к ячейкам памяти, другие способы организации памяти?
  • 7. Что такое адрес ячейки памяти ЭВМ?
  • 8. В ЭВМ с фоннеймановской архитектурой данные и команды хранятся:
    • а) раздельно в памяти команд и памяти данных;
    • б) в общей памяти;
    • в) данные хранятся в памяти ЭВМ, а команды поступают от внешних устройств;
    • г) команды находятся в памяти ЭВМ, а данные принимаются из портов внешних устройств;
    • д) ваш вариант.

В чем преимущество выбранного вами решения?

  • 9. Можно ли по содержимому ячейки памяти фоннеймановской ЭВМ определить, что в ней находится: команда, целое число без знака, число со знаком и т. д.? Если да, то каким образом?
  • 10. Каким образом процессор фоннеймановской ЭВМ определяет, из каких ячеек памяти следует выбирать команды, а из каких—данные?

Глава 3

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >