Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Анализ функциональной памяти типа FIFO , LIFO в современных микропроцессорах




 

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

Наиболее эффективно обмен данными между подсистемами с различным быстродействием реализуется при наличии между ними специальной буферной памяти. Данные от подсистемы 1 временно запоминаются в буферной памяти до готовности подсистемы 2 принять их. Емкость буферной памяти должна быть достаточной для хранения тех блоков данных, которые подсистема 1 формирует между считываниями их подсистемой 2. Отличительной особенностью буферной памяти является запись данных с быстродействием и под управлением подсистемы 1, а считывание - с быстродействием и под управлением подсистемы 2 («эластичная память»). В общем случае память должна выполнять операции записи и считывания совершенно независимо и даже одновременно, что устраняет необходимость синхронизации подсистем. Буферная память должна сохранять порядок поступления данных от подсистемы 1, т.е. работать по принципу «первое записанное слово считывается первым» (First Input First Output - FIFO). Таким образом, под буферной памятью типа FIFO понимается запоминающее устройство (ЗУ), которое автоматически следит за порядком поступления данных и выдает их в том же порядке, допуская выполнение независимых и одновременных операций записи и считывания.

Рассмотрим применение буферной памяти типа FIFO на примере микропроцессора КР1810ВМ86. На рисунке 2.2 приведена структурная схема микропроцессора КР1810ВМ86. В этом микропроцессоре буферная память типа FIFO организовывается в виде блока регистров очереди команд.

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

Рисунок 2.1. Применение буферной памяти

Рисунок 2.2 Принцип работы стековой памяти LIFO

Так же в микропроцессорах используется стековая память - это память доступ к которой организован по принципу: «последним записан - первым считан» (Last Input First Output - LIFO). Использование принципа доступа к памяти на основе механизма LIFO началось с больших ЭВМ. Применение стековой памяти оказалось очень эффективным при построении компилирующих и интерпретирующих программ, при вычислении арифметических выражений с использованием польской инверсной записи. В малых ЭВМ она стала широко использоваться в связи с удобствами реализации процедур вызова подпрограмм и при обработке прерываний.

Принцип работы стековой памяти состоит в следующем (см. рисунок 2.3.). Когда слово А помещается в стек, оно располагается в первой свободной ячейке памяти. Следующее записываемое слово перемещает предыдущее на одну ячейку вверх и занимает его место и т.д. Запись 8-го кода, после H, приводит к переполнению стека и потере кода A. Считывание слов из стека осуществляется в обратном порядке, начиная с кода H, который был записан последним. Заметим, что выборка, например, кода E невозможна до выборки кода F, что определяется механизмом обращения при записи и чтении типа LIFO.

Для фиксации переполнения стека желательно формировать признак переполнения.

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

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

Наиболее распространенным и возможно лучшим в настоящее время организации стека в ЭВМ является использование области памяти. Для адресации стека используется указатель стека, который предварительно загружается в регистр и определяет адрес последней занятой ячейки. Помимо команд CALL и RET, по которым записывается в стек и восстанавливается содержимое программного счетчика, имеются команды PUSH и POP. Команда PUCH - это процесс прохождения информационного слова через стек, а команда POP - это операция чтения информационного слова из стека. В некоторых МП содержимое основных регистров запоминается в стеке автоматически при прерывании программ. Содержимое регистра указателя стека при записи уменьшается, а при считывании увеличивается на 1 при выполнении команд PUSH и POP, соответственно.

Рассмотрим применение памяти LIFO в микропроцессоре К1804ВУ4. На рисунке 2.4 приведена его структурная схема.

Основными частями стека являются указатель стека (реверсивный счетчик со специальными цепями установки) и накопитель стека. Накопитель стека представляет собой ОЗУ емкостью пять 12-разрядных слов. Запись и считывание информации осуществляются для той ячейки накопителя, которую адресует указатель стека. Эта ячейка называется вершиной стека. Информация может считываться из вершины стека на вход мультиплексора адреса как без изменения содержимого стека, так и с изменением. Информация записывается в стек при выполнении операции PUSH; при этом сначала содержимое указателя стека увеличивается на 1, а затем происходит собственно запись. Таким образом, указатель стека всегда указывает на последнее записанное слово. В стек может записываться только содержимое счетчика микрокоманд.

При выполнении над стеком операции POP содержимое указателя уменьшается на единицу после чтения вершины стека. Логически это означает заполнение вершины стека другой, ранее записанной при операции PUSH информацией. Операция POP над пустым стеком не изменяет его состояния. Заполнение всех пяти уровней стека вызывает появление осведомительного сигнала FL - 0. При выполнении очередной операции PUSH указатель стека остается без изменения, а в вершину стека записывается новая информация. Старая информация при этом теряется. Такая потеря является очень нежелательной, и рекомендуется тщательно продумать микропрограммы, чтобы ее не допустить. В этом микропроцессоре реализуется аппаратно - программный стек.

Теперь рассмотрим реализацию аппаратного стека на примере сигнального микропроцессора TSM32010. На рисунке 2.5 приведена его структурная схема.

В микропроцессоре TMS32010 реализован аппаратный 4-х уровневый стек в виде оперативной памяти с организацией 4x12. Запись осуществляется в верхний уровень стека из программного счетчика. Предыдущее значение верхнего уровня стека записывается во второй уровень и т.д. Содержимое последнего (4-го) уровня при записи в стек теряется. При чтении из стека содержимое верхнего уровня переписывается в программный счетчик, а на его место записывается содержимое второго уровня и т.д. Содержимое нижнего 4-го уровня стека копируется в третий уровень, а также сохраняется в четвертом уровне. Основное назначение стека заключается в хранении точек возврата (адресов возврата) команд, которые будут выполняться после подпрограмм и прерываний. Т.е. допускается 4-х уровневая степень вложенности подпрограмм и прерываний для TMS32010. Кроме того стек используется при выполнении некоторых команд ввода-вывода. Поэтому степень вложенности для подпрограмм, использующих такие команды, равна 3. В микропроцессоре TMS32010 имеется программная возможность наращивать стек отводя под него ячейки ОЗУ данных.


Рисунок 2.3 Структурная схема микропроцессора КР1810ВМ86

 

 

Рисунок 2.4 Структурная схема TSM32010


Рисунок 2.5. Структурная схема микропроцессора К1804ВУ4

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...