169
правок
AE (обсуждение | вклад) (Центральный процессор - продолжение) |
AE (обсуждение | вклад) (Центральный процессор - продолжение) |
||
Строка 4: | Строка 4: | ||
Представьте себе крошечный город с огромным количеством ветвящихся дорог и шлагбаумов. По этим дорогам бегают вредные электро-человечки и пытаются перекрыть шлагбаумами соседние дороги. Добегая до шлагбаума, они опускают его и держат закрытым, мешая человечкам на другой дороге работать. Как итог все шлагбаумы на соседней улице открываются. Открытые шлагбаумы открывают новые направления и туда бросаются другие человечки. Достигая новых шлагбаумов, они закрывают их, блокируя еще какие-то дороги и так далее. Всё это происходит со скоростью миллиардов блокировок и открытий в секунду. | Представьте себе крошечный город с огромным количеством ветвящихся дорог и шлагбаумов. По этим дорогам бегают вредные электро-человечки и пытаются перекрыть шлагбаумами соседние дороги. Добегая до шлагбаума, они опускают его и держат закрытым, мешая человечкам на другой дороге работать. Как итог все шлагбаумы на соседней улице открываются. Открытые шлагбаумы открывают новые направления и туда бросаются другие человечки. Достигая новых шлагбаумов, они закрывают их, блокируя еще какие-то дороги и так далее. Всё это происходит со скоростью миллиардов блокировок и открытий в секунду. | ||
Звучит как полное безумие. Но здесь скрыт смысл | Звучит как полное безумие. Но здесь скрыт смысл: закрытый или открытый шлагбаум и как следствие наличие или отсутствие тока определяет 2 состояния — включено или выключено: <code>1</code> или <code>0</code>. Когда таких цифр больше или равно 8, этого достаточно для определения одной буквы из слова. Когда их 32 — этого достаточно для записи любого числа от <code>-2147483648</code> и до <code>2147483647</code>, когда миллионы — этого достаточно для неплохой цифровой фотографии, а миллиарды хватает на целый цифровой фильм. | ||
В современных процессорах очень много шлагбаумов, но их всегда не достаточно. Поэтому требуются дополнительные города-склады: город оперативной памяти, город видеопамяти, город жесткого диска и другие. В эти склады-памяти идут специальные широкие и скоростные трассы от города-процессора. Человечки, бегая по трассам, могут синхронизировать состояния ключевых шлагбаумов в процессоре с | В современных процессорах очень много шлагбаумов, но их всегда не достаточно. Поэтому требуются дополнительные города-склады: город оперативной памяти, город видеопамяти, город жесткого диска и другие. В эти склады-памяти идут специальные широкие и скоростные трассы от города-процессора. Человечки, бегая по трассам, могут синхронизировать состояния ключевых шлагбаумов в процессоре с шлагбаумами на складах и наоборот. Но склады-памяти нужны не только для хранения данных, они могут помогать выводить информацию в реальный мир через вспомогательные устройства вывода — экран монитора, динамик, принтер, сетевой кабель и т.п. | ||
Но как этим электро-микро-человейником управлять. На помощь приходят реальные большие человеки. Большой человек программист заранее определяет какие шлагбаумы будут открыты первоначально, чтобы трафик шел не случайным образом, а в нужном и правильном порядке. Этот порядок определяется программами на складах. А большой человек пользователь может в реальном времени вмешиваться в работу шлагбаумов и открывать и закрывать их, с помощью вспомогательных устройств ввода | Но как этим электро-микро-человейником управлять. На помощь приходят реальные большие человеки. Большой человек программист заранее определяет какие шлагбаумы будут открыты первоначально, чтобы трафик шел не случайным образом, а в нужном и правильном порядке. Этот порядок определяется программами на складах. А большой человек пользователь может в реальном времени вмешиваться в работу шлагбаумов и открывать и закрывать их, с помощью вспомогательных устройств ввода — клавиатуры, мыши, сенсорного экрана. | ||
Пользователи и программисты конечно молодцы, но | Пользователи и программисты конечно молодцы, но главная заслуга здесь у ученых и инженеров, разрабатывающих оптимальные схемы города-процессора. Давайте скажем им спасибо! | ||
== А если серьезно == | == А если серьезно == | ||
=== Как процессоры производят === | |||
Современный центральный процессор — это микрочип. Неразборная, компактная интегральная схема, созданная в виде кристалла на кремниевой подложке в прочном корпусе. Размер одного транзистора внутри процессора может измеряться нанометрами (миллионная часть миллиметра), а их общее количество — миллиардами. Наружу из корпуса чипа выходят контакты электропитания и контакты обмена данными. | |||
Изготовление современных чипов — сложный технологически процесс, всё производство автоматизировано и эффективно его могут выполнять всего несколько международных компаний. | |||
=== Как проектируют === | |||
Архитектура процессора определяется набором инструкций, которые он может выполнить на аппаратном уровне. Различных архитектур придумано множество, но можно выделить две популярные группы: | |||
x86 (сложный набор инструкций или CISC) | * ARM (упрощенный набор инструкций или RISC) — распространен в мобильных устройствах. Главный принцип: простые инструкции, но эффективное энергопотребление. | ||
* x86 (сложный набор инструкций или CISC) — используется в серверах и настольных компьютерах. Умеют выполнять более сложные инструкции "из коробки". | |||
Именно из-за разницы архитектур процессора вы не сможете запустить на смартфоне уже готовую (скомпилированную) программу, предназначенную для настольного компьютера. | |||
Также процессоры различают по разрядности, например, 32-битные или 64-битные. Разрядность определяет длину данных в битах (единицах и нулях), которую процессор может эффективно обрабатывать простыми инструкциями. А еще процессор большей разрядности может эффективнее работать с большими объемами оперативной памяти. | |||
Так что же может делать любой процессор | === Что умеют современные процессоры === | ||
Так что же может делать любой, даже самый примитивный процессор: | |||
Читать данные из памяти и записывать данные в память. | * Читать данные из памяти и записывать данные в память. | ||
* Складывать и сравнивать числа. | |||
* Переходить к другому месту в списке инструкций, если выполняется какой-то тест (например, только если одно число больше другого). | |||
Уже этих инструкций будет достаточно, чтобы выполнить любую сложную программу. Но современные процессоры умеют выполнять сотни других более сложных инструкций для максимальной оптимизации популярных задач, например сжатия данных или шифрования. | |||
=== Какой процессор лучше? === | |||
Чем быстрее и энергоэффективнее процессор — тем он лучше. | |||
Скорость работы процессора определяется: | Скорость работы процессора определяется: | ||
Тактовая частота в мегагерцах или гигагерцах. Один такт | * Тактовая частота в мегагерцах или гигагерцах (1 GHz = 1.000.000.000 тактов в секунду). Один такт — это один электрический импульс переключающий транзисторы. Чем больше частота, тем быстрее процессор. Но не всё так просто. | ||
* Оптимизированная архитектура позволяет выполнять больше инструкций из расчета на каждый такт. Поэтому можно оценить скорость в IPS — количестве инструкций, выполняемых за секунду. Но и тут не всё однозначно | |||
* Инструкции бывают разные по сложности, за один такт можно выполнить несколько простых инструкций. А сложные выполняются десятки или сотни тактов. Лучше выбрать определенную популярную инструкцию и сравнивать скорость по ней. Например, в FLOPS-ах — в количестве операций с плавающей точкой (с нецелыми числами) в секунду. | |||
* Количество ядер. Где каждое ядро по сути отдельный мини-процессор. | |||
* Количество потоков обработки данных, очень часто одно ядро может обрабатывать данные в 2 потока. | |||
* Размером внутренней кеш памяти, чем больше, тем лучше. | |||
Количество ядер. Где каждое ядро по сути отдельный мини-процессор. | |||
Количество потоков обработки данных, очень часто одно ядро может обрабатывать данные в 2 потока. | |||
Размером внутренней кеш памяти, чем больше, тем лучше. | |||
Из каких частей состоит процессор. | Из каких частей состоит процессор. | ||
Арифметико-логическое устройство или ALU (Arithmetic logic unit) | Арифметико-логическое устройство или ALU (Arithmetic logic unit) — выполняет простые математические и логические инструкции. | ||
Регистры | Регистры — внутренняя максимально быстрая память, куда записываются данные непосредственно для выполнения инструкциями. Туда же могут записываться и результаты выполнения. В регистр команд помещается код инструкции перед её выполнением. | ||
Устройство управления или CU (Control unit) | Устройство управления или CU (Control unit) — выполняет чтение из памяти (fetch), распознование инструкции (decode) и запуск её выполнения (execute). | ||
Устройство генерации адресов AGU (Address generation unit) | Устройство генерации адресов AGU (Address generation unit) — вспомогательный блок, ускоряющий расчет адресов в оперативной памяти для более быстрого доступа. | ||
Устройство управления памятью MMU (Memory management unit) | Устройство управления памятью MMU (Memory management unit) — управляет доступом к памяти | ||
Кеш память (Cache) | Кеш память (Cache) — внутрення память процессора, более быстрая чем оперативная, но медленнее чем регистры. |