Универсальный внешний накопитель для всех iOS-устройств, совместим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 до 24:00 пн-пт | c 10:00 до 18:00 сб
0 Comments

Лекция 3. Память. – Системное программирование

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

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

Вся память делится на оперативную (ОЗУ) (по-английски RAM (Random Access Memory) — устройство с произвольным доступом) и постоянную память (ПЗУ) (ROM (Read Only Memory) — память только для чтения). Если в ОЗУ можно как записывать, так и считывать информацию, то из ПЗУ ее можно только считывать.

В ПЗУ расположена BIOS и программа начальной загрузки компьютера (POST). Постоянная и оперативная память находятся в едином пространстве адресов.

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

Загруженная в память программа всегда отводит под свои нужды отдельный участок памяти, который называется стеком. Стек работает особым образом — данные в него помещаются и извлекаются по принципу LIFO (Last In First Out — “последним вошел– первым вышел”). Стек можно представить в виде стопки листов бумаги (это, кстати, одно из значений английского слова stack) — листы, которые мы положили в стопку последними, сможем забрать первыми, иначе говоря, можем класть и забирать листы только с вершины стопки.

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

В реальном режиме процессор делит пространство памяти на сегменты по 64 Кбайт (сегментированная модель памяти), в защищенном режиме процессор предоставляет несколько различных моделей памяти, но чаще всего используется самая простая плоская модель памяти (память представляется одним сплошным массивом байтов). Как выглядит образ памяти программы в реальном режиме показано на рис. 3.1 и на рис. 3.2, а плоская модель памяти показана на рис. 3.3.

Рис. 3.1. Образ памяти программы типа COM.

Рис. 3.2. Образ памяти программы типа EXE.

Рис. 3.3. Плоская модель памяти.

Фирме Intel понадобилось  в  реальном  режиме делить память на 64 Кбайт сегменты, т.к. процессоры  первого поколения были 16-разрядными, а, следовательно, максимальный размер, который они могли адресовать, составлял всего 216=64 Кбайт. Понятно, что это очень мало, поэтому Intel стала искать способы  расширения доступного адресного пространства. Конечно, самый простой способ — это увеличить разрядность процессора (что и было сделано в последующих поколениях), но в первых поколениях  процессоров это не позволяла сделать технология, ограничивающая количество элементов  на  чипе. Поэтому  фирма Intel решила использовать специальный встроенный диспетчер памяти, для управления которым были введены известные нам уже сегментные регистры: CS указывал на область ОЗУ в котором располагался код программы, регистр DS отвечал за данные, SS определял расположение  стека. А адрес ячейки внутри  сегмента стал представлять собой совокупность двух слов, записываемых в программах в виде  SSSSh:OOOOh, где SSSSh — адрес сегмента, а OOOOh — относительный адрес (называемый также эффективным), или смещение, который используется для доступа к ячейке внутри сегмента.

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

Однако в процессорах первого поколения использовалась 20-разрядная шина адреса, по которой передать значение адреса состоящего из двух слов (32 бита) было невозможно. Поэтому для преобразования 32-х разрядного адреса в 20-разрядный адрес для передачи по шине адреса Intel ввела следующий аппаратный алгоритм: значение сегментного регистра умножается на 16 (10h) или (что то же самое) сдвигается на 4 разряда влево и складывается со значением смещения, в результате получается 20-битный адрес. Например, если 32-разрядный адрес DS:BX, где DS=1234h, BX=5678h, то значение сегментного регистра, умноженное на 16 будет равно 12340h, а физический адрес 12340h+5678h=179B8h.

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

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

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

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

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

В защищенном режиме появилось еще 4 модели памяти (эти модели памяти недоступны в реальном режиме):

·                    плоская, или линейная модель памяти (flat memory model) — вся память представляет собой непрерывную линейную последовательность байт (рис. 3.3). Диапазон адресов в этой модели находится в пределах от 0 до 232-1 (4 Гбайт). Программный код, данные и стек располагаются в этом пространстве адресов.

·                    сегментированная модель памяти (segmented memory model)

