Центральный процессор: различия между версиями

(Центральный процессор - продолжение)
м (Добавлена категория)
 
(не показано 12 промежуточных версий этого же участника)
Строка 1: Строка 1:
Центральный процессор — это крошечная электрическая схема полная переключателей (транзисторов). Процессор выполняет инструкции компьютерной программы, последовательно включая и отключая определенные транзисторы. Результатом выполнения инструкций является обработка цифровых данных в двоичном виде.
Центральный процессор — это главный компонент любого [[Компьютер|компьютера]], необходимый для выполнения инструкций [[Компьютерная программа|компьютерных программ]]. Является компактной электрической схемой, наполненной специальными переключателями — транзисторами. Результатом запрограммированного включения и отключения определенных транзисторов является обработка данных в двоичном виде.


== Объясните простыми словами, пожалуйста ==
== Объясните простыми словами, пожалуйста ==
Представьте себе крошечный город с огромным количеством ветвящихся дорог и шлагбаумов. По этим дорогам бегают вредные электро-человечки и пытаются перекрыть шлагбаумами соседние дороги. Добегая до шлагбаума, они опускают его и держат закрытым, мешая человечкам на другой дороге работать. Как итог все шлагбаумы на соседней улице открываются. Открытые шлагбаумы открывают новые направления и туда бросаются другие человечки. Достигая новых шлагбаумов, они закрывают их, блокируя еще какие-то дороги и так далее. Всё это происходит со скоростью миллиардов блокировок и открытий в секунду.
[[Файл:Schlagbaum im Nebel.jpg|мини|200x200пкс|Грустный транзистор в тумане]]
Представьте себе крошечный город-процессор с огромным количеством ветвящихся дорог и шлагбаумов. Главная особенность каждого шлагбаума-транзистора — стойка находится на одной дороге, но опускающаяся стрела закрывает другую. По дорогам города бегают вредные электроно-человечки и пытаются перекрыть шлагбаумами соседние дороги. Добегая до какого-нибудь шлагбаума, они опускают его и держат закрытым, мешая человечкам на другой дороге работать. Как итог, на соседней улице уже некому держать шлагбаумы и они открываются. Открытые шлагбаумы открывают новые направления и туда бросаются другие человечки. Достигая новых шлагбаумов, они закрывают их, блокируя еще какие-то дороги и так далее. Всё это происходит со скоростью миллиардов блокировок и открытий в секунду.


Звучит как полное безумие. Но здесь скрыт смысл: закрытый или открытый шлагбаум и как следствие наличие или отсутствие тока определяет 2 состояния — включено или выключено: <code>1</code> или <code>0</code>. Когда таких цифр больше или равно 8, этого достаточно для определения одной буквы из слова. Когда их 32 — этого достаточно для записи любого числа от <code>-2147483648</code> и до <code>2147483647</code>, когда миллионы — этого достаточно для неплохой цифровой фотографии, а миллиарды хватает на целый цифровой фильм.
Звучит как полное безумие, но здесь скрыт смысл. Все дороги проложены не случайным образом, а по специальным градостроительным стандартам «Логических операций обработки данных». Но каких данных? Одна дорога может определить один бит [[Информационные технологии|информации]] с двумя значениями: <code>1-полно-человечков</code> или <code>0-пусто</code>. Восемь параллельных дорог называют байтом, этого может быть достаточно для определения одной буквы из слова. А если расположить рядом 32 бита, то можно организовать счет от нуля и до 4х миллиардов.


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


Но как этим электро-микро-человейником управлять. На помощь приходят реальные большие человеки. Большой человек программист заранее определяет какие шлагбаумы будут открыты первоначально, чтобы трафик шел не случайным образом, а в нужном и правильном порядке. Этот порядок определяется программами на складах. А большой человек пользователь может в реальном времени вмешиваться в работу шлагбаумов и открывать и закрывать их, с помощью вспомогательных устройств ввода — клавиатуры, мыши, сенсорного экрана.
А как этим электро-человейником управлять? На помощь приходят реальные большие человеки. Большой человек-программист заранее определяет какие шлагбаумы будут открыты и закрыты, чтобы трафик шел не случайным образом, а в нужном и правильном порядке. Этот порядок будет определен программами на «складах». А большой человек-пользователь может в реальном времени вмешиваться в работу шлагбаумов и открывать-закрывать их, с помощью вспомогательных устройств ввода — клавиатуры, мыши, сенсорного экрана.


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


== А если серьезно ==
== А если серьезно ==


=== Как процессоры производят ===
=== Как процессоры производят ===
Современный центральный процессор — это микрочип. Неразборная, компактная интегральная схема, созданная в виде кристалла на кремниевой подложке в прочном корпусе. Размер одного транзистора внутри процессора может измеряться нанометрами (миллионная часть миллиметра), а их общее количество — миллиардами. Наружу из корпуса чипа выходят контакты электропитания и контакты обмена данными.
[[Файл:200mm Si Wafer.png|мини|200x200пкс|Кремниевая пластина с набором будущих процессоров]]
Современный центральный процессор — это компактная интегральная схема на основе кристалла кремния. На подложке из кремния с помощью нанесения дополнительных материалов и фотолитографии (засвечивания по шаблону) формируется схема из миллиардов полупроводниковых транзисторов. Получившийся микрочип защищают прочным корпусом, из которого выходят контакты электропитания и контакты обмена данными.


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


=== Как проектируют ===
=== Как проектируют ===
Архитектура процессора определяется набором инструкций, которые он может выполнить на аппаратном уровне. Различных архитектур придумано множество, но можно выделить две популярные группы:
Базовая архитектура компьютера фон Неймана, разработанная в 1940-х и реализуемая в большинстве процессоров, дала программистам гибкость и простоту сопровождения оборудования. Это в дальнейшем обеспечило бурное развитие программного обеспечения и популяризацию компьютеров.
[[Файл:X86 vs. ARM.jpg|мини|200x200пкс|x86 слева, ARM справа]]
Архитектура центрального процессора определяется набором инструкций, которые он может выполнить на аппаратном уровне. Различных архитектур придумано множество, но можно выделить две популярные группы:


* ARM (упрощенный набор инструкций или RISC) — распространен в мобильных устройствах. Главный принцип: простые инструкции, но эффективное энергопотребление.
* ARM (упрощенный набор инструкций или RISC) — распространен в мобильных устройствах. Главный принцип: простые инструкции, но эффективное энергопотребление.
Строка 30: Строка 34:


=== Что умеют современные процессоры ===
=== Что умеют современные процессоры ===
Так что же может делать любой, даже самый примитивный процессор:  
[[Файл:Halfadder.gif|мини|200x200пкс|Складывать единицы и нули проще, чем считать на 10 пальцах]]
Самый примитивный процессор может:  


* Читать данные из памяти и записывать данные в память.
* Читать данные из памяти и записывать данные в память.
* Складывать и сравнивать числа.
* Складывать и сравнивать числа.
* Переходить к другому месту в списке инструкций, если выполняется какой-то тест (например, только если одно число больше другого).
* Переходить к другому месту в списке инструкций, если выполняется условие (например, если одно число больше другого).


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


=== Какой процессор лучше? ===
=== Какой процессор лучше? ===
Чем быстрее и энергоэффективнее процессор — тем он лучше.  
Чем быстрее и энергоэффективнее процессор — тем он лучше.  
[[Файл:AMD Bulldozer block diagram (8 core CPU).PNG|мини|200x200пкс|Чем больше ядер, тем быстрее, но требуется больше энергии]]
Скорость работы процессора базово определяется тактовой частотой в герцах (1 GHz гигагерц = миллиард тактов в секунду). Один такт — это один электрический импульс, переключающий транзисторы. Чем больше частота, тем выше скорость переключений, тем быстрее процессор проводит вычисления.


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


