Опубликован: 08.11.2022 | Доступ: свободный | Студентов: 113 / 0 | Длительность: 06:05:00
Лекция 2:

Архитектура фон Неймана

< Лекция 1 || Лекция 2: 123 || Лекция 3 >

Использование условных переходов

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

В современных языках программирования, а также в машинных языках, существует большое количество различных условных переходов. Например, в языке С имеется конструкция if/then/else, которая позволяет программе "ветвится" по значению некоторого логического условия. Имеется также команда switch/case, которая позволяет "ветвить" поток выполне-ния программы по условиям, имеющим не два значения - истину или ложь, как логические условия, - а некоторый спектр значений, тем самым реализуя более чем два ветвления.

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

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

СИСТЕМНАЯ ШИНА

На рис.2.1 представлена схема типовой ЭВМ, созданной на основе архитектуры фон Неймана. Все узлы ЭВМ разделены на три группы - процессор, опера-тивная память, периферийные устройства (жесткий диск, графическая карта компьютера, сетевая карта, различные порты - USB, HDMI и т.д.)3 Следует отметить, что рис.2.1 не вполне точно следует оригинальной ар-хитектуре фон Неймана: там не было единого процессора, а вместо него имелись управляющее и арифметически-логическое устройства, а также в качестве периферийных устройств использовались лишь устройства ввода/вывода. Процессор как единое устройство, которое интегрирует разные бло-ки, участвующие в исполнении программ, появился лишь в ЭВМ четвёртого поколе-ния. Связь процессора с остальными узлами ЭВМ осуществляется с помощью уни-фицированного канала доступа - системной шины.

Общая схема типовой ЭВМ, основанной на архитектуре фон Неймана

Рис. 2.1. Общая схема типовой ЭВМ, основанной на архитектуре фон Неймана

Дадим определение системной шине.

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

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

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

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

ГАРВАРДСКАЯ АРХИТЕКТУРА

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

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

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

Гарвардская архитектура была предложена Говардом Эйкеном в конце 1930-х годов при работе над компьютером Mark I. Кроме того, упоминаемый нами компьютер Z3 также имел гарвардской архитектуру.

КОМБИНИРОВАНИЕ ФОН НЕЙМАНОВСКОЙ И ГАРВАРДСКОЙ АРХИТЕКТУР

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

  • Быстрая кэш-память многих современных процессоров разделяется на память для данных и память для машинного кода. При этом загруженные данные невозможно исполнять (то есть рас-сматривать их как код), а загруженный код - менять (то есть рассматривать его как данные). Доступ к разным видам кэш-памяти осуществляется через разные внутренние шины процессора, что позво-ляет повысить его производительность, правда, ценой усложнения и удорожания.
  • В простых специализированных вычислительных устройствах для управления лифтами, узлами современных автомобилей, кондиционерами и т.д. машинный код записывается непосред-ственно при изготовлении, и таким образом устройство может только считывать его при исполнении, но не имеет возможности изменять. Оперативная память этих устройств предназначена исключительно для данных и не используется для хранения машинного кода. Для хранения машинного кода в таких устройствах обычно используется специальная память объёмом до нескольких сотен килобайт, и её интегрируют в блок процессора, предназначенный для чтения машинного кода. Таким образом, в данном случае гарвардская архитектура не усложняет вычислительное устройство, а напротив, упрощает и удешевляет его.
  • Для реализации вспомогательных узлов ЭВМ - контроллеров жёстких дисков, графиче-ских адаптеров и пр. - также используются идеи гарвардской архитектуры. Например, контроллер жёсткого диска попадает в предыдущий пункт, поскольку выполняет фиксированный набор неслож-ных функций. Графический адаптер оказывается более сложным устройством, которое может вы-полнять различные операции, но при этом исполняемый им машинный код размещается в отдельной памяти, запись в которую осуществляет центральный процессор ЭВМ, а сам графический адаптер лишь считывает этот код для исполнения.
Вопросы
  1. Дайте определение архитектуры ЭВМ.
  2. Перечислите основные принципы архитектуры фон Нейман
  3. Объясните, что означает программное управление работой ЭВМ.
  4. Приведите пример оборудования, которое не управляется программно.
  5. Расскажите про принцип хранимой программы.
  6. Что означает принцип адресуемости памяти?
  7. Что такое машинное слово?
  8. Расскажите о преимуществах использование двоичной системы исчисления.
  9. Что означает принцип иерархичность запоминающих устройств?
  10. Что такое быстродействие памяти?
  11. В чём отличие долгосрочной и оперативной памяти?
  12. Какие виды памяти в современных ЭВМ Вы знаете?
  13. Расскажите о технологиях реализации памяти различного вида.
  14. Дайте определение триггера.
  15. Почему настройки компьютера нельзя хранить на винчестере, а требуется специальный вид долгосрочной памяти?
  16. Что такое условный переход?
  17. Расскажите, как первые компьютеры обходились без условного перехода.
  18. Что такое системная шина?
  19. Расскажите о структуре системной шины.
  20. Расскажите о схеме типовой ЭВМ, созданной на основе архитектуры фон Неймана.
  21. Объясните, что является "узким" местом архитектуры фон Неймана.
  22. Назовите преимущества и недостатки гарвардской архитектуры.
  23. Назовите примеры первых фон Неймановских и гарвардских компьютеров.
  24. Приведите случаи использования гарвардской архитектуры на практике.
Литература
  1. Хорошевский В.Г. Архитектура вычислительных систем.: Учеб. пособие. 2-e изд., пере-раб. и доп. M.: Изд-во МГТУ им. H.Э. Баумана, 2008. 520 c.
  2. Таненбаум Э., Остин Т. Архитектура компьютера. 6-е изд. СПб.: Питер, 2013. 816 с.
  3. Брукс Ф., Чапель Х. Мифический человеко-месяц или как создаются программные систе-мы [пер. с англ.] СПб.: Символ-Плюс, 2010. 304 с.
< Лекция 1 || Лекция 2: 123 || Лекция 3 >
Наталья Ра
Наталья Ра

Здравствуйте! Когда появится возможность сдать экзамен на сертификат?