Процессор состоит из транзисторов

Процессор состоит из транзисторов

Практически все знают, что в компьютере главным элементом среди всех «железных» компонентов является центральный процессор. Но круг людей, которые представляют себе, как работает процессор, является весьма ограниченным. Большинство пользователей об этом и понятия не имеют. И даже когда система вдруг начинает «тормозить», многие считают, что это процессор плохо работает, и не придают значения другим факторам. Для полного понимания ситуации рассмотрим некоторые аспекты работы ЦП.

Что такое центральный процессор?

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

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

Из чего состоит процессор?

Если говорить о том, как работает процессор Intel или его конкурент AMD, нужно посмотреть, как устроены эти чипы. Первый микропроцессор (кстати, именно от Intel, модель 4040) появился еще в далеком 1971 году. Он мог выполнять только простейшие операции сложения и вычитания с обработкой всего лишь 4 бит информации, т. е. имел 4-битную архитектуру.

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

Основные характеристики

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

  • количество ядер;
  • число потоков;
  • размер кэша (внутренней памяти);
  • тактовая частота;
  • быстрота шины.

Пока остановимся на тактовой частоте. Не зря процессор называют сердцем компьютера. Как и сердце, он работает в режиме пульсации с определенным количеством тактов в секунду. Тактовая частота измеряется в МГц или в ГГц. Чем она выше, тем больше операций может выполнить устройство.

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

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

Как работает процессор: обработка команд

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

Операционная часть указывает, что должна выполнить в данный момент компьютерная система, операнда определяет то, над чем должен работать именно процессор. Кроме того, ядро процессора может содержать два вычислительных центра (контейнера, потока), которые разделяют выполнение команды на несколько этапов:

  • выработка;
  • дешифрование;
  • выполнение команды;
  • обращение к памяти самого процессора
  • сохранение результата.

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

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

Выполняемые операции

Среди основных функций, возложенных на процессор, в смысле выполняемых команд или инструкций различают три основные задачи:

  • математические действия на основе арифметико-логического устройства;
  • перемещение данных (информации) из одного типа памяти в другой;
  • принятие решения по исполнению команды, и на его основе – выбор переключения на выполнения других наборов команд.

Взаимодействие с памятью (ПЗУ и ОЗУ)

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

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

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

Как проверить, работает ли процессор?

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

Другое дело, когда требуется посмотреть на показатель использования возможностей процессора в определенный момент. Сделать это можно из стандартного «Диспетчера задач» (напротив любого процесса указано, сколько процентов загрузки процессора он дает). Для визуального определения этого параметра можно воспользоваться вкладкой производительности, где отслеживание изменений происходит в режиме реального времени. Расширенные параметры можно увидеть при помощи специальных программ, например, CPU-Z.

Кроме того, можно задействовать несколько ядер процессора, используя для этого конфигурацию системы (msconfig) и дополнительные параметры загрузки.

Возможные проблемы

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

Но на примере функционирования человеческого организма нужно понимать, что в случае остановки сердца умирает весь организм. Так и с компьютерами. Не работает процессор – «умирает» вся компьютерная система.

Megaprocessor — это 16-битный процессор с четырьмя регистрами общего назначения. На отдельных панелях размещены схемы различного назначения, включая память, арифметический блок, ввод/вывод и другие. В системе используется 16-разрядный блок АЛУ и 16-разрядный сумматор. Megaprocessor оснащен 10 000 светодиодов, мигание которых демонстрирует каждый этап процесса вычислений, показывая направление движение данных по схеме. Объем памяти составляет 256 байт. Блок памяти включает 27000 транзисторов. Общее число транзисторов в системе превышает 40 тысяч. Масса процессора — 500 кг. Процессор работает на частоте 20 килогерц.

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

