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

Обновлено: 01.07.2024

Проблема 2

  1. Сколько страниц находится в виртуальном адресном пространстве?
  2. Каков максимальный размер адресуемой физической памяти в этой системе?
  3. Если средний размер процесса составляет 8 ГБ, вы бы использовали одноуровневую, двухуровневую или трехуровневую таблицу страниц? Почему?
  4. Вычислите средний размер таблицы страниц в ответе на вопрос 3 выше.

    36-битный адрес может адресовать 2 ^ 36 байтов в машине с байтовой адресацией. Поскольку размер страницы составляет 8 КБ (2^13), количество адресуемых страниц равно 2^36 / >2^13 = 2^23

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

Пейджинг 1 уровня
Поскольку у нас есть 2^23 страницы в каждом виртуальном адресном пространстве, и мы используем 4 байта на запись в таблице страниц, размер таблицы страниц будет 2^23 * 2^2 = 2 ^ 25. Это 1/256 собственного пространства памяти процесса, так что это довольно дорого. (32 МБ)

Пейджинг 2 уровня
Адрес будет разделен на 12 | 11 | 13, так как мы хотим, чтобы страницы таблицы страниц умещались на одной странице, и мы также хотим разделить биты примерно поровну.

Поскольку размер процесса составляет 8 ГБ = 2^33 Б, я предполагаю, что это означает, что общий размер всех отдельных страниц, к которым обращается процесс, составляет 2^33 Б. Следовательно, этот процесс обращается к 2^33 / 2^13 = 2^20 страниц. Нижний уровень таблицы страниц содержит 2^20 ссылок. Мы знаем, что размер каждого фрагмента нижнего уровня таблицы страниц составляет 2 ^ 11 записей. Таким образом, нам нужно 2^20 / 2^11 = 2^9 фрагментов нижнего уровня.

Тогда общий размер таблицы страниц равен:

//размер внешней таблицы страниц //общий размер внутренних страниц< /td>
1 * 2^12 * 4 + 2^9 * 2^11 * 4 = 2^20 * ( 2^-6 + 4) ~4 МБ

3 уровня пейджинга
Для 3 уровня пейджинга мы можем разделить адрес следующим образом:
8 | 8 | 7 | 13

Опять же, используя те же рассуждения, что и выше, нам нужно 2 ^ 20/2 ^ 7 = 2 ^ 13 фрагментов таблицы страниц уровня 3. Каждый фрагмент таблицы страниц уровня 2 ссылается на 2^8 фрагментов таблицы страниц уровня 3. Итак, нам нужно 2^13/2^8 = 2^5 таблиц уровня 2. И, конечно же, одна таблица уровня 1.

Общий размер таблицы страниц равен:

//размер внешней таблицы страниц //общий размер таблиц уровня 2 //общий размер самых внутренних таблиц
1 * 2^8 * 4 2^5 * 2^8 *4 2^13 * 2^7 * 4 ~4MB
Как легко заметить, двухуровневая и трехуровневая подкачка требуют гораздо меньше места, чем подкачка уровня 1. схема. И поскольку наше адресное пространство недостаточно велико, 3-уровневая подкачка работает не лучше, чем 2-уровневая подкачка. Из-за стоимости доступа к памяти гораздо логичнее выбрать двухуровневую схему подкачки для этого процесса.

Проблема 3

  1. Каков размер страницы в такой системе? Объясните свой ответ (число без обоснования не будет засчитано).

    4К. Последние 12 бит виртуального адреса представляют собой смещение на странице, которое варьируется от 0 до 4095. Таким образом, размер страницы равен 4096, то есть 4 КБ.

Поскольку физические адреса имеют длину 44 бита, а размер страницы — 4 КБ, номер кадра страницы занимает 32 бита. Принимая во внимание 4 защитных бита, каждая запись таблицы страниц уровня 3 занимает (32+4) = 36 бит. Округление для выравнивания записей по байтам (словам) приведет к тому, что каждая запись будет потреблять 40 (64) бит или 5 (8) байтов. Для таблицы из 256 записей нам потребуется 1280 (2048) байт.

Таблица страниц верхнего уровня не должна предполагать, что таблицы страниц 2-го уровня выровнены по страницам. Итак, мы храним там полные физические адреса. К счастью, нам не нужны управляющие биты. Таким образом, каждая запись занимает не менее 44 бит (6 байтов для выравнивания по байтам, 8 байтов для выравнивания по словам). Таким образом, каждая таблица страниц верхнего уровня имеет размер 256*6 = 1536 байт (256 * 8 = 2048 байт).

Попытка воспользоваться выравниванием по 256 элементам для уменьшения размера элемента, вероятно, не стоит усилий. Сделать это было бы сложно; вам нужно будет написать новый распределитель памяти, который гарантирует такое выравнивание. Кроме того, мы не можем полностью уместить таблицу в выровненную область размером 1024 байта (44-10 = 34 бита на адрес, что потребовало бы более 4 байтов на запись), и округление размера до следующей степени двойки не спасло бы использовать любой размер, а не просто хранить указатели и использовать обычный распределитель.

