Всем привет, это - моя первая статья на дзене. Она станет началом целого цикла статей по внутреннему устройству процессора.
Итак, что же такое процессор? Это устройство, отвечающее за управление всеми остальными модулями компьютера (такими как ОЗУ(оперативная память), ПЗУ(жёсткий или твердотельный диск), видеокарта и т.д) и периферией (мышь, клавиатура, принтер и т.д). То есть, процессор является координатором всех действий, происходящих в компьютере. Помимо этого, в процессоре происходят все вычисления, не связанные с обработкой изображения, выводимого на экран (за это отвечает видеокарта). Из этого делаем вывод - процессор является самым важным устройством в компьютере, ведь теоретически компьютер способен работать и без видеокарты, и без ПЗУ, и без ОЗУ в современном представлении, и без периферии (собственно, так и работали первые компьютеры), но без процессора это невозможно. Потому, давайте начнём изучать его устройство и принципы работы. Но не всё так просто - сначала нужно усвоить базовые понятия, без которых понять работу процессора, да и других устройств компьютера будет очень сложно, если не невозможно.
Для начала нам потребуется понять, что такое системы счисления, какие они бывают и как это связано с работой процессора.
Система счисления - это способ представления чисел при помощи письменных знаков. Проще говоря, это правила, по которым мы записываем числа
Системы счисления могут быть непозиционными и позиционными. В непозиционных системах счисления позиция цифры в числе не меняет смысл этой цифры. То есть, если в числе переставить цифры местами, то они не приобретут новое значение. Примером такой системы счисления могут быть римские цифры:
Куда бы мы не переставили в римском числе, скажем, цифру "L", она всегда будет иметь значение 50. Она никогда не превратится в 500 или 5. В этом и заключается идея непозиционных систем счисления. Преимуществом такого подхода является простота выполнения двух базовых арифметических операций - сложения и вычитания. Согласитесь, дописать к числу несколько символов, а потом большое число одинаковых символов записать одним символом с большим значением - довольно простая задача.
Но когда дело доходит до умножения или деления, начинаются проблемы. Много проблем. Поэтому мир со временем перешёл на позиционные системы счисления. В них цифра, в зависимости от позиции в числе, приобретает разные значения. Самый простой пример такой системы - десятичная, которой мы пользуемся. Согласитесь, если взять цифру "1" в числах 100 и 10, то значения у неё будут разными. В первом случае единица будет обозначать сотню, а во втором - десяток. Всё это из-за того, что цифра стоит в двух разных позициях.
Позиционные системы счисления позволяют выполнять без особых трудностей все базовые арифметические операции. Всё из-за того, что каждая цифра отвечает за конкретный порядок. Например, в числе 123 цифра 3 отвечает за количество единиц, 2 - за количество десятков, а 1 - за количество сотен. В позиционных системах счисления выделяют основание системы счисления - количество цифр в этой системе. Например, система счисления, которой мы обычно пользуемся, называется десятичной, потому что её основание - 10 (в ней 10 цифр от 0 до 9). Любое десятичное число можно разложить подобным образом. Но данное свойство применимо не только к десятично системе счисления, а ко всем позиционным. Возьмём для примера троичною систему счисления. В ней, как видно из названия, есть 3 цифры - 0,1,2. После числа 2 идёт 10, потом 11,12 и 100. Рассмотрим число 201 троичной системы счисления. В нём цифра 1 обозначает количество единиц, но что обозначают 0 и 2? Если после 2 идёт 10, а после 12 - 100, можно понять, что 0 в данном числе обозначает количество троек, а 2 - количество девяток. То есть, разложение числа в троичной системе подобно разложению в десятичной, за исключением лишь того, что вместо десятков - тройки, вместо сотен - девятки. Заметьте, если раскладывать более крупные числа, то можно заметить закономерность - значение каждой цифры в числе можно представить как эту цифру, умноженную на основание системы счисления в некоторой степени. Так, в числе 32451 цифра 3 имеет значение 3 десятка тысяч. Но это значение можно представить как 3, умноженное на 10 в 4 степени. Значение цифры 2 в этом числе представляется как 2, умноженное на 10 в 3 степени. Этим способом можно представлять значение цифр в любом числе в любой системе счисления. Но как показать значение числа? Нужно лишь сложить значения цифр и мы получим представление числа в виде разложения.
Для чего это нужно? Всё просто - таким разложением можно представить целое число любой системы счисления в десятичном виде. Например, число 121 в троичной системе счисления раскладывается как 1*9+2*3+1=16. Для того, чтобы перевести 16 обратно в троичную систему счисления можно использовать обратный метод - смотреть какая ближайшая к 16 (но не больше 16) есть степень тройки, и можно ли её умножить на какое-либо троичное число. Так, 9 - ближайшая к 16 степень тройки, причём 9 не может быть умножено на 2 - значит первая цифра троичной записи числа 16 - 1. Далее вычитаем 9 из 16 и получаем 7. По той же схеме находим, что ближайшая к семи степень тройки - 3, причём тройку можно умножить на 2, получив 6. Значит вторая цифра троичного числа - 2. Вычитаем 6 из 7 и получаем 1. По этому принципу обратно приходим к троичному числу 121. По такой схеме можно переводить любое целое десятичное число в любую систему счисления. Есть и другие способы перевода чисел из одной системы счисления в другую, но сейчас нам нужно лишь осознать, что любое целое число можно записывать в разных системах счисления, и при этом оно не изменит своего значения.
Последнее, о чём хотелось бы упомянуть - основание системы счисления может быть любым, как больше так и меньше десяти. Пример системы счисления, где цифр больше десяти - шестнадцатеричная. В ней 16 цифр - от 0 до 9 и A,B,C,D,E,F. Здесь цифры больше 9 обозначаются буквами. Работа с этой системой счисления и ей подобными поддаётся всем указанным выше правилам.
Итак, для чего нам всё вышесказанное нужно? Дело в том, что процессор и другие устройства компьютера работают с двоичной системе счисления. Дело в том, что двоичная система счисления при использовании компьютеров имеет ряд преимуществ над десятичной. Во-первых она банально проще. Двоичные цифры очень легко представить в виде уровней напряжения тока - отсутствие тока означает 0, а его присутствие означает 1. С десятичными цифрами всё было бы куда сложнее. Во-вторых арифметические операции с двоичными числами проще в силу того, что работа ведётся только с двумя цифрами. Наконец, цифры двоичной системы счисления удобно представлять как операнды для логических операций (об этом поговорим в одной из следующих статей).
Таким образом, осознание принципов работы с системами счислений пусть немного, но приближает нас к пониманию работы процессора. В следующих статьях мы будем говорить уже преимущественно о двоичной и шестнадцатеричной системах счисления.