Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
90
Добавлен:
23.02.2015
Размер:
6.18 Mб
Скачать

4.5. Реализация прерываний в мульти­процессорных системах

Построение мультипроцессорных систем является одним из пер­спективных путей достижения высокой производительности. Наиболее простую организацию имеют симметричные мультипроцессорные систе­мы, в которых используется несколько процессоров, объединенных общей локальной шиной. Каждый процессор выполняет свою задачу, задаваемую операционной системой (ОС). При этом процессоры совместно используют общие ресурсы системы (память, внешние устройства), обращение к кото­рым регулируется ОС. В каждый момент времени один из процессоров является ведущим (master) - только он имеет доступ к системной шине. Другие процессоры в случае необходимости обращения к шине выдают соответствующий запрос. Эти запросы анализируются специальным устройством - арбитром шины, который работает под управлением ОС. В соответствии с определенным алгоритмом арбитр предоставляет доступ к шине одному из запросивших процессоров, который становится, таким об­разом, ведущим. Поддержку функционирования таких мультипроцессорных систем обеспечивает ряд современных ОС (Windows NT, Novell NetWare и другие). Чаще всего симметричные мультипроцессорные системы содер­жат два или четыре процессора.

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

Одной из наиболее серьезных проблем при реализации мультипро­цессорных систем является организация обслуживания внешних (аппарат­ных) прерываний. Классическая организация обслуживания с помощью контроллера прерываний, подающего сигнал запроса INTR и формирую­щего код команды INT n, с реализацией процессором цикла подтвержде­ния прерывания ориентирована на использование в однопроцессорной системе. Для обеспечения функционирования мультипроцессорных сис­тем в процессоры семейства Р6 введен программируемый контроллер прерываний с расширенными возможностями APIC (APIC - Advanced Programmable Interrupt Controller).

Рис. 4.5. Обработка прерываний в мультипроцессорной системе с использованием контроллеров APIC

В симметричной мультипроцессорной системе передача сигналов прерывания происходит по специальной APIC-шине (рис. 4.5). Общие внешние запросы прерываний поступают на системный APIC-контроллер, который реализован в виде отдельной микросхемы, разработанной и по­ставляемой компанией Intel. Каждый из процессоров содержит локальный APIC, имеющий две входных линии LINTO, LINT1, на которые поступают локальные запросы прерывания, обслуживаемые только данным процес­сором. При работе в однопроцессорной системе APIC отключается, и вы­воды LINT1-0 используются для подачи запросов немаскируемого NMI и маскируемого INTR прерываний.

Общие запросы прерывания поступают на системный APIC, который после их анализа выдает соответствующие послания на внутреннюю APIC-шину. Эта шина содержит три линии, на одну из которых (PICCLK) выдает­ся синхросигнал, а две других (PICD1-0) служат для последовательного обмена информацией в процессе организации обслуживания поступивших запросов. При этом для внешних устройств, формирующих запросы пре­рывания, мультипроцессорная система выглядит как один процессор, а процедура обслуживания запросов соответствует процедуре, выполняе­мой серийным контроллером прерываний Intel 8259A, который широко ис­пользуется в современных системах.

Соседние файлы в папке УчПосбЧ-3