Как работает процессор ?

Как работает процессор в компьютере ?

процессор

Когда вы нажимаете какую-нибудь клавишу, то электрический сигнал бежит по проводникам на контроллер клавиатуры. Это ясно любому. Но дальше — самое сложное. Далее, чтобы понять суть процессов, необходимо ввести понятие прерывания. Прерывание – это процесс отправления сигнала процессору, чтобы то приготовился на этот сигнал отреагировать.  Процессор, если этот сигнал принимает, прекращает текущую операцию и возвращается к ней после исполнения прервавшей команды. Прерывания могут исходить от разных устройств или программ: диска, приложения, запущенного в Windows,  клавиатуры с мышью и т.д. Реализация механизма прерываний – неотъемлемая часть архитектуры процессора.



Но вернёмся к нашим баранам. Так вот, нажав на клавишу, мы с клавиатуры посылаем сигнал по одной из 16 линий запроса этого самого прерывания, которые называются «ирками» (IRQ – interrupted request lines). Кстати, семь из них постоянно наблюдают за выделенными для этого механизма составляющими системы, в том числе и клавиатурой (точнее, его контроллером).

Контроллер передаёт сигнал в подсистему под названием контроллер прерываний, который работает как начальник военного штаба, постоянно контролируя процесс вмешательства в работу процессора 256-тью видами возможных прерываний, которые требуют внимания ЦП.

Другие электрические цепочки прерываний следят за шиной ввода-вывода, которая содержит в себе слоты расширения компьютера. Кстати, карты расширения, которые можно ставить в PCI-разъём или PCI-Express-слот могут использовать одну и ту же «ирку», так как запросы на эти карты или от этих слотов будут управляться функцией Plug and Play (о ней чуть позже).

Далее, контроллер прерываний посылает сигнал на один из штырьков, торчащих из основания процессора. Этот штырёк-контакт имеет своё название  — INTR (INterrupT Request) и часто используется для таких вот сигналов прерываний. К слову сказать, есть ещё один контакт на «пузе» процессора, который носит название NMI (NonMaskable Interrupt — немаскируемое прерывание – это высокоуровневое аппаратное прерывание, которое нельзя замаскировать или запретить (например, прерывание по исчезновению питания или по нажатии заветных клавиш Ctrl + Alt + Del); при его возникновении процессор всегда прерывает текущую работу).



Процессор приостанавливает текущую работу, записывая прерванную задачу в некую область оперативной памяти под названием стек. Эта область или адрес памяти потом напомнит процессору, что в очереди на исполнение стоит эта задача.

Центральный процессор проверяет другой штырёк на предмет, какую кнопку вы нажали. Но перед тем, как вы увидите на экране последствие нажатой кнопки или клавиши, процессор проверит раздел памяти под названием таблица дескрипторов прерываний (IDT). Если быть точным, ЦП выдаёт определённые инструкции в одну из ячеек  IDT, которая и ассоциируется с нажатой нами клавишей. Сразу после этого инструкции под названием программа обслуживания прерываний (ISR) только-только сообщает процессору, что же он должен сделать, когда мы эту злополучную клавишу нажимаем. Кстати, вот этот тернистый путь позволяет заменить обычные инструкции (просто отобразить на экране нажатую клавишу) на операции, характерные именно для исполняемой программы (клавиша S в Word это латинская s, а в игре – движение назад или «присесть»).



Итак, ISR закончила свою работу и посылает процессору инструкцию RET (возврат от прерывания). Она и призывает процессор вернуться к отложенной им задаче. ЦП обращается в адрес памяти и продолжает работать с последней инструкцией отложенной задачи.

Вот как работает процессор , когда вы просто набираете одну лишь букву в любом редакторе.

Успехов.

Запись опубликована в рубрике Железяка. Добавьте в закладки постоянную ссылку.

2 комментария на «Как работает процессор ?»

  1. Борис говорит:

    В ноутбуке нет светового индикатора работы процессора , а как увидеть мигание на экране монитора ? извините за такой вопрос , с уважением Борис .

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

пять × 3 =