Как устроен процессор?
Любой процессор состоит из арифметико-логического устройства, АЛУ (Арифмети́ческо-логи́ческое устро́йство) (Arithmetic and Logic Unit, ALU), устройства управления, УУ (устройство управления) (Control Unit, CU) и системных регистров (System Register). Именно в этой конфигурации строилась знаменитая универсальная механическая вычислительная машина Чарльза Бэббиджа.
АЛУ
Является одним из основных устройств процессора. Оно выполняет одну из первых функций микропроцессора – обработку данных и вычисления. На вход АЛУ подаются данные в двоично-кодированном виде. Слово "двоично-кодированные" означает, что все данные (числа, символы и т.п.) представляются в виде последовательности двоичных цифр – нулей и единиц. АЛУ может оперировать с одним или сразу с двумя двоичными данными, в роли которых, как правило, выступают двоичные числа, и всегда возвращает один результат.
УУ
Устройство управления служит для управления работой компьютерной системы в челом и работой центрального процессора (сопроцессора) в частности. Основная же его задача – дешифрация поступающих в процессор команд и формирование сигнала на выполнение тех или иных операций в арифметико-логическом устройстве. Устройство управления также ответственно за передачу данных в центральном процессоре, между процессором и памятью, процессором и устройствами ввода-вывода, за извлечение или посылку данных по адресной шине и т.п.
Адресация памяти в микропроцессорах
Для осуществления операций с данными в АЛУ необходимо загрузить их в микропроцессор из оперативной памяти. Но для того, чтобы выбрать данные (или, по другому, операнды) из памяти, необходимо обратиться к ним по определенному адресу. Способы задания этого адреса называется адресацией памяти в микропроцессоре.
Системные регистры центрального процессора
Системные регистры (System registers) предназначены для временного хранения операндов (смотри п. D.1.) и результатов вычислений. но не смотря на свое "единое" предназначение, эти устройства различаются по своим функциям. По ним регистры можно разделить на регистры данных, аккумуляторы, адресные и сегментные регистры, регистры стеков, указателями и счетчики команд, регистры флагов (или, как их раньше называли, слово состояния программы, Program Status Word) и прочие.
Регистры данных (Data Register) применяется для хранения промежуточных данных, участвуют в арифметических и логических операциях процессора. Аккумулятор, базовые и индексные регистры также можно использовать в качестве регистров данных. ( см. в разделе "Регистры процессора" ).
Организация кеш-памяти
Необходимость в кэш памяти возникла с ростом производительности микропроцессоров, когда скорость вычисления стала сравнимой со скоростью выборки команд и операндов из оперативной памяти. Кэш-память находится между процессором и оперативной памятью и служит для хранения команд и данных, к которым происходило обращение процессора в предыдущий раз. Поскольку микропроцессор чаще всего обращается к соседним данным (то есть происходит последовательное чтение данных из сегмента кода и данных), то вероятность найти эти данные в кэше высока, и они будут взяты из кэша, а не оперативной памяти. Поскольку кэш-память работает быстрее, чем оперативная, ускоряется скорость работы системы. Кэш память хранит копии последних считанных команд, операндов и других данных.
( так выглядит "шина данных" )
Когда процессор запрашивает информацию, уже находящуюся в кэш-памяти (попадание), обращение к оперативной памяти через шину (цикл шины) не нужно. Когда же процессор запрашивает информацию, отсутствующую в кэш-памяти (промах), информация считывается в кэш-память за один или несколько циклов шины, называемых заполнением строки кэш-памяти. Если процессор, запрашивает запись в область, находящуюся в кэш-памяти, выполняются два действия: обновляется кэш-память и записанные данные передаются в основную память. Эти действия называются сквозной записью. Как правило, запись в память не кэшируется. Это значит, что при кэш промахе при записи в память обновляется только оперативная память.
Прерывания
При работе процессорной системы могут возникать особые случаи, когда процессор вынужден прерывать работу текущей программы и переходить к обработке этого особого случая, более срочного и важного. Причинами прерывания текущей программы может быть:
1) Внешний сигнал по шине управления – маскируемых прерываний и немаскируемого прерывания
2) Аномальная ситуация, сложившаяся при выполнении команды программы и препятствующую ее дальнейшему выполнению
3) Находящаяся в программе команда прерывания
Первая из указанных выше причин относится к аппаратным прерываниям, а две другие – к программным прерываниям. Отметим, что аппаратные прерывания непредсказуемы и могут возникать в любые моменты времени.