Это не совсем то, о чем они, вероятно, говорят, так это о том, что счетчик программ на две команды опережает выполнение команды.Но это не означает, что это две или три глубокие трубы, если они когда-либо были.На этом этапе он ничего не раскрывает, так же, как тень MIPS в ветвях.Есть учебник MIPS и есть реальность.
Ничего волшебного в трубопроводе нет, это компьютерная версия конвейера.Вы можете построить автомобиль на месте и привести двигатель, колеса, колеса и т. Д. К автомобилю.Или вы можете провести машину через конвейер и иметь станцию для дверей, станцию для колес и так далее.У вас одновременно строится много машин, и количество машин, выходящих из здания, каждые несколько минут, но это не значит, что новая машина собирается за несколько минут.Это просто означает, что самый медленный шаг занимает несколько минут, спереди назад он занимает примерно столько же времени.
Инструкция состоит из нескольких очевидных шагов, для добавления требуется, чтобы вы получили инструкцию, декодировали ее,собрать операнды, подать их сумматору (alu), взять результат и сохранить результат.Другие инструкции имеют аналогичные шаги и схожее число.
ваш учебник будет использовать такие термины, как извлечение, декодирование, выполнение.Таким образом, если вы выбираете инструкцию в 0x1000, затем в 0x1004, а затем в 0x1008, надеясь, что код работает линейно без ветвей, тогда, когда 0x1004 выбирается, 0x1000 декодируется, когда 0x1008 выбирается, тогда 0x1004 являетсяв зависимости от того, будет ли оно декодировано, а 0x1000 может быть выполнено.так что можно подумать, что при выполнении 0x1000 счетчик программ выбирает 0x1008, что говорит мне, как работает конвейер.Ну, я не могу иметь конвейер глубиной 10000 и иметь счетчик программ, который команда видит как любой адрес, который мне нравится, относительно адреса этой инструкции. Я мог бы иметь 0x1000 для инструкции в 0x1000 и иметь конвейер глубиной 12345.Это всего лишь определение, возможно, в какой-то момент истории оно появилось из-за реального дизайна и реального канала, или его всегда можно было так определить.
Что важно, так это то, что определение указано и поддерживается набором инструкций, если они говорят, что ПК - это инструкция плюс некоторое смещение, тогда оно всегда должно быть тем или должно документировать исключения и соответствовать этим определениям.,Готово.Программисты могут тогда программисты, компиляторы могут быть написаны, и т. Д.
Проблема учебника с конвейерами (не говоря уже о том, что это не реально) заключается в том, что, скажем, у нас кончаются двигатели v8, у нас на конвейере 12 грузовиков, мы строим грузовики на этой линии в течение некоторого периода времени, затем мы строим автомобили сv6-х годов.Двигатели идут на медленной лодке, как только они закончат их строить, но у нас есть готовые детали для автомобилей, поэтому давайте уберем грузовики с линии и начнем линию, так как за N шагов на конвейере машины не выходят на другой конецздания, как только первая машина доедет до конца, то новая машина каждые несколько минут.Нам пришлось промыть конвейер.когда вы выполняете инструкцию 0x1000, 0x1004, 0x1008 и т. д. Если вы можете сохранить конвейер более эффективным, но то, что из 0x1004 является ветвью к 0x1100, может иметь инструкцию 0x1008 и 0x100c в канале, поэтому мы должны сброситьтруба начинает выборку с 0x1100, и требуется некоторое количество тактов, прежде чем мы снова завершим выполнение инструкций, затем в идеале мы выполняем один за такт после этого до следующей ветки.Так что, если вы читаете классический учебник по предмету, в котором используется mips или образовательный предшественник, у них есть это понятие тени ветви или какого-либо другого подобного термина, инструкция после ветви всегда выполняется.поэтому вместо удаления N инструкций из канала вы сбрасываете N-1 инструкции и получаете дополнительные часы для получения следующей инструкции после перехода в конвейер.Вот как работает mips по умолчанию, но когда вы покупаете реальное ядро, вы можете отключить его и не выполнять инструкцию после перехода.Это отличная иллюстрация для учебника, и она, вероятно, была реальной и, вероятно, реальной для создания классных уроков по компьютерной инженерии.Но используемые в настоящее время конвейеры не ждут так долго, чтобы увидеть, что канал будет пустым и может начать извлекать раньше и иногда получать более одного такта, а не сбрасывать весь канал.Если это когда-либо было сделано, то в настоящее время оно не дает MIPS каких-либо преимуществ по сравнению с другими проектами и не дает нам возможности ознакомиться с их конвейером.