Найти в Дзене
Just science

Как работает процессор. Микроархитектура

Мы уже проделали немалый путь к пониманию работы процессора. Начинали мы с самого нижнего уровня абстракции, говорили о транзисторах и логических схемах. После этого переходили к более сложным функциональным блокам. Если вы проделали весь этот путь вместе с каналом, то не забудьте поставить палец вверх, чтобы поддержать эту рубрику! Сегодня мы будем говорить о микроархитектуре процессора. Для начала определим, что это такое. Микроархитектура является связующим звеном между логическими схемами и архитектурой. В рамках нашего повествования микроархитектура - это следующий уровень сложности. Она описывает, как именно в процессоре расположены и соединены друг с другом регистры, АЛУ, схемы конечных состояний, блоки памяти и многое другое, необходимое для реализации архитектуры. У каждой архитектуры, в том числе у многим известной x86, может быть много различных микроархитектур, обеспечивающих разное соотношение производительности, цены и сложности. Все они смогут выполнять одни и те же про

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

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

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

-2

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

-3

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

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

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

-4

Любая микроархитектура обязана обладать блоками хранения. В самом простом случае мы будем иметь: счетчик команд, регистровый файл и память. Так как мы будем рассматривать Гарвардскую (?) микроархитектуру, память данных и память команд у нас будут разделены. Сейчас обговорим, что и для чего нужно.

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

-5

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

-6

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

-7

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

-8

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

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