Что такое тактирование процессора

Обновлено: 16.05.2024

Сразу хочу обратить ваше внимание, что данная статья уже имеет прямое отношение к применению микроконтроллера и ее нельзя назвать иллюстративной. Зато она проще предыдущей.

Давайте продолжим наше знакомство с процессором микроконтроллера, которое мы начали во второй части. Если помните, мы остановились на упрощенной функциональной схеме абстрактного процессора микроконтроллера. В той схема все хорошо и правильно, но увы, она не работоспособна. Как же так?

На самом деле причина очень проста. У нас все составные части процессора работают когда хотят и сколько хотят. А это приводит к конфликтам, гонкам, запрещенным состояниям, что хорошо знакомо разработчикам цифровых схем. Время распространения сигналов с нашей схеме зависит от пути, по которым они проходят.

В результате, у нас может оказаться, что сигнал выбора местоположения результата уже добрался до демультиплексора, а вот результат из АЛУ еще нет. А время формирования результата в АЛУ зависит от выбранной операции. Когда же мы получим результат вполне может оказаться так, что сигнал выбора местоположения результата уже неверен.

Что же делать? Мы должны добавить в наш процессор синхронизацию, которая позволит всем узлам работать согласованно. Давайте еще раз вспомним основные этапы работы процессора

  • Получить из памяти очередную команду
  • Получить требуемые для выполнения команды данные
  • Выполнить команду и сохранить результат
  • Перейти к выполнению следующей команды

Всего 4 этапа, которые будут соответствовать 4 состояниям процессора. Этапы мы будем называть тактами процессора. Все четыре этапа, вместе взятые, образуют машинный цикл . Таким образом, машинный цикл у нас будет состоять из четырех тактов. Иногда это называют фазами работы процессора. Сразу замечу, что это упрощенная модель синхронизации для нашего абстрактного процессора . Теперь нам надо сформировать сигналы управляющие работой узлов процессора и соответствующие этим 4 фазам.

Формирование тактовых и синхронизирующих импульсов. Иллюстрация моя Формирование тактовых и синхронизирующих импульсов. Иллюстрация моя

Все очень просто. Тактовый генератор G формирует импульсы Т на каждый такт работы процессора. Двоичный (2-разрядный, в данном случае) счетчик CT2 вместе с дешифратором DC из тактовых импульсов формируют сигналы состояний процессора, или фаз, F1-F4. Все эти сигналы поступают на узлы процессора и упорядочивают их работу. Вот такую, очень простую, временную диаграмму одного машинного цикла мы получим.

А теперь посмотрим, какие узлы процессора будут работать во время разных фаз.

Работа процессора в фазе F1, получение команды из памяти. Иллюстрация моя Работа процессора в фазе F1, получение команды из памяти. Иллюстрация моя

Работающие, активные, узлы процессора и задействованные сигналы я выделил красным цветом. Адрес команды у нас хранится в регистре PC, а полученная команда в регистре CMD.

Работа процессора в фазе F2, получение операндов. Иллюстрация моя Работа процессора в фазе F2, получение операндов. Иллюстрация моя

Теперь из кода команды мы получаем информацию об операнде (или операндах) и обеспечиваем их подачу на входы АЛУ. Здесь я отметил все возможные комбинации сигналов, так как не указываю, что за команда будет выполняться.

Работа процессора в фазе F3, выполнение команды и сохранение результата. Иллюстрация моя Работа процессора в фазе F3, выполнение команды и сохранение результата. Иллюстрация моя

Теперь процессор готов выполнить команду (АЛУ выполняет заданную операцию) и поместить результат на место. Обратите внимание, шина памяти у нас использовалась и в фазе 1 и в фазе 2 для получения информации. А в фазе 3 мы используем шину памяти для сохранения информации. Таким образом у нас операции с памятью оказываются разнесенными во времени и не мешают друг другу.

Работа процессора в фазе F4, переход к следующей команде. Иллюстрация моя Работа процессора в фазе F4, переход к следующей команде. Иллюстрация моя

Наконец мы можем сформировать адрес команды, которая будет выполняться в следующем машинном цикле. Это не обязательно следующая команда, если мы выполнили команду перехода.

Вот так просто и легко мы навели порядок в работе процессора и смогли избежать хаоса. Конечно, в реальных процессорах все устроено сложнее, но суть именно такова.

Латентность

