Тест пам'яті DDR3чи варто переплачувати?


Пам'ять DDR3 поступово стає масовою. Вже сьогодні всі нові материнські плати, що підтримують новітні високопродуктивні процесори і орієнтовані на створення високопродуктивних ПК, розраховані саме на пам'ять DDR3.

«Як же так? - запитаєте ви. — Адже материнські плати, що підтримують новітні процесори AMD, сумісні тільки з пам'яттю DDR2». Так, дійсно, сьогодні процесори AMD сумісні тільки з пам'яттю DDR2, проте ніякого протиріччя в цьому випадку немає, оскільки ми говоримо тільки про материнських платах, що підтримують високопродуктивні процесори, тобто процесори Intel.

В недалекому майбутньому пам'ять DDR3 прийде в сегмент масових, а потім і бюджетних ПК і про пам'яті DDR2 поступово забудуть точно так само, як в свій час забули про DDR.

Сьогодні пам'ять DDR3 поки ще коштує дорого. Причому якщо порівнювати вартість модулів рівного об'єму пам'яті DDR2 і DDR3, то можна сказати, що ціна пам'яті DDR3 невиправдано висока.

Зрозуміло, що вартість пам'яті залежить і від виробника, і від частоти, і від таймінгів. І природно, що більш швидкісна пам'ять, тобто пам'ять, що підтримує більш високі тактові частоти і має менше значення таймінгів, буде коштувати набагато дорожче низькошвидкісний пам'яті. Але чи настільки критичні для пам'яті DDR3, тактова частота і значення таймінгів? Можливо, високі тактові частоти — це не що інше, як чергова рекламна «качка» виробників.

У даній статті ми постараємося з'ясувати, як впливають тактова частота, таймінги і режим роботи пам'яті двоканальний, одноканальний) на реальну продуктивність комп'ютера. Крім того, ми спробуємо зрозуміти, чи варто переплачувати за високошвидкісну пам'ять і адекватний приріст продуктивності від використання високошвидкісної пам'яті заплаченими за це грошей.

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

Принципи функціонування SDRAM-пам'яті

Докладна розповідь про засади функціонування оперативної пам'яті (SDRAM-пам'яті) зажадав би від нас написання окремої книги. Власне, у цій статті ми не ставимо за мету у всіх деталях викласти принципи функціонування SDRAM-пам'яті, але в той же час без базових знань щодо принципів функціонування SDRAM-пам'яті, подальший виклад матеріалу може здатися занадто хитромудрим. А тому спробуємо освіжити в пам'яті основні теоретичні аспекти.

Будова ядра пам'яті

Отже, нагадаємо, що вся сучасна оперативна пам'ять відноситься до синхронної динамічної пам'яті з довільним доступом (Synchronous Dynamic Random Access Memory, SDRAM). Під синхронністю в даному випадку розуміють той факт, що всі керуючі сигнали і самі дані на шині пам'яті синхронізовані з деякою опорною частотою (тактирующими імпульсами). Динамічна пам'ять є в тому сенсі, що інформація в ній зберігається лише при увімкненому живленні, а крім того, вміст цієї пам'яті (на відміну від статичної пам'яті) необхідно періодично оновлювати (проводити регенерацію пам'яті).

Ядро мікросхеми SDRAM-пам'яті прийнято розглядати як деякий двовимірний масив (матрицю) комірок пам'яті, що знаходяться на перетині рядків) і стовпця (Column) (стовпці матриці пам'яті також іноді називають сторінками (Page)). По суті, комірки пам'яті приєднані до ліній рядків і лініях стовпців (рис. 1).

Cкоростная память DDR3
Рис. 1. Структура матриці пам'яті

На елементарному рівні запам'ятовує осередок SDRAM-пам'яті, здатна запам'ятати 1 біт інформації, являє собою конденсатор, який виконує функцію зберігача заряду. Наявність заряду на конденсаторі можна асоціювати з одиничним бітом інформації, а його відсутність — з нульовим бітом.

Проте одного лише конденсатора недостатньо для формування комірки пам'яті. Справа в тому, що якщо конденсатор з'єднати з лінією рядків і лінією стовпців, то він миттєво розрядиться, тобто не зможе зберігати інформацію. Тому в парі з конденсатором в елементарній комірці пам'яті застосовується транзистор, що виконує функцію електронного ключа (рис. 2). Затвор транзистора (керуючий електрод) підключається до лінії рядків, а решта два електрода (стік і джерело) підключені до однієї з обкладок конденсатора і лінії стовпців. Якщо на затвор транзистора не подається напругу, то транзистор знаходиться в закритому стані і конденсатор фізично від'єднаний від лінії стовпців.

Cкоростная память DDR3
Рис. 2. Структура елементарної комірки динамічної пам'яті

При подачі напруги на затвор транзистора він переходить у відкритий стан і конденсатор підключається до лінії стовпців. В результаті відбувається розряд конденсатора і заряд, що зберігається на конденсаторі даної клітинки, надходить в особливий статичний буфер, званий підсилювачем рівня (Sense Amplifier), який встановлений на виході лінії стовпця. Відсутність заряду на обкладках відповідає логічному нулю на виході, а його наявність — логічної одиниці.

Оскільки зчитування вмісту комірки пам'яті відбувається при подачі напруги на лінію рядків, що еквівалентно відкриття транзистора (лінії рядків також називають адресними лініями). Лінії стовпців, по яких зчитується інформація, називають лініями даних.

Сама по собі операція читання даних з комірки пам'яті деструктивна в тому сенсі, що якщо на конденсаторі містився заряд (комірка пам'яті зберігала логічну одиницю), то в ході зчитування конденсатор розрядиться і значення комірки пам'яті буде відповідати вже логічному нулю.