— подобно тому, как это делается в реальном режиме, в защищенном режиме память может делиться на отдельные пространства адресов, которые называют сегментами. При этом программный код, данные и стек размещаются в отдельных сегментах памяти. Программы в 32-разрядном режиме могут использовать до 16383 сегментов разного размера, каждый из которых может иметь размер 232 байт (4 Гбайт). Однако в отличие от реального режима, преобразование логических адресов в физические в сегментированной модели памяти защищенного режима выполняется значительно сложнее. По-прежнему логический адрес формируется при помощи сегментных регистров и регистров, в которых хранятся смещения. Однако сегментные регистры теперь хранят не сегментный адрес, а так называемый селектор (рис. 3.4).

Рис. 3.4. Формат селектора.

Он также содержит16 бит, но теперь имеет более сложную структуру:

·         Index — индекс в таблице дескрипторов(его длина13 бит, следовательно в таблице содержится не более 213=8192 дескрипторов).

·         TI — если бит установлен, то это селектор в LDT, сброшен в GDT.

·         RPL — уровень привилегий запроса.

Индекс селектора (13 бит) указывает на дескриптор в таблице, называемой дескрипторной.

В сегментированной модели памяти защищенного режима используется две дескрипторные таблицы: глобальная (GDT) и локальная(LDT). Тип используемой таблицы определяется битом TI селектора. Таблицы— это просто массивы из дескрипторов. Адреса этих массивов хранятся в системных регистрах: GDTR и LDTR, соответственно.

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

Рис. 3.5. Схема преобразования логического адреса в линейный в защищенном режиме адресации.

·                    страничная модель памяти (paging) — является надстройкой над сегментированной или плоской моделью памяти. В этом режиме память рассматривается как совокупность блоков фиксированного размера (страниц) размером 4 Кбайт. Начиная с 5-го поколения процессоров, появилась возможность увеличения размера страницы до 4 Мбайт. Страничная модель памяти предназначена для организации виртуальной памяти. Благодаря виртуальной памяти программы могут использовать для работы объем памяти больший, чем объем физической памяти. Суть виртуальной памяти заключается в том, что страницы могут выгружаться из физической оперативной памяти на диск (в файл обмена, файл подкачки или swap-файл) и по мере необходимости подкачиваться с него обратно. Через страничное преобразование i386 может адресовать до 4 Гбайт физической памяти и до 64 Тбайт виртуальной памяти. Виртуальная память включается в настройках операционной системы. Разбиение на страницы выполняется на аппаратном уровне и программисту знать подробностей, как правило, не требуется. На программном уровне страничный механизм включается установкой специального бита (PG) в регистре CR0 при помощи привилегированной команды.

·                    модель памяти в режиме V86. С точки зрения программиста эта модель памяти работает точно также как в обычном реальном режиме. Т.е. память делится на сегменты по 64 Кбайт, ячейки внутри которых адресуются с помощью двух слов, записываемых в виде СЕГМЕНТ:СМЕЩЕНИЕ, максимальная адресуемая память 1 Мбайт и пр. Однако в режиме V86 выполняются все проверки защиты защищенного режима, из-за чего в некоторых случаях не будут работать некоторые инструкции. Особенно это касается инструкций ввода-вывода IN, OUT, (REP) INS, (REP) OUTS и инструкций обработки прерываний: INT n, PUSFF, POPF, STI, CLI и IRET.

 

Организация памяти / Хабр

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

И так, чтобы понять организацию памяти от вас потребуется знания некоторых базовых понятий, таких как регистры, стек и тд. 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, так как они нам не понадобятся. Итак наше небольшое отступление про регистры и стек закончилось переходим обратно к организации памяти.

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

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

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

Линейный адрес вычисляется по формуле:

линейный адрес=Базовый адрес сегмента(на картинке это начало сегмента) + смещение

Сегмент кода

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

Сегмент данных

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

Сегмент стека

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

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

С помощью такой нехитрой операции процессор может обращаться по нужному адресу линейной памяти.
Рассмотрим другие биты дескриптора, очень важным является Segment Limit или предел, он имеет 20битное значение от 0-15 и 48-51 бит. Предел задает размер сегмента. Для сегментов данных и кода доступными являются все адреса, расположенные в интервале:

[база; база+предел)

В зависимости от 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, и производится повторное обращение к дескриптору, сегмент которого находится уже в памяти.

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

Односторонняя и двусторонняя память (модули ОЗУ SS и DS)

В чем разница между односторонней и двусторонней памятью? И один лучше другого?

Давайте посмотрим:

В чем разница между односторонней и двусторонней оперативной памятью?

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

