Модуль Управление транспьютером (System services) включает в себя средства инициализации и поддержания операций транспьютера, управления ошибками и анализа состояния транспьютера. Этот модуль обслуживает ниже описываемые сигналы.
Все транспьютеры фирмы INMOS имеют Входной Тактовый
Сигнал (ClockIn) с частотой 5 МГц, которая не зависит
от длины машинного слова и быстродействия транспьютера (ширина
импульса - 200 нс). Входной тактовый сигнал служит для формирования
всех внутренних тактовых сигналов транспьютера. Требуемая частота
реализуется имеющимся в составе транспьютера умножителем частоты.
Скорость транспьютера IMS T805 может принимать несколько
дискретных значений. Желаемая скорость процессора выбирается с
помощью трех линий Выбора Скорости (ProcSpeedSelect0-2),
которые определяют изменение тактовой частоты транспьютера. Управление
выбором скорости непосредственно недоступно. При построении транспьютерных
модулей на этих линиях устанавливают соответствующие высокий или
низкие сигналы, определяющие производительность транспьютера.
Можно установить следующие значения тактовой частоты процессора:
17.5, 20.0, 22.5, 25.0, 30.0, 35.0 МГц
Сигнал Инициализация (Reset) инициализирует
транспьютер, запускает последовательность конфигурирования внешней
памяти, вызывает программу начальной загрузки. После сброса сигнала
Инициализация выполняется последовательность действий, позволяющая
определить конфигурацию интерфейса памяти и провести ее регенерацию.
Программа начальной загрузки транспьютера либо считывается из
внешней памяти, либо поступает по одному из каналов. Перед началом
исполнения программы начальной загрузки процессор находится в
состоянии с низким приоритетом. Если после подачи сигнала Инициализация,
но до того как он будет сброшен, выставлен сигнал Начальная
Загрузка из ПЗУ (BootFromRom), то транспьютер начинает
работу с двух байт внешней памяти, расположенных по адресу #7FFFFFFE.
Эта ячейка должна содержать переход на программу начальной загрузки
в ПЗУ.
Если сигнал Начальная Загрузка из ПЗУ не был
подан, то транспьютер будет ожидать поступления сообщения по какому-нибудь
входному каналу. Сообщение состоит из управляющего
байта, за которым следуют данные. Управляющий
байт определяет длину (в байтах) пакета данных и действие, которое
должно быть выполнено при получении сообщения.
Если первый байт,
поступивший по некоторой линии связи, содержит значение n>1,
то считается, что n - это количество байт в программе начальной
загрузки. Следующие за пакетом n байт считываются и помещаются
во внутреннею память, начиная с адреса #80000070 (MemStart).
После получения последнего байта программы начальной загрузки
транспьютер начинает ее выполнение с этого адреса. Пространство
памяти непосредственно выше загруженной программы используется
как пространство рабочих данных. Сообщения, поступившие на этот
канал после приема программы загрузки, и сообщения, поступившие
на другие каналы после приема управляющего байта, будут сохранятся,
пока какой-нибудь процесс не считает их. Пока транспьютер ожидает
поступления по каналам программы начальной загрузки, можно исследовать
и изменять содержимое любой ячейки памяти.
Если управляющий байт
пакета содержит 0, то пакет данных должен содержать 8 байт. Из
них первые четыре байта определяют адрес памяти, по которому необходимо
записать следующие четыре байта.
Если же управляющий байт содержит
1, то пакет данных должен содержать 4-х байтовый адрес машинного
слова, значение которого необходимо считать и переслать по выходному
каналу линии связи, использовавшейся при получении управляющего
байта пакета.
После считывания или записи слова транспьютер возвращается
в исходное состояние, ожидая следующее сообщение.
Iptr | MemStart при загрузке по линии связи, иначе (загрузка из ПЗУ) адрес вектора загрузки. |
Wdesc | MemStart при загрузка из ПЗУ, иначе (загрузка по линии связи) адрес первого свободного слова за программой начальной загрузки. |
Areg | Iptr на момент останова процессора. При останове по ошибке Iptr указывает на два байта далее команды, вызвавшей ошибку, а при останове по сигналу Анализ Iptr указывает на один байт далее команды, обрабатывавшейся на момент подачи сигнала. |
Breg | Wdesc на момент останова процессора. |
Creg | номер линии связи при загрузке по линии связи. |
Слово Состояния сохраняется во внутренней памяти, когда высокоприоритетный процесс прерывает низкоприоритетный процесс, и восстанавливается при завершении первого. Поэтому высокоприоритетный процесс может изменить любой из флагов ошибки, не разрушая статус ошибки любой операции, выполнявшейся прерванным низкоприоритетным процессом.
Сигналы Инициализация, Анализ и Ошибка называются системными управляющими сигналами (System services). Объединительные вычислительные платы фирмы INMOS имеют общую схему распространения этих сигналов по сети транспьютеров. Каждая плата имеет три порта коммутации системных сигналов: От_Предыдущей (Up), К_Следующей (Down) и Собственные(Subsystem). На порт От_Предыдущей подаются системные сигналы от внешнего источника (внешние системные сигналы). Эти сигналы можно подать на все ТРАМы платы и передать на следующие платы. Это позволяет контролировать всю сеть сигналами от одного источника. Порт Собственные вычислительной платы соединен с внутренней шиной корневого транспьютера и контролируется регистрами, размещенными в зарезервированной области внутренней памяти. Он позволяет создать независимо управляемую подсеть из транспьютеров этой платы и подключаемых к ней других плат. Сигналы этого порта называются внутренними системными сигналами. Порт К_Следующей распространяет сигналы порта От_Предыдущей или порта Собственные на платы, подсоединяемые к рассматриваемой вычислительной плате.