Эта подсистема обеспечивает выдачу результатов выполнения команд в заданном исходной программой порядке. Подсистема состоит из следующих устройств.
Блок завершения. Устройство выдает результаты исполнения команд в той последовательности, в которой они поступили на исполнение, т. е. до ее изменения.
Регистровый файл. Устройство хранит результаты операций в том виде, в котором они хранились бы в регистрах процессора серии Intel х86 в результате выполнения команд программы.
Буфер переупорядочивания памяти. Устройство управляет порядком записи данных в память для предотвращения записи неверных данных из-за изменения порядка выполнения команд.
Подсистема памяти
Подсистема памяти осуществляет хранение данных и команд в быстродействующей кэш-памяти и взаимодействие процессора с оперативной памятью. К ней относятся следующие устройства.
Кэш данных первого уровня. Это память с малым временем доступа объемом 8 (для Pentium Pro) или 16 Кбайт (для более новых процессоров), предназначенная для хранения данных.
Кэш команд первого уровня. Эта память, но своему быстродействию и объемам полностью аналогична кэш данных первого уровня, но используется для хранения команд.
Кэш второго уровня. В процессорах архитектуры Р6 впервые кэшпамять второго уровня была реализована как отдельный кристалл, но интегрированный в корпус процессора и соединенный с кристаллом центрального процессорного устройства отдельной независимой шиной. Такая архитектура стала называться архитектурой с двойной независимой шиной. Напомним, что ранее кэш второго уровня реализовывался только на основе внешних микросхем памяти. Новая архитектура позволила обеспечить работу кэш-памяти с тактовой частотой процессора (или вдвое меньшей). При этом число транзисторов у этого кристалла даже больше, чем у самого процессора (для сравнения, кристалл ЦПУ базового процессора Р6 содержит 5,5 млн транзисторов, в то время как кристалл кэш-памяти второго уровня объемом 256 Кбайт — 15,5 млн).
Столь большое число транзисторов разъясняется статической природой памяти. Напомним, что у статической памяти для запоминания одного бита необходимо шесть транзисторов, в то время как у динамической памяти достаточно одного. Однако статическая память имеет более высокое быстродействие, нежели динамическая.
Кэш-память второго уровня в последующих процессорах архитектуры Р6 составляла 256, 512, 1024 и 2048 Кбайт.
Блок шинного интерфейса. Это устройство обеспечивает управление системной шиной.