Что не относится к режиму работы процессора
Перейти к содержимому

Что не относится к режиму работы процессора

  • автор:

Что не относится к режиму работы процессора: А) запись – чтение данных из оперативной памяти;

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

решение вопроса

Связанных вопросов не найдено

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

поделиться знаниями или
запомнить страничку

  • Все категории
  • экономические 43,679
  • гуманитарные 33,657
  • юридические 17,917
  • школьный раздел 612,508
  • разное 16,911

Популярное на сайте:

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

Как научится читать по диагонали? Скорость чтения зависит от скорости восприятия каждого отдельного слова в тексте.

Как быстро и эффективно исправить почерк? Люди часто предполагают, что каллиграфия и почерк являются синонимами, но это не так.

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

  • Обратная связь
  • Правила сайта

Unix2019b/Организация памяти на x86-64

Процессоры архитектуры x86-64 поддерживают два основных режима работы: Long mode («длинный» режим) и Legacy mode («унаследованный», режим совместимости с 32-битным x86).

Long mode

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

Этот режим позволяет выполнять 64-битные программы; также (для обратной совместимости) предоставляется поддержка выполнения 32-битного кода, например, 32-битных приложений, хотя 32-битные программы не смогут использовать 64-битные системные библиотеки, и наоборот. Чтобы справиться с этой проблемой, большинство 64-разрядных операционных систем предоставляют два набора необходимых системных файлов: один — для родных 64-битных приложений, и другой — для 32-битных программ.

Когда вы используете 64-битную операционную систему (Windows, Linux или какую-либо другую), ваш процессор работает в длинном режиме. 32-битные ОС теряют популярность и используются всё реже, так как не позволяют использовать весь потенциал современного железа. Так, дистрибутив Ubuntu Linux уже начиная с версии 17.10 не выпускается в 32-битном исполнении. Windows Server 2008 стала последней серверной ОС от Microsoft, которая имела 32-битную версию, и Server 2012 существует только 64-битная.

Legacy mode

Данный «унаследованный» режим позволяет процессору выполнять инструкции, рассчитанные для процессоров x86, и предоставляет полную совместимость с 32-битным кодом и операционными системами. В этом режиме процессор ведёт себя точно так же, как x86-процессор, например Athlon или Pentium III, и дополнительные функции, предоставляемые архитектурой x86-64 (например, дополнительные регистры), недоступны. В этом режиме 64-битные программы и операционные системы работать не будут.

Этот режим включает в себя подрежимы:

  • Реальный режим (real mode)
  • Защищённый режим (protected mode)
  • Режим виртуального 8086 (virtual 8086 mode)

Реальный режим использовался в MS-DOS, в реальном режиме выполнялся код BIOS при загрузке компьютера.

Защищённый режим используется в 32-битных версиях современных многозадачных операционных систем (например, обычная 32-битная Windows XP работает в защищённом режиме, как и 32-битная версия Ubuntu 16.04).

Режим виртуального 8086 — подрежим защищённого, предназначался главным образом для создания т. н. «виртуальных DOS-машин». Если из 32-битной версии Windows вы запускаете 16-битное DOS-приложение, то работает эмулятор NTVDM (NT Virtual DOS Machine), который использует этот режим процессора. Другой эмулятор, DOSBox, не использует этот режим V86, а выполняет полную эмуляцию. Заметим, что в 64-битных версиях Windows эмулятор NTVDM был исключён, поэтому напрямую запустить на выполнение 16-битный com- или exe-файл стало невозможно (тем не менее, можно использовать тот же DOSBox или другой гипервизор для полной эмуляции реального режима).

Переход между режимами

Из длинного режима нельзя перейти в реальный или режим виртуального 8086 без перезагрузки. Поэтому, как уже отмечено, в 64-битных версиях Windows не работает NTVDM и нельзя запускать 16-битные программы.

