Разное

Процессор обрабатывает: Центральные устройства компьютера. §5. Процессор и память

Содержание

Центральные устройства компьютера. §5. Процессор и память

Содержание урока

Процессор

Память

Оперативная память

Постоянное запоминающее устройство

Взаимодействие устройств

Долговременная память

Облачные хранилища данных

Выводы. Интеллект-карта

Вопросы и задания

Ключевые слова:


•	 процессор
•	 программа
•	 тактовая частота
•	 разрядность
•	 оперативная память
(оперативное запоминающее
устройство (ОЗУ)) • долговременная память • постоянное запоминающее
устройство (ПЗУ) • контроллер • файл • магнитные диски • оптические диски • флэш-память • облачные
хранилища данных

Процессор

Процессор — это устройство, предназначенное для автоматического считывания команд программы, их расшифровки и выполнения.

Название «процессор» происходит от английского глагола to process — обрабатывать. Процессор, изготовленный в виде микросхемы — электронной схемы на одном кристалле кремния, — называется микропроцессором (рис. 2.1).

Рис. 2.1

В любой процессор обязательно включены две важные части:

арифметико-логическое устройство (АЛУ), в котором выполняется обработка данных;

устройство управления (УУ), которое выполняет программу в автоматическом режиме (без участия человека) и обеспечивает согласованную работу всех узлов компьютера.

Программа — это последовательность команд процессора.

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

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

Каждая из микрокоманд запускается с помощью управляющего импульса от источника (генератора) импульсов. Интервал между двумя соседними импульсами называется тактом (рис. 2.2). Очевидно, что чем чаще поступают импульсы, тем быстрее будет выполняться программа. Поэтому скорость поступления тактовых импульсов может быть характеристикой быстродействия процессора.

Рис. 2.2

Тактовая частота — это количество тактовых импульсов в секунду.

Обычно процессор выполняет за один такт одну простую команду (например, сложение двух чисел). Тогда при тактовой частоте 4 ГГц (4 гигагерца, т. е. 4 миллиарда импульсов в секунду) за одну секунду выполняется около 4 миллиардов таких операций.

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

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

Современные компьютеры за одну команду могут обработать 64 бита данных.

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

Следующая страница Память

Cкачать материалы урока

Команды процессора. Принцип работы процессора. Система команд процессора.

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

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

  1. Человек идет в помещение 2 за порцией данных, необходимых для решения задачи.
  2. Приносит их в помещение 1.
  3. Рабочая группа быстро обрабатывает данные и посылает за следующей порцией информации. При этом она бездействует в ее ожидании.
  4. Человек идете в помещение 2 за следующей порцией информации.
  5. Приносит их в помещение 1.
  6. Рабочая группа быстро обрабатывает данные и посылает за следующей порцией информации. При этом она бездействует в ее ожидании.
  7. И т.д., до тех пор, пока задача не будет решена.

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

Возникают следующие вопросы:

  1. Можно ли поручить решение задачи более «умной» рабочей группе, которая решит ее быстрее?
  2. Можно ли информацию из помещения 2 частично сразу перенести в Помещение 1?
  3. Можно ли посылать за информацией в помещение 2 не одного человека, а нескольких?

Только что, вы смоделировали процесс ускорения работы процессора. Помещение 1 — это процессор, а помещение 2 — это оперативная память. Главная задача ученых и инженеров — сделать процессоры более производительными.

Достигается это за счет:

  • Повышения тактовой частоты (более «умная» рабочая группа). Это самый очевидный путь повышения производительности.
  • Повышения разрядности процессора (поручить приносить информацию из помещения 2 более чем одному человеку). Чем выше разрядность процессора ( количество человек), тем больше байтов (больше информации) он может обработать за один такт.
  • Кэширования памятиПроцессор по отношению, например, к оперативной памяти является более быстрым устройством, поэтому он вынужден постоянно простаивать, ожидая медленно работающую память. Поэтому, чтобы процессор реже обращался к оперативной памяти, внутри него создают небольшой участок памяти размерим 256 или 512 Кбайт. Эта «сверхоперативная» память получила название кэш. В кэш-память процессор записывает те данные, которые получил из оперативной памяти, и если это данные понадобятся еще раз, он возьмет их из кэш. Таким образом, работа процессора происходит  быстрее.

Принцип работы процессора.

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

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

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

Каким образом, в таком ритме работы, процессор узнает, откуда приходят данные — от клавиатуры или от мыши, от монитора или от принтера?  А может быть от микроволновой печи? И как с такими данными работать?

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

Предположим, мы решили подключить к компьютеру микроволновую печь. Выберем для нее какое-нибудь прерывание, не используемое другим устройством, например «103». Когда микроволновая печь захочет обратить на себя внимание процессора, она пошлет к нему сигнал и число 103. Процессор получит число и заглянет в специальную область памяти- вектор прерываний, где найдет адрес руководства по работе с микроволновой печью и начнет работать с этим устройством.

Новые сигналы прерываний могут временно приостановить работу текущей программы, и вернуться к ней по окончании работы с пришедшим прерыванием. Что было бы, если бы процессор работал не со скоростью сотни миллионов байтов в секунду, а в привычном для человека ритме. Как часто получал бы он сигналы?

  • Сигналы от клавиатуры он получал бы один раз в десять лет. Обработка слова «компьютер» занимала бы почти 100 лет.
  • Данные от мыши — один раз в год. Перемещение указателя мыши из одного угла экрана в другой заняло бы тысячелетие.
  • Данные, поступившие по телефонным проводам через модем, — один раз в сутки. Прием и обработка одной страницы текста занимали бы 5-7 лет.
  • Данные от гибкого диска — один символ в несколько часов.
  • Данные от жесткого или лазерного диска — один байт в час.

Система команд процессора.

Процессор обрабатывает информацию, выполняя определенные команды. Таких команд может быть более тысячи. У каждой команды есть свой код (номер). Например, есть команда 000, 001, 002 и т.д. Коды всех команд процессора записаны в двоичной форме в специальном документе, который называется системой команд процессора.

У каждого процессора своя система команд, поэтому один и тот же код для, разных процессоров может обозначать разные команды. Если же процессоры имеют ограниченную совместимость, то их рассматривают как семейство. Примером семейства процессоров являются все процессоры Intel. Их родоначальником был процессор Intel 8086, на базе которого был сделан первый IBM PC. Процессоры семейства совместимы «сверху вниз», т.е. новый процессор понимает» все команды своих предшественников, но не наоборот.

Таблица прерываний AMD Atlon 64 X2:

ПрерываниеВидОписание
DMA 02ИсключительныйСтандартный контроллер гибких дисков
DMA 04ИсключительныйКонтроллер прямого доступа к памяти
IRQ 00ИсключительныйВысокоточный таймер событий
IRQ 01ИсключительныйСтандартная (101/102 клавиши) или клавиатура PS/2 Microsoft Natural
IRQ 03ОбщийEthernet-контроллер
IRQ 04ОбщийПрочее устройство моста PCI
IRQ 06ИсключительныйПоследовательный порт (COM1)
IRQ 08ИсключительныйСтандартный контроллер гибких дисков
IRQ 09ИсключительныйВысокоточный таймер событий
IRQ 11ОбщийMicrosoft ACPI-совместимая система
IRQ 13ОбщийSM контроллер шины
IRQ 11ИсключительныйПроцессор числовых данных
IRQ 17ОбщийRealtek RTL8139 Family PCI Fast Ethernet NIC
IRQ 17ОбщийNVIDIA GeForce 7600 GT
IRQ 18ОбщийСтандартный OpenHCD USB хост-контроллер
IRQ 22ОбщийСтандартный двухканальный контроллер PCI IDE
IRQ 22ОбщийСтандартный расширенный PCI — USB хост-контроллер
IRQ 23ОбщийСтандартный двухканальный контроллер PCI IDE
IRQ 23ОбщийСтандартный контроллер гибких дисков

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

Все процессоры можно разделить на:

  • Процессоры с расширенной системой команд (CISC — процессоры).
  • Процессоры с сокращенной системой команд (RISC — процессоры).

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

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

Как выбрать центральный процессор | Процессоры | Блог

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

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

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

На что НИКОГДА не нужно обращать внимание

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

Более того, разные модели процессоров даже в одном семействе могут заметно отличаться по характеристикам. А потому говорить, что условный Core i3 — это ровно то же самое, что условный Core i9, только чуть медленнее — значит просто-напросто манипулировать. Причем манипулировать даже не фактами, а эмоциями потенциального покупателя.

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

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

Часто задаваемые вопросы

Q: У меня материнская плата под <название_сокета>. Могу ли я поставить в нее процессор под <название_сокета_плюс_одна_цифра>?

A: Не сможете.

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

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

Более того, иногда даже конструктивно схожие платформы несовместимы между собой. К примеру, процессор под сокет LGA 1151 не будет работать в материнской плате с сокетом LGA 1151_v2, а процессор под сокет LGA 1151_v2, соответственно, не заведется в плате под LGA 1151.

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

Q: А вот я купил процессор под <название_сокета> и материнскую плату с тем же <название_сокета>, а система все равно не запускается, черный экран и только вентиляторы крутятся. Что это значит?

A: Два возможных варианта.

  • Вариант «1» — вы подключили монитор к выходам на материнской плате, тогда как в процессоре отсутствует встроенная графика. Как это ни удивительно, но случается подобное довольно часто. Выход тут один — подключить монитор к дискретной видеокарте.
  • Вариант «2» — вы купили процессор, совместимый с вашей материнской платой, но не поддерживаемый на той версии BIOS, которая записана на плате в данный момент.

