Ss ds память отличия: Односторонняя и двусторонняя память – чем отличают модули ОЗУ SS и DS

Лекция 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 бит, то
максимальное пространство памяти, которое может использовать программа в реальном
режиме равно 220=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.

 

Сегментная адресация памяти / Хабр

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

В подавляющем большинстве компьютерных систем для работы с некоторой ячейкой памяти необходимо как-то указать ее адрес, как правило 16-, 32- или 64-разрядное число. Количество бит в адресе часто называют разрядностью системы. Часто дополнительно используется механизм «трансляции страниц», который отображает области виртуальной памяти пользовательского приложения в физическую память, которой управляет операционная система. Но в каждый момент времени активна только одна «таблица страниц» и с точки зрения приложения (а во многом и с точки зрения ядра ОС) память остается плоской.

Рассмотрим старый процессор Intel 86/88/186. Размер регистров этих процессоров всего 16 бит, что позволяет адресовать только 64 килобайта памяти. Когда эти микросхемы разрабатывались, такого размера памяти уже не хватало для многих приложений, а 32-разрядные процессоры были слишком дороги. Проблему решили добавив в архитекруру сегментные регистры. При обращении к памяти по 16-битному адресу (хранящемуся в регистре общего назначения или прямо в коде команды) прибавлялось значение сегментного регистра, сдвинутое на 4 бита (что то же самое, умноженное на 16) и полученное значение использовалось как физический адрес. Такой подход позволял адресовать до одного мегабайта памяти. В архитектуре персональных компьтеров IBM PC, созданных на базе этих процессров, часть адресного пространства была зарезервирована для системных нужд, а пользовательским приложениям и ОС было доступно до 640 килобайт. Но не все так просто.

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

Как можно реализовать язык C на i86? Какой выбрать размер указателя на ячейку памяти? Первый вариант — использовть 16-битный адрес. Архитектура процессора поддерживала 4 сегментных регистра — CS, DS, ES и SS. CS всегда содержит сегмент кода. Язык C не предоставляет стандартных средств для модификации кода на лету, что позволяет компилятору и операционной системе более менее вольно с ним обращаться. Если весь код помещается в 64 КБ, то все хорошо, если нет — компилятор вынужден использовать более дорогие межсегментные вызовы и переходы, но это сравнительно небольшая цена. Некоторую сложность создают указатели на функции, которые требуются по стандарту C. Интерфейс функций вызываемых в пределах одного сегмента и с помощью межсегментных вызовов отличался — межсегментные вызовы дополнительно сохраняли в стеке старое значение CS, а для локальных вызовов это не требовалось. Кроме того размер адреса функции был разный — для внутрисегментной достаточно было 16-бит, межсегментная должна хранить сегмент и смещение в этом сегменте. (Компилятор мог бы располагать функции на адресах, кратных 16, и ссылаться только по значению сегмента, но я не видел реализацию C или другого языка, которая бы так умела.)

Регистр DS предназначен для сегмента данных — его использовали по умолчанию практически все команды работы с памятью (кроме некоторых строковых команд, использовавших ES, и обращений в стек, о которых чуть позже). Таким образом если для данных хватало 64 КБ, то можно все их хранить в одном сегменте и использовать 16-битный указатель.

Большинство компиляторов (но не все) на каждый вызов функции создают stack frame, область стека, которая содержит адрес возврата, аргументы и локальные переменные. В i86 для стека используется сегментный регистр SS. Операции push/pop, вызовы подпрограмм и выход из них неявно использовали регистр SP (stack pointer). В i86 не было команд, явно использующих для адресации SP, поэтому компилятор в начале подпрограммы копировал значение SP в регистр BP (base pointer), и для работы с аргументами и локальными переменными использовал его. При адресациии через BP по умолчанию использовался сегмент стека. В i386 появилась возможность явно использовать SP для обращения в память, в этом случае также использовался сегмент стека. Таким образом архитектура позволяла независимо использовать 64 КБ данных и 64 КБ стека, а таже реализовать многозадачность с моделью «общий хип, частные стеки», но. ..

Но язык C требует возможности получения указателя на произвольный объект, глобальный, аллокированный в сегменте данных или на стеке, в том числе на локальные переменные и аргументы функций. Таким образом, если мы хотим использовать 16-битный указатель, мы должны объединить сегменты данных и стека.

Компиляторы C для i86 поддерживали несколько моделей памяти, каждая из которых имела свои недостатки и ограничения. Кроме того, независимо от модели поддерживалось несколько дополнительных типов указателей — far и huge, которые хранили сегмент и смещение. Отличие было в поддержке адресной арифметики. Far предполагал что все адресуемые через него данные находятся в том же сегменте. Huge поддерживал полноценную адресную арифметику, для чего компилятор генерировал дополнительный код, проверяющий пересечение границы сегмента и пересчитывающий значение сегмента при необходимости.

