Файл: Процессор персонального компьютера. Назначение, функции, классификация процессоров.pdf
Добавлен: 01.04.2023
Просмотров: 465
Скачиваний: 2
Введение
Первые компьютеры появились более полувека назад, и до недавнего времени работали с ними только специалисты – программисты, операторы, инженеры. В последние десятилетия же в области вычислительной техники произошли кардинальные изменения. Теперь в роли пользователя может быть любой школьник или домохозяйка, учитель или врач. Компьютеры проникли туда, где до недавнего времени их было сложно представить. Они есть в стиральных машинах, микроволновых печах, детских игрушках. Современные сотовые телефоны, которые еще 20 лет назад были черно-белыми и могли только звонить, сегодня невозможно представить без большого обилия всевозможных функций.
В связи с таким повсеместным распространением компьютеров на первый план выходит проблема понимания того, как он работает. Основой любого персонального компьютера является процессор. Он обрабатывает информацию, производит расчеты, обеспечивает связь человека и ЭВМ. Поэтому, для эффективной работы с компьютером необходимо знать, как процессор устроен, и каковы его возможности.
Хотя различных видов процессоров в современном мире довольно много, однако большинство из них используется в довольно специфических областях, например, крупных серверах или датацентрах. Если рассматривать именно вопрос персональных компьютеров, то все становится существенно проще, однако, тем не менее, в данном вопросе существует множество тонкостей, которые хотелось бы разобрать.
Исходя из этого, можно сказать, что предметом исследования данной курсовой работы являются современные процессоры, используемые в персональных компьютерах, их назначение и функции.
При этом, хотя изначально под персональным компьютером понимались именно компьютеры, стоящие дома, в форм-факторе системного блока, на котором человек мог работать индивидуально (в связи с чем они и получили название «персональных»), в современном мире к ним относят и многие другие форм-факторы – ноутбуки, планшеты, и даже телефоны. Последние, хотя изначально и были предназначены не для общих вычислений, а для конкретной задачи организации связи, в современном мире все больше применяются для более отвлеченных задач, и во многих из них уже вполне могут заменить «взрослый» персональный компьютер.
Кроме этого, следует заметить, что хотя в современных персональных компьютерах можно выделить множество неких чипов, которые с некоторой натяжкой можно назвать «процессорами», начиная от микроконтроллера на клавиатуре, занимающегося отправкой кодов нажатых клавиш до отдельного процессора, расположенного на материнских платах фирмы Intel, и выполняющего код отдельной ОС, и называющегося Intel ME [18], мы будем рассматривать именно основной, центральный процессор, который, как правило, выполняет в персональных компьютерах основной объем работ, связанных с вычислениями.
1 Назначение процессора персонального компьютера
В современных персональных компьютерах процессор, как правило представляет собой интегральную схему, функцией которой является непосредственное произведение вычислений. Процессор обязательно должен присутствовать в любой вычислительной системе, и без него никакая работа по обработке данных производиться не может. В помощь основному, центральному процессору, обычно вводятся дополнительные «сопроцессоры», которые помогают основному процессору в выполнении разнообразных операций (начиная от сопроцессоров на видеокарте, которые выводят изображения на экран, до особого процессора в сотовых телефонах для приема-передачи сигналов).
Как можно понять из вышесказанного, процессор в любой системе является «вычислителем», «счетчиком», устройством, которое обрабатывает данные. Исходя из этого, понятно, что в одиночку процессор существовать не может – эти данные процессору необходимо как-то доставлять, а результаты вычислений необходимо куда-то записывать. Кроме этого, необходимо каким-то образом загрузить в процессор некую инструкцию, как данные обрабатывать, то есть, некую программу действий, чаще всего называемую просто «программой».
Поэтому чаще всего, процессор составляет пусть и центральную, но все же часть более общей «микропроцессорной системы», состоящей кроме непосредственно процессора, еще из нескольких устройств. Как правило, микропроцессорную систему можно представить в виде следующей схемы [3, с. 23]:
Рисунок 1 - Структура базовой микропроцессорной системы
Как видно из рисунка, в микропроцессорной системе можно выделить три шины – шину адреса, шину данных и шину управления. С помощью шины управления процессор координирует работу всех устройств цифровой системы. Шина адреса необходима для выбора определенной ячейки памяти, порта ввода или порта вывода. После выбора определенной ячейки, возможен обмен данными с ней по шине данных.
Шина управления может иметь различную разрядность, в зависимости от числа сигналов управления. Шины адреса и данных также могут иметь различное количество разрядов, но, как правило, их разрядность кратна степеням двойки – 4 бита (например, в первом процессоре Intel 4004),
8 бит (в большинстве процессоров 80-х годов, например, MOS Technology 6502 или Zilog Z80), 16, 32 или 64 бит в современных процессорах Intel, AMD или ARM.
ПЗУ и ОЗУ это два вида памяти, которые можно найти почти в любой микропроцессорной системе. ПЗУ — это постоянная память, которая сохраняется даже при выключении компьютера, в то время как ОЗУ это «оперативная» память, которая при выключении компьютера полностью очищается. В ПЗУ, как правило, записана программа инициализации компьютера, загрузки операционной системы, либо сама операционная система, как, например, в [7].
С помощью портов процессор может связываться с внешними устройствами и посылать им данные (либо получать от них данные). На рисунке они обозначены раздельно, однако чаще всего устройство может как принимать, так и отправлять данные центральному процессору.
Исходя из данного изображения, становится понятно, что процессор является в любом персональном компьютере неким «центральным узлом», ради которого работают все остальные подсистемы. Существует некая память, в которую записывается программа, которую нужно выполнить, а также данные для нее, а также порты для связи с другими устройствами, и (через них) – с внешним миром. Однако все это, в итоге, существует лишь для того, чтобы процессор смог каким-то образом получить данные, преобразовать их, и отдать их обратно, во внешний мир. То есть, процессор – является центральным звеном любого персонального компьютера, который выполняет всю работу по чтению, преобразованию и выводу данных.
2 Основные функции процессора
Исходя из определенной в прошлой главе назначения процессора как основного вычислителя, становится примерно понятно, какие функции он выполняет. Перечислим их ниже:
- Выработка управляющих сигналов, для управления остальными устройствами микропроцессорной системы;
- Общение с различными видами памяти (ОЗУ, ПЗУ) с целью как получения данных (или программы), так и их сохранения;
- Дешифрация кодов команд, полученных из оперативной или постоянной памяти;
- Выполнение полученных из памяти команд. Сюда входит:
- Произведение необходимых вычислений;
- Вычисление необходимых адресов памяти;
- Поддержание правильного состояния регистров;
- Последовательный переход к следующим командам после выполнения предыдущих, либо мгновенный переход по требуемому адресу, если встречается соответствующая команда;
- При возникновении прерывания – переход на программу его обработки.
Как правило, для выполнения данных функций, любой современный процессор (если не учитывать его многоядерности) работает по следующему алгоритму:
- Процессор «смотрит» на значение регистра, указывающего на адрес следующей команды, которую нужно выполнить;
- Он формирует запрос к оперативной памяти, и по данному адресу получает код следующей команды, обновляя значение регистра, чтобы он указывал на следующий адрес;
- Процессор декодирует команду, определяя, что ему нужно делать, и нужно ли получить какие-либо дополнительные параметры;
- Если дополнительные параметры необходимы, то формируются дополнительные запросы к памяти, и соответствующим образом обновляются необходимые регистры;
- Если команда подразумевает какое-либо вычисление, то полученные данные вместе с командой попадают в арифметическо-логическое устройство (АЛУ), где происходит вычисление результата;
- Если команда предполагает, что результат операции необходимо также сохранить в память, то производится еще один запрос к памяти;
- Происходит переход на шаг №1, кроме особой команды «стоп», которая, как правило, останавливает выполнение любой программы процессора;
- Кроме данных семи шагов, процессор постоянно опрашивает сигналы на шине управления, с целью определить возникновение сигналов, которые могут вызвать прерывание выполнения текущей программы. Если такие сигналы присутствуют, то процессор выставляет в регистре, указывающем на адрес текущей выполняемой команды адрес обработчика прерывания, и просто начинает выполнение данного алгоритма, начиная с шага №1.
Как можно видеть, сам алгоритм работы процессора довольно просто объяснить. Однако если взглянуть на современные процессоры Intel, AMD или ARM, можно заметить, что их составные части (транзисторы) имеют размеры в несколько нанометров, а их количество исчисляется миллиардами. Такое огромное количество составных частей совсем не сочетается с тем простым алгоритмом, по которому он должен работать.
Так происходит по нескольким причинам, некоторые из которых мы укажем ниже:
Во-первых, уже начиная с восьмидесятых годов прошлого века человечество накопило огромный объем написанных программ, многие из которых активно использовались. И фирмы, производящие процессоры, даже такие огромные, как Intel, стали понимать, что при выпуске новых процессоров необходимо обеспечить их совместимость со старыми, иначе все программы для них придется писать заново, и новые процессоры просто не будут покупать. Поэтому многие абсолютно ненужные в современных процессорах вещи (например, поддержка реального режима работы с памятью, при котором адресовать можно лишь 1 мегабайт памяти, что в 2019 году просто смешно) приходится реализовывать для совместимости с более старыми моделями компьютеров.
Во-вторых, постепенно росли возможности компьютеров. Из 4- и 8-разрядных они давно превратились в 64-разрядные. Однако если сделать все регистры и команды 64-разрядными, это приведет к огромному и абсолютно ненужному расходу памяти и процессорного времени. Например, если нам нужно вывести на экран 10 чисел, мы вполне можем организовать цикл от 1 до 10, используя один байт памяти (который может принимать значения от 0 до 255), а не тратя на это 8 байт (64 бита). Однако есть и другая сторона – в некоторых случаях, наоборот, 64 разрядов мало. Например, если мы выполняем какой-то параллельный алгоритм, скажем, вычисляем сразу же несколько хешей SHA256 для майнинга криптовалюты, то чем большего размера регистры мы будем иметь, тем больше параллельных действий сможем выполнить. Поэтому, хотя современные процессоры имеют лишь 64 линии для обмена с памятью, они могут выполнять 128-, 256-, а скоро смогут выполнять и 512-битные команды. Необходимость поддержки всех этих команд и режимов означает существенное усложнение блока декодирования команд и арифметическо-логического устройства.
И, наконец, в-третьих, по мере уменьшения размеров транзистора, и, соответственно, увеличения скорости их работы, стало понятно, что существуют некоторые фундаментальные ограничения, и тактовой частоты, большей, чем 4-5 ГГц достичь не удастся. В связи с этим, было принято решение перейти от увеличения скорости к наращиванию количества ядер. В многоядерных же системах появились свои проблемы, например, необходимость осуществлять общий доступ к памяти и устройствам ввода-вывода. Все это также привело к существенному усложнению устройства процессора (как из-за всё большего числа ядер, так и из-за необходимости осуществлять межядерное взаимодействие).
Исходя из этого становится понятно, что несмотря на довольно простой алгоритм работы процессора, все это выливается в довольно большие сложности в реальности. Многих из них можно было бы избежать, заново спроектировав процессор с нуля, однако никто не будет так делать, боясь потерять совместимость с уже выпущенными программами.
3 Структура процессора
Для того, чтобы процессор мог выполнять те функции, которые мы описали в предыдущей главе, он должен иметь следующую (упрощенную) структуру:
Рисунок 2 - Структура базового процессора