«Компьютеры непрозрачны. Смотря на них, нельзя понять, как они работают. Что я хотел сделать — это забраться внутрь и понять, что происходит. Проблема в том, что это невозможно осуществить с процессорами обычного размера. Но мы можем построить большой процессор своими руками — и тогда будет понятно, что происходит внутри. Для отображения потоков данных стоит добавить еще и светодиоды — что и было сделано», — говорит Джеймс Ньюман. Теперь за работой Megaprocessor можно наблюдать в режиме реального времени, и любой человек может понять, из каких элементов состоит процессор и как работает каждый блок.

Читайте также:  Статусы вк для пацанов со смыслом короткие

Megaprocessor занимает значительную часть гостиной в доме инженера, причиняя ему известные неудобства.

Для демонстрации вычислительных возможностей процессора инженер решил выбрать игру тетрис. Элементы игры отображаются на большом светодиодном табло с разрешением 32*64 светодиода. Во время игры в режиме реального времени видно все, что происходит внутри процессора.

«Ваш компьютер может быть в миллион раз быстрее той системы, что я построил, но она намного привлекательнее… Я не думаю, что смогу когда-нибудь продать свой проект, но мне хочется, чтобы Megaprocessor был представлен в качестве экспоната в музее или образовательном учреждении», — говорит Ньюман.

Megaprocessor состоит из большого числа элементов, которые собираются в блоки. Отдельные блоки размещаются на стендах. Высота стенда — 2 метра. Ширина — от 1,2 до 1,6 метров. На каждом стенде монтируется небольшое количество модулей — от 2 до 4. Стенд служит как местом для размещения модулей, так и их защитой. Каждый модуль выполняет определенный набор функций. Например, есть модуль АЛУ, декодер и другие. Модули составляются из отдельных плат.

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

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

У каждой сервисной платы две функции. Первая — соединение и мониторинг линий питания. Вторая — обеспечение доступа к зажимам питания. Всего в системе 7 стендов.

Megaprocessor разделен на ряд модулей. Вот модуль управляющего автомата:

Чтобы ничего не перепутать, позади тоже есть распечатка всей схемы.

C самого начала я решил, что в проекте будут использоваться печатные платы. Без них создать нечто сложное было бы невозможно, ведь только соединений в системе свыше 100 000. Большинство средств проекта ушло на платы. Изначально мне хотелось сделать большие платы, но это оказалось безумно сложно, поэтому позже я решил разделить все на мелкие платы, что и было сделано. Для проектирования я использовал CadSoft Eagle.

Проверки выполнялись постоянно, на каждом этапе проекта:

Каждая плата тестировалась перед установкой в модуль;
Каждый модуль тестировался по завершению работы над ним;
Каждый стенд тестировался после окончания работ по установке модулей;
После подключения каждого нового стенда тестировалась вся система.

Всего Ньюман потратил около 40000 фунтов стерлингов. По текущему курсу (после референдума о выходе из ЕС курс фунта упал на 30% по отношению к доллару) это $53071.

Стоимость различных элементов конструкции:

Окраска и печать £900

Крепежи, фанера и т.п. £500

Затраты на электронные компоненты:

Чипы (для отладки) £850

«Остальное железо» £1100

Контактные терминалы 7,700

Контакты с пайкой 272,300

Вес припоя 4.25 кг

Вес свинца 2.5 кг

Одножильный провод 1,500 м

20-контактный шлейф 420 м

Общая длина проводников 9.9 км

Платы, использованные в проекте

Транзисторы, установленные неправильно

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

Автор проекта потратил часы на обнаружение проблемы. Часто один и тот же неправильно установленный транзистор он осматривал несколько раз, не замечая его.

Подключение при помощи коннекторов — простая задача. Но если таких соединений около 500, есть высокая вероятность ошибки. И Джеймс ошибался несколько раз.

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

Есть и такой тип соединения, как IDC (Insulation Displacement Connector). Между острыми зубьями продевается кабель, чья изоляция прорезается при вставке, и кабель соединяется с зубьями. Все просто. В одном из случаев «зуб» контакта изогнулся и касался соседнего, замкнув схему. Найти проблему было очень непросто.

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

