КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Суперскалярные архитектурыЦП может реализовывать не один конвейер, а больше - суперскалярная архитектура. В основе лежит типовой конвейер, но общий блок выборки команд выбирает из памяти сразу две команды и помещает каждую из них в один из конвейеров.
Каждый конвейер содержит АЛУ для параллельных операций. Для параллельного выполнения обе команды не должны конфликтовать при использовании ресурсов (например, регистров). Ни одна из них не должна зависеть от результата выполнения другой. Как и при одном конвейере либо компилятор должен следить, чтобы не возникало недопустимых ситуаций (например, когда аппаратура выдаёт некорректные результаты, когда команды несовместимы), либо конфликты обнаруживаются и устраняются непосредственно при выполнении команды. В последнем случае должна использоваться дополнительная аппаратура. Сначала конвейеры использовались только в RISC-процессорах. В Intel, начиная с 486-й модели, был один конвейер из 5 стадий. В Pentium – два конвейера из пяти стадий. В нем используются сложные правила определения, является ли пара команд совместимой для параллельного выполнения. Если команды несовместимы, то выполнялась только одна команда из пары – из главного конвейера, а другая оставалась ожидать пару со следующей выбранной командой. Команды выполняются по порядку. Т.о. Pentium имел особые компиляторы, которые формировали пары из совместимых команд. Поэтому программы выполнялись быстрее; так на операциях с целыми числами выполнение в Pentium происходило в два раза быстрее, чем в 486-й модели с той же тактовой частотой. Переход к четырём конвейерам теоретически возможен, но потребует значительного усложнения аппаратуры. Вместо этого используется другая идея – один конвейер с большим числом функциональных блоков.
Блок С 3 выпускает команды значительно быстрее, чем Стадия С 4 может их выполнять. Если бы Блок С3 выпускала команду каждые 10 нс, а все функциональные блоки выполняли бы свою работу также за 10 нс, то на Стадии4 всегда функционировал бы только один блок, что бессмысленно для идеи конвейера. Реально большинству функциональных блоков Стадии4 для выполнения команды требуется значительно больше времени, чем время одного цикла (например, блок загрузки и блок с плавающей запятой)..
Совмещенные принципы обработки (конвейер команд) существенно увеличивают пропускную способность процессора, однако эффективность их использования зависит от управления (синхронизации), числа уровней обработки. Приостановку работы конвейера вызывает любая команда условного перехода в программе или взаимозависимость команд, т. е. использование следующей командой результатов предыдущей команды. Следует учитывать, что совмещение обработки увеличивает объем оборудования и усложняет схемы управления тем сильнее, чем больше число уровней совмещения. Все эти обстоятельства приходится учитывать при выборе числа уровней совмещения в каждом конкретном случае для получения заданных параметров и прежде всего удельных затрат (отношение производительности к стоимости). Опыт разработки ЭВМ общего назначения и проведенные исследования показывают, что технически и экономически целесообразной является совмещенная обработка 5-6 команд.
Помимо скалярных и суперскалярных процессоров существуют другие технологии повышения производительности.
|