* Тактовая частота в мегагерцах или гигагерцах (1 GHz = 1.000.000.000 тактов в секунду). Один такт — это один электрический импульс переключающий транзисторы. Чем больше частота, тем быстрее процессор. Но не всё так просто.
* Более оптимизированная архитектура позволяет выполнять больше инструкций из расчета на каждый такт. Более точно можно оценить скорость процессора в IPS — количестве инструкций, выполняемых за секунду. Или, например, посчитать FLOPS-ы количество операций с плавающей точкой (с нецелыми числами) в секунду.
* Оптимизированная архитектура позволяет выполнять больше инструкций из расчета на каждый такт. Поэтому можно оценить скорость в IPS — количестве инструкций, выполняемых за секунду. Но и тут не всё однозначно
* Увеличение количества ядер. Каждое ядро по сути отдельный мини-процессор. Чем их больше, тем лучше. Но значительно растет энергопотребление.
* Инструкции бывают разные по сложности, за один такт можно выполнить несколько простых инструкций. А сложные выполняются десятки или сотни тактов. Лучше выбрать определенную популярную инструкцию и сравнивать скорость по ней. Например, в FLOPS-ах в количестве операций с плавающей точкой (с нецелыми числами) в секунду.
* Количество потоков обработки данных. В некоторых процессорах каждое ядро может обрабатывать данные параллельно в нескольких потоках.
* Количество ядер. Где каждое ядро по сути отдельный мини-процессор.
* Добавление внутренней кэш памяти. Чем её больше и чем она быстрее, тем лучше.
* Количество потоков обработки данных, очень часто одно ядро может обрабатывать данные в 2 потока.
* Размером внутренней кеш памяти, чем больше, тем лучше.


Из каких частей состоит процессор.
=== Состав процессора ===
[[Файл:Intel 80960JA die.jpg|альт=|мини|200x200пкс|Внутри процессора много всего интересного]]
Из каких частей обычно состоит процессор.


Арифметико-логическое устройство или ALU (Arithmetic logic unit) — выполняет простые математические и логические инструкции.
* Арифметико-логическое устройство или ALU (Arithmetic logic unit) — выполняет простые математические и логические инструкции.
* Регистры — внутренняя максимально быстрая память, куда записываются данные непосредственно для выполнения инструкциями. Туда же могут записываться и результаты выполнения. В регистр команд помещается код инструкции перед её выполнением.
* Устройство управления или CU (Control unit) — выполняет чтение из памяти (fetch), распознование инструкции (decode) и запуск её выполнения (execute).
* Устройство генерации адресов AGU (Address generation unit) — вспомогательный блок, ускоряющий расчет адресов в оперативной памяти для более быстрого доступа к данным.
* Устройство управления памятью MMU (Memory management unit) — управляет безопасным доступом к оперативной памяти, защищая данные одной программы от влияния других программ.
* Кэш память (Cache) — внутренняя дополнительная память процессора, быстрее чем оперативная, но медленнее чем регистры.
* И другие блоки.


Регистры — внутренняя максимально быстрая память, куда записываются данные непосредственно для выполнения инструкциями. Туда же могут записываться и результаты выполнения. В регистр команд помещается код инструкции перед её выполнением.  
=== Недостатки процессоров ===
[[Файл:Application field automotive.jpg|мини|200x200пкс|Без процессоров уже невозможно ни одно современное производство]]
Текущие технологии разработки чипов на основе кремния практически достигли его физических ограничений. Размеры транзисторов не могут быть значительно уменьшены без проявления побочных эффектов. Дальнейшее улучшение производительности в основном идет за счет добавления дополнительных материалов, увеличения количества слоев и оптимизации архитектуры.


Устройство управления или CU (Control unit) выполняет чтение из памяти (fetch), распознование инструкции (decode) и запуск её выполнения (execute).
Базовая архитектура фон Неймана имеет узкие места по организации работы с памятью. Как результат, она плохо решает задачи имитации биологических алгоритмов обработки данных нейросетей.


Устройство генерации адресов AGU (Address generation unit) — вспомогательный блок, ускоряющий расчет адресов в оперативной памяти для более быстрого доступа.
Архитектура x86, заложенная в 1970х годах имеет недостатки, которые невозможно полностью устранить из-за необходимости сохранения обратной совместимости в уже существующих программах.


Устройство управления памятью MMU (Memory management unit) — управляет доступом к памяти
Количество компаний производящих современные чипы в мире ограничено из-за технологической сложности. Поэтому любой сбой поставок влечет дефицит и кризисы на смежных производствах.


Кеш память (Cache) — внутрення память процессора, более быстрая чем оперативная, но медленнее чем регистры.
[[Категория:Информационные технологии]]

Текущая версия от 14:43, 10 декабря 2022

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

Объясните простыми словами, пожалуйстаПравить

 
Грустный транзистор в тумане

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