Но почему предыдущая статья была иллюстративной, а эта уже имеет отношение к практике? Дело в том, что микроконтроллеры обычно применяются для управления какими либо объектами и процессами, а это иногда требует точного соблюдения времени реакции и временных параметров сигналов управления. И вот тут схема тактирования и синхронизации начинает иметь значение.

Давайте забежим немного вперед. Предположим, что у нас один машинный цикл состоит из 4 тактов, как мы и рассматривали. А частота тактовых импульсов равна 4 МГц. Тогда мы получаем, что один такт занимает 250 нс, а один машинный цикл 1 мкс. Пусть нам нужно обрабатывать поступление сигнала на вход микроконтроллера.

Предположим, что наш микроконтроллер считывает состояние входных сигналов во втором такте цикла независимо от того, какую команду он выполняет. А полученные данные доступны только в следующем цикле. Пусть следующая команда анализирует полученные данные, а следующая за ней формирует выходной сигнал, если мы получили сигнал на входе. При этом выходной сигнал формируется на выходе микроконтроллера в третьем такте цикла, если выполняется соответствующая команда.

Через какое время мы сможем выдать выходной сигнал после получения входящего? Два такта, плюс полный цикл, плюс три такта? То есть, 9 тактов, что составляет 2,25 мкс? Ответ неверный. А что, если у нас входящий сигнал появился во время первого такта? Мы получим дополнительный такт задержки, что даст нам уже 2,5 мкс между входящим и выходным сигналами.

А если входящий сигнал появился в третьем такте? Мы получим 1 или 2 такта в цикле, в котором наш сигнал запоздал. Плюс, мы пропустим весь следующий цикл, так как сигнал будет считан только во втором такте и еще не будет доступен. Таким образом, дополнительная задержка составит 5 или 6 тактов. А время нашей реакции на сигнал составит уже 3,25 мкс.

Таким образом, время нашей реакции, в этом очень простом примере, будет колебаться между 2,25 мкс и 3,25 мкс. В некоторых случаях это может быть очень критично . Такие вот неявные, или скрытые, задержки называют латентностью . И избежать их невозможно, но можно учитывать. Причем не спасут и прерывания, о которых мы будем в дальнейшем говорить, там латентность может быть даже больше.

Совершенно не обязательно вам потребуется учитывать схему тактирования вашего микроконтроллера. Но знать о ней необходимо. И необходимо понимать, к чему она может привести и когда ее нужно учитывать.

Заключение

Вот и закончилась наша короткая статья о тактировании и синхронизации. Она была проще, надеюсь, предыдущей. И уже гораздо ближе к практике.

В следующей статье я кратко коснусь понятия микропрограммы, как средства и принципа реализации процессора. Тот процессор, который мы рассматривали в последних двух статьях был построен на жесткой логике. Эта статья будет факультативной, то есть, не обязательной. Но надеюсь, что она все таки будет интересной и полезной (хотя бы для общего развития).

Какие можно привести примеры подобных колебаний? Это могут быть часы с кукушкой, маятник, качели

Как тактировать AVR

и даже круги на воде от камушка, который мы кинули в воду:

Как тактировать AVR

Более подробно про частоту и период можно прочитать в статье Электрические сигналы и их виды.

Так, теперь ближе к делу. Что же такое тактовая частота?

Любая операция МК или его мегакрутого брата-микропроцессора состоит из отдельных элементарных действий, то есть тактов.

Вернемся к нашим баранам), а именно, к тактовой частоте. Допустим, мы имеем МК Tiny 2313, сконфигурированный на работу 8 МегаГерц и который может выполнять при этом 8 миллионов тактов в секунду. Каждая операция процессора состоит из тактов. А когда процессор выполняет нашу программу, записанную во Flash память, он тоже производит определенные операции которые указаны в программе. Граничная частота МК Tiny 2313, как говорит нам Datasheet, довольно высокая и составляет аж целых 20 МГц! Это довольно много по меркам МК

Как тактировать AVR

Правда, это только с применением внешнего кварцевого резонатора.

Кварцевый резонатор, называемый часто просто кварц, может выглядеть по-разному:

Как тактировать AVR

На схемах он обозначается так:

Как тактировать AVR

На кварце часто указана частота, на которой он работает. Ниже на фото мы видим кварц, который работает на частоте 8 МегаГерц (8.000MHz)

Как тактировать AVR

В большинстве случаев стараются указывать частоту на корпусе кварца. Если у вас есть какое-либо ненужное цифровое устройство, вы вполне можете выпаять кварц на нужную частоту прямо оттуда. Но в большинстве случаев в этом нет необходимости, так как новый кварцевый резонатор в радиомагазине стоит порядка 20-30 рублей.

Есть один нюанс, любезно предоставленный нам производителями микроконтроллера. Если нам нужно, чтобы программа выполнялась медленнее в восемь раз, мы можем этого добиться даже не переписывая программу и не выставляя задержки по новой, то есть в 8 раз длиннее. Нам достаточно уменьшить частоту МК в восемь раз и программа будет для нас выполняться медленнее в восемь раз. Забегая вперед, скажу, что сделать это мы можем очень легко, выставив всего одну галочку при программировании фьюз-битов, в бите CKDIV 8. Также легко мы можем отменить все наши изменения.

Как тактировать AVR

Этот способ мы использовали при прошивке МК в прошлой статье.

Существуют 4 варианта, которые применяются для тактирования МК:

Тактирование от внутреннего RC-генератора

Тактирование от внешнего кварца

Потом подсоединить кварц вот по такой схеме:

Как тактировать AVR

Потом при прошивке надо правильно выставить фьюзы. О них мы с вами поговорим в следующих статьях.

На реальных платах можно увидеть примерно вот такие схемы расположения элементов с тактированием от кварца. Здесь изображен МК AVR в корпусе TQFP , конденсаторы в SMD исполнении, скорее всего в корпусе 0805, и кварц.

Как тактировать AVR

А здесь изображен МК в корпусе DIP , два керамических конденсатора, так называемые “желтые капельки”, и кварц.

Как тактировать AVR

Как видно на схеме подключения кварца к МК, номинал нужных нам конденсаторов должен составлять 15-22 пикофарада. Расшифровать номинал таких конденсаторов, можно с помощью этого рисунка:

Как тактировать AVR

Тактирование от внешнего генератора

К тактированию от внешнего генератора прибегают тогда, когда требуется синхронизовать МК с внешними цепями, либо этот МК тактируют какой-либо своей частотой от генератора частоты. Тактирующий сигнал подают на ножку XTAL1:

Как тактировать AVR

Тактирование от RC-цепи

Тактирование от RC-цепочки осуществляется вот по такой схеме:

Как тактировать AVR

Здесь мы берем конденсатор емкостью не менее 22 пФ, а резистор от 10 Ом и до 100 КилоОм. По простой формуле можно с легкостью рассчитать частоту, на которой будет тактироваться наш МК:

Но чтобы получить очень точную частоту тактирования, которая почти не гуляет, надо использовать кварц. Тактирование от кварца важно при создании точных измерительных приборов, электронных часов, устройств сложной и точной автоматики, да и вообще любых устройств, где важна точность и не допустимы малейшие отклонения.

Итак, как мы помним из предыдущей статьи, некоторые ножки имеют двойное назначение, и помимо того, что могут использоваться как порты ввода-вывода, также используются для обеспечения расширения функций МК. Действительно, если МК сконфигурирован для работы от внутреннего RC-генератора, вам достаточно подать на него питание +5 Вольт и землю, и микроконтроллер включится и начнет выполнять программу. Но если вы выпаяли микроконтроллер из какого-либо устройства и он должен был в нем тактироваться от кварца, или по ошибке выставляя биты конфигурации, вы выставили тактирование от кварца, МК перестанет у вас быть виден в программе оболочке, и не сможет выполнять программу, даже если вы подадите на него +5 Вольт и землю.

Что же делать в таком случае? В первую очередь не паниковать) и собрать схему с тактированием от кварца, и тогда мы сделаем видимым наш МК, который вдруг может быть переставать у вас определяться оболочкой программатора и работать в схеме, если вы ошибочно переведете МК в режим тактирования от кварца, путем выставления определенных фьюзов. Об этом мы как-нибудь еще поговорим ;-)

Для функционирования цифровых схем характерен строгий порядок че­ре­дования логических состояний. Он называется тактированием и ис­чис­ляется в (кило-, мега-, гига-) герцах. Так, например, системное вре­мя тактируется частотой в 32 КГц, а ес­ли точнее — 32768 Гц. Почему? От­вет три­ви­аль­ный: в основе работы системных ча­сов лежит использование пят­над­ца­ти­раз­ряд­но­го двоичного счетчика (2 15 ). Если его ин­кре­мен­ти­ро­вать — увеличивать значение на единицу — с частотой 32768 Гц, он будет переполняться еже­се­кун­д­но, что позволит ре­а­ли­зо­вать схему системных часов на типовой логике без особых конструктивных слож­но­с­тей.



