Разное

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

Содержание

На что влияет кэш процессора

Любой компьютер работает как вычислительная машина, в которую вводят исходные данные и от которой требуют вывода результатов определённых вычислений. Для хранения исходных и выходных данных используются жёсткие диски (HDD) и/или твердотельные накопители (SSD), оперативная память (ОЗУ/RAM) и кэш процессора (CPU Cache).

Читайте также: Принцип работы современного компьютерного процессора

Влияние кэша на обработку данных

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

Устройство кэша процессора

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

Память кэша процессора делится на несколько уровней: от L1 до L3. В некоторых моделях был L4, хотя от четвёртого уровня, который использовался в таких CPU, как Core i7-5775C и Core i5-5675C, решили отказаться из-за высокой розничной стоимости.

  • L1 — кэш-память первого уровня, обладает минимальным объёмом, не превышающим нескольких сотен килобайт, и самой большой скоростью, позволяющей выдавать информацию сразу после запроса. У каждого ядра присутствует своя схема L1. Информация хранящаяся в кэше первого уровня, является необходимой или чаще всего запрашиваемой для вычислений процессора.
  • L2 — кэш-память второго уровня, несколько больше по объёму, может достигать пару мегабайт, при этом уже не такая быстрая. В ней временно хранятся важные данные, которые пользуются меньшим приоритетом при вычислениях. Как и в случае с L1, у каждого ядра своя отдельная схема памяти L2.
  • L3 — кэш-память третьего уровня, наибольшая по объёму, достигает десятка, и даже чуть больше, мегабайт, но притом самая медленная. Содержит данные, вероятность запроса которых относительно мала, при этом третий уровень является общим для всех ядер, что улучшает взаимодействие между ними.

Общий принцип работы кэша таков: процессор даёт запрос контроллеру достать из памяти какие-то данные. Контроллер, следуя сложным алгоритмам, последовательно обращается к уровням, то есть от L1 до L3, в поисках нужной информации. Алгоритмы контроллера должны фактически предугадывать, какая информация потребуется процессору для дальнейших вычислений. Если данных нет на L1, то идёт поиск по L2, а потом по L3, при этом создаётся соответствующая задержка, при которой CPU ожидает необходимую информацию. Только когда запрашиваемых данных нет в памяти кэша, происходит запрос к RAM, и CPU действительно простаивает, общение между уровнями кэша не превышает больше десятка наносекунд, даже в случае поиска информации на последнем уровне L3.

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

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

Читайте также: Устройство современного процессора компьютера

Влияние кэша

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

Обобщая вышесказанное, выходит, что кэш влияет на производительность процессора, лишая его надобности каждый раз делать запрос оперативной памяти на одни и те же данные, храня их у CPU «под боком». В таком случае CPU больше не нуждается в постоянном обновлении информации для однотипных вычислений, и делает их максимально быстро. При этом процессор становится условно независимым от частоты ОЗУ, так как что разница между 1066 МГц и 2400 МГц будет не в 2,25 раза, а в пределах 5% для передачи информации между CPU и RAM.

Как узнать, какой объём кэша у процессора

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

  1. Пример отображения технических характеристик на сайте AMD.
  2. Перейти на официальный сайт AMD

  3. Пример отображения технических характеристик на сайте Intel.
  4. Перейти на официальный сайт Intel

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

Заключение

Следует подытожить, что кэш процессора первостепенно влияет на его производительность и общий комфорт пользователя при работе с ПК, не вынуждая юзера длительное время просто просиживать за компьютером, ожидая пока компоненты системы передадут друг другу необходимую информацию для вычислений. При этом кэш лишил пользователей острой надобности в подборе и использовании самых быстрых и с тем дорогостоящих HDD или SSD вкупе с высокочастотной оперативной памятью для минимизации и без того больших простоев. Так что чем больше и сегментированнее кэш (AMD в своё время сделала общий L1 для своей новой линейки процессоров, и те вышли очень малопроизводительными), тем быстрее работает CPU, что удобнее для юзера, и наоборот.

Мы рады, что смогли помочь Вам в решении проблемы.

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

Помогла ли вам эта статья?

ДА НЕТ

L1, L2 и L3 кэш. Определение — Железо на DTF

В любом процессоре компьютера, дешевого ноутбука или сервера за миллион долларов, везде есть кэш. И он имеет в себе несколько уровней.

Должно быть важный компонент, иначе зачем он там? Чем занимается кэш, и зачем ему несколько уровней? Что вообще означает 12-позиционная ассоциативность?

Что такое кэш?

Говоря кратко: Это небольшая, но очень быстрая память, которая располагается рядом с логическими блоками процессора.

Но, конечно, мы хотим узнать гораздо больше о кэше…

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

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

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

Великий слон хранения данных.

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

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

Кэш процессора — Национальная библиотека им. Н. Э. Баумана

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 21:29, 15 декабря 2016.

Кэш процессора — кэш, используемый процессором компьютера для уменьшения среднего времени доступа к компьютерной памяти. Является одним из верхних уровней иерархии памяти. Кэш использует небольшую, очень быструю память (обычно типа SRAM), которая хранит копии часто используемых данных из основной памяти. Если большая часть запросов в память будет обрабатываться кэшем, средняя задержка обращения к памяти будет приближаться к задержкам работы кэша. Когда процессору нужно обратиться в память для чтения или записи данных, он сначала проверяет, доступна ли их копия в кэше. В случае успеха проверки процессор производит операцию используя кэш, что значительно быстрее использования более медленной основной памяти.[1]

Назначение кэш памяти