Звучит как полное безумие, но здесь скрыт смысл. Все дороги проложены не случайным образом, а по специальным градостроительным стандартам «Логических операций обработки данных». Но каких данных? Одна дорога может определить один бит информации с двумя значениями: 1-полно-человечков или 0-пусто. Восемь параллельных дорог называют байтом, этого может быть достаточно для определения одной буквы из слова. А если расположить рядом 32 бита, то можно организовать счет от нуля и до 4х миллиардов.

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

А как этим электро-человейником управлять? На помощь приходят реальные большие человеки. Большой человек-программист заранее определяет какие шлагбаумы будут открыты и закрыты, чтобы трафик шел не случайным образом, а в нужном и правильном порядке. Этот порядок будет определен программами на «складах». А большой человек-пользователь может в реальном времени вмешиваться в работу шлагбаумов и открывать-закрывать их, с помощью вспомогательных устройств ввода — клавиатуры, мыши, сенсорного экрана.

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

А если серьезноПравить

Как процессоры производятПравить

 
Кремниевая пластина с набором будущих процессоров

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

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

Как проектируютПравить

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

 
x86 слева, ARM справа

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

  • ARM (упрощенный набор инструкций или RISC) — распространен в мобильных устройствах. Главный принцип: простые инструкции, но эффективное энергопотребление.
  • x86 (сложный набор инструкций или CISC) — используется в серверах и настольных компьютерах. Умеют выполнять более сложные инструкции "из коробки".

Именно из-за разницы архитектур процессора вы не сможете запустить на смартфоне уже готовую (скомпилированную) программу, предназначенную для настольного компьютера.

Также процессоры различают по разрядности, например, 32-битные или 64-битные. Разрядность определяет длину данных в битах (единицах и нулях), которую процессор может эффективно обрабатывать простыми инструкциями. А еще процессор большей разрядности может эффективнее работать с большими объемами оперативной памяти.

Что умеют современные процессорыПравить

 
Складывать единицы и нули проще, чем считать на 10 пальцах

Самый примитивный процессор может:

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

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

Какой процессор лучше?Править

Чем быстрее и энергоэффективнее процессор — тем он лучше.

 
Чем больше ядер, тем быстрее, но требуется больше энергии

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

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

  • Более оптимизированная архитектура позволяет выполнять больше инструкций из расчета на каждый такт. Более точно можно оценить скорость процессора в IPS — количестве инструкций, выполняемых за секунду. Или, например, посчитать FLOPS-ы — количество операций с плавающей точкой (с нецелыми числами) в секунду.
  • Увеличение количества ядер. Каждое ядро по сути отдельный мини-процессор. Чем их больше, тем лучше. Но значительно растет энергопотребление.
  • Количество потоков обработки данных. В некоторых процессорах каждое ядро может обрабатывать данные параллельно в нескольких потоках.
  • Добавление внутренней кэш памяти. Чем её больше и чем она быстрее, тем лучше.

Состав процессораПравить

 
Внутри процессора много всего интересного

Из каких частей обычно состоит процессор.

  • Арифметико-логическое устройство или ALU (Arithmetic logic unit) — выполняет простые математические и логические инструкции.
  • Регистры — внутренняя максимально быстрая память, куда записываются данные непосредственно для выполнения инструкциями. Туда же могут записываться и результаты выполнения. В регистр команд помещается код инструкции перед её выполнением.
  • Устройство управления или CU (Control unit) — выполняет чтение из памяти (fetch), распознование инструкции (decode) и запуск её выполнения (execute).
  • Устройство генерации адресов AGU (Address generation unit) — вспомогательный блок, ускоряющий расчет адресов в оперативной памяти для более быстрого доступа к данным.
  • Устройство управления памятью MMU (Memory management unit) — управляет безопасным доступом к оперативной памяти, защищая данные одной программы от влияния других программ.
  • Кэш память (Cache) — внутренняя дополнительная память процессора, быстрее чем оперативная, но медленнее чем регистры.
  • И другие блоки.

Недостатки процессоровПравить

Файл:Application field automotive.jpg
Без процессоров уже невозможно ни одно современное производство

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

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

Архитектура x86, заложенная в 1970х годах имеет недостатки, которые невозможно полностью устранить из-за необходимости сохранения обратной совместимости в уже существующих программах.

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