А вот еще одна частая причина неработающей схемы — недовставлнный кабель, не обеспечивающий должного контакта.

Замыкание на корпус

Здесь две платы, одна из которых работала не так, как нужно. Как оказалось, причина была в том, что Джеймс отверткой повредил плату и её замкнуло на крепеж, а тот — на весь стенд. Заметить такое невооруженным глазом практически невозможно.

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

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

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

А здесь Джеймс по какой-то причине просто забыл припаять контакты. Целый ряд ножек транзисторов оказался «голым», ни к чему не присоединенным. Эту проблему удалось быстро обнаружить и решить.

Это была одна из наиболее серьезных проблем. Тразисторов в схеме много тысяч. И выход только одного транзистора из строя означает нерабочий Megaprocessor. Во избежание проблемы Джеймс проверял каждый транзистор до пайки. Потом — после пайки. Потом — все транзисторы на схеме. И все равно оказывалось, что какие-то платы не работают, и виной тому — дефектный транзистор. Причиной повреждения обычно становился электростатический разряд. Транзисторы типа 2N7000 очень чувствительны к такому типу воздействия.

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

Джеймс Ньюман думал, что транзисторы повреждаются при включении питания некоторых схем. После проверки оказалось, что это не так. И только после многих часов бесплодных попыток найти источник статики он вспомнил, что получал небольшой удар током, касаясь пылесоса. А этим пылесосом он чистил некоторые стенды после их готовности, совершенно забыв о том, какой проблемой может быть пылесос (в частности, чистить платы компьютеров или ноутбуков пылесосом нелья — об этом предупреждают многие производители ПК). В итоге Генри отправился на чистку ковров, стенды очищались уже вручную. И транзисторы прекратили выходить из строя.

Читайте также:  Про какие игры можно снять видео

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

Интервью с Джеймсом Ньюманом

Я не мог просто написать об этом грандиозном проекте, не задав несколько вопросов автору. Джеймс сразу согласился рассказать немного о своем проекте для читателей Geektimes.

Как вам пришла в голову идея создать этот проект?

Это случилось пять лет назад. Идея возникла под влиянием двух факторов. Я проводил эксперименты с транзисторами, для того, чтобы понять в деталях, как они работают. Кроме того, на моей работе коллеги стали обсуждать возможность построения компьютерной системы из дискретных логических схем. И мне захотелось создать компьютер не из отдельных микросхем, а из дискретных транзисторов. Мне захотелось создать систему, внутри которой мог бы уместиться человек, наблюдающий за тем, как все это работает. На что это могло бы быть похоже?

Сколько времени прошло между появлением идеи и началом реализации проекта?

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

А насколько велико расхождение между начальным планом и фактическим сроком реализации проекта?

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

Какие вы можете назвать большие или мелкие проблемы, возникавшие во время работы? Какие из них были критичными?

Главная проблема, которая остановила работу на некоторое время — разработка мультиплексора. Я некоторое время работал над решением вопроса эффекта паразитного диода, который актуален для МОП-тразисторов (Подавляющее большинство приборов по МОП технологии выполняется так, что исток транзистора подключен к полупроводниковой «подложке» структуры. При этом образуется так называемый паразитный диод между истоком и стоком. Избавление от этого диода сопряжено со значительными технологическими трудностями, поэтому с ним научились мириться и даже использовать в схемотехнических решениях. — Прим. ред.). В результате я разработал платы, которые снимали проблему, но они были большего размера, чем я рассчитывал.

Еще одна проблема — сложность создания стоек, их конструкция оказалась слишком сложной. У меня не слишком хорошее пространственное воображение.

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

Если бы вы знали обо всех этих проблемах, стали бы вы работать над проектом?

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

У вас были мысли прекратить работу уже в ходе реализации проекта?

Было несколько случаев, когда мой энтузиазм иссякал, что означало замедление работы. В то же самое время я не позволял себе расслабляться полностью. Каждый день в таких случаях я заставлял себя что-нибудь сделать, неважно, насколько незначительной была эта задача. Я говорил себе: «Слона можно сьесть, нужно лишь откусывать кусочек за кусочком».

