Какой компонент архитектуры ЦП позволяет процессору получать немедленный доступ к данным
Обновлено: 21.11.2024
Получите полный доступ к PC Hardware in a Nutshell, Second Edition и более чем 60 000 других игр с бесплатной 10-дневной пробной версией O'Reilly.
Есть также прямые онлайн-мероприятия, интерактивный контент, материалы для подготовки к сертификации и многое другое.
Процессор , также называемый микропроцессором или центральным процессором (от Центральный процессор), является мозгом ПК. Он выполняет все общие вычислительные задачи и координирует задачи, выполняемые памятью, видео, дисковым хранилищем и другими компонентами системы. ЦП — это очень сложный чип, который находится непосредственно на материнской плате большинства ПК, но иногда может располагаться на дочерней плате, которая подключается к материнской плате через специальный специальный слот.
Процессор выполняет программы, включая саму операционную систему и пользовательские приложения, которые выполняют полезную работу. С точки зрения процессора программа — это просто группа низкоуровневых инструкций, которые он выполняет более или менее последовательно по мере их получения. Насколько эффективно процессор выполняет инструкции, определяется его внутренней конструкцией, также называемой его архитектурой. Архитектура ЦП в сочетании со скоростью ЦП определяет, насколько быстро ЦП выполняет инструкции различных типов. Внешний дизайн процессора, особенно его внешние интерфейсы, определяет, насколько быстро он передает информацию туда и обратно с внешним кэшем, оперативной памятью, набором микросхем и другими компонентами системы.
Компоненты процессора
Современные процессоры имеют следующие внутренние компоненты:
Ядро ЦП, исполнительный блок обрабатывает инструкции.
Предиктор ветвления пытается угадать, куда программа перейдет (разветвится) следующим образом, позволяя модулю предварительной выборки и декодирования заранее извлекать инструкции и данные, чтобы они были уже доступны, когда ЦП запрашивает их.
Блок с плавающей запятой (FPU) — это специализированный логический блок, оптимизированный для выполнения нецелочисленных вычислений намного быстрее, чем их может выполнять логический блок общего назначения.
Первичный кэш, также называемый кешем уровня 1 или L1 , представляет собой небольшой объем очень быстрой памяти, который позволяет ЦП извлекать данные немедленно, а не ждать, пока ответит более медленная основная память. См. главу 5.
Шинные интерфейсы — это пути, соединяющие процессор с памятью и другими компонентами. Например, современные процессоры подключаются к памяти через выделенную шину, которая называется внешней шиной (FSB) или хост-шиной.
Частота процессора
Часы процессора координируют все операции ЦП и памяти, периодически генерируя опорный сигнал времени, называемый тактовым циклом или тактом . Тактовая частота указывается в мегагерцах (МГц), что указывает на миллионы тактов в секунду, или в гигагерцах (ГГц), что указывает на миллиарды тактов в секунду. Тактовая частота определяет, насколько быстро выполняются инструкции. Некоторым инструкциям требуется один тик, другим - несколько тактов, а некоторые процессоры выполняют несколько инструкций за один тик. Такты на инструкцию зависят от архитектуры процессора, его набора инструкций и конкретной инструкции. Процессоры компьютера со сложным набором инструкций (CISC) используют сложные инструкции. Каждый из них требует много тактов для выполнения, но выполняет много работы. Компьютерные процессоры с сокращенным набором команд (RISC) используют меньшее количество более простых инструкций. Каждый из них занимает несколько тактов, но выполняет относительно небольшую работу.
Эти различия в эффективности означают, что один ЦП нельзя напрямую сравнивать с другим только по тактовой частоте. Например, AMD Athlon с тактовой частотой 1,4 ГГц может быть быстрее, чем Intel Pentium 4 с тактовой частотой 1,7 ГГц, в зависимости от приложения. Сравнение сложное, потому что разные процессоры имеют разные сильные и слабые стороны. Например, процессор Athlon, как правило, быстрее, чем Pentium 4, как в целочисленных операциях, так и в операциях с плавающей запятой (то есть он выполняет больше работы за такт процессора), но Pentium 4 имеет расширенный набор инструкций, Это позволяет запускать оптимизированное программное обеспечение буквально в два раза быстрее, чем Athlon. Единственное безопасное использование прямого сравнения тактовой частоты — в пределах одного семейства. Pentium III с тактовой частотой 1,2 ГГц, например, примерно на 20 % быстрее, чем Pentium III с тактовой частотой 1,0 ГГц, но даже здесь соотношение не является абсолютно линейным. А процессор Pentium III с ядром Tualatin 1,2 ГГц более чем на 20 % быстрее, чем Pentium III с тактовой частотой 1,0 ГГц, использующий старое ядро Coppermine. Кроме того, даже внутри одного семейства процессоры с похожими именами могут существенно различаться внутри.
Архитектура процессора
Тактовые частоты увеличиваются с каждым годом, но законы физики ограничивают скорость работы ЦП. Если бы разработчики зависели только от более высоких тактовых частот для повышения производительности, производительность ЦП упала бы много лет назад. Вместо этого разработчики улучшили внутреннюю архитектуру, а также увеличили тактовые частоты.Современные процессоры работают с тактовой частотой, в 500 раз превышающей тактовую частоту PC/XT 8088, но обеспечивают производительность в 5000 и более раз выше. Вот некоторые важные архитектурные улучшения, которые позволили ЦП с каждым годом становиться быстрее:
Единицы с плавающей запятой (FPU)
Все ЦП хорошо работают с целыми числами, но обработка чисел с плавающей запятой с высокой точностью на ЦП общего назначения требует огромного количества операций. Все современные ЦП включают выделенный FPU, который эффективно обрабатывает операции с плавающей запятой.
Ранним процессорам требовалось пять тактов для обработки инструкции — по одному на загрузку инструкции, ее декодирование, извлечение данных, выполнение инструкции и запись результата. Современные процессоры используют конвейерную обработку , которая выделяет отдельный этап для каждого процесса и позволяет выполнять одну полную инструкцию за такт.
Если один конвейер хорош, то лучше, если их больше. Использование нескольких конвейеров позволяет обрабатывать несколько инструкций параллельно, архитектура называется суперскалярной. Суперскалярный процессор обрабатывает несколько инструкций за тик.
Получите Кратко об оборудовании для ПК, второе издание прямо сейчас с онлайн-обучением O’Reilly.
Члены O’Reilly проходят онлайн-обучение в режиме реального времени, а также получают книги, видео и цифровой контент от более чем 200 издателей.
Наследие более ранних разработок, таких как разностная машина Бэббиджа и перфокартные системы мейнфреймов 1970-х годов, оказывают значительное влияние на современные компьютерные системы. В своей первой статье из этой исторической серии «История компьютеров и современные компьютеры для системных администраторов» я обсудил несколько предшественников современного компьютера и перечислил характеристики, определяющие то, что мы сегодня называем компьютером.
В этой статье я расскажу о центральном процессоре (ЦП), включая его компоненты и функциональные возможности. Многие темы относятся к первой статье, поэтому обязательно прочитайте ее, если вы еще этого не сделали.
Центральный процессор (ЦП)
ЦП современных компьютеров — это воплощение «мельницы» в разностной машине Бэббиджа. Термин центральный процессор возник еще в далекие компьютерные времена, когда в одном массивном корпусе содержалась схема, необходимая для интерпретации программных инструкций машинного уровня и выполнения операций с предоставленными данными. Центральный процессор также завершил всю обработку всех подключенных периферийных устройств. Периферийные устройства включали принтеры, устройства чтения карт и ранние устройства хранения, такие как барабаны и дисководы. Современные периферийные устройства сами обладают значительной вычислительной мощностью и разгружают некоторые задачи обработки с ЦП. Это освобождает ЦП от задач ввода-вывода, так что его мощность применяется к основной задаче под рукой.
Ранние компьютеры имели только один ЦП и могли выполнять только одну задачу за раз.
Сегодня мы сохраняем термин ЦП, но теперь он относится к процессорному пакету на типичной материнской плате. На рис. 1 показан стандартный пакет процессоров Intel.
Рис. 1. Процессор Intel Core i5 (Джуд МакКрени, Wikimedia Commons, CC BY-SA 4.0).
Здесь действительно не на что смотреть, кроме самого пакета процессора. Пакет процессора представляет собой микросхему, содержащую процессор(ы), запечатанную внутри металлического контейнера и установленную на небольшой печатной плате (ПК). Пакет просто вставляется в гнездо ЦП на материнской плате и фиксируется с помощью фиксирующего рычага. Процессорный кулер крепится к корпусу процессора. Существует несколько различных физических разъемов с определенным количеством контактов, поэтому, если вы собираете свои собственные компьютеры, очень важно подобрать правильный корпус, подходящий для разъема материнской платы.
Как работает процессор
Давайте рассмотрим ЦП более подробно. На рис. 2 представлена концептуальная схема гипотетического ЦП, позволяющая упростить визуализацию компонентов. ОЗУ и системные часы заштрихованы, поскольку они не являются частью ЦП и показаны только для ясности. Кроме того, никакие связи между тактовым генератором ЦП и блоком управления и компонентами ЦП не используются. Достаточно сказать, что сигналы от тактового генератора и блока управления являются неотъемлемой частью любого другого компонента.
Рисунок 2. Упрощенная концептуальная схема типичного процессора.
Этот дизайн не выглядит особенно простым, но на самом деле все еще сложнее. Этой цифры достаточно для наших целей, но она не слишком сложная.
Арифметико-логическое устройство
Арифметико-логическое устройство (АЛУ) выполняет арифметические и логические функции, за которые отвечает компьютер. A и B регистры содержат входные данные, а накопитель получает результат операции. Регистр инструкций содержит инструкцию, которую должен выполнить АЛУ.
Например, при добавлении двух чисел одно число помещается в регистр A, а другое — в регистр B. АЛУ выполняет сложение и помещает результат в аккумулятор. Если операция логическая, сравниваемые данные помещаются в регистры ввода. Результат сравнения, 1 или 0, помещается в аккумулятор. Независимо от того, является ли это логической или арифметической операцией, содержимое накопителя затем помещается в ячейку кэша, зарезервированную программой для результата.
Существует еще один тип операций, выполняемых ALU. Результатом является адрес в памяти, который используется для вычисления нового местоположения в памяти, чтобы начать загрузку инструкций. Результат помещается в регистр указателя команд.
Регистр инструкций и указатель
Указатель инструкции указывает место в памяти, содержащее следующую инструкцию, которую должен выполнить ЦП. Когда ЦП завершает выполнение текущей инструкции, следующая инструкция загружается в регистр инструкций из ячейки памяти, на которую указывает указатель инструкции.
После загрузки инструкции в регистр инструкций указатель регистра инструкций увеличивается на один адрес инструкции. Увеличение позволяет ему быть готовым к перемещению следующей инструкции в регистр инструкций.
Кэш
ЦП никогда не обращается напрямую к ОЗУ. Современные процессоры имеют один или несколько уровней кеша. Способность ЦП выполнять вычисления намного быстрее, чем способность ОЗУ передавать данные ЦП. Причины этого выходят за рамки этой статьи, но я расскажу об этом подробнее в следующей статье.
Кэш-память быстрее системной ОЗУ и ближе к ЦП, поскольку находится на кристалле процессора. Кэш обеспечивает хранение данных и инструкции, чтобы ЦП не ждал, пока данные будут извлечены из ОЗУ. Когда центральному процессору нужны данные (а инструкции программы также считаются данными), кэш определяет, имеются ли уже данные, и предоставляет их центральному процессору.
Если запрошенных данных нет в кеше, они извлекаются из ОЗУ и с помощью алгоритмов прогнозирования перемещают больше данных из ОЗУ в кеш. Контроллер кэша анализирует запрошенные данные и пытается предсказать, какие дополнительные данные потребуются из оперативной памяти. Он загружает ожидаемые данные в кеш. Храня некоторые данные ближе к ЦП в кеше, который быстрее, чем ОЗУ, ЦП может оставаться занятым и не тратить циклы на ожидание данных.
Наш простой ЦП имеет три уровня кэша. Уровни 2 и 3 предназначены для прогнозирования того, какие данные и программные инструкции потребуются в следующий раз, для перемещения этих данных из ОЗУ и перемещения их как можно ближе к ЦП, чтобы они были готовы, когда это необходимо. Эти размеры кэша обычно варьируются от 1 МБ до 32 МБ в зависимости от скорости и предполагаемого использования процессора.
Кэш уровня 1 расположен ближе всего к центральному процессору. В нашем процессоре есть два типа кеша L1. L1i — это кэш инструкций, а L1d — кэш данных. Размер кэша уровня 1 обычно составляет от 64 КБ до 512 КБ.
Блок управления памятью
Блок управления памятью (MMU) управляет потоком данных между основной памятью (ОЗУ) и ЦП. Он также обеспечивает защиту памяти, необходимую в многозадачных средах, и преобразование адресов виртуальной памяти в физические адреса.
Часы процессора и блок управления
Все компоненты ЦП должны быть синхронизированы для бесперебойной совместной работы. блок управления выполняет эту функцию со скоростью, определяемой тактовой частотой, и отвечает за управление операциями других блоков с помощью сигналов синхронизации, которые распространяются на ЦП.< /p>
Оперативная память (ОЗУ)
Хотя ОЗУ или основное хранилище показаны на этой и следующей диаграммах, на самом деле они не являются частью ЦП. Его функция заключается в хранении программ и данных, чтобы они были готовы к использованию, когда они потребуются процессору.
Как это работает
ЦП работают по циклу, который управляется блоком управления и синхронизируется с часами ЦП. Этот цикл называется циклом инструкций ЦП и состоит из ряда компонентов выборки/декодирования/выполнения. Инструкция, которая может содержать статические данные или указатели на переменные данные, извлекается и помещается в регистр инструкций.Команда декодируется, и любые данные помещаются в регистры данных A и B. Инструкция выполняется с использованием регистров A и B, а результат помещается в аккумулятор. Затем ЦП увеличивает значение указателя инструкции на длину предыдущего и начинает заново.
Базовый цикл инструкций ЦП выглядит следующим образом.
Рисунок 3. Базовый цикл инструкций ЦП.
Потребность в скорости
Хотя базовый ЦП работает хорошо, ЦП, работающие в этом простом цикле, можно использовать еще эффективнее. Существует несколько стратегий повышения производительности ЦП, и здесь мы рассмотрим две из них.
Ускорение цикла инструкций
Одной из проблем, с которой столкнулись первые разработчики ЦП, была трата времени на различные компоненты ЦП. Одной из первых стратегий повышения производительности ЦП было перекрытие частей цикла инструкций ЦП для более полного использования различных частей ЦП.
Например, когда текущая инструкция декодирована, следующая извлекается и помещается в регистр инструкций. Как только это произошло, указатель инструкции обновляется адресом памяти следующей инструкции. Использование перекрывающихся циклов команд показано на рисунке 4.
Рисунок 4. Цикл инструкций ЦП с перекрытием.
Этот дизайн выглядит красиво и плавно, но такие факторы, как ожидание ввода-вывода, могут нарушить поток. Отсутствие правильных данных или инструкций в кэше требует, чтобы MMU находил правильные данные и перемещал их в ЦП, а это может занять некоторое время. Для выполнения некоторых инструкций также требуется больше циклов ЦП, чем для других, что мешает плавному перекрытию.
Тем не менее, это мощная стратегия повышения производительности ЦП.
Гиперпоточность
Еще одна стратегия повышения производительности ЦП — гиперпоточность. Гиперпоточность заставляет одно ядро процессора работать как два процессора, предоставляя два потока данных и инструкций. Добавление второго указателя инструкций и регистра инструкций к нашему гипотетическому ЦП, как показано на рис. 5, заставляет его функционировать как два ЦП, выполняя два отдельных потока инструкций в течение каждого командного цикла. Кроме того, когда один поток выполнения останавливается в ожидании данных (опять же, инструкции также являются данными), второй поток выполнения продолжает обработку. Каждое ядро, реализующее гиперпоточность, эквивалентно двум ЦП по способности обрабатывать инструкции.
Рис. 5. Концептуальная схема ЦП с технологией Hyper-Threading.
Помните, что это очень упрощенная схема и объяснение нашего гипотетического процессора. Реальность гораздо сложнее.
Дополнительная терминология
Я столкнулся с множеством различных терминов ЦП. Чтобы более точно определить терминологию, давайте рассмотрим сам ЦП с помощью команды lscpu.
Процессор Intel, показанный выше, представляет собой корпус, который подключается к одному разъему на материнской плате. Пакет процессора содержит шесть ядер. Каждое ядро поддерживает гиперпоточность, поэтому каждое из них может одновременно запускать два потока, что в сумме дает 12 ЦП.
- Ядро. Ядро — это наименьшая единица физического оборудования, способная выполнять задачу обработки. Он содержит одно АЛУ и один или два набора вспомогательных регистров. Второй набор регистров и поддерживающих схем обеспечивает гиперпоточность. Одно или несколько ядер можно объединить в один физический пакет.
- ЦП. Логический аппаратный блок, способный обрабатывать один поток выполнения. Современное использование термина центральный процессор относится к общему количеству потоков, которые процессорный пакет может выполнять одновременно. Одноядерный процессор, не поддерживающий гиперпоточность, эквивалентен одному процессору. В этом случае ЦП и ядро являются синонимами. Процессор Hyper-Threading с одним ядром является функциональным эквивалентом двух процессоров. Процессор с поддержкой технологии Hyper-Threading с восемью ядрами функционально эквивалентен 16 процессорам.
- Пакет – физический компонент, содержащий одно или несколько ядер, как показано на рис. 1 выше.
- Процессор. 1) Устройство, которое обрабатывает инструкции программы для обработки данных. 2) Часто используется как синоним пакета.
- Сокет. Иногда используется как синоним пакета, но более точно относится к физическому сокету на материнской плате, в который вставляется корпус процессора.
Термины сокет, процессор и пакет часто используются взаимозаменяемо, что может вызвать некоторую путаницу. Как видно из приведенных выше результатов команды lscpu, Intel предоставляет нам собственную терминологию, и я считаю ее авторитетным источником. На самом деле мы все используем эти термины по-разному, но если мы понимаем друг друга в любой момент времени, это действительно важно.
Обратите внимание, что указанный выше процессор имеет два кэша уровня 1 по 512 КиБ каждый: один для инструкций (L1i) и один для данных (L1d). Кэш уровня 1 находится ближе всего к ЦП, и он ускоряет работу, разделяя инструкции и данные на этом этапе. Кэши уровня 2 и уровня 3 больше, но инструкции и данные сосуществуют в каждом из них.
Что все это значит?
Хороший вопрос. На заре мейнфреймов каждый компьютер имел только один ЦП и не мог одновременно запускать более одной программы. Мейнфрейм может выполнять расчет заработной платы, затем учет запасов, затем выставление счетов клиентам и т. д., но одновременно может выполняться только одно приложение. Каждая программа должна была завершиться, прежде чем системный оператор мог запустить следующую.
В некоторых ранних попытках одновременного запуска нескольких программ применялся простой подход, направленный на более эффективное использование одного процессора. Например, программа1 и программа2 были загружены, а программа1 выполнялась до тех пор, пока не была заблокирована в ожидании ввода-вывода. В этот момент программа2 работала до тех пор, пока не была заблокирована. Такой подход назывался многопроцессорной обработкой и позволял полностью использовать ценное компьютерное время.
Все ранние попытки многозадачности включали очень быстрое переключение контекста выполнения одного ЦП между потоками выполнения нескольких задач. Эта практика не является настоящей многозадачностью, как мы ее понимаем, потому что в действительности одновременно обрабатывается только один поток выполнения. Правильнее будет назвать это разделением времени.
Все современные компьютеры, от смарт-часов и планшетов до суперкомпьютеров, поддерживают настоящую многозадачность с несколькими процессорами. Наличие нескольких процессоров позволяет компьютерам выполнять множество задач одновременно. Каждый ЦП выполняет свои функции одновременно со всеми остальными ЦП. Восьмиъядерный процессор с технологией Hyper-Threading (т. е. 16 ЦП) может одновременно выполнять 16 задач.
Заключительные мысли
Мы рассмотрели концептуальный и упрощенный ЦП, чтобы немного узнать о структурах. В этой статье я лишь поверхностно коснулся функциональности процессора. Вы можете узнать больше, воспользовавшись встроенными ссылками на изученные нами темы.
Помните, что схемы и описания в этой статье носят чисто концептуальный характер и не представляют реальный ЦП.
В следующей части этой серии статей я рассмотрю оперативную память и дисковые накопители как разные типы хранилищ и поясню, почему каждый из них необходим современным компьютерам.
Центральный процессор (ЦП) направляет компьютер на различные этапы решения проблемы.
Связанные термины:
Скачать в формате PDF
Об этой странице
Адаптация и оценка симплексного алгоритма для архитектуры потока данных
Урош Чибей, Юрий Михелич, Достижения в области компьютеров, 2017
2.2 Вид программиста
Чтобы программист мог разработать законченную программу, необходимо написать три компонента.
обычно написанный на языке программирования C, код ЦП управляет выполнением и использует DFE в качестве блока обработки, вызывая подходящие функции, предоставляемые компилятором Maxeler.
Каждое ядро реализует определенную функциональность и примерно соответствует абстракции функции. Он имеет набор входных потоков и набор выходных потоков.
Менеджер — это компонент, который соединяет потоки данных от ЦП к ядрам-получателям и наоборот. Он устанавливает соединения между ядрами и LMem, а также связывает ядра между собой. Диспетчер также создает интерфейсы, с помощью которых код ЦП взаимодействует с DFE.
Диспетчер и ядра написаны на предметно-ориентированном языке MaxJ. Этот язык представляет собой надмножество языка программирования Java с несколькими расширениями, более подходящими для упрощения создания программ потока данных.
Компилятор преобразует описание ядер в граф потока данных, и этот граф физически размещается на микросхеме FPGA серверной частью. Серверная часть обычно очень требовательна к вычислительным ресурсам, поскольку необходимо учитывать множество структурных ограничений.
Схема этой архитектуры представлена на рис. 1.
Рис. 1 . Схематический обзор компонентов системы потока данных.серая рамка обозначает микросхему FPGA. Взгляд программиста на архитектуру показан в виде файлов, которые необходимо реализовать для каждой программы, файл .maxj написан на языке MaxJ, тогда как поток управления обычно написан на C или C++, но поддерживаются и другие языки. .
КОМПЬЮТЕРНЫЙ ДИЗАЙН
Доминик Росато, Дональд Росато, Дизайн изделий из пластмассы, 2003 г.
Центральный процессор
Центральный процессор компьютера (ЦП) — это часть компьютера, которая извлекает и выполняет инструкции. Процессор, по сути, является мозгом CAD-системы. Он состоит из арифметико-логического блока (АЛУ), блока управления и различных регистров. Центральный процессор часто называют просто процессором. АЛУ выполняет арифметические операции, логические операции и связанные с ними операции в соответствии с инструкциями программы.
Блок управления управляет всеми операциями ЦП, включая операции АЛУ, перемещение данных внутри ЦП, а также обмен данными и управляющими сигналами через внешние интерфейсы (системную шину). Регистры — это быстродействующие блоки внутренней памяти ЦП. Некоторые регистры видны пользователю; то есть доступный для программиста через набор машинных инструкций. Другие регистры предназначены исключительно для ЦП в целях управления. Внутренние часы синхронизируют все компоненты ЦП. Тактовая частота (количество тактовых импульсов в секунду) измеряется в мегагерцах (МГц) или миллионах тактовых импульсов в секунду. Тактовая частота, по сути, определяет, насколько быстро ЦП обрабатывает инструкции.
Оборудование
Центральный процессор управляет всем. Он извлекает программные инструкции по своей шине «на стороне инструкций» (IS), считывает данные по своей шине «на стороне данных» (DS), выполняет инструкции и записывает результаты на шину DS. ЦП может работать на частоте SYSCLK до 80 МГц, что означает, что он может выполнять одну инструкцию каждые 12,5 нс. ЦП способен умножать 32-битное целое число на 16-битное целое число за один цикл или 32-битное целое число на 32-битное целое число за два цикла. Блока с плавающей запятой (FPU) нет, поэтому вычисления с плавающей запятой выполняются программными алгоритмами, что делает операции с плавающей запятой намного медленнее, чем вычисления с целыми числами.
ЦП представляет собой ядро микропроцессора MIPS32® M4K®, лицензированное компанией Imagination Technologies. ЦП работает при напряжении 1,8 В (обеспечиваемом стабилизатором напряжения, встроенным в PIC32, поскольку он используется на плате NU32). Контроллер прерываний, обсуждаемый ниже, может уведомлять ЦП о внешних событиях.
Встроенные процессоры
Внутренние шины ЦП
Шины ЦП — это механизмы, соединяющие другие компоненты ЦП: АЛУ, ЦП и регистры (см. рис. 4-22). Шины — это просто провода, которые соединяют между собой различные другие компоненты ЦП. Провод каждой шины обычно делится на логические функции, такие как данные (которые переносят данные в двух направлениях между регистрами и АЛУ), адрес (который переносит расположение регистров, содержащих данные для передачи), управление (переносит управление информацию о сигналах, такую как временные и управляющие сигналы, между регистрами, ALU и CU) и т. д.
Рисунок 4-22. Ядро и шины PowerPC. [15]
В ядре PowerPC есть управляющая шина, по которой управляющие сигналы передаются между АЛУ, CU и регистрами. То, что PowerPC называет «исходными шинами», — это шины данных, передающие данные между регистрами и АЛУ. Существует дополнительная шина, называемая обратной записью, которая предназначена для обратной записи данных, полученных с исходной шины, непосредственно обратно из модуля загрузки/сохранения в фиксированные регистры или регистры с плавающей запятой.
Примечание. Во избежание дублирования автобусы будут более подробно обсуждаться в главе 7 .
Микрокомпьютерная аппаратура и управление
Чтение/запись памяти
ЦП всегда контролирует направление потока данных в БД, поскольку, хотя он и является двунаправленным, данные могут перемещаться только в одном направлении за раз. ЦП выдает специальный сигнал управления чтением/записью (R/W) (рис. 3.2), который активирует схемы в памяти, определяющие направление потока данных. Например, когда на линии чтения/записи (R/W) высокий уровень, ЦП передает информацию из ячейки памяти в ЦП.
Временная диаграмма операции чтения из памяти показана на рис. 3.3.
Рис. 3.3. Время чтения/записи.
Предположим, что компьютеру была дана инструкция прочитать данные из ячейки памяти номер 10. Чтобы выполнить операцию чтения, ЦП переводит линию чтения/записи в высокий уровень, чтобы активировать схему памяти при подготовке к операции чтения.Практически одновременно на АБ размещается адрес для местоположения 10 («адрес действителен» на рис. 3.3). В память АБ отправляется число 10 в 16-битном двоичном коде (0000 0000 0000 1010). Двоичные электрические сигналы, соответствующие 10, управляют определенными цепями в памяти, чтобы заставить двоичные данные в этом месте быть помещенными в БД. ЦП имеет внутренний регистр, который активируется во время этой операции чтения для приема и сохранения данных. Затем данные обрабатываются ЦП во время следующего цикла работы в соответствии с соответствующей инструкцией.
Аналогичная операция выполняется всякий раз, когда ЦП должен отправить данные из одного из своих внутренних регистров в память, что является операцией «записи». В этом случае линия R/W будет установлена на логический уровень, противоположный операции чтения (т.е. низкий в данном примере). Во время операции записи отправляемые данные помещаются в БД одновременно с адресом назначения в АВ. Эта операция перенесет данные из источника ЦП в место назначения, которым может быть место в памяти в ОЗУ или внешнее устройство (как будет объяснено позже).
Компьютерные системы
1.3.1 Работа системы
ЦП управляет передачей системных данных по шинам данных и адреса и дополнительным линиям управления. Требуется схема часов, обычно содержащая кварцевый генератор (как в цифровых часах); это создает точный сигнал фиксированной частоты, который управляет микропроцессором. Операции ЦП запускаются по переднему и заднему фронтам тактового сигнала, что позволяет определить их точную синхронизацию. Это позволяет событиям в ЦП выполняться в правильной последовательности с достаточным временем для каждого шага. Центральный процессор генерирует все основные управляющие сигналы на основе часов. Тот или иной ЦП можно использовать в различных системах, в зависимости от типа приложения, необходимого объема памяти, требований к вводу-выводу и т. д.
Декодер адреса управляет доступом к памяти и регистрам ввода-вывода для конкретного проекта. Как правило, программируемое логическое устройство (PLD) используется для выделения каждой микросхеме памяти определенного диапазона адресов. Код входного адреса в определенном диапазоне генерирует выходной сигнал выбора микросхемы, который включает это устройство. Регистры портов ввода-вывода, которые настроены для обработки передачи данных в систему и из нее, также получают определенные адреса с помощью того же механизма, и ЦП обращается к ним так же, как к ячейкам памяти. Назначение адресов конкретным периферийным устройствам называется картой памяти (рис. 1.6 б).
Процессор
ХАРВИ М. ДЕЙТЕЛЬ, БАРБАРА ДЕЙТЕЛЬ, Введение в обработку информации, 1986 г.
Сводка издателя
Центральный процессор (ЦП) направляет компьютер на различные этапы решения проблемы. Данные поступают в компьютер через блок ввода, обрабатываются центральным процессором и затем становятся доступными для пользователя через блок вывода. Логический вид компьютера показывает, какие функции выполняет компьютер. Физический вид компьютера показывает, как на самом деле механизмы компьютера выполняют эти функции. Центральный процессор состоит из трех логических блоков: арифметико-логического блока (ALU), основного хранилища и блока управления. Основная память сохраняет активные программы и данные. Это относительно дорого, поэтому вторичное хранилище используется для хранения программ и данных до тех пор, пока они не потребуются в основном хранилище. Набор встроенных операций компьютера называется его «набором инструкций». Компьютерная программа представляет собой набор инструкций, которые сообщают компьютеру, как решить конкретную задачу. Компьютерная программа должна находиться в оперативной памяти, чтобы компьютер мог выполнять ее инструкции.
Управление энергопотреблением
5.15.2.4.2.1 Блок процессора
Это центральный процессор (ЦП) ПЛК, то есть микропроцессор по конструкции и функциональным возможностям. Основная функция этого блока состоит в том, чтобы воспринимать входные значения через свои модули ввода/вывода, генерировать управляющие сигналы в соответствии с входными сигналами и предопределенной инструкцией (хранящейся в блоке памяти в виде программы). Затем обработанное решение передается на устройства вывода, подключенные к модулям ввода/вывода, для обновления выходных переменных [51]. Типичный цикл процесса ЦП показан на рис. 40, демонстрирующем основную идею функции процесса. Время одного цикла выполнения программы называется «время сканирования». Типичные значения времени сканирования могут составлять всего 1 м/с. Входные и выходные значения обычно хранятся в единице памяти за цикл или несколько его кратных [53] .
Рис. 40 . Рабочий цикл центрального процессора (ЦП) программируемого логического контроллера (ПЛК).
Беспроводная МЭМС для носимых сенсорных сетей
5.2.2.2 Блок обработки
Рабочие процедуры промышленной системы управления
(1) адресные пространства PCI
ЦП и все устройства PCI должны иметь доступ к общей памяти. Драйверы устройств управляют устройствами PCI и передают информацию между ними, используя эту память. Обычно эта разделяемая память содержит регистры управления и состояния устройства, которые используются для управления устройством и чтения его состояния. Например, драйвер устройства PCI SCSI может прочитать свой регистр состояния, чтобы узнать, готово ли устройство к записи блока информации, или он может записать в управляющий регистр, чтобы запустить устройство после его включения.
Системная память ЦП может использоваться для этой общей памяти, но в этом случае каждый раз, когда устройство PCI обращается к памяти, ЦП должен будет останавливаться, ожидая завершения. Доступ к памяти обычно ограничивается одним системным компонентом за раз. Это замедлит работу системы. Это не позволяет периферийным устройствам системы бесконтрольно обращаться к основной памяти. Это было бы очень опасно; неисправное устройство может сделать систему очень нестабильной.
Периферийные устройства имеют собственные области памяти. ЦП может получить доступ к этим пространствам, но доступ устройств к системной памяти очень строго контролируется с помощью каналов DMA (прямой доступ к памяти). Устройства ISA имеют доступ к двум адресным пространствам; ISA I/O (ввод/вывод) и память ISA. В большинстве современных микропроцессоров PCI должен состоять из трех элементов: ввода-вывода PCI, памяти PCI и пространства конфигурации PCI.
Некоторые микропроцессоры, например процессор Alpha AXP, не имеют естественного доступа к адресным пространствам, отличным от системного адресного пространства. Этот процессор использует наборы микросхем поддержки для доступа к другим адресным пространствам, таким как пространство конфигурации PCI, с помощью схемы разреженного отображения адресов, которая крадет часть большого виртуального адресного пространства и сопоставляет его с адресными пространствами PCI.
Принципы параллельных и распределенных вычислений
Раджкумар Буйя, . С. Тамараи Селви, в Mastering Cloud Computing, 2013 г.
2.3.2.1 Системы с одной командой и одними данными (SISD)
Вычислительная система SISD — это однопроцессорная машина, способная выполнять одну инструкцию, которая работает с одним потоком данных (см. рис. 2.2). В SISD машинные инструкции обрабатываются последовательно; поэтому компьютеры, использующие эту модель, обычно называют последовательными компьютерами. Большинство обычных компьютеров построены с использованием модели SISD. Все инструкции и данные, подлежащие обработке, должны храниться в основной памяти. Скорость элемента обработки в модели SISD ограничена скоростью, с которой компьютер может передавать информацию внутри себя. Основными репрезентативными системами SISD являются IBM PC, Macintosh и рабочие станции.
Рисунок 2.2. Архитектура с одной инструкцией и одними данными (SISD).
Фон
Майкл МакКул, . Джеймс Рейндерс, Структурированное параллельное программирование, 2012 г.
2.4.3 Характеристика Флинна
Один из способов грубо охарактеризовать параллелизм, доступный в типах процессоров, — это то, как они сочетают поток управления и управление данными. Классическая категоризация Флинна [Fly72] делит параллельные процессоры на категории в зависимости от того, имеют ли они несколько потоков управления, несколько потоков данных или и то, и другое.
Одна инструкция, одни данные (SISD): это просто стандартный непараллельный процессор. Обычно мы называем это скалярным процессором. В соответствии с законом Амдала (обсуждаемым в разделе 2.5.4) производительность скалярной обработки важна; если он медленный, он может в конечном итоге доминировать в производительности.
Одна инструкция, несколько данных (SIMD): одна операция (задача) выполняется одновременно с несколькими элементами данных. Количество элементов в SIMD-операции может варьироваться от небольшого числа, например от 4 до 16 элементов в коротких векторных инструкциях, до тысяч, как в потоковых векторных процессорах. Процессоры SIMD также известны как процессоры массивов, поскольку они состоят из массива функциональных блоков с общим контроллером.
Множественные инструкции, множественные данные (MIMD): отдельные потоки инструкций, каждый со своим собственным потоком управления, работают с отдельными данными. Это характеризует использование нескольких ядер в одном процессоре, нескольких процессоров в одном компьютере и нескольких компьютеров в кластере. Когда в одной и той же компьютерной системе присутствует несколько процессоров, использующих разные архитектуры, мы говорим, что это гетерогенный компьютер. Примером может служить хост-процессор и сопроцессор с разными наборами инструкций.
Последняя возможная комбинация, MISD, не особенно полезна и не используется.
Другой способ, часто используемый для классификации компьютеров, заключается в том, может ли каждый процессор получить доступ к общей общей памяти или каждый процессор может получить доступ только к локальной памяти.Последний случай называется распределенной памятью. Многие системы с распределенной памятью имеют локальные подсистемы с общей памятью. В частности, кластеры представляют собой большие системы с распределенной памятью, образованные путем соединения множества компьютеров («узлов») с общей памятью высокоскоростной коммуникационной сетью. Кластеры формируются путем соединения независимых друг от друга систем, и почти всегда это системы MIMD. Часто компьютеры с общей памятью действительно имеют физически распределенные системы памяти; просто связь, используемая для создания иллюзии общей памяти, неявна.
Есть еще одна родственная классификация, используемая, в частности, поставщиками графических процессоров: одна инструкция, несколько потоков (SIMT). Это соответствует мозаичной архитектуре SIMD, состоящей из нескольких процессоров SIMD, где каждый процессор SIMD эмулирует несколько «потоков» (волокон в нашей терминологии) с использованием маскирования. Может показаться, что SIMT-процессоры имеют тысячи потоков, но на самом деле их блоки совместно используют управляющий процессор, а расходящийся поток управления может значительно снизить эффективность внутри блока. С другой стороны, синхронизация между волокнами практически бесплатна, потому что когда поток управления эмулируется с маскированием, волокна всегда работают синхронно.
Шаблоны доступа к памяти также могут влиять на производительность процессора, использующего модель SIMT. Обычно каждый подпроцессор SIMD в SIMT-машине предназначен для использования данных из строки кэша. Если доступ к памяти из разных волокон обращается к совершенно разным строкам кэша, тогда производительность падает, поскольку часто процессору требуется несколько циклов памяти для разрешения доступа к памяти. Это называется расходящимся доступом к памяти. Напротив, если все волокна в ядре SIMD обращаются к одним и тем же строкам кэша, то обращения к памяти могут быть объединены и производительность повышена. Важно отметить, что это прямо противоположно тому, что мы хотели бы сделать, если бы волокна действительно были отдельными потоками. Если волокна работали на разных ядрах, мы хотим избежать доступа к одной и той же строке кэша. Таким образом, хотя код, написанный для использования волокон, может быть реализован с использованием аппаратных потоков на нескольких ядрах, код, должным образом оптимизированный для волокон, на самом деле будет неоптимальным для потоков, когда речь идет о доступе к памяти.
Функции SIMD через OpenMP
Джордж М. Раскулинец, Евгений Фиксман, в High Performance Parallelism Pearls, 2015
Обзор векторизации SIMD
Векторизация — это процесс преобразования скалярной операции, воздействующей на отдельные элементы данных (Single Instruction Single Data —SISD), в операцию, в которой одна инструкция работает одновременно с несколькими элементами данных (SIMD). Современные процессорные ядра Intel имеют выделенные векторные блоки, поддерживающие параллельную обработку данных SIMD. Пример операции с поддержкой SIMD показан на рис. 22.1.
Рисунок 22.1. Пример векторной операции Intel® AVX (SIMD).
Процессоры Intel, поддерживающие Intel® Advanced Vector Extensions (Intel® AVX), имеют по одному 256-битному векторному блоку на ядро. Таким образом, каждое ядро может обрабатывать восемь операций с плавающей запятой одинарной точности (например, 32-битных) или четыре операции с плавающей запятой двойной точности (например, 64-битных) с использованием одной инструкции. Расширения Intel® Advanced Vector Extensions 512 (Intel® AVX-512) удваивают количество регистров и размер векторного блока до 512 бит, так что каждый векторный блок на ядро может выполнять 16 операций с одинарной точностью или 8 операций с двойной точностью на инструкцию. . Некоторые новые процессоры Xeon также поддерживают векторные инструкции AVX-512, как и процессоры Intel Xeon Phi, и практически такие же, как 512-битные SIMD в исходных сопроцессорах.
Более крупные векторные блоки и расширенные функциональные возможности приводят к значительному ускорению работы многих реальных приложений. На рис. 22.2 показаны результаты производительности финансового приложения, оценивающего опционы с помощью трехчленного дерева. Первые (более короткие, с более низкой производительностью) в каждой паре используют только потоки, а вторые (более высокие, с более высокой производительностью) объединяют как параллельные потоки, так и векторные единицы. Добавленное ускорение векторных блоков, особенно в последние годы, впечатляет.
Рисунок 22.2. Сравнение ускорения между многопоточным и многопоточным + векторизованным кодом.
Революция процессоров
Сайед В. Ахамед, Intelligent Networks, 2013 г.
2.9.3 От CPUS к OPU
Чтобы проиллюстрировать концепцию, мы представляем рисунок 2.8, изображающий архитектуру SPSO, OPU, которая соответствует архитектуре процессора SISD von Neumann. Процессоры SPSO аналогичны процессорам SISD для традиционных ЦП.Когда объект невосприимчив к обработке, аппаратное обеспечение OPU упрощается до традиционного аппаратного обеспечения ЦП с регистром команд (IR) для хранения кода операции, регистром данных (DR), регистром адреса памяти (MAR), счетчиком программ (PC), и набор регистров A, B и C. ЦП функционирует в соответствии с циклом выборки, декодирования, выполнения (FDE) в простейшем случае.
Рисунок 2.8. Упрощенное представление процессора SPSO, работающего с одним объектом и его атрибутами. Когда он заменяет FPU и ALU в схеме на рис. 2.1, систему можно заставить работать как простой объектный компьютер фон Неймана.
Последующие традиционные компьютерные архитектуры с несколькими процессорами, несколькими модулями памяти, вторичной памятью, процессорами ввода-вывода и сложными операционными системами зависят от эффективности и оптимальности функций ЦП. ЦП несет основную тяжесть действий и выполнения кода операции (opc) для основных программ. Распределение традиционных функций ЦП на множество подчиненных процессоров сделало общую обработку более быстрой и эффективной. Можно сопоставить более сложные конструкции ЦП с соответствующими конструкциями OPU.
Архитектура SPSO становится более сложной, чтобы учесть всю энтропию обрабатываемого объекта. Энтропия может иметь ряд других зависимых объектов, их отношения с основным объектом, его атрибуты и атрибуты зависимого объекта.
Формат объектов и атрибутов может быть буквенно-цифровым (числовым, буквенно-цифровым и/или описательным), а не чисто символическим. Первичные и вторичные объекты и их атрибуты могут быть локальными и предопределенными в самых простых случаях, или они могут быть размещены в Интернете и получены из всемирной паутины или банков знаний WWW. Выполнение одного кода операции со знаниями (kopc) может влиять на энтропию отдельного объекта через вторичные объекты и атрибуты. По сути, необходимы многочисленные кэши, чтобы отслеживать полное влияние одного процесса kopc на всю энтропию одного объекта в процессоре SPSO.
Видно, что конфигурации машин для других типов архитектур, т. е. процессоров SPMO, MPSO, MPMO и конвейерных объектных процессоров Ahamed (2009), могут быть получены с помощью вариаций, аналогичных тем, которые используются для систем SPSO. В следующих разделах мы представляем изменения для объектного процессора и объектной машины типа MPMO.
Мультипроцессоры
Питер Ю.К. Ченг, . Уэйн Лук, Справочник по электротехнике, 2005 г.
2.1 Введение
Поскольку как стоимость, так и производительность микропроцессоров продолжают расти, создание компьютерных систем, содержащих много процессоров, становится все более привлекательным. Повышение производительности — одно из очевидных преимуществ многопроцессорной системы. В идеальном случае система с N процессорами может обеспечить N ускорение выполнения задач, связанных с вычислительными ресурсами. Учитывая, что стоимость микропроцессора составляет небольшую долю от общей стоимости системы, экономическая эффективность такого подхода очевидна. Другой, но не менее важной причиной использования многопроцессорных систем является повышение надежности. Идея здесь в том, что даже если один процессор выйдет из строя, система будет продолжать работать, хотя и медленнее. Рабочая нагрузка вышедшего из строя процессора будет автоматически взята на себя оставшимися процессорами.
В настоящее время многопроцессорные системы можно найти во многих приложениях. Большинство файловых серверов и серверов World Wide Web построены на машинах, которые могут иметь два или более процессоров. Отрасль обработки данных, требующая обработки транзакций с большими базами данных, использует многопроцессорные системы в качестве стандарта.
Существует два взгляда на то, как многопроцессорная система повышает производительность: (1) увеличение пропускной способности для независимых задач, распределенных между несколькими процессорами, и (2) более быстрое выполнение одной задачи на нескольких процессорах. Организация и дизайн системы значительно различаются для двух разных целей; некоторые системные архитектуры обсуждаются в разделе 2.2. Программирование системы также сильно зависит от архитектуры и желаемой функциональности, как описано в Разделе 2.4.
Один общий способ классификации всех компьютерных систем был первоначально предложен Флинном (1972 г.), как показано в следующем списке:
Машины с одной инструкцией и одними данными (SISD) относятся к одному процессору, выполняющему один поток инструкций, который работает с данными, хранящимися в одной памяти. К этой категории относятся все однопроцессорные системы.
Машины с одной инструкцией и несколькими данными (SIMD) позволяют одному потоку инструкций управлять многими элементами обработки синхронно. Каждый процессор имеет собственную память данных, поэтому на каждом шаге инструкции одновременно обрабатывается множество наборов данных.И векторные процессоры, такие как CRAY T80, и процессоры массивов, такие как Connection Machine (Хиллис, 1986 г.), являются SIMD-машинами.
Машины с несколькими инструкциями и одними данными (MISD) позволяют отправлять общую последовательность данных на несколько процессоров, каждый из которых работает с данными с помощью отдельной инструкции. Этот тип машинной структуры не очень удобен и никогда не применялся в реальных системах.
Машины с несколькими инструкциями и несколькими данными (MIMD) — это несколько процессоров, одновременно выполняющих разные инструкции для разных потоков данных. Это наиболее распространенная многопроцессорная структура; симметричные многопроцессорные системы (SMP), кластеры и системы с неоднородным доступом к памяти (NUMA) — все это примеры этой категории.
В следующих разделах мы рассмотрим различную организацию, используемую в многопроцессорных системах. Ключевые вопросы, которые рассматриваются, включают:
Как несколько процессоров обмениваются данными?
Как кэш-память на разных процессорах правильно хранит свои данные?
Как несколько процессоров взаимодействуют друг с другом и координируют свои действия?
Сколько процессоров требуется и какого повышения производительности можно ожидать?
Центральный процессор (ЦП) — это электронная схема внутри компьютера, которая выполняет инструкции компьютерной программы, выполняя основные арифметические, логические операции, операции управления и операции ввода-вывода (I/O), указанные в инструкциях. [1]
Содержание
Основные части процессора [ изменить ]
Ниже мы видим упрощенную схему, описывающую общую архитектуру процессора. Вы должны быть в состоянии описать архитектуру центрального процессора (ЦП), функции арифметико-логического устройства (АЛУ), блока управления (УУ) и регистров внутри ЦП.
Я так понимаю, часть первая [ редактировать ]
Пожалуйста, знайте и поймите:
- Память содержит как данные, так и инструкции.
- Арифметико-логический вентиль способен выполнять арифметические и логические операции с данными.
- Регистр процессора — это быстродоступное место, доступное центральному процессору (ЦП) цифрового процессора. Регистры обычно состоят из небольшого объема быстрой памяти, хотя некоторые регистры имеют определенные аппаратные функции и могут быть доступны только для чтения или только для записи [3]
- Блок управления управляет потоком данных внутри ЦП (это цикл Fetch-Execute)
- Ввод поступает в ЦП по шине.
- Вывод выходит из ЦП через шину.
Сравнение ЦП [ изменить ]
При сравнении ЦП мы взвешиваем ряд важных факторов, таких как тактовая частота, количество ядер, расчетная мощность, тип сокета и класс (настольный компьютер, ноутбук, мобильное устройство).
Но если в двух словах, то все сводится к тому, какой объем вычислений можно выполнить, когда все части процессора объединяются за один такт. Если выполнение Задачи X занимает два такта на ЦП A и один такт на ЦП B, то ЦП B может быть лучшим процессором, даже если ЦП A имеет более высокую тактовую частоту. [4]
Более подробное обсуждение процессора [ изменить ]
Это отличное видео, в котором рассказывается, как на самом деле работает ЦП.
Эти видеоролики действительно помогут вам понять части процессора и то, как они работают.
Вы понимаете эту тему? [править]
Опишите архитектуру центрального процессора (ЦП), функции арифметико-логического устройства (АЛУ), блока управления (УУ) и регистров внутри ЦП.
Части ЦП:
- ALU — арифметико-логическое устройство выполняет все вычисления внутри ЦП.
- CU – блок управления, координирует перемещение данных, декодирует инструкции.
Регистры — область памяти внутри реального процессора, работающая на очень высоких скоростях. В нем хранятся инструкции, ожидающие декодирования или выполнения.
-
ПК - счетчик программ - хранит адрес -> следующий См. также [ редактировать ]
Читайте также: