Читаем Журнал «Компьютерра» №37 полностью

В типичной SPARC-архитектуре используется регистровый файл из 128 регистров; причем пользователю из них одномоментно доступны только расположенные подряд 24 регистра, образующие в этом файле окно, плюс еще восемь стоящих особняком глобальных регистров. Глобальные регистры используются для глобальных переменных[В структурных языках программирования типа C принято разделять локальные переменные, которые определены и используются только одной конкретной функцией и существуют только то время, пока эта функция работает; и глобальные переменные, которые существуют все время, пока выполняется программа, и доступны всем функциям программы]; регистровое окно - для локальных. Когда нам нужно вызвать какую-нибудь функцию, мы записываем необходимые для ее работы исходные данные в конец окна, а процессор при вызове функции попросту смещает окно по регистровому файлу таким образом, чтобы записанные данные оказались в начале нового, пока пустого окна. Требовавшие сохранения временные данные вызывавшего функцию кода оказываются за пределами окна, так что испортить их нечаянными действиями невозможно. А когда функция заканчивает работу, то полученные результаты записываются в те же самые регистры в начале окна, после чего процессор смещает его обратно. И никаких расходов на сохранение-восстановление стека.

Расположение окон в SPARC’ах можно программировать, добиваясь максимально эффективного использования схемы (либо много окон, но маленьких, либо мало - но больших; в зависимости от того, что за функции встречаются в программе) - этот факт даже отражен в названии процессора (Scalable Processor ARChitecture). Подобно многим своим RISC-сестрам, разработанная в середине 80-х годов и пережившая расцвет в середине 90-х, SPARC-архитектура не выдержала «гонки мегагерц» и сегодня фактически умерла. Но предложенный ею подход живет и здравствует - его позволяет использовать, например, архитектура IA-64 (Itanium).

Шаг второй. RISC

Точно так же, как когда-то CISC-процессоры проектировались под нужды asm-программистов, RISC проектировался в расчете на типовой код, генерируемый компиляторами. Для начала разработчики свели к минимуму набор инструкций и к абсолютному минимуму - количество режимов адресации памяти; упаковав все, что осталось, в простой и удобный для декодирования регулярный машинный код. В частности, в классическом варианте RISC из инструкций, обращающихся к оперативной памяти, оставлены только две (Load - загрузить данные в регистр и Store - сохранить данные из регистра; так называемая Load/Store-архитектура), и нет ни одной инструкции вроде вычисления синуса, косинуса или квадратного корня (их можно реализовать «вручную»), не говоря уже о более сложных[Канонический пример - инструкция INDEX, выполнявшаяся на VAX медленнее, чем вручную написанный цикл, выполняющий ровно тот же объем работы]. Да что там синус с косинусом - в некоторых RISC-процессорах пытались отказаться даже от трудно реализуемого аппаратного умножения и деления! Правда, до таких крайностей ни один коммерческий RISC, к счастью, не дошел, но как минимум две попытки (ранние варианты MIPS и SPARC) предприняты были.

Второе важное усовершенствование RISC-процессоров, целиком вытекающее из Load/Store-архитектуры, - увеличение числа GPR (регистров общего назначения). Варианты, у которых меньше шестнадцати GPR, - большая редкость, причем почти все эти регистры полностью равноправны, что позволяет компилятору свободно распоряжаться ими, сохраняя большую часть промежуточных данных именно там, а не в стеке или оперативной памяти. В некоторых архитектурах, типа SPARC, «регистровость» возведена в абсолют, в некоторых - оставлена на разумном уровне; однако почти любой RISC-процессор обладает куда большим набором регистров, чем даже самый продвинутый CISC. Для сравнения: в классическом x86 IA-32 всего восемь регистров общего назначения, причем каждому из них приписано то или иное «специальное назначение» (скажем, в ESP хранится указатель на стек) затрудняющее или делающее невозможным его использование.

Среди прочих усовершенствований, внесенных в RISC, - такие нетривиальные идеи, как условные инструкции ARM или режимы работы команд[Например, некий модификатор в архитектуре PowerPC и некоторых других показывает, должна ли инструкция выставлять по результатам своего выполнения определенные флаги, которые потом может использовать инструкция условного перехода, или не должна. Это позволяет разнести в пространстве инструкцию, выполняющую вычисление условия, и инструкцию собственно условного перехода - что в конвейерных архитектурах зачастую позволяет процессору не «гадать», будет совершен переход или нет, а сразу достоверно это знать]. В классическом CISC они почти не встречаются, поскольку на момент разработки соответствующих наборов инструкций ценность этих решений была сомнительной (они выйдут на сцену только в конвейеризированных процессорах).

Перейти на страницу:

Похожие книги

«Если», 1998 № 01
«Если», 1998 № 01

ФАНТАСТИКАЕжемесячный журналСодержание:Сьюзи МакКи Чарнас. СЛУШАЯ БРАМСА, рассказАлександр Громов. СЧАСТЛИВАЯ ЗВЕЗДА, рассказБилл Джонсон. ВЫПЬЕМ, ГОСПОДИН ПОСОЛ! рассказАлексей Васильев. БЛИЖЕ К ТЕЛУ!ФактыДжеймс Типтри-младший. МИМОЛЕТНЫЙ ПРИВКУС БЫТИЯ, повестьЛитературный портрет*Вл. Гаков. В ТЕНИ ЧУЖОЙ СУДЬБЫФактыДжеффри Лэндис. БЕСКОНЕЧНЫЕ СОБЛАЗНЫ ЭНИГМЫ, повестьВиктор Комаров. Наш главный собеседникФантариум ЗВЁЗДНЫЙ ПОРТПРЯМОЙ РАЗГОВОР*Кир Булычёв. Будем уважать друг другаЕвгений Харитонов. За великой стенойКУРСОРРЕЦЕНЗИИPERSONALIAВИДЕОДРОМ*Адепты жанра— Дмитрий Караваев. Светлые идеи рыцаря «черного юмора»*Рецензии*Герой экрана— Станислав Ростоцкий. Черный ворон Голливуда*Рейтинг— Сергей Кудрявцев. Лидеры 1997. Самые кассовые фантастические фильмы*Сериал— Александр Алексеев. «Вавилон-5». Подготовка к пятому запуску*Внимание, мотор!— Евгений Зуенко. Компьютерные игры на экранеПремия читательских симпатий (лист для голосования)Обложка Мура К. (Chris Moore).Иллюстрации О. Васильева, О. Дунаевой, А. Жабинского, А. Филиппова.

Виктор Ноевич Комаров , Журнал «Если» , Александр Николаевич Громов , Владимир Гаков , Станислав Иосифович Ростоцкий

Журналы, газеты / Фантастика / Научная Фантастика
«Если», 2012 № 02
«Если», 2012 № 02

