Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

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

Таненбаун Э. Архитектура компьютера — Спб.: Питер, 2007. — 844 c.
ISBN 5-469-01274-3
Скачать (прямая ссылка): arhkomputera2007.DjVu
Предыдущая << 1 .. 223 224 225 226 227 228 < 229 > 230 231 232 233 234 235 .. 422 >> Следующая

Idefine J %i2 /* J - это входной параметр 2 */
Idefine К %10 /* К - это локальная переменная 0 */
Idefine ParamO ЯоО /* ParamO - это выходной параметр
0 */
Idefine Paraml Яо1 /* Paraml - это выходной параметр
1 */
Idefine Param2 %о2 /* Param2 - это выходной параметр
2 */
Idefine Scratch Ш /* в срр комментарии записываются как в С*/
Ханойская башня 459
.ргос 04 .global towers towers: save ?sp,-112, ?sp cmp N, 1 bne Else
sethi Xhi(format),
! if(n- 1)
! if (n != 1) goto Else ParamO ! printf("Переместить диск с %6 на %6\n",
! i. j)
or ParamO, Xlo(format). ParamO ! ParamO - адрес форматирующей строки
mov I, Paraml call printf mov J, Param2 b Done nop
Else: mov 6, К
sub K,J,K sub K,I,K
add N, -1, Scratch mov Scratch, ParamO mov I, Paraml call towers mov K,
Param2
mov 1, ParamO mov I, Paraml call towers mov J, Param2
mov Scratch, ParamO mov K, Paraml call towers mov J. Param2
Paraml = i
вызов printf ДО установки параметра 2 (j) пустая операция для установки
параметра 2 завершение
вставляет пустую операцию
начало вычисления к = 6
k=6-j
k=6-i-j
-id
i. к)
начало процедуры towers(п-1,
Scratch = п-1 параметр 1 = i
вызов towers ДО установки параметра пустая операция после вызова
процедуры для установки параметра 2
начало процедуры towersd, i, j) параметр 1 = i
вызов towers ДО установки параметра 2 параметр 2 = j
начало процедуры towers(n-1, k, j) параметр 1 = к
вызов towers ДО установки параметра 2 параметр 2 = j
2 (к)
(J)
(J)
Done: ret ! выход из процедуры
restore ! вставка пустой команды после ret
! для восстановления окон format: .asciz "Переместить диск с ^d на %6\п"
По алгоритму версия UltraSPARC III идентична версии Pentium 4. В обоих
случаях сначала проверяется п, и, если n > 1, совершается переход к else.
Основные сложности версии UltraSPARC III связаны с некоторыми свойствами
архитектуры команд.
Сначала код UltraSPARC III должен передать адрес форматирующей строки в
printf, но машина не может просто переместить адрес в регистр, который
содержит выходной параметр, поскольку нельзя поместить 32-разрядную
константу в регистр одной командой. Для этого требуется выполнить две
команды: sethi и or.
После вызова не нужно делать подстройку стека, поскольку регистровое окно
корректируется командой restore в конце процедуры. Возможность помещать
выходные параметры в регистры, а не обращаться к памяти, дает
значительный выигрыш в производительности.
А теперь рассмотрим команду пор, которая следует за Done. Это пустая
операция, которая всегда будет выполняться, даже если она следует за
командой ус-
460
Глава 5. Уровень архитектуры набора команд
ловного перехода. Сложность состоит в том, что процессор UltraSPARC III
очень конвейеризирован, и к тому моменту, когда аппаратно обнаруживается
команда перехода, следующая команда уже практически заканчивает
обрабатываться. Добро пожаловать в удивительный мир RISC-
программирования!
Эта особенность распространяется и на вызовы процедур. Рассмотрим первый
вызов процедуры towers в части el se. Процедура помещает п - 1 в %о0, a i
- в %ol, но совершает вызов процедуры towers до того, как поместит
последний параметр в нужное место. На компьютере Pentium 4 вы сначала
передаете параметры, а затем вызываете процедуру. А здесь вы сначала
передаете часть параметров, затем вызываете процедуру, и только после
этого передаете последний параметр. К тому моменту, когда машина
осознает, что она имеет дело с командой cal 1, следующую команду все
равно приходится выполнять (из-за конвейеризации). А почему бы в этом
случае не использовать пустую операцию, чтобы передать последний
параметр? Даже если этот параметр потребуется самой первой команде
вызванной процедуры, он уже будет на своем месте.
Наконец, рассмотрим часть команды Done. Здесь после команды ret тоже
вставляется пустая операция. Эта пустая операция используется для команды
restore, которая увеличивает на 1 значение CWP, чтобы вернуть регистровое
окно в прежнее состояние.
Архитектура IA-64 и процессор Itanium 2
Неизбежно, и очень скоро, наступит момент, когда создать на основе
архитектуры команд IA-32 и линейки процессоров Pentium 4 что-то более
совершенное, чем существующие модели, будет уже невозможно. Пока что
новые модели совершенствуются только благодаря новым технологиям
производства, которые позволяют уменьшать размеры транзисторов, а значит,
повышать тактовые частоты. В то же время, повышать скорость работы
становится все труднее, и виной тому - ограничения, свойственные
архитектуре команд IA-32.
Единственное эффективное решение проблемы - при разработке новых
процессоров перейти от IA-32 к новой архитектуре команд. Именно такие
планы строит компания Intel. Более того, предполагается запустить две
новых линейки. Первая из них, называемая ЕМТ-64, представляет собой
расширенную версию Pentium 4 с 64-разрядными регистрами и 64-разрядным же
адресным пространством. В этой архитектуре решается проблема адресного
Предыдущая << 1 .. 223 224 225 226 227 228 < 229 > 230 231 232 233 234 235 .. 422 >> Следующая