Возможна такая ситуация абсолютно на всех платформах — вспомним хотя бы процессоры Intel Kaby Lake (серия 7000) и материнские платы на чипсетах серии 100… ну, или Coffee Lake Refresh (серия 9000) и материнские платы на чипсетах серии 300, выпущенные раньше самих ЦПУ. В любом случае, это не является недостатком самой платформы. Если плата была выпущена раньше, чем процессор, она попросту не может знать, как с ним работать. Здесь можно провести аналогию с автомобилями: если какая-то опция начала устанавливаться на заводе только в 2019 году, то на машине, выпущенной в 2017 году она никак не может оказаться — если, конечно, вы ее не докупите и не установите.

Если вы только собираетесь покупать материнскую плату, и сомневаетесь, поддерживает ли она процессор — проверьте номер заводской прошивки. Сделать это совершенно не сложно, и покупать плату и нести ее домой для этого не нужно:

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

В конце концов, для обновления BIOS материнской платы можно обратиться и в сервис-центр. Услуга прошивки есть в СЦ компании ДНС, но никто не запретит обратиться в любую другую фирму, занимающуюся ремонтом и обслуживанием ПК.

Q: А вот у меня блок питания мощностью в 450 ватт, хочу заменить процессор на «название модели». Хватит ли моего блока, или его тоже нужно будет поменять?

A: Зависит от реальных характеристик вашего БП и мощности, потребляемой всей системой вкупе.

Предположим, что ваш блок питания качественный, современный и реально выдает заявленную мощность, причем большую ее часть — по линии в 12 вольт, да еще и не просаживает напряжение при пиковой нагрузке. Тогда к нему нет претензий, и вам остается узнать, насколько мощность БП соответствует аппетитам системы.

Кроме процессора, электричество под 3D-нагрузкой активно потребляет видеокарта, поэтому стоит изучить ее реальные характеристики. Потребление материнской платы, оперативной памяти, жестких дисков и плат расширения не столь существенно, но, в зависимости от количества обозначенных выше устройств, добавьте к потребляемой видеокартой мощности еще ватт 50–70.

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

Менее точный способ — замерить самостоятельно. Если вы уверены в качестве и техническом состоянии своих комплектующих — запустите утилиту для мониторинга параметров системы HWinfo64, а затем измерьте энергопотребление процессора и видеокарты под стресс-тестами. FurMark или MSI Kombustor для видеокарты, OCCT Linpack или Prime95 для процессора. Затем сложите полученные данные, добавьте означенные выше 50–70 ватт на остальные комплектующие, и узнаете, сколько потребляет ваша система в пиковой нагрузке. 

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

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

Q: А вот кулера на 95 ватт хватит для охлаждения «название_процессора»? Менять еще и кулер возможности нет…

A: А вот это зависит уже от реального энергопотребления процессора.

В характеристиках ЦПУ всегда приводится такое значение, как TDP, расшифровывается она как Thermal Design Power, и представляет собой требования к тепловой мощности, которую способен рассеивать кулер. Однако эти требования указываются зачастую только для штатного режима работы ЦПУ. Причем под штатным режимом здесь понимается базовая частота процессора, а не та частота, на которой он реально работает благодаря штатному динамическому разгону. К примеру, тот же Core i9-9900K при заявленном TDP в 95 ватт действительно может потреблять не более 95 ватт в пиковой нагрузке, но, лишь в том случае, если он работает на базовых 3600 МГц при соответствующем напряжении. В реальности, за счет технологии MCE, процессор работает на 4700 МГц даже при полной загрузке всех его ядер. И энергопотребление, а значит, и тепловыделение, в таком случае, оказываются «несколько» больше:

Однако, верно и обратное. Если процессор имеет программный лимит на 90 ватт потребляемой мощности, то выделять 130, 150, 200 или 250 ватт тепловой энергии он не может чисто физически: будь это так, мы говорили бы о революции в области бытовых нагревателей, выдающих мощность больше потребляемой. А уж там и до межпланетных перелетов было бы недалеко.

Но шутки в сторону: в реальности 90–100 ватт энергопотребления означают лишь то, что охладить процессор будет гораздо проще, чем об этом принято думать:

В отношении кулеров, кстати, ориентироваться на TDP тоже стоит с большой оглядкой. Каждый производитель использует разную методику замеров, в результате чего кулеры с TDP, заявленным на отметке в 130 ватт, могут иметь совершенно разную конструкцию и совершенно разную эффективность. Но, тем не менее, если для кулера заявлено 130 ватт рассеиваемой мощности, то, скорее всего, с процессором с энергопотреблением в 70–80 ватт он справится.

Q: А может, просто взять процессор в коробке? Там и кулер комплектный будет ведь!

A: На самом деле — далеко не факт, что он там будет.

К примеру, процессоры Intel с разблокированным множителем поставляются без штатного кулера, то же касается и нескольких моделей AMD Ryzen серии 1000, и процессоров Ryzen 3000 с суффиксом XT. Производитель в данном случае полагает, что продукт заведомо будет использоваться с более качественной и эффективной системой охлаждения, нежели «боксовый» кулер.

Брать ли процессор в BOX или OEM-комплектации — личный выбор каждого. Но не стоит выбирать BOX только ради кулера: далеко не всегда он будет отличаться высокой эффективностью при комфортном уровне шума. А чаще всего на разницу в цене между BOX и OEM можно приобрести кулер намного лучше штатного.

Q: Нужен ли мне разгон процессора?

A: Личное дело каждого.

Если вы приобретаете процессор на длительный срок — лучше рассматривать вариант с разблокированным множителем. Разгон вам может не требоваться в момент покупки, но потребуется в будущем, когда вырастут требования игр и рабочего софта. Запас, как говорится, карман не тянет. Хотя и цена процессора с разблокированным множителем и материнской платы с возможностью разгона может оказаться намного выше платформы без разгона.

Впрочем, это справедливо только для десктопной платформы Intel, где есть разделение на разгоняемые и неразгоняемые комплектующие.

На десктопной платформе AMD socket AM4 разгон доступен для всех моделей ЦПУ и APU. Отсутствуют возможности разгона процессора только у плат на младших чипсетах A320 и A520. Впрочем, эти платы предназначены для офисного сегмента, так что тут все логично.

Q: Я вот выбрал процессор, но посмотрел характеристики — а там написано, что у процессора есть встроенная графика. Но у меня уже есть видеокарта — зачем переплачивать за то, чем я не буду пользоваться?

A: А переплачивать ли?

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

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

А что нужно сделать, если у вас есть встроенная графика? Подключить монитор к ней и пользоваться дальше. В тяжелые игры, конечно, не поиграешь, но можно серфить в Интернете и играть в любимые хиты прошлых лет. Без трат времени на поездки и походы по рынкам.

Q: Как раз по поводу видеокарт. Вот я хочу купить <название_видеокарты>, какой процессор к ней подойдет?

A: У процессора нет характеристик, которые запрещали бы ему работать с теми или иными видеокартами. Как правило, если видеокарта использует интерфейс PCI-e и поддерживается в установленной на компьютере ОС — это все, что от нее требуется.

Иначе говоря, если вы собираете ПК на новой платформе, но денег не хватает на то, чтобы одновременно обновить и видеокарту — можно использовать ГПУ, оставшийся от предыдущей системы, или бюджетное решение старого поколения, купленное на вторичном рынке.

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

Встроенный бенчмарк игры Assassin’s Creed: Odyssey утверждает, что тестовая система объединяет процессор Intel Core i7-4930K, выпущенный в 2013 году для уже давно устаревшей платформы LGA 2011, и видеокарту GeForce RTX 2080 Ti, выпущенную в конце 2018 года, и актуальную до сих пор.

Есть и более характерные примеры, причем из того же бенчмарка:

Процессор AMD FX-8300, представленный в конце 2012 года под уже тогда довольно возрастную, и отнюдь не передовую платформу socket AM3+, работает в паре с GeForce GTX 1060, представленной в июле 2016 года и актуальной вплоть до выхода семейства Turing в 2019 году.

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

Q: Но вот говорят, что <название_процессора> мою карту только на 73% раскроет, а если поставить <название_другого_процессора>, то будет не меньше 92%?

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

Total War: Three Kingdoms. Игра, довольно требовательная к ресурсам центрального процессора и к тому же использующая преимущества многопотока. Слева — Intel Core i9-9900KF. Справа — Intel Core i7-9700KF. Оба процессора разогнаны до 5000 МГц, частота кольцевой шины поднята до 4700 МГц, видеокарта RTX 2080 Ti работает в штатном для нее режиме, все прочие условия идентичны. При этом, в случае с Core i7-9700KF фпс в бенчмарке оказывается… выше! Как же так? Ведь по всем утверждениям интернет-знатоков, старшая модель просто обязана «раскрыть» видеокарту в более полной мере, а по факту — с младшим ЦПУ производительность выше! Да, это исключительно частный случай, связанный с тем, что технология Hyper Threading, отличающая Core i9 от Core i7, в играх далеко не всегда работает корректно, но важен в данном случае сам факт.

Встроенный бенчмарк игры WarThunder, являющейся уже диаметрально противоположным примером, так как движок игры по сей день активно использует не более 2-х ядер. Слева снова представлен Core i9-9900KF, но на сей раз — в номинальном для него режиме. 4700 МГц по всем ядрам за счет технологии MCE, 4300 МГц на кольцевой шине. Справа — уже Core i5-9600KF, разогнанный ровно до тех же параметров. Все прочие характеристики системы идентичны, в качестве видеокарты опять используется RTX 2080 Ti. Разница в фпс, опять же, в комментариях не нуждается. И снова — дело не в «раскрытии», а в том, что в данном случае Core i9 в принципе не может иметь никаких преимуществ над Core i5 — игра попросту не использует «лишние» ядра. А технология Hyper Threading здесь опять ведет себя не лучшим образом, что и позволяет Core i5-9600KF выдавать немного больше кадров в секунду.

Можно рассмотреть и обратный пример:

Те же условия, те же Core i9 и Core i5, но Assassin’s Creed: Odyssey, использующий преимущества многопотока. Производительность с Core i5-9600KF здесь уже ниже, но — ниже на 10–15 кадров, то есть ни о каком превращении RTX 2080 Ti в RTX 2060 речи тут не идет, да и идти не может. Почему не может? Да потому, что вот это — RTX 2060:

А разница между 100–110 и 75 кадрами в секунду на одинаковых настройках графики уже сама по себе выглядит вполне красноречиво. И, кстати, процессор в данном случае тоже более мощный, чем Core i5 9600KF, однако он не превращает RTX 2060 в RTX 2080 Ti.

Почему же так происходит?

Дело в том, что линейная зависимость между ценой процессора и производительностью возможна только в том случае, если поставленная перед процессором задача задействует все его вычислительные ресурсы. Так, при рендеринге 3D-модели или конвертации видеоролика Core i9-9900KF всегда будет быстрее Core i5-9600KF. Но уже при пакетной обработке фото в редакторе, не способном задействовать более 4-х процессорных ядер, разница между этими процессорами будет определяться уже исключительно тактовыми частотами. Просто потому, что преимущества «многоядерной» старшей модели здесь не используются, и никак не могут повлиять на производительность. И современные игры на деле оказываются гораздо ближе именно ко второму примеру.

Снова Total War: Three Kingdoms. Все та же RTX 2080 Ti, частота оперативной памяти фиксирована на 3800 МГц, процессоры разогнаны до 4400 МГц. Слева — Ryzen 9 3900X. В центре — Ryzen 7 3700X, справа — Ryzen 5 3600X.

Как можно видеть, несмотря на явное расхождение в количестве ядер, производительность в игре на равной частоте практически идентична. Следовательно, разговоры о том, что для «раскрытия» RTX 2080 Ti нужна обязательно старшая модель процессора, — как минимум стоит поставить под сомнение.

У каждой игры свои требования к характеристикам ЦПУ. Так, где-то используется максимально доступное количество ядер — и, например, старые процессоры под ту же платформу LGA 2011 могут не только эффективно справляться с игрой, выпущенной на 7 лет позже них самих, но и обеспечить более комфортный геймплей, чем намного более современные четырехъядерные модели под LGA 1151_v2 и LGA 1200. В других играх — наоборот, количество ядер не имеет значения, важна только тактовая частота и производительность в однопоточной нагрузке. Какие-то игры в силу особенностей движка в принципе мало зависимы от процессора и более требовательны к видеокарте. Да и сама «зависимость» от характеристик процессора в одной и той же игре может меняться со сменой разрешения экрана и настроек графики: чем они выше, тем выше влияние видеокарты, и тем меньше заметна разница между более и менее быстрыми ЦПУ.

Кроме того, все сказанное выше опирается на пример GeForce RTX 2080 Ti, самой быстрой одночиповой видеокарты в предыдущем поколении. С более медленными видеокартами разницы между процессорами вы рискуете не увидеть вовсе: общий уровень производительности будет ниже, а следовательно и дельта между теми же Core i9 и Core i5 будет составлять отнюдь не 10 кадров.

Критерии и варианты выбора

Для офисных ПК подойдут двухъядерные процессоры AMD Athlon, Intel Celeron и Pentium.

Для более серьезных задач — четырехъядерные и/или восьмипоточные Core i3, либо на APU семейств Ryzen 3 и Ryzen 5.

Для домашнего мультимедийного ПК — представители линеек Ryzen 3 и Ryzen 5.

Под будущий апгрейд — четырехъядерные Ryzen 3 и Core i3 без встроенной графики. 

Для бюджетного игрового ПК — шестиядерные процессоры AMD Ryzen 5 без поддержки виртуальных потоков и аналогичные модели Core i5. 

Оптимальный выбор для домашнего игрового ПК — шестиядерные 12-поточные процессоры AMD Ryzen 5 и Intel Core i5. Производительности вполне хватает, чтобы играть в любые современные игры, вести трансляции и даже работать на дому.

Для топовых игровых ПК или рабочих станций подойдут процессоры AMD Ryzen 7 и Intel Core i7. Относясь к мейнстримовым платформам, эти процессоры все еще относительно доступны и не требуют дорогостоящих материнских плат, блоков питания и кулеров. 

Для рабочих станций начального уровня — процессоры из линеек Ryzen 9 и Core i9. Их преимуществом в данном случае будет сравнительно низкая цена платформы. 

Для высокопроизводительных рабочих станций предназначены AMD Ryzen Threadripper под сокеты TR4 и TR4X, и топовые модели процессоров Intel под сокет LGA 2066, имеющие по 10, 12 и более физических ядер.

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

Устройство процессора компьютера

Сердцем персонального компьютера является процессор. Он представляет собой электронное цифровое устройство, которое может работать по заданной программе.

Что значит электронное и цифровое устройство

Рассмотрим устройство процессора компьютера. Сначала расшифруем отдельно прилагательные «электронное» и «цифровое».

Прилагательное «электронное» означает, что процессор компьютера работает на электрической энергии и все сигналы, которые обрабатываются этим устройством, являются электрическими.

Вместе с тем в радиоэлектронике электронные устройства делятся на 2 больших класса: аналоговые и цифровые.

Прилагательное «цифровое» означает, что процессор компьютера относится к классу цифровых, а не аналоговых устройств.

Упомянутые аналоговые устройства преобладали среди радиоэлектронной аппаратуры 20-30 лет назад. А появились они тогда, когда радиоинженеры научились записывать и передавать звук и изображение в виде аналоговых сигналов. Это были радиоприемники, телевизоры, магнитофоны и т.п.

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

Цифровые сигналы в отличие от аналоговых в незначительной степени подвержены помехам и без искажения передаются на  расстояния. Они лучше записываются, хранятся и не «портятся» со временем.

Процессор компьютера – цифровое электронное устройство

Процессор компьютера

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

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

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

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

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

Качественно произведенные кремниевые пластинки помещают в корпус с выводами и снабжают устройствами охлаждения (радиатор и вентилятор), так как сотни тысяч миниатюрных транзисторов при своей работе выделяют изрядное количество тепла.

Логическая структура процессора компьютера

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

– арифметико-логическое устройство (АЛУ), в котором, собственно, и производится преобразование информации,

– устройство управления (УУ), которое предназначено для управления арифметико-логическим устройством,

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

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

В свою очередь, АЛУ в соответствии с полученными из УУ командами, осуществляет

  • ввод информации из регистров,
  • обработку информации и
  • запись обработанной информации в регистры.

Регистры процессора могут обмениваться информацией с ячейками оперативной памяти (тоже на основании команд АЛУ). Поэтому в конечном итоге процессор компьютера

  • осуществляет обработку данных, получаемых из оперативной памяти,
  • а обработанные данные также размещает в оперативной памяти.

Как процессор обрабатывает данные

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

  • считывание данных из оперативной памяти в регистры процессора,
  • обработка этих данных и
  • обратная запись данных из регистров процессора в ячейки оперативной памяти.

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

Статья закончилась, можно еще прочитать:

1. О работе процессора компьютера

2. Как работает ПК: обработка информации

3. Устройство системного блока

4. Постоянная и оперативная память компьютеров и мобильных телефонов

5. От чайника к юзеру: шаг вперед, два шага назад



Получайте актуальные статьи по компьютерной грамотности прямо на ваш почтовый ящик.
Уже более 3.000 подписчиков

.

Важно: необходимо подтвердить свою подписку! В своей почте откройте письмо для активации и кликните по указанной там ссылке. Если письма нет, проверьте папку Спам.


Автор: Юрий Воробьев


15 июня 2011




Как работает процессор

Начало здесь

Рассмотрим важные моменты, касающиеся того, как работает процессор компьютера. Начнем с того, чем отличаются процессоры?

Различные процессоры могут иметь отличающийся набор команд, которые они могут исполнять. Чем больше команд может исполнять процессор, тем быстрее он обрабатывает информацию.Если же система команд более «бедная», то такой процессор должен делать бОльшее число более простых операций, чтобы выполнить обработку данных, по сравнению с процессором с более «богатой» системой команд.

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

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

Если следующая команда отменяет предыдущую (к примеру, первая команда позволяет записать данные в регистр, а вторая  команда удаляет данные из этого же регистра), то процессор будет выполнять такие команды, нисколько «не задумываясь» над бессмысленностью своих действий.

Или, например, если программа будет написана неправильно, и не будет иметь конца, то процессор будет ее обрабатывать непрерывно, и никогда сам не «примет решения» о прекращении работы. Остановить такую “зацикленную” программу можно только путем вмешательства извне.

Еще хуже, если программа будет направлена не на созидание (обработку данных), а на разрушение (например, на удаление важных и нужных данных, или на выгрузку этих данных несанкционированным образом), то процессор безупречно и без всяких «угрызений совести» в точности выполнит все инструкции на уничтожение или кражу важных данных.

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

В этом состоит их главная задача: обойти все виды контроля перед помещением программы в оперативную память. Остальное доделает процессор, выполнив все команды злоумышленников.

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

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

Именно поэтому разработчики вирусов так любят формат .exe файлов, а разработчики антивирусных программ, наоборот, не любят эти файлы и проверяют их самым тщательным образом.

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

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

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

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

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

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

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

P.S. Статья закончилась, но можно еще прочитать:

Оперативная память: заключение

Как работает ПК: часть 4. Включение и выключение компьютера

Здоровье компьютера

Представление информации в компьютере



Получайте актуальные статьи по компьютерной грамотности прямо на ваш почтовый ящик.
Уже более 3.000 подписчиков

.

Важно: необходимо подтвердить свою подписку! В своей почте откройте письмо для активации и кликните по указанной там ссылке. Если письма нет, проверьте папку Спам.


Автор: Юрий Воробьев


19 июня 2011




Процессор изнутри. Часть 0: Теория

Процессор изнутри. Часть 0: Теория — Архив WASM.RU

Нам говорят «безумец» и «фантаст»,

Но выйдя из зависимости грустной

С годами, мозг мыслителя искусный

Мыслителя искусственно создаст.

И. Гёте, «Фауст»


Об этом мануале.




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


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


Для того чтобы «заглянуть» внутрь процессора, мы будем
использовать счетчики производительности.


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




В рамках мануала будут рассмотрены  «внутренности» процессора и логика его работы.
Без этого будет очень трудно понять, что именно считают счетчики и как то, что
они считают, влияет на производительность процессора в целом. Мануал, кроме
данной части, состоит еще из следующих:




1)    
Intel P6 architecture


2)     Intel NetBurst


3)     AMD


4)     AMD64




Еще, возможно, будет часть, посвященная разбору исходников
прилагающихся программ, поскольку я не большой любитель писать комментарии в
программах (знаю, что это плохо, но ничего не могу с собой поделать J).




В каждой части подробно рассматриваются четыре основных
вопроса:




1)      Интерфейс процессора и системы.


2)      Кэширование.


3)      Исполнительное ядро.


4)      Мониторинг производительности.




В отдельную главу выносятся также некоторые детали
специфичные для данного процессора, скажем, технология HyperThreading для процессора Pentium 4 или описание шины HyperTransport для процессоров с архитектурой AMD-64.




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




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




В данной части статьи будут рассмотрены некоторые основные
теоретические положения общие для всех современных процессоров.




Физический интерфейс
процессоров.




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




Любой сигнал имеет активный и неактивный уровни напряжения.
Когда сигнал переключается из одного состояния в другое, напряжение на линии не
может измениться мгновенно, процесс переключения всегда занимает некоторое
время. Процесс подъема напряжения до активного уровня называется фронтом сигнала,
а процесс его спада до пассивного уровня – спадом. Графически это можно
показать так:



Частота, с которой происходит синхронизация сигналов, и
является частотой системной или «фасадной» (Front side) шины.


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


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


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




Кэш.




Зачем нужен кэш?




Неотъемлемый атрибут всех современных процессоров –
кэш-память. Она реализуется на дорогих элементах SRAM (static random access memory) доступ к которым происходит намного быстрее, чем к
элементам DRAM (dynamic random access memory) на которых построена
оперативная память. Еще одно достоинство элементов SRAM в том, что, в отличие от DRAM, они не требуют периодической
регенерации.




Микросхема памяти (основной памяти, которая DRAM) организована в виде
квадратной матрицы, и для того чтобы получить доступ к элементу матрицы, нужно
указать строку и столбец.


Рассмотрим базовый цикл обращения к модулю памяти со стороны
DRAM контроллера:




1) На адресные линии банка памяти подается адрес строки (Row).


2) Подается строб доступа к строке (Row Access Strobe – RAS#).


3) На адресные линии подается адрес столбца (Column).


4) Подается строб доступа к столбцу (Column Access Strobe – CAS#).


5) На выходных линиях появляется считанное слово.




Еще контроллер и планка памяти обмениваются сигналами,
определяющими операцию (чтение/запись), и выполняющими контроль ошибок (CRC или ECC), но нам эти сигналы сейчас
неинтересны.




Между пунктами 2 и 4 происходит задержка, связанная с
подготовкой строки – RAS-to-CAS delay – ее обычно можно
настраивать в BIOS и ее
значение колеблется от 3 до 2 тактов, чем меньше, тем естественно лучше. Между
4 и 5 также происходит задержка CAS latency
связанная с передачей данных из «недр» микросхемы на выходные линии.


Банком памяти называется не планка и не микросхема, а
сущность способная воспринимать сигналы RAS# и CAS#
(это может быть группа микросхем на планке, зависит от реализации).




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


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




Тип кэша.




Кэш может быть построен по одной из 3-х основных схем:




1)      Кэш прямого отображения (Direct mapped cache).


2)     
Наборно-ассоциативный кэш (Set-Associative
cache).


3)      Полностью ассоциативный кэш (Fully-Associative
cache).




В первом случае кэшируемый адрес однозначно определяет
строку кэша в которой могут кэшироваться данные. Память делится на некоторое
количество блоков (страниц) равных размеру кэш-памяти. Любой адрес в таком
случае можно разбить на 2 компонента – индекс страницы, смещение в странице.
Второй компонент и является индексом строки кэша. При кэшировании данных по
какому-либо адресу памяти, этот адрес сам определяет, в какой строке кэша он
должен быть размещен. Такой подход позволяет увеличить скорость работы,
поскольку процессору не нужно ничего искать и не нужно смотреть никаких таблиц
– ему нужно только знать адрес.


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




Полностью ассоциативный кэш – самый простой для понимания,
но зато самый трудный в реализации. Строка кэша состоит из пары «адрес-данные».
В любой строке может кэшироваться любой адрес, поиск нужного адреса должен
вестись параллельно по всем строкам (это и есть основная сложность реализации).




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


Кэш напоминает кэш прямого отображения и состоит из наборов
строк. Набор строк выбирается аналогично строке кэша прямого отображения, но
далее, поиск идет параллельно по всем строками набора аналогично полностью
ассоциативному кэшу. Набор обычно объединяет 2,4  либо 8 строк.


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




Наглядно 4-ассоциативный кэш можно показать так:





В полях S
хранится состояние строки, TAG
хранит тег (см. ниже), а в DATA — собственно данные. Индексируется только первая страница,
при выборе в ней какой-то строки выбираются также и строки расположенные по
этому же смещению в других страницах.


Строки, расположенные по одному смещению в разных страницах
и образуют набор.




Поясню, зачем нужен именно набор строк. Рассмотрим кэш
прямого отображения, в котором набор состоит из одной строки.


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


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




Политика записи.




Политика записи кэша определяет, как реализована запись в
основную память.


Существуют две основные политики кэша: Write Through и Write Back (далее WT и WB).


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


В случае одного процессора в системе политика WB работает прекрасно, в
случае же двух и более процессоров нужно обеспечивать согласованность данных в
разных кэшах.


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




Уровни кэша.




Разделение кэш-памяти на несколько уровней (до 3 в настоящее
время) производится по следующему закону: кэш-память уровня N+1 всегда больше по размеру и медленнее
по скорости обращения, чем кэш-память уровня N. Поясню, почему именно так.


Самой быстрой памятью является кэш-память первого уровня
(она же L1-cache), по сути, она является
неотъемлемой частью процессора, поскольку расположена на одном с ним кристалле
и входит в состав функциональных блоков, без нее процессор не сможет
функционировать. Память L1
работает на частоте процессора и обращение к ней занимает в общем случае один
такт ядра, объем этой памяти обычно невелик — не более 64Кб. Второй по
быстродействию является L2
(в отличие от L1 ее
можно отключить с сохранением работоспособности процессора), кэш второго
уровня, она обычно расположена либо на кристалле, как и L1, либо в непосредственной близости от
ядра, например, в процессорном картридже (только в слотовых процессорах), в
старых процессорах ее располагали на системной плате. Объем L2 побольше – от 128Кб до 1-2Мб.


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


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




Работа кэша.




Рассмотрим работу наборно-ассоциативного кэша, так как
именно он применяется сегодня наиболее широко.


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


Физический адрес разбивается на 3 (в общем случае)
составляющие. Offset
зависит от размера строки кэша и используется для индексации нужного байта в
строке, например, если в строке вмещается 32 байта, то размер поля offset  5 битов. Поле Index зависит уже от размера страницы кэш-памяти.
Это поле служит индексом набора строк кэша (в процессорах AMD набор (set) называется банком (bank)).




Физический адрес:


При обращении к кэшу, процессор с помощью поля index, находит нужную строку,
далее,


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


В следующей части подробно рассматриваются обращения по
чтению и записи на примере P6.




Размер кэшируемой
области памяти.N, где N – разрядность
поля TAG.


В случае наборно-ассоциативного кэша, размер страницы
определяется путем деления размера кэша, на количество страниц – скажем, если
кэш размером 256Кб является 4-ассоциативным, то размер его страницы – 256К/4=64К.


К сожалению, размер tag не всегда позволяет кэшировать всю
память. Из MSR-регистра
(см. ниже) по адресу 0x11E для
P6 можно узнать размер
кэшируемой области для L2.




Разделенный кэш.




В реальных процессорах кэш L1 обычно разделен на 2 части – кэш L1 для данных и L1 для инструкций. Это так
называемая Гарвардская архитектура, в противоположность Принстонской с общим
кэшем. Разделение кэшей позволяет оптимизировать каждый из них под определенные
функции и разметить поближе к соответствующим функциональным блокам: L1 инструкций — поближе к
устройству выборки команд, а L1
для данных — поближе к исполнительным устройствам.


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


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




TLB буферы.




По сути  TLB (Translation Look-aside Buffer) буфер тоже является
разновидностью кэша, с той лишь разницей, что он кэширует не данные, как
обычный кэш, а адреса.


