Выбрать главу

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

Рис. 2.26. Микросхема ОЗУ 6264 (8196х8 бит)

Глава 3

Обработка хранимой программы

В предыдущей главе мы с вами разработали простейший процессор, состоящий из арифметико-логического устройства (АЛУ) и регистра с параллельным вводом/выводом данных. Собственно АЛУ выступает в роли «числодробилки», а рабочий регистр используется для хранения операндов, а также результатов всех операций. В нашем примере, описанном на стр. 33, мы складывали вместе два числа, накапливая результат в рабочем регистре. Если задавать код режима работы АЛУ перед каждым шагом, то мы в принципе можем заставить наше вычислительное устройство выполнить любую задачу, которая может быть описана последовательностью арифметических и логических операций. Эта совокупность кодов команд (например, «сложить», «вычесть», «логическое И»…) может храниться во внешней памяти. Там же могут находиться различные операнды, передаваемые в АЛУ, а также результаты выполнения команд. Таким образом, эти коды включают в себя как собственно программу программируемого устройства, так и различные операнды, или данные. Извлекая (fetch) эти команды по очереди, мы можем выполнять заданную программу. Такая структура вместе с соответствующими каналами передачи данных, дешифраторами и логическими схемами обычно называется цифровым компьютером или цифровой вычислительной машиной.

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

Прочитав эту главу, вы:

• Познакомитесь с фон-неймановской архитектурой и узнаете ее недостатки.

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

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

• Познакомитесь со структурой памяти программ, а также ее взаимодействием со счетчиком команд и конвейером.

• Узнаете формат типичных команд.

• Познакомитесь с назначением и структурой памяти данных.

С исторической точки зрения электронные цифровые вычислительные машины в том виде, в котором мы их сегодня знаем, являются косвенным результатом Второй мировой войны. В то время были созданы различные опытные образцы компьютеров, причем некоторые из них действительно работали[43]. Как правило, эти вычислительные машины представляли собой специализированные устройства, предназначенные для выполнения какой-либо конкретной задачи при различных входных данных. Алгоритм функционирования некоторых из таких машин можно было менять, но при этом требовалась их частичная переделка.

Поскольку принципиальный вопрос возможности создания таких вычислительных систем был уже решен, основным достижением группы инженеров, работавших с Джоном фон Нейманом[44], было осознание того факта, что программа может храниться в памяти вместе с данными. Основным преимуществом такого подхода является его гибкость, так как для изменения программы достаточно просто загрузить новый код в соответствующую область памяти. По существу, фон-неймановская[45] архитектура, показанная на Рис. 3.1, состоит из центрального процессора (ЦПУ), памяти и общей шины (называемой также магистралью), по которой в обоих направлениях пересылаются данные. На практике ЦПУ также должен взаимодействовать и с окружающим миром. При этом данные к/от соответствующих интерфейсных портов передаются по одной общей шине данных.

вернуться

43

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

вернуться

44

Джон фон Нейман — венгерский математик, принимавший участие в Манхэттенском проекте (американская программа по созданию ядерной бомбы), осуществлявшемся во время Второй мировой войны. После войны был принят на должность консультанта в проекте по созданию машины EDVAC, проводившемся в Муровской школе электрических разработок (The Moore School of Electrical Engineering) Пенсильванского университета (The University of Pennsylvania). В этом компьютере предполагалось реализовать концепцию хранения программ и данных в общей памяти. Эти идеи фон Нейман опубликовал в 1946 году, однако EDVAC был запущен только в 1951 году. По иронии судьбы англичане смогли реализовать эти идеи гораздо раньше — компьютер «Марк W, созданный в Манчестерском университете (The University of Manchester), выполнил свою первую программу уже в июне 1948 года! Совсем немного отстали от своих коллег разработчики из Кембриджского университета — их компьютер EDSAC был запущен в мае 1949 года, почти за два года до создания EDVAC.

вернуться

45

Справедливости ради стоит упомянуть и об одной из первых отечественных ЭВМ «М-1», эксплуатация которой была начата весной 1952 года. В этой машине тоже была реализована концепция программы, хранимой в оперативной памяти, хотя отчет Принстонского университета, в котором были сформулированы архитектурные принципы Дж. фон Неймана, в то время и не был известен разработчикам «М-1». — Примеч. пер.