Процессор работает с данными, хранящимися в оперативной памяти. Однако скорость работы оперативной памяти и процессора существенно различаются: если бы процессор напрямую общался с оперативной памятью, то большую часть времени простаивал бы. Именно для сокращения задержек доступа к оперативной памяти и применяется кэш­память, которая значительно более скоростная в сравнении с оперативной. Фактически если оперативная память используется для того, чтобы сгладить задержки доступа к данным на накопителе (HDD-диске, SSD-накопителе или флэш­памяти), то кэш­ процессора применяется для нивелирования задержек доступа к самой оперативной памяти. В этом смысле оперативную память можно рассматривать как кэш накопителя. Однако между оперативной памятью и кэшем процессора есть одно очень серьезное различие: кэш процессора полностью прозрачен для программиста, то есть нельзя адресовать программным образом находящиеся в нем данные.

Есть и другая причина, по которой необходимо использовать кэш­ как промежуточное звено между процессором и оперативной памятью. Дело в том, что процесс чтения и записи данных в оперативную память происходит не отдельными байтами, а пакетами, состоящими как минимум из четырех 64-разрядных ячеек. Это позволяет повысить эффективность работы памяти. Однако процессор загружает данные в свои регистры в виде байт, слов, двойных слов или даже четверных слов. В любом случае он не работает с пакетами данных. То есть минимальная единица информации, считываемая из оперативной памяти, всегда больше той минимальной единицы информации, с которой работает процессор. Возникает вопрос: если из памяти считывается целый пакет данных, а требуется, к примеру, только одно двухбайтовое слово, то куда девать все остальные байты? Отбрасывать их было бы крайне нерентабельно, поскольку велика вероятность, что если сейчас процессору требуются данные, расположенные по одному адресу в оперативной памяти, то в следующий момент он запросит данные, находящиеся по соседнему адресу. А потому считанный пакет данных из оперативной памяти нужно где-­то временно сохранить, то есть требуется промежуточная память для временного хранения считываемых данных. Аналогично запись в оперативную память происходит пакетами данных, но эти пакеты нужно где­-то предварительно сформировать, то есть опять-таки нужна временная память или кэш.[2]

Структура кэша

Система кэш-памяти процессора состоит из двух блоков — контроллера кэш-памяти и собственно самой кэш-памяти. Она представлена на рисунке 1.

Рис.1. Структура и функционирование кэша

Кэш память

Это место, где хранится содержание кэша. Кэш-память процессора изготавливают в виде микросхем статической памяти (Static Random Access Memory, сокращенно — SRAM). По сравнению с другими типами памяти, статическая память обладает очень высокой скоростью работы. Однако, эта скорость зависит также от объема конкретной микросхемы. Чем значительней объем микросхемы, тем сложнее обеспечить высокую скорость ее работы. Если такая особенность учтена производителем, то кэш-память процессора содержит несколько блоков, называемых уровнями. В большинстве процессоров используется трехуровневая система кэша:

  • Кэш-память первого уровня – очень маленькая, но самая быстрая микросхема памяти. Ее объем не превышает нескольких десятков килобайт. Работает она без каких-либо задержек. В ней содержатся данные, которые чаще всего используются процессором. Количество микросхем памяти, как правило, равно количеству его ядер. Каждое ядро имеет доступ только к своей микросхеме
  • Кэш-память второго уровня немного медленнее кэш-памяти первого, но и объем ее более существенный (около несколько сотен килобайт). Служит она для временного хранения важной информации, вероятность запроса которой ниже, чем у информации, находящейся в первом уровне
  • Кэш-память третьего уровня – еще более объемная, но и более медленная схема памяти. Тем не менее, она быстрее оперативной памяти. Ее размер может достигать нескольких десятков мегабайт. В отличие от 1 и 2 уровней, она является общей для всех ядер процессора. Служит для временного хранения важных данных с относительно низкой вероятностью запроса, а также для обеспечения взаимодействия ядер процессора между собой.

Контроллер кэш памяти

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

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

  • Размером и структурой кэш-памяти. Чем больше ресурсов имеет в своем распоряжении контроллер, тем ниже вероятность кэш-промаха
  • Эффективностью алгоритмов, по которым контроллер определяет, какая именно информация понадобится процессору в следующий момент времени
  • Сложностью и количеством задач, одновременно решаемых процессором. Чем сложнее задачи и чем их больше, тем чаще «ошибается» контроллер[3]

Организация кэш памяти

Рис.2 Структура гипотетического кэша

Теперь рассмотрим на примере, как устроен кэш. Пусть есть система с 32-разрядной адресацией памяти, то есть для задания адреса каждого байта памяти требуется 4-байтный адрес. Предположим, что наш кэш работает на уровне отдельных байтов, то есть может сохранять в качестве элемента байт оперативной памяти. Тогда каждый структурный элемент кэш­памяти должен сохранять не только байт данных оперативной памяти, но еще и его 4-байтный адрес в оперативной памяти. Получается уже некое подобие строки, которая называется кэш­строкой (cacheline). Адрес сохраняемого байта принято именовать тегом (tag). При чтении данных из кэша процессор формирует адрес, который сравнивается с тегом кэш­строки. В случае совпадения кэш выдает требуемый байт данных, если же совпадения адреса с тегом нет (кэш­промах) — производится обращение к оперативной памяти. Понятно, что для реализации данного механизма необходимо дополнить каждую строку кэша еще и устройством сравнения адреса с тегом (см. рисунок 2).

Рис.3 Пример кэш-строки