Самый современный процессор x86-64 полностью поддерживает реальный режим. Если загрузка выполняется через BIOS, то код загрузчика (из сектора #0) исполняется в реальном режиме. Однако если вместо BIOS используется UEFI, то переход в Long mode происходит ещё раньше, и никакого кода в реальном режиме уже не выполняется. Можно считать, что современный компьютер сразу начинает работать в 64-битном длинном режиме.

Поэтому далее нас будет интересовать только длинный режим.

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

Упрощённо говоря, процессор обращается к памяти через шину. Адресами памяти, которыми обмениваются в шине, являются физические адреса, то есть сырые числа от нуля до верхней границы доступной физической памяти (например, до 2 33 , если у вас установлено 8 ГБ оперативки). Ранее между процессором и микросхемами памяти располагался северный мост — отдельный чип, но в реализации Intel начиная с микроархитектуры Sandy Bridge он интегрирован на кристалл процессора.

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

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

MemoryTranslation.png

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

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

  • учёт сегментного селектора и переход от смещения внутри сегмента к некоторому линейному адресу;
  • перевод линейного адреса в физический.

Спрашивается, зачем нужен первый шаг и зачем нужны эти сегменты, почему бы напрямую не использовать линейные адреса в программе? Это результат эволюции. Чтобы действительно понять смысл сегментации x86, нам нужно вернуться в 1978 год.

Сегментация

Реальный режим

16-битный процессор 8086 использовал 16-битные регистры и мог напрямую адресовать только 2 16 байт памяти. Инженеры придумывали, как же можно заставить его работать с большим объёмом памяти, не расширяя разрядность регистров.

Были придуманы сегментные регистры, которые должны были задавать, к какому именно 64-килобайтному куску памяти относится данный 16-битный адрес.

Решение выглядит логичным: сначала вы устанавливаете сегментный регистр, по сути говоря “так, я хочу работать с куском памяти начиная с адреса X”; затем 16-битный адрес уже используется как смещение в рамках этого куска.

Всего предусматривалось сначала четыре 16-битных сегментных регистра, потом добавили ещё два:

  • CS = Code Segment
  • DS = Data Segment
  • ES = Extra (или Destination) Segment
  • SS = Stack Segment
  • FS
  • GS

Названия этих регистров связаны с назначением. При выполнении инструкций они загружаются из сегмента кода. При обращении к стеку (инструкции push/pop) неявно используется сегмент стека (при работе с регистрами SP и BP). Некоторые инструкции (так называемые «строковые») используют фиксированные сегменты, например инструкция movs копирует из DS:(E)SI в ES:(E)DI.

RealModeSegmentation.png

Для вычисления линейного адреса ячейки памяти процессор вычисляет физический адрес начала сегмента — умножает сегментную часть виртуального адреса на число 16 (или, что то же самое, сдвигает её влево на 4 бита), а затем складывает полученное число со смещением от начала сегмента. Таким образом, сегменты частично перекрывались, и всего можно было адресовать около 1 МБ физической памяти. Спрашивается, почему не умножать значение сегментного регистра сразу на 65536, ведь тогда можно было бы адресовать 4 ГБ памяти. Тогда это было не нужно и только растило стоимость чипа.

В реальном режиме отсутствует защита памяти и разграничение прав доступа.

Программы были маленькие, поэтому их стек и код полностью помещались в 64 КБ, не было проблем. В языке C тех древних времён обычный указатель был 16-битный и указывал относительно сегмента по умолчанию, однако существовали также far-указатели, которые включали в себя значение сегментного регистра. Призраки этих far-указателей преследуют нас в названиях типов в WinAPI (например LPVOID — long (far) pointer to void).

#include int main(){ char far *p =(char far *)0x55550005; char far *q =(char far *)0x53332225; *p = 80; (*p)++; printf("%d",*q); return 0; }

Тут оба указателя указывают на один и тот же физический адрес 0x55555.

Защищённый режим

В 32-битном защищенном режиме также используется сегментированная модель памяти, однако уже организованная по другому принципу: расположение сегментов описывается специальными структурами (таблицами дескрипторов), расположенными в оперативной памяти.

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

SegmentSelector.png

Существует два типа дескрипторных таблиц: глобальная (GDT) и локальная (LDT). Глобальная таблица описывает сегменты операционной системы и разделяемых структур данных, у каждого ядра своя. Локальная таблица может быть определена для каждой конкретной задачи (процесса). Бит TI равен 0 для GDT и 1 для LDT. Индекс задаёт номер дескриптора в таблице дескрипторов сегмента. Поле RPL расшифровывается как Requested Privilege Level.

Сама таблица представляет собой просто массив, содержащий 8-байтные записи (дескрипторы сегмента), где каждая запись описывает один сегмент и выглядит так:

SegmentDescriptor.png

Помимо базового адреса сегмента дескрипторы содержат размер сегмента (точнее, максимально доступное смещение) и различные атрибуты сегментов, использующиеся для защиты памяти и определения прав доступа к сегменту для различных программных модулей. Базовый адрес представляет собой 32-битный линейный адрес, указывающий на начало сегмента, а лимит определяет, насколько большой сегмент. Добавление базового адреса к адресу логической памяти дает линейный адрес (никакого умножения на 16 уже нет). DPL (Descriptor Privilege Level) — уровень привилегий дескриптора; это число от 0 (наиболее привилегированный, режим ядра) до 3 (наименее привилегированный, пользовательский режим), которое контролирует доступ к сегменту.

Когда CPU находится в 32-битных режимах, регистры и инструкции могут в любом случае адресовать всё линейное адресное пространство. Итак, почему бы не установить базовый адрес в ноль и позволить логическим адресам совпадать с линейными адресами? Intel называет это «плоской моделью», и это именно то, что делают современные ядра операционных систем под x86. Это эквивалентно отключению сегментации.

ProtectedModeSegmentation.png

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

Местоположение GDT в памяти указывается процессору посредством инструкции lgdt.

Длинный режим

На архитектуре x86-64 в длинном (64-битном) режиме сегментация не используется. Для четырёх сегментных регистров (CS, SS, DS и ES) базовый адрес принудительно выставляются в 0. Сегментные регистры FS и GS по-прежнему могут иметь ненулевой базовый адрес (но он стал 64-битным и может быть установлен через отдельные моделезависимые регистры (MSR)). Это позволяет ОС использовать их для служебных целей.

Например, Microsoft Windows на x86-64 использует GS для указания на Thread Environment Block, маленькую структурку для каждого потока, которая содержит информацию об обработке исключений, thread-local-переменных и прочих per-thread-сведений. Аналогично, ядро Linux использует GS-сегмент для хранения данных per-CPU.

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

  • Null — первая ячейка не используется (сделано, чтобы нулевое значение селектора было зарезервированным [1]);
  • Kernel Code;
  • Kernel Data;
  • User Code;
  • User Data.

Практика: просмотр регистров

(gdb) info registers rax 0x40052d 4195629 rbx 0x0 0 rcx 0x0 0 rdx 0x7fffffffde78 140737488346744 rsi 0x7fffffffde68 140737488346728 rdi 0x1 1 rbp 0x7fffffffdd80 0x7fffffffdd80 rsp 0x7fffffffdd80 0x7fffffffdd80 r8 0x7ffff7dd4e80 140737351863936 r9 0x7ffff7dea700 140737351952128 r10 0x7fffffffdc10 140737488346128 r11 0x7ffff7a32e50 140737348054608 r12 0x400440 4195392 r13 0x7fffffffde60 140737488346720 r14 0x0 0 r15 0x0 0 rip 0x400531 0x400531 eflags 0x246 [ PF ZF IF ] cs 0x33 51 ss 0x2b 43 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0

Мифы о сегментных регистрах

Сегментные регистры остались в прошлом, в 64-битном длинном режиме они окончательно выпилены. Это неправда. Регистры существуют, даже GDB их печатает.

Раньше сегментные регистры были 16-битные, а сейчас они уже 64-битные. Это неправда, регистры CS, SS, DS, ES и пр. всегда были 16-битными и остаются такими, у них нет расширенных E- или R-версий.

Сегодня в этих регистрах всегда записан ноль. Это тоже неправда, там записан индекс сегментного дескриптора в таблице, а уже в этом дескрипторе базовый адрес равен тождественно нулю. Из приведённого вывода GDB очевидно, что CS и SS не равны нулю. К тому же биты RPL играют свою роль.

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

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

Кольца защиты

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

Существует четыре уровня привилегий: от 0 (наиболее привилегированных) до 3 (наименее привилегированных). В любой момент времени процессор x86 работает на определенном уровне привилегий, который определяет, что код может и не может сделать. Эти уровни привилегий часто описываются как защитные кольца, причем самое внутреннее кольцо соответствует самым высоким привилегиям. [2]

Большинство современных ОС на x86 используют только Ring 0 и Ring 3.

Rings.png

Кольца управляют доступом к памяти. Код с уровнем привилегий i может смотреть только данные уровня i и выше (менее привилегированных).

На кольце 0 можно делать всё. На кольце 3, например, нельзя:

  • изменить текущее кольцо защиты (иначе весь механизм был бы бесполезен);
  • изменить таблицу страниц;
  • зарегистрировать обработчик прерываний;
  • выполнить ввод-вывод инструкциями in и out;
  • .

Текущий уровень привилегий (CPL) определяется сегментным дескриптором кода. Если сейчас исполняется сегмент кода с уровнем привилегий 3, значит, исполняется пользовательский код. Если исполняется код с уровнем привилегий 0 — исполняется код ядра.

При обращении к памяти проверяется неравенство

max(CPL, RPL) ≤ DPL,

  • CPL — текущий уровень привилегий,
  • RPL — записан в сегментном регистре (селекторе),
  • DPL — записан в сегментном дескрипторе.

Еси неравенство ложно, генерируется ошибка general protection fault (GPF).

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

Страничная организация памяти

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

В семействе x86 поддержка появилась с поколения 386, оно же первое 32-битное поколение.

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

Страницы

Виртуальная память делится на страницы. Размер размера страницы задается процессором и обычно на x86-64 составляет 4 KiB. Это означает, что управление памятью в ядре выполняется с точностью до страницы. Когда вам понадобится новая память, ядро ​​предоставит вам одну или несколько страниц. При освобождении памяти вы вернёте одну или несколько страниц. Каждый более гранулярный API (например malloc) реализуется в пространстве пользователя.

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

Vmm.png

Виртуальное адресное пространство

Хотя виртуальные адреса имеют разрядность в 64 бита, текущие реализации (и все чипы, которые находятся на стадии проектирования) не позволяют использовать всё виртуальное адресное пространство из 2 64 байт (16 экзабайт). Это будет примерно в четыре миллиарда раз больше виртуального адресного пространства на 32-битных машинах. В обозримом будущем большинству операционных систем и приложений не потребуется такое большое адресное пространство, поэтому внедрение таких широких виртуальных адресов просто увеличит сложность и расходы на трансляцию адреса без реальной выгоды. Поэтому AMD решила, что в первых реализациях архитектуры фактически при трансляции адресов будут использоваться только младшие 48 бит виртуального адреса.

Кроме того, спецификация AMD требует, что старшие 16 бит любого виртуального адреса, биты с 48-го по 63-й, должны быть копиями бита 47 (по принципу sign extension). Если это требование не выполняется, процессор будет вызывать исключение. Адреса, соответствующие этому правилу, называются «канонической формой». Канонические адреса в общей сложности составляют 256 терабайт полезного виртуального адресного пространства. Это по-прежнему в 65536 раз больше, чем 4 ГБ виртуального адресного пространства 32-битных машин.

Это соглашение допускает при необходимости масштабируемость до истинной 64-разрядной адресации. Многие операционные системы (включая семейство Windows NT и GNU/Linux) берут себе старшую половину адресного пространства (пространство ядра) и оставляют младшую половину (пользовательское пространство) для кода приложения, стека пользовательского режима, кучи и других областей данных. Конструкция «канонического адреса» гарантирует, что каждая совместимая с AMD64 реализация имеет, по сути, две половины памяти: нижняя половина «растет вверх» по мере того, как становится доступнее больше виртуальных битов адреса, а верхняя половина — наоборот, вверху адресного пространства и растет вниз.

Первые версии Windows для x64 даже не использовали все 256 ТБ; они были ограничены только 8 ТБ пользовательского пространства и 8 ТБ пространства ядра. Всё 48-битное адресное пространство стало поддерживаться в Windows 8.1, которая была выпущена в октябре 2013 года.

Структура таблицы страниц

Ставится задача транслировать 48-битный виртуальный адрес в физический. Она решается аппаратным обеспечением — блоком управления памятью (memory management unit, MMU). Этот блок является частью процессора. Чтобы транслировать адреса, он использует структуры данных в оперативной памяти, называемые таблицами страниц.

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

Возможные размеры страниц:

  • 4 КБ (2 12 байт) — наиболее часто используется (как и в x86)
  • 2 МБ (2 21 байт)
  • 1 ГБ (2 30 байт)

Пусть для определённости размер страницы равен 4 КБ. Значит, младшие 12 битов адреса кодируют смещение внутри страницы и не изменяются, а старшие биты используются для определения адреса начала страницы.

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

Полная иерархия сопоставления страниц размером 4 КБ для всего 48-битного пространства займет немногим больше 512 ГБ ОЗУ (около 0.195% от виртуального пространства 256 ТБ).

Кеширование

Таблицы страниц хранятся в оперативной памяти. Если при каждом обращении по виртуальному адресу выполнять полностью трансляцию адресов, это будет работать очень медленно. Поэтому в процессоре реализуется специальный кеш под названием «буфер ассоциативной трансляции» (Translation lookaside buffer, TLB).

На практике вероятность промаха TLB невысока и составляет в среднем от 0,01% до 1%.

Практика: как скоро оно упадёт?

Понятно, что данный код по стандарту некорректен, содержит Undefined Behavior, а раз так, то компилятор может сделать что угодно, например не упасть вообще. Но тем не менее, если запускать на x86-64, то падает оно в определённый момент.

#include #include char buf[1]; #define PAGE_SIZE 4096 int main() { char* ptr = buf; for (;;) { int offset = (intptr_t)ptr % PAGE_SIZE; printf("%p: offset = %d\n", ptr, offset); *ptr = 'a'; // Segmentation fault expected! ++ptr; } return 0; }

Литература

Что не относится к режиму работы процессора?

б) внесение изменений, это делает пользователь, а проц тупо следует программе!