Рис 1. Блок-схема кварцевых часов

Тактирование процессора

Еще один пример хрестоматийной частоты, используемой в персональном компьютере — 4,77 МГц. Про­из­во­ди­тель­ность первых процессоров x86 архитектуры ограничивается именно этим параметром. Его значение фор­ми­ру­ет­ся из частоты кварцевого резонатора 14.31818 МГц, которая делится на 3 тактовым генератором процессора и на 4 для получения сигнала цветности 3.58 МГц, необходимого для цветного телевидения. Другими словами, не­слож­ны­ми операциями мы получаем из опорной частоты не только тактирование процессора, но 4/3 под­не­су­щей частоты сиг­на­ла NTSC для формирования изображения на экране дисплея. Хотя даже во времена, когда ком­пью­тер­ные дис­п­леи использовали телевизионные частоты, большинство реализаций видео адаптеров снаб­жа­лись соб­ствен­ны­ми квар­це­вы­ми резонаторами.



Рис 2. Кварцевые резонаторы ("часовой" и опорной частоты) на современной платформе ASUS M2N-MX

При тактовой частоте 4.77 МГц длительность цикла обмена по системной шине 8088 составляет четыре такта по 210 нсек или 840 нсек. Медленные периферийные устройства требуют увеличения длительности цикла обмена, как правило до пяти тактов по 210 нсек, что составляет 1.05 мксек.

Кварцевый резонатор — основа тактирования

Для изготовления кварцевых резонаторов используют природный или искусственно выращенный монокристалл кварца. В силу того, что он обладает анизотропными свойствами, параметры резонатора зависят от плоскости приложения электрического поля относительно ориентации его кристаллографических осей. Благодаря ис­поль­зо­ва­нию различных направлений среза удается добиться нужных, часто весьма противоречивых и мно­го­чис­лен­ных тре­бо­ва­ний, предъявляемых к характеристика кварцевых резонаторов.



Рис 3. Виды колебаний кварцевых элементов: а) сжание/растяжение, б) изгиб, в) кручение по вертикали,
г) кручение по горизонтали, д )сдвиг по контуру, е) сдвиг по толщине

Кристалл кварца демонстрирует как прямой, так и обратный пьезоэлектрический эффект. Прямой пьезоэффект характеризуется тем, что под воздействием механической силы на поверхностях кристалла появляется элек­три­че­ский заряд, пропорциональный приложенной силе. Обратный пьезоэффект сводится к тому, что при­ло­жен­ное к поверхности электрическое напряжение приводит к изменению формы и размера пластины. Возможные виды ме­ха­ни­че­ских колебаний кварцевых элементов представлены на Рис. 3. Чаще всего используют колебания сжатия — растяжения, изгиба, кручения, сдвига по контуру и по толщине. Эти колебания возможны как на основной ре­зо­нан­с­ной частоте кварца, определяемой его геометрическими размерами и видом среза, так и на различных гар­мо­ни­ках, крат­ных этой частоте.

Прямой и обратный пьезоэлектрический эффект используются в кварцевых резонаторах, применяемых в качестве эта­лона частоты. Кварцевый резонатор представляет собой очень тонкую кварцевую пластину, кон­так­ти­ру­ю­щую с дву­мя ме­тал­ли­зи­ро­ван­ными поверхностями. Физический размер и толщина фрагмента квар­це­во­го кри­с­тал­ла влияет на параметр его колебаний, который называется «характеристической частотой» квар­ца. Дру­ги­ми сло­ва­ми, его размер и форма определяют основную частоту колебаний — характеристическая частота об­рат­но про­пор­ци­о­наль­на толщине кристалла.



Рис 4. Эквивалентная схема кварцевого резонатора

Механические колебания кристалла могут быть представлены электрической схемой, эквивалентной по­сле­до­ва­тель­но­му ко­ле­ба­тель­ному контуру, состоящему из низкоомного резистора (R), катушки индуктивности (L) и конденсатора малой емкости (Cs). Конденсатор Cp моделирует паразитную емкость кварцедержателя и монтажа.

«Если быть предельно точным»