Для реализации политики замещения на основе алгоритма FIFO или LRU, необходимо, чтобы каждая строка кэша была дополнена счетчикам возраста. Причем сколько именно байт отводится под счетчик, зависит от того, каков размер кэша. Если, к примеру, описанный нами кэш имеет размер 64 Кбайт, то в нем должно быть 65 536 строк. Тогда необходимо к каждой строке кэша добавить еще двухбайтовое поле (216 = 65 536), чтобы реализовать счетчик возраста строк. Строка, к которой обращались в последнюю очередь, имеет возраст 0, а строка с самым поздним обращением — возраст 65 535. В описанном выше кэше объем полезной сохраняемой информации в шесть раз меньше полного объема кэша, поскольку на каждый байт хранимых данных приходится еще шесть служебных байт. Понятно, что такая структура кэша абсолютно нецелесообразна. Для того чтобы повысить объем полезной информации и одновременно уменьшить объем служебных данных, достаточно сохранять информацию в кэше не в виде отдельных байтов, а в виде блоков данных. То есть в каждой строке кэша будем сохранять не один байт данных, а блок данных фиксированного размера, идущих подряд в оперативной памяти, — он называется размером кэш­строки. Тегом строки будет адрес в оперативной памяти первого содержащегося в ней байта. Отметим, что блок сохраняемых данных в кэш­строке (то есть по сути сама кэш­строка) имеет строго фиксированный размер и является минимальной единицей информации, которая может быть считана из кэша или загружена в кэш. Размер кэш­строки может быть равен только степени двойки (2, 4, 8, 16 и так далее. см. рисунок 3). Как мы помним, чтение из оперативной памяти (равно как и запись в нее) происходит пакетом данных, а кэш работает только с кэш­строками. Поэтому адрес первого байта кэш­строки всегда кратен размеру пакета данных, то есть начало кэш­строки всегда совпадает с началом пакета данных. В рассмотренном нами кэше мы не учитывали биты модификации, которые также добавляются в каждой строке кэша и необходимы для поддержания когерентности.

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

Рис.4 Пример кэш-памяти

Так вот суть кэширования состоит в разбиении RAM на кэш-линии и отображении их на кэш-линии кэш-памяти. Возможно несколько вариантов такого отображения.

Прямое отображение

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

Рис.5 Прямое отображение. Разделение на блоки

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

Рис.6 Прямое отображение. Отображение блока на кэш-память

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

Если b{\displaystyle b} — это размер кэш-линии, а m{\displaystyle m} — это количество кэш-линий в кэше, то:

  • Для адресации b{\displaystyle b} внутри каждой кэш-линии потребуется: log2b{\displaystyle log_2b} бит
  • Для адресации m{\displaystyle m} кэш-линий внутри каждого сегмента потребуется: log2m{\displaystyle log_2m} бит
  • Для адресации N{\displaystyle N} сегментов RAM потребуется: log2N{\displaystyle log_2N} бит
  • Для адресации байта потребуется: log2b+log2m+log2N{\displaystyle log_2b + log_2m + log_2N} бит

Поиск в такой организации кэша будет строится следующим образом:. .

  1. Извлекается средняя часть адреса, определяющая номер кэш-линии в кэше
  2. Тэг кэш-линии с данным номером сравнивается со старшей частью адреса

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

Полностью ассоциативное отображение

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

Рис.7 Полностью ассоциативное отображение

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

Если b{\displaystyle b} — это размер кэш-линии, а m{\displaystyle m} — количество кэш-линий, помещающихся в RAM, то:

  • Для адресации b{\displaystyle b} байт внутри каждой кэш-линии потребуется: log2b{\displaystyle log_2b} бит
  • Для адресации m{\displaystyle m} кэш-линий: log2m{\displaystyle log_2m} бит
  • Для адресации байта потребуется: log2m+log2b{\displaystyle log_2m + log_2b} бит

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

Наборно-ассоциативное отображение

Основная идея наборно-ассоциативного отображения RAM на кэш-память состоит в следующем: RAM делится также как и в прямом отображении, а сам кэш состоит из k{\displaystyle k} кэшей, использующих прямое отображение.

Рис.8 Схема кэша при наборно-ассоциативном отображении

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

Рис.9 Наборно-ассоциативное отображение

Структура адреса байта такая же, как и в прямом отображении: log2N+log2m+log2b{\displaystyle log_2N + log_2m + log_2b} бит, но поскольку набор представляет собой k{\displaystyle k} различных кэш-линий, то поиск в кэше немного отличается.
В таком варианте организации поиск происходит следующим образом:

  1. Извлекается средняя часть адреса, определяющая номер набора в кэше. Сложность: log2m{\displaystyle log_2m}
  2. Тэги всех кэш-линий данного сета сравниваются со старшей частью адреса одновременно. Сложность: log2N{\displaystyle log_2N}

N,m,b{\displaystyle N, m, b} — это количество сегментов RAM, количество кэш-линий, размер кэш-линии соответственно.
Если было совпадение по одному из тэгов, то произошло кэш-попадание. Если не было совпадение ни по одному из тэгов, то произошел кэш-промах.

Многоуровневая организация

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

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

  • Рис.10 Данные считываются из кэша 1 уровня

  • Рис.11 Данные считываются из кэша 2 уровня

  • Рис.12 Чтение из ОЗУ

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

Преимущество исключительных кэшей в том, что они хранят больше данных. Это преимущество больше, когда исключительный кэш 1 уровня сопоставим по размеру с кэшэм 2 уровня, и меньше, если кэш 2 уровня во много раз больше, чем кэш 1 уровня. Когда 1 уровень пропускает и 2 уровень получает доступ в случае попадания, строка кэша попадания в кэшэ 2 уровня обменивается со строкой с 1 уровнем.[4]