Аналогично каждая запись в таблице страниц 2-го уровня представляет собой 44-битный физический указатель, 6 байтов (8 байтов) при выравнивании по байтам (словам). Таким образом, таблица с 16 элементами занимает 96 (128) байт. Таким образом, требуемое пространство составляет 1536 (2048) байт для таблицы страниц верхнего уровня + 96 (128) байт для одной таблицы страниц второго уровня + 1280 (2048) байт для одной таблицы страниц третьего уровня = 2912 (4224) байт. Поскольку процесс может уместиться ровно на 16 страницах, внутренняя фрагментация не тратит память впустую.

Таким образом, требуемое пространство составляет 1536 (2048) байт для таблицы страниц верхнего уровня + 3 * 96 (3 * 128) байт для 3 таблиц страниц второго уровня + 3 * 1280 (3 * 2048) для 3 таблиц страниц третьего уровня. таблица страниц = 5664 (8576) байт.

Проблема 4

В соответствии с философией проектирования процессоров RISC, заключающейся в перемещении аппаратной функциональности в программное обеспечение, вы видите предложение о том, чтобы разработчики процессоров удаляли MMU (блок управления памятью) из аппаратного обеспечения. Чтобы заменить MMU, компиляторы генерируют так называемый позиционно-независимый код (PIC). PIC может быть загружен и запущен по любому адресу без выполнения какого-либо перемещения. Если предположить, что код PIC работает так же быстро, как код без PIC, в чем будет недостаток этой схемы по сравнению со страничным MMU, используемым в современных микропроцессорах?

Решение:
Нужно решение.

Проблема 5

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

Решение:
Нужно решение.

Проблема 6

Рассмотрите следующий фрагмент кода, который умножает две матрицы. Предположим, что двоичный файл для выполнения этой функции умещается на одной странице, и стек также умещается на одной странице. Предположим далее, что для хранения целого числа требуется 4 байта. Вычислите количество промахов TLB, если размер страницы равен 4096, а TLB имеет 8 записей с замещающей политикой, состоящей из LRU.

Решение:
1024*(2+1024*1024) = 1073743872
Двоичный файл и стек умещаются на одной странице, поэтому каждый занимает одну запись в TLB. Пока функция работает, она постоянно обращается к двоичной странице и странице стека. Таким образом, две записи TLB для этих двух страниц будут все время находиться в TLB, а данные могут занимать только оставшиеся 6 записей TLB.

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

Поскольку для хранения целого числа требуется 4 байта, а размер страницы составляет 4096 байт, для каждого массива требуется 1024 страницы. Предположим, что каждая строка массива хранится на одной странице. Тогда эти страницы можно представить в виде a[0..1023], b[0..1023], c[0..1023]: Страница a[0] содержит элементы a[0][0..1023], страница a[1] содержит элементы a[1][0..1023] и т. д.

Для фиксированного значения i, скажем, 0, функция выполняет цикл по j и k, у нас есть следующая ссылочная строка:

Для ссылочной строки (всего 1024 строки) a[0], c[0] приведут к двум промахам TLB. Поскольку доступ к a[0] и b[0] будет осуществляться через каждые четыре обращения к памяти, эти две страницы не будут заменены алгоритмом LRU. Для каждой страницы в b[0..1023] каждый раз при доступе к ней будет происходить один промах TLB. Таким образом, количество промахов TLB для второго внутреннего цикла равно
2+1024*1024 = 1048578.

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

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

ОЗУ — это, по сути, кратковременная память вашего компьютера. Подобно микропроцессору, микросхема памяти представляет собой интегральную схему (ИС), состоящую из миллионов транзисторов и конденсаторов. В самой распространенной форме компьютерной памяти, динамической памяти с произвольным доступом (DRAM), транзистор и конденсатор объединены в пару для создания ячейки памяти, которая представляет один бит данных. Конденсатор содержит бит информации — 0 или 1 (информацию о битах см. в разделе «Как работают биты и байты»). Транзистор действует как переключатель, который позволяет схеме управления на микросхеме памяти считывать показания конденсатора или изменять его состояние.

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

Конденсатор в ячейке памяти динамического ОЗУ похож на дырявое ведро. Его необходимо периодически обновлять, иначе он разрядится до 0. Именно благодаря этой операции обновления динамическая оперативная память получила свое название. Динамическая оперативная память должна постоянно обновляться динамически, иначе она забудет, что в ней находится. Недостатком всего этого обновления является то, что оно требует времени и замедляет работу памяти.

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

Ячейки памяти и DRAM

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

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

Ячейки памяти выгравированы на кремниевой пластине в виде массива столбцов (битовых строк) и строк (словных строк). Пересечение строки битов и строки слов составляет адрес ячейки памяти.