Більш того, в силу організації пам'яті як двовимірного масиву елементів подача напруги на лінію рядків (відкриття рядка) призводить до того, що відкривається не один, а всі транзистори, сполучені з цією лінією рядків, і дані виявляться на виході підсилювачів за всіма стовпцями відразу. Тобто при відкритті рядка зчитується вся сторінка пам'яті цілком, а для читання значення конкретної комірки пам'яті необхідно просто вважати значення підсилювача потрібної лінії даних (лінії стовпця).

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

Для доступу до комірки пам'яті насамперед необхідно знати її адресу, тобто знати, на перетині який рядка і стовпця розташована потрібна комірка пам'яті. Адреси рядка і стовпця передаються одним і тим же адресним лініях, що дозволяє вдвічі зменшити кількість адресних ліній, а отже, зменшити кількість виводів мікросхеми пам'яті. Правда, в цьому випадку для завдання адреси комірки пам'яті потрібно в два рази більше часу, оскільки адреси стовпця і рядка доводиться передавати послідовно. Крім того, мікросхемі пам'яті необхідно якимось чином вказати, чий саме адресу передається по адресній шині. Для цього використовуються два спеціальних керуючих сигналу: RAS# і CAS#. RAS# — це сигнал вибору рядка (Row Access Strobe), а CAS# — сигнал вибору стовпця (Column Access Strobe). У разі якщо доступ до комірки пам'яті не здійснюється, підтримується високий рівень сигналів RAS# і CAS#, що говорить про відсутність інформації на адресній шині.

Якщо потрібно здійснити доступ до комірки пам'яті, спочатку на адресні лінії мікросхеми пам'яті подається адресу рядка і одночасно з цим рівень сигналу RAS# переводиться в низький стан (подача сигналу RAS#). При цьому мікросхема пам'яті поміщає адресу з шини адреси в буфер адреси рядка. Далі здійснюється вибір потрібного рядка (за це відповідає декодер адреси рядка), тобто на потрібний рядок матриці пам'яті подається напруга і всі транзистори, сполучені з рядком, переходять у відкритий стан, а вміст всієї рядка поміщається в підсилювач рівня. Така операція називається активацією рядка.

Далі по адресній шині передається адреса стовпця і одночасно з цим рівень сигналу CAS# переводиться в низький стан (подача сигналу CAS#). При цьому мікросхема пам'яті поміщає адресу з шини адреси в буфер адреси стовпця. Після цього підсилювач рівня передає дані, відповідні адресою стовпця в буфер висновку.

Відзначимо, що в SDRAM-пам'яті реалізована пакетна обробка даних, що дозволяє виробляти звернення за новою адресою стовпця комірки пам'яті на кожному тактовому циклі. Зміст пакетної обробки полягає в тому, що при активованій рядку завдання адреси одного стовпця дозволяє отримати доступ відразу до послідовності декількох стовпців (пакету стовпців) без додаткового зазначення їх адрес. У мікросхемі SDRAM є лічильник для нарощування адреси стовпців, комірок пам'яті, щоб забезпечити до них швидкий доступ. Кількість адресованих таким чином стовпців, називається довжиною пакета (Burst Length, BL).

Оскільки активація рядка є деструктивною операцією, то після зчитування даних рядка їх необхідно відновити в рядку. Ця операція називається перезарядженням рядка (PRACHARGE). Тому на завершальному етапі сигнали RAS# і CAS# встановлюються у високий стан, а мікросхема пам'яті виробляє відновлення вмісту рядка.

Як бачимо, доступ до комірки пам'яті відбувається в строго певній послідовності і вимагає деякого часу. Затримки між подачею сигналів вимірюються в тактах системної шини і називаються таймінгами. Наприклад, затримка між сигналами RAS# і CAS#, тобто між сигналами вибору рядка і вибору стовпця, називається RAS-to-CAS Delay (tRCD). Втім, більш детально про таймінгах пам'яті ми розповімо далі, а поки розглянемо логічну організацію мікросхеми пам'яті.

Логічна організація мікросхем динамічної пам'яті

Отже, тепер спробуємо уявити собі, як може виглядати мікросхема пам'яті об'ємом, наприклад, 512 Мбіт. У такий мікросхемі повинно бути 536 870 912 комірок пам'яті, і якщо припустити, що всі комірки пам'яті являють собою прямокутну матрицю, то в ній повинно бути 16 384 рядків і 32 768 стовпців (або навпаки). Для завдання адреси рядка/стовпця в мікросхемах пам'яті застосовується 14-розрядна адресна шина (A0-A13), що дозволяє адресувати 16 384 рядків або стовпців, але не більше. Як бачите, у нашому випадку обмеження по розрядність адресної шини не дозволяють нам організувати мікросхему пам'яті ємністю 512 Мбіт у вигляді однієї матриці пам'яті.

Для того щоб мати можливість створювати ємні мікросхеми пам'яті з використанням обмеженою розрядність адресної шини, в одній мікросхемі реалізують кілька окремих паралельних матриць запам'ятовуючих комірок, що мають одну адресу. У цьому випадку розмірність шини даних мікросхеми пам'яті не буде дорівнює одиниці, як у випадку з однією матрицею пам'яті, коли дані зчитуються або записуються в матрицю послідовно по одному біту, — вона буде відповідати кількості матриць пам'яті в мікросхемі.

Крім того, що такий підхід дозволяє збільшувати ємність окремої мікросхеми пам'яті без збільшення розрядність адресної шини, він дає можливість зменшити кількість мікросхем пам'яті в модулі пам'яті і спростити їх електричні з'єднання один з одним. Дійсно, розрядність шини даних модулів пам'яті становить 64 біта. Якщо модуль пам'яті складати з окремих мікросхем з розрядністю шини даних, рівної 1 біту, то треба було б 64 окремих мікросхем!

Найбільш популярними виявилися варіанти, коли мікросхема пам'яті має розрядність, рівну 4, 8 або 16 біт (іноді зустрічаються мікросхеми пам'яті з розрядністю 32 біт). Приміром, мікросхему пам'яті ємністю 512 Мбіт можна організувати як чотири матриці по 128 Мбіт. В цьому випадку структура мікросхеми пам'яті позначається як 128Мх4. Перша з цих цифр називається глибиною мікросхеми пам'яті (безрозмірна величина), а друга — шириною (виражена в бітах).

Зазначимо, що в даному випадку 4 біта — це розрядність шини даних мікросхеми пам'яті, причому всі чотири інформаційних біта будуть зчитуватися або записувати в мікросхему пам'яті одночасно (рис. 3).

Cкоростная память DDR3
Рис. 3. Логічна організація мікросхеми пам'яті

Крім фізичної організації мікросхеми пам'яті у вигляді декількох паралельних матриць пам'яті, застосовується ще логічне поділ мікросхеми пам'яті на окремі логічні банки. Як правило, використовується розподіл на дві або чотири логічних банку. Для вибору того чи іншого логічного банку пам'яті використовуються спеціальні адресні лінії. Приміром, якщо в мікросхемі пам'яті є чотири логічних банку, то для вибору окремого банку пам'яті застосовуються дві адресні лінії: BA0 і BA1 (рис. 4).

Cкоростная память DDR3
Рис. 4. Спрощена схема чіпа пам'яті з шириною шини даних 8 біт

Розбиття мікросхеми пам'яті на логічні банки застосовується для підвищення продуктивності. Справа в тому, що після реалізації будь-якої операції з рядком пам'яті потрібен певний час для її оновлення. Якщо використовується логічне розбиття мікросхеми пам'яті на кілька банків, то можна звертатися до рядка одного логічного банку, поки рядок іншого банку оновлюється. Така схема доступу до пам'яті називається доступом з чергуванням банків (Bank Interleave).


Сторінки: 1 2 3 4 5 Слід.