Источники

  1. ↑ Википедия [Электронный ресурс]: Кэш процессора — материал из Википедии — свободной энциклопедии: Версия 81753821, сохранённая в 16:06, 7 ноября 2016. / Авторы Википедии // Википедия, свободная энциклопедия. — Электрон. дан. — Сан-Франциско: Фонд Викимедиа, 2016. — Режим доступа: https://ru.wikipedia.org/wiki/%D0%9A%D1%8D%D1%88_%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%BE%D1%80%D0%B0#.D0.A1.D1.82.D1.80.D1.83.D0.BA.D1.82.D1.83.D1.80.D0.B0_.D0.B7.D0.B0.D0.BF.D0.B8.D1.81.D0.B8_.D0.B2_.D0.BA.D1.8D.D1.88.D0.B5
  2. ↑ Компьютер пресс [Электронный ресурс] : Что такое кэш процессора и как он работает / Дата обращения: 15 декабря 2016 — Режим доступа: http://compress.ru/article.aspx?id=23541#03
  3. ↑ Info [Электронный ресурс] : Кэш-память процессора / Дата обращения: 15 декабря 2016 — Режим доступа: http://www.chaynikam.info/kesh-cpu.html
  4. ↑ Хабрахабр [Электронный ресурс] : Логическая организация кэш-памяти процессора / Дата обращения: 15 декабря 2016 — Режим доступа: https://habrahabr.ru/post/179647/

Кэш-память процессора(Cache CPU)

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

Содержание статьи

Функция кэш-памяти

В чем же состоит причина, которая побудила разработчиков компьютеров использовать специальную память для процессора? Разве возможностей ОЗУ для компьютера недостаточно?

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

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

Примерная эволюция соотношения скорости работы процессоров и ОЗУ:

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

Именно поэтому был разработан разумный компромисс. Основная часть ОЗУ так и осталась динамической, в то время как у процессора появилась своя быстрая кэш-память, основанная на микросхемах статической памяти. Ее объем сравнительно невелик – например, объем кэш-памяти второго уровня составляет всего несколько мегабайт. Впрочем, тут стоить вспомнить о том, что вся оперативная память первых компьютеров IBM PC составляла меньше 1 МБ.

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

История кэш-памяти

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

Впервые кэш-память объемом всего в 16 КБ появилась в ПК на базе процессора i80386. На сегодняшний день современные процессоры используют различные уровни кэша, от первого (самый быстрый кэш самого маленького объема – как правило, 128 КБ) до третьего (самый медленный кэш самого большого объема – до десятков МБ).

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

Долгое время в процессорах существовали всего два уровня кэша, но в CPU Intel Itanium впервые появилась кэш-память третьего уровня, общая для всех ядер процессора. Существуют и разработки процессоров с четырехуровневым кэшем.

Архитектуры и принципы работы кэша

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

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

Порядок поиска процессором информации  в памяти:

Именно таким образом Процессор осуществляет поиск инфоромации

Для управления работой кэш-памяти и ее взаимодействия с вычислительными блоками процессора, а также ОЗУ существует специальный контроллер.

Схема организации взаимодействия ядра процессора, кэша и ОЗУ:

Кэш-контроллер является ключевым элементом связи процессора, ОЗУ и Кэш-памяти

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

Методы записи кэша

Существует два основных метода записи информации в кэш-память:

  1. Метод write-back (обратная запись) – запись данных производится сначала в кэш, а затем, при наступлении определенных условий, и в ОЗУ.
  2. Метод write-through (сквозная запись) – запись данных производится одновременно в ОЗУ и в кэш.

Архитектура ассоциативности кэш-памяти

Архитектура ассоциативности кэша определяет способ, при помощи которого данные из ОЗУ отображаются в кэше. Существуют следующие основные варианты архитектуры ассоциативности кэширования:

  1. Кэш с прямым отображением – определенный участок кэша отвечает за определенный участок ОЗУ
  2. Полностью ассоциативный кэш – любой участок кэша может ассоциироваться с любым участком ОЗУ
  3. Смешанный кэш (наборно-ассоциативный)

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

Заключение

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

Порекомендуйте Друзьям статью:

Компьютеры и Интернет

Кэш память центрального процессора (процессор) – это вид памяти с произвольным доступом (ОЗУ), которая встроена непосредственно в микропроцессор самого компьютера, и обозначается как кэш L1. Другая разновидность кэш памяти процессора ограничена объёмом L2 статической оперативной памяти (ОЗУ) микросхемы на материнской плате. Оба этих типа памяти в первую очередь обращаются к микропроцессора при выполнении типовых инструкций, прежде чем использовать стандартные ресурсы оперативной памяти, и это даёт процессору улучшенные технические характеристики.
Практика размещения кэш-памяти на микропроцессоре для немедленного доступа к памяти для ускорения доступа к данным для процессора, была сделана с момента создания 80486 процессора сделанного в 1989 году, который имел встроенный рудиментарный регистр кэша L1. Большего уровня кэш-память L2 которая была непосредственно интегрирована в функциональность процессора вошла в обиход в 1995 году.

По состоянию на 2018 год, третий уровень кэш-памяти процессора также существует в некоторых компьютерных системах, и известен как L3, который используется перед основной оперативной памятью системы. Каждый уровень кэш-памяти предназначен, чтобы увеличить скорость работы микропроцессора. Самые первые уровни кэш-памяти процессора L1 были 8 килобайт, с кэшем L2 на машинах 2007 года уже были свыше 6 мегабайт, а некоторые системы по состоянию на 2011 год имели буфер кэша 4-го уровня до 64 мегабайт.

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

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

Большие объемы кэша процессора позволяют повысить производительность микропроцессора до точки, где он может превзойти более быстрый процессор, который имеет меньше кэш-памяти, встроенной в систему. Скорость на передней стороне шины (FSB) – также играет важную роль в определении производительности микропроцессора. Драйвера в общем традиционно узкое место для производительности характеристик на персональных компьютерах (ПК), когда обработка должна направляться туда и обратно через шину в память. Высокие темпы FSB для процессоров Core 2 находятся на уровне в 1600 мегагерц, или 1600 млн. циклов в секунду.

Тесты удвоения объёма кеша L3 процессора — PC-01

Зачем нужен кэш и как он влияет на производительность?