Для того чтобы понять, какие адреса надо кэшировать,
вспомним, как процессор работает в защищенном режиме с включенной страничной
адресацией (рассмотрим только базовый механизм): адрес разбивается на 3
составляющие, 2 из которых  являются
индексами с системных таблицах страниц подготовленных ОС, а 3-я часть смещением
в странице. В теории, процессор должен вычислять новый физический адрес для
каждого линейного. На практике, если процессор для любого адреса, генерируемого
программой начнет лазить по памяти и искать там таблицы – это будет крайне
медленно. Поэтому процессор кэширует в TLB соответствие логических и физических адресов для наиболее
часто используемых страниц. Некоторые инструкции, вроде mov cr3, вызывают очистку буфера
(это же, явно или неявно, делают еще несколько инструкций).


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


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




Ядро процессора.




Конвейер.




Рассмотрим гипотетический процессор с 4 функциональными
блоками – выборки, декодирования, выполнения, сохранения результатов.
(Структура этих блоков нас в данный момент не волнует).


Выполнение команды складывается из 4 этапов – выборка из
памяти, декодирование, исполнение, запись результатов.


Есть последовательность команд: К1,К2,К3,К4


Если выполнение каждой команды занимает 4 такта процессора
(предположим что выполнение каждого из перечисленных выше этапов занимает 1
такт), то все они выполнятся за 4*4=16 тактов.




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





















Такты

Выборка

Декодирование

Исполнение

Запись результата

1

К1




2


К1



3



К1


4




К1

5

К2




6


К2



7



К2


8




К2

9

К3




10


К3



11



К3


12




К3

13

К4




14


К4



15



К4


16




К4

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












Такты

Выборка

Декодирование

Выполнение

Восстановление

1

К1




2

К2

К1



3

К3

К2

К1


4

К4

К3

К2

К1

5


К4

К3

К2

6



К4

К3

7




К4

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


Если учесть тот факт что процессор выполняет команды
непрерывно, получается, что в идеале конвейер всегда будет загружен на 100% (на
практике этого достичь сложно, реальный поток команд не строго последовательный
– там есть вызовы процедур, переходы и т.д.).


Расщепление этапов выполнения команды на составляющие,
позволяет увеличить степень параллелизма – в конвейере одновременно на разных
стадиях выполнения находится столько команд, сколько ступеней имеет конвейер.


Если какой-то блок конвейера вносит задержку, то тормозится
работа всего конвейера:  образуется так
называемый “пузырь” (pipeline bubble),
который должен пройти от места своего возникновения, до самого конца конвейера
(если, например, возникла задержка на ступени декодирования, то в следующем
такте блок выполнения от него ничего не получит, а через 2 такта,
соответственно блок сохранения результатов ничего не получит от блока
выполнения) . Таким образом, скоростью конвейера является скорость самой
медленной его ступени.




Возможно, кому-то это покажется интересным, но именно
конвейеризация приводит к «отложенным переходам» характерным для архитектуры SPARC. Отложенным переходом
называется ситуация когда процессором сначала исполняются одна или несколько
команд следующих ПОСЛЕ безусловного или условного перехода. Происходит это по
следующей причине – процессор «узнает» что выбранная им команда – команда
перехода только на этапе ее декодирования, причем, согласно логике
конвейеризации, команда, следующая за переходом, уже выбрана блоком выборки,
поэтому с точки зрения производительности было бы удобно не отбрасывать ее, а
выполнять, как если бы она находилась ДО перехода. Так и происходит. Величина
слота перехода (слот перехода – количество команд выполняемых безусловно, как
если бы они находились до перехода в коде программы) зависит от того насколько
рано процессор «узнает» о том что только что выбранная им команда – команда
перехода, чем позднее это происходит – тем больше слот перехода. Это свойство в
наибольшей степени соответствует философии RISC, потому что у CISC процессоров (которыми являются все процессоры x86) инструкции имеют разную
длину, в связи с чем, проще отбросить их на этапе выборки.




Нелинейный конвейер.




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







Сверху показан линейный конвейер, снизу – нелинейный.


Нелинейный конвейер на рисунке – гипотетический, такой
конвейер нигде не применяется, я привожу его просто для демонстрации.




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


Декодирование – более медленная операция, чем выборка из
кэша, поэтому декодеров может быть много (обычно не больше 4-х), стадия
определения операндов может быть встроена в стадию декодирования, а может и
выполняться отдельным блоком, как показано на рисунке.


Суть декодирования в том, что команда разбивается на
элементарные составляющие называемые микрооперациями, например, команду add eax,[esi] можно разбить на 2 микрооперации –
первая считывает значение из памяти по адресу ESI, а вторая – складывает это значение
с регистром EAX.


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


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


Наконец, выполнение – обычно самая медленная операция, она
может выполняться 5-ю и более устройствами параллельно (имеется ввиду, что за
один такт может быть выполнено 5 и более команд, а не выполнение одной команды
5-ю устройствами).


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




Конфликты в конвейере.




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


Конфликты бывают 3-х основных типов:




1)      Конфликт по данным.


2)      Конфликт по управлению.


3)      Структурный конфликт.




Конфликт по данным происходит, когда команда N использует
результат команды N-1. При
исполнении в конвейере первая команда выполняется и переходит на ступень
сохранения результатов, в этот же момент вторая команда (использующая
результаты первой) поступает на ступень выполнения, но так как результаты
первой команды еще не сохранены, то возникает конфликт – второй команде
приходится ждать – возникает «пузырь» со всеми его негативными последствиями.


Конфликт по управлению возникает в случае, если команды
изменяют значение счетчика команд (EIP). При этом нарушается естественный линейный ход программы и
возникает конфликт.


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




Предсказание
переходов.




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


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


Процессор оказывается в затруднительной ситуации – откуда
выбирать команды дальше? Самое простое решение – останавливать выборку до
вычисления условия. В таком случае (с учетом того, что переходы встречаются в
среднем через каждые 20-30 команд) “пузыри” в конвейере сведут на нет все плюсы
конвейеризации.


Для минимизации проблем связанных с переходами был
разработан механизм прогнозирования. Суть его в том, что процессор пытается (по
определенным критериям) «угадать» будет переход или не будет. В случае успеха,
работа конвейера не прервется, и к моменту фактического исполнения перехода
исполнительными устройствами процессор уже будет иметь выбранные и
декодированные команды после него, в случае же промаха придется сбрасывать все
команды, декодированные и выполненные после перехода и перезагружать конвейер в
соответствии с новым адресом. Механизмы прогнозирования ветвлений обсуждаются
для каждого процессора отдельно.


Когда команда перехода доходит до исполнительных устройств,
становится известно, какое истинное условие перехода, тогда же проверяется –
была ли предсказанная ветвь верной.


Если предсказанная ветвь была неправильной, все инструкции,
выбранные после перехода, помечаются согласно интеловской терминологии как поддельные (bogus instructions) и удаляются из всех
буферов. Методы определения, какая команда выбрана до перехода, а какая после,
также обсуждаются в следующих частях.




Переименование
регистров.




Команды в любой более-менее сложной программе обычно зависят
друг от друга по данным. Зачастую зависимость по данным не является необходимой
– просто так уж повелось у программистов: чем меньше переменных (и регистров в
программах на ассемблере) использует программа – тем лучше, хороший тон и все
такое.


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


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


Суть механизма в том, что процессор имеет больше регистров,
чем доступно программисту. Каждый раз, когда команда прямо или косвенно пишет в
регистр, ей выделяется новый физический регистр. Имеется также таблица
отображения логических (видимых программисту) регистров на физические (видимые
только процессору). Когда команде выделяется новый физический регистр,
обновляется таблица – логический регистр, на который ссылалась команда,
ставится в соответствие выделенному физическому регистру.


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


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








1

Команда пишет в R0

С этого момента R0 соответствует выделенному для команды регистру PHY0

2

Команда читает из R0

Читает из PHY0

3

Команда пишет в R0

С этого момента R0 соответствует выделенному для команды регистру PHY1

4

Команда читает из R0

Читает из PHY1

Эффект от этого такой: по таблице видно, что команды стали
независимы. Если команды, работающие с логическим R0, зависят друг от друга и их нельзя
выполнять параллельно, то микрооперации, «разведены» по PHY0 и PHY1 и независимы, их можно выполнять
параллельно.


В современных процессорах набор архитектурных регистров
отделен от файла временных регистров. Запись в архитектурные регистры возможна
только в результате восстановления команды.




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




Технология Data forwarding.




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


Технология Data forwarding была разработана как раз с целью устранить реальные
зависимости по данным в последовательных командах.


Прежде чем рассматривать ее подробно, разберемся с тем, как
работает классическое АЛУ (арифметико-логическое устройство) – оно имеет 2
входа для операндов, входы для указания операции, один выход для результата и
выходы для установки флагов по результатам выполнения операции.







Для того чтобы посчитать C=A+B нужно проделать следующие
действия:




1)      подать первый операнд на шину A


2)      подать второй операнд на шину  B


3)      установить код операции «сложение»




после этого на выходе C появится результат.




Какие регистры подавать на какие шины, и какую операцию
делать АЛУ определяют поля микрооперации выполняемой в данный момент.




Если следующая команда использует этот результат, ей нужно
ждать пока значение C перепишется из выходов АЛУ в регистровый файл (RRF – retirement register file), после чего его можно
будет снова подать на шину одного из операндов и использовать при выполнении
следующей операции.


При этом результат команды совершает следующее путешествие –
выход АЛУ – регистровый файл – вход АЛУ. Регистровый файл в данном случае –
лишнее звено, он только вносит дополнительную задержку.


Процессор, поддерживающий технологию Data forwarding, поступает по
другому – при исполнении команды, если ее результат нужен следующей, сигналы с
выходов АЛУ подаются обратно на входы.



