Anonim

Когда персональные компьютеры были впервые изобретены, их центральный процессор (ЦП) стоял отдельно и имел только одно ядро ​​процессора. Сам процессор был ядром; Идея иметь многоядерный процессор была еще неслыханной. Сегодня нередко можно увидеть компьютеры, телефоны и другие устройства с несколькими ядрами - на самом деле, практически каждый коммерчески доступный компьютер любого типа имеет несколько ядер. Эти ядра находятся в одном и том же процессоре или центральном процессоре.

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

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

Немного истории

До создания процессоров с несколькими ядрами люди и компании, такие как Intel и AMD, пытались создавать компьютеры с несколькими процессорами. Это означало, что нужна материнская плата с более чем одним сокетом процессора. Мало того, что это было дороже из-за физического оборудования, необходимого для другого сокета процессора, но также увеличило время ожидания из-за увеличенного обмена данными, необходимого для связи между двумя процессорами. Материнская плата должна была разделять данные между двумя совершенно разными местами в компьютере, а не просто отправлять все это процессору. Физическое расстояние фактически означает, что процесс медленнее. Размещение этих процессов на одном чипе с несколькими ядрами не только означает, что расстояние меньше, но также означает, что разные ядра могут совместно использовать ресурсы для выполнения особенно тяжелых задач. Например, чипы Intel Pentium II и Pentium III были реализованы в версиях с двумя процессорами на одной материнской плате.

Через некоторое время процессоры должны были стать более мощными, поэтому производители компьютеров придумали концепцию гиперпоточности. Сама концепция пришла от Intel, и она была впервые задумана в 2002 году на серверных процессорах компании Xeon, а затем на настольных процессорах Pentium 4. Гиперпоточность все еще используется сегодня в процессорах, и даже является основным отличием между чипами Intel i5 и i7. В основном он использует тот факт, что в процессоре часто присутствуют неиспользуемые ресурсы, особенно когда задачи не требуют большой вычислительной мощности, которую можно использовать для других программ. Процессор, который использует гиперпоточность, в основном представляет себя операционной системе, как будто он имеет два ядра. Конечно, на самом деле он не имеет двух ядер, однако для двух программ, которые используют половину доступной вычислительной мощности или меньше, может также быть два ядра из-за того факта, что вместе они могут использовать все возможности, которые процессор может предложить. Однако гиперпоточность будет немного медленнее, чем у процессора с двумя ядрами, если не хватает вычислительной мощности, чтобы разделить две программы, использующие это ядро.

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

Multi-процессоры

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

Так почему же компании разработали процессоры с несколькими ядрами? Что ж, потребность в более быстрых процессорах становилась все более очевидной, однако развитие одноядерных процессоров замедлялось. С 1980-х до 2000-х инженеры смогли увеличить скорость обработки с нескольких мегагерц до нескольких гигагерц. Такие компании, как Intel и AMD, сделали это, сократив размер транзисторов, что позволило использовать большее количество транзисторов в том же объеме, что повысило производительность.

Из-за того, что тактовая частота процессора очень сильно зависит от того, сколько транзисторов может уместиться на чипе, когда технология сокращения транзисторов начала замедляться, развитие повышенных скоростей процессора также начало замедляться. Хотя это не то, когда компании впервые узнали о многоядерных процессорах, это когда они начали экспериментировать с многоядерными процессорами в коммерческих целях. Хотя многоядерные процессоры были впервые разработаны в середине 1980-х годов, они были разработаны для крупных корпораций и не были действительно пересмотрены, пока одноядерные технологии не начали замедляться. Первый многоядерный процессор был разработан Rockwell International и представлял собой версию чипа 6501 с двумя процессорами 6502 на одном чипе (более подробная информация доступна здесь, в этой статье в Википедии).

Что делает многоядерный процессор?

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

Использование нескольких ядер также не ограничивается несколькими программами. Например, Google Chrome отображает каждую новую страницу с различным процессом, что означает, что он может использовать преимущества нескольких ядер одновременно. Однако некоторые программы называются однопоточными, что означает, что они написаны не для того, чтобы использовать несколько ядер, и поэтому не могут этого делать. Гиперпоточность снова вступает в игру, что позволяет Chrome отправлять несколько страниц на два «логических ядра» на одном действительном ядре.

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

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

Как работают многоядерные процессоры?

Во-первых, материнская плата и операционная система должны распознавать процессор и наличие нескольких ядер. На старых компьютерах было только одно ядро, поэтому старая операционная система может работать не очень хорошо, если пользователь попытается установить ее на более новый компьютер с несколькими ядрами. Например, Windows 95 не поддерживает гиперпоточность или несколько ядер. Все последние операционные системы поддерживают многоядерные процессоры, в том числе Windows 7, 8, недавно выпущенный 10 и Apple OS X 10.10.

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

Многоядерный процессор

Внутри процессора имеется несколько уровней кэш-памяти, в которых хранятся данные для следующей операции или операций процессора. Эти уровни кеш-памяти гарантируют, что процессору не нужно смотреть слишком далеко, чтобы найти следующий процесс, что экономит много времени. Первый уровень кэш-памяти - кэш-память первого уровня. Если процессор не может найти данные, необходимые для его следующего процесса, в кэше L1, он обращается к кэшу L2. Кэш L2 больше в памяти, но медленнее, чем кэш L1.

Одноядерный процессор

Если процессор не может найти то, что он ищет в кеше L2, он продолжает процесс до уровня L3, а если процессор имеет его, L4. После этого он будет выглядеть в оперативной памяти или в оперативной памяти компьютера.

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

Различные уровни кэширования также используются в многоядерных процессорах. Обычно каждое ядро ​​имеет свой собственный кэш L1, но они совместно используют кэш L2. Это отличается от того, если было несколько процессоров, потому что каждый процессор имеет свой собственный L1, L2 и любой другой кэш уровня. С несколькими одноядерными процессорами совместное использование кэша просто невозможно. Одним из основных преимуществ наличия общего кэша является возможность использовать кеш в полной мере, потому что, если одно ядро ​​не использует кеш, другое может.

В многоядерном процессоре при поиске данных ядро ​​может просматривать свой уникальный кэш L1, а затем разветвляется на общий кэш L2, RAM и, в конечном итоге, на жесткий диск.

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

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

Все о многоядерных процессорах: что это такое, как они работают и откуда они пришли