Здравствуйте! Когда появится возможность сдать экзамен на сертификат? |
Архитектура фон Неймана
Использование условных переходов
Условный переход - это машинная команда или кон-струкция языка программирования, которая позволяет направить выполнение программы по раз-ным веткам в зависимости от значения некоторой переменной или результата выполнения некото-рого условия.
В современных языках программирования, а также в машинных языках, существует большое количество различных условных переходов. Например, в языке С имеется конструкция if/then/else, которая позволяет программе "ветвится" по значению некоторого логического условия. Имеется также команда switch/case, которая позволяет "ветвить" поток выполне-ния программы по условиям, имеющим не два значения - истину или ложь, как логические условия, - а некоторый спектр значений, тем самым реализуя более чем два ветвления.
Кроме непосредственного использования условные переходы очень важны в циклах. Ведь в циклах постоянно проверяются выполнение некоторого условия и, и в зависимости от его истинности или запускается следующая итерация тела цикла или происходит выход из цикла на следующую после цикла инструкцию. Также условные переходы используются неявно, в ряде других конструкций языков программирования и машинных языках.
Несмотря на то, что сегодня условные переходы кажутся чем-то само собой разумеющим-ся, они появились далеко не сразу. Например, уже упомянутые компьютеры Mark I и Z3 их не поддерживали. В том месте программы, где требовался условный переход, компьютер должен был остановиться и передать управление оператору.
СИСТЕМНАЯ ШИНА
На рис.2.1 представлена схема типовой ЭВМ, созданной на основе архитектуры фон Неймана. Все узлы ЭВМ разделены на три группы - процессор, опера-тивная память, периферийные устройства (жесткий диск, графическая карта компьютера, сетевая карта, различные порты - USB, HDMI и т.д.)3 Следует отметить, что рис.2.1 не вполне точно следует оригинальной ар-хитектуре фон Неймана: там не было единого процессора, а вместо него имелись управляющее и арифметически-логическое устройства, а также в качестве периферийных устройств использовались лишь устройства ввода/вывода. Процессор как единое устройство, которое интегрирует разные бло-ки, участвующие в исполнении программ, появился лишь в ЭВМ четвёртого поколе-ния. Связь процессора с остальными узлами ЭВМ осуществляется с помощью уни-фицированного канала доступа - системной шины.
Дадим определение системной шине.
Системная шина является быстрым каналом передачи данных и предназначается для обеспечения эффективной коммуникации процессора с оперативной памятью и периферийными устройствами ЭВМ.
У первых компьютеров системная шина состояла из трёх шин специального назначения: шины данных, адресной шины, управляющей шины.
- Шина данных предназначена для передачи данных между про-цессором, памятью и внешними устройствами.
- Адресная шина предназначена для передачи адресов ячеек памя-ти и идентификаторов внешних устройств.
- Управляющая шина предназначена для передачи управляющих сигналов между процессором и оперативной памятью. Подобная координация необходима, посколь-ку выполнение тех или иных действий требует времени, и устройства должны "знать, когда им необходимо начать то или иной действие. В качестве примера можно привести координацию процессором считывания данных оперативной памятью с шины данных. Получив по управляющей шине соответствующий сигнал, оперативная "решает", что данные на шине данных готовы к считыванию и, соответственно начинает их чтение.
Отметим, что в современных ЭВМ системная шина организована иначе, но приведённое выше разделение каналов передачи информации активно применяется на разных уровнях организа-ции системной шины.
ГАРВАРДСКАЯ АРХИТЕКТУРА
"Узким" местом архитектуры фон Неймана является системная шина: она ин-тенсивно используется во время исполнения программы, поскольку и код программы, и её данные находятся в одном месте (оперативная память), а исполняются в другом (процессор). Поэтому её пропускная способность, во многом, определяет скорость исполнения программы. Существуют раз-личные способы решения этой проблемы, например, кэш-память, который будет обсуждаться далее, однако она является принципиальной, и полностью её решить не удаётся.
Совместное хранение программы и ее данных в оперативной памяти ЭВМ позволяет су-щественно удешевить производство ЭВМ и упростить её архитектуру, но не является эффективным по быстродействию. Если реализовать раздельное хранение программы и ее данных, то можно пере-сылать команды программы и соответствующие данные в процессор параллельно, что значительно ускоряет работу ЭВМ. Такой подход получил название гарвардской архитекту-ры.
Гарвардская архитектура предусматривает раздельное хранение программы и данных в оперативной памяти разного вида, а также возможность парал-лельного считывания того и другого процессором при помощи отдельных шин.
Гарвардская архитектура была предложена Говардом Эйкеном в конце 1930-х годов при работе над компьютером Mark I. Кроме того, упоминаемый нами компьютер Z3 также имел гарвардской архитектуру.
КОМБИНИРОВАНИЕ ФОН НЕЙМАНОВСКОЙ И ГАРВАРДСКОЙ АРХИТЕКТУР
Существенным недостатком гарвардской архитектуры является то, что требуется реализо-вать два устройства оперативной памяти и две независимых шины: при массовом производстве это значительно повышает стоимость компьютера. Однако в ряде случаев это оказывается целесообраз-ным и идеи гарвардской архитектуры используются на практике. Перечислим несколько типичных случаев, в которых применяется гарвардская архитектура.
- Быстрая кэш-память многих современных процессоров разделяется на память для данных и память для машинного кода. При этом загруженные данные невозможно исполнять (то есть рас-сматривать их как код), а загруженный код - менять (то есть рассматривать его как данные). Доступ к разным видам кэш-памяти осуществляется через разные внутренние шины процессора, что позво-ляет повысить его производительность, правда, ценой усложнения и удорожания.
- В простых специализированных вычислительных устройствах для управления лифтами, узлами современных автомобилей, кондиционерами и т.д. машинный код записывается непосред-ственно при изготовлении, и таким образом устройство может только считывать его при исполнении, но не имеет возможности изменять. Оперативная память этих устройств предназначена исключительно для данных и не используется для хранения машинного кода. Для хранения машинного кода в таких устройствах обычно используется специальная память объёмом до нескольких сотен килобайт, и её интегрируют в блок процессора, предназначенный для чтения машинного кода. Таким образом, в данном случае гарвардская архитектура не усложняет вычислительное устройство, а напротив, упрощает и удешевляет его.
- Для реализации вспомогательных узлов ЭВМ - контроллеров жёстких дисков, графиче-ских адаптеров и пр. - также используются идеи гарвардской архитектуры. Например, контроллер жёсткого диска попадает в предыдущий пункт, поскольку выполняет фиксированный набор неслож-ных функций. Графический адаптер оказывается более сложным устройством, которое может вы-полнять различные операции, но при этом исполняемый им машинный код размещается в отдельной памяти, запись в которую осуществляет центральный процессор ЭВМ, а сам графический адаптер лишь считывает этот код для исполнения.
Вопросы
- Дайте определение архитектуры ЭВМ.
- Перечислите основные принципы архитектуры фон Нейман
- Объясните, что означает программное управление работой ЭВМ.
- Приведите пример оборудования, которое не управляется программно.
- Расскажите про принцип хранимой программы.
- Что означает принцип адресуемости памяти?
- Что такое машинное слово?
- Расскажите о преимуществах использование двоичной системы исчисления.
- Что означает принцип иерархичность запоминающих устройств?
- Что такое быстродействие памяти?
- В чём отличие долгосрочной и оперативной памяти?
- Какие виды памяти в современных ЭВМ Вы знаете?
- Расскажите о технологиях реализации памяти различного вида.
- Дайте определение триггера.
- Почему настройки компьютера нельзя хранить на винчестере, а требуется специальный вид долгосрочной памяти?
- Что такое условный переход?
- Расскажите, как первые компьютеры обходились без условного перехода.
- Что такое системная шина?
- Расскажите о структуре системной шины.
- Расскажите о схеме типовой ЭВМ, созданной на основе архитектуры фон Неймана.
- Объясните, что является "узким" местом архитектуры фон Неймана.
- Назовите преимущества и недостатки гарвардской архитектуры.
- Назовите примеры первых фон Неймановских и гарвардских компьютеров.
- Приведите случаи использования гарвардской архитектуры на практике.
Литература
- Хорошевский В.Г. Архитектура вычислительных систем.: Учеб. пособие. 2-e изд., пере-раб. и доп. M.: Изд-во МГТУ им. H.Э. Баумана, 2008. 520 c.
- Таненбаум Э., Остин Т. Архитектура компьютера. 6-е изд. СПб.: Питер, 2013. 816 с.
- Брукс Ф., Чапель Х. Мифический человеко-месяц или как создаются программные систе-мы [пер. с англ.] СПб.: Символ-Плюс, 2010. 304 с.