Ваш проект стал очень известным. Есть ли коммерческие предложения? Может быть вы уже приняли решение отдать Megaprocessor в какой-нибудь музей или университет?

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

Нужен ли системе какой-либо специальный уход?

Нет, ничего такого не требуется. Нужна лишь осторожность. Особенно это касается статического электричества — небольшой заряд может вывести что-то из строя.

Как вы вводите данные в систему?

Сейчас я использую модифицированную версию «Venom Arcade Stick». Сначала я планировал использовать последовательный интерфейс, позволивший бы использовать ПК. Интерфейс я разработал, изготовил, но еще не тестировал.

Какое энергопотребление у системы?

Я думаю, около 300 Вт. Большая часть уходит на светодиоды.

Ломалось ли что-нибудь в системе уже после готовности Megaprocessor?

Единственная проблема, с которой я столкнулся — это более медленная работа системы, чем изначально планировалось. Как оказаллось, причина в неправильно выбранном номинале подтягивающих резисторов. Нужно было выбрать резисторы номиналом не 10k, а всего 470. Еще одно — это не проблема, а скорее, мое желание. Я хотел бы обеспечить возможность настройки яркости дисплея. Но сейчас об этом уже поздно думать.

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

Очень хороший вопрос. И пугающий. Я думаю, что если не двигать и не трогать электронные компоненты всю систему — все будет хорошо. Но проблема в том, что Megaprocessor размещается в моей гостиной, и мне приходится двигать стенды. Каждый раз, когда я этим занимаюсь, есть вероятность повреждения соединения. Вероятность небольшая. Может быть, 10%. В прошлую субботу я обнаружил неисправность на одной из плат. Случались проблемы при перемещении стендов и раньше. Поэтому я посчитал, что один раз из десяти во время движения стендов возникает неисправность. Если я погружу все в машину и установлю систему в новом доме, уверен, получу несколько неисправностей. Порядка десяти.

У вас есть какие-то задумки по новым проектам?

Первое, что я должен сделать — привести в порядок дом и сад. Они были заброшены на несколько лет. После этого я посмотрю, чем бы еще заняться.

Что вы можете посоветовать людям, которые планируют сделать что-то подобное?

Практический совет: работая над проектом такого масштаба, вы должны иметь четкое представление о том, что вы делаете. Вы должны быть профессионалом в своей области и профессионально относиться к каждому этапу. Разрабатывая что-то, вы должны быть уверены, что все созданные элементы будут совместимы друг с другом на этапе сборки.

Абстрактный совет: начать работу легко, сложно закончить. Почему вы хотите этим заняться? Как только вы начнете что-то делать, вы позже поймете, что это можно сделать лучше, и вы снова начнете выполнять этот этап. И снова, и снова. Два года назад я понял, что если буду все время все переделывать, то ничего не закончу. И я решил останавливаться на этапе с оценкой «неплохо», поскольку этот этап в большинстве случаев соответствует планам. Я знаю, что в проекте много ошибок и много того, что можно было сделать лучше. Но я все же закончил свой проект, и я счастлив.

  • Коротко о главном, 4 июля 2019 в 13:01
  • Александр Ланский
Читайте также:  Программа для взлома вот

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

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

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

Два основных компонента процессора

Устройство управления

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

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

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

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

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

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

19 ноября 2019 – 10 января 2020, Гусев и онлайн, беcплатно

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

Ниже приведена схема полусумматора, у которой два входа и два выхода. 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).

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

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

Частота нынешних процессоров измеряется в ГГц (Гигагерцы). 1 ГГц = 10⁹ Гц — миллиард операций в секунду.

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

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

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

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

  1. LOAD_A 8 . Это команда сохраняет в ОЗУ данные, скажем, . Первые 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).

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

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

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

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

Ссылка на основную публикацию
Adblock detector