Необходимым, но недостаточным условием работоспособности цифровых схем является наличие питающих на­пря­же­ний и тактовых электрических импульсов, задающих порядок выполнения компьютером элементарных опе­ра­ций. Узлы и контроллеры персональной платформы взаимодействуют между собой в рамках, строго заданных тактированием.



Рис 5. Кварцевый резонатор 14.31818 МГц на современной системной плате формирует опорную частоту для генератора тактовых импульсов

Этот процесс делегирован тактовому генератору — специальной микросхеме, которая опираясь на стабильные па­ра­мет­ры кварцевого резонатора формирует сетку частот, обеспечивающих функционирование центрального про­цес­со­ра, оперативной памяти и контроллеров ввода/вывода. Ее часто называют синтезатором частот или ге­не­ра­то­ром так­то­вых импульсов.



Рис 6. Генерируя стабильные импульсы, кварцевый резонатор вырабатывает опорную частоту, из которой тактовый генератор формирует сетку частот, обеспечивающих функционирование компьютера

Так, например, делением частоты 14.31818 МГц на 12, вырабатывается сигнал тактирования системного таймера, равный 1.193 МГц, который, в свою очередь, делит эту частоту на 65536 = 2 16 . В результате вырабатывается час­то­та для генерации временны́х меток DOS Ticks (в переводной литературе — тики системного таймера). Эта частота, равная 18.2 Гц, используется для периодических прерываний от системного таймера.

Это должен знать каждый: как работает процессор, изображение №1

Устройство управления (УУ) помогает процессору контролировать и выполнять инструкции. УУ сообщает компонентам, что именно нужно делать. В соответствии с инструкциями он координирует работу с другими частями компьютера, включая второй основной компонент — арифметико-логическое устройство (АЛУ). Все инструкции вначале поступают именно на устройство управления.

Существует два типа реализации УУ:

  • УУ на жёсткой логике (англ. hardwired control units). Характер работы определяется внутренним электрическим строением — устройством печатной платы или кристалла. Соответственно, модификация такого УУ без физического вмешательства невозможна.
  • УУ с микропрограммным управлением (англ. microprogrammable control units). Может быть запрограммирован для тех или иных целей. Программная часть сохраняется в памяти УУ.

УУ на жёсткой логике быстрее, но УУ с микропрограммным управлением обладает более гибкой функциональностью.

Арифметико-логическое устройство

Это устройство, как ни странно, выполняет все арифметические и логические операции, например сложение, вычитание, логическое ИЛИ и т. п. АЛУ состоит из логических элементов, которые и выполняют эти операции.

Большинство логических элементов имеют два входа и один выход.

Ниже приведена схема полусумматора, у которой два входа и два выхода. A и B здесь являются входами, S — выходом, C — переносом (в старший разряд).

Схема арифметического полусумматора

Хранение информации — регистры и память

Как говорилось ранее, процессор выполняет поступающие на него команды. Команды в большинстве случаев работают с данными, которые могут быть промежуточными, входными или выходными. Все эти данные вместе с инструкциями сохраняются в регистрах и памяти.

Регистры

Регистр — минимальная ячейка памяти данных. Регистры состоят из триггеров (англ. latches/flip-flops). Триггеры, в свою очередь, состоят из логических элементов и могут хранить в себе 1 бит информации.

Триггеры могут быть синхронные и асинхронные. Асинхронные могут менять своё состояние в любой момент, а синхронные только во время положительного/отрицательного перепада на входе синхронизации.

По функциональному назначению триггеры делятся на несколько групп:

  • RS-триггер: сохраняет своё состояние при нулевых уровнях на обоих входах и изменяет его при установке единице на одном из входов (Reset/Set — Сброс/Установка).
  • JK-триггер: идентичен RS-триггеру за исключением того, что при подаче единиц сразу на два входа триггер меняет своё состояние на противоположное (счётный режим).
  • T-триггер: меняет своё состояние на противоположное при каждом такте на его единственном входе.
  • D-триггер: запоминает состояние на входе в момент синхронизации. Асинхронные D-триггеры смысла не имеют.

Для хранения промежуточных данных ОЗУ не подходит, т. к. это замедлит работу процессора. Промежуточные данные отсылаются в регистры по шине. В них могут храниться команды, выходные данные и даже адреса ячеек памяти.

Иллюстрация принципа действия RS-триггера

Память (ОЗУ)

