Внутренняя архитектура микропроцессора

Главными внутренними элементами микропроцессора являются:

• регистры для временного хранения команд, данных и адресов;
• арифметико-логическое устройство (АЛУ), которое реализует множество арифметических и логических функций;
• схема управления, воспринимающая и генерирующая внешние управляющие сигналы (например, считывания и записи) и формирующая сигналы для синхронизации всей системы.
Конечно, внутреннее устройство (или архитектура) микропроцессоров разных семейств различно, но в них имеется и много общих элементов. Например, в основных микропроцессорных семействах заметна тенденция сохранить «совместимость вверх» в части их внутренней архитектуры и системы команд, что, безусловно, делает новые приборы более привлекательными для потребителей.
Внутренние регистры — это просто наборы триггеров-защелок (см. гл. 3), в которые при обработке помещаются двоичные данные. Некоторые из регистров доступны программисту (т. е. он может записать в них или считать их содержимое), а другие не доступны. Регистры подразделяются на специализированные (т. е. имеющие конкретное назначение, например указание ячейки памяти или хранения результата операции АЛУ) и общего назначения.
Особенно важную роль в микропроцессоре играют следующие регистры.
Программный счетчик или указатель команды. Программный счетчик PC или указатель команды IP в 8-битном микропроцессоре — это 16-битный регистр, содержащий адрес следующего командного байта. При выборке каждого командного байта производится автоматический инкремент программного счетчика.
Аккумулятор А функционирует как регистр-источник и регистр-получатель; он одновременно является и источником одного из байт данных, которые требуются для операции АЛУ, и местом, куда помещается результат операции АЛУ. Разумеется, в 8-битных микропроцессорах длина аккумулятора составляет 8 бит.
Регистр флажков F (или регистр состояния SR, регистр кода условия CCR) содержит информацию о внутреннем состоянии микропроцессора, в частности об особенностях результата последней операции АЛУ. Подчеркнем, что регистр флажков не является регистром в обычном смысле, а представляет собой просто набор триггер-защелок, состояния которых зависят от результата операции АЛУ. Можно считать, что выход каждого триггера действует как флажок. Обычно имеются флажки нуля Z, переполнения V, отрицательного результата N и переноса С.
Указатель стека. В большинстве микропроцессоров требуется доступ к такой области внешнего ЗУПВ, которая предназначена для временного хранения данных. Эта область называется стеком и занимает от 16 до 256 байт. (Заметим, однако, что стек — это динамическая структура и его размер изменяется в процессе обработки).
Стек работает по принципу «последний пришел — первый ушел» (LIFO). Данные включаются («проталкиваются») в стек, а затем извлекаются («выталкиваются») из него. Указатель стека SP следит за положением стека, т. е. содержит адрес последней использованной ячейки стека. В некоторых микропроцессорах, например в микропроцессоре 6809, имеются два независимых указателя стека — системный указатель стека SSP и пользовательский указатель стека USР.
Регистр команды непосредственно программисту недоступен. Он содержит текущий командный байт, который декодируется дешифратором команды. Выходы дешифратора команды подаются в схему управления микропроцессора, определяющую направление передач данных и реагирующую на внешние сигналы, появляющиеся на шине управления, а также выполняет другие функции.
Упрощенная внутренняя архитектура типичного 8-битного микропроцессора показана на рис. 5.1.

arhitektura

Рис. 5.1. Упрощенная внутренняя архитектура типичного 8-битного микропроцессора.

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