Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АЭВМ(Ответы).doc
Скачиваний:
1
Добавлен:
25.12.2019
Размер:
8.77 Mб
Скачать
  1. Процессоры intel 486: буферы отложенной записи.

Процессоры 1пtе1486 представляют второе поколение 32-разрядных процессоров. Обладая всеми свойствами процессора 386 и обеспечивая полную обратную совместимость с прежними представителями семейства 80х86. Процессоры 486 исполняются в корпусах PGA-168 или PGA-16, PQFP или SQFP. Начиная с процессоров 486, в системных платах PC стали широко применяться ZIF-сокеты (Zero Insertion Force Socket) — «разъемы с нулевым усилием вставки», предназначенные для установки процессоров в корпусах PGA со штырьковыми выводами. Унификация расположения выводов процессоров одного класса и наличие конфигурационных переключателей позволяет пользователю заменять старые процессоры на более мощные модификации. Легкость установки требуемого процессора и последующей его замены на более совершенные модели позволяют выполнять эту операцию даже конечным пользователям. Для процессоров 486 стали выпускать системные платы, рассчитанные на различные модификации и тактовые частоты — своеобразный конструктор «собери сам».

Процессор 486 имеет четыре внутренних буфера для операций записи. Если во время внутреннего запроса процессора на запись все буферы свободны и шина не занята, запись выполняется сразу без буферирования. Если шина занята, запрос направляется в буфер, занимая для записи только один внутренний такт, а из буфера данные выгружаются в оперативную память или устройства ввода/вывода по мере освобождения внешней шины. Внешние операции записи из буферов будут производиться в том же порядке, что и поступившие запросы. Однако, если при наличии неосвобожденных буферов появится запрос на чтение памяти, он может быть обслужен и раньше, чем удовлетворятся предшествующие ему запросы на запись. Это изменение последовательности может произойти только в том случае, если все запросы записи в буферах связаны с кэш-попаданиями, а запрос на чтение относится к кэш-промаху. Только в этом случае процессор может смело менять порядок операций, но только один раз до тех пор, пока не освободятся все буферы записи. Больше одного раза менять порядок в общем случае нельзя, потому что считанные данные могут заместить модифицированную строку кэша, из которой обновленная информация как раз и ожидает в буфере очереди на запись в основную память. В таком случае вторая попытка изменения последовательности может нарушить целостность данных.

Для операций ввода/вывода изменение порядка невозможно. Чтение ввода/вывода никогда не может обгонять запись в память (иначе отказались бы работать многие периферийные устройства). Одиночные операции вывода не буферизуются для того, чтобы дать устройствам возможность своевременно (для программы) сообщить о своей реакции на запись в порт (вызвать аппаратное прерывание или цикл аннулирования строки). Способы введения программной задержки (I/O Bus recovery time) между одиночными операциями вывода для процессоров 486+ должны учитывать кэширование и буферизацию. Здесь команда JMP, ранее безусловно приводящая к генерации внешнего цикла обращения к памяти, скорее всего будет обслужена из внутреннего кэша, желаемой задержки не произойдет. Надежным способом введения внешнего цикла шины между циклами вывода является явная операция чтения некэшируемой области памяти. Эта операция будет выполнена только после завершения предыдущего цикла вывода, а последующая операция вывода начнется Операции блочного вывода, вызванные инструкцией REP OUTSB/OUTSW, будут пользоваться буферами, но их порядок не будет нарушен.