Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архитектура вычислительных систем(шпоры и лекции).doc
Скачиваний:
274
Добавлен:
10.05.2014
Размер:
534.02 Кб
Скачать

16. Управление процессами в транспьютерах.

Процесс есть действие по выполнению кода некоторой про­граммы или кода фрагмента программы.

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

Для управления процессами предусмотрены специальные ко­манды. Каждому процессу в момент его создания в адресном про­странстве транспьютера выделяется рабочая область и устанавли­вается приоритет (1 или 0). Адрес рабочей области и значение при­оритета образуют дескриптор процесса. Смена процессов произво­дится быстро, т.к. необходимая информация о персональных ре­сурсах процесса содержится в рабочей области процесса.

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

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

17. Особенности оккам команд.

Проектирование транспьютеров связано с созданием языка ОККАМ по имени средневекового монаха. Особенность транспьютера заключается в том, что его архитектура разработана с расчетом на непосредственное выполнение ОККАМ - программ. Язык ОККАМ - это язык параллельного программирования, позволяющий задавать параллельные вычисления в соответствии с моделью взаимодейст­вующих последовательных процессов. Программа на ОККАМ - языке представляет описание совокупности асинхронных совмест­но протекающих взаимодействующих процессов. Под процессом здесь имеется в виду действие по выполнению кода некоторой про­граммы или кода фрагмента программы. Модель параллельных вычислений поддерживается аппаратно-реализованным диспетче­ром, обеспечивающим выполнение параллельных процессов в ре­жиме квантования времени. Группа процессов может объединяться и вести себя как единый процесс.

При разработке набора команд транспьютера были учтены осо­бенности набора команд RISC и CISC-архитектур. Наряду с мак­симальным использованием однотактных, часто встречаемых ко­манд, используется также расширенный набор длинных и сложных команд. Однако в отличие от традиционной RISC-архитектуры в транспьютере для выполнения сложных операций ОККАМ –языка используется микрокод.

Транспьютер спроектирован с учетом RISC-идеологии - все ко­манды имеют одинаковый формат с целью достижения наиболее компактного представления операций, часто встречающихся в про­граммах. В транспьютере реализовано два типа команд: небольшое число простых однобайтных команд и безадресные команды, ис­пользующие для выполнения операции содержимое регистров министека: регистров А, B и С.

Каждая команда содержит два четырехбитовых поля: поле кода операции и поле операнда. Операции, реализуемые командами транспьютера, разделяются на первичные и вторичные. Группа первичных операций, кодируемых в четырех битах, состоит из 13 наиболее употребимых операций (сложения, переходов, загрузку - записи слова и т.д.), двух префиксных операций, позволяющих увеличивать длину операнда и команды управления, которая интерпретирует свой операнд как код операции, выполняемой с данными, содержащи­мися в стеке.

В существую­щих моделях транспьютеров количество вторичных операций пре­вышают сотни. Код вторичной операции считывается из регистра операнда, а операнды для операции извлекаются из регистров ЦП.