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