Архитектура микропроцессорных устройств

Под микропроцессором следует понимать [3, 4] самостоятельное или входящее в состав вычислительной системы устройство, осуществляющее обработку информации и управляющее этим процессом, выполненное в виде одной или нескольких интегральных схем.

Микропроцессор в соответствии с заранее определенными правилами (инструкциями) обрабатывает данные, при этом программа (набор инструкций) и данные находятся в памяти микропроцессора, рис. 5.1.

Рис. 5.1. Схема взаимодействия микропроцессора с хранимой
программой и с устройствами ввода-вывода, используя РАП и РДП

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

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

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

Рис. 5.2. Схема типового ЦПУ

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

Наличие в ЦПУ таких регистров позволяет выполнять многие функции без обращения к памяти (используя РАП и РДП), и, следовательно, эти операции будут выполняться быстрее.

Устройство, в котором непосредственно производится обработка данных, называется арифметико-логическим устройством (АЛУ). Оно имеет два входа для операндов и один выход для результата. Обработка обычно осуществляется над всеми битами слова одновременно. АЛУ может выполнять все перечисляемые ниже операции или часть из них: арифметические операции (сложение, преобразование арифметическое в дополнительный код, вычитание, положительное приращение, отрицательное приращение); логические операции (ИЛИ, И, ИСКЛЮЧАЮЩЕЕ ИЛИ, НЕ-И, НЕ-ИЛИ, преобразование логическое в дополнительный код).

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

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

Часто элементы программы (команды, данные) записываются в последовательно расположенные ячейки памяти, начиная с адреса, равного нулю, или с любого другого заранее определенного адреса. При этом управление выполнением программы, т.е. указание адреса следующей команды или слова данных, может быть реализовано просто путем приращения значения адреса после каждого обращения к памяти. Такое УУВП типа счетчика обладает недостаточной гибкостью. Иногда бывает необходимо изменить обычную последовательность команд, в частности, когда микропроцессор должен принимать решения в соответствии с условиями, возникающими в выполняемой в данный момент части программы. Например, может потребоваться одна из двух различных последовательностей команд в зависимости от результата выполнения последней команды. Это достигается путем загрузки в РАП новой величины (адреса следующей команды, подлежащей выполнению) вместо приращения его содержимого. Эта операция, называемая переход или передача управления, может быть безусловной (что позволяет выполнять группы команд, размещенных в памяти произвольным образом) или условной (переход реализуется в зависимости от того, был ли, например, результат последней операции равным нулю или нет, отрицательным или положительным, «истинным» или «ложным»
и т.д.).

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

Для нахождения операндов может использоваться несколько способов адресации:

1) операнд является частью команды – непосредственная адресация;

2) адрес операнда является частью команды – прямая адресация;

3) содержимое внутреннего регистра добавляется к числу, находящемуся в памяти по адресу, указанному в команде. Полученная сумма представляет собой адрес операнда (косвенная адресация);

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

5) адрес операнда находится во внутреннем регистре, а номер самого регистра указывается в команде;

6) адрес операнда представляет собой сумму содержимого внутреннего регистра (указанного в команде) и числа (называемого смещением), являющегося частью команды;

7) содержимое внутреннего регистра добавляется к числу, которое записано в памяти по адресу, указанному в команде. Полученная таким образом сумма представляет собой адрес области памяти, где находится адрес операнда.

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

Выполнение команды в микропроцессоре включает следующие шаги:

1) УУВП загружает адрес следующей команды в РАП и посылает сигнал в память о необходимости выполнения операции чтения. (УУВП, в частности, может быть простейшим устройством типа счетчика команд (СК) с числом разрядов, равным длине адреса ячейки памяти.) Затем содержимое адресуемой ячейки памяти загружается в РДП;

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

3) АЛУ выполняет требуемую операцию;

4) результат операции загружается в выбранный для этой цели регистр;

5) результат анализируется с целью определения необходимости выполнения в программе перехода;

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

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

Информация, хранимая в памяти, организована в виде совокупности слов, каждое из которых состоит из N бит. Число N может быть как небольшой величиной (8) для простых, так и значительной (64) при использовании более мощных микропроцессоров. Наиболее распространенная длина слова памяти составляет 16 бит. Величина N называется разрядностью памяти, причем количество разрядов в РДП, очевидно, также должно быть равно этой величине (соответствовать длине слова памяти).

Объем памяти определяется количеством слов данных, которые могут быть в ней размещены. Если РАП состоит из k разрядов, то может быть адресовано 2 k последовательных ячеек памяти, причем значения адресов будут находиться в диапазоне от нуля до величины 2 k – 1.

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

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

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

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


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



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