Подумайте о тех Как это сделано или других телевизионных шоу, где вы видите фабрику в действии.Подумайте о том, что вы, возможно, читали или видели об автомобильном заводе.«Автомобиль» движется по заводу, начиная с рамы или кузова, и к нему добавляются вещи.Если бы вы сидели снаружи здания, то увидели бы шины и банки с краской, рулоны из проволоки и стали, входящие в здание, и постоянный поток автомобилей.Тот факт, что это единая (однопроцессорная) фабрика, не означает, что она не может иметь сборочную линию (конвейер).Однопроцессор с конвейером фактически не является обязательным, выполняя одну инструкцию за раз, так же как автомобиль на заводе не изготавливает одну машину за раз.Небольшая часть конструкции этого автомобиля происходит на каждой станции, через которую он проходит, аналогично выполнение вашей программы происходит немного на каждой станции в конвейере.
Типичными простыми этапами в конвейере являются выборка, декодирование и выполнение, три этапа.для выполнения одной инструкции требуется три такта, минимум (обычно намного больше из-за медленного ввода-вывода), скажем, три этапа в конвейере.Пока инструкция a находится в фазе выполнения, у вас есть команда b, которая декодируется, и команда c извлекается.Возвращаясь к автозаводу, они могут производить «одну машину каждые 7 минут», что не означает, что на изготовление машины уходит 7 минут, на изготовление машины может уйти неделя, но они заводят новую каждые 7 минут, и в среднемвремя на каждой станции таково, что вы можете выкатывать одну дверь каждые 7 минут.То же самое и здесь, с конвейером это не означает, что вы можете извлекать, декодировать и выполнять все три шага с тактовой частотой для процессора.Как и на фабрике, это скорее обычная вещь.Если вы можете передавать каждый из этапов конвейера с тактовой частотой процессора, то он будет выполнять одну инструкцию за такт (если она предназначена для этого).в наши дни вы не можете быстро передавать данные / инструкции, а также возникают задержки в конвейере и т. д., из-за которых вам приходится начинать сначала или отбрасывать часть прогресса, а некоторые - резервировать.подход к выполнению инструкций в процессоре.