Раджнар ВАДЖРА. ПЯТЬ КОРОБОК ДЛЯ ДОКТОРАУже знакомый нашим читателям доктор для чужаков должен решить, казалось бы. неразрешимую задачу.Адам-Трой КАСТРО. УБЕЖИЩЕА вот не менее запутанная проблема. И хотя на этот раз юридическая, но столь же драматичная для всех героев.Леонид КУДРЯВЦЕВ, Дмитрий ФЕДОТОВ. МУСОРЩИКИ ВРЕМЕНИА может быть, дворники? Все зависит от точки зрения.Павел АМНУЭЛЬ. ЧАЙКАЭтих мужчину и женщину не связывает более ничего. Электрон с Земли и атом железа из звезды Барнарда и те ближе.Пол КОРНЕЛЛ. АРГУМЕНТ ПО-ДАТСКИСуществование подобного альтернативного мира вызывает вопросы. Но детектив развивается в полном соответствии с его законами.Джо ХОЛДЕМАН. НЕ БУДИ ЛИХО…Бывший солдат прибывает на планету, где тридцать лет назад участвовал в боевых действиях.Крейг ДЕЛЭНСИ. ТРИ ДЖУЛИИТак сколько же их, в конце концов?!Александр ТИМОФЕЕНКО. КУДА УЖ РЕАЛЬНЕЕ…«Лукоморья больше нет, все, о чем писал поэт, — это бред».Аркадий ШУШПАНОВ. ЛЮДИ ТЕЛА…Или актеры без лиц.Сергей КУДРЯВЦЕВ. ЛИДЕРЫ-2011Неожиданностей мало: кто больше всех хотел прорваться в лидеры, тот и стал им.ВИДЕОРЕЦЕНЗИИА ведь кому-то такой юмор нравится…Глеб ЕЛИСЕЕВ. «Я — СЕМЬЯ…»«…во мне как в спектре живут семь "я" — этот отрывок из поэтической миниатюры Андрея Вознесенского отлично описывает тему статьи.Мария ГАЛИНА. КАК ЭТО ДЕЛАЛОСЬ В АНК-МОРПОРКЕВ Одессе это делалось по-другому, но все революции в чем-то похожи.РЕЦЕНЗИИИ фэнтези, и НФ, и альтернативная история, и фантастиковедение, и новеллизация, и даже феминистская НФ.КУРСОРКак Байконур вдруг очутился в Астане…Валерий ОКУЛОВ. ЗНАМЕНИТЫЙ НЕУДАЧНИКБывают такие странные книги, которые наперебой ругают и одновременно взахлеб читают.Вл. ГАКОВ. ЗАПОВЕДНИК ПРИМАТОВЭтот писатель серьезно пошатнул авторитет Дарвина, доказав возможность обратной эволюции.Сергей СЛЮСАЙЕНКО. ТЕОРИЯ УПУЩЕННЫХ ВОЗМОЖНОСТЕЙНастоящий научный вопрос задал читателям журнала самый настоящий ученый.ПЕРСОНАЛИИМногие критики полагают, что житейская биография писателя неизбежно отражается в его творчестве. В таком случае авторы нашего журнала, как минимум, гости из будущего, а возможно, и вовсе маскирующиеся под людей пришельцы.

Сергей Кудрявцев , Валерий Окулов , Дмитрий Федотов , Наталья Щерба , Крэйг Делэнси

Проза / Журналы, газеты / Фантастика / Фэнтези / Современная проза / Эссе
«Если», 2001 № 06
«Если», 2001 № 06

ФАНТАСТИКАЕжемесячный журналСодержание:Александр Шалганов. ЗДРАВСТВУЙТЕ, УВАЖАЕМЫЕ ЧИТАТЕЛИ!Вл. Гаков. СОЗДАТЕЛИ ЖАНРАМарина и Сергей Дяченко. КОН, повестьАндрей Столяров. КАК ЭТО ДЕЛАЕТСЯ, рассказЭдуард Геворкян. ВОЗВРАЩЕНИЕ МЫТАРЯ, повестьВладимир Михайлов. ТРИАДА КУРАНТА, повестьЕвгений Лукин. ТРУЖЕНИКИ ЗАЗЕРКАЛЬЯ, повестьСергей Лукьяненко. ОТ СУДЬБЫ…, рассказМАСТЕР*Кир Булычев. ВЫ МЕНЯ ЕЩЁ НЕ ЗНАЕТЕ!ВИДЕОДРОМ*Адепты жанра-- Наталья Милосердова. КУ, РОДНЫЕ!..*Хит сезона-- Дмитрий Караваев. ГДЕ ДРАКОН?*Рецензии*Фестиваль-- Дмитрий Байкалов. ПОБЕДНОЕ ФИАСКОЕвгений Харитонов. «РУССКОЕ ПОЛЕ» УТОПИЙКРУПНЫЙ ПЛАН*Наталия Мазова. ПОИСКИ ХАОСА, рецензия на несуществующий роман Алины Лещининой «Путь, уводящий в облака»РЕЦЕНЗИИКУРСОРАНКЕТА «ЕСЛИ»ПЕРСОНАЛИИОформление обложки: Игорь Тарачков (с. 1, 4); Алексей Филиппов (с. 2, 3)Иллюстрации: О. Васильев, С. Голосов, А. Филиппов, А. Балдин, С. Шехов

Дмитрий Львович Караваев , Евгений Викторович Харитонов , Журнал «Если» , Наталия Михайловна Мазова , Владимир Гаков

Журналы, газеты / Фантастика / Научная Фантастика / Фэнтези