МПС

 

Внутреннее строение микропроцессора (Лекция)

 

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

 

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

 

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

 

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

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

 

 

 Согласно структурной схеме микропроцессор состоит из трех основных блоков: АЛУ, нескольких регистров и устройства управления. Для передачи данных между этими блоками микропроцессора используется внутренняя шина данных.

 

АЛУ

АЛУ выполняет одну из главных функций микропроцессора – обработку данных. В соответствии со структурной схемой АЛУ имеет два входных порта и один выходной. Назначение входного порта – ввод данных в АЛУ, а выходного – вывод такого слова. Как правило, такие схемы имеют один или несколько входных портов и единственный выходной. Входные порты снабжены буферами, роль которых выполняют регистры временного хранения данных (буферные регистры). Каждый порт соединен со своим буферным регистром, способным хранить для АЛУ одно слово данных. Два входных порта позволяют АЛУ принимать данные или с внутренней шины данных МП, или из специального регистра, именуемого аккумулятором. Единственный выходной порт АЛУ предоставляет последнему возможность пересылать слово данных в аккумулятор.

Аккумулятор предназначен для хранения слова данных, посланного в него из выходного порта АЛУ или извлеченного из памяти. Когда, например, АЛУ складывает два слова данных, одно из них находится в аккумуляторе. После выполнения сложения результат – слово данных – посылается в аккумулятор на хранение.

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

АЛУ необходимо использовать в тех случаях, когда требуется изменить или проверить значение слова данных. Перечень функций АЛУ зависит от типа МП. Функции АЛУ определяют архитектуру микропроцессора в целом. Типичными операциями, выполняемыми АЛУ большинства микропроцессоров, являются следующие: сложение, вычитание, И, ИЛИ, исключающее ИЛИ, НЕ, сдвиг вправо, сдвиг влево, приращение положительное, приращение отрицательное.

Регистры микропроцессора

 

Регистры являются важной составной частью любого МП. Они участвуют в реализации основных логических функций МП независимо от количества регистров. Начнем с рассмотрения шести основных регистров.

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

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

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

 

Аккумулятор

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

Операцией другого типа, использующей аккумулятор, является программируемая передача данных из одной части микропроцессора в другую. Речь идет о пересылке данных между портом ввода-вывода и областью памяти, между двумя областями памяти и т.п. Выполнение операции «программируемая передача данных» осуществляется в два этапа: сначала выполняется пересылка данных из источника в аккумулятор, а затем из аккумулятора – в пункт назначения.

Выше было показано, что МП позволяет использовать АЛУ для объединения данных в аккумуляторе с другими данными. Однако МП может выполнять некоторые действия над данными непосредственно в аккумуляторе. Например, аккумулятор может быть очищен путем записи двоичных нулей во все его разряды, установлен в единичное состояние посредством записи двоичных единиц во все разряды. Содержимое аккумулятора можно сдвигать влево или вправо, получать его инвертированное значение, а также выполнять другие операции.

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

Количество разрядов аккумулятора соответствует длине слова микропроцессора (в нашем случае 8 бит). Однако некоторые МП имеют аккумуляторы двойной длины. Такой аккумулятор можно рассматривать как одно устройство или как два отдельных аккумулятора. В первом случае второй аккумулятор пары используется для записи дополнительных битов, появляющихся при выполнении некоторых арифметических операций. Например, при умножении двух 8-битовых слов результат – 16-битовое слово – размещается в аккумуляторе двойной длины.

У некоторых МП имеется группа аккумуляторов. Если, например, два – аккумуляторы А и В, то аккумулятор должен располагать двумя различными командами для загрузки в них данных с выхода АЛУ: одной командой – для записи данных в аккумулятор А, другой – для записи данных в аккумулятор В. Кроме того, должны быть две соответствующие команды очистки этих аккумуляторов.

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

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

 

Счетчик команд

