ИД "Мой компьютер"   "Игроград"   "Реальность фантастики"   Ассамблея "Портал"
Сделать стартовой   

 
Домашняя страница
Расширенный поиск
E-mail

 

N 16 (447)




МОЙ КОМПЬЮТЕР




  Новости:

 
МК
Украина
Игры
Интернет
Железо
Софт
Пресс-релизы

  Статьи:

 
Уголок читателя
Прочее
Имеющий уши
Программирование
Интернет
Железо
Софт
Игры


 
КОНКУРСЫ



Правила конкурсов

Конкурс "АВЧ"

Рейтинг победителей


ОПРОС

Вы посещаете нас:
первый раз
1-2 раза в месяц
1-2 раза в неделю
1-2 раза в день
более 2-х раз в день Что привело Вас к нам?
поиск информации
интерес к статьям
интерес к новостям
любопытство
реклама
другое








боулинг

ads.mycomputer.ua

ads.mycomputer.ua

ads.mycomputer.ua

ads.mycomputer.ua

ads.mycomputer.ua













Argumentum ad ignorantiam!

 

статьи
Железо



 

На правах рекламы  
Прочее  
Самоделкин  
Технологии  
Портативные устройства  
Корпуса и прочее  
Клавиатуры, манипуляторы  
Периферия  
Носители информации  
Сети, комуникации  
Видео  
Материнки, чипсеты  
Процессоры, пямять  




    Процессоры, пямять


Таблетки «для памяти»

Bateau
N 5 (436) 27.01.2007


В прошлом номере мы начали «разбирать на запчасти» такой загадочный компонент системного блока как оперативная память. Если по каким-то причинам вы пропустили МК №4 за этот год, настоятельно рекомендую всё-таки найти его и внимательно прочитать первую половину материала. Иначе вы рискуете ничего не понять из того, что будет написано ниже. Ну, а если вся предварительная информация усвоена и осмыслена, можно смело переходить к следующему этапу. Поехали!

Мой тайминг 5-5-5-15

Вот мы и подошли к «материальному» воплощению всех теоретических выкладок, приведённых ранее. Как вы уже могли заметить, как на самих планках памяти, так и в прайсах зачастую указывают некую загадочную «схему таймингов», которая выглядит как 4 числа, записанных через чёрточки. Например SDRAM 1-1-1-5 или DDR2 4-4-4-12. Встречалось, да? Теперь, чтобы понять на все 100%, откройте 4-й номер МК на той странице, где содержатся описания различных задержек, и сверяйте. При более подробном рассмотрении в формуле нет ничего непонятного, поскольку в приведённых ранее обозначениях это выглядит так:

t-CL — t-RCD — t-RP — t-RAS

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

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

t-RP (и это вы тоже уже должны знать) в современных модулях памяти производится автоматически, и если повезёт, то операция перезарядки конденсаторов попадёт на тот банк, который в данный момент не ведёт «общения» с внешней шиной памяти. Ну и конечно, этот параметр проявляет себя «во всей красе» при чтении «вразнобой», когда строки считываются не целиком. В таком случае открывать-закрывать эти самые строки приходится чаще, а каждое закрытие — это практически всегда автоматическая перезарядка.

Тем не менее, окрытие и закрытие строк может проходить не чаще, чем раз в t-RAS тактов. А значит, при чтении разрозненных данных этот параметр тоже выходит на первый план.

Что касается t-RCD, то этот параметр в современных микросхемах памяти связан с t-RAS через длину пакета данных, которая установлена в данной системе. Вспоминаем, пакет — это минимальная порция информации, которой процессор обменивается с памятью «за один раз». Пакет состоит из элементов, каждый из которых соответствует разрядности микросхем памяти. При этом количество элементов в одном пакете должно быть кратным количеству банков в модуле памяти. Причина проста — за один такт передаётся по одному элементу на каждый логический банк. То есть, для передачи блока данных, состоящего из восьми элементов на память с двумя логическими банками потребуется 8/2=4 такта.

