русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Циклы шины с захватом и псевдо-захватом шины


Дата добавления: 2015-06-12; просмотров: 713; Нарушение авторских прав


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

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

Процессор i486 защищает целостность некоторых критических операций с памятью, воздействуя на выходной сигнал LOCK#. Чтения и записи 64-разрядных операндов и (128-разрядные) предварительные выборки команд защищаются выходом, который называется PLOCK#. За использование этих сигналов для управления доступом к памяти среди процессоров отвечает разработчик аппаратного обеспечения.

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



В число средств интерфейса мультипроцессорной обработки общего назначения входят:

  • Сигнал LOCK#, появляющийся на штырьке процессора.
  • Сигнал PLOCK#, появляющийся на штырьке процессора.
  • Префикс команд LOCK, позволяющий установку сигнала LOCK# программным обеспечением.
  • Автоматическая установка сигнала LOCK# для некоторых видов операций с памятью.
  • Автоматическая установка сигнала PLOCK# для некоторых других видов операций с памятью.

13.1.1 Префикс LOCK и сигнал LOCK#

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

  • Проверка и изменение бита: команды BTS, BTR и BTC.
  • Обмен данными: команды XCHG, XADD и CMPXCHG (команде XCHG префикс LOCK не требуется).
  • Арифметические и логические операции с одним операндом: команды INC, DEC, NOT, NEG.
  • Арифметические и логические операции с двумя операндами: команды ADD, ADC, SUB, SBB, AND, OR или XOR.

Команда с захватом гарантированно захватывает только область памяти, определяемую операндом назначения, но может захватить и большую область памяти. Например, типовые конфигурации 8086 и 80286 захватывают все физическое адресное пространство.

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

Целостность захвата не зависит от выравнивания поля памяти. Сигнал LOCK# устанавливается для стольких циклов шины, сколько нужно для обновления всего операнда целиком.



<== предыдущая лекция | следующая лекция ==>
Глава 13. Мультипроцессорная обработка | Автоматический захват


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.334 сек.