Шины в микропроцессорной системе

Это продолжение "Цифровая электроника для начинающих"

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

Шины и разряды

Как ты уже знаешь, вся информация в цифровой технике стараниями инженеров и математиков представляется в виде двоичных чисел, которые записываются с помощью всего двух цифр: "0" и "1". Обычное десятичное число "3" в двоичной записи будет выглядеть как "11", т.е. 310 = 112. Нижние индексы указывают в какой системе счисления записано число, т.е. 10 – десятичная, а 2 – двоичная. Одна цифра в двоичном числе называется разрядом. У разрядов есть старшинство. Самый правый разряд называется младшим, а самый левый – старшим. Старшинство разряда растет справа налево:

Двоичное число, состоящее из 8 разрядов называется 8-ми разрядным, из 16 – шестнадцатиразрядным и т.д. Разрядность двоичного числа имеет самое прямое отношение к взаимодействию между процессором, памятью и устройствами ввода-вывода.

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

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

Сколько проводов должно быть в шине?

Это напрямую зависит от конструкции процессора. Процессор может иметь 32-разрядную шину данных и 16-ти разрядное АЛУ. Такие случаи в истории процессоров и МК встречаются многократно. Поэтому разрядность процессора не определяет 100% разрядность шин данных и шин адреса. Всё зависит от конкретной конструкции.

На что влияет разрядность шины адреса

Самым главным, на что она влияет, является количество адресов, которые можно по ней передавать. Например, в 4-разрядной системе это будет всего 24 = 16 адресов, в 64-разрядной числов сдресов будет уже 264=18 446 744 073 709 551 616. Таким образом, чем выше разрядность шины адреса, тем к больше объем памяти и больше устройств ввода-вывода, с которыми может работать процессор. Это важно.

На что влияет разрядность шины данных

Её разрядность определяет сколько данных процессор может считать за один раз. Чем выше разрядность, тем больше данных можно считывать за один раз. Её разрядность, как и разрядность шины адреса целиком определяется конструкцией конкретного процессора или МК. Но при этом всегда кратна восьми. Связано это с тем, что практически во всех устройствах памяти минимальной единицей информации является байт, т.е. двоичное число из 8-ми разрядов.

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

Кстати, 1 байт = 8 бит, 1 килобайт = 1024 байтам, 1 мегабайт = 1024 килобайтам и т.д. Почему именно 1024? Все это связано с тем, что размер памяти всегда кратен степени двойки: 23 = 8, 210=1024. В свою очередь кратность двойке была выбрана благодаря тому, что она упрощает техническую реализацию устройств памяти. Устройство памяти представляет.

Алгоритм работы микроконтроллера

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

  • чтение из ячейки памяти
  • запись в ячейку памяти
  • чтение из порта ВВ
  • запись в порта ВВ 

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

RD (read)  сигнал на чтение
WR (write) сигнал на запись
MREQ (memory request) запрос обращения к памяти
IORQ (input/output request) запрос обращения к портам в/в
READY сигнал готовности
RESET сигнал сброса

Когда процессору требуется обратиться к памяти он выставляет на шине управления сигнал MREQ, при этом будет выставлен одновременно с ним сигнал RD/WR. Если процессор будет писать в память, то выставляется сигнал WR, если чтение – RD. Тоже самое происходит, если процессор обращается к портам ввода-вывода.

А вот сигнал READY нужен для того, чтобы сообщить процессору, что чтение/запись завершены. Всё довольно просто. Если тебя одолевают вопросы почему несмотря на то, что и память и порты ввода-вывода, через которые подключены внешние устройства, не конфликтуют, то разгадка будет довольно простой. В каждый момент времени процессор обращается только к одному конкретному устройству: либо памяти, либо через порты к портам ввода-вывода. И шина управления обеспечивает правильное разделение доступа.

Все описанное – упрощенная модель микропроцессорной системы, каковой является и персональный компьютер, и микроконтроллер.

Теперь вырисовывается уточнение к алгоритму работу микроконтроллера, который я описывал в прошлой главе. Когда ты подаёшь питание на МК, то он выставляет сигнал на шине управления MREQ, RD, а на шине адреса адрес, по которому в ячейке памяти программ должна находиться первая команда его программы (чаще всего это нулевой адрес памяти программ). Затем МК её выполнит и в зависимости от этой и последующих команд на шине управления, адреса и данных будут появляться соответствующие сигналы и данные.

Подведу итоги:

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

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

 

 

Большой радиолюбитель и конструктор программ

Благодаря достижениям электроники у нас есть компьютеры, планшеты, смартфоны и другая популярная техника. Я создал этот сайт для популяризации радиолюбительства. Подписывайтесь на блог, рассылку и группу в ВК: vk.com/mp16a!

Меню