Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Приоритетный доступ процессорного ядра

Регистры флагов | Флаги аккумулирующих сравнений | Пример проблемного кода при организации цикла по арифметическому условию | Регистры управления DMA-пересылками через линк-порты | Цепочечные DMA-пересылки в ADSP-2106x | Организация взаимодействия между процессорным ядром и портами при вводе/выводе данных. | Структура и принципы функционирования последовательных портов в ADSP-2106x. Форматы данных, передаваемых через последовательные порты ADSP-2106x. | Статус буфера чтения и записи. | Регистры управления работой линк-портов ADSP-2106x | Регистр LSRQ и его назначение |


Читайте также:
  1. B. частина програми, де змінна оголошена або, де до неї можна отримати доступ за допомогою операції надання видимості.
  2. I. Первым (и главным) принципом оказания первой помощи при ранениях верхней конечности является остановка кровотечения любым доступным на данный момент способом.
  3. I. Первым (и главным) принципом оказания первой помощи при ранениях нижней конечности является остановка кровотечения любым доступным на данный момент способом.
  4. I. Поэтому первым (и главным) принципом оказания первой помощи при ранениях является остановка кровотечения любым доступным на данный момент способом.
  5. Rights of foreign citizens and persons without citizenship in the Russian Federation. [Электронный ресурс]. – Режим доступа: http://www. PetersburgCity.com/safety guide.
  6. Алгоритм 2.36. Доступ к информации о задаче
  7. Алгоритм 2.37. Доступ к информации о ресурсе

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

Доступ к шине из программы связан с обработкой прерывания как правило. Мы на момент создания программы знаем, сколько будет обрабатываться прерывание и как правило это не занимает много процессорного времени. В то время как при DMA-пересылке задержки не столь критичны, так как шина разделяема между 10 DMA-каналами, и контроллер будет ожидать возможности переслать значение.

Существует схема приоритетного доступа ядра (Core Priority Access, CPA), которая позволяет ядру slave-процессора получить доступ к внешней шине путем прерывания выполняемой bus-master-процессором DMA-пересылки. Это значит, что если процессор является bus-master и он запрашивает доступ из ядра, то он работает в приоритете и не обращает внимания на другие процессоры. Однако, если он осуществляет DMA-пересылку и какой-либо процессор запрашивает доступ к шине из процессорного ядра, то bus-master передаст управление шиной этому процессору.

 

32. Операции вещательной записи. Блокировка шины. Использование "зеркальных" семафоров. Межпроцессорные сообщения и вектор прерывания VIRPT.

 

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

Используется при необходимости одновременного синхронного изменения значения во всех процессорах (например, при работе с семафорами). Для вещательной записи используется диапазон адресов 0x00380000 – 0x003FFFFF. Операция чтения из этого диапазона приводит к чтению из внутренней памяти самого процессора.

Особенность выполнения операции заключается в том, как bus-master определяет завершен ли цикл выполнения это операции. bus-master заряжает линию ACK в четном такте и если какой-нибудь slave в нечетном такте не выставляет подтверждение на линию ACK (это вроде как подтверждение приема что ли), то bus-master понимает, что цикл операции доступа к внешней шине не завершен, какой-то из slave не успел прочитать свое значение. И тогда он выставляет еще один такт ACK, иначе операция завршена успешно.

Семафоры

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

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

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

Блокировка шины

Поскольку мы должны работать с семафором в исключительном режиме, то мы должны получить в монопольное пользование внешнюю шину. Запрос на блокировку шины выставляется путем установки бита BUSLK (регистра MODE2). После этого процессор выставляет свой сигнал BR, ожидает получения управления над шиной и не отдает ее до снятия BUSLK (независимо от выполнения операций доступа по шине).

Использование “зеркальных семафоров”

Работать с семафором, расположенным во внутренней памяти другого процессора, значит выолнять очень медленную операцию чтения slave, поэтому испольлзуется механизм “зеркальных” семафоров. Мы задаем семафор, который представляет собой кучу ячеек, которые располагаются по одному и тому же адресу во внутренней памяти каждого из процессоров. При проверке семафоров процессор читает свою внутреннюю память, а при записи семафора используется операция широковещательной записи.

Вектор прерывания VIRPT

Запись в IOP-регистр VIRPT slave-процессора адреса процедуры обработки приводит к генерации в slave-процессоре прерывания VIRPTI. При его обработке адрес передается не в таблицу векторов прерываний, а на адрес, указанный в младших 24 битах регистра VIRPT.

Минимальная задержка при вызове обработчика VIRPTI – 6 тактов.

Попытка процессора записать значение в свой регистр VIRTP не приводит к генерации прерывания.

Алгоритм работы с VIRPT:

1) Опрашивать VIRPT slave-процессора до обнаружения маркера (напр.=0)

2) Дождаться DWPD=0 в регистре SYSTAT slave-процессора

3) Записать адрес обработчика в VIRPT

4) По завершении обработчика slave должен записать в VIRPT маркер.

Межпроцессорные сообщения

Процессор может взаимодействовать со slave-процессорами путем записи/чтения значений в их IOP-регистры MSGR0-MSGR7.

Варианты протоколов обмена сообщениями

1) Vector-interrupt-driven. BM-процессор записывает MSGRx регистры slave-процессора и инициирует прерывание VIRPTI. Обработчик прерывания по завершении работы записывает в VIRPT значение "0".

2) Register handshake. Используются 4 регистра MSGRx slave-процессора, среди которых выбираются регистр приема (R), подтверждения приема (RH), передачи (T), подтверждения передачи (TH). Для передачи данных BM-процессора записывает слово данных в T-регистр и флаг "1" в TH-регистр. Slave-процессор при обнаружении "1" в TH, читает T и записывает в TH "0". Когда BM-процессор обнаруживает "0" в TH – это признак того, что slave принял слово.

3) Register write-back. Используются только регистры T и R. Признак завершения (подтверждения) операции – неиспользуемое значение (например, "0" или 0xFFFF..FF).

 

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


Дата добавления: 2015-11-16; просмотров: 60 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Механизм арбитража общей внешней шины| Общие сведения

mybiblioteka.su - 2015-2024 год. (0.007 сек.)