Блок управления

Блок управления содержит:

· регистровую память и узел управления стеком регистров;

· узел управления конвейером;

· узел обработки исключений.

В архитектуре IA-64 реализовано большая регистровая память, что позволяет выполнять многие операции без обращения к оперативной памяти. Эти регистры делятся на следующие группы:

· 64-разрядные общие регистры (128 регистров с именами GR0-GR127), предназначенные для всех операций с целыми данными, в том числе и в мультимедийных приложениях, и доступные для всех прикладных и системных задач;

· 82-разрядные регистры с плавающей точкой (128 регистров с именами FR0-FR127), предназначенные для всех операций над данными с плавающей точкой, в том числе и в мультимедийных приложениях, и доступные для всех прикладных и системных задач;

· одноразрядные регистры предсказания (64 регистра с именами PR0-PR63), предназначенные для хранения результатов операций сравнения и доступные для всех прикладных и системных задач;

· 64-разрядные регистры переходов (8 регистров с именами BR0-BR7), предназначенные для хранения адресов переходов;

· 64-разрядный указатель команды IP (Instruction Pointer – указатель команды), содержащий адрес пакета команд для текущей команды (в режиме IA-64) или адрес текущей команды (в режиме IA-32);

· 38-разрядный маркер текущего кадра CFM (Current Frame Marker), описывающий текущий кадр стека общих регистров;

· 64-разрядные регистры приложений – AR (Application Registers) (128 регистров) для использования в прикладных задачах;

· 64-разрядные регистры данных для мониторинга производительности – PMD (Performance Monitoring Data);

· 6-разрядный регистр UM, содержащий пользовательские маски (User Masks), используемые в различных целях, в том числе и при мониторинге;

· 64-разрядные идентификаторы процессора – CPUID, описывающие различные параметры процессора, зависящие от модели.

Все группы регистры и группы регистров доступны всем прикладным и системным задачам на всех уровнях защищенности.

Узел стека регистров RSE (Register Stack Engine) помещает регистры в файл регистров, реализованный на отдельной микросхеме. Регистры помещаются в файл по принципу стековой очереди («последний пришел – первый ушел»). Если файл регистров переполняется, часть регистров сохраняется в оперативной памяти, и, при необходимости, они будут возвращены обратно в файл регистров. Таким образом, RSE поддерживает для программиста модель неограниченного количества доступных регистров.

Узел управления конвейером получает от конвейера сведения о необходимых для выполнения ресурсах и обеспечивает эти ресурсы, обращаясь к файлу регистров или кэш-памяти. Для упреждающего обеспечения ресурсами используются данные регистров предсказания.

Узел обработки исключений реализует обработку нестандартных ситуаций (исключений), в частности, числовые операнды проверяются на возникновение исключительной ситуации (например, деления на нуль).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: