Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Структурные конфликты и способы их минимизации






Совм-ый режим выпол-ия команд в общем случае требует конвейеризации функ-ых устр-в и дублирования ресурсов для разрешения всех возможных комбинаций команд в конвейере. Если какая-нибудь комбинация команд не может быть принята из-за конфликта по ресурсам, то говорят, что в машине имеется структурный конф-т. Наиболее типичным прим. машин, в кот. возможно появление структурных конфликтов, являются машины с не полностью конвейерными функцион. устр-ми. Время работы такого устр-ва может сост. несколько тактов синхронизации конвейера. В этом случае последова-ые команды, кот. исп. данное функц-ое устр-во, не могут поступать в него в каждом такте. Другая возможность появления структурных конфликтов связана с недостаточным дублированием некот. ресурсов, что препятствует выпол-ию произвольной последовательности команд в конвейере без его приостановки. Например, машина может иметь только один порт записи в регистровый файл, но при опред-ных обстоятельствах конвейеру может потребоваться выпол. две записи в регистровый файл в одном такте. Это также приведет к структурному конфликту. Когда последов-сть команд наталкивается на такой конфликт, конвейер приостанавливает выпол. одной из команд до тех пор, пока не станет доступным требуемое устр-во. Структурные конфликты возникают, например, и в машинах, в которых имеется единственный конвейер памяти для команд и данных. В этом случае, когда одна команда сод. обращение к памяти за данными, оно будет конфликтовать с выборкой более поздней команды из памяти. Чтобы разрешить эту ситуацию, можно просто приостановить конвейер на один такт, когда происходит обращение к памяти за данными. Подобная приостановка часто наз. " конвейерным пузырем" (pipeline bubble) или просто пузырем, поскольку пузырь проходит по конвейеру, занимая место, но не выполняя никакой полезной работы.

При всех прочих обстоятельствах, машина без структурных конфликтов будет всегда иметь более низкий CPI (среднее число тактов на выдачу команды). Почему разработчики допускают наличие структурных конфликтов? Для этого имеются две причины: снижение стоимости и уменьшение задержки устройства. Конвейеризация всех функцион. устр-в может оказаться слишком дорогой. Машины, допуск. два обращения к памяти в одном такте, должны иметь удвоен. пропускную способность памяти, путем организ. раздельных кэшей для команд и данных. Аналог-но, полностью конвейерное устр-во деления с плавающей точкой требует огромного кол-ва вентилей. Если структурные конфликты не будут возникать слишком часто, то может быть и не стоит платить за то, чтобы их обойти. Как правило, можно разработать неконвейерное, или не полностью конвейерное устройство, имеющее меньшую общую задержку, чем полностью конвейерное.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.