Какова цель синхронизированных регистров в конвейерном процессоре
Привет, я читаю учебник, в котором описывается пиплановый дизайн процессора. Я не понимаю, почему нам все еще нужны синхронизированные регистры? например, как показано на рисунке ниже:
если мы можем удалить все три регистра, мы можем сохранить 60ps, потому что нам просто нужно, чтобы процессор продолжал выполнять инструкции, поэтому, когда логика гребенки завершается, именно тогда должна начинаться выполнение следующая инструкция, поэтому нам нужен тактовый цикл для ручного управления начало выполнения инструкции?
1 ответ
Вы можете начать понимать необходимость защелок, представив, что они удалены.
Секрет в том, чтобы понять, что для получения достоверных результатов каждый блок занимает 100 пикосекунд. До этого времени вывод был недействительным, он же мусорный, а не как вы думаете, предыдущий результат. Помните, это комбинаторные блоки, которые не имеют памяти.
Теперь представьте, что мы размещаем новые данные на входах блока А каждые 100 пикосекунд.
Как будет выглядеть вывод? Как только новые данные поступают на входы, выходы этого блока становятся недействительными. Это означает, что блок B имеет недопустимые входы и не может начать обработку данных, пока они не будут действительными.
Теперь по прошествии 100 пикосекунд в блоке А поступают достоверные данные, и блок В может наконец начаться. Но нет, вход в блок A изменяется, и блок B снова имеет неверные входы. Единственный способ получить действительный результат через все три - это сохранить входные данные действительными в течение всех 300 пикосекунд, необходимых для прохождения всех трех блоков.
С защелками действительные результаты из каждого блока фиксируются и не изменяются при изменении входных данных. Таким образом, мы можем представлять новые данные каждые 100 + 20 пикосекунд против каждых 300 пикосекунд. Или с защелками на конвейере схема работает в 2,5 раза быстрее.