Имеется специальное устройство, условно назовем его DF. Оно управляется частями
процессора ответственными за переименование регистров. Если процессор
определяет, что текущий операнд нужен следующей команде, он указывает DF какую
шину нужно соединить с выходом АЛУ. В следующем такте параллельно начинается
сохранение результата предыдущей команды и выполнение текущей.




При этом значение результата записывается в регистры, как и
положено, на стадии восстановления, просто если команда использует результаты
предыдущей команды, не происходит задержки, так как значение появляется на
входах АЛУ раньше, чем попадает в регистры.




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


В реальных процессорах все немного по-другому, но на данном
этапе их рассматривать еще рано.




Суперскалярные
процессоры.




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


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


Возникает резонный вопрос: «Если последовательность команд
нарушить, в общем случае получим неверные результаты?». Ответ – не получим,
применение специальной техники позволяет делать еще и не такое.


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





В эту схему, правда, с некоторыми оговорками, вписываются
все рассматриваемые нами процессоры от Pentium II до AMD Opteron.


Работает это так: блок выборки и декодирования выбирает
команды из памяти, декодирует их на микрооперации, после чего последние
попадают в пул инструкций (также называемый буфером команд или резервационной
станцией), откуда их по мере готовности выхватывает исполняющее ядро, порядок
их исполнения может отличаться от предписанного программой. В результате
стараний блока переименования регистров, микрооперации, попадающие в пул команд,
зависят друг от друга только там где реально есть зависимость. Готовность
микрооперации определяется готовностью ее операндов и готовностью
исполнительного блока, который может выполнить ее. Как только микрооперация
становится готова к исполнению, она тут же передается в функциональное
устройство. Важно понимать, что выполнение микрооперации может начаться и ДО
того момента как до нее дойдет очередь в потоке команд.


После исполнения, микрооперация вместе с результатами своего
исполнения (которое хранится обычно либо в полях микрооперации, либо во
временных регистрах) возвращается обратно в пул инструкций. Устройство
восстановления последовательности ищет выполненные команды в пуле команд и
восстанавливает их в последовательности программного кода. Операция
восстановления включает запись информации из временных регистров в постоянные и
инкремент на длину команды указателя инструкций (регистра EIP в
процессорах х86). Команда считается выполненной не тогда, когда она собственно
выполняется исполнительными устройствами, а тогда, когда она восстанавливается.


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




MSR регистры.




Что такое MSR?




MSR расшифровывается как Model-Specific Registers
– модельно-специфические регистры.


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


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


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


Например, управление параметрами кэша, множителем частоты и
т.д. всегда осуществляется через MSR, поскольку все эти вещи существенно меняются от процессора к
процессору.




Программное
взаимодействие с
MSR.




Для взаимодействия с MSR введены (с Pentium)
две новые команды RDMSR
и WRMSR. RDMSR принимает в ECX номер MSR-регистра (эти регистры не имеют
имен, к ним обращаются по номерам), а возвращает значение 64 битного регистра в
EDX:EAX. Вторая команда аналогично принимает
в ECX номер и
переписывает содержимое пары EDX:EAX  в выбранный MSR регистр.




Счетчики
производительности.




В процессорах, начиная с Pentium, присутствуют особые счетчики называемые счетчиками
событий производительности. Они считают различные события, происходящие на
уровне микроархитектуры процессора – выполненные команды, принятые прерывания,
неверно предсказанные переходы и т.д.


Счетчики входят в состав MSR, их программирование на подсчет определенных событий
осуществляется также с помощью MSR.


В ранних процессорах считывание счетчиков могло
осуществляться только через команды доступа к MSR – RDMSR. Начиная с процессоров P6, появилась новая команда –
RDPMC (ReaD Performance Monitoring Counters). Эта команда
принимает в ECX номер счетчика, и после своего выполнения возвращает в EDX:EAX значение
выбранного счетчика.


Эта команда очень удобна, ее выполнение можно разрешить на
любом уровне привилегий (через регистр CR4), тогда как RDMSR можно выполнять только при CPL=0.




Kernel-mode драйвер MSR.SYS.




Доступ к MSR
должен быть разрешен только коду с CPL=0. Неосторожное изменение параметров в этих регистрах может
привести к разным последствиям от перезагрузки до изменения аппаратной конфигурации
процессора на время сеанса. Например, в P6 можно одной командой WRMSR отключить L2
(операционная система при этом зависает, так как кэш отключается сразу,
обратная запись не выполняется, и данные теряются).


Если не знать что и как туда писать то с вероятностью 70% вы
получите BSOD (Blue screen of death)
при записи (а в некоторых случаях даже при чтении) под w2k/XP, а с
вероятностью 20% компьютер вообще перезагрузится. 




Так как управление счетчиками мониторинга происходит именно
через MSR нужно как-то
получить доступ в самое «сердце» процессора. Эту задачу и решает драйвер режима
ядра msr.sys.


Хотя вопросы разработки драйверов выходят за рамки этого
мануала, все же рассмотрим некоторые основные моменты.


Драйвер в процедуре своей инициализации DriverEntry устанавливает
8-ой бит в регистре CR4,
чем разрешает выполнение команды RDPMC на любом уровне привилегий, это
нужно для считывания счетчиков мониторинга производительности на CPL=3.


Далее драйвер создает виртуальное устройство с именем msr и
символьную ссылку на него с тем же именем.


Реализованы 2 функции – запись в msr регистр и чтение из него. Программа
передает драйверу функцию (чтение или запись) и 12 байт в буфере, 4 первые –
индекс регистра, после этого 8 байт – значение регистра.


Исходник фрагмента реализующего требуемые функции выглядит
так (в EAX находится значение функции, переданное программой):


Код (Text):

  1.  

  2. .if eax == MSR_READ            

  3.    mov ecx,dword ptr [ebx]    ;Извлекаем из буфера адрес MSR

  4.    rdmsr                      ;Читаем этот регистр.

  5.    mov dword ptr [ebx+4],eax  ;Помещаем в буфер младшие 4 байта

  6.    mov dword ptr [ebx+8],edx  ;и старшие 4 байта

  7.    mov dwBytesReturned,12     ;Размер передаваемых данных — 12 байт (адрес

  8.                               ;переданный программой тоже ей возвращается)

  9.  .elseif eax == MSR_WRITE

  10.    mov ecx,dword ptr [ebx+0]    ;Извлекаем из буфера индекс регистра

  11.    mov eax,dword ptr [ebx+4]    ;и 8 байт его нового значения

  12.    mov edx,dword ptr [ebx+8]

  13.    wrmsr                    ;И пишем значение в регистр

  14.    mov dwBytesReturned,0            ;Программе ничего в буфере не возвращаем

  15. …                     ;Обработка неверного номера функции

  16. .endif


Полный исходник драйвера прилагается к мануалу. Компилить
сие творение надо MASM-ом,
bat-файл кимпилящий
драйвер также прилагается. Для компиляции нужно скопировать инклуды и либы в
соответствующие каталоги, после чего скопировать папку содежащую 3 файла – asm bat и
rc в
каталог masm32/bin. После отработки bat-а в той же папке появится
свежескомпиленный msr.sys.




msrdrv.h




Для облегчения установки и удаления драйвера я разработал
включаемый файл, в котором реализованы все необходимые функции и подключено все
что нужно. Объявление экземпляра объекта класса MSRInterface приводит к автоматической
проверке наличия файла msr.sys в каталоге программы и
если он там есть – производится создание виртуального устройства, символьной
ссылки и регистрация драйвера в системе. Для программиста все это происходит
прозрачно, нужно только объявить объект, после чего становятся доступны функции
<имя_объекта>.WriteToMSR
и <имя_объекта>.ReadFromMSR.


Значение msr-регистра
описывается объединением (имеется ввиду структура данных в С++ «объединение») MSR описание
которого можно увидеть в исходниках. Данный подход позволяет обращаться к
значению регистра по двойным словам и учетверенным словам.




MSR tool.


 


Специально для любителей самостоятельно ковыряться во
внутренностях своих кремниевых друзей я разработал одну небольшую утилиту –
MSR tool. Данная утилита
позволяет читать и писать любые значения в любые MSR регистры.




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


Тем, кто решит самостоятельно экспериментировать с программой,
советую вначале внимательно ознакомиться с разделом Model-Specific Registers в
мануале по тому процессору, на котором происходят эксперименты, иначе результат
этих экспериментов непредсказуем.




Окно программы выглядит так:







В верхнее поле заносится значение MSR регистра,
поле допускает ввод только шестнадцатеричных чисел. В нижнее поле заносится
индекс или адрес MSR
регистра, который нужно считать или записать, в этом поле можно вводить числа в
10-ой или 16-ой системе счисления, 16-ые числа должны быть указаны с префиксом “0x”.




Read считывает значение указанного регистра и отображает его в
верхнем поле. Write записывает значение регистра указанное в верхнем поле в
нужный MSR. Clear очищает
оба поля.




В качестве демонстрации можете провести следующий безобидный
эксперимент – считать счетчик тактов не через команду RDTSC, а напрямую из регистра. Так,
счетчик является во всех рассматриваемых процессорах MSR регистром с
адресом 16 (0x10).


Введите в нижнее поле значение “0x10” и нажмите read. В верхнем поле отобразится текущее
значение счетчика тактов. Должно получиться что-то вроде этого:



Важный момент: если Вы пренебрегли чтением мануала и
компьютер перезагрузился во время работы программы то закрытие хэндлов драйвера
не произошло корректно и драйвер остался «висеть» в реестре.


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


Чтобы вылечить этот недуг нужно вручную удалить раздел
реестра:


HKLM\SYSTEM\CurrentControlSet\Services\MSR


И после этого перезагрузиться.




Processor spy – performance
monitoring packet.