Связь t-RAS и t-RCD проста: t-RAS = t-RCD + t-BL, где t-BL и является тем самым количеством тактов, необходимым на передачу всего блока данных.

Так, переварили полученную информацию, и смотрим дальше. Очевидно, что с t-RCD ничего сделать не получится, поскольку задержка между RAS и CAS носит сугубо электрический характер. Хорошо, если ваша память настолько хорошо сделана, что позволяет вам уменьшать этот тайминг (только если уж модуль DDR2 без ошибок «тянет» его за 4, а не за 5 тактов, производитель вряд ли пойдёт на то, чтобы ставить дефолтную «пятёрку» и, соответственно, продавать его как более медленный и дешёвый). Разгон — занятие полезное, однако мы сейчас посмотрим на логичесую сторону вопроса.

Пускай t-RCD считается неизменяемым. В свою очередь t-RAS во многих случаях тоже не стоит занижать (с чем это связано, разберёмся позже). Что же для нас важно в таком случае? Если учесть, что современные приложения, как правило, требуют обработки больших объёмов данных, то на первый план выходит количество данных, которые обрабатываются за один такт (условно). Например, возьмём память старого доброго формата DDR 400 с минимальными таймингами 2-2-2-5 (такими были последние образцы от Samsung и Corsair, например), занижать которые крайне не рекомендуется. Для DDR пакет может иметь минимум 2 элемента (опять-таки, почему именно так, узнаем ниже), а в стандартном режиме получается 4. Итого смотрим: 4 элемента делим на 2 банка (получается 2 такта) и добавляем t-RCD (вторая цифра, гласящая «2 такта»)…

t-RAS = t-RCD + t-BL = 2 + 2 = 4.

Но если выставить в BIOS t-RAS равным 4, память может отказаться работать стабильно. Так что всё равно получается 4 фиксированных элемента за 5 тактов.

Теперь попробуем удвоить размер блока информации. Получаем 8 элементов, которые (по 2 штуки за такт) будут передаваться целых 4 такта.

t-RAS = 2 + 4 = 6.

Собственно, наши тайминги после этого примут вид 2-2-2-6, а не 2-2-2-5. Но при этом эффективность работы памяти будет составлять 1.33 элемента за 1 такт против 0.8 (8/6 и 4/5). Неплохая разница, согласитесь. Однако многое зависит от конкретных условий работы, поэтому в некоторых случаях увеличение t-RAS может перекрыть все позитивные стороны такого тюнинга (в частности, если процессор обменивается с памятью блоками данных, которые меньше установленных 8 элементов — «лишние» разряды будут просто летать по шине «вхолостую»). Для DDR2, где за такт можно передавать минимум по 4 элемента одного пакета, этот параметр становится ещё более критичным. Ведь размеры пакетов и без того увеличиваются как минимум вдвое (как и задержки). Так что такого «разброда» в задержках, как среди DDR, в DDR2 нет и не будет. Оптимальные значения уже определены, и только кардинальная смена архитектуры процессоров может дать возможность пересматривать эти довольно узкие рамки.

Последний экскурс в историю

Многие уже знают принцип работы DDR. В его основе лежит шина с передачей данных не только по фронту, но и по срезу электрического сигнала, благодаря чему за 1 такт можно передавать по 2 бита информации по каждой линии. Однако в начале своей «карьеры» этот тип памяти был вынужден конкурировать с уже немного подзабытым сегодня Rambus'ом. Дела не таких уж и давно минувших дней. Преданья старины, но не глубокой. По сути, Rambus проектировался как компонент новых систем с архитектурой Net-Burst, более известных как компьютеры на базе Pentium 4. Сама идеология этой платформы была направлена на поступательное увеличение рабочей частоты как процессора, так и системной шины, в качестве «двигателя прогресса». Второе ядро придумали уже потом, а поначалу было очевидно, что Pentium 4 очень быстро возьмёт планку в 2 ГГц. Не нужно быть пророком, чтобы понять — если память не сможет работать на той частоте системной шины, которая будет нужна этому «монстру», она моментально превратится в «бутылочное горлышко» всего компьютера. А тут уж смотрите сами — при том, что техпроцесс, по которому изготовляются микросхемы памяти, не очень сильно отстаёт от техпроцессов, по которым штампуются процессоры, сама разница в физических принципах, заложенных в их основу, не даст памяти работать на тех же частотах. Конденсаторы — штука хорошая, но со своими ограничениями… В итоге SDRAM уже не могла угнаться за Pentium 4, и остро встал вопрос «а что дальше?».

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

Первое — это уменьшение разрядности шины памяти до 16 бит. За счёт этого можно было значительно уменьшить силу наводок и помех на плате. Кстати, если вы помните наш осенний обзор RAID-массивов, то должны знать, что такое защита информации при помощи кодов Хоффмана. В Rambus’е также пришлось применить такую технологию, несмотря на то, что проверка чётности (читай — целостности данных) гарантированно повышала нагрузку как на память, так и на интерфейс. Из-за этого к «основным» 16 линиям интерфейса были добавлены ещё 2 «проверочных», именуемых ECC (соответственно, нынешние DDR и DDR2 являются так называемыми non-ECC). На такие меры пришлось пойти по той простой причине, что даже после урезания шины до 16 бит микросхемы памяти едва-едва выдерживали частоту 400 МГц (шина при этом использовала тот же режим передачи сигнала, что и DDR — следовательно, работала на 800 МГц). Для сравнения, микросхемы DDR 200 работали на частоте всего лишь 100 МГц, но шина передачи данных оставалась 64-битной! 10064 (2 DDR) = 12800 бит/с; 40016 (2 DDR) = 12800 бит/с. Заметьте, это сравнение всего лишь с DDR 200, самой медленной из «Double Data Rate», которая работала в спокойном режиме и не требовала особого охлаждения. Ну и уж точно не нуждалась в проверке ЕСС (при условии достаточно высокого качества микросхем).

Вторым отличием Rambus’a от SDRAM стала замена привычной одной адресной линии на две отдельных. Для адреса строки и для адреса столбца. Благодаря такому новшеству передача полного адреса необходимой ячейки памяти занимала всего 1 такт против двух у SDRAM. Однако мы-то теперь умные и знаем, что передавать можно хоть 10 адресов сразу, а всё равно до тех пор, пока строка не «перельётся» в усилитель мощности (t-RCD), номер столбца не может быть «принят к исполнению». При этом вся остальная «конструкция» оставалась такой же, как и у SDRAM, поэтому выигрыш в реальном времени (при пересчёте из тактов в наносекунды) составил всего 3 нс (37 против 40 у SDRAM). Очевидно, что это немного не тот прирост производительности, благодаря которому можно называть память Rambus революционной. Другое дело, что для перекрытия необходимой ширины полосы пропускания данных память формата Rambus имела гораздо больше банков. А это, в свою очередь, позволяет более удачно распараллеливать запросы и передавать данные практически непрерывным потоком (после 37 нс, конечно). Как вы понимаете, такие ухищрения привели к ещё большей зависимости производительности памяти от того, какие объёмы данных и в какой последовательности должны обрабатываться. Потоковая обработка видео, «тяжёлая» графика и рендеринг 3D-сцен (например, в Maya) благодаря распараллеливанию могли занять все 1.6 Гб/сек, на которые был способен Rambus в идеальных условиях (400 МГц 2 DDR 16 бит интерфейса / 8 = 1.6 Гб). Тогда как DDR 266, доступный на то время, давал 133 2 64 / 8 = 2128 Гб/с. При том, что сложностей с производством таких микросхем особых не было (почему, сейчас поймёте). А Rambus из-за работы на предельных частотах (для современной ему технологии изготовления) имел очень малый процент выхода годных модулей, а также слишком высокие затраты на производство. Так что несмотря на то, что Rambus действительно мог потягаться с DDR в производительности, бой в цене он проиграл сразу и без вопросов. Тем более, что DDR в скором времени перешагнул отметку в 300, 400, а затем — и 500 МГц.

Впрочем, нельзя сказать, что Rambus умер окончательно. Там, где нужна обработка больших потоков информации в сочетании с необходимостью защиты от потери данных, многобанковая схема Rambus с использованием проверки чётности по ЕСС всё ещё актуальна. Ну, а для нас… Для нас пока актуален DDR, DDR2 и в скором будущем — DDR3 (впрочем, загадывать наперёд — дело неблагодарное; не факт, что распространённый на графических картах GDDR3 переберётся в настольные системы).

Одна голова хорошо… А с туловищем — лучше!

Вот так, мало-помалу, мы и добрались до загадочного медленно-быстрого DDR, который до сих пор актуален для большого количества компьютеров. По сути, для всего, что было до Athlon AM2 и Core Duo, а посему до сих пор остаётся в строю. Ну что ж, приступим.

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

Итак, что получилось в итоге? Память DDR соединена с процессором через шину памяти, которая работает со скоростью, которая на самом деле соответствует удвоенной скорости интерфейса микросхем предыдущих поколений. На входе (или выходе — как больше нравится) памяти DDR установлено специальное устройство, которое дополняет стандартный буфер обмена операциями мультиплексирования (демультиплексирования) сигнала. То есть, на входе с шины мы имеем, допустим, 200 МГц частоты на шине в 64 линии, причём за каждый такт планка памяти получает с одной линии по 2 бита информации. При операции демультиплексирования мы должны получить только 1 бит на линию (иначе конденсаторы нас не поймут), поэтому без повышения частоты можно лишь… удвоить количество 64-битных банков. Так что, по сути, DDR 400 — это два блока SDRAM по 200 МГц, соединённые в «одном корпусе». Чем это хорошо? По сути, ничего кардинально нового, кроме удвоения скорости передачи данных по шине, DDR не принёс. Однако тот факт, что «внутренняя» частота DDR была вдвое меньше «внешней», открывал перед производителями отличный плацдарм для «разгона» и оптимизации своей продукции. Естественно, не обошлось и без ограничений, которые характерны для любой новой технологии. В частности, уменьшение «внутренней» частоты отдельных чипов в два раза привело к тому, что в пересчёте на частоту внешней шины тайминги стали вдвое больше. То есть, если в режиме SDRAM блоки DDR работали бы с таймингами 1-1-1-3, при соединении в единое целое мы получаем 2-2-2-6 (это без учёта потерь на демультиплексирование). Таким образом, хотя DDR и не давал нового уровня производительности (и даже добавлял потери при «перегонке» сигнала), итоговый выигрыш в скорости передачи данных по самой шине стоил того. Опять-таки помним о том, что оптимизация запросов, как на уровне контроллера, так и на уровне программ, даёт возможность привести производительность памяти максимально близко к её оптимуму — скорости передачи данных по интерфейсу.

Что ещё добавить? Ну, пожалуй, достаточно будет просто сказать, что DDR 400 хоть и имеет тайминги (условно) 2-2-2-5, в пересчёте на реальное время (в секундах) получается фактически эквивалентной SDRAM 200 МГц с таймингами 1-1-1-2.5. Так что на самом деле никакой потери скорости нет, разве что в уже упомянутом мультиплексоре.

Следующий шаг

Как только стало возможным передавать за один такт не два, а сразу четыре бита информации, инженеры воплотили эту функцию в виде DDR2. Думаю, вы уже догадались, что отличие от обычного DDR здесь заключалось в том, что DDR2 разделял поток данных, поступающих с шины, не на 2, а на 4 части. Соответственно, потенциал для наращивания частот поднялся, а тайминги, выраженные в тактах, удвоились (но остались почти неизменными при пересчёте в секунды).

Впрочем, говорить, что DDR 266 = SDRAM 133 или DDR2 800 = DDR 400 было бы неправильно. Тут сказывается та самая задержка на преобразование DDR сигнала в обычный. Другое дело, что SDRAM на данном этапе развития полупроводниковой электроники просто невозможно разогнать до 800 МГц, в то время как DDR2 благодаря своей «четыреединой» конструкции успешно занимает все эти 800 МГц шины при условии хорошей оптимизации, имея всего лишь 200 МГц на шине внутренней.

Но на этом дело не остановилось. Поскольку в первоначальную задачу при создании стандарта DDR2 не входило моментальное удвоение частоты, получилось, что «внутри» планки микросхемы могли работать на более низких частотах, поддерживая ту же скорость передачи данных, что и аналогичные DDR. А что сие значит? Правильно — возможность понизить энергопотребление чипов. Таким образом, после 2.5 вольт, необходимых для питания DDR новые модули довольствуются всего лишь 1.8 вольтами. Почему это хорошо? Тут уж особо пояснять не надо. Это и меньший расход заряда батареи, и меньшее тепловыделение, и возможность как-нибудь (по случаю) повысить-таки питание и «разогнать» память на пару-тройку сотен мегагерц…

Впрочем, справедливости ради надо сказать, что нынешние DDR2 уже зачастую имеют рекомендуемое напряжение питания, равное 2.0 Вольт. Конечно, они должны работать и на 1.8 В, однако поднятие питания до рекомендуемого уровня может прибавить стабильности и, как водится, позволить поднять частоту. В частности, корпорация Intel рекомендует использовать со своими четырёхядерными процессорами память, работающую на частоте 1066 МГц. Но на данный момент утверждён только стандарт DDR2 800, поэтому Intel рекомендует поднимать напряжение питания до 2.0, а то и 2.2 В. Даже несмотря на то, что уже давно существуют модули, для которых и при 1.8 В 1066 МГц не проблема.

Дальнейшие изменения в DDR2 уже не так хорошо заметны «невооружённому» глазу, а порой даже кажутся нелогичными. Тем не менее, продолжим.

В DDR2 впервые был внедрён метод гашения наводок и помех при помощи так называемого «внутричипового терминирования». Ранее этим полезным делом занимались резисторы, расположенные на материнской плате. Однако теперь их переместили гораздо ближе к источнику проблем — на саму планку памяти. В данном случае это можно понять как «чем ближе ты к источнику проблемы, тем легче её решить» — или перефразируйте, как вам больше нравится. Суть остаётся прежней — шумы гасятся быстрее и эффективнее (значит, больше шансов на удачный «разгон» памяти). Плохо лишь то, что резисторы, которые выполняют эту важную задачу, неплохо так греются. Если добавить это к тому, что сами чипы памяти греются ничуть не хуже, получится, что DDR2 более «горяч», чем DDR первого поколения. И всё же, как показывает опыт производителей DDR2, такое решение оправдало себя.

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

Ещё одним нововведением стал буфер для входящих команд, который позволял ещё немного оптимизировать процессы чтения и записи. Однако всё, что получилось сэкономить — это не более одного такта (в большинстве случаев).

Что же вышло в итоге? Если просуммировать все изменения, внесённые в конструкцию DDR2, то получится, что опять-таки ничего принципиально нового со времён DRAM представлено не было. В то же время многих могла запутать «частотная» маркировка модулей памяти. Думаю, теперь вам понятно, почему DDR 400 и DDR2 400 сравнивать некорректно? На самом деле DDR 400 соответствует DDR2 800 и никак иначе. При этом задержка на чтение будет такой же, как и у более старой памяти (ведь на самом деле они работают на одной частоте), а выигрыш в производительности получится только за счёт ускорения передачи данных по шине. И в то же время среди «равнозначных» DDR 400 и DDR2 800 второй будет в некоторых случаях даже медленнее из-за задержки на более сложную операцию мультиплексирования/демультиплексирования. Очевидно, что DDR2 начинает проявлять себя с лучшей стороны только там, где заканчиваются возможности обычного DDR — что мы, собственно, сейчас и наблюдаем. Частота 800 МГц для шины памяти уже стала нормой для большинства процессоров.

Финишная прямая

То, что написано выше, должно утвердить вас во мнении, что нет памяти хорошей и плохой. Есть та, которая подходит, и та, которая не подходит. Первое, что нужно учесть — это насколько для вас необходима именно DDR2 (надеюсь, если даже вы и соберётесь покупать б/у компьютер, высшие силы вас защитят и не дадут купить систему с памятью Rambus). Если вы планируете приобретать материнскую плату с чипсетом «на вырост», чтобы потом можно было установить туда более мощный процессор, DDR2 всё-таки будет предпочтительнее. Большинство недорогих модулей сегодня спокойно работают на частоте 800 МГц без каких-либо забот об охлаждении (чего не скажешь о DDR, которому такие частоты просто недоступны). Но если дело касается чуть более древних платформ, то переплачивать за поддержку DDR2 явно не стоит. Тем более, что разъёмы двух поколений этого стандарта памяти несовместимы. Единственное исключение — это ноутбуки. Там действительно каждый вольт на счету, так что в любом случае система с DDR2 будет предпочтительнее.

Ну и последний момент, на котором хотелось бы остановиться, связан с тем, что скорость передачи данных можно всегда удвоить простым включением… двухканального режима для памяти. Если ваш компьютер собирался грамотным человеком, то, скорее всего, двухканальность уже организована. Особо заострять на этом внимание, пожалуй, не стоит, тут ничего сложного нет. Нужны лишь два модуля памяти одинакового объёма (иногда допускается и неравный, например, в соотношении 1=2+3 или просто 512 Мб и две планки по 256 Мб). Всё, осталось только включить нужную опцию в BIOS’e.

До повсеместной экспансии многоядерных процессоров двухканальный режим не был настолько актуален. На самом деле тех 800 МГц хватало с лихвой для большинства Athlon’ов и Pentium’ов. Просто процессору уже не требовалась такая скорость передачи данных, а если и требовалась, то далеко не во всех задачах, которые ему приходилось выполнять. В то же время прирост от двухканальности можно было получить всегда — если не за счёт процессора, то хотя бы за счёт других устройств, напрямую общающихся с памятью. Такими, например, являются накопители в режиме DMA. Ну, а самым «хрестоматийным» примером можно считать встроенное видео. Тут уж действительно, сколько не давай полосы пропускания, а до того уровня, который реализован в отдельных видеокартах, встроенному видео будет далеко. Тем не менее, от включения двухканального режима можно получить чуть ли не 50% прироста производительности на тех же ноутбуках. Просто попробуйте, чего вам терять?

* * *

Как вы уже должны знать, современным технологиям изготовления кремниевых микросхем осталось жить не так уж и долго. В то же время достаточно перспективных (а главное — близких к реальности) альтернатив у процессорщиков пока нет. Другое дело — оперативная память. В первой «полустатье» (МК №4) была упомянута MRAM, которая выглядела бы очень привлекательно, если бы не завышенная по сравнению с DDR стоимость. С другой стороны, компании IBM, Macronix и Quimonda объявили о том, что в их лабораториях готов образец абсолютно нового типа памяти — фазовой. Как основные «фишки» этого изобретения перечислены практически все достоинства MRAM, включая энергонезависимость. Вдобавок фазовая память теоретически сможет работать даже тогда, когда её элементы будут достигать 22 нанометров. А для нынешней технологии потолком пока остаётся 45 нм — и призрачные 32 нм, которые корпорация Intel планирует представить через два года.

Поживём — увидим. А пока позвольте откланяться.







Расширенный поиск 
 

О проекте  Рекламодателям  Карта сайта  Контакт  Обратная связь 

© ИД "Мой компьютер"®, 1998-2004