DRAM работает, отправляя заряд через соответствующий столбец (CAS), чтобы активировать транзистор в каждом бите в столбце. При записи строки строки содержат состояние, в котором должен находиться конденсатор. При чтении датчик-усилитель определяет уровень заряда в конденсаторе. Если оно превышает 50 процентов, оно читается как 1; в противном случае он считывает его как 0. Счетчик отслеживает последовательность обновления на основе того, к каким строкам и в каком порядке осуществлялся доступ. Время, необходимое для всего этого, настолько мало, что выражается в наносекундах (миллиардных долях секунды). Скорость чипа памяти 70 нс означает, что полное считывание и перезарядка каждой ячейки занимает 70 наносекунд.

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

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

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

Статическая оперативная память работает иначе, чем DRAM. Мы рассмотрим, как это сделать, в следующем разделе.

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

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

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

Решением было размещение микросхем памяти вместе со всеми вспомогательными компонентами на отдельной печатной плате (PCB), которую затем можно было подключить к специальному разъему (блоку памяти) на материнской плате. В большинстве этих микросхем используется конфигурация выводов J-выводов с небольшим контуром (SOJ), но довольно много производителей также используют конфигурацию с тонким корпусом с малым контуром (TSOP). Ключевое различие между этими новыми типами выводов и исходной конфигурацией DIP заключается в том, что микросхемы SOJ и TSOP монтируются на печатной плате. Другими словами, контакты припаяны непосредственно к поверхности платы, а не вставляются в отверстия или гнезда.

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

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

Ниже приведены некоторые распространенные типы оперативной памяти:

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

Затем появилась SIMM, что означает одиночный встроенный модуль памяти. Эта плата памяти использовала 30-контактный разъем и была около 3.Размер 5 х 0,75 дюйма (около 9 х 2 см). В большинстве компьютеров SIMM приходилось устанавливать парами с одинаковой емкостью и скоростью. Это связано с тем, что ширина шины превышает размер одной SIMM.

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

Некоторые бренды ноутбуков используют ОЗУ на основе конфигурации модуля памяти SODIMM с двумя рядами контактов. Карты SODIMM маленькие, примерно 2 x 1 дюйм (5 x 2,5 см) и имеют 144 или 200 контактов. Емкость варьируется от 2 до 32 ГБ на модуль. В некоторых субноутбуках используются модули DIMM еще меньшего размера, известные как MicroDIMM. Промышленность переходит на маломощные модули DDR4 в более тонких и легких ноутбуках, потому что они потребляют меньше энергии и более компактны. К сожалению, их приходится припаивать, а это означает, что обычный пользователь не может заменить оригинальную оперативную память.

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

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

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

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

Сколько оперативной памяти вам нужно?

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

Если ваша система медленно реагирует или постоянно обращается к жесткому диску, вам необходимо добавить больше оперативной памяти. Если вы используете Windows 10, Microsoft рекомендует 1 ГБ в качестве минимального требования к ОЗУ для 32-разрядной версии и 2 ГБ для 64-разрядной версии. Если вы переходите на Windows 11, вам потребуется не менее 4 ГБ. Если вы используете Mac с MacOS 11 (Big Sur), вам также потребуется 4 ГБ.

Linux хорошо работает на системах с низкими системными требованиями, включая оперативную память. Xubuntu, одному из популярных дистрибутивов Linux с низкими требованиями, требует всего 512 МБ ОЗУ. Xubuntu использует облегченную среду рабочего стола Xfce, которая также работает с другими дистрибутивами Linux. Конечно, есть дистрибутивы Linux с более высокими системными требованиями.

Независимо от того, какую операционную систему вы используете, помните, что минимальные требования рассчитаны для нормального использования — доступ в Интернет, обработка текстов, стандартные домашние/офисные приложения и легкие развлечения. Если вы занимаетесь автоматизированным проектированием (САПР), трехмерным моделированием/анимацией или тяжелой обработкой данных, или если вы серьезный геймер, вам потребуется больше оперативной памяти. Вам также может понадобиться больше оперативной памяти, если ваш компьютер действует как сервер (веб-страницы, база данных, приложение, FTP или сеть).

Другой вопрос заключается в том, сколько видеопамяти вы хотите на своей видеокарте. Почти все карты, которые вы можете купить сегодня, имеют не менее 12-16 МБ оперативной памяти. Обычно этого достаточно для работы в обычной офисной среде. Вам, вероятно, следует инвестировать в видеокарту более высокого класса, если вы хотите сделать что-либо из следующего:

  • Играть в реалистичные игры
  • Снимать и редактировать видео
  • Создание трехмерной графики
  • Работайте в полноцветной среде с высоким разрешением.
  • Создание полноцветных иллюстраций

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

Как установить оперативную память

В большинстве случаев установка оперативной памяти – это очень простая и понятная процедура. Главное — провести исследование. Вот что вам нужно знать:

  • Сколько у вас оперативной памяти
  • Сколько оперативной памяти вы хотите добавить
  • Форм-фактор
  • Тип оперативной памяти
  • Необходимые инструменты
  • Гарантия
  • Куда это идет?

Оперативная память обычно продается плотностью, кратной 2 гигабайтам: 2, 4, 8, 16, 32. Другими словами, модуль одного типоразмера, но на одной плате может быть разное количество памяти. Например, если ваш компьютер имеет 8 ГБ, а вам нужно 16 ГБ общей оперативной памяти, вам следует купить модуль с плотностью 8 ГБ.

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

Вам также необходимо знать, какой тип оперативной памяти требуется. Некоторым компьютерам для работы требуются очень специфические типы оперативной памяти. Например, ваш компьютер может работать только с 60-70 нс четностью EDO RAM. Большинство компьютеров не настолько ограничены, но у них есть ограничения. Для оптимальной производительности ОЗУ, которое вы добавляете на свой компьютер, также должно соответствовать существующему ОЗУ по скорости, четности и типу.

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

Ваш компьютер настроен только на определенный объем памяти. Существует ограниченное количество слотов памяти, и в зависимости от вашей машины вы можете быть ограничены модулем плотности 8 ГБ, даже если производитель выпускает модуль 16 или 32 ГБ. Или, в некоторых случаях, ваш компьютер может позволить вам обновить оперативную память, которая была установлена ​​на заводе. Если у вас есть машина с 4 ГБ сменной оперативной памяти, но эта машина может принять 16 ГБ, вы можете купить два модуля по 8 ГБ и заменить модуль на 4 ГБ.

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

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

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

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

Для SIMM и некоторых модулей DIMM вы устанавливаете модуль, помещая его в слот примерно под углом 45 градусов, а затем проталкивая его вперед, пока он не станет перпендикулярным материнской плате, а небольшие металлические зажимы на каждом конце не защелкнутся. Если зажимы не фиксируются должным образом, убедитесь, что выемка находится на правильном конце, а карта надежно закреплена.Многие модули DIMM не имеют металлических зажимов; они полагаются на трение, чтобы удерживать их на месте. Опять же, просто убедитесь, что модуль надежно закреплен в слоте. Прочтите инструкции к вашей материнской плате.

После установки модуля закройте корпус, снова подключите компьютер и включите его. Когда компьютер запускает POST («самопроверка при включении»), он должен автоматически распознать память, но для этого может потребоваться несколько перезагрузок. Вот и все!

Компьютерные системы фон Неймана состоят из трех основных строительных блоков:

центральный процессор (ЦП),

и устройства ввода/вывода (I/O).

Эти три компонента соединены вместе с помощью системной шины.

Наиболее важными элементами ЦП являются регистры: ими можно управлять напрямую с помощью компьютерной программы.

На следующей блок-схеме показаны основные взаимосвязи между компонентами ЦП:

Упрощенное представление компьютерной системы

2. Компоненты модели фон Неймана

Память: хранение информации (данные/программы)

Блок обработки: вычисление/обработка информации

Ввод: Средство ввода информации в компьютер. например клавиатура, мышь

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

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

Машина фон Неймана:

Машина фон Неймана
< /p>

3. Связь между памятью и процессором

Связь между памятью и процессором состоит из двух регистров:

Регистр адреса памяти (MAR).

Регистр данных памяти (MDR).

Адрес местоположения помещается в MAR.

Память включена для чтения.

Значение помещается в MDR по памяти.

Адрес местоположения помещается в MAR.

Данные помещаются в MDR.

Сигнал разрешения записи подтвержден.

Значение в MDR записывается в указанное место.

Машина фон Неймана
< /p>

4. Путь данных процессора

Аппаратные единицы, такие как АЛУ, регистры, память и т. д., связаны друг с другом в путь данных.

Поток битов по пути данных контролируется «воротами», которые позволяют битам проходить (включаться) или не проходить (выключаться) по пути данных.

Двоичные инструкции (1 = вкл.; 0 = выкл.), управляющие потоком, называются микроинструкциями.

5. Операции с памятью

Есть две ключевые операции с памятью:

fetch(адрес) возвращает значение без изменения значения, хранящегося по этому адресу.

store( address, value ) записывает новое значение в ячейку по заданному адресу.

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

Такая память называется оперативной памятью (RAM).

Некоторая память является энергонезависимой или доступна только для чтения (ROM или постоянная память).

Понимание MAR и MDR

6. Понимание MAR и MDR

MAR означает регистр адреса памяти:

MAR подключен к адресной шине.

MAR – это "единственный способ" взаимодействия ЦП с адресной шиной .

Буфер с тремя состояниями между MAR и адресной шиной не позволяет MAR постоянно сбрасывать свой вывод на адресную шину.

MAR может содержать либо адрес инструкции, либо адрес данных.

Понимание MAR и MDR

