При включении компьютера содержимое озу

Обновлено: 02.07.2024

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

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

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

Соединяем узнанное воедино

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

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

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

Внимание!

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

По-английски оперативная память называется Random Access Memory (RAM), что переводится как «память с произвольным доступом». Что это за произвольный доступ? Будем разбираться, как говорится, «на пальцах».

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

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

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

Для сравнения

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

Зададимся вопросом: «Что собой представляет оперативная память или, говоря более понятным языком, как она выглядит?» Это плата с расположенными с двух сторон прямоугольными микросхемами, в которых непосредственно и находится оперативная память (рис. 4.6).


Рис. 4.6. Плата оперативной памяти (один из видов)

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


Рис. 4.7. Слоты для оперативной памяти

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

Примечание

Не пугайтесь. Чуть позже вы узнаете, что означают загадочные аббревиатуры SDRAM и DDR SDRAM.

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

Объем оперативной памяти

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

Если перевести наш разговор в русло сухих фактов, то вы узнаете, что для работы в операционной системе Windows XP неплохо бы иметь минимум 256 Мбайт «оперативки» (это необходимый минимум, комфортно работать с таким объемом памяти не получится), а лучше – 512 Мбайт. Если же компьютер работает под управлением Windows Vista, памяти понадобится значительно больше, то есть никак не меньше 512 Мбайт. А если вы хотите насладиться всеми прелестями полупрозрачного и трехмерного интерфейса Vista, придется начинать плясать от 1 Гбайт.

Быстродействие и производительность

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

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

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

Время доступа измеряется в наносекундах. Напомним, что 1 нс = 10 –9 с. Такие промежутки времени могут показаться вам неимоверно малыми, но для процессора они все равно остаются очень большими.

Величина, обратная времени доступа, называется тактовой частотой. Этот параметр является более наглядным, так как позволяет реально сравнить скорость работы процессора и оперативной памяти. Например, устаревшие уже типы «оперативки» имели время доступа около 15 нс, что соответствовало тактовой частоте 60 МГц. Современные же типы памяти могут работать с тактовыми частотами 1066 МГц и выше.

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

Разрядность шины памяти – это количество бит (байт), которые память может одновременно записать или прочитать за раз. Большинство современных типов памяти имеют разрядность шины 64 бита (8 байт) (хотя есть и выше).

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

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

Типы памяти и виды модулей памяти

• FPM RAM (Fast Page Mode RAM) – память с так называемым быстрым страничным обменом использовалась в первые годы компьютерной эры. Как мы уже упоминали, оперативная память представляет собой многомиллионную матрицу ячеек. Для ускорения доступа к оперативной памяти она разбивалась на так называемые страницы. Это позволяло увеличить скорость доступа к данным в случаях, когда изменялся только номер столбца ячейки, а номер строки оставался неизменным. Время доступа FPM RAM составляло 200 нс.

• В 1995 году появилась память EDO RAM (Extended Data Output RAM), то есть оперативная память с расширенными возможностями вывода. EDO RAM была усовершенствованной версией FPM RAM. Время доступа данной памяти составляло уже 50 нс, но все равно было еще очень и очень большим (по сравнению со скоростью работы процессоров).

Эти два типа памяти безнадежно устарели и вряд ли уже когда-либо вам встретятся. Хотя, если вам попадется один из первых компьютеров на базе процессора Pentium Pro…

• В конце 1990-х годов производители памяти осчастливили пользователей компьютеров памятью нового типа SDRAM (Synchronous Dynamic RAM) – синхронная динамическая память. Данная память функционировала значительно быстрее предшественниц (время доступа составляло 6–9 нс) за счет синхронизации своей работы с системной платой. Память SDRAM хоть и считается уже морально устаревшей, однако ее все еще довольно часто можно встретить на не очень новых компьютерах. К тому же найти данную память в продаже не так легко.

• Следующим витком эволюции оперативной памяти стала DDR SDRAM. Аббревиатура DDR означает Double Data Rate – удвоенная скорость передачи данных. Как можно догадаться из названия, данная память работает в два раза быстрее SDRAM, и это действительно так. Память DDR SDRAM (и ее потомки) используется практически на всех современных компьютерах. Такая популярность памяти DDR SDRAM объясняется тем, что она способна работать с большинством современных системных плат, функционирующих на высоких частотах.