Современный процессор является сложным устройством, которое выполняет множество действий для решения поставленной задачи. И делает это всё современный процессор очень быстро. Настолько, что даже несмотря на название «оперативная память», память эта недостаточно оперативная. Если бы процессор всегда ждал данных из оперативной памяти, то ему приходилось бы простаивать по несколько десятков, а временами, и сотен тактов не делая ничего. Подобное поведение сделало бы любые улучшения внутри ядер процессора полностью бесполезными. И, если посмотреть в историю развития процессоров, проблема эта с ростом производительности процессоров становилась всё более острой. Вначале появлялись опциональные чипы кэша процессора, то есть места на плате куда можно установить чип памяти кеша L2. С ростом производительности такая «опция» уже перестала появляться, так как потери производительности без него становились слишком большими. Та же судьба была и у L3, который так же был вначале прерогативой серверных решений и располагался вне процессора и только с развитием полупроводникового производства на общем кристалле с ядрами стало достаточно места чтобы разместить ещё и кэш L3.

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

Схема процессорного конвейера ядра intel архитектуры Skylake с выделенными регистрами

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

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

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

Насколько большая разница от изменения объёма?

И встаёт закономерный вопрос: «На сколько же велико влияние?».

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

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

Для некой усреднённой задачи может получится зависимость производительности от цены при изменения объёма кэша примерно такая:

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

Как измерить разницу от объёма?

И перейдём уже к практической области решения данного вопроса.

Для того чтобы понять разницу необходима некая конфигурация систем в которых отличия ограничиваются только объёмом кэш памяти.

В нашем случае это процессоры i7 7700k и i9 9900k. В последнем отключено 4 ядра из восьми (кэш память при этом не отключается).

В данном случае могла бы быть проблема связанная с программными исправлениями аппаратных уязвимостей более новых процессоров. Решена она запуском процессора i9 9900k на материнской плате ASUS Z170i Pro Gaming с BIOS версией 2002. К моменту выхода прошивки этой материнской платы об аппаратных уязвимостях сведений ещё не было и исправления их в тестовых системах — нет.

Про то как установить процессоры 8 и 9 поколений на платы для 6 и 7 поколений процессоров можете посмотреть тут.

Кроме процессора важно выбрать оперативную память. Я решил взять некие средние для DDR4 показатели. Частоту 3600 МГц с таймингами 17-18-18-38 CR2. Все субтайминги материнская плата выставляла автоматически.

Для игр так же стоит упомянуть о видеокарте: Gainward GeForce RTX 2070 Phoenix с небольшим заводским разгоном.

Обзор видеокарты можно посмотреть тут.

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

Результаты

Для начала проведём тест который покажет, что объём кэша действительно разный.

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

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

Все тесты проводились по 3 раза с усреднением результатов.

В однопоточном тесте CPU-z разницы от увеличения объёма кеша L3 — нет. В многопоточном разница — 3%

В Cinebench R15 разница 0,4% (незначительно превышает погрешности теста).

Прирост 1,5%.

Тесты которые слабо реагируют на разгон памяти слабо реагируют и на увеличение объёма кэш памяти.

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

Win-rar. Прирост производительности — 35%. Стоит отметить, что встроенный бенчмарк не отражает реальный прирост производительности архиватора.

7-Zip. Прирост 4,5%.

CPU тест 3D Mark Time Spy. Прирост 3,7%

  • Все бенчмарки
Выводы по бэнчмаркам

В идеальных задачах максимально оптимизированных для процессора и работы с памятью прирост находится в пределах 0-2%.

Для задач имеющий меньшую оптимизацию или связанных с работой с данными прирост от увеличения объёма кэш памяти составил от 3,7 до 35%.

Игры

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

Far Cry 5

(графики кликабельны)

Время кадраПлотность вероятностиРаспределение вероятности

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

Результаты в цифрах:

AVGLow 0.1%Low 1%Low 5%Медиана
FC5 8МБ 3600107.857.268.080.9106.0
FC5 16МБ 3600123.073.282.192.7118.0
Прирост, %14.128.020.814.511.3

Медианный прирост: 11,3%

Прирост по долгим кадрам: Меньшие 0,1% — 28%, Меньшие 1% — 20,8%.

WatchDogs 2

Время кадраПлотность вероятностиРаспределение вероятности

AVGLow 0.1%Low 1%Low 5%Медиана
FC5 8МБ 360051.228.531.937.250.6
FC5 16МБ 360058.734.739.144.358.0
Прирост, %14.621.822.419.114.5

Медианный прирост: 14.5%

Прирост по долгим кадрам: Меньшие 0,1% — 21,8%, Меньшие 1% — 22,4%.

Выводы по играм

Прирост в играх превышает общие значения полученные в бенчмарках (кроме Win-rar) и составляют значения выше 10%, что является довольно значительным показателем.

Видео версия

Общие выводы

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

Видео на YouTube канале «Этот компьютер»

1 ядро, 2 потока. SMT, Hyper-threading. Как это работает?

Какими будут будущие настольные intel процессоры

Греет ли RTX 3080 память и кулер процессора? Моделирование воздушных потоков референсной RTX 3080.

Воздушные потоки в необычных компьютерных корпусах

Что рассказала и НЕ РАССКАЗАЛА Nvidia о RTX 3000 (RTX Ampere)

железные новости за август 2020 | InfoCAST #035

Синхронизация. Причины появления, как работает, виды и различия.

Может ли проектор заменить монитор/телевизор?

Сравнительный тест 120 мм кулеров

Ответы на ваши вопрос по случаю 200к подписчиков

InfoCAST #034 | Главные IT новости июля

Насколько реален переход компьютеров на ARM?

Влияние емкости кэш-памяти на производительность Core i5 третьего поколения

