Таненбаум Э.- Архитектура компьютера. стр.273 Таненбаум Э.- Архитектура компьютера.

Рис. 5.4. Регистровые окна системы UltraSPARC III

В действительности число регистров общего назначения процессора UltraSPARC III превышает 32, но только 32 из них всегда доступны для про грамм. Эта особенность, называемая регистровыми окнами, призвана повысить эффективность вызова процедур. Систему регистровых окон иллюстрирует рис. 5.4. Основная идея — имитировать стек, используя при этом регистры. То есть существуют несколько наборов регистров, точно так же, как и несколько фреймов в стеке, из них ровно 32 регистра общего назначения доступны всегда. Регистр CWP (Current Window Pointer — указатель текущего окна) контролирует, какой набор регистров используется в данный момент.

Команда вызова процедуры скрывает старый набор регистров и путем изменения CWP предоставляет новый набор, который может использовать вызванная процедура. Однако некоторые регистры переходят от вызывающей процедуры к вызванной, что обеспечивает эффективную передачу параметров между процедурами. Для этого часть регистров переименовываются: после вызова процедуры прежние выходные регистры с R8 по R15 остаются доступными, но превращаются во входные регистры с R24 по R31. Восемь глобальных регистров не меняются. Это всегда один и тот же набор регистров.

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

В системе UltraSPARC III есть также 32 регистра для обработки команд с плавающей точкой, которые могут содержать либо 32-разрядные (одинарная точность), либо 64-разрядные (двойная точность) значения. Можно также использовать пары этих регистров, чтобы поддерживать 128-разрядные значения.

Архитектура UltraSPARC II — архитектура загрузки и сохранения. Это означает, что единственные команды, которые непосредственно обращаются к памяти, — это LOAD (загрузка) и STORE (сохранение), обеспечивающие перемещение данных между регистрами и памятью. Все операнды для команд арифметических и логических операций должны извлекаться из регистров или предоставляться самой командой (без обращений к памяти), а все результаты должны сохраняться в регистрах (но не в памяти).

Обзор уровня архитектуры набора команд микросхемы 8051

В качестве третьего примера мы традиционно рассматриваем микросхему 8051. В отличие от процессоров Pentium 4 (которые в основном используются в настольных компьютерах и серверных фермах) и UltraSPARC III (которые по большей части устанавливаются в крупных серверных, особенно мультипроцессорных, системах), микросхемы 8051 обычно встраиваются в бытовые устройства (от уличных светофоров до будильников) для обработки сигналов от кнопок, световых индикаторов и других элементов пользовательского интерфейса. История этого процессора довольно проста. Когда в 1974 году компания Intel выпустила


⇐ Предыдущая страница| |Следующая страница ⇒