• Нетрудно предположить, что память DDR2 SDRAM и DDR3 SDRAM – это дальнейшее развитие DDR SDRAM. Эти типы различаются некоторыми технологическими особенностями, но нам это не так интересно. Просто запомните, что DDR2 работает быстрее, чем DDR, а DDR3 – быстрее, чем DDR2.

• Некоторое время лидером в быстродействии являлась память RDRAM (Rambus Dynamic RAM) – динамическая память от компании Rambus. Она работала на частотах 400 и 533 МГц и очень дорого стоила. Из-за своей дороговизны RDRAM не получила широкого распространения и встречается в некоторых компьютерах на базе уже несколько устаревшего процессора Pentium 4. Другие же производители материнских плат решили использовать более доступную память DDR SDRAM.

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

Теперь поговорим о модулях оперативной памяти. Под модулем мы будем понимать плату, на которой расположены микросхемы памяти (см. рис. 4.6). Модули отличаются друг от друга размерами и формой (форм-фактором). Вам могут встретиться модули памяти трех видов: SIMM, DIMM и RIMM.

• Модули SIMM (Single Inline Memory Module – модуль памяти с однорядным расположением выводов) являются устаревшими, так как именно на них реализовывалась память FPM и EDO. Данные модули производились в двух вариантах: 30– и 72-контактные (рис. 4.8).


Рис. 4.8. 30-контактный (сверху) и 72-контактный (снизу) модули SIMM

Отличительной особенностью модулей SIMM являлось то, что их нельзя было устанавливать на материнскую плату по одиночке или в нечетном количестве: 72-контактные модули располагались только парами, а маленькие 30-контактные – группами по четыре штуки. При нарушении этого правила материнская плата просто «не видела» память.

• Модули DIMM (Dual Inline Memory Module – модуль памяти с двухрядным расположением выводов) появились вместе с памятью SDRAM. Эти модули имеют 168 контактов и поддерживают скорости работы 66, 100 и 133 МГц. С появлением памяти DDR SDRAM появились 184-контактные модули, работающие на частоте от 200 МГц. Кстати, на рис. 4.6 изображен именно модуль DIMM.

Хоть 168– и 184-контактные модули DIMM и одинаковы по размерам, они имеют некоторые различия в форме. Это сделано именно для того, чтобы нельзя было установить модуль DIMM с памятью SDRAM в слот для памяти DDR SDRAM и наоборот.

• Как вы уже догадались, модули RIMM поддерживают память RDRAM. Они имеют 184 контакта, такие же размеры, как модуль DIMM, однако и ряд специфических особенностей конструкции (рис. 4.9), которые не позволят установить их в слот для модулей DIMM.


Рис. 4.9. Модуль RIMM

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

Данный текст является ознакомительным фрагментом.

Продолжение на ЛитРес

Убей в себе “слактивиста”[16]

Убей в себе “слактивиста”[16] Те, кого заворожили возможности “цифровой” политической деятельности, увы, редко могут отличить ее от “слактивизма”, или “диванного активизма”. Эта опасная разновидность слишком часто ведет к беспорядочным гражданским связям (обычно в

Сам себе СМИ

Сам себе СМИ Метки: СМИ, пользовательский контентЖурнал Time в 2006 году присвоил звание «Человек года» интернет-пользователю как таковому, вынеся на свою обложку зеркальный монитор с надписью You, в котором отражается тот, кто взял в руки журнал. Редакция Time тем самым хотела

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

Оперативная память Минимальным необходимым объемом оперативной памяти для работы с программой Premiere Pro считается 512 Мбайт для работы с видео формата DV и 2 Гбайт для работы с видео формата HDV.Оперативная память, как и процессор, влияет на быстродействие всей системы в целом,

6.3. Сам себе Спилберг (DVD-студия Windows)

6.3. Сам себе Спилберг (DVD-студия Windows) DVD отличается от CD не только большой емкостью, это еще и особый формат. Он поддерживает создание меню, ускоренную и замедленную перемотку (очень ускоренную и очень замедленную), «перелистывание» разделов… Словом, если вы смотрите фильмы

Заведите себе врага

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

Процессор и оперативная память

Процессор и оперативная память Для комфортной работы с Pinnacle Studio 11 в Windows XP разработчики рекомендуют наличие в системе процессора Intel Pentium или AMD Athlon с тактовой частотой не ниже 1,4 ГГц (для комфортной работы желателен процессор с частотой не ниже 2,4 ГГц).Для работы в Windows Vista

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

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

8.2. Как представлять себе программы на Прологе

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

ПИСЬМОНОСЕЦ: Сам себе «Компьютерру»

ПИСЬМОНОСЕЦ: Сам себе «Компьютерру» Автор: Сергей ВильяновВот Евгений Антонович обрадовался, получив камеру в подарок. Приятно. А своему другу-то чего приятное не стал делать? Взял бы и подарил. Была бы дружба крепче.И еще непонятна фраза «ушел в руки друга по цене,

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

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

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

1.3.3. Оперативная память Почему эта память — оперативная? Потому что она нужна при выполнении оперативных задач, например открыть Word, запустить почту, посмотреть картинку, поиграть в Квейк и т. д.В оперативную память (ОЗУ, оперативное запоминающее устройство) загружаются

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

Оперативная память Оперативная память – одно из устройств, от объема и скорости работы которого зависит быстродействие всего компьютера. Ее задача – своевременное предоставление процессору необходимой информации.Наиболее популярны модули памяти DDR2 SDRAM

Резюме: Не подпускать к себе конкурентов

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

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

Оперативная память Из предыдущего раздела должно быть понятно, что процессор – это устройство, обрабатывающее данные, которые хранятся в памяти. В этом разделе главы мы поговорим об одном из типов компьютерной памяти – оперативной памяти, или ОЗУ[4] (рис. 3.2). Рис. 3.2.

Глава 12 Я противоречу сам себе

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

Оперативная память – такая деталь системы, которая реже всех выходит из строя. Но спонтанные перезагрузки системы с BSOD и без него, вылеты игр или программного обеспечения, некорректные результаты обработки заданий в тяжёлом софте – всё это и многое другое может быть симптомами проблем именно с ней. На самом деле, такие проблемы возникают довольно часто и являются в основном следствием некорректной настройки самим пользователем, хотя исключать аппаратные проблемы всё же, нельзя. В этом материале мы познакомимся с актуальными модулями памяти для настольных систем, расскажем о возможных проблемах в их работе и причинах, по которым они возникают, а также поможем с диагностикой. Отчего ещё и почему могут возникать сбои в работе памяти? Что в итоге делать или не делать? Отвечая на эти вопросы, пытать мозг новичков мы не будем – расскажем всё простым языком для максимального понимания.




Из чего состоит модуль памяти?

Оперативная память с точки зрения схемотехники является очень простым устройством, если сравнивать с остальными электронными комплектующими системы и не брать в расчёт вентиляторы (в некоторых ведь есть простейший контроллер, реализующий PWM управление). Из каких компонентов собраны модули?

  1. Сами микросхемы – ключевые элементы, которые определяют скорость работы памяти.
  2. SPD (Serial Presence Detect) – отдельная микросхема, содержащая информацию о конкретном модуле.
  3. Ключ – прорезь в печатной плате, чтобы нельзя было установить модули одного типа в платы, их не поддерживающие.
  4. Сама печатная плата.
  5. Разного рода SMD компоненты, расположенные на печатной плате.

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


Кто-то скажет, что это маркетинг и всё такое. В некоторых случаях – да, но не HyperX. Модули Predator с тактовой частотой 4000 МГц без труда прогревают радиаторы до отметки 43 градусов, что мы выяснили в материале о них. К слову, о перегреве сегодня ещё пойдёт речь.


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


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


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

Чему быть – тому не миновать

Выбирая бюджетную память от малоизвестных производителей, вы получаете кота в мешке – такие модули могут быть собраны «на коленке в подвале дядюшки Ляо» и даже не знать, что такое контроль качества. Иными словами – проблемы могут быть и при первом включении. Память ValueRAM от Kingston, конечно же, к таковой не относится, хоть и ценники на неё близки к минимальным. Учитывая предыдущую главу, некоторые пользователи могут сказать, что чем больше компонентов, тем выше шанс их поломки. Логично, опровергнуть это нельзя. Но уверенность HyperX в своей продукции (в частности – модулях Predator RGB) такова, что на неё распространяется пожизненная гарантия! Но так всё равно – что может выйти из строя? Всякие светодиоды и прочие подобные элементы дизайна в расчёт мы не берём.

Повреждение ячеек памяти.

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

Переразгон, неправильные тайминги и напряжение.

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

Да, высокие температуры памяти тоже могут влиять на стабильность работы системы. Поэтому, выбирая высокочастотные комплекты, стоит позаботиться об их охлаждении. Как минимум, они должны обладать радиаторами. То же самое касается и низкочастотных модулей, подверженных разгону с вашей стороны. Хотите установить набор быстрой памяти в рабочую систему, в которой производятся вычисления с её помощью? Не верите, что современная DDR4 с рабочим напряжением 1.2 В может сильно греться? Полюбуйтесь! Температура микросхем модулей, не оборудованных радиаторами, практически достигает 85 градусов, что является пределом для большинства микросхем. Впечатляет, не правда ли?


Механические повреждения
Любое неаккуратное движение – и вы можете повредить модуль памяти. Сколоть микросхему, SPD или в печатной плате лопнут дорожки. При некоторых повреждениях память ещё может работать, но с критическими ошибками. К примеру, скол SPD, что изображён на фото ниже, сделал модуль полностью неработоспособным. К разговору о радиаторах – они позволяют снизить практически до ноля вероятность механического повреждения памяти, если, конечно, вы чай или кофе на него не прольёте…


Другие источники проблем работы памяти, но когда память ни при чём.

Немногие знают, что существуют три буквы, способные упростить подбор компонентов системы – QVL. Расшифровка звучит как Qualified Vendors List, что на русском звучит как список совместимости. В него входят те комплектующие, с которыми производитель материнской платы проверил своё изделие и гарантирует корректную работу. По понятным причинам, проверить сотни наименований может не каждый. Но каждый уважающий себя производитель предлагает достаточно обширный список в нашем случае моделей оперативной памяти.

Синие экраны смерти, зависания и перезагрузки – неисправность точно в…

Из какого минимального набора электронных компонентов состоит ПК/ноутбук/моноблок? Из материнской платы, процессора, накопителя, блока питания и оперативной памяти. Все эти компоненты связаны между собой, поэтому если один из них работает нестабильно, то это вызывает сбои всей системы. Самым правильным путём диагностики будет тестирование каждого из этих компонентов в другой системе. Таким образом, методом исключения мы сможем определить «самое слабое звено» и заменить его. Но не всегда можно найти другую систему для таких действий. К примеру, далеко не каждый из ваших знакомых может обладать платой для проверки модулей с тактовой 4000 МГц или около того. Допустим, проблему выявили, и она заключается в памяти. Проверили несколько раз в разных слотах и на паре материнских плат — а она начала стабильно работать. Магия? Как говорится во вселенной Marvel, магия — это всего лишь неизученная технология, секрет которой в нашем случае очень прост. Контакты на модулях памяти со временем окисляются, что приводит к невозможности их корректной работы, а когда вы достаёте и возвращаете несколько раз, они немного шлифуются, после чего всё начинает работать нормально. На самом деле, окисление контактов — это самая распространенная проблема сбоев работы оперативной памяти (и не только), поэтому возьмите за правило — если возникли какие-либо проблемы с платформой, то вооружитесь обычным канцелярским ластиком и аккуратно протрите контакты с двух сторон. Это актуально как раз в тех случаях, когда проблемы возникают при работе памяти в её номинальном режиме, если до этого она месяцами или годами работала без сбоев.


Если ластик не помог

Что делать дальше? Если система работает с катастрофическими сбоями, то только проверять комплектующие на заведомо рабочей платформе. Если же подозрение именно на память, работающую в номинальном режиме, то можно выполнить несколько тестов. Существуют бесплатные и платные версии программ, некоторые работают из Windows/Linux, а некоторые из DOS или даже UEFI.

Начнём с того, что есть у каждого пользователя Windows 7 и новее. Как ни странно, встроенный в Windows тест памяти работает весьма эффективно и способен выявить ошибки. Запускается он двумя способами – из меню «Пуск»:



Результат нас ждёт один:

Если базовый или обычный тесты не выявили ошибок, то обязательно стоит провести тестирование в режиме «Широкий», который включает в себя тесты из предыдущих режимов, но дополнен MATS+, Stride38, WSCHCKR, WStride-6, CHCKR4, WCHCKR3, ERAND, Stride6 и CHCKR8.


Просмотреть результаты можно в приложении «Просмотр событий», а именно – «Журналы Windows» — «Система». Если событий много, то проще всего будет найти нужный нам журнал через поиск (CTRL+F) по названию MemoryDiagnostics-Results.


Данная программа является лучшим решением для поиска ошибок работы памяти. Она обладает достаточным количеством настроек и выводит результат в понятном виде. Сколько тестировать память? Чем больше – тем лучше, если вероятность появления ошибки мала. Если же какая-либо микросхема памяти явно проблемная, то результат не заставит себя долго ждать.


Существует также MemTest для Windows. Использовать тоже можно, но смысла будет меньше – он не тестирует ту область памяти, которая выделена для ОС и запущенных в фоне программ.


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


К сожалению, обновления этих оболочек, чаще всего, остаются на китайском языке.


А вот наши энтузиасты пишут свой софт. Яркий пример – TestMem5 от Serj.


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

Быстрое решение всех проблем


Для получения дополнительной информации о продуктах HyperX и Kingston обращайтесь на сайты компаний.

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

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

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

Так ладно, хватит о печальном, переходим к делу.
Рассмотрим адресное пространство программного режима 32 битного процессора (для 64 бит все по аналогии)
Адресное пространство этого режима будет состоять из 2^32 ячеек памяти пронумерованных от 0 и до 2^32-1.
Программист работает с этой памятью, если ему нужно определить переменную, он просто говорит ячейка памяти с адресом таким-то будет содержать такой-то тип данных, при этом сам програмист может и не знать какой номер у этой ячейки он просто напишет что-то вроде:
int data = 10;
компьютер поймет это так: нужно взять какую-то ячейку с номером стопицот и поместить в нее цело число 10. При том про адрес ячейки 18894 вы и не узнаете, он от вас будет скрыт.

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

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

Архитектура х86 поддерживает стек.

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

push operand
помещает операнд в стек

pop operand
изымает из вершины стека значение и помещает его в свой операнд

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

Теперь кратко рассмотрим что такое регистры.
Это ячейки памяти в самом процессоре. Это самый быстрый и самый дорогой тип памяти, когда процессор совершает какие-то операции со значением или с памятью, он берет эти значения непосредственно из регистров.
В процессоре есть несколько наборов логик, каждая из которых имеет свои машинные коды и свои наборы регистров.
Basic program registers (Основные программные регистры) Эти регистры используются всеми программами с их помощью выполняется обработка целочисленных данных.
Floating Point Unit registers (FPU) Эти регистры работают с данными представленными в формате с плавающей точкой.
Еще есть MMX и XMM registers эти регистры используются тогда, когда вам надо выполнить одну инструкцию над большим количеством операндов.

Рассмотрим подробнее основные программные регистры. К ним относятся восемь 32 битных регистров общего назначения: EAX, EBX, ECX, EDX, EBP, ESI, EDI, ESP
Для того чтобы поместить в регистр данные, или для того чтобы изъять из регистра в ячейку памяти данные используется команда mov:

mov eax, 10
загружает число 10 в регистр eax.

mov data, ebx
копирует число, содержащееся в регистре ebx в ячейку памяти data.

Регистр ESP содержит адрес вершины стека.
Кроме регистров общего назначения, к основным программным регистрам относят шесть 16битных сегментных регистров: CS, DS, SS, ES, FS, GS, EFLAGS, EIP
EFLAGS показывает биты, так называемые флаги, которые отражают состояние процессора или характеризуют ход выполнения предыдущих команд.
В регистре EIP содержится адрес следующей команды, которая будет выполнятся процессором.
Я не буду расписывать регистры FPU, так как они нам не понадобятся. Итак наше небольшое отступление про регистры и стек закончилось переходим обратно к организации памяти.

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

Логический адрес --> Линейный (виртуальный)--> Физический

image


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

Линейный адрес вычисляется по формуле:
линейный адрес=Базовый адрес сегмента(на картинке это начало сегмента) + смещение
Сегмент кода

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

Данные загружаются в регистры DS, ES, FS, GS
Это значит что сегментов данных может быть до 4х. На нашей картинке он один.
Смещение внутри сегмента данных задается как операнд команды. По дефолту используется сегмент на который указывает регистр DS. Для того чтобы войти в другой сегмент надо это непосредственно указать в команде префикса замены сегмента.
Сегмент стека

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

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

Так выглядит селектор, в тринадцати его битах содержится индекс дескриптора в таблице дескрипторов. Не хитро посчитать будет что 2^13 = 8192 это максимальное количество дескрипторов в таблице.
Вообще дескрипторных таблиц бывает два вида GDT и LDT Первая называется глобальная таблица дескрипторов, она в системе всегда только одна, ее начальный адрес, точнее адрес ее нулевого дескриптора хранится в 48 битном системном регистре GDTR. И с момента старта системы не меняется и в свопе не принимает участия.
А вот значения дескрипторов могут меняться. Если в селекторе бит TI равен нулю, тогда процессор просто идет в GDT ищет по индексу нужный дескриптор с помощью которого осуществляет доступ к этому сегменту.
Пока все просто было, но если TI равен 1 тогда это означает что использоваться будет LDT. Таблиц этих много, но использоваться в данный момент будет та селектор которой загружен в системный регистр LDTR, который в отличии от GDTR может меняться.
Индекс селектора указывает на дескриптор, который указывает уже не на базовый адрес сегмента, а на память в котором хранится локальная таблица дескрипторов, точнее ее нулевой элемент. Ну а дальше все так же как и с GDT. Таким образом во время работы локальные таблицы могут создаваться и уничтожаться по мере необходимости. LDT не могут содержать дескрипторы на другие LDT.
Итак мы знаем как процессор добирается до дескриптора, а что содержится в этом дескрипторе посмотрим на картинке:
Дескрипторы состоит из 8 байт.
Биты с 15-39 и 56-63 содержат линейный базовый адрес описываемым данным дескриптором сегмента. Напомню нашу формулу для нахождения линейного адреса:

линейный адрес = базовый адрес + смещение
[база; база+предел)

В зависимости от 55 G-бита(гранулярити), предел может измеряться в байтах при нулевом значении бита и тогда максимальный предел составит 1 мб, или в значении 1, предел измеряется страницами, каждая из которых равна 4кб. и максимальный размер такого сегмента будет 4Гб.
Для сегмента стека предел будет в интервале:
(база+предел; вершина]

Кстати интересно почему база и предел так рвано располагаются в дескрипторе. Дело в том что процессоры х86 развивались эволюционно и во времена 286х дескрипторы были по 8 бит всего, при этом старшие 2 байта были зарезервированы, ну а в последующих моделях процессоров с увеличением разрядности дескрипторы тоже выросли, но для сохранения обратной совместимости пришлось оставить структуру как есть.
Значение адреса «вершина» зависит от 54го D бита, если он равен 0, тогда вершина равна 0xFFF(64кб-1), если D бит равен 1, тогда вершина равна 0xFFFFFFFF (4Гб-1)
С 41-43 бит кодируется тип сегмента.
000 — сегмент данных, только считывание
001 — сегмент данных, считывание и запись
010 — сегмент стека, только считывание
011 — сегмент стека, считывание и запись
100 — сегмент кода, только выполнение
101- сегмент кода, считывание и выполнение
110 — подчиненный сегмент кода, только выполнение
111 — подчиненный сегмент кода, только выполнение и считывание

44 S бит если равен 1 тогда дескриптор описывает реальный сегмент оперативной памяти, иначе значение S бита равно 0.

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

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

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

Оперативное запоминающее устройство (ОЗУ)

ОЗУ-быстрая, полупроводниковая, энергозависимая память. В ОЗУ хранятся исполняемая в данный момент программа и данные, с которыми она непосредственно работает. Это значит, что когда вы запускаете какую-либо компьютерную программу, находящуюся на диске, она копируется в оперативную память, после чего процессор начинает выполнять команды, изложенные в этой программе. Часть ОЗУ, называемая "видеопамять", содержит данные, соответствующие текущему изображению на экране. При отключении питания содержимое ОЗУ стирается.
Быстродействие (скорость работы) компьютера напрямую зависит от величины его ОЗУ, которое в современных компьютерах может доходить до 128 Мбайт. В первых моделях компьютеров оперативная память составляла не более 1 Мбайт. Современные прикладные программы часто требуют для своего выполнения не менее 4 Мбайт ОЗУ; в противном случае они просто не запускаются.
ОЗУ - это память, используемая как для чтения, так и для записи информации. При отключении электропитания информация в ОЗУ исчезает (энергозависимость).


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

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

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

Основная память состоит из регистров. Регистр - это устройство для временного запоминания информации в оцифрованной (двоичной) форме. Запоминающим элементом в регистре является триггер - устройство, которое может находиться в одном из двух состояний, одно из которых соответствует запоминанию двоичного нуля, другое - запоминанию двоичной единицы. Триггер представляет собой крошечный конденсатор-батарейку, которую можно заряжать множество раз. Если такой конденсатор заряжен - он как бы запомнил значение "1", если заряд отсутствует - значение "0". Регистр содержит несколько связанных друг с другом триггеров. Число триггеров в регистре называется разрядностью компьютера. Производительность компьютера напрямую связана с разрядностью, которая бывает равной 8, 16, 32, 64, 128.


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

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