В следующих частях мы будем отслеживать события
микроархитектуры процессора используя разработанный мной пакет программ Processor spy. Этот пакет пока включает
в себя 4 программы – по одной для каждого типа процессора из тех, которые мы
рассматриваем. В объединении всех процессоров в одной программе я смысла не
вижу, так как процессор в системе не меняется в течение длительного времени,
проще один раз скачать то, что нужно и использовать, не таская с собой
«балласт» кода предназначенного для других процессоров. Программа написана на C++ Builder 6.0. Именно этот компилятор был
выбран по тем соображениям, что он имеет встроенный компонент TPerformanceGraph – график
производительности. У меня не было особого желания реализовывать его самому, поэтому
я использовал готовый – стандартный программистский подход J.


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


Весь пакет переделывался и переписывался по крайней мере 4
раза, поэтому когда были написаны статьи, я решил не изобретать велосипед и
оставить все в той форме в которой это было протестировано. Любая оптимизация
приводила к тому, что нужно было снова искать нужный процессор и тестировать на
нем новую версию, поэтому поймите меня правильно J.




Заключение.




Вот собственно и вся основная теория. В следующих частях
будем рассматривать все это применительно к конкретным процессорам.


Хотелось бы выразить благодарность Four-F замечательные статьи которого очень
помогли в создании драйвера.


