Регистры процессора


Предыдущая | Следующая

Регистры процессора
Обычно процессор 386 вставляется в гнездо. Работать с ним логическим пробником довольно сложно. К счастью, внутри процессора имеются специальные схемы и регистры. Речь идет о схемах самоконтроля, которые проверяют процессор при каждом включении питания. Некоторые тесты выполняются автоматически. Прежде всего на электрические отказы проверяется примерно половина всех транзисторов.
Одновременно проверяется работоспособность всех регистров. По окончании проверки программа помещает определенные значения в некоторые общие регистры процессора, где они доступны программе. Если результаты не совпадают с заранее известными, процессор неисправен и его нужно заменять. Существуют и другие процедуры тестирования, проверяющие правильность работы некоторых областей памяти.
Архитектура процессора 386 напоминает процессор 286, но все регистры и внутренние шины стали 32-битовыми. Имеется восемь регистров общего назначения, которые можно использовать в арифметических и логических операциях, а также для хранения адресов и данных. Общие регистры оперируют 16- и 32-битовыми данными, а четыре из них еще и 8-битовыми байтами. Регистры процессора 386 показаны ria рис. 16.17.

32-битовый регистр флажков содержит обычные флажки, которые показывают особенности результата АЛУ и применяются для управления работой процессора. Имеются также 32-битовый указатель команды и шесть 16-битовых сегментных регистров, которые участвуют в формировании физических адресов.
В процессоре есть восемь регистров отладки, два регистра проверки, два системных регистра адреса, два системных сегментных регистра с двумя регистрами дескрипторов и четыре регистра для страничного преобразования адреса. Последние регистры предназначены для операционной системы, а прикладные программы не подозревают о их существовании.
Операционная система использует эти регистры для своих целей: инициализации компьютера после включения питания, организации мультизадачное™, обработки прерываний и особых случаев, задания контрольных точек, проведения самоконтроля и др.
Процессор 386 работает с несколькими типами данных, которые представляют интерес для программирующих на машинном языке: 8-, 16- и 32-битовыми целыми и порядковыми числами, упакованными и неупакованными десятичными числами, близкими и далекими указателями и цепочки. Элементами цепочек могут быть биты, байты, слова и двойные слова. Подробные сведения о типах данных изложены в руководстве программиста.
В обширную систему команд процессора 386 включены системы команд процессора 286 и даже процессора 8086.
В процессоре 386, как и в процессоре 286, реализована конвейеризация. Он имеет следующие внутренние устройства (рис. 16.18): шинное устройство, устройство опережающей выборки команд (или устройство предвыборки), дешифратор команд, операционное устройство, устройство сегментации и новое устройство страничного преобразования адреса. Все эти устройства могут работать независимо друг от друга и параллельно. Например, шинное устройство пересылает данные из одного места в другое, а в это же время устройство предвыборки помещает следующие четыре байта кода в очередь предвыборки.
Конвейеризация, при которой все устройства работают параллельно, повышает производительность системы.
Внутренние устройства процессора 386 объединяются 32-битовой шиной. Кроме одновременного выполнения нескольких команд допускается перекрытие отдельных этапов выполнения одной команды. Когда одна команда выполняется в операционном устройстве, вторая команда декодируется, а третья считы-вается из памяти. Однако одновременно выполнять можно только последовательные команды по соседним адресам. В случае команды перехода конвейеризация нарушается и приходится выполнять команды, расположенные не последовательно. Когда процессор возвращается к естественному порядку (в соответствии с порядком расположения команд по последовательно возрастающим адресам в памяти) выполнения команд, конвейеризация восстанавливается.
Все восемь общих регистра имеют длину 32 бита и могут оперировать 32-битовыми данными без разделения их на байты. В режимах процессоров 8086 и 286 эти регистры действуют как 16-битовые, причем 16-битовые значения помещаются в младшие части регистров. Для операций с байтами предназначены только четыре верхних регистра, показанные на рис. 16.17, причем байты помещаются в младшие части регистров. Размер регистров приспосабливается к размеру загружаемых в них данных. Флажки также устанавливаются и сбрасываются с учетом размера результата. Если, например, в операции с байтами возник перенос, флажок С устанавливается в единицу.

 

 Поиск и устранение неисправностей в персональных компьютерах