Вот и все. В этом разница. Не путайте их с другими характеристиками ОЗУ, такими как ранги, каналы или количество модулей:

Распространенные заблуждения об односторонней и двусторонней оперативной памяти

Односторонние и двусторонние карты оперативной памяти различаются физическим расположением микросхем DRAM на печатной плате модуля оперативной памяти.

Как следует из названия, односторонние модули имеют микросхемы DRAM на одной стороне печатной платы модуля RAM. Их двухсторонние собратья имеют микросхемы DRAM с обеих сторон печатной платы.

Односторонний двусторонний и двухсторонняя ОЗУ отличаются от одинарной ранга и двойной ранга ОЗУ.

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

Но разница в производительности существует, когда сравнивает одноранговую и двухранговую память . Все сводится к их количеству и процессу, называемому Rank Interleaving.

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

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

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

Группа отраслевых стандартов памяти (JEDEC) определила термин «ранг памяти», который представляет собой одновременно доступные микросхемы DRAM, подключенные к одному ведомому устройству.

Каждый ранг имеет 64-битную шину данных.

Что касается модулей ECC DIMM, мы рассматриваем 72-битную шину данных, поскольку они имеют дополнительную физическую микросхему, хранящую еще восемь бит для проверка ошибки .

  • 1RX8: Представляет собой одноранговый модуль.
  • 2RX8: Представляет двухранговый модуль.
  • 4RX8: Четырехранговый модуль.

Источник: Kingston

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

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

Односторонняя (SS) и двусторонняя (DS) ОЗУ: производительность

Нет разницы в производительности между односторонней и двусторонней ОЗУ.

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

Заключение

Одноранговая и двусторонняя ОЗУ — это не то же самое, что одноранговая и двухранговая ОЗУ.

Одностороннее ОЗУ относится к физическому расположению микросхем DRAM на печатной плате модуля.

Ранги ОЗУ относятся к общему количеству 64-битных (72-битных в ECC) шин данных, которые позволяют вам получить доступ к модулям памяти.

При выборе модулей оперативной памяти, вот список факторов, влияющих на производительность вашего ПК, от наиболее важных до наименее важных:
  1. Емкость (в ГБ, чем больше, тем лучше)
  2. каналов (одиночный, двойной, четырехъядерный, шестигранный, восьмикратный, чем выше, тем лучше)
  3. Частота (Чем выше, тем лучше)
  4. Задержка (например, задержка CAS, чем меньше, тем лучше)
  5. Ранги (Одиночные, Двойные, Четырехранговые, в зависимости от вашего варианта использования, обычно чем выше, тем лучше)
  6. Торговая марка (например, Corsair, G. Skill)
  7. сторон (двусторонняя / односторонняя, зависит от вашего варианта использования, одинарная обычно лучше для более низких температур)

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

Должен ли я использовать одностороннюю или двустороннюю оперативную память с процессорами Ryzen?

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

Как правило, оперативная память DR на 5–10 % быстрее своих аналогов SR в некоторых рабочих нагрузках, но разница может быть еще более заметной с процессорами Ryzen.

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

Это можно сделать двумя способами:

  1. Выключите компьютер, снимите боковую панель и проверьте свою оперативную память, чтобы узнать, установлены ли в ней микросхемы DRAM только с одной или с обеих сторон печатной платы.
  2. Если у вашей оперативной памяти есть радиатор, загрузите и установите CPU-Z. Перейдите на вкладку «Скорость (SPD)», и вы увидите номер детали вашей оперативной памяти.

    Снимок экрана с номером детали RAM из приложения CPU-Z

    Вы можете запустить поиск по номеру детали, и вы должны перейти на страницу информации о продукте производителя, на которой будут перечислены спецификации модуля. Если производитель не указывает размещение чипов в спецификациях, вам не повезло. Возможно, вы сможете сопоставить чипы Micron/Samsung, взглянув на наклейку на ваших модулях оперативной памяти, но кроме этого (или сняв теплоотвод) это почти невозможно из-за очень скудных спецификаций продукта в Интернете.

Вам к вам

Есть вопросы? Дайте мне знать в комментариях или на нашем форуме!

CGDirector поддерживает Reader. Когда вы покупаете по нашим ссылкам, мы можем получать партнерскую комиссию.

Что лучше для Windows 11?

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

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

СС в ОЗУ

СС в ОЗУ означает одностороннюю оперативную память. Только 64 бита могут быть сохранены в этом типе ОЗУ в определенный период времени. Все восемь черных чипов находятся исключительно на одном конце карты оперативной памяти. Каждая из микросхем имеет восьмибитную разрядность. Всего несколько микросхем оперативной памяти имеют по восемь микросхем с обеих сторон. Однако он сохраняет только 64 бита вместо 128. Это происходит потому, что каждый из 16 чипов имеет емкость четырех бит, а не восьми бит.

ДС в ОЗУ

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

Есть ли разница в производительности между SS и DS в оперативной памяти?

Из определения ОЗУ SS и DS уже можно догадаться, что должна быть разница в производительности. Иначе не было бы разных оперативок. Если вы обратите пристальное внимание на факты и технические детали, станет совершенно ясно, что они разные. Основное и главное отличие заключается в количестве рангов. В то время как SS имеет один ранг, а DS имеет двойной ранг, что понятно из названий этих двух типов RAM. Задумывались ли вы о том, каково было бы получить четкое представление о RAM SS и DS?

Что такое ранг памяти?

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

Номер ранга может указывать внутреннюю память устройства RAM. Тем не менее, это в основном зависит от технологии процессоров карты памяти и версии DDR. Поскольку большинство микросхем IC могут вмещать только один ГБ памяти, многие современные диски DDR4 емкостью 16 ГБ являются двусторонними. Например, чипы Crucial RevB большей емкости, с другой стороны, позволяют использовать до шестнадцати ГБ памяти в односторонней ОЗУ. Двухранговые и четырехранговые микросхемы памяти емкостью 32 ГБ жизнеспособны, поскольку можно использовать один модуль памяти одинарного ранга 8 ГБ или даже 16 ГБ. В настоящее время нет доступного модуля хранения DDR4 емкостью 32 ГБ с одним рейтингом. Однако по мере развития технологий мы можем увидеть их больше.

Отличия характеристик

Существует множество категорий, в которых SS и DS отличаются друг от друга. Эти категории подскажут вам, какая оперативная память лучше другой. Давайте посмотрим на RAM SS и DS.

Ранг

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

Нагрузка на программную память

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

Память

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

Цена

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

Чипы памяти

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

Разрядность

Одностороннее ОЗУ обычно имеет разрядность 64 разряда, а двустороннее ОЗУ — 128 разрядов

Имя

известная как ОЗУ 2-го ранга.

Мощность разгона

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

Чипы

Одностороннее ОЗУ имеет восемь чипов и редко шестнадцать чипов. Двусторонняя оперативная память имеет шестнадцать микросхем.

Совместимость с контроллерами памяти

Односторонняя оперативная память может эффективно и стабильно работать с контроллером памяти, в то время как двухсторонняя ОЗУ может вызвать стресс при работе с контроллерами памяти.

Маркировка

Односторонние ОЗУ имеют маркировку «1R», а двусторонние ОЗУ имеют маркировку «2R».

Переключение банков

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

Скорость

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

Игры

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

Совместимость

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

Скорость

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

Циклы обновления

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

Эффекты

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

Генерация тепла

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

Окончательное сравнение между RAM SS и DS Это 128 бит. Их также называют: ОЗУ 1-го ранга. Также называются: ОЗУ 2-го ранга. Может разгоняться выше двустороннего. Иногда разгоняется меньше, чем ss RAM. На нем восемь фишек. (Редко 16). Должно быть 16 фишек. Эффективно и стабильно работает с контроллером памяти. Больше нагружает контроллеры памяти. На модулях оперативной памяти имеется слово «1R». На модулях оперативной памяти имеется слово «2R». Не нужно переключать банки. Необходимо переключить банки.

Ваш компьютер сможет использовать все сразу с SS RAM. Это позволяет вам увидеть каждое из его воспоминаний за один раз. С другой стороны, эти же чипы в DS RAM разделены на два разных банка. Компьютер может одновременно видеть только одну его часть, а не обе. Ваша система может не обращаться к противоположному концу этого банка при анализе самой первой части этого банка. Всякий раз, когда машина считывает другую половину данных, происходит то же самое. Оперативная память SS превосходит оперативную память DS. PIN-коды 33 и 45 используются на материнской плате, чтобы двустороннее хранилище могло работать правильно.

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

Заключение

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

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

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