Глава 36. Основы микрокомпьютеров

ЦЕЛИ

После изучения этой главы студент должен быть в состоянии:

• Перечислить основные блоки компьютера.

• Объяснить назначение каждого блока компьютера.

• Описать программу и объяснить, как она связана с компьютерами и микропроцессорами.

• Перечислить основные регистры микропроцессора.

• Объяснить, как работает микропроцессор.

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

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

Компьютеры классифицируются по размерам и вычислительной мощности. Самые мощные компьютеры называются мэйнфреймами[4]. Они дороги, но имеют большую память и высокую скорость вычислений. Самые маленькие компьютеры — миникомпьютеры и микрокомпьютеры — более доступны и широко используются. Микрокомпьютер — это наименьший и наименее дорогой из компьютеров, еще сохраняющий все свойства и характеристики компьютера.

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

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

Компьютеры специального назначения рассчитаны на выполнение определенной задачи.

36-1. ОСНОВЫ УСТРОЙСТВА КОМПЬЮТЕРА

Все цифровые компьютеры состоят из пяти основных блоков: блока управления, арифметико-логического устройства (АЛУ), памяти, ввода и вывода (рис. 36-1).

Рис. 36-1. Основные блоки компьютера.

В некоторых случаях блоки ввода и вывода объединены в один блок, называемый блоком ввода-вывода. Так как блок управления и арифметико-логический блок тесно связаны между собой и их трудно отделить друг от друга, их вместе можно назвать центральным процессором (CPU) или микропроцессорным блоком.

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

Современные компьютеры обладают способностью объединять несколько команд в одну. Это осуществляется с помощью программы, хранящейся в памяти. Когда команда дешифрована блоком управления, эта программа выдает последовательность инструкций для ее выполнения.

Блоки управления различных компьютеров отличаются друг от друга. В основном, блок управления состоит из индексного регистра, регистра команд, дешифратора команд, счетчика команд, генератора тактовых импульсов и схемы формирования импульсов управления (рис. 36-2).

Рис. 36-2. Блок управления компьютера.

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

Счетчик команд отслеживает последовательность команд, которые должны быть выполнены. Команды хранятся в программе, хранящейся в памяти. Для того чтобы программа начала выполняться, в счетчик команд помещается начальный адрес программы (определенное место в памяти).

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

Некоторые команды задают переход в другое место программы. Регистр команд содержит адрес расположения следующей команды, и он загружается в индексный регистр.

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

Умножение и деление программируются в блоке управления. Арифметико-логическое устройство может выполнять логические операции, такие как инверсия, И, ИЛИ и исключающее ИЛИ. Оно может также принимать решения путем сравнения заданных чисел с 0, 1 или отрицательными числами.

На рис. 36-3 изображена блок-схема арифметико-логического устройства. Оно состоит из арифметико-логической цепи и накапливающего регистра.

Рис. 36-3. Арифметико-логическое устройство (АЛУ).

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

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

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

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

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

На рис. 36-4 изображено типичное распределение памяти.

Рис. 36-4. Распределение памяти в компьютере.

Регистры памяти сохраняют двоичные данные. Эта память, обычно называемая памятью с произвольным доступом (RAM), основана на способности ячеек памяти хранить (записывать) или находить (читать) данные, или памятью только для чтения (ROM), способной только считывать данные из памяти.

Регистр адреса ячейки памяти обеспечивает доступ к определенным ячейкам памяти с помощью дешифратора адреса ячейки памяти. Размер регистра адреса ячейки памяти определяется максимальной емкостью памяти компьютера. Например, 16-разрядный регистр адреса ячейки памяти позволяет адресовать 216 или 65 536 ячеек памяти.

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

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

Блоки ввода и вывода управляются центральным процессором. Для передачи данных в компьютер и из компьютера используются специальные команды ввода/вывода (I/O).

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

36-1. Вопросы

1. Нарисуйте блок-схему компьютера.

2. Каковы функции следующих блоков компьютера?

а. Блока управления.

б. Арифметико-логического устройства.

в. Памяти.

г. Ввода.

д. Вывода.

3. Какова функция ROM (памяти только для чтения) компьютера?

4. Что показывает последовательность команд, которые должны быть выполнены?

5. Чем определяется количество данных, которое может храниться в компьютере?

6. Дайте определение программы.

36-2. АРХИТЕКТУРА МИКРОПРОЦЕССОРА

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

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

Рис. 36-5. Узлы 8-разрядного микропроцессора.

Аккумулятор — это регистр наиболее часто используемый в микропроцессоре. Он используется для приема или хранения данных из памяти или устройства ввода/вывода. Его работа также связана с работой арифметико-логического устройства. Количество разрядов в аккумуляторе определяет размер слова в микропроцессоре. В 8-разрядном микропроцессоре размер слова — 8 разрядов.