Счетчик команд – один из наиболее важных регистров МП. Как известно, программа – это последовательность команд, хранимых в памяти микро-ЭВМ и предназначенных для того, чтобы инструктировать машину, как решать поставленную задачу. Для корректного выполнения последней, команды должны поступать в строго определенном порядке. На счетчике команд лежит ответственность следить за тем, какая команда выполняется, а какая подлежит выполнению следующей. Часто счетчик команд имеет намного больше разрядов, чем длина слова данных МП. Так, в большинстве 8-разрядных МП, адресующихся к памяти объемом 65К, число разрядов счетчика команд равно 16. И на это имеются достаточно веские основания. В любой из 65536 областей памяти микро-ЭВМ общего назначения может находиться информация о том или ином шаге программы, т.е. в пределах диапазона значений адресов от 0 до 65535 программа может начаться и закончиться в любом месте. Чтобы обратиться к любому из этих адресов, счетчик команд должен располагать 16 двоичными разрядами.

Согласно структурной схеме МП, счетчик команд соединен с внутренней шиной данных МП. Теоретически этот счетчик может получать данные об адресах программы из любого блока МП, подключенного к внутренней шине. Однако на практике данные обычно поступают в счетчик команд из памяти микро-ЭВМ.

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

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

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

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

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

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

 

Регистр адреса памяти

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

В течение подцикла выборки команды из памяти (см. раздел 10.5.) регистры адреса памяти и счетчика команд имеют одинаковое содержимое, т.е. размер адреса памяти указывает местоположение команды, извлекаемой из памяти. После декодирования команды счетчик команд получает приращение. Что же касается регистра адреса памяти, то он приращения не получает.

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

В большинстве МП регистры адреса памяти и счетчика команд имеют одинаковое число разрядов. Как и счетчик команд, регистр адреса памяти должен располагать количеством разрядов, достаточным для адресации к любой области памяти микро-ЭВМ. У большинства 8-разрядных микропроцессоров количество разрядов регистра адреса памяти равно 16. Такой регистр можно разделить на два отдельных регистра, каждый из которых имеет независимое подключение к шине данных МП. Один из этих регистров называют регистром старшего байта (СБ), другой – регистром младшего байта (МБ).

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

 

Регистр команд

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

Как уже отмечалось, машинный цикл состоит из двух подциклов – выборки и выполнения. За исключением загрузки команды, в период подцикла выборки программист не может по-другому использовать регистр команд. Согласно структурной схеме МП, этот регистр соединен с внутренней шиной данных, однако он только принимает данные – посылать данные на шину он не может.

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

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

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

 

Регистр состояния

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

Запоминание результатов упомянутых проверок позволяет использовать программы, содержащие переходы (нарушения естественной последовательности выполнения команд).

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

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

Итак, использование содержимого разрядов состояния привело к появлению нового набора команд МП. Эти команды предназначены для изменения хода выполнения программы в соответствии со значением, принимаемым тем или иным разрядом состояния. Традиционный способ использования этих специальных команд предполагает загрузку счетчика команд новым содержимым, если значение определенного разряда состояния становится равным 1.

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

Например:

Появление бита переноса влечет за собой установку в единицу соответствующего разряда регистра состояния.

Рассмотрим еще два примера:

  В первом примере переноса нет и значение соответствующего разряда регистра состояния равно 0, во втором примере имеет место и перенос (бит переноса равен 1), и признак отрицательного результата (бит отрицательного результата равен 1).

Если по окончании выполнения операции все разряды аккумулятора содержат биты, равные 0, то в регистре состояния бит нулевого результата становится равным 1. В рассматриваемом нами МП этот бит может быть устанвлен в единичное состояние и некоторыми операциями, реализуемыми с участием регистров общего назначения. Например, часто требуется записать определенную велечину в некоторый регистр (назовем его регистром D), а затем уменьшать ее на значение некоторой константы при каждом “проходе” через определенную точку программы. После каждого изменения содержимого этого регистра проверяется значение разряда нулевого результата в регистре состояния. Если содержимое регистра D, оказывается равным 0, разряд нулевого результата устанавливается в 1. Программа (или ее часть), проверяющая наличие нуля в регистре D, продолжает выполняться до тех пор, пока в регистре состояния не будет обнаружено единичное значение разряда нулевого результата.

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