Сегодняшняя статья не является самостоятельным материалом — она просто продолжает исследование производительности трех поколений архитектуры Core в равных условиях (начатое в конце прошлого года и продолженное недавно). Правда, сегодня мы сделаем небольшой шаг в сторону — часто́ты ядер и кэш-памяти останутся теми же, что и ранее, а вот емкость последней уменьшится. Зачем это нужно? Мы использовали «полный» Core i7 двух последних поколений для чистоты эксперимента, тестируя его с включенной и отключенной поддержкой технологии Hyper-Threading, поскольку вот уже полтора года как Core i5 снабжаются не 8, а 6 МиБ L3. Понятно, что влияние емкости кэш-памяти на производительность не так уж велико, как иногда принято считать, но оно есть, и никуда от него не деться. К тому же, Core i5 являются более массовыми продуктами, чем Core i7, а в первом поколении по этому параметру их никто «не обижал». Зато раньше их чуть ограничивали по-другому: тактовая частота UnCore в i5 первого поколения составляла всего 2,13 ГГц, так что наш «Nehalem» — это не совсем представитель 700-й линейки на частоте 2,4 ГГц, а немного более быстрый процессор. Однако сильно расширять список участников и переделывать условия тестирования мы сочли излишним — все равно, как мы уже не раз предупреждали, тестирования этой линейки никакой новой практической информации не несут: реальные процессоры работают совсем в других режимах. А вот желающим досконально разобраться во всех тонких моментах, как нам кажется, такое тестирование будет интересно.

Конфигурация тестовых стендов

ПроцессорNehalemNehalem HTIvy BridgeIvy Bridge 6M
«Базовая» модельCore i7-875KCore i7-875KCore i7-3770KCore i5-3470
Технология пр-ва45 нм45 нм22 нм22 нм
Частота ядра, ГГц2,42,42,42,4
Кол-во ядер/потоков вычисления4/44/84/44/8
Кэш L1, I/D, КБ32/3232/3232/3232/32
Кэш L2, КБ4×2564×2564×2564×256
Кэш L3, МиБ8886
Частота UnCore, ГГц2,42,42,42,4

Мы решили ограничиться всего четырьмя процессорами, причем главных участников будет два: оба четырехъядерных Ivy Bridge, но с разной емкостью кэш-памяти третьего уровня. Третий — «Nehalem HT»: в прошлый раз по итоговому баллу он оказался почти идентичен «Ivy Bridge просто». И «просто Nehalem» который, как мы уже сказали, чуть-чуть быстрее настоящего Core i5 первого поколения, работающего на частоте 2,4 ГГц (из-за того, напомним, что в 700-й линейке частота UnCore была немного ниже), но не слишком радикально. Зато и сравнение интересно: с одной стороны — два шага улучшения микроархитекутры, с другой — кэш-память ограничили. Априори можно предположить, что первое в большинстве случаев перевесит, но вот насколько и вообще — как сопоставимы «первые» и «третьи» i5 (с поправкой на частоту UnCore, конечно, хотя если будет много желающих увидеть абсолютно точное сравнение, мы и его потом сделаем) — уже хорошая тема для исследования.

 Системная платаОперативная память
LGA1155Biostar TH67XE (H67)Corsair Vengeance CMZ8GX3M2A1600C9B (2×1333; 9-9-9-24)
LGA1156ASUS P7H55-M Pro (H55)Corsair Vengeance CMZ8GX3M2A1600C9B (2×1333; 9-9-9-24)

Тестирование

Традиционно, мы разбиваем все тесты на некоторое количество групп и приводим на диаграммах средний результат по группе тестов/приложений (детально с методикой тестирования вы можете ознакомиться в отдельной статье). Результаты на диаграммах приведены в баллах, за 100 баллов принята производительность референсной тестовой системы iXBT.com образца 2011 года. Основывается она на процессоре AMD Athlon II X4 620, ну а объем памяти (8 ГБ) и видеокарта (NVIDIA GeForce GTX 570 1280 МБ в исполнении Palit) являются стандартными для всех тестирований «основной линейки» и могут меняться только в рамках специальных исследований. Тем, кто интересуется более подробной информацией, опять-таки традиционно предлагается скачать таблицу в формате Microsoft Excel, в которой все результаты приведены как в преобразованном в баллы, так и в «натуральном» виде.

Интерактивная работа в трёхмерных пакетах

Некоторое влияние емкости кэш-памяти есть, однако оно менее 1%. Соответственно, оба Ivy Bridge можно считать идентичными друг другу, ну а улучшения архитектуры позволяют новым Core i5 спокойно обгонять старые Core i7 точно также, как это делают новые Core i7.

Финальный рендеринг трёхмерных сцен

В данном случае, естественно, никакие усовершенствования не могут скомпенсировать увеличение количества обрабатываемых потоков, но сегодня для нас самым важным является не это, а полное отсутствие влияния емкости кэш-памяти на производительность. Вот Celeron и Pentium, как мы уже установили, разные процессоры, так что программы рендеринга чувствительны к емкости L3, однако лишь тогда, когда последнего мало. А 6 МиБ на четыре ядра, как видим, вполне достаточно.

Упаковка и распаковка

Естественно, эти задачи восприимчивы к емкости кэш-памяти, однако и здесь эффект от ее увеличения с 6 до 8 МиБ достаточно скромный: примерно 3,6%. Более интересно, на самом деле, сравнение с первым поколением — архитектурные улучшения позволяют новым i5 на равных частотах «громить» даже старые i7, но это в общем зачете: благодаря тому, что два теста из четырех однопоточные, а еще один двухпоточный. Сжатие данных силами 7-Zip, естественно, быстрее всего на «Nehalem HT»: восемь потоков всегда быстрее четырех сравнимой производительности. А вот если ограничиться всего четырьмя, то наш «Ivy Bridge 6М» проигрывает не только своему прародителю, но и старичку Nehalem: улучшения микроархитектуры полностью пасуют перед уменьшением емкости кэш-памяти.