ОЗУ (оперативное запоминающее устройство, англ. RAM) — это большая группа этих самых регистров, соединённых вместе. Память у такого хранилища непостоянная и данные оттуда пропадают при отключении питания. ОЗУ принимает адрес ячейки памяти, в которую нужно поместить данные, сами данные и флаг записи/чтения, который приводит в действие триггеры.

Оперативная память бывает статической и динамической — SRAM и DRAM соответственно. В статической памяти ячейками являются триггеры, а в динамической — конденсаторы. SRAM быстрее, а DRAM дешевле.

Команды (инструкции)

Команды — это фактические действия, которые компьютер должен выполнять. Они бывают нескольких типов:

  • Арифметические: сложение, вычитание, умножение и т. д.
  • Логические: И (логическое умножение/конъюнкция), ИЛИ (логическое суммирование/дизъюнкция), отрицание и т. д.
  • Информационные: move , input , outptut , load и store .
  • Команды перехода: goto , if . goto , call и return .
  • Команда остановки: halt .

На самом деле все арифметические операции в АЛУ могут быть созданы на основе всего двух: сложение и сдвиг. Однако чем больше базовых операций поддерживает АЛУ, тем оно быстрее.

Инструкции предоставляются компьютеру на языке ассемблера или генерируются компилятором высокоуровневых языков.

В процессоре инструкции реализуются на аппаратном уровне. За один такт одноядерный процессор может выполнить одну элементарную (базовую) инструкцию.

Группу инструкций принято называть набором команд (англ. instruction set).

Тактирование процессора

Быстродействие компьютера определяется тактовой частотой его процессора. Тактовая частота — количество тактов (соответственно и исполняемых команд) за секунду.

Чтобы уменьшить время выполнения программы, нужно либо оптимизировать (уменьшить) её, либо увеличить тактовую частоту. У части процессоров есть возможность увеличить частоту (разогнать процессор), однако такие действия физически влияют на процессор и нередко вызывают перегрев и выход из строя.

Выполнение инструкций

Инструкции хранятся в ОЗУ в последовательном порядке. Для гипотетического процессора инструкция состоит из кода операции и адреса памяти/регистра. Внутри управляющего устройства есть два регистра инструкций, в которые загружается код команды и адрес текущей исполняемой команды. Ещё в процессоре есть дополнительные регистры, которые хранят в себе последние 4 бита выполненных инструкций.

Ниже рассмотрен пример набора команд, который суммирует два числа:

  1. LOAD_A 8 . Это команда сохраняет в ОЗУ данные, скажем, <1100 1000> . Первые 4 бита — код операции. Именно он определяет инструкцию. Эти данные помещаются в регистры инструкций УУ. Команда декодируется в инструкцию load_A — поместить данные 1000 (последние 4 бита команды) в регистр A .
  2. LOAD_B 2 . Ситуация, аналогичная прошлой. Здесь помещается число 2 ( 0010 ) в регистр B .
  3. ADD B A . Команда суммирует два числа (точнее прибавляет значение регистра B в регистр A ). УУ сообщает АЛУ, что нужно выполнить операцию суммирования и поместить результат обратно в регистр A .
  4. STORE_A 23 . Сохраняем значение регистра A в ячейку памяти с адресом 23 .

Вот такие операции нужны, чтобы сложить два числа.

Все данные между процессором, регистрами, памятью и I/O-устройствами (устройствами ввода-вывода) передаются по шинам. Чтобы загрузить в память только что обработанные данные, процессор помещает адрес в шину адреса и данные в шину данных. Потом нужно дать разрешение на запись на шине управления.

Иллюстрация работы шины

У процессора есть механизм сохранения инструкций в кэш. Как мы выяснили ранее, за секунду процессор может выполнить миллиарды инструкций. Поэтому если бы каждая инструкция хранилась в ОЗУ, то её изъятие оттуда занимало бы больше времени, чем её обработка. Поэтому для ускорения работы процессор хранит часть инструкций и данных в кэше.

Если данные в кэше и памяти не совпадают, то они помечаются грязными битами (англ. dirty bit).

Поток инструкций

Современные процессоры могут параллельно обрабатывать несколько команд. Пока одна инструкция находится в стадии декодирования, процессор может успеть получить другую инструкцию.

Иллюстрация потока инструкций

Однако такое решение подходит только для тех инструкций, которые не зависят друг от друга.

Если процессор многоядерный, это означает, что фактически в нём находятся несколько отдельных процессоров с некоторыми общими ресурсами, например кэшем.

Читайте также: