Статус нашего сайта: |
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 |
Таненбаум Э.- Архитектура компьютера. стр.254Конвейер UltraSPARC III Cu Конвейер UltraSPARC III Си из 14 ступеней в упрощенной форме изображен на рис. 4.34. В левой части рисунка ступени обозначены буквами от А до D. Рассмотрим каждую из них в отдельности. Открывает конвейер ступень A (Address generation — формирование адреса). Здесь определяется адрес каждой последующей команды, которую предполагается выбрать. Как правило, он совпадает с адресом следующей команды, однако в некоторых случаях последовательная организация нарушается, например, если предыдущая команда является командой спрогнозированного перехода, перехвата исключения или прерывания, которое необходимо обработать. Так как прогнозирование ветвления за один цикл невозможно, команда, непосредственно следующая за условным переходом, выполняется в любом случае, вне зависимости от целевого объекта перехода. Рис. 4.34. Упрощенная схема конвейера UltraSPARC Hi Си Исходя из определенного ранее адреса на ступени Р (Preliminary fetch — предварительная выборка) вызываются команды из кэша команд первого уровня (до четырех за цикл). Для выявления условных переходов и проверки правильности прогноза производятся обращения к таблице переходов. На ступени i7 (Fetch — выборка) завершается выборка команд и их передача в кэш команд. На ступени В (Branch target — обнаружение объекта перехода) происходит декодирование выбранных команд. Если среди них обнаруживаются спрогнозированные переходы, они передаются обратно на ступень А для непосредственной выборки соответствующих команд. На ступени / (Instruction group formation — группировка команд) входящие команды сортируются по группам, в зависимости от того, к каким из шести функциональных блоков они обращаются: 1. АЛ У 1 для выполнения целочисленных операций. 2. АЛУ 2 для выполнения целочисленных операций. 3. АЛУ 1 для выполнения операций с плавающей точкой и графических операций. 4. АЛУ 2 для выполнения операций с плавающей точкой и графических операций. 5. Конвейер переходов (на рис. 4.34 не представлен). 6. Операции загрузки и хранения, а также специальные операции. Ощутимые различия есть как между АЛУ для выполнения целочисленных операций, так и между АЛУ для выполнения операций с плавающей точкой и графических операций. В обоих случаях различаются наборы команд, которые способны выполнять те или иные АЛУ. Сортировка команд по блокам проводится на ступени /. На ступени J (Instruction stage grouping — извлечение команды из очереди) команды подготавливаются к отправке в блок выполнения во время следующего цикла. В течение одного цикла на ступень R можно передать до четырех команд. Выбор команд ограничен доступностью функциональных блоков. К примеру, единовременно можно вызвать две команды выполнения целочисленной операции, одну команду выполнения операции с плавающей точкой и одну команду загрузки или сохранения. Однако запустить за один цикл три команды выполнения целочисленных операций невозможно. На ступени R (Register — регистр) производится поиск регистров, необходимых для обработки команд выполнения целочисленных операций. Запросы на предоставление регистров с плавающей точкой перенаправляются в соответствующий регистровый файл. Здесь же проводятся проверки на предмет взаимозависимостей. Если необходимый регистр оказывается недоступным по причине его занятости предыдущей командой, текущая команда приостанавливается, а все последующие команды — блокируются. В отличие от Pentium 4, в UltraSPARC III Си команды вне исходной последовательности не выполняются. |