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

Раздел 2. Организация обмена информацией


«Структура курса | Раздел 1 | Раздел 2 | Раздел 3 | Раздел 4 | Раздел 5 | Раздел 6 | Раздел 7 | Глава 8 | Дополнения

Раздел 2 - Страницы: 1 | 2 | 3 | 4 | 5 | 6 | »

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

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

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

Циклы обмена информацией делятся на два основных типа:

  • Цикл записи (вывода), в котором процессор записывает (выводит) информацию;
  • Цикл чтения (ввода), в котором процессор читает (вводит) информацию.

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

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

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

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

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

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

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

Как уже упоминалось, в системную магистраль (системную шину) микропроцессорной системы входит три основные информационные шины: адреса, данных и управления.

Шина данных - это основная шина, ради которой и создается вся система. Количество ее разрядов (линий связи) определяет скорость и эффективность информационного обмена, а также максимально возможное количество команд

.

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

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

Шина адреса - второй по важности шина, которая определяет максимально возможную сложность микропроцессорной системы, то есть допустимый объем памяти и, следовательно, максимально возможный размер программы и максимально возможный объем данных, которые запоминаются. Количество адресов, обеспечиваемых шиной адреса, определяется как 2N, где N - количество разрядов. Например, 16-разрядная шина адреса обеспечивает 65 536 адресов. Разрядность шины адреса обычно кратна 4 и может достигать 32 и даже 64. Шина адреса может быть однонапрямленою (когда магистралью всегда руководит только процессор) или двунаправленного (когда процессор может временно передавать управление магистралью другому устройству, например контроллеру ПДП). Наиболее часто используемые типы выходных каскадов с тремя состояниями или обычные ТТЛ (с двумя состояниями).

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

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


Рис. 2.1. Мультиплексирование шин адреса и данных.

В некоторых мультиплексированных магистралях после одного кода адреса передается несколько кодов данных (массив данных). Это позволяет существенно повысить быстродействие магистрали. Иногда в магистралях применяется частичное мультиплексирования, то есть часть разрядов данных передается немультиплексованимы линиями, а другая часть - мультиплексированных с адресом линиям.

Шина управления - это вспомогательная шина, управляющие сигналы на который определяют тип текущего цикла и фиксируют моменты времени, соответствующие различным частям или стадиям цикла. Кроме того, управляющие сигналы обеспечивают согласование работы процессора (или другому хозяину магистрали, Задатчики, master) с работой памяти или устройства ввода / вывода (устройства-исполнителя, slave). Управляющие сигналы также обслуживают запрос и предоставление прерываний, запрос и предоставление прямого доступа.

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

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

  • Строб записи (вывода), который определяет момент времени, когда устройство-исполнитель может принимать данные, выставленные процессором на шину данных;
  • Строб чтения (ввода), определяющий момент времени, когда устройство-исполнитель должен выдать на шину данных код данных, будет прочитан процессором.

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

  • При синхронном обмене процессор заканчивает обмен данными самостоятельно, с раз и навсегда установленным временным интервалом выдержки (t вит), т.е. без учета интересов устройства-исполнителя;
  • При асинхронном обмене процессор заканчивает обмен только тогда, когда устройство-исполнитель подтверждает выполнение операции специальным сигналом (так называемый режим handshake - рукопожатие).


Рис. 2.2. Синхронный обмен и асинхронный обмен.

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

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

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

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


«Структура курса Раздел 2 - Страницы: 1 | 2 | 3 | 4 | 5 | 6