1.        Загрузить в регистр число 11002.

2.        Уменьшить содержимое регистра на 12.

3.        Проверить, равно ли единице значение разряда нулевого результата в регистре состояния.

4.        Если нет, возвратиться к выполнению шага 2.

5.        Если да, прекратить действия.

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

1.                  Перенос/заем. Данный разряд указывает, что последняя выполненная операция сопровождалась переносом или заемом (отрицательным переносом). Значение разряда переноса устанавливается равным 1, если в результате сложения двух двоичных чисел имеет место перенос из 8-го разряда результата. Отрицательный перенос (заем) фиксируется в регистре состояния при вычитании большего числа из меньшего.

2.                      Нулевой результат. Принимает единичное значение, если после окончания операции во всех разрядах регистра результата обнаружены двоичные нули. Установка этого результата в 1 происходит не только при отрицательном приращении содержимого регистра, но и при любой другой операции, результат которой – число из двоичных нулей.

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

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

В некоторых МП предусмотрены специальные команды для сброса или очистки всех разрядов состояния. Однако имеются МП, допускающие «только чтение» содержимого регистра состояния. Чтоб понять, как пользоваться «нестандартными» разрядами регистра состояния, необходимо в каждом конкретном случае обращаться к технической документации интересующей вас модели МП.

Не все разряды регистра состояния используются МП. В неиспользуемые разряды регистра состояния обычно «навсегда» записываются двоичные единицы. Применительно к МП, рассматриваемому нами, слово состояния – содержимое одноименного регистра – имеет только три используемых разряда. Пять младших разрядов 8-разрядного слова имеют постоянные единичные значения. В результате содержимое регистра состояния может быть загружено во внутреннюю шину данных МП, однако регистр состояния не имеет возможности принимать данные, поступающие по шине. Как следствие этого, если, например, записываемый в аккумулятор результат операции –положительное число без переноса, то слово состояния равно 00011111. Если же результат операции – отрицательное число без переноса, то в регистре состояния формируется число 01011111.

 

Буферные регистры АЛУ

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

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

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

 

Регистры общего назначения

Все МП имеют 6 основных регистров. Кроме того, МП располагают регистрами, предоставляемыми в распоряжение пользователей. Эти регистры получили название регистров общего назначения. В некоторых МП они служат в качестве запоминающих устройств, в других функциональные возможности этих регистров не уступают возможностям аккумулятора. Последнее достигается в том случае, если АЛУ может помещать в них данные. Гипотетический МП, рассматриваемый нами, имеет три регистра общего назначения: B,C,D. Поскольку в нашем случае АЛУ не помещает данные в эти три регистра, последние не обладают функциональными возможностями аккумулятора. Тем не менее при выполнении многих команд используются эти регистры общего назначения.

Для реализации многих операций использование 8-разрядных регистров B,C и D идентично. Выбор конкретного регистра для выполнения определенного вида работ определяется лишь тем, какой из них доступен и кажется наиболее удобным. Обычно операции, использующие эти регистры, влияют на содержимое регистра состояния. Следовательно, любой из регистров B,C и D можно использовать в качестве счетчика отрицательных приращений. Так, если содержимое используемого для этих целей регистра D становится равным нулю, разряд нулевого результата регистра состояния принимает единичное значение.

Регистры В и С совместно могут выполнять функции 16-разрядного регистра специального назначения. Будем называть их регистровой парой ВС. Рассматриваемый нами МП обладает адресацией такого типа, при которой содержимое пары регистров ВС загружается в регистр адреса памяти. Это позволяет выполнять регистровые арифметические операции с помощью 16-разрядного регистра. Так, можно задавать приращение содержимому пары регистров ВС, а затем использовать это содержимое для адресации памяти.

Следует помнить, что регистры В и С в любое время могут функционировать и как независимые регистры. Таким образом, регистры В и С можно использовать совместно или раздельно, а регистр D всегда выступает в роли отдельного 8-разрядного регистра.

 

Схемы управления

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

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

 

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

Одной из важных входных линий управления, соединяющих МП с внешними устройствами, является линия связи с генератором тактовых импульсов (таймером), синхронизирующем во времени работу МП. Принимаемые тактовые сигналы схемы управления преобразуются в многофазные синхросигналы. Рис. иллюстрирует указанное преобразование на примере формирования двух синхросигналов с разными фазами из исходных тактовых импульсов. (Иногда МП использует сформированные подобным образом синхросигналы с четырьмя различными фазами). В соответствии с рис. в течении одного периода тактовых импульсов в МП возможны две группы событий: первая – во время действия сигнала с фазой Φ1, вторая – во время действия сигнала с фазой Ф2. Как правило, схемы управления генерируют сигналы в соответствии с той или иной фазой синхросигналов и формируют в эти моменты времени соответствующие выходные сигналы для внешних устройств, таких, как память или устройства ввода-вывода.

В качестве источника тактовых импульсов обычно используется кварцевый генератор – внешний или внутренний, встроенный в МП.

Помимо указанных выше действий, схемы управления выполняют некоторые другие специальные функции, такие, как управление последовательностью включения питания, управление процессами прерываний. Прерывание – это своего рода запрос, поступающий на схемы управления от других устройств (памяти, ввода-вывода). Прерывание связано с использованием внутренней шины данных МП. Схемы управления принимают решение, когда и в какой последовательности другие устройства могут использоваться внутренней шиной данных.

 

Внутренняя шина данных МП

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

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

1.                      В исходном состоянии в аккумуляторе находится двоичное число 11011010, в регистре – число 11011110 (Рис.10.1), причем ни один из этих регистров не соединен ни с каким другим функциональным узлом МП. В регистре команд содержится код команды ADD (сложение). (В регистре состояния 0Z0N0C).

2.                      содержимое аккумулятора загружается в соединенный с ним буферный регистр (буфер аккумулятора). Данные, размещенные в регистре D, подаются на внутреннюю шину данных МП. Другой буферный регистр АЛУ, подключенный к этой шине загружается копией данных из регистра D (рис. 10.2.). В течении этого периода времени только регистр D и буферный регистр используют внутреннюю шину данных. Выходы обоих буферных регистров активируют работу входных портов АЛУ. (Буфер аккумулятора - 11011110, регистр состояния 0Z0N0C, регистр команд ADD).

3.                      Инициализируется работа АЛУ по сложению данных, поступивших на его входы. через выходной порт, подключенный к аккумулятору, результата сложения помещается в последний (рис.10.3.). Следует обратить внимание, что в результате сложения указанных чисел два разряда состояния принимают единичное значение – переноса и знаковый:


4.                      Вход аккумулятора и выходной порт АЛУ отключается от внутренней шины данных. Результат операции – искомая сумма – находится в аккумуляторе (рис.10.4.). Шина свободна для других операций.

Почти все функциональные узлы МП имеют двухстороннюю связь с внутренней шиной данных, т.е. они могут и посылать данные на шину, и принимать с нее данные. Внутренняя шина данных представляет собой линию двусторонней связи. Следует помнить, что по шине передаются слова данных, а не отдельные биты. Так, в 16-разрядном МП все пересылки по шине осуществляются группой из 2 байт (16 бит).

 

 

 

 

 

ПЗУ и ОЗУ

 

  Еще без одной темы изучение МП будет неполным: это принципы построения и функционирования постоянных и оперативных запоминающий устройств.

 

Постоянные запоминающие устройства

 

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

Рис. ПЗУ на мультиплексоре

 

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

