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