Регистр условия кода — это 8-разрядный регистр, позволяющий программисту проверить состояние микропроцессора в некоторой точке программы. В зависимости от микропроцессора этот регистр может называться регистром состояния процессора, регистром состояния или флаговым регистром (регистром признака). Один разряд в этом регистре называется флаговым разрядом. Чаще всех встречаются флаг переполнения, нулевой флаг и флаг знака. Флаг переполнения используется во время арифметических действий для определения необходимости переноса или заема. Нулевой флаг используется для определения наличия нулей во всех разрядах результата или команды. Флаг знака используется для указания знака числа — положительный или отрицательный. Из 8 разрядов этого регистра процессоры Motorola 6800 и Zilog Z80 используют 6 разрядов; процессор Intel 8080А использует 5; процессор MOS Technology 6502 использует 7.

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

Указатель стека — это 16-разрядный регистр, содержащий адрес ячейки памяти данных, хранящихся в стеке. Стек будет обсуждаться немного позднее.

Большинство микропроцессоров имеют одинаковые наборы основных команд с различными машинными кодами и несколько собственных команд. Основные команды делятся на девять категорий:

1. Перемещение данных.

2. Арифметические.

3. Логические.

4. Сравнение и проверка.

5. Вращение и сдвиг.

6. Управление программой.

7. Стек.

8. Ввод/вывод.

9. Разные.

Команды перемещения данных перемещают данные из одного места в другое внутри микропроцессора и памяти (рис. 36-6). Данные перемещаются сразу по 8 бит в параллельном коде (одновременно) из одного места в другое.

Рис. 36-6. Команды перемещения данных.

Команды микропроцессора используют символические обозначения, указывающие, как перемещать данные. В микропроцессорах 6800 и 6502 стрелка перемещает слева направо. В микропроцессорах 8080А и Z80 стрелка перемещает справа налево. В любом случае сообщение об операции одинаково. Данные перемещаются от источника к месту назначения.

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

Логические команды — это команды, содержащие один или более Булевых операторов: И, ИЛИ и исключающее ИЛИ. Они работают одновременно с восемью битами в АЛУ, а результаты работы этих команд помещаются в аккумулятор. Другой логической операцией является команда дополнения. Она включает дополнение до единицы и дополнение до двух. Так как дополнение осуществляется с помощью дополнительной цепи, эта операция содержится не во всех микропроцессорах. Микропроцессоры 6502 не содержат команды дополнения. Микропроцессор 8080А имеет команду дополнения до единицы. Микропроцессоры 6800 и Z80 имеют команды дополнения до единицы и дополнения до двух.

Операции дополнения обеспечивают метод представления чисел со знаками. Дополняющие числа позволяют АЛУ выполнять операции вычитания с помощью цепи сумматора. Следовательно, блок микропроцессора может использовать Одни и те же цепи для сложения и вычитания.

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

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

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

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

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

В микропроцессорах 6800 и 6502 содержимое регистра запоминается в стеке, и после этого указатель стека уменьшается на 1. Это позволяет указателю стека отметить следующую ячейку памяти, где могут быть сохранены данные. Указатель стека — это 16-разрядный регистр, использующийся для определения ячейки памяти, действующей, как вершина стека. Когда используется команда «pull», указатель стека увеличивается на 1, данные извлекаются из стека и помещаются в соответствующий регистр. В процессоре 8080А вершина стека содержит указатель на последнюю ячейку памяти. Команда «push» сначала уменьшает указатель стека на 1, а после этого помещает содержимое регистра в стек.

Команды ввода/вывода предназначены только для управления устройствами ввода/вывода. Процессоры 8080А, 8085 и Z80 имеют команды ввода/вывода. Процессоры 6800 и 6502 специальных команд ввода/вывода не имеют. Если микропроцессор использует команды ввода/вывода для работы с внешними устройствами, то ввод/вывод называется независимым.

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

36-2. ВОПРОСЫ

1. Каковы основные части микропроцессора?

2. Какие регистры находятся в микропроцессоре?

3. На какие основные категории делятся команды микропроцессора?

РЕЗЮМЕ

• Компьютеры состоят из блока управления, арифметико-логического устройства, памяти и блока ввода/вывода.

• Блок управления дешифрует команды и выдает импульсы, необходимые для работы компьютера.

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

• Память — это место, где хранятся данные и программы, ожидающие работы с ними.

• Блоки ввода/вывода позволяют вводить данные в компьютер и выводить их из компьютера.

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

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

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

• Команды микропроцессора делятся на девять категорий:

— Перемещение данных.

— Арифметические.

— Логические.

— Сравнение и проверка.

— Вращение и сдвиг.

— Управление программой.

— Стек.

— Ввод/вывод.

— Разные.

Глава 36. САМОПРОВЕРКА

1. Опишите, как работает компьютер.

2. Каким образом компьютер, связанный с внешним миром, осуществляет получение данных от внешних устройств?

3. В чем разница между микрокомпьютером и микропроцессором?

4. Каковы функции микропроцессора?

Более 800 000 книг и аудиокниг! 📚

Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением

ПОЛУЧИТЬ ПОДАРОК