Статус нашего сайта: |
ICQ Information Center |
ICQ SHOP 5-значные 6-значные 7-значные 8-значные 9-значные Rippers List ОПЛАТА СТАТЬИ СЕКРЕТЫ HELP CENTER OWNED LIST РОЗЫСК!New! ICQ РЕЛИЗЫ Протоколы ICQ LOL ;-) Настройка компьютера Аватарки Смайлики СОФТ Mail Checkers Bruteforces ICQTeam Soft 8thWonder Soft Other Progs ICQ Patches Miranda ICQ ФорумАрхив! ВАШ АККАУНТ ICQ LiveJournal
РекламаНаш канал:irc.icqinfo.ru |
Таненбаум Э.- Архитектура компьютера. стр.284Добавим еще, что некоторые команды имеют 1, 2 или 4 дополнительных байта для определения адреса команды (смещение), а иногда еще 1, 2 или 4 байта, содержащих константу (непосредственный операнд). Форматы команд процессора UltraSPARC III Архитектура команд процессора UltraSPARC III состоит из 32-разрядных команд, выровненных в памяти. Команды очень просты. Каждая из них выполняет только одно действие. Типичная команда задает два регистра, в которых находятся исходные операнды, и один выходной регистр. Вместо одного из регистров команда может использовать константу со знаком. При выполнении команды LOAD два регистра (или один регистр и 13-разрядная константа) складываются вместе для определения считываемого адреса памяти. Данные оттуда записываются в другой указанный в команде регистр. Изначально машина SPARC имела ограниченное число форматов команд (рис. 5.11). Со временем добавлялись новые форматы. Когда писалась эта книга, количество форматов уже было равно 31, и в планах было увеличение (долго ли осталось ждать того дня, когда появится реклама «самого сложного в мире RISC-процессора»?). Большинство новых вариантов были получены за счет отъема нескольких битов у какого-нибудь поля. Например, изначально для команд перехода использовался вариант 3 формата (с 22-разрядным смещением). Когда были добавлены команды прогнозируемых ветвлений, из 22 бит было изъято 3: один из них стал использоваться для прогнозирования (совершать или не совершать переход), а два оставшихся определяли, какой набор битов условного кода нужно использовать. В результате получилось 19-разрядное смещение. Приведем другой пример. Существует много команд преобразования типов данных (целых чисел — в числа с плавающей точкой и т. д.). Для большинства этих команд используется вариант lb формата, в котором поле непосредственной константы разбито на 5-разрядное поле, указывающее входной регистр, и 8-разрядное поле, предоставляющее дополнительные биты кода операции. Однако в большинстве команд все еще используются форматы, показанные на рисунке. Первые 2 бита каждой команды помогают определить формат команды и сообщают аппаратному обеспечению, где найти оставшуюся часть кода операции, если она есть. В варианте 1а формата оба источника операндов представляют собой регистры; в варианте lb один источник — регистр, второй — константа в промежутке от -4096 до +4095. Бит 13 определяет один из этих двух форматов. (Биты нумеруются с 0.) В обоих случаях местом сохранения результатов всегда является регистр. Достаточный объем пространства имеется для 64 команд, некоторые из которых зарезервированы на будущее. Поскольку все команды 32-разрядные, включить в команду 32-разрядную константу невозможно. Команда SETHI устанавливает 22 бита, оставляя про странство для другой команды, чтобы установить оставшиеся 10 бит. Это единственная команда такого необычного формата. Рис. 5.11. Исходные форматы команд процессора SPARC Для непрогнозируемых условных переходов используется вариант 3 формата, в котором поле условия определяет, что проверяется. Бит А нужен для того, чтобы избегать пустых операций при определенных условиях. Формат команд прогнозируемых ветвлений тот же, только с 19-разрядным смещением, как было сказано ранее. |