Остальные ответы

Что не относится к режиму работы процессора

Похожие вопросы

Ваш браузер устарел

Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.

Что не относится к режиму работы процессора

Микропроце́ссор — процессор (устройство, отвечающее за выполнение арифметических, логических и операций управления, записанных в машинном коде), реализованный в виде одной микросхемы или комплекта из нескольких специализированных микросхем (в противоположность реализации процессора в виде электрической схемы на элементной базе общего назначения или в виде программной модели). Первые микропроцессоры появились в 1970-х и применялись в электронных калькуляторах, в них использовалась двоично-десятичная арифметика 4-х битных слов. Вскоре их стали встраивать и в другие устройства, например терминалы, принтеры и различную автоматику. Доступные 8-битные микропроцессоры с 16-битной адресацией позволили в середине 1970-х создать первые бытовые микрокомпьютеры.

Количество ядер (от 1 до 6 )
Число ядер в процессоре.
Новая технология изготовления процессоров позволяет разместить в одном корпусе более одного ядра. Наличие нескольких ядер значительно увеличивает производительность процессора. Например, в линейке Core 2 Duo используются двухъядерные процессоры, а в модельном ряду Core 2 Quad — четырехъядерные.
Коэффициент умножения (от 6.0 до 30.0 )
Значение коэффициента умножения процессора, на основании которого производится расчет конечной тактовой частоты процессора.
Тактовая частота процессора вычисляется как произведение частоты шины (FSB) на коэффициент умножения. Например, частота шины (FSB) составляет 533 Mhz, коэффициент умножения — 4.5, получаем: 533*4.5= 2398,5 Mгц. Это и будет тактовой частотой работы процессора. Почти у всех современных процессоров данный параметр является заблокированным на уровне ядра и не поддается изменению.
Нужно отметить, что в современных процессорах Intel Pentium 4, Pentium M, Pentium D, Pentium EE, Xeon, Core и Core 2 используется технология Quad Pumping, которая позволяет передавать четыре блока данных за один такт, при этом эффективная частота шины увеличивается в четыре раза. Для указанных процессоров в поле «Частота шины» приводится эффективная, то есть увеличенная в четыре раза, частота шины. Для получения физической частоты шины нужно эффективную частоту разделить на четыре.
Линейка
Модельный ряд, или линейка, к которой относится процессор.
В рамках одной линейки процессоры могут значительно отличаться друг от друга по целому ряду параметров. У каждого производителя существует так называемая бюджетная линейка процессоров. Например, у Intel это Celeron, а у AMD — Sempron. Процессоры этих линеек отличаются от своих более дорогих собратьев отсутствием некоторых функций или меньшим значением параметров. Так, у процессора в бюджетной линейке может отсутствовать или быть значительно уменьшенной кэш-память разных уровней. Бюджетные линейки Celeron и Sempron можно рекомендовать для офисных систем, не требующих большой производительности. Для более ресурсоемких задач (игр, обработки видео и аудио) рекомендуются «старшие» линейки, например, Core 2 Duo, Core 2 Quad, Phenom X3, Phenom X4 и т.п. Для серверных решений, как правило, используются специализированные линейки процессоров — Opteron, Xeon и прочие.
Отметим наиболее актуальные на сегодняшний день линейки процессоров.
Core 2 Extreme (ядро Kentsfield или Yorkfield) — топовый четырехъядерный процессор от Intel. Рекомендуется для максимальной производительности.
Core 2 Quad — мощный четырехъядерный процессор от Intel. Нужно отметить, что число задач, использующих четыре ядра, на сегодняшний день невелико.
Core 2 Duo — двухъядерный процессор от Intel. Мощный процессор с высоким разгонным потенциалом.
Phenom X4 Quad-Core — четырехъядерный процессор от AMD. Несколько медленнее, чем Core 2 Quad от Intel, но и дешевле.
Phenom X3 — трехъядерный процессор от AMD, который, соответственно, дешевле Phenom X4.
Максимальная рабочая температура (от 54.8 до 105 C)
Допустимая максимальная температура поверхности процессора, при которой возможна нормальная работа.
Температура процессора зависит от его загруженности и от качества теплоотвода. В холостом режиме и при нормальном охлаждении температура процессора находится в пределах 25-40°C, при высокой загруженности она может достигать 60-70 градусов.
Для процессоров с высокой рабочей температурой рекомендуются мощные системы охлаждения.
Напряжение на ядре (от 0.65 до 1.75 В)
Номинальное напряжение питания ядра процессора.
Этот параметр указывает напряжение, которое необходимо процессору для работы (измеряется в вольтах). Он характеризует энергопотребление процессора и особенно важен при выборе CPU для мобильной, нестационарной системы.