Кодирование аудио

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

Компиляция

Важны потоки, но важна и емкость кэш-памяти. Однако, как обычно, не слишком — порядка 1,5%. Более любопытно сравнение с первым поколением Core при отключенном Hyper-Threading: «по очкам» новенький Core i5 даже на равной частоте побеждает, но один из трех компиляторов (производства Microsoft, если быть точным) отработал на обоих процессорах за одинаковое время. Даже с преимуществом в 5 секунд у более старого — притом, что в этой программе у «полнокэшевого» Ivy Bridge результаты на 4 секунды лучше, чем у Nehalem. В общем, и здесь нельзя считать, что уменьшение емкости L3 как-то сильно повлияло на Core i5 второго и третьего поколения, но есть и нюансы.

Математические и инженерные расчёты

Опять менее 1% разницы со «старшим» кристаллом и опять убедительная победа над первым поколением во всех его видах. Что скорее правило, чем исключение для подобных малопоточных тестов, но почему бы в нем в очередной раз не убедиться? Особенно в таком вот рафинированном виде, когда (в отличие от тестов в штатном режиме) не мешает разница в частотах («стандартных» или появляющаяся из-за работы Turbo Boost).

Растровая графика

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

Векторная графика

И здесь аналогично. Правда и потоков вычисления нужна всего парочка.

Кодирование видео

В отличие от этой группы, где, тем не менее, даже Hyper-Threading не позволяет Nehalem бороться на равных с последователями более новых поколений. А вот им не слишком мешает уменьшение емкости кэш-памяти. Точнее, практически вообще не мешает, поскольку разница опять менее 1%.

Офисное ПО

Как и следовало ожидать, никакого прироста производительности от увеличения емкости кэш-памяти (точнее, ее падения от уменьшения) нет. Хотя если посмотреть на подробные результаты, то видно, что единственный многопоточный тест этой группы (а именно распознавание текста в FineReader) выполняется примерно на 1,5% быстрее при 8 МиБ L3, нежели на 6 МиБ. Казалось бы — что такое 1,5%? С точки зрения практики — ничто. А вот с исследовательской точки зрения уже интересно: как видим, именно многопоточным тестам чаще всего не хватает кэш-памяти. В результате разница (пусть и небольшая) иногда находится даже там, где ее быть, вроде бы, не должно. Хотя ничего такого уж необъяснимого в этом нет — грубо говоря, в малопоточных тестах мы имеем 3-6 МиБ на поток, а вот в многопоточных там же получается 1,5 МиБ. Первого — много, а вот второго может оказаться и не совсем достаточно.

Java

Впрочем, Java-машина с такой оценкой не согласна, но и это объяснимо: как мы уже не раз писали, она очень хорошо оптимизирована вовсе не под х86-процессоры, а под телефоны и кофеварки, где ядер может быть много, но вот кэш-памяти очень мало. А иногда и ядер, и кэш-памяти мало — дорогие ресурсы как по площади кристалла, так и по энергопотреблению. И, если с ядрами и мегагерцами что-то сделать получается, то вот с кэшом все сложнее: в четырехъядерной Tegra 3 его, к примеру, всего 1 МиБ. Понятно, что JVM может «схрюпать» и больше (как и все системы с байт-кодом), что мы уже видели сравнивая Celeron и Pentium, но более 1,5 МиБ на поток ей если и может пригодиться, то не в тех задачах, которые вошли в SPECjvm 2008.

Игры

На игры у нас были большие надежды, поскольку к емкости кэш-памяти они нередко оказываются более требовательными чем даже архиваторы. Но бывает такое тогда, когда ее совсем мало, а 6 МиБ — как видим, достаточно. Да и, опять же, процессоры уровня четырехъядерных Core любых поколений даже на частоте 2,4 ГГц слишком мощное решение для используемых игровых приложений, так что узким местом явно будут не они, а прочие компоненты системы. Поэтому мы решили стряхнуть пыль с режимов с низким качеством графики — понятно, что для таких систем он слишком уж синтетичен, но у нас и все тестирование синтетическое 🙂

Когда не мешают всякие там видеокарты и прочее, разница между двумя Ivy Bridge достигает уже «безумных» 3%: и в этом случае можно не обращать внимания на практике, но для теории — немало. Больше вышло как раз только в архиваторах.

Многозадачное окружение

Где-то мы уже такое видели. Ну да — когда тестировали шестиядерные процессоры под LGA2011. И вот ситуация повторяется: нагрузка что ни на есть многопоточная, часть используемых программ до кэш-памяти «жадная», а вот ее увеличение только снижает среднюю производительность. Чем это можно объяснить? Разве что тем, что усложняется арбитраж и увеличивается количество промахов. Причем, заметим, происходит такое только тогда, когда емкость L3 относительно велика и одновременно работающих потоков вычисления не менее четырех — в бюджетном сегменте совсем другая картина. Во всяком случае, как показало наше недавнее тестирование Pentium и Celeron, для двухъядерных процессоров увеличение L3 с 2 до 3 МиБ добавляет 6% производительности. А вот четырех- и шестиядерным не дает, мягко говоря ничего. Даже менее, чем ничего.

Итого

Закономерный общий итог: поскольку нигде существенной разницы между процессорами с разным объемом L3 не обнаружилось, нет ее и в «общем и целом». Таким образом, расстраиваться по поводу уменьшения емкости кэш-памяти во втором и третьем поколении Core i5 поводов нет — предшественники первого поколения им все равно не конкуренты. Да и старые Core i7 в среднем тоже демонстрируют лишь аналогичный уровень производительности (разумеется, в основном за счет отставания в малопоточных приложениях — а так есть сценарии, с которыми в равных условиях они справляются быстрее). Но, как мы уже говорили, на практике реальные процессоры находятся далеко не в равных условиях по частотам, так что практическая разница между поколениями больше, чем можно получить в таких вот исследованиях.

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

