белякова,мамедова.pptx
- Количество слайдов: 16
LOGO Здравствуй, дорогой зритель! Несколько лет назад я сдал такую интересную дисциплину, как “Вычислительные системы, сети и коммуникации” А сегодня я поделюсь с вами темой “Конвейеры и конфликты”! Приятного просмотра
Эй, друг! Скажи мне, как нынче максимально используют все возможности в современных микропроцессорах и увеличивают их быстродействие? О, для этого же используется конвейерный принцип обработки информации! Этот принцип подразумевает, что в каждый момент времени процессор работает над различными стадиями выполнения нескольких команд, причем на выполнение каждой стадии выделяются отдельные аппаратные ресурсы. ПОЯСНИМ НА ПРИМЕРЕ
Как и в производственном конвейере, так и в вычислительном мы сталкиваемся с “машиной непрерывного транспорта”. Т. е. по очередному тактовому импульсу каждая команда в конвейере продвигается на следующую стадию обработки, выполненная команда покидает конвейер, а новая поступает в него Команды обрабатываются, а получаются шоколадки…
Привет! Т. к. в различных процессорах количество и суть этапов различаются, мы рассмотрим принципы конвейерной обработки информации ступенчатого конвейера глубже. В нем выполнение команды складывается из 5 этапов И я, мистер Дельфин, расскажу вам об этом
3 метра под уровнем моря ТАКТ 1 2 IF 3 4 5 6 7 ID OR EX IF ID 8 9 WB WB OR EX WB Здесь представлено выполнение команд в таком конвейере IF (Instruction Fetch) считывание команды в процессор; ID (Instruction Decoding) - декодирование команды; OR (Operand Reading) считывание операндов; EX (Executing) выполнение команды; WB (Write Back) - запись результата.
Так как в каждом такте могут выполняться различные стадии обработки команд, то длительность такта выбирается исходя из максимального времени выполнения всех стадий. Кроме того, следует учитывать, что для передачи команды с одной стадии на другую требуется определенное дополнительное время (Δt), связанное с записью промежуточных результатов обработки в буферные регистры.
Это интересно! Я понял преимущества конвейерной обработки над последовательной, это действительно уменьшает время цикла процессора! Будь осторожен, ты должен быть в курсе, что бывают ситуации, когда одновременное выполнение нескольких инструкций может привести к логически некорректной работе конвейера Эти ситуации известны как конфликт конвейера
RAW (Read After Write) По управлению Структурные По данным WAR (Write After Read) WAW (Write After Write) Конфликты делятся на три группы
Конфликты по управлению возникают при конвейеризации команд переходов и других команд, изменяющих значение счетчика команд. Команда i завершит свое выполнение в такте 5. В то же время команда условного перехода уже в такте 3 должна прочитать необходимые ей признаки, чтобы правильно сформировать адрес следующей команды. Можно улучшить эту ситуацию, использую схему "задержанных переходов"
Структурные конфликты Такт Ком анда i i+1 i+2 i+3 i+4 1 IF 2 3 4 5 6 7 8 ID OR EX WB IF ID OR IF 9 EX EX EX WB ID OR O O EX WB IF ID OR O O EX IF ID OR O Возникают в том случае, когда аппаратные средства процессора не могут поддерживать все возможные комбинации команд в режиме одновременного выполнения с совмещением. O В этом случае в работе конвейера возникают так называемые "пузыри" в обработке команд i+2 и следующих за ней начиная с такта 6, которые снижают производительность процессора.
Этой ситуации можно было бы избежать двумя способами. Первый предполагает увеличение времени такта до величины, позволяющей выполнить все этапы любой команды за один такт. Второй способ предполагает использование аппаратных решений, позволяющих значительно снизить затраты времени на выполнение действия, приводящего к появлению "пузырей" (например, использовать матричные схемы умножения)
Конфликты по данным. возникают в случаях, когда выполнение одной команды зависит от результата выполнения предыдущей команды Конфликты типа RAW обусловлены именно конвейерной организацией обработки команд. Они называются истинными взаимозависимостями. Уменьшение влияния конфликта типа RAW обеспечивается методом, который называется пересылкой или продвижением данных, обходом, иногда закороткой.
Конфликты типа WAR Этот конфликт возникнет в случае, если команда j вследствие неупорядоченного выполнения завершится раньше, чем команда i прочитает старое содержимое регистра R 0 i) ADD R 1, R 0; R 1=R 1+R 0 i+1 = j) SUB R 0, R 2; R 0=R 0 -R 2 i) ADD R 1, R 0; R 1=R 1+R 0. . . j) SUB R 1, R 2; R 1=R 1 -R 2 Конфликты типа WAW команда j пытается записать результат в приемник, прежде чем в этот же приемник будет записан результат выполнения команды i, то есть запись заканчивается в неверном порядке, оставляя в приемнике результата значение, записанное командой i:
Устранение конфликтов по данным типов WAR и WAW достигается путем отказа от неупорядоченного исполнения команд, но чаще всего путем введения буфера восстановления последовательности команд.
LOGO Спасибо за внимание