Основы микропроцессорной техники | |
Раздел 2. Организация обмена информацией | |
| «Структура курса | Раздел 1 | Раздел 2 | Раздел 3 | Раздел 4 | Раздел 5 | Раздел 6 | Раздел 7 | Глава 8 | Дополнения | |
| Раздел 2 - Страницы: «| 1 | 2 | 3 | 4 | 5 | 6 |» | |
2.4. Функции устройств магистралиРассмотрим теперь, как взаимодействуют на магистрали основные устройства микропроцессорной системы: процессор, память (оперативная и постоянная), устройства ввода / вывода. 2.4.1. Функции процессораПроцессор (Рис. 2.16) обычно представляет собой отдельную или микросхему же часть микросхемы (в случае микроконтроллера). В прежние годы процессор иногда выполнялся на комплектах из нескольких микросхем, но сейчас от такого подхода уже практически отказались. Микросхема процессора обязательно должен выводы трех шин: шины адреса, шины данных и шины управления. Иногда некоторые сигналы и шины мультиплексуються, чтобы уменьшить количество выводов микросхемы процессора. Наиболее важные характеристики процессора - это количество разрядов его шины данных, количество разрядов его шины адреса и количество управляющих сигналов в шине управления. Разрядность шины данных определяет скорость работы системы. Разрядность шины адреса определяет допустимую сложность системы. Количество линий управления определяет разнообразие режимов обмена и эффективность обмена процессора с другими устройствами системы. Кроме выводов для сигналов трех основных шин процессор всегда имеет вывод (или два вывода) для подключения внешнего тактового сигнАЛП или кварцевого резонатора (CLK), так как процессор всегда тактованим устройством. Чем больше тактовая частота процессора, тем он быстрее работает, то есть тем быстрее выполняет команды. Впрочем, быстродействие процессора определяется не только тактовой частотой, но и особенностями его структуры. Современные процессоры выполняют большинство команд за один такт и имеют средства для параллельного выполнения нескольких команд. Тактовая частота процессора не связана прямо и жестко со скоростью обмена магистралью, так как скорость обмена магистралью ограничена задержками распространения сигналов и искажениями сигналов на магистрали. То есть тактовая частота процессора определяет только его внутреннюю быстродействие, а не внешней. Иногда тактовая частота процессора имеет нижнюю и верхнюю границы.
Еще один важный сигнал, который есть в каждом процессоре, - это сигнал начальной инициализации RESET. При включении питания, при аварийной ситуации или зависании процессора подача этого сигнАЛП приводит к инициализации процессора, заставляет его приступить к выполнению программы начального запуска. Аварийная ситуация может быть вызвана помехами кругами питания и "земли", сбоями в работе памяти, внешними ионизирующими излучениями и еще множеством причин. В результате процессор может потерять контроль над исполняемой программой и остановиться на какой-то адресу. Для выхода из этого состояния как раз и используется сигнал начальной инициализации. Этот же вход может использоваться для оповещения процессора о том, что напряжение питания стала ниже установленного предела. В таком случае процессор переходит к выполнению программы сохранения важных данных. По сути, этот вход - это особая разновидность радиального прерывания. Иногда в микросхемы процессора существует еще один-два входа радиальных прерываний для обработки особых ситуаций (например, для прерывания от внешнего таймера. Шина питания современного процессора обычно имеет одно напряжение питания (+5 В или 3,3 В) и общий провод ( "землю"). Первые процессоры нередко требовали нескольких напряжений питания. В некоторых процессорах предусмотрен режим пониженного энергопотребления. Вообще, современные микросхемы процессоров, особенно с высокими тактовыми частотами, потребляют достаточно большую мощность. В результате для поддержания нормальной рабочей температуры корпуса на них нередко приходится устанавливать радиаторы или вентиляторы даже специальные микрохолодильникы. Для подключения процессора к магистрали используются буферные микросхемы, обеспечивающие, если необходимо, демультиплексирования сигналов и электрическое буферизування сигналов магистрали. Иногда протоколы обмена системной магистралью и шинами процессора не совпадают между собой, тогда буферные микросхемы еще и согласовывают эти протоколы друг с другом. Иногда в микропроцессорной системе используется несколько магистралей (системных и локальных), тогда для каждой из магистралей применяется свой буферный узел. Такая структура характерна, например, для персональных компьютеров. При включении питания процессор переходит на первый адрес программы начального пуска и выполняет эту программу. Данная программа предварительно записана в постоянную (энергонезависимую) память. После завершения программы начального пуска процессор начинает выполнять основную программу, которая находится в постоянной или оперативной памяти, для чего выбирает по очереди все команды. От этой программы процессор могут отвлекать внешние прерывания или запросы на ПДП. Команды из памяти процессор выбирает с помощью циклов чтения магистралью. При необходимости процессор записывает данные в память или в устройства ввода / вывода с помощью циклов записи или читает данные из памяти или из устройств ввода / вывода с помощью циклов чтения. Таким образом, основные функции любого процессора следующие:
Упрощенно структуру микропроцессора можно представить в следующем виде (Рис. 2.17).
Основные функции показанных узлов следующие: Схема управления выборкой команд выполняет чтение команд из памяти и их дешифрации. В первых микропроцессорах было невозможно одновременное выполнение предыдущей команды и выборка следующей команды, так как процессор не мог совмещать эти операции. Но уже в 16-разрядных процессорах появляется так называемый конвейер (очередь) команд, что позволяет выбирать несколько следующих команд, пока выполняется предыдущая. Два процесса идут параллельно, что ускоряет работу процессора. Конвейер - это небольшая внутренняя память процессора, в которую при малейшей возможности (при освобождении внешней шины) записывается несколько команд, которые следуют за той, что выполняется. Читаются эти команды процессором в том же порядке, что и записываются в конвейер (это память типа FIFO, First In - First Out, первым вошел - первым вышел). Правда, если выполняемая команда предполагает переход не на следующую ячейку памяти, а на удаленную (с меньшей или большей адресом), конвейер не помогает, и его приходится сбрасывать. Но такие команды встречаются в программах сравнительно редко. Развитием идеи конвейера стало использование внутренней кэш-памяти процессора, который заполняется командами, пока процессор занят выполнением предыдущих команд. Чем больший объем кэш-памяти, тем меньше вероятность того, что ее содержимое придется сбросить при команде перехода. Понятно, что обрабатывать команды, которые находятся во внутренней памяти, процессор может намного быстрее, чем те, которые расположены во внешней памяти. В кэш-памяти могут храниться и данные, которые обрабатываются в данный момент, это также ускоряет работу. Для большего ускорения выборки команд в современных процессорах применяют сочетание выборки и дешифрации, одновременную дешифрации нескольких команд, несколько параллельных конвейеров команд, прогнозирование команд переходов и некоторые другие методы. Арифметико-логическое устройство (АЛУ или ALU) предназначен для обработки информации в соответствии с полученным процессором командой. Примерами обработки могут служить логические операции (типа логического "И", "ИЛИ", "Рівнозначність" и т.д.) т.е. побитови операции над операндами, а также арифметические операции (типа сложения, вычитания, умножения, деления и т.д. . Над какими кодами происходит операция, куда помещается ее результат - определяется выполняемой командой. Если команда сводится всего лишь к пересылке данных без их обработки, то АЛУ не участвует в ее выполнении. Быстродействие АЛУ во многом определяет производительность процессора. Причем важна не только частота тактового сигнала, которым тактуеться АЛУ, но и количество тактов, которые необходимы для выполнения той или иной команды. Для повышения производительности производители стремятся довести время выполнения команды до одного такта, а также обеспечить работу АЛУ на возможно б олее высокой частоте. Один из путей решения этой проблемы заключается в уменьшении количества выполняемых АЛУ команд, создание процессоров с уменьшенным набором команд (так называемые RISC-процессоры. Другой путь повышения производительности процессора - использование нескольких параллельно работающих АЛУ. Что касается операций над числами с точкой, плавающей и других специальных сложных операций, то в системах на базе первых процессоров их реализовали последовательностью более простых команд, специальными подпрограммами, однако затем были разработаны специальные вычислители - математические сопроцессора, заменявших основной процессор на время выполнения таких команд. В современных микропроцессорах математические сопроцессора входят в структуру как составная часть. Регистры процессора представляют собой по сути ячейки очень быстрой памяти и служат для временного хранения различных кодов: данные, адрес, служебных кодов. Операции с этими кодами выполняются предельно быстро, поэтому, в общем случае, чем больше внутренних регистров, тем лучше. Кроме того, на быстродействие процессора сильно влияет разрядность регистров. Именно разрядность регистров и АЛУ называется внутренней разрядностью процессора, что может не совпадать с внешней разрядностью. Относительно назначения внутренних регистров существует два основных подхода. Первого придерживается, например, компания Intel, что каждому регистра отводит строго определенную функцию. С одной стороны, это упрощает организацию процессора и уменьшает время выполнения команды, но с другой - снижает гибкость, а иногда и замедляет работу программы. Например, некоторые арифметические операции и обмен с устройствами ввода / вывода проводятся только через один регистр - аккумулятор, в результате чего при выполнении некоторых процедур может потребоваться несколько дополнительных пересылок между регистрами. Второй подход заключается в том, чтобы все (или почти все) регистры сделать равноправными, как, например, в 16-разрядных процессорах Т-11 фирмы DEC. При этом достигается высокая гибкость, но необходимое усложнения структуры процессора. Существуют и промежуточные решения, в частности, в процессоре MC68000 фирмы Motorola половина регистров использовалась для данных, и они были взаимозаменяемы, а другая половина - для адресов, и они также взаимозаменяемы. Регистр признаков (регистр состояния) занимает особое место, хотя он также является внутренним регистром процессора. Информация, содержащаяся в нем - это не данные, не адрес, а слово состояния процессора (ССП, PSW - Processor Status Word). Каждый бит этого слова (флаг) содержит информацию о результате предыдущей команды. Например, есть бит нулевого результата, который устанавливается в том случае, когда результат выполнения предыдущей команды - ноль, и очищается в том случае, когда результат выполнения команды отличный от нуля. Эти биты (флаги) используются командами условных переходов, например, командой перехода в случае нулевого результата. В этом же регистре иногда содержатся флаги управления, определяющих режим выполнения некоторых команд. Схема управления прерываниями обрабатывает запрос, который поступает на процессор, прерывание, определяет адрес начала программы обработки прерывания (адрес вектора прерывания), обеспечивает переход в эту программу после выполнения текущей команды и сохранения в памяти (в стеке) текущего состояния регистров процессора. По окончании программы обработки прерывания процессор возвращается к прерванной программы с восстановленными из памяти (со стека) значениями внутренних регистров. Подробнее о стек будет рассказан о в следующей главе. Схема управления прямым доступом к памяти служит для временного отключения процессора от внешних шин и прекращения работы процессора на время предоставления прямого доступа к памяти системы того устройства, которое его пригласил. Логика управления организует взаимодействие всех узлов процессора, перенаправляет данные, синхронизирует работу процессора с внешними сигналами, а также реализует процедуры ввода и вывода информации. Таким образом, в ходе работы процессора схема выборки команд выбирает последовательно команды из памяти, затем эти команды выполняются, причем в случае необходимости обработки данных подключается АЛУ. На входы АЛУ могут подаваться обрабатываемые данные из памяти или из внутренних регистров. В внутренних регистрах хранятся также коды адресов обрабатываемых данных, расположенных в памяти. Результат обработки в АЛУ изменяет состояние регистра признаков и записывается во внутренний регистр или в память (как источник, так и приемник данных указывается в составе кода команды). При необходимости информация может переписываться по памяти (или из устройства ввода / вывода) во внутренний регистр или из внутреннего регистра в память (или в устройство ввода / вывода). Внутренние регистры любого микропроцессора обязательно выполняют две служебные функции:
В разных процессорах для каждой из этих функций может выделяться один или два внутренних регистры. Эти два указатели отличаются от других не только своим специфическим, служебным, системным назначению, но и особым способом изменения содержимого. Их содержание программы могут изменять только в случае крайней необходимости, так как любая ошибка при этом грозит нарушением работы компьютера, зависанием и порчей содержимого памяти. Содержимое показателя (счетчика) команд меняется следующим образом: В начале работы системы (при включении питания) у него заносится раз и навсегда установленное значение. Это первый адрес программы начального запуска. Затем после выборки из памяти каждой следующей команды значение указателя команд автоматически увеличивается (инкрементуеться) на единицу (или на два в зависимости от формата команд и типа процессора). То есть следующая команда будет выбираться из следующей по прялку адреса памяти. При выполнении команд перехода, нарушающие последовательный перебор адресов памяти, в указатель команд принудительно записывается новое значение - новый адрес в памяти, начиная с которой адреса команд опять будут перебираться последовательно. Такое же изменение содержимого указателя команд происходит при вызове подпрограммы и возвращении из нее или при начале обработки прерывания и после его окончания. О стек будет подробнее рассказано в следующем разделе. | |
| «Структура курса Раздел 2 - Страницы:« | 1 | 2 | 3 | 4 | 5 | 6 | » | |