Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.07.2013, 23:19   #11
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от DiemonStar Посмотреть сообщение
Как я помню, команда перехода приостанавливает конвейерную обработку данных. Т.е. до момента ее завершения конвейер не используется.
Нет, выполняется одна из веток. А когда будет результат логического выражения, определяющего направление перехода, либо вычисление продолжается, либо конвейер полностью сбрасывается, после чего начинает выполняться другая ветка.
Как повезет.
Собственно, блок предсказания переходов нужен, чтобы везло чаще.
Цитата:
Например, есть код из 5 команд исполняющихся за 4 процессорных такта и переход, занимающий три такта, после которого идут еще 5 команд по 4 такта.
Это неудачный пример.
Пусть лучше у нас все команды выполняются по 20 тактов, но в конвейер они заходят по одной на каждом такте.
Скажем, на 10000-м такте в конвейер зашла команда вычисления условного перехода. на 10001-м зашла следующая инструкция, на 10002 - еще одна и так далее - до тех пор, пока на 10020-м такте не будет известно направление перехода.
И тогда если мы пошли по нужному пути - продолжаем вычисления, а если ошиблись - нужно откатиться на 20 команд назад.
То есть ту команду, которую мы бы начали выполнять на 10001-м такте при правильном предсказании ветвлений, мы начнем выполнять только на 10021-м такте.
s-andriano вне форума Ответить с цитированием
Старый 08.07.2013, 23:28   #12
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Базиля Посмотреть сообщение
Можно пояснения про кеш? Почему Вы так решили? Не вижу просто никакой связи между конвейером и кешом.
Он перепутал два разных конвейера.
Тот конвейер, о котором он пишет применительно к 386, действительно, сейчас превратился в кэш первого уровня - кэш команд и кэш данных.
Цитата:
Поправьте если я не прав, но ведь конвейер это новшество 486?
Нет, новшество 486 - именно встроенный кэш.
Конвейер выборки из памяти впервые (у Интел) появился в 8086 (в 8080-8085 его не было), а конвейерная обработка команд - с Pentium.
s-andriano вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определение типа микропроцессора (TASM) -danger- Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 02.06.2024 13:54
Конвейер рендеринга. Warn Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 16.12.2011 09:51
Ленточный конвейер.... dj-Oleg Помощь студентам 2 03.11.2011 15:57
Shell на C(Конвейер) l1pton17 Общие вопросы C/C++ 0 01.11.2010 22:01
тестирование микропроцессора на быстродействие swatkiev Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 16.09.2010 08:20