7. Понимание MAR и MDR, продолжение

MDR означает регистр данных памяти.

MDR подключен к шине данных.

Данные могут передаваться в обоих направлениях: в память и из памяти,

поэтому MDR может загружать свои данные из

шина данных (для чтения данных)

один из регистров процессора (для хранения данных)

Схема 2-1 MUX выбирает вход из одного из двух.

Понимание MAR и MDR

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

8. ALU, процессор

Процессор — это аппаратное обеспечение, реализующее арифметические и логические операции.

ALU расшифровывается как Арифметико-логическое устройство, способное выполнять

путь данных x86

Размер входных величин АЛУ часто называют размером слова компьютера.

Сегодня многие процессоры имеют разрядность 32 и 64 бита.

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

9. ALU и длина слова

Размер величин, обрабатываемых АЛУ, равен разрядности компьютера.

Длина слова не влияет на то, что может вычислить компьютер.

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

<р>. но это займет больше времени.

Например, чтобы добавить два 64-битных числа,

10. Блок управления

Управляет блоком прецессии.

Реализовано как FSM.

FSM руководит всей деятельностью.

Пошаговая прецессия на основе часов, цикл за циклом.

FSM контролируется

Машина фон Неймана
< /p>

11. Блок управления, продолжение

Блок управления включает

Инструкция по регистрации IR

Instruction Pointier IP (он же Program Counter PC)

FSM выходы блока управления,

показаны пунктирными линиями, служат двум целям:

Управление обработкой, происходящей внутри ALU.

Разрешить управление воротами чтения/записи пути данных ЦП.

Демонстрация блока управления: cjumpcxx.exe ->
ЦП, память, сборка ->
Защищенная память.

Машина фон Неймана
< /p>

12. Ввод/вывод

Контроллер ввода-вывода обеспечивает необходимый интерфейс для устройств ввода-вывода.

Заботится о низкоуровневых, зависящих от устройства деталях.

Обеспечивает необходимый интерфейс электрического сигнала.

Интерфейс контроллера ввода/вывода

13. Порты ввода/вывода

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

Два способа сопоставления портов ввода/вывода:

Ввод-вывод с отображением памяти:

Порты ввода-вывода сопоставляются с адресным пространством памяти.

Чтение/запись ввода-вывода аналогично чтению/записи памяти.

Может использовать инструкции чтения/записи памяти.

Motorola 68000 использует ввод-вывод с отображением памяти.

Изолированный ввод-вывод:

Отдельное адресное пространство ввода-вывода.

Процессоры Intel 80x86 поддерживают изолированный ввод-вывод.

Требуются специальные инструкции ввода-вывода, такие как IN и OUT в x86.

14. Входное/выходное адресное пространство

Pentium x86 обеспечивает 64 КБ адресного пространства ввода-вывода.

Комбинация не может превышать общего адресного пространства ввода-вывода, может иметь либо

32 тыс. 16-битных портов

16 тыс. 32-разрядных портов

Комбинация из них в общей сложности 64 КБ.

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

Адрес ввода-вывода относится к физическому адресу ввода-вывода.

15. Консольный ввод/вывод в режиме защищенной памяти

Использование консоли в режиме защищенной памяти:

Вывод на консоль

Кодировка символов Ascii

Блок-схема компьютерной системы фон Неймана:

16. Обработка инструкций

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

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

Инструкция представляет собой двоичное кодирование операций и операндов:

Например, арифметическое выражение

-а + б * в

может быть вычислено программой с тремя машинными инструкциями

где NEG , IMUL , ADD — арифметические инструкции, AX, BX и CX — операнды.

Инструкции — это основные единицы обработки.

Инструкции выполняются под контролем блока управления.

17. Компоненты инструкций

Инструкция в памяти состоит из двух частей: кода операции и операндов.

Код операции определяет операцию, которую выполняет инструкция

Операнды — это объекты операции, такие как значения данных, регистры или адреса памяти.

Из-за разнообразия кодов операций и операндов инструкции могут занимать в памяти байты разного размера.

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

Форматы инструкций

18. Зачем изучать Intel x86 ISA?

Семейство процессоров Intel x86 обычно классифицируется как машина с архитектурой фон Неймана.

Самая распространенная ISA на рынке.

Коды операций имеют ноль или более операндов.

Инструкции и операнды имеют надежную поддержку типов данных.

Все ассемблеры x86 бесплатны, включая Microsoft Macro Assembler и MASM.

Полноэкранные 32-разрядные отладчики WinDbg, OllyDbg и MS Visual Studio.

19. Дизайн набора инструкций ЦП x86

Архитектура набора инструкций (ISA) — важная проблема проектирования для разработчиков ЦП:

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

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

<р>. Инструкция LOOP на процессоре x86 практически не используется в современных высокопроизводительных программах.

Расширяемость — это большая проблема (прогнозирование будущих потребностей).

Устаревшая поддержка почти противоположна возможности расширения.

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

20. Набор инструкций процессора

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

Программирование и проектирование набора инструкций — основная задача при проектировании ЦП.

Каждой инструкции нужен уникальный числовой код операции.

Форматы инструкций

Декодер инструкций

21. История IBM PC

Для начала разработайте простой набор инструкций и оставьте место для последующего расширения -

основная причина, по которой процессор x86 так популярен и долговечен.

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

IBM решила, что открытая документация — это хорошо.

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

22. Раннее семейство процессоров x86

Intel представила микропроцессоры в 1969 году: 4-разрядный микропроцессор 4004.

8086 представлен в 1979 году.

20-битная адресная шина, 16-битная шина данных.

(8088 – менее дорогая версия.)

Можно адресовать до 4 сегментов по 64 КБ.

Именуется адресацией в реальном режиме.

По-прежнему полностью совместим с современными процессорами x86.

23. ЦП 8086 и 8088

8088, 8086 и 80286 — это 16-разрядные процессоры.

Внутренние регистры имеют размер 16 бит.

16-разрядная шина данных позволяет использовать EVEN и ALIGN на процессоре 8086 для выравнивания данных по словам и, таким образом, повышения эффективности обработки данных.

Адреса памяти в 8086 и 8088 относятся к фактическим физическим адресам.

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

24. 80186 ЦП

Более быстрая версия 8086.

16-битная шина данных и 20-битная адресная шина.

Улучшенный набор инструкций.

25. 80286 ЦП

Введена адресация в защищенном режиме.

Расширены возможности защиты памяти с некоторыми инструкциями по управлению защищенным режимом.

24-битная адресная шина.

16 МБ адресного пространства.

Сегментация в защищенном режиме отличается от реального режима.

Позволяет операционной системе запускать несколько процессов одновременно.

80286 был минимальным для работы с Windows 3.1 и выше.

26. 80386 ЦП

80386 и многие его преемники являются 32-разрядными процессорами.

Внутренние регистры имеют размер 32 бита.

В отличие от своих предшественников, процессор 80386 может обрабатывать как 16-битные, так и 32-битные данные.

Поддерживает весь набор инструкций 80286.

Также добавлено несколько новых инструкций.

Программное обеспечение, написанное для 80286, работает на 80386 без изменений, но чип работает быстрее.

В 80386 реализовано множество новых функций аппаратного уровня, в том числе

сегментацию можно отключить (плоская модель).

поддержка нескольких виртуальных процессов 8086.

адресация до 4 гигабайт памяти.

специализированные регистры отладки.

27. 80386 ЦП, продолжение

32-разрядные операционные системы, такие как Windows NT, требуют процессора 80386 или выше.

В настоящее время все больше встраиваемых систем используют ЦП 80386.

устройства высокоскоростной передачи данных.

оборудование для высокоскоростного сбора данных.

Дисплеи кабины некоторых современных реактивных лайнеров используют 80386 в качестве контроллеров.

28. 80486 ЦП

Процессор 80486 — это усовершенствованная версия 80386 с

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

выполняет многие инструкции в 2-3 раза быстрее.

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

Чип включает

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

8 килобайт кэш-памяти.

(Математический сопроцессор был отключен в варианте чипа под названием 80486SX.)

Полностью совместим с программным обеспечением 80386.

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

29. Пентиум (Intel 80586)

Pentium был представлен в 1993 году, а затем

Pentium Pro в 1995 г.

Pentium II в 1997 г.

Pentium III в 1999 г.

Пентиум IV 2001.

Аналогичен 80486, но с 64-битной шиной данных.

Добавлен второй конвейер выполнения.

Суперскалярная производительность позволяет выполнять две инструкции за такт.

Двойной встроенный кэш-память уровня 1:

один 8 КБ для данных

еще 8 КБ для инструкций.

Добавлен прогноз ветвлений.

Блок-схема архитектуры Pentium
< /p>

См. также: Руководства по Pentium


Обратите внимание, что не все ошибки, о которых сообщает MemTest86, связаны с плохой памятью. Тест неявно проверяет ЦП, кэши L1 и L2, а также материнскую плату. Тест не может определить, что вызывает сбой. Однако большинство сбоев будет связано с проблемой модуля памяти. Если это не так, единственным вариантом является замена деталей до тех пор, пока неисправность не будет устранена.

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

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

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

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

MemTest86 не может диагностировать многие типы сбоев ПК. Например, неисправный ЦП, который вызывает сбой Windows, скорее всего, вызовет точно такой же сбой MemTest86.

Почему я получаю ошибки только во время теста 13 Hammer Test?

Тест Hammer предназначен для обнаружения модулей ОЗУ, подверженных ошибкам помех, вызванным утечкой заряда. Это явление описано в исследовательской статье Юнгу Кима и др. «Переворачивание битов в памяти без доступа к ним: экспериментальное исследование ошибок помех DRAM». Согласно исследованиям, этому дефекту подвержено значительное количество модулей оперативной памяти, выпущенных в 2010 году или новее. Проще говоря, уязвимые модули ОЗУ могут подвергаться ошибкам нарушения при многократном доступе к адресам в одном и том же банке памяти, но к разным строкам в течение короткого периода времени. Ошибки возникают, когда повторный доступ вызывает потерю заряда в ячейке памяти до того, как содержимое ячейки может быть обновлено при следующем интервале обновления DRAM.

Начиная с MemTest86 версии 6.2, пользователь может увидеть предупреждение о том, что ОЗУ может быть уязвимо для высокочастотных переворотов битов молоточков. Это предупреждение появляется, когда ошибки обнаружены во время первого прохода (максимальная скорость молотка), но ошибки не обнаружены во время второго прохода (более низкая скорость молотка).См. Алгоритмы тестирования MemTest86 для описания двух проходов, выполняемых во время теста Hammer (тест 13). При выполнении второго прохода адресные пары забиваются только с той скоростью, которая считается максимально допустимой производителями памяти (200К обращений за 64мс). После превышения этой скорости целостность содержимого памяти больше не может быть гарантирована. Если ошибки обнаружены в обоих проходах, об ошибках сообщается как обычно.

Ошибки, обнаруженные во время теста 13, хотя и обнаруживаются только в экстремальных случаях доступа к памяти, скорее всего, являются реальными ошибками. При типичном использовании домашнего ПК (например, при просмотре веб-страниц, обработке текстов и т. д.) маловероятно, что модель использования памяти попадет в экстремальный случай, который сделает ее уязвимой для ошибок, вызывающих помехи. Это может вызвать большую озабоченность, если вы используете высокочувствительное оборудование, такое как медицинское оборудование, системы управления самолетами или серверы банковских баз данных. Невозможно с какой-либо точностью предсказать, будут ли эти ошибки возникать в реальных приложениях. Потребуется провести крупное научное исследование 1000 компьютеров и моделей их использования, а затем провести криминалистический анализ каждого приложения, чтобы изучить, как оно использует оперативную память во время выполнения. На сегодняшний день мы видели только 1-битные ошибки в результате запуска теста Hammer.

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

  • Ничего не делать
  • Замените модули оперативной памяти
  • Используйте модули оперативной памяти с функциями проверки ошибок (например, ECC)

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

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

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

Обнаружение и устранение ошибок молотка строк

Способность MemTest86 обнаруживать и сообщать об ошибках молотка строк зависит от нескольких факторов и от того, какие меры по их устранению используются. Чтобы генерировать ошибки, необходимо многократно обращаться к соседним строкам памяти. Но аппаратные функции, такие как несколько каналов, чередование, скремблирование, хеширование каналов, схемы NUMA и XOR, делают почти невозможным (для произвольного модуля ЦП и ОЗУ) узнать, какие адреса памяти соответствуют каким строкам в ОЗУ. Также могут быть предусмотрены различные меры по смягчению последствий. Различные микропрограммы BIOS могут устанавливать разные значения интервала обновления (tREFI). Чем короче интервал, тем более устойчивой к ошибкам будет оперативная память. Но более короткие интервалы приводят к более высокому энергопотреблению и увеличению накладных расходов на обработку. Некоторые ЦП также поддерживают обновление псевдоцелевой строки (pTRR), которое можно использовать в сочетании с ОЗУ, совместимым с pTRR. Это поле позволяет RAM-накопителю указать уровень MAC (Maximum Active Count), который может поддерживать RAM. Типичным значением может быть 200 000 активаций строки. Некоторые процессоры также поддерживают алгоритм Targeted Row Refresh (TRR) Объединенного технического совета по электронному дизайну (JEDEC). TRR представляет собой улучшенную версию ранее реализованного алгоритма pTRR и не вызывает снижения производительности или дополнительного энергопотребления. В результате проверка строк, реализованная в MemTest86, возможно, не является наихудшим возможным случаем, а уязвимости в базовой оперативной памяти могут быть необнаружимы из-за мер по смягчению последствий в BIOS и ЦП.

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

Большинство систем памяти в настоящее время работают в многоканальном режиме, чтобы увеличить скорость передачи между модулями ОЗУ и контроллером памяти. Рекомендуется использовать модули с идентичными характеристиками (т.е. «совпадающие модули») при работе в многоканальном режиме. Некоторые материнские платы также имеют проблемы совместимости с некоторыми марками/моделями оперативной памяти при работе в многоканальном режиме.

Если вы видите ошибки при запуске MemTest86 с несколькими установленными модулями ОЗУ, но не при их индивидуальном тестировании, скорее всего, виновата многоканальная конфигурация. Это может быть связано с несоответствием характеристик ОЗУ или просто с использованием марок/моделей ОЗУ, несовместимых с материнской платой.Большинство поставщиков материнских плат публикуют список известных совместимых моделей оперативной памяти, которые были протестированы на совместимость с вашей материнской платой. Замените модули соответствующим набором заведомо исправных модулей и посмотрите, добьётесь ли вы лучших результатов.

MemTest86 сообщил адрес памяти сбоя. Что это значит?

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

Схема декодирования адреса — это процесс, используемый контроллером памяти для генерации соответствующих адресных сигналов для микросхемы DRAM. В зависимости от контроллера памяти этот процесс может стать довольно сложным, поскольку это не просто прямое сопоставление битов системного адреса с битами адреса DRAM. Для повышения производительности памяти используются такие стратегии, как чередование каналов (для двух-, трех- и четырехканальных установок), чередование рангов/банков/строк и переключение адресов для увеличения параллелизма при доступе к памяти. Для некоторых наборов микросхем, таких как AMD, схема декодирования адреса может быть настроена/определена через регистры PCI, как описано в спецификациях набора микросхем. Однако для других наборов микросхем (например, Intel) схема декодирования адресов является частной и недоступной для общественности. Это значительно усложняет идентификацию адреса DRAM и, соответственно, неисправного модуля. По этой причине MemTest86 не имеет возможности сообщать об адресах DRAM и, следовательно, о неисправных модулях DIMM и ошибках памяти.

Как MemTest86 сообщает об ошибках ECC?

Обратитесь к технической информации ECC для получения отчетов ECC в MemTest86 и других технических деталей ECC.

Если я знаю схему декодирования адреса, могу ли я настроить MemTest86, чтобы сообщать о неисправном модуле?

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

Для каждого из этих 3 параметров можно использовать список битовых позиций, чтобы указать, какие биты адреса памяти использовать исключающее ИЛИ (исключающее ИЛИ), чтобы определить соответствующий [канал памяти|слот|выбор микросхемы (CS )] (0 или 1) неисправного модуля. Это полезно только в том случае, если вы знаете, что контроллер памяти сопоставляет конкретный адрес с [каналом памяти|слотом|выбором микросхемы (CS)], используя эту схему декодирования на основе XOR. Если эти параметры указаны, а MemTest86 обнаруживает ошибку памяти, [канал памяти|слот|выбор микросхемы (CS)] будет рассчитан и отображен вместе с неисправным адресом.

Как узнать, какой модуль оперативной памяти неисправен?

После обнаружения ошибки памяти определение неисправного модуля SIMM/DIMM не является однозначной процедурой. Различные процессоры по-разному сопоставляют адреса памяти с физическими планками памяти. Такие функции, как двухканальное ОЗУ (с чередованием), хеширование каналов и NUMA, очень усложняют сопоставление адресов с модулями, банками и строками. При большом количестве поставщиков процессоров и материнских плат и возможных комбинаций слотов памяти было бы трудно, если вообще возможно, собрать полную информацию о том, как конкретная ошибка будет связана с неисправным модулем памяти. Однако есть шаги, которые могут быть предприняты для определения неисправного модуля. Вот некоторые методы, которые вы можете использовать:

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

Если ни один из модулей не может быть удален, вы можете повернуть модули, чтобы найти неисправный. Этот прием можно использовать только при наличии в системе трех и более модулей. Меняйте расположение двух модулей одновременно. Например, поместите модуль из слота 1 в слот 2 и поместите модуль из слота 2 в слот 1. Запустите тест, и если бит или адрес сбоя изменятся, вы узнаете, что модуль с ошибкой является одним из только что перемещенных. Используя несколько комбинаций перемещения модуля, вы сможете определить, какой модуль неисправен.

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

Как исправить ошибки памяти?

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

  • Замените модули оперативной памяти (наиболее распространенное решение)
  • Установите тайминги RAM по умолчанию или консервативные
  • Увеличьте уровень напряжения ОЗУ.
  • Уменьшите уровень напряжения процессора.
  • Примените обновление BIOS, чтобы устранить проблемы несовместимости
  • Отметить диапазоны адресов как "недопустимые"

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

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

Для некоторых конфигураций (особенно при использовании агрессивных таймингов ОЗУ) может потребоваться более высокое напряжение, чтобы ОЗУ работало в стабильных условиях. Если вы используете нестандартные тайминги ОЗУ, небольшое увеличение напряжения (например, с 1,5 В до 1,55 В) может повысить стабильность. Увеличивайте напряжение на свой страх и риск, так как чрезмерное напряжение может повредить компоненты вашей системы

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

В некоторых случаях проблемы с несовместимостью ОЗУ можно устранить с помощью обновления BIOS. Обратитесь к поставщику материнской платы за обновлениями BIOS с исправлениями совместимости с оперативной памятью.

Некоторые операционные системы позволяют пользователю передать список «плохих» диапазонов памяти, чтобы предотвратить использование или выделение памяти операционной системой в этом диапазоне. Дополнительные сведения см. в разделе Добавление страниц RAM в черный список.

Читайте также: