Шина управления

Шина адреса.

Предназначена для передачи адреса ко всем периферийным устройствам (как к устройствам памяти, так и к портам ввода/вывода). Количество разрядов адресной шины отличается большим разнообразием. Например, микропроцессор серии К580ИК80 имеет 16 разрядов адреса. Это можно считать минимальным количеством. Процессор Intel 8086, На котором собран родоначальник всех современных персональных компьютеров – IBM PC-XT, имеет 20 разрядов адреса. Современные процессоры имеют до 32 разрядов и больше. От количества разрядов шины адреса зависит, какое количество ячеек памяти может адресовать процессор. Процессор, имеющий шестнадцатиразрядную шину данных может обращаться к 216 (то есть к 65536) ячейкам памяти. Это число называется объемом памяти. То есть, по другому можно сказать, что такой процессор имеет объем адресуемой памяти в 65536 байт.

В вычислительной технике используется необычная размерность для измерения объема памяти. Число 1024 (а это 210) байт информации принято называть Килобайтом. Почему 1024, а не 1000? Ну во первых потому, что количество ячеек памяти, адресуемых любым микропроцессором всегда является величиной, равной какой либо степени числа два. Например, для адресации 1024 ячеек памяти нужна шина адреса, имеющая ровно 10 разрядов. При этом шина не будет избыточна. Если бы мы захотели иметь только 1000 ячеек памяти, то для того, что бы обеспечить возможность обратиться к любой из них, нам все равно потребовалось бы 10 разрядов адреса, так как при девяти разрядах можно обратиться только к 512 ячейкам. Поэтому никто и ни когда не делал запоминающего устройства с объемом не равным одной из степеней двойки. Логично, что и объем памяти удобнее измерять в величинах, из того же ряда.

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

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

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

RD – сигнал чтения

WR – сигнал записи

MREQ – сигнал, инициализации устройств памяти (ОЗУ или ПЗУ)

IORQ –сигнал инициализации портов ввода/вывода

Кроме того, к сигналам шины управления относятся:

READY – сигнал готовности

RESET – сигнал сброса

И еще несколько специальных сигналов, о которых мы поговорим позже.

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

Рассмотрим подробнее, как работает микропроцессорная система, изображенная на рис. 28. В основном режиме работы, всей микропроцессорной системой управляет центральный процессор (CPU). При этом он может выполнять четыре основных операции: чтение из ячейки памяти, запись в ячейку памяти, чтение из порта и запись в порт.

Для того, что бы прочитать байт из ячейки памяти, процессор сначала устанавливает на шине адреса адрес нужной ячейки. Затем он устанавливает сигнал MREQ в активное состояние (Лог. 0). Этот сигнал поступает на устройства памяти и служит разрешением для их работы. При этом сигнал IORQ остается равным лог. 1. Поэтому порты ввода/вывода микропроцессорной системы не активны.

В следующий момент времени процессор переводит в активное состояние сигнал RD. Этот сигнал поступает как на устройства памяти, так и на порты ввода/вывода. Однако порты не реагируют на него, так как они отключены высоким уровнем сигнала IORQ. Устройство памяти напротив, получив управляющие сигналы RD и MREQ, выдает на шину данных байт информации из той ячейки памяти, адрес которой поступает на него по шине адреса.

Процесс записи данных в память происходит в следующей последовательности: Сначала центральный процессор выставляет на адресную шину адрес нужной ячейки памяти. Затем на шину данных он выставляет байт, предназначенный для записи в эту ячейку. После этого активизируется сигнал MREQ, разрешающий доступ к модулю памяти. И уже затем процессор устанавливает сигнал WR в активное (лог. 0) состояние. По этому сигналу происходит запись байта в ячейку памяти, адрес которой присутствует на шине адреса.

Некоторые виды памяти работают очень медленно. Они могут не успеть выдать информацию или произвести ее записать так быстро, как это способен сделать центральный процессор. Для согласования работы медленных устройств памяти с быстрыми процессорами существует сигнал READY (готовность). Сразу после того, как процессор установит сигнал чтения или записи в активное состояние, устройство памяти устанавливает сигнал READY в пассивное состояние (лог. 0). Такой уровень сигнала означает, что внешнее устройство не готово, то есть еще не выполнило команду. Сигнал READY поступает на процессор, и он переходит в режим ожидания. Когда устройство памяти выполнит команду, оно установит сигнал в активное состояние (лог. 1). Процессор, получив этот сигнал, возобновляет работу. Сигнал READY применяется и в случае работы с медленными портами ввода/вывода.

Операции чтения и записи с портами ввода/вывода происходят аналогично операциям чтения/записи с ОЗУ. Различие лишь в том, что вместо сигнала MREQ, в активное состояние переходит сигнал IORQ, разрешающий работу портов.

Как видно из схемы (рис. 24), к одной системной шине могут подключаться несколько модулей памяти, а так же несколько портов. Все устройства ко всем шинам подключаются параллельно. Как же происходит, что процессор записывает информацию в тот модуль памяти, в который нужно и при этом он не попадает в другие модули? Для этого в каждый модуль памяти встроен специальный дешифратор. На него подаются сигналы старших разрядов адресной шины. Далее, при помощи внутренних перемычек, для каждого модуля выбирается свой диапазон адресов с таким расчетом, что бы модули занимали разные не пересекающиеся диапазоны. Для того, что бы это было понятнее, предположим, что мы имеем четыре модуля памяти по шестнадцать ячеек в каждом. Для адресации шестнадцати ячеек достаточно четырех разрядов адресной шины. Еще два разряда понадобятся для того, что бы выбирать один из модулей. Поэтому четыре младших разряда шины данных (D0..D3) подаются на все модули памяти параллельно и используются для выбора одной из ячеек в модуле. Следующие два разряда (D4,D5) подаются на дешифраторы выбора модуля. Такие модули еще называют банками памяти. Перемычки в выбираемых модулях при этом нужно установить так, что бы первый модуль (банк памяти) активизировался тогда, когда разряды D4, D5 примут значение 002. Во втором модуле перемычки должны быть установлены в положение, при котором модуль будет активизироваться если D5, D5 примут значение 012. Третий модуль активизируется при D4, D5 =102, а четвертый при 112. При таком способе включения модулей памяти первый банк памяти будет занимать в адресном пространстве адреса с 0000002 по 0011112. Второй банк – адреса с 0100002 по 0111112. Третий – с 1000002 по 1011112. И четвертый - с 1100002 по 1111112. Таким образом, процессор сможет обращаться к любой ячейке любого банка памяти. И при этом все модули будут подключены ко всем шинам микропроцессорной системы параллельно.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: