Наши партнеры

UnixForum






Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> Аппаратное обеспечение

Мозговедчество

Андрей Забелин

Когда спрашивают, "какая у твоего компьютера память?", обычно имеют в виду или объем жесткого диска, или количество оперативной памяти. На самом деле штуковин, которые можно обозвать памятью, в компьютере гораздо больше. Возьмем, например, процессор. Те, кто как-то знаком с языком Ассемблера, знают, что большое количество команд или операций производится с регистрами процессора. Для упрощения, регистры - набор переключающихся триггеров, расположенных в ядре процессора. Естественно, это является куда более быстрой памятью, чем даже кэш первого уровня, поэтому многие производители процессоров рекомендуют в программах активно работать с регистрами и поменьше обращаться к основной памяти. Кроме обычных регистров, у некоторых процессоров есть область, куда можно записать данные, управляющие работой процессора. В зависимости от этих данных процессор решает, использовать ему какие-то фичи или нет. Так, например, в старых Cyrix была так круто разработана суперскалярность (возможность за такт параллельно исполнять несколько независимых команд), что выполнялись даже некоторые зависимые инструкции, в результате чего многие программы просто висли. "Лечилось" это просто - особая программка, выложенная на сайте Cyrix, как раз запрещала параллельное исполнение определенного вида инструкций, и программы начинали работать нормально. Зато, кроме патча, Cyrix сделала большое дело - многие обладатели ее процессоров могли с умным видом говорить, что "пропатчили" процессор, что, в свою очередь, вызывало божественный трепет у непосвященных.

Кроме памяти процессора, всем вам знакомая CMOS-память содержит разную инфу о загрузке и перихерии (если уж слово "хер" - печатное, то, наверняка, и слово "перехерия" тоже - это может означать все, что угодно: от неисправной периферии до возможности поставить крест на установке оной посредством задействования Plug&Play). Есть также и оперативная память (она же ОЗУ, она же RAM, она же "Мозги", правда спектр употребления последнего термина немного шире, чем ОЗУ). Именно она и является тем хранилищем, куда все равно приходится обращаться процессору и разной периферии. Помните такую шину как VL-bus? В свое время у нее даже были преимущества относительно шины PCI. В отличие от последней, она могла функционировать на частоте 40 МГц (оверклокеры, не кричите - мы все равно не слышим), но, правда, работала в тесной зависимости от процессора и не умела напрямую использовать системную память. Шины PCI, AGP и еще кое-какие по мелочи умеют не юзать процессор и напрямую общаться с "оперативкой".

А теперь небольшой расчет. Процессор, активно общающийся с памятью, может загрузить оную до предела. Сразу оговорка - почти до предела, так как если чипсет асинхронный и на памяти тактовая частота равняется 133 МГц, а шина процессора 100 МГц, то кусочек в 33 МГц все же остается. Другое дело, что процессор в пару тактов может дать такую команду, что память просто закашляется, но так нечестно он поступает с ней довольно редко. Все же часто он использует если не 100%, то 80-90% пропускной способности памяти, то есть на периферию остается около 10-20% ее скорости.

Посчитаем, как обстоит дело с пропускной способностью. Так как обмен данными с периферией идет по 32-битной шине, то за такт может передаваться до четырех байтов. А это значит, что за миллион тактов передается около четырех миллионов байтов, что в пересчете на мегабайты составляет чуть меньше 4 Мб. Итак, устройство на шине PCI (33 МГц) максимально может потребовать 132 Мб/с. Понятно, что саунд вроде ESS1868 и 10 Мб/с не отхватит, но при работе DSP - крутых саундов, не имеющих собственной оперативки - обработка сигнала идет именно в оперативной памяти, а если туда добавить еще банки для работы с MIDI, а также всяческие многочисленные звуковые потоки, то нагрузка на шину существенно повышается. Понятно, что для одной звуковой карты скорости 132 Мб/с пока "выше крыши", но тенденция явно прослеживается. Другое дело, что во многих чипсетах скорость обмена между всеми PCI-устройствами и шиной памяти не превышает пресловутых 132 Мб/с. Последние чипсеты от Intel (i820, i810(E), i815(E) и пр.) поднимают этот барьер в два раза, но остальные производители чипсетов или пока думают о внедрении подобной технологии или вообще не озабочены этим. Это узкое место не так часто проявляет себя, так как для полной загрузки пропускной способности шины PCI требуется пара хороших плат для видеомонтажа, полупрофессиональный саунд и еще немного по мелочам.

Что касается AGP, то вся радость от цифр после буковки "х" наступает только тогда, когда видеокарте требуется постоянно перекачивать большое количество данных из системной памяти в свою память. Такое безобразие происходит чаще всего в программах, связанных с версткой или дизайном. В играх, когда память видеокарты требует текстур, процесс перекачки из основной памяти все равно сопровождается тормозами, будь то AGP 4x или AGP 2x или PCI. Конечно, главная особенность AGP - прямое текстурирование из основной памяти, но все мы уже знаем, что если для GeForce2 GTS узкое место - 400 МГц DDR-память, то каким же тормозом для нее станет часть скорости обычной SDR, да еще функционирующей на частоте 100 или 133 МГц? Вот поэтому и ставят на последние "видяхи" по 32 или 64 Мб. В принципе, вы можете сами посмотреть на результаты тестирования одних и тех же видеокарт в исполнении PCI и AGP.

Даже скорость AGP 2x вам не столь необходима, так как большинство программ еще не могут эту прорву пропускной способности использовать. Итак, если мы выберем скорость между AGP и AGP 2x, то получится около 390 Мб/с. Приблизительно эту скорость от видеокарты и требуют сейчас программы. Шина PCI на пределе отхватывает около 132 Мб/с, а если использовать небольшое количество PCI-периферии, то не больше 30 Мб/с. Но, кстати, не надо забывать про IDE-контроллер, который тоже висит на шине PCI и при протоколе Ultra DMA/100 может потребовать эти самые 100 Мб/с. Конечно, это тоже случается редко, и пока можно говорить только о приближении к пропускной способности Ultra DMA/66, которая и происходит только на последних моделях винчестеров.

Итак, мы получаем следующую картину нагрузки на память на машине среднего класса: PCI - около 70-100 Мб/с, AGP - около 400 Мб/с, ну и процессор, общающийся с памятью посредством 64-битного доступа - около 640-720 Мб/с для тактовой частоты системной шины в 100 МГц при работе с памятью в 80-90% от общего времени. Складываем и получаем: 1100-1220 Мб/с. Владельцы Celeron на шине 66 МГц отнимите, а обладатели процессоров, использующих шину 133 МГц, прибавьте около 250 Мб/с. А теперь посчитаем пропускную способность памяти, работающей на частоте 66, 100 и 133 МГц. Соответственно получается 528 Мб/с, 800 Мб/с и 1066 Мб/с. Что скажете?

Итак, для нормальной работы Celeron нужна как минимум память PC100 (работающая на частоте 100 МГц), а тем, у кого процессоры покруче, или у кого Celeron разогнанный - PC133. Небольшое отступление: асинхронные чипсеты позволяют варьировать частоты памяти и шины только в пределах 33 МГц, что означает, что на шине 66 МГц даже память PC133 будет работать только на частоте 100 МГц. Соответственно, для шины 100 МГц подойдет память в 133 МГц. Опять отступление - чипсет семейства i815 на частоте шины в 100 МГц с памятью работает только на 100 МГц и не мегагерцем выше, а для шины в 66 МГц и 133 МГц уже становится возможным поиграть с частотой памяти. Ну ладно, так к чему же мы пришли? Пока нас не убедили потратиться на память DDR или Rambus, единственным способом "прокормить" периферию является использование памяти PC133. Что же это за штука такая?

Стандарт PC133 является эволюцией стандарта PC100, оглашающего правила производства и, соответственно, характеристик памяти. Как вы думаете, кто его придумал? Конечно, Intel. Это же так здорово - написать табличку с данными производителей и модулей памяти, которые соответствуют новому стандарту. Во-первых, денег можно собрать с производителей, а, во-вторых, уже точно можно будет сказать, что сглючил чипсет или процессор от Intel, а не память - ведь память-то сертифицирована! Ну ладно, шутки шутками, а стандарт - шутка весьма противная: здесь требуют побольше, тут поменьше, здесь, пожалуйста, микросхему сяк расположите, ножки тут позолотите, а плату сделайте-ка шестислойной! Ах, да, еще наклеечку присобачьте, что PC100. Вот и приходится изгаляться подпольным производителям - краску для позолоты доставать, наклейки заказывать. А наносекунды - просто ужас! Ведь Intel сказала, что надо не 10, а 8 нс! То есть, конечно, память на 10 нс сможет работать на 100 МГц, но нам почему-то это не нравится - мы хотим 8 нс. Время доступа говорит о том, на какой частоте память сможет стабильно работать. Вычислить это очень просто. Возьмем 100 МГц. Это значит, что за секунду происходит 100 000 тактов, что, в свою очередь, означает, что для одного такта требуется 10 нс. Для памяти 7,5 нс максимальная частота может составлять 1 с / 7,5 нс = 133 млн. раз, то есть 133 МГц. Соответственно, 8 нс - 125 МГц, 6 нс - 166 МГц, а 5 нс - 200 МГц.

Видно, что для PC133 памяти достаточно времени доступа в 7,5 нс. Вот что думает Intel по поводу работоспособности памяти PC133 на ее чипсетах.

Модули памяти PC133 объемом 64 и 128 Мб, сертифицированные Intel

 

Производитель

Емкость

Архитектура

Маркировка

 

 

 

 

Hyundai

64 Мб

64M-8Mx8

HYM7V63801BTFG-75

Hyundai

64 Мб

64M-8Mx8

GMM2649233ETG-75

Hyundai

128 Мб

64M-8Mx8

GMM26416233ENT-75

Hyundai

128 Мб

64M-8Mx8

HYM7V631601BTFG-75

Hyundai

128 Мб

128M-16Mx8

HYM7V631601TH-75

Hyundai

128 Мб

128M-16Mx8

HYM71V63801TX-75

 

 

 

 

IBM

64 Мб

64M-8Mx8

IBM13N8644HCB-75AT

 

 

 

 

Infineon

64 Мб

64M-8Mx8

HYS64V8300GU-7.5

Infineon

128 Мб

128M-16Mx8

HYS64V16300GU-7.5

Infineon

128 Мб

64M-8Mx8

HYS64V16220GU-7.5

 

 

 

 

Micron

64 Мб

64M-8Mx8

MT8LSDT864AG-133C7

Micron

128 Мб

64M-8Mx8

MT16LSDT1664AG-133C7

Micron

128 Мб

128M-16Mx8

MT8LSDT1664AG-133B1

 

 

 

 

Mitsubishi

64 Мб

64M-8Mx8

MH8S64DALD-6

Mitsubishi

128 Мб

64M-8Mx8

MH16S64DAMD-6

 

 

 

 

NEC

64 Мб

128M-8Mx16

MC-458CB647EFA-A75

NEC

64 Мб

128M-8Mx16

MC-458CB647PFA-A75

NEC

128 Мб

128M-16Mx8

MC-4516CB647EF-A75

NEC

128 Мб

128M-16Mx8

MC-4516CB647PF-A75

 

 

 

 

Samsung

64 Мб

64M-8Mx8

M366S0823DTS-C75

Samsung

64 Мб

128M-8Mx16

M366S0924BTS-C75

Samsung

128 Мб

64M-8Mx8

M366S1623DT0-C75

Samsung

128 Мб

128M-16Mx8

M366S1723BTS-C75

Samsung

128 Мб

128M-16Mx8

M366S1723ATS-C75

 

  

  

  

Toshiba

64 Мб

128M-8Mx16

THMY6480H1EG-75

Toshiba

128 Мб

128M-16Mx8

THMY6416H1EG-75

 

 

 

 

Viking

128 Мб

128M-16Mx8

INT12815

То, что ваша память маркирована как-то по-другому, не обязательно означает, что она "левая". На сайте практически каждого производителя существует список PC133 модулей. Некоторые из них еще не прошли проверку у Intel, а некоторые уже не прошли, но Intel - не последняя инстанция, поэтому большинству производителей все же можно доверять. Другое дело продавцы - некоторые из них поступают не совсем хорошо: усмотрев на PC100 памяти время доступа 7,5 нс, наклеивают на нее маркировку PC133. Понятно, что стабильность таких модулей вызывает массу сомнений - ведь производителем они были выпущены как PC100. Вообще, часто память PC100 и PC133 изготавливается на одних и тех же микросхемах, а отличия можно узреть только в маркировке по части наносекунд. Нормальная память PC100 не может иметь время доступа выше 8 нс, а PC133 - выше 7,5 нс. Иногда встречается память на 7,5 нс, маркированная PC100. Это есть хорошо, ибо в 80% случаев она будет работать и на 133 МГц.

Теперь о подделке памяти. Если вы заметили какие-нибудь неровности, явные признаки перемаркировки - не спешите кричать во всю глотку, что память поддельная. Иногда этим занимаются и на заводах-изготовителях. Например, если экземпляры памяти из коробки не прошли необходимых тестов, то всю коробку маркируют уже не PC133, а PC100 (предварительно проверив, естественно). Это как с процессорами - иногда даже память PC100 сможет лучше разгоняться, чем PC133. Конечно, если маркировка памяти больше смахивает на художества братца Иванушки, то лучше взять гарантию и манибэк с подписью продавца (да и вообще, так следует поступать в любом случае - прим. ред.).

Расшифровка маркировок модулей интуитивно понятна далеко не всем. Единственное, что нам от нее нужно - два значения. Первое - время доступа или максимальная частота работы памяти. Обычно это значение располагается где-то в конце, и его можно узреть, поискав в оном числа 75, 7 или 8. Как правило, они всегда присутствуют. Это в большинстве случаев является необходимым нам значением времени доступа. Второе - тайминги памяти. Наиболее часто в маркировке памяти указывается CAS (Column Address Strobe) - число циклов синхронизации между выдачей команды на чтение данных из памяти и их выставлением на шину - параметр, также определяющий быстродействие. Чем меньше эта задержка, тем выше скорость обмена. Это параметр также часто указывается в маркировке памяти. В некоторых модулях памяти значение CAS можно найти после букв CL, а в некоторых он вмешан в общую маркировку. В широко распространенной памяти от Micron используется иные обозначения - если CAS Latency равно двум, то после времени доступа (указанного после черточки в конце маркировки) стоит буква "е", то есть для PC133, соответственно, стоит "-7e", а для PC133 памяти с CAS Latenсy, равной трем, можно найти "-75". Кстати, последний параметр тоже влияет на разгоняемость памяти. Если вдруг на 133 МГц память работает стабильно, а 143 уже тянет со сбоями - попробуйте увеличить значение CAS Latency. Существует немалая вероятность, что это поможет.

Что ж, как бы нас не убеждали сторонники Rambus или DDR SDRAM принять посвящение в их лагерь, единственной рабочей и опробованной лошадкой пока является PC133 SDRAM. Именно она может более-менее насытить небольшой парк устройств, обычно обитающих в компьютере. Конечно, для супер-пупер-компьютеров она уже станет узким местом, но для них-то и разрабатываются новые технологии. Вcе же, если вы хотите работать сейчас с полной отдачей и хорошим соотношением "цена / производительность", то альтернативы PC133 SDRAM пока не существует.

Типы памяти

Registered & Buffered DRAM

Этот тип памяти является следующим после Buffered поколением памяти, использующим буферные микросхемы. Применяются такие модули обычно в системах с большим объемом памяти, так как из-за высокой электрической емкости модулей памяти время их подзарядки (а память нужно всегда подзаряжать, чтобы она не очистилась) становится очень большим, что приводит к потере тактов и вообще чревато ошибками. Буферные микросхемы занимаются тем, что сохраняют поступившие данные довольно быстро, чем освобождают контроллер от большой нагрузки. Понятно, что из-за дополнительных задержек производительность такого рода памяти немного ниже. Первое поколение таких модулей носило название Buffered DIMM и использовалось с памятью типа FPM и EDO. Второе поколение DIMM позволило, наряду с памятью EDO и FPM, использовать SDRAM, а аналогом памяти Buffered для второго поколения стала Registered DRAM.

VCM-SDRAM

Этот тип памяти был разработан компанией NEC и представляет собой усовершенствованную модель логики памяти. VCM (Virtual Channel Memory - память с виртуальным каналом) имеет более низкие показатели задержек, а также сниженное энергопотребление. Но это не главное, так как прирост быстродействия в первую очередь определяется механизмом VCM, учитывающим специфику запросов устройств. Каждому устройству назначается свой виртуальный канал памяти, а логика внутри модуля более эффективно распределяет запросы. Итогом всех этих ухищрений становится абсолютная независимость внешних и внутренних операций друг от друга. По данным разведки, производительность VCM SDRAM выше, чем у обычной SDRAM на 10-30%, а стоимость совсем немного выше. Единственное условие для использования VСM SDRAM - поддержка со стороны чипсета (многие из которых уже давно поддерживают этот тип памяти).

Rambus DRAM

Технология Rambus DRAM представляет собой совершенно отдельную независимую разработку логики и структуры памяти. Эволюция памяти Rambus пока прошла три модификации - Base, Concurrent и Direct. Первые две практически являются аналогами, за исключением более продвинутой логики и высокой скорости у Concurrent, а Direct RDRAM - уже довольно сильно модифицированная память. Это и есть последняя разработка компании Rambus, воплощенная в жизнь. В отличие от SDRAM, обычно использующей 64-битную шину памяти, в DRDRAM разрядность шины очень маленькая - 16 бит, однако частота функционирования - 400 МГц. Теоретически это решение эффективней, чем SDRAM, потому, что если нужно передать одно слово (два байта), то 64-битной SDRAM на это потребуется один такт из 133 МГц (если память - PC133), а DRDRAM - один из 400 МГц. Причем, так как данные передаются по обоим фронтам сигнала, то можно считать, что результирующая частота памяти DRDRAM - 800 МГц. В пересчете на пропускную способность, это составляет 1,6 Гб/с, что выше, чем у любой SDRAM, использующейся в качестве основной памяти.

Работа на высоких частотах сопровождается высоким тепловыделением, поэтому RDRAM имеет 4 режима работы - Active, Stand-By, Nap, и PowerDown. Обычным для памяти является режим Stand-By, а переключение между ним и режимом Active требует дополнительных задержек, что может оказывать серьезное воздействие на производительность. Из-за того, что в архитектуре RDRAM используется последовательное подключение чипов, этот тип памяти имеет гораздо большие задержки (латентность) по сравнению с SDRAM. То есть, выборка данных из RDRAM осуществляется примерно раза в два медленнее, чем из SDRAM. Это вызовет падение производительности при выполнении задач, требующих работу с большим количеством неравномерно распределенных данных. В общем, эта многообещающая технология имеет свои недостатки и достоинства, но пока очень дорога для использования в домашних машинах и даже в рабочих станциях. Сейчас ей на смену Rambus готовит новый тип памяти с пропускной способностью в четыре раза выше, чем у DRDRAM.

DDR DRAM

Память этого класса является прямым наследником SDRAM. Принципы работы те же, однако пропускная споcобность возросла вдвое благодаря тому, что передача данных стала возможным по обоим границам (фронтам) сигнала. Кроме этого, в памяти DDR используется более "умная" логика работы и синхронизации, что позволяет ей быть более эффективной, чем SDR, даже при вдвое меньшей, чем SDRAM, частоте. Из-за своей относительно невысокой себестоимости и высокой производительности память этого класса уже начала завоевывать рынок PC. Изначально на DDR-память перешли ведущие производители видеокарт, а сейчас начинается массовое производство материнских плат, поддерживающих этот тип памяти. Является конкурентом DRDRAM.

ECC

ЕСС (Error Cheking and Correction - выявление и исправление ошибок) -память, снабженная линиями ввода/вывода для передачи контрольных сумм. Каждый бит входит более чем в одну контрольную сумму, поэтому, в случае возникновения ошибки в одном бите, становится возможным восстановить адрес ошибки и исправить ее. Двухбитовые ошибки хоть и распознаются, однако обычно не исправляются.