Рис. Схема многоразрядного ПЗУ

 

В реальных ПЗУ запись информации производится при помощи последней операции производства микросхемы - металлизации. Металлизация производится при помощи маски, поэтому такие ПЗУ получили название масочных ПЗУ. Еще одно отличие реальных микросхем от упрощенной модели, приведенной выше - это использование кроме мультиплексора еще и демультиплексора. Такое решение позволяет превратить одномерную запоминающую структуру в многомерную и, тем самым, существенно сократить объем схемы дешифратора, необходимого для работы схемы ПЗУ.

Рис. Схема масочного постоянного запоминающего устройства

Адреса ячеек памяти в этой микросхеме подаются на выводы A0 ... A9. Микросхема выбирается сигналом CS. При помощи этого сигнала можно наращивать объем ПЗУ (пример использования сигнала CS приведён при обсуждении ОЗУ). Чтение микросхемы производится сигналом RD.

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

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

Такие микросхемы называются программируемыми ПЗУ (ППЗУ).

Рисунок. ППЗУ

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

ПЗУ с ультрафиолетовым стиранием строится на основе запоминающей матрицы построенной на ячейках памяти, внутреннее устройство которой приведено на следующем рисунке:

Рис. Запоминающая ячейка ПЗУ с ультрафиолетовым и электрическим стиранием.

 

Ячейка представляет собой МОП транзистор, в котором затвор выполняется из поликристаллического кремния. Затем в процессе изготовления микросхемы этот затвор окисляется и в результате он будет окружен оксидом кремния - диэлектриком с прекрасными изолирующими свойствами. В описанной ячейке при полностью стертом ПЗУ заряда в плавающем затворе нет, и поэтому транзистор ток не проводит. При программировании микросхемы на второй затвор, находящийся над плавающим затвором, подаётся высокое напряжение и в плавающий затвор за счет туннельного эффекта индуцируются заряды. После снятия программирующего напряжения на плавающем затворе индуцированный заряд остаётся и, следовательно, транзистор остаётся в проводящем состоянии. Заряд на плавающем затворе может храниться десятки лет. Структурная схема постоянного запоминающего устройства не отличается от описанного ранее масочного ПЗУ. Единственно вместо перемычки используется описанная выше ячейка. В репрограммируемых ПЗУ стирание ранее записанной информации осуществляется ультрафиолетовым излучением. Для того, чтобы этот свет мог беспрепятственно проходить к полупроводниковому кристаллу, в корпус микросхемы встраивается окошко из кварцевого стекла.

При облучении микросхемы, изолирующие свойства оксида кремния теряются и накопленный заряд из плавающего затвора стекает в объем полупроводника и транзистор запоминающей ячейки переходит в закрытое состояние. Время стирания микросхемы колеблется в пределах 10 - 30 минут.

Количество циклов записи - стирания микросхем находится в диапазоне от 10 до 100 раз, после чего микросхема выходит из строя. Это связано с разрушающим воздействием ультрафиолетового излучения. В этих микросхемах чаще всего хранятся программы BIOS универсальных компьютеров.

Так как корпуса с кварцевым окошком очень дороги, а также малое количество циклов записи - стирания привели к поиску способов стирания информации из ППЗУ электрическим способом. На этом пути встретилось много трудностей, которые к настоящему времени практически решены. Сейчас достаточно широко распространены микросхемы с электрическим стиранием информации. В качестве запоминающей ячейки в них используются такие же ячейки, как и в РПЗУ, но они стираются электрическим потенциалом, поэтому количество циклов записи - стирания для этих микросхем достигает 1000000 раз. Время стирания ячейки памяти в таких микросхемах уменьшается до 10 мс. Схема управления для таких микросхем получилась сложная, поэтому наметилось два направления развития этих микросхем: ЭСППЗУ и FLASH –ПЗУ.

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

Рис. ЭСППЗУ

 

В последнее время наметилась тенденция уменьшения габаритов ЭСППЗУ за счет уменьшения количества внешних ножек микросхем. Для этого адрес и данные передаются в микросхему и из микросхемы через последовательный порт. При этом используются два вида последовательных портов - SPI порт и I2C порт. FLASH - ПЗУ отличаются от ЭСППЗУ тем, что стирание производится не каждой ячейки отдельно, а всей микросхемы в целом или блока запоминающей матрицы этой микросхемы, как это делалось в РПЗУ.

Рис. Обозначение FLASH ПЗУ

 

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

Рис. Временная диаграмма чтения информации из ПЗУ

 

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

 

Статические оперативные запоминающие устройства (ОЗУ)

В радиоаппаратуре часто требуется хранение временной информации, значение которой не важно при включении устройства. Такую память можно было бы построить на микросхемах EEPROM или FLASH -памяти, но, к сожалению, эти микросхемы дороги, обладают малым количеством перезаписей и чрезвычайно низким быстродействием при считывании и особенно записи информации. Для хранения временной информации можно воспользоваться параллельными регистрами. Так как запоминаемые слова не нужны одновременно, то можно воспользоваться механизмом адресации, который применяется в ПЗУ. Схемы, в которых в качестве запоминающей ячейки используется параллельный регистр называется статической ОЗУ, т.к. информация в ней сохраняется все время, пока к микросхеме подключено питание. В отличие от статической ОЗУ в микросхемах динамического ОЗУ постоянно требуется регенерировать их содержимое, иначе информация будет испорчена. В микросхемах ОЗУ присутствуют две операции: операция записи и операция чтения. Для записи и чтения информации можно использовать различные шины данных (как это делается в сигнальных процессорах), но чаще используется одна и та же шина данных. Это позволяет экономить выводы микросхем, подключаемых к этой шине и легко осуществлять коммутацию сигналов между различными устройствами. Вход и выход микросхемы в этой схеме объединены при помощи шинного формирователя. Естественно, что схемы реальных ОЗУ будут отличаться от приведенной на этом рисунке.

Рис. Схема ОЗУ

 

Сигнал записи WR позволяет записать логические уровни на информационных входах во внутреннюю ячейку ОЗУ. Сигнал чтения RD позволяет выдать содержимое ячейки памяти на информационные выходы микросхемы. В приведенной схеме невозможно одновременно производить операцию записи и чтения. Конкретная ячейка выбирается при помощи двоичного кода - адреса ячейки. Объем памяти микросхемы зависит от количества ячеек, содержащихся в ней или, что то же самое, от количества адресных проводов. Количество ячеек в микросхеме можно определить по количеству адресных проводов, возводя 2 в степень, равную количеству адресных выводов в микросхеме: М=2n. Вывод выбора кристалла CS позволяет объединять несколько микросхем для увеличения объема памяти ОЗУ.

Рис. Схема ОЗУ, построенного на нескольких микросхемах памяти

 

Статические ОЗУ требуют для своего построения большой площади кристалла, поэтому их ёмкость относительно невелика. Статические ОЗУ применяются для построения микроконтроллерных схем из-за простоты построения принципиальной схемы и возможности работать на сколь угодно низких частотах, вплоть до постоянного тока. Кроме того, статические ОЗУ применяются для построения КЭШ-памяти в универсальных компьютерах из-за высокого быстродействия статического ОЗУ. Временные диаграммы чтения из статического ОЗУ совпадают с временными диаграммами чтения из ПЗУ.

Рис. Временная диаграмма обращения к ОЗУ принятая для схем,
совместимых со стандартом фирмы INTEL

 

На рисунке стрелочками показана последовательность, в которой должны формироваться управляющие сигналы. RD - это сигнал чтения; WR - сигнал записи; A - сигналы выбора адреса ячейки (так как отдельные биты в шине адреса могут принимать разные значения, то показаны пути перехода, как в единичное, так и в нулевое состояние); DI - входная информация, предназначенная для записи в ячейку ОЗУ по адресу A1; DO - выходная информация из ячейки ОЗУ по адресу A2.

 

 

Динамические оперативные запоминающие устройства (ОЗУ)

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

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

Для регенерации первоначального напряжения, хранившегося в запоминающей ячейке в схеме, применяется RS триггер, включенный между двумя линиями записи/считывания. Для уменьшения времени регенерации микросхема устроена так, что при считывании одной ячейки памяти в строке запоминающей матрицы регенерируется вся строка. Особенностью динамических ОЗУ является мультиплексирование шины адреса. Адрес строки и адрес столбца передаются поочередно. Адрес строки синхронизируется стробирующим сигналом RAS# (Row Address strobe), а адрес столбца - CAS# (Column Adress Strobe). Мультиплексирование адресов позволяет уменьшить количество ножек микросхем ОЗУ.

Рис. Динамическое ОЗУ

 

Именно так долгое время велась работа с динамическими ОЗУ. Затем было замечено, что обычно обращение ведется к данным, лежащим в соседних ячейках памяти, поэтому не обязательно при считывании или записи каждый раз передавать адрес строки. Данные стали записывать или считывать блоками и адрес строки передавать только в начале блока. При этом можно сократить общее время обращения к динамическому ОЗУ и тем самым увеличить быстродействие компьютера. Такой режим обращения к динамическому ОЗУ называется быстрым страничным режимом доступа FPM (Fast Page Mode). Длина считываемого блока данных равна четырем словам. Для того, чтобы оценить время такого режима доступа к памяти время измеряют в тактах системной шины процессора. В обычном режиме доступа к памяти время доступа одинаково для всех слов. Поэтому цикл обращения к динамической памяти можно записать как 5-5-5-5. При режиме быстрого страничного доступа цикл обращения к динамической памяти можно записать как 5-3-3-3, то есть время обращения к первой ячейке не изменяется по сравнению с предыдущим случаем, а считывание последующих ячеек сокращается до трех тактов. При этом среднее время доступа к памяти сокращается почти в полтора раза.

Рис. Временная диаграмма обращения к динамическому ОЗУ 
в режиме FPM

 

Еще одним способом увеличения быстродействия ОЗУ является применение микросхем EDO (Extended Data Out — ОЗУ с расширенным выходом данных). В EDO ОЗУ усилители-регенераторы не сбрасываются по окончанию строба CAS#, поэтому времени для считывания данных в таком режиме больше. Теперь для того чтобы сохранить время считывания на прежнем уровне можно увеличить тактовую частоту системной шины и тем самым увеличить быстродействие компьютера. Для EDO ОЗУ цикл обращения к динамической памяти можно записать как 5-2-2-2. Следующим шагом в развитии схем динамического ОЗУ было применение в составе ОЗУ счетчика столбцов. То есть при переходе адреса ячейки к следующему столбцу запоминающей матрицы адрес столбца инкрементируется (увеличивается) автоматически. Такое ОЗУ получило название BEDO (ОЗУ с пакетным доступом). В этом типе ОЗУ удалось достигнуть режима обращения к динамической памяти 5-1-1-1. В синхронном динамическом ОЗУ (SDRAM) дальнейшее увеличение быстродействия получается за счет применения конвейерной обработки сигнала. Как известно при использовании конвейера можно разделить операцию считывания или записи на отдельные подоперации, такие как выборка строк, выборка столбцов, считывание ячеек памяти, и производить эти операции одновременно. При этом пока на выход передается считанная ранее информация, производится дешифрация столбца для текущей ячейки памяти и производится дешифрация строки для следующей ячейки памяти.

Рис. Структурная схема конвейерной обработки данных

 

Несмотря на то, что при считывании одной ячейки памяти время доступа к ОЗУ увеличивается, при считывании нескольких соседних ячеек памяти общее быстродействие микросхем синхронного динамического ОЗУ увеличивается.