ОТ ОСНОВНЫХ РАМ К НОСНЫМ КОМПЬЮТЕРАМ

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

Настольный ПК имеет собственный процессор (или ЦП), монитор и клавиатуру.Он используется как персональный компьютер дома или как рабочая станция для групповой работы. Типичными примерами являются IBM PC и Apple Macintosh. Он предназначен для размещения на вашем столе. Некоторые модели имеют вертикальный корпус, называемый башней.

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

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

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

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

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

2, 1, ()

1 — портативный компьютер, который можно закрыть как портфель, но он может быть таким же мощным, как настольный компьютер;

2 — небольшой компьютер, который вписывается в предметы одежды;

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

4 — портативный компьютер, который может использоваться как телефон, веб-обозреватель и органайзер;

5 — типичный компьютер, который используется на многих предприятиях и популярный для домашнего использования;

6 — большой компьютер, используемый для интенсивной обработки данных и часто связанный со многими терминалами;

3 (), ()

1.Какой тип компьютера рекламируется? 2. Какой у него экран? 3. Какое указывающее устройство заменяет мышь? 4. Какие у него порты для подключения камер и музыкальных плееров? 5 Какой источник питания он использует?

TOSHIBA SATELLITE

— процессор Intel Centrino;

— 1024 МБ ОЗУ, 100 жестких дисков 6Б;

— привод DVD SuperMulti (+/- R двухслойный);

— 15.4-дюймовый широкоформатный ЖК-дисплей TFT с активной матрицей;

— 85-клавишная клавиатура и тачпад;

— 2 слота памяти, 1 слот PC Card или PCMCIA;

— Беспроводная связь: поддержка Wi-Fi и Bluetooth;

— 4 порта USB для подключения периферии: цифровой камеры, MP3-плеера, модема и др .;

— литий-ионный аккумулятор из 6 элементов;

4, ()

1.IBM BlueGene — самый суперкомпьютер. (POWER) 2. Большинство библиотечных баз данных находятся в Интернете. (ДОСТУП) 3. Я отправлю вам свой отчет по электронной почте как (ПРИЛОЖЕНИЕ) 4. Эта книга покажет вам, как вести свой малый бизнес. (КОМПЬЮТЕР) 5. Оптический диск позволяет удалять данные и записывать на них новые данные. (ERASE) 6. Рост Интернета увеличил потребность в эффективных данных (SECURE). 7. Комбинация новых текстильных материалов позволила создать музыкальные куртки и умные рубашки, которые могут определять частоту сердечных сокращений.(ELECTRON) 8. Bluetooth — это технология, предназначенная для соединения компьютеров, мобильных телефонов и других устройств, заменяющая прямые кабельные соединения. (ПРОВОД) 9. Полет самолета используется для обучения пилотов. (МОДЕЛИРОВАТЬ)

3 — ЧАСТЬ 9

1 (), ()

НАЛИЧНАЯ ПАМЯТЬ

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

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

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

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

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

КАК РАБОТАЕТ КЭШ ДИСКА

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

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

2 ()

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

2 Какое устройство следит за согласованностью кеша?

3 Какая основная альтернатива «кэш-памяти со сквозной записью»?

4 Когда кэш с обратной записью записывает свое содержимое обратно в основную память?

5 Когда данные помечаются как «грязные» в кэше обратной записи?

6 Что определяет, какие данные заменяются в дисковом кэше?

7 Какое слово в тексте используется вместо слова «буфер»?

3 ǒ ()

попадание в кэш;

b Контроллер кэш-памяти;

c Согласованность кэша;

d Кэш со сквозной записью;

e Кэш обратной записи;

f Размер строки;

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

2 Объем данных, переданных в кэш за один раз.

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

4 Процессору удалось найти данные в кэше.

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

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

4 ()

СЛОВА СЕМЬИ

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


.

Почему мой процессор работает на 100%?

Средний ПК с Windows постоянно занят, постоянно манипулируя системными ресурсами между 50 или более процессами, которые он запускает одновременно.

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

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

ЗАДАЧИ ПРОВЕРКИ: Диспетчер задач быстро выделит приложение для захвата ресурсов

Нажмите Ctrl + Shift + Esc, чтобы запустить Диспетчер задач, затем щелкните вкладку «Процессы» и выберите «Показать процессы от всех пользователей».Теперь вы должны увидеть все, что работает на вашем компьютере в данный момент. Затем щелкните заголовок столбца ЦП, чтобы отсортировать по загрузке ЦП, и найдите процесс, который наиболее требователен. (Нет столбца ЦП? Нажмите «Просмотр»> «Выбрать столбцы», установите флажок «Использование ЦП» и нажмите «ОК».)

После обнаружения вызывающего нарушение процесса щелкните его правой кнопкой мыши и выберите «Установить приоритет»> «Низкий». Это говорит Windows, что практически все остальное, что вы используете, больше заслуживает внимания ЦП и может иметь очень небольшое влияние на скорость отклика системы.

Теперь снова щелкните процесс правой кнопкой мыши, выберите «Установить соответствие» и снимите все флажки ЦП, кроме одного. Параметр «Соответствие процессора» сообщает Windows, на каких ядрах ЦП разрешено запускать конкретное приложение, и поэтому, ограничив его одним, вы освободите остальные для остальных программ.

ОБРАТИТЕ ЭТО КРУГЛЫЙ: Блокировка вашего мошеннического процесса от всех ЦП, кроме одного, быстро переведет его в линию.

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

.

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

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