Таким образом на x86 терялись главные преимущества языка C — эффективность и переносимость.

Архитектура x86 явно использовала 20-битную адресацию памяти и расширить ее не теряя совместимости с существующими приложениями было не просто. 13 сегментами, каждый по 64 КБ, что составляет аж 4096 террабайт виртуальной памяти. Но структура таблицы поддерживала только 24-битный физический адрес начала сегмента и физической памяти можно было использовать только 16 мегабайт. В дополнение к увеличению доступной памяти была реализована защита памяти, что позволило запускать вполне серьезные операционные системы — Unix (Xenix), Windows 3.1, OS/2.

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

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

Настоящий прорыв в архитектуре x86 случился с появлением процессора i386. Процессор стал 32-битным, 32-битными стали и регистры общего назначения, и размеры сегментов. Также увеличился объем доступной оперативной памяти вместе с битностью адреса начала сегмента. В дополнение появилось еще два сегментных регистра — FS и GS, что должно было немного снизить потери на операциях загрузки сегментов. Но старые программы не могли использовать 32-битной адресации.

Кроме 32-битного режима в i386 появилась трансляция страниц. Это позволило запускать современные системы — Unix и Windows NT. 4 гигабайт адресуемой памяти хватает любым приложениям, и использование сегментов уже не требовалось, все можно поместить в один сегмент. Архитектура Unix была рассчитана на плоскую память языка C (включая код и данные, для удобства реализации загрузчика), и этот подход быстро был поддержан в других ОС.

В архитектуре amd64 использование сегментов сильно ограничили. Регистры CS, DS, ES и SS всегда указывают на всю виртуальную память задачи. Доступны только FS и GS, которые некоторые ОС используют для хранения локальных данных нитей.

x86 — хорошо известная, но не единственная архитектура с сегментной адресацией. Эта статья была задумана с целью немного рассказать про Plessey System 250 и Intel iAPX 432.

Тип сегмента x86 определял содержит он код или данные. В данные попадали и обычные данные, и указатели, и селекторы сегментов. Права на сегмент проверялись при попытке загрузить его в сегментный регистр или выполнить на него переход. А если пойти дальше, и специфицировать, какие сегменты могут содержать ссылки на другие сегменты, а какие не могут? Так и было сделано в Plessey System 250 (PP250).

PP250 — очень древняя система, выпущенная в 1974 году (для сравнения Intel 8086 начал производиться в 1978). К сожалению, я не смог найти описания ее системы команд или готовый эмулятор, поэтому описываю архитектуру памяти исходя из найденных статей. В этой системе поддерживалось несколько типов сегментов, в зависимости от типа сегмент содержал код, данные или ссылки на другие сегменты. Так как у прикладной программы не было возможности получить ссылку на сегмент из сегмента данных, отделять селектор и дескриптор сегментов, как это сделано в Intel 286+, необходимости не было. Также у разработчиков оставалась возможность менять формат ссылок на сегмент в разных версиях системы не теряя совместимости прикладного ПО (например, при увеличении количества доступной памяти), но, на сколько я знаю, она так и не была реализована.

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

Intel iAXP 432 с ОС iMAX 432 начал разрабатываться в 1975 и был выпущен в 1981. Архитектура iAXP 432 оказала заметное влияние на организацию памяти в Intel 286, выпущенном годом позже. Основным ЯП для этой системы был язык Ada, но предполагалась поддержка и других языков, в частности Lisp. Одним из преимуществ таких архитектур является различимость указателей и данных, что упрощает реализацию важной для Lisp сборки мусора.

Сегмент iAPX 432 состоял из двух частей — области ссылок и области данных. Таким образом на уровне системы команд не было возможности попытаться превратить данные в указатель (в PP250 попытка загрузить ссылку из сегмента данных могла быть отслежена только во время исполнения).

Интересно, что разделение указателей и данных встречалось и в традиционных архитектурах, рассчитанных на плоскую память. Например в процессоре Motorola 68000 было два регистровых файла — регистры данных и регистры адресов. С точки зрения разработчика аппаратуры это упрощает реализацию конвейера и экономит биты в кодах команд. Правда с точки зрения разработчиков компиляторов это только усложняло алгоритмы распределения регистров. Похожая схема реализована в некоторый CPU для встраиваемых систем, таких как Blackfin.

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

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

СОДЕРЖАНИЕ

1

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

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

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

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

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

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

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