Суперскалярный и VLIW

Я хочу задать несколько вопросов, связанных с ILP.

  • Суперскалярный процессор - это своего рода смесь скалярного и векторного процессора. Так могу ли я сказать, что архитектура векторного процессора следует суперскалярным?

  • Одновременная обработка нескольких команд не делает архитектуру суперскалярной, поскольку конвейерная, многопроцессорная или многоядерная архитектура также достигают этого. Что это значит?

  • Я читал: "Суперскалярная архитектура процессора реализует форму параллелизма, называемую параллелизмом на уровне команд внутри одного процессора", суперскалярный не может использовать более одного процессора? Кто-нибудь может дать мне пример, где используются суперскаляр?

  • VLIW, я пролистал эту статью, там есть рисунок 4 на странице 9. Он показывает общую реализацию VLIW, без сложного буфера переупорядочения и логики декодирования и диспетчеризации. Термин без расшифровки сбивает меня с толку.

С уважением, Anas Anjaria

4 ответа

Решение

Проверьте эту статью.

Основное отличие можно увидеть на этих фотографиях:

Простой процессор:

Суперскалярный процессор:

Суперскалярный процессор - это своего рода смесь скалярного и векторного процессора.

Хах нет. Суперскалярное ядро ​​- это ядро, которое может выполнять более одной инструкции за такт.

Суперскалярный процессор - это своего рода смесь скалярного и векторного процессора.

Нет, это точно не так.

  • Скалярный процессор выполняет вычисления на части данных одновременно.
  • Суперскаляр может выполнять несколько скалярных инструкций одновременно.
  • VLIW может выполнять несколько операций одновременно.
  • Векторный процессор может работать с вектором данных одновременно.

Суперскалярный процессор Haswell, на котором я набираю это, имеет 8 исполнительных портов: 4 целочисленных операции, 2 чтения памяти и 2 хранилища. Потенциально 8 x86 инструкций могут выполняться одновременно. Это суперскаляр 8080 мог выполнять только 1 инструкцию за раз. Это скаляр

Haswell является как конвейерным, так и суперскалярным. Это также спекулятивный и не в порядке. Это гиперпоточный (2 потока на ядро) и многоядерный (2-18 ядер). Это просто зверь.

Параллелизм уровня команд (ILP) - это характеристика или показатель программы, а не процессора. Планировщик компилятора будет искать ILP статически или планировщик ЦП будет искать ILP динамически. Если они его найдут, то они могут заказать + выполнить инструкции соответственно.

  • Проверьте это сначала ( http://en.wikipedia.org/wiki/Superscalar):

    Суперскалярный процессор выполняет более одной инструкции в течение тактового цикла, одновременно отправляя множество команд избыточным функциональным блокам на процессоре. Каждый функциональный блок представляет собой не отдельное ядро ​​ЦП, а ресурс выполнения внутри одного ЦП, такой как арифметико-логический блок, блок сдвига битов или множитель.

Это означает, что, например, ЦП с 2(двумя) ALU (блоком арифметической логики) может физически выдавать 2 арифметические инструкции и выполнять их. Каждая арифметическая инструкция будет выполняться в разных единицах АЛУ.

Другие вопросы по тегам