Кэш

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

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

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

Объем кэша L1 (от 8 до 128 Кб)
Объем кэш-памяти первого уровня.
Кэш-память первого уровня — это блок высокоскоростной памяти, расположенный прямо на ядре процессора. В него копируются данные, извлеченные из оперативной памяти. Сохранение основных команд позволяет повысить производительность процессора за счет более высокой скорости обработки данных (обработка из кэша быстрее, чем из оперативной памяти). Емкость кэш-памяти первого уровня невелика и исчисляется килобайтами. Обычно «старшие» модели процессоров обладают большим объемом кэша L1.
Для многоядерных моделей указывается объем кэш-памяти первого уровня для одного ядра.
Объем кэша L2 (от 128 до 12288 Кб)
Объем кэш-памяти второго уровня.
Кэш-память второго уровня — это блок высокоскоростной памяти, выполняющий те же функции, что и кэш L1 (см. «Объем кэша L1»), однако имеющий более низкую скорость и больший объем. Если вы выбираете процессор для ресурсоемких задач, то модель с большим объемом кэша L2 будет предпочтительнее.
Для многоядерных процессоров указывается суммарный объем кэш-памяти второго уровня.
Объем кэша L3 (от 0 до 16384 Кб)
Объем кэш-памяти третьего уровня.
Интегрированная кэш-память L3 в сочетании с быстрой системной шиной формирует высокоскоростной канал обмена данными с системной памятью. Как правило, кэш-памятью третьего уровня комплектуются только CPU для серверных решений или специальные редакции «настольных» процессоров. Кэш-памятью третьего уровня обладают, например, такие линейки процессоров, как Intel Pentium 4 Extreme Edition, Xeon DP, Itanium 2, Xeon MP и прочие.
Поддержка 3DNow
Поддержка технологии 3DNow!.
3DNow! — это технология, представляющая собой набор из 21 дополнительной команды. Она предназначена для улучшенной обработки мультимедийных приложений. Эта характеристика относится только к процессорам производства компании AMD.
Поддержка AMD64/EM64T
Поддержка технологии AMD64 или EM64T.
Процессоры с 64-битной архитектурой могут одинаково эффективно работать как со старыми 32-битными приложениями, так и с 64-битными, которые становятся в последнее время все более популярными. Примеры линеек с 64-битной архитектурой: AMD Athlon 64, AMD Opteron, Core 2 Duo, Intel Xeon 64 и прочие. Процессоры с поддержкой 64-битной адресации работают с оперативной памятью свыше 4 Гб, что недоступно традиционным 32-битным CPU. Для использования преимуществ 64-битных процессоров необходимо, чтобы ваша операционная система была адаптирована к ним.
Реализация 64-битных расширений в процессорах AMD называется AMD64, в моделях от Intel — EM64T.
Поддержка HT
Поддержка технологии Hyper-Threading (HT).
Технология Hyper-Threading, разработанная компанией Intel, позволяет процессору выполнять параллельно два потока команд (или две части программы). Это значительно повышает эффективность выполнения специфических приложений, связанных с аудио- и видеоредактированием, 3D-моделированием и т.п., а также работы в многозадачном режиме. Однако в некоторых приложениях использование этой технологии может приводить к обратному эффекту, поэтому при необходимости ее можно отключить.
Поддержка NX Bit
Поддержка технологии NX Bit.
NX Bit представляет собой технологию, которая может предотвращать исполнение вредоносного кода некоторых видов вирусов. Она поддерживается в операционной системе Windows XP при обязательной установке SP2 и во всех 64-битных операционных системах.
Поддержка SSE2
Поддержка технологии SSE2.
Технология SSE2 включает в себя набор команд, разработанных компанией Intel в дополнение к своим предыдущим технологиям SSE и MMX. Эти команды позволяют добиться существенного прироста производительности в приложениях, оптимизированных под SSE2. Данную технологию поддерживают практически все современные модели.
Поддержка SSE3
Поддержка технологии SSE3.
SSE3 — технология, представляющая собой набор из 13 новых команд, призванных улучшить производительность процессора в ряде операций потоковой обработки данных.
Поддержка SSE4
Поддержка технологии SSE4.
SSE4 — технология, представляющая собой набор из 54 новых команд. Они призваны увеличить производительность процессора в работе с медиаконтентом, в игровых приложениях, задачах трехмерного моделирования.
Поддержка Virtualization Technology
Поддержка Virtualization Technology.
Virtualization Technology позволяет запускать на одном компьютере несколько операционных систем одновременно. Таким образом, с помощью виртуализации одна компьютерная система может функционировать как несколько виртуальных систем.
Сокет
Тип сокета — разъема для установки процессора на материнской плате. Как правило, тип сокета характеризуется количеством ножек и производителем процессора. Разные сокеты соответствуют разным типам процессоров.
Современные процессоры Intel используют сокет LGA775 и LGA1366, процессоры AMD — сокеты AM2 и AM2+.
Тепловыделение (от 10 до 165 Вт)
Величина тепловыделения процессора.
Тепловыделение — это мощность, которую должна отводить система охлаждения, чтобы обеспечить нормальную работу процессора. Чем больше значение этого параметра, тем сильнее греется процессор при работе.
Этот показатель важен для оверклокеров: процессор с низким тепловыделением легче охлаждать, и, соответственно, его можно сильнее разогнать.
Однако следует обратить внимание, что производители процессоров по разному измеряют тепловыделение, поэтому их сравнение корректно только в рамках одного производителя
Техпроцесс
Техпроцесс — это масштаб технологии, которая определяет размеры полупроводниковых элементов, составляющих основу внутренних цепей процессора (эти цепи состоят из соединенных соответствующим образом между собой транзисторов). Совершенствование технологии и пропорциональное уменьшение размеров транзисторов способствуют улучшению характеристик процессоров. Для сравнения, у ядра Willamette, выполненного по техпроцессу 0.18 мкм — 42 миллиона транзисторов, а у ядра Prescott, техпроцесс 0.09 мкм — 125 миллионов.
Частота процессора (от 900 до 3800 МГц)
Тактовая частота процессора.
Тактовая частота — это количество тактов (операций) процессора в секунду. Тактовая частота процессора пропорциональна частоте шины (FSB, см. «Частота шины»). Как правило, чем выше тактовая частота процессора, тем выше его производительность. Но подобное сравнение уместно только для моделей одной линейки, поскольку, помимо частоты, на производительность процессора влияют такие параметры, как размер кэша второго уровня (L2), наличие и частота кэша третьего уровня (L3), наличие специальных инструкций и другие.
Частота шины
Частота шины данных (Front Side Bus, или FSB). Шина данных — это набор сигнальных линий для передачи информации в процессор и из него.
Частота шины — это тактовая частота, с которой происходит обмен данными между процессором и системной шиной компьютера.
Нужно отметить, что в современных процессорах Intel Pentium 4, Pentium M, Pentium D, Pentium EE, Xeon, Core и Core 2 используется технология Quad Pumping, которая позволяет передавать четыре блока данных за один такт. При этом эффективная частота шины увеличивается в четыре раза. Для указанных процессоров в поле «Частота шины» приводится эффективная, то есть увеличенная в четыре раза, частота шины.
В процессорах компании AMD Athlon 64 и Opteron использована технология HyperTransport. Она позволяет процессору и оперативной памяти взаимодействовать эффективнее, что положительно сказывается на общей производительности системы.
Ядро
Название ядра в процессоре.
Ядро — это главная часть центрального процессора (CPU). Оно определяет большинство параметров CPU, прежде всего — тип сокета (гнезда, в которое вставляется процессор), диапазон рабочих частот и частоту работы внутренней шины передачи данных (FSB). Ядро процессора характеризуется следующими параметрами: технологический процесс (см. «Техпроцесс»), объем внутреннего кэша первого и второго уровня (см. «Объем кэша L1», «Объем кэша L2»), напряжение (см. «Напряжение на ядре») и теплоотдача (насколько сильно будет нагреваться процессор, см. «Тепловыделение»). Прежде чем покупать CPU с тем или иным ядром, необходимо удостовериться, что ваша материнская плата сможет работать с таким процессором. В рамках одной линейки могут существовать CPU с разными ядрами. Например, в линейке Pentium IV присутствуют процессоры с ядрами Northwood, Prescott, Willamette.

Архитектура процессора
Термин «архитектура процессора» в настоящее время не имеет однозначного толкования. С точки зрения программистов, под архитектурой процессора подразумевается его способность исполнять определенный набор машинных кодов. Большинство современных десктопных CPU относятся к семейству x86, или Intel-совместимых процессоров архитектуры IA32 (архитектура 32-битных процессоров Intel). Ее основа была заложена компанией Intel в процессоре i80386, однако в последующих поколениях процессоров она была дополнена и расширена как самой Intel (введены новые наборы команд MMX, SSE, SSE2 и SSE3), так и сторонними производителями (наборы команд EMMX, 3DNow! и Extended 3DNow!, разработанные компанией AMD). Однако разработчики компьютерного железа вкладывают в понятие «архитектура процессора» (иногда, чтобы окончательно не запутаться, используется термин «микроархитектура») несколько иной смысл. С их точки зрения, архитектура процессора отражает основные принципы внутренней организации конкретных семейств процессоров. Например, архитектура процессоров Intel Pentium обозначалась как Р5, процессоров Pentium II и Pentium III — Р6, а популярные в недавнем прошлом Pentium 4 относились к архитектуре NetBurst. После того, как компания Intel закрыла архитектуру Р5 для сторонних производителей, ее основной конкурент — компания AMD была вынуждена разработать собственную архитектуру — К7 для процессоров Athlon и Athlon XP, и К8 для Athlon 64.

Hyper-Threading
Технология многопоточной обработки команд Hyper-Threading (HT) превращает одноядерный процессор Intel Pentium 4 в псевдодвухъядерный, позволяя выполнять некоторые команды параллельно и увеличивая, тем самым, производительность в отдельных приложениях (оптимизированных под HT). Прирост производительности в таких приложениях может достигать 30%.

Помимо CPU Pentium 4, технология Hyper-Threading поддерживается и некоторыми двухъядерными процессорами Intel, в частности, Pentium Extreme Edition, реализующими, тем самым, виртуальную четырехъядерность. В конструктивном плане процессорное ядро с поддержкой технологии Hyper-Threading состоит из двух виртуальных псевдопроцессоров, в основе которых лежит несколько расширенное, но, все-таки, одно полноценное ядро. Оба псевдопроцессора используют одни и те же неразделяемые ресурсы процессора, включая кэш-память и системную шину.

Подробнее об этой технологии можно прочитать в одном из наших архивных материалов.

Execute Disable Bit

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

Cool’n’Quiet?
Энергосберегающая технология Cool’n’Quiet пришла в десктопные процессоры AMD из сферы мобильных и позволяет снизить тепловыделение и энергопотребление при их неполной загруженности. На данный момент эта технология реализована во всех процессорах семейства AMD K8 — Athlon 64, Athlon 64 X2, Athlon 64 FX, Sempron. Естественно, что и материнская плата должна поддерживать эту технологию (в BIOS должен быть активирован соответствующий пункт).

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

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

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

Разгон процессоров

Разгон процессора (overclocking) — его принудительная работа на нестандартных режимах (в первую очередь, на повышенной частоте). Такой разгон имеет смысл в двух случаях. Во-первых, когда пользователь желает получить максимальную отдачу от компьютера при минимальном вложении в него средств. В большинстве случаев такой разгон относится к категории легких, когда во главу угла ставится стабильность работы компьютера в течение долгого времени, а не достижение экстремальных рабочих частот CPU. Кроме того, такой разгон чаще всего сопровождается комплексной оптимизацией системы (выставлением более низких таймингов памяти в BIOS, тонкой настройкой ОС и т.п.), благодаря которой получают, порой, большую прибавку производительности, нежели от собственно разгона процессора. Но главная причина столь высокой популярности разгона в массах, все-таки, кроется в другом — в обычном человеческом азарте, в желании, выжав из компьютера все возможное и даже чуть больше, превзойти всех и вся и, тем самым, самоутвердиться (пусть даже только в собственных глазах).

В подавляющем большинстве случаев, когда обеспечивается достаточно эффективный отвод тепла от разогнанного процессора (но это обязательное условие!), риск его выхода из строя минимален. Конечно, разгон несколько сокращает срок жизни процессора, однако в любом случае, процессор морально устареет и будет заменен гораздо раньше, чем выработает хотя бы половину ресурса. Также разгон не опасен и для материнской платы. Следует лишь обратить внимание на то, чтобы стабилизатор питания на плате (VRM — Voltage Regulator Module) имел достаточный запас мощности для питания разогнанного процессора (потребление электроэнергии которого, как известно, существенно возрастает).

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

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