Еще хочу поблагодарить E}I{-а
редактировавшего статью, и фактически являющегося соавтором, а также всех людей
на чьих компьютерах я тестировал (и разрабатывал) программы (в алфавитном
порядке):


это bucher,
decibel, GRM, korn, Mr_Depth, Proton, Vanadix, ][-vir и другие.




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


В споре рождается истина, так что…


мой почтовый ящик [email protected]  




Кстати, все любители поговорить о процессорах и их
внутреннем устройстве приглашаются на IRC канал #system на
сервере IRC.BY или
IRC.BYNETS.ORG.




(С) Dark_Master 2004


© Dark_Master

битсум. Оптимизация и автоматизация ЦП в реальном времени

Обрабатывать лассо

Process Lasso — это программа для автоматизации и оптимизации процессов Windows. От настройки алгоритмов, таких как ProBalance, до правил, создаваемых пользователем, и постоянных настроек, таких как сродство ЦП и классы приоритета, Process Lasso обеспечивает полный контроль над запущенными приложениями!

Наш знаменитый алгоритм ProBalance поддерживает отзывчивость системы при высокой загрузке процессора. Этот запатентованный алгоритм динамически регулирует приоритеты запущенных программ, чтобы контролировать проблемные фоновые процессы.С ProBalance ни один, ни несколько процессов больше не смогут перевести вашу систему в виртуальное состояние. Process Lasso позволит вам продолжать взаимодействовать с вашим компьютером, даже когда он сильно загружен. Попробуйте нашу демонстрацию CPUEater, чтобы испытать ProBalance на себе.

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

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

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

Для минимального использования ресурсов все алгоритмы и правила процессов выполняются автономной фоновой службой, называемой Process Governor. Графический интерфейс не является обязательным.

Правила процессов, постоянное сродство ЦП и классы приоритета, автоматическая оптимизация, запреты приложений, балансировка нагрузки, автоматизация схемы управления питанием и многое другое!
https: // битум.com / wp-content / gallery / lasso-Feature / 2.png
https://dl.bitsum.com/files/processlassosetup64.exe
Windows

4,4 / 1244

Цена обновления Pro: $ 24,95
доллар США

Видео о процессе гарантии

для процессоров Intel®

Использование поиска Intel.com

Вы можете легко выполнить поиск по всему сайту Intel.com несколькими способами.

  • Имя бренда:

    Core i9
  • Номер документа:

    123456
  • Кодовое имя:

    Kaby Lake
  • Специальные операторы:

    «Ледяное озеро», Лед И Озеро, Лед ИЛИ озеро, Лед *

Быстрые ссылки

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

определение процессов в Free Dictionary

proc · ess 1

(prĕs′ĕs ′, prō′sĕs ′) n. пл. proc · ess · es (prs′ĕs′ĕz, prō′sĕs′-, prŏs′ĭ-sēz ′, ​​prō′sĭ-)

1. Серия действий, изменений или функций, вызывающих результат: процесс пищеварения; процесс получения водительских прав.

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

3. Прогресс; отрывок: процесс времени; события сейчас в процессе.

4. Закон

a. Использование судов и других форумов в качестве средства правовой защиты: состязательный процесс; надлежащая правовая процедура.

б. Совокупность действий и событий, составляющих судебное разбирательство или значительную его часть: судебный процесс; процесс вынесения приговора.

5. Закон Средство принуждения человека явиться в суд, особенно вызов, требующий, чтобы ответчик явился в суд.

6. Биология Вырос из ткани; выступающая часть: костный отросток.

7. Любой из различных методов фотомеханики или фотогравюры.

8. Компьютеры

а. Работающая программа или другая вычислительная операция.

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

тр.в. процесс , процесс , процесс

1. Для прохождения этапов установленной процедуры: обработка вновь прибывших иммигрантов; оформить заказ.

2. Для подготовки, обработки или преобразования с применением специального процесса: обработка руды для получения минералов.

3. Компьютеры Для выполнения операций с (данными).

4. Для понимания или принятия; смириться с: обработать травматическое событие в терапии.

5. Для выпрямления (волос) химическим способом; конк.

прил.

1. Приготовлен или преобразован с помощью специального процесса: плавленый сыр.

2. Изготавливается или используется в любом из нескольких процессов фотомеханики или фото гравировки: технологическая печать.


[среднеанглийский процесс, от старофранцузского, развитие , от латинского prōcessus, от причастия прошедшего времени prōcēdere, до продвинутого ; см. продолжение.]

Примечание по использованию: В последние десятилетия появилась тенденция произносить окончание множественного числа -es из процессов как (-ēz), возможно, по аналогии со словами греческого происхождения, такими как анализ и диагноз . Но процесс не имеет греческого происхождения, и этому произношению его множественного числа нет этимологического обоснования. Однако, поскольку такое произношение нередко даже в образованной речи, оно обычно считается приемлемым вариантом, хотя некоторым слушателям оно все еще кажется неуместным. · Хотя произношение process с длинным (o), (prō′sĕs ′) более распространено в британском и канадском английском, это приемлемый вариант для американского английского.


процесс 2

(прə-сĕс ‘) внутр. обработал , обработка , процес

Чтобы продвигаться в процессии: «Мужчина в панамной шляпе протянул руку, и … они прошли в столовую. «(Анита Брукнер).


Словарь английского языка American Heritage®, пятое издание. Авторское право © 2016 Издательская компания Houghton Mifflin Harcourt. Опубликовано Houghton Mifflin Harcourt Publishing Company.Все права защищены.

Процессы

1. процесс кипячения вещества в воде для извлечения его сущности.
2. сущность произведена таким образом.

процесс снятия или удаления коркового слоя или внешнего слоя.

1. процесс таяния или увлажнения из-за поглощения влаги из воздуха.
2. жидкое вещество, образованное таким образом. Ср. высолы. — расплывчатый, прил.

процесс подтягивания с корнем; искоренение.

процесс удаления накипи или опорожнения; образно пояснение.

шелушение кожи чешуей.

процесс деления пополам; состояние делится вдвое.

процесс подслащивания или удаления кислоты или других примесей из вещества.

1. процесс высыхания от испарения.
2. образованное таким образом вещество. Ср. Сибирь . См. Также воду. — выцветшие, прил.

Удаление растворимых веществ из вещества, подлежащего очистке, промыванием его водой.

процесс отмучивания или очистки промыванием и процеживанием.

Редко. процесс удаления мха.

(при осмосе) более быстрое распространение менее плотной жидкости через мембрану для соединения с более плотной. Ср. экзосмос. — эндосмотический, прил.

1. процесс извлечения, как удаление ядра из ореха.
2. процесс уточнения. Ср. экспертиза. — энуклеатор, н.

1. процесс исчезновения или исчезновения.
2. Условие преходящего.

Редко. процесс удаления ядра, как с ореха. Ср. Астрахань .

процесс снятия кожуры или внешнего слоя; содрать кожу. См. Также скин.

(при осмосе) более медленное распространение более плотной жидкости через мембрану для слияния с менее плотной. Ср. эндосмос. — экзосмотик, прил.

1. процесс искоренения или полного уничтожения, например, вырывание корней.
2. состояние полностью разрушено.

взрыв, который происходит при детонации определенных химических веществ.

1. процесс затвердевания или затвердевания.
2. затвердевшая масса. — индуктивный, прил.

процесс утолщения жидкости за счет испарения.- густой, н. — уплотненный, прил.

Устаревшее, восстановление чего-либо до прежнего состояния; обновление или ремонт. — установщик, н.

процесс распада, особенно разрушение или распад.

процесс становления молочного цвета или состояние молочного цвета. См. Также молоко. — матовый, прил.

процесс превращения в камень. Также называется окаменением , окаменением .

1. процесс измельчения до мелкого порошка.
2. процесс тщательного перемешивания или измельчения до однородной массы. — levigate, прил.

процесс подъема или подъема в воздух.

процесс выщелачивания щелочных солей из золы путем обливания их водой. — lixivial, — lixivious, прил.

процесс консервирования таких веществ, как кровь или сыворотка, путем сублимационной сушки в высоком вакууме.

акт или процесс размягчения или разделения путем замачивания или замачивания.

действует как фиксатор при крашении. — протравы, н. , прил.

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

тщательный поиск; внимательный и детальный запрос.

Iapidification.

1. состояние или процесс гниения или разложения.
2. гниющее или разлагающееся вещество. — гнилой, прил.

Редко. акт или процесс встряхивания или встряхивания.

процесс обновления или возрождения. — новобранцев, прил.

акт или процесс обновления или возрождения.

процесс искр или вспышек, используемый в остроумии или юморе, а также мерцание звезд.

процесс восстановления до шлака, шлака или окалины, как при рафинировании металлов.

-Ologies & -Isms. Copyright 2008 The Gale Group, Inc. Все права защищены.

Что такое потоки в процессоре? [И почему они имеют значение]

WhatsaByte может получать долю от продаж или другую компенсацию по ссылкам на этой странице.

Вы кое-что знаете о компьютерах. Вы в значительной степени осведомлены о том, что делает и как работает процессор. И вы знаете, что чем больше потоков, тем выше производительность.

Но когда дело доходит до этого, знаете ли вы, что означает, когда люди говорят о нитях? Вы знаете, что это такое? Вы знаете, почему они так важны?

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

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

Читать статью: Как сделать резервную копию вашего компьютера


Краткое описание резьбы

У всех центральных процессоров есть потоки, но что именно это означает? Проще говоря, потоки — это то, что позволяет вашему процессору выполнять несколько задач одновременно. Поэтому, если вы хотите запустить несколько процессов, которые очень интенсивны, вам понадобится ЦП с большим количеством потоков.

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

Количество имеющихся потоков зависит от количества ядер в вашем процессоре. Каждое ядро ​​ЦП может иметь два потока. Таким образом, процессор с двумя ядрами будет иметь четыре потока. У процессора с восемью ядрами будет 16 потоков.

Процессор с 24 ядрами (да, такие есть) будет иметь 48 потоков.

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

Мы подробно рассмотрим, что именно такое потоки, почему вам нужно понимать, что они делают и почему они так важны.


Что такое центральные процессоры?

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

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

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

Это ядро ​​вашего компьютера, и ваш компьютер не может работать без него.

Центральный процессор иногда называют мозгом компьютера.Он расположен на материнской плате (также называемой основной платой) и является отдельным компонентом от компонента памяти.

Он действует на компонент памяти, в котором хранятся все данные и информация в вашей системе. Компонент памяти и ЦП отделены от вашей видеокарты. Единственная функция видеокарты — принимать данные и преобразовывать их в изображения, которые вы видите на своем мониторе.

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

Закон Мура назван в честь соучредителя Intel Гордона Мура. По мнению Мура, количество транзисторов в интегральной схеме удваивается каждые два года.

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


Что делает процессор?

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

На первом этапе ЦП извлекает инструкции из памяти вашей системы. Получив инструкции из памяти, он переходит ко второй фазе.Именно на этом втором этапе он декодирует эти инструкции.

После того, как машина декодировала инструкции, она переходит к третьему этапу выполнения.

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

Этот цикл повторяется снова и снова для каждого выполняемого вами действия и команды. В передовых технологиях ЦП компоненты ЦП больше не делают все сами.

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

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


Что такое нити?

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

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

Обычно они управляются планировщиком, который является стандартной частью любой операционной системы.

Чтобы создать поток, вы должны сначала создать процесс. По завершении процесс создает поток, который затем выполняется. Это может быть короткий или длительный период времени, в зависимости от процесса.

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

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

Вы также услышите, как люди используют такие термины, как «многопоточность» и «гиперпоточность». Технология Hyper-Threading позволяет одному ядру ЦП работать как два ядра, ускоряя выполнение конкретной программы или приложения.

Даже с одним ядром он может моделировать производительность, как если бы у вас их два. Чем больше у вас ядер, тем больше у вас потоков. Чем больше у вас потоков, тем выше будет производительность вашей системы.

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

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


Как потоки и ЦП работают вместе?

Чтобы лучше понять, что такое поток, полезно знать, как потоки и ЦП работают вместе. Мы говорим «поток», чтобы упростить идею, но на самом деле вы должны думать о нем как о «потоке выполнения».

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

Процессоры

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

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

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

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


Какие процессоры имеют больше всего потоков?

Теперь, когда вы кое-что знаете о потоках, вы, скорее всего, думаете: «Мне нужен более быстрый процессор с большим количеством потоков». Но как вы можете быть уверены, что покупаете процессор с достаточным количеством потоков, чтобы обеспечить необходимую мощность и производительность?

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

Intel Core i9-7980XE Extreme

18 ядер означает 36 потоков, что делает Intel Core i9-7980XE Extreme одним из самых быстрых и мощных процессоров на рынке. Он может похвастаться кеш-памятью 24,74 МБ, тактовой частотой 2,60 ГГц и максимальной частотой в турбо-режиме 4,20 ГГц.

Intel Core i9-7960X

16 ядер, 32 потока и максимальная частота в режиме турбо 4,20 ГГц делают Intel Core i9-7960X фаворитом.Благодаря тактовой частоте 2,80 ГГц и кэш-памяти 22 МБ, это отличный вариант, если вам нужна мощность и производительность.

AMD Ryzen Threadripper 1950x

AMD Ryzen Threadripper 1950x поставляется с 16 ядрами, этот процессор может похвастаться 32 потоками, тактовой частотой ускорения 4,0 ГГц и кеш-памятью третьего уровня объемом 32 МБ. Многие пользователи считают его более гибким, чем сопоставимые процессоры с Intel Core i9.

Intel Core i9-7940X

Intel Core i9-7940X с 14 ядрами и 28 потоками обеспечивает максимальную частоту в турборежиме 4.30 ГГц и максимальная тактовая частота 3,10 ГГц. Это один из многих мощных процессоров Intel Core i9, обеспечивающих отличную производительность.

Intel Xeon Platinum серии

Если вам нужен лучший процессор и максимальное количество потоков, обратите внимание на серию Intel Xeon Platinum. Процессоры Intel известны как лучшие в отрасли, и не зря.

Модели Platinum 8176, 8176F и 8180 могут похвастаться 28 ядрами с 56 потоками. Platinum 8164 и 8170 имеют 26 ядер и 52 потока.Если это больше, чем вам нужно, Platinum 8160, 8168, 8160T и 8160F могут похвастаться всего 24 ядрами с 48 потоками.

Производительность Intel Xeon обещает быть впечатляющей, но вам придется выложить большие деньги за этих чудовищ. (Текущая цена модели 8180 составляет 8999 долларов на Amazon).


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

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

В Windows все потоки активно работают в течение некоторого периода времени.Некоторые процессоры имеют несколько потоков с гиперпоточностью, которые имитируют удвоенное количество ядер процессора, которое у вас есть.

Благодаря многопоточности даже один процессор может одновременно выполнять множество задач.

Чтобы система работала, вам нужен правильный ЦП и нужное количество потоков. Вместе они являются важными элементами, которые позволяют вашему компьютеру работать.

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

Без этих двух элементов вы вообще не увидите никакой производительности.

Если вы хотите убедиться, что ваш процессор предлагает достаточно потоков, изучите разницу, чтобы узнать, на что способны разные процессоры. Сравните затраты, сравните функции и сравните производительность.

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

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

Если вы сделаете домашнее задание, вы найдете процессор с достаточным количеством потоков для обеспечения необходимой производительности.

Читать статью: Лучшие игровые процессоры 2018 года

9 команд для проверки информации о процессоре в Linux — BinaryTides

Информация об аппаратном обеспечении ЦП

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

В Linux существует довольно много команд для получения этих сведений о процессоре.

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

1. / proc / cpuinfo

Файл / proc / cpuinfo содержит подробную информацию об отдельных ядрах процессора.
Выведите его содержимое с помощью less или cat.

 $ меньше / proc / cpuinfo
процессор: 0
vendor_id: GenuineIntel
семейство процессоров: 6
модель: 23
название модели: Intel (R) Core (TM) 2 Quad CPU Q8400 @ 2.66 ГГц
шаг: 10
микрокод: 0xa07
процессор, МГц: 1998.000
размер кеша: 2048 КБ
физический идентификатор: 0
братья и сестры: 4
идентификатор ядра: 0
ядер процессора: 4
апицид: 0
начальный апицид: 0
fpu: да
fpu_exception: да
уровень процессора: 13
WP: да
флаги: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts bts rep_good16fm dspfm dsprt_sperfm_sperfm_sperfm_s_good16fm ds_spr_s_spr_spfm_sperfm_sperfm_sperfm_sperfm_sperfm_spr_s_good16fm_sperfm_sperfm_sperfm_sperfm_sperfm_x pdcm sse4_1 xsave lahf_lm dtherm tpr_shadow vnmi flexpriority
bogomips: 5303.14
размер clflush: 64
cache_alignment: 64
размеры адреса: 36 бит физический, 48 бит виртуальный
управление питанием: 

Каждый процессор или ядро ​​указаны отдельно, в описание включены различные сведения о скорости, размере кэш-памяти и названии модели.

Для подсчета количества процессоров используйте grep с wc

 $ cat / proc / cpuinfo | процессор grep | wc -l
4 
 Число процессоров, указанное в / proc / cpuinfo, может не совпадать с фактическим числом ядер в процессоре.Например, процессор с 2 ядрами и гиперпоточностью будет отображаться как процессор с 4 ядрами. 

Чтобы получить фактическое количество ядер, проверьте идентификатор ядра на предмет уникальных значений

 $ cat / proc / cpuinfo | grep 'идентификатор ядра'
идентификатор ядра: 0
идентификатор ядра: 2
идентификатор ядра: 1
идентификатор ядра: 3 

Итак, есть 4 разных идентификатора ядра. Это указывает на то, что фактических ядер 4.

2. lscpu — отобразить информацию об архитектуре процессора

lscpu — это небольшая и быстрая команда, для которой не нужны параметры.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *