Суперскалярный и 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 арифметические инструкции и выполнять их. Каждая арифметическая инструкция будет выполняться в разных единицах АЛУ.
Во-вторых, проверьте это ( http://en.wikipedia.org/wiki/Instruction_level_parallelism): это поможет вам не путать различные методы для достижения ILP (параллелизма на уровне инструкций).
Третье ( http://en.wikipedia.org/wiki/P5_%28microprocessor%29): Примером суперскалярного процессора является оригинальный Intel Pentium. У него два инструкционных конвейера.