11. Архитектуры процессоров
11.6.1. Общий обзор
SPARC процессоры используют Берклевскую архитектуру, основанную на регистровых окнах.
Внутренние регистры образуют блоки с частичным перекрытием. Исследователи Беркли предложили
использовать внутренний стек для того, чтобы избежать сохранения и восстановления регистров во внешней
памяти. Основной целью было ускорение вызовов процедур за счет минимизации числа обращений к
памяти, требуемых для передачи параметров и получения результата.
В каждый момент времени функция может иметь доступ к 32 регистрам: 8 global registers (гО - г7, общие
для всех функций) и окну из 24 регистров (г8 - г31). Регистровые окна перекрываются по 8-ми регистрам. В
каждой функции выделяют 8 in registers (r24 - г31 или Ю - 17) (совпадают с out registers в процедуре,
вызвавшей данную), 8 local registers (г1б - г23 или 10 - 17) (доступны только данной процедуре) и 8 out
registers (r8 - г15 или оО - о7) (совпадают с in registers в любой процедуре, вызванной данной). При вызове
функции происходит переключение окон, так, что вызванная функция получает новый набор регистров 10 -
17, оО - о7 и разделяет регистры Ю - 17 с вызвавшей функцией (где они адресовались как оО -о7). Поэтому в
регистрах оО - о7 удобно размещать параметры для вызванной процедуры, в регистрах 10 - 17 - локальные
переменные.
Размер каждого окна - 16 регистров (8 out + 8 local регистров). Фирма SUN специфицировала, что число
окон может быть от 2 до 32 (в зависимости от реализации). Тем самым общее число регистров в окнах - от 40
(2x16+8) до 520 (32x16+8).
Если глубина вложенности функций превышает число окон, то процессор генерирует прерывание и
операционная система должна сохранить часть окон в памяти.
Существует возможность вызвать функцию без переключения окон.
Другой важной особенностью SPARC архитектуры являются delay slots (см. с. 60).
11.6.2. Основные члены семейства
Реализация всех SPARC процессоров удовлетворяет версии архитектуры SPARC с тем или иным
номером. Важнейшей функцией SPARC International Compatibility and Compliance Committee является
выработка и публикация SPARC Compliance Definitions, а также инструкций по переходу от одного
определения к другому.
Каждый процессор в приведенных ниже технических данных обладает всеми возможностями
предыдущих процессоров для обеспечения совместимости.
SPARC (1987, 55000 транзисторов, 33 MHz, 20 MIPS):
•65535 136 32-бит регистров
•65535 32-бит шина адреса и данных
•65535 4-х стадийный конвейер
•65535 2 исполняющих устройства: 1 IU (data + address) + 1 shift unit
•65535 внешний CM Г (Cache controller and MMU) и FPC (Floating Point Controller)
•65535 всего 50 инструкций, каждая исполняется за 1 цикл
MICROSPARC-II (1994, 85 MHz, 85 MIPS, 64 Specint 92, 55 Specfp 92):
•65535 32-бит SPARC V8 архитектура
•65535 16Кб кэш инструкций + 8Кб кэш данных (32-бит Гарвардская архитектура)
•65535 3 исполняющих устройства: 1 IU + 1 FPU + 1 MMU
•65535 интерфейс сопроцессора
•65535 встроенная логика для поддержки DRAM и ввода/вывода
SuperSPARC-II (1995, 3100000 транзисторов, 90 MHz, 148 Specint 92, 143 Specfp 92):
•65535 32-бит SPARC V8 архитектура
•65535 3 инструкции за цикл
•65535 8-ми портовый 32x32 файл регистров
•65535 20Кб кэш инструкций + 16Кб кэш данных (32-бит Гарвардская архитектура)
•65535 64-входовый TLB (для обоих кэшей)
84