19 мая 2011
Обновлено 17.05.2023

Крайнее средство. Нюансы разгона оперативной памяти

Крайнее средство. Нюансы разгона оперативной памяти - изображение обложка

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

Многогранная

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

Что можно сказать о частоте? Чем она больше — тем лучше! Фактически ее значение показывает, сколько полезных тактов могут совершить модули памяти за секунду реального времени. Однако и здесь есть свои нюансы. Дело в том, что для памяти типа DDR, которая используется в современных компьютерах, существует две разных частоты — реальная и эффективная, причем вторая ровно в два раза выше первой. Производители модулей всегда указывают эффективную частоту своих творений, в то время как в различных диагностических утилитах, а также в BIOS материнских плат нередко отображается именно реальная частота.

В чем подвох? Название DDR — это сокращение фразы DDR SDRAM, которая расшифровывается как Double Data Rate Synchronous Dynamic Random Access Memory, то есть синхронная динамическая память с произвольным доступом и удвоенной скоростью передачи данных. Ключевые слова здесь — удвоенная скорость. В отличие от простой SDRAM (предшественницы DDR), рассматриваемая память взаимодействует с шиной данных не только по фронту, но и по спаду тактового сигнала, то есть одному такту шины соответствуют два такта микросхемы памяти. Соответственно, одни разработчики программного обеспечения предпочитают считать именно такты шины (реальную частоту), в то время как другие указывают частоту работы самих чипов (эффективную частоту). Так что если во время разгона вы вдруг обнаружите, что частота памяти ровно в два раза ниже, чем должна быть, то не удивляйтесь, это нормально.

Рабочее напряжение модулей оказывает существенное влияние на их стабильность. В соответствии со стандартами, для плашек DDR2 штатным является напряжение 1,8 В, а для DDR3 — 1,5 В. Медленные модули, как правило, придерживаются этих значений, а вот оверклокерские наборы почти всегда работают с повышенными вольтажами: разогнанным чипам не хватает питания, и его приходится увеличивать. Естественно, это ведет к более интенсивному тепловыделению, но если на микросхемах памяти есть радиаторы, то небольшое увеличение напряжения не создает особых проблем. Тем не менее определенные границы лучше не пересекать, иначе модули могут выйти из строя. Для DDR2 разумным максимумом можно считать напряжение в 2,2 В, а для DDR3 — 1,65 В.

Третий ключевой параметр оперативной памяти — задержки (тайминги), и это, определенно, тема для отдельной главы.

Без спешки

Итак, задержки — или тайминги. Прежде чем объяснить, что это такое, не помешает ознакомиться с архитектурой памяти DDR.

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

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

Существует большое количество таймингов, однако ключевое влияние на производительность памяти оказывают лишь некоторые из них. Конкретно — CAS Latency, RAS-to-CAS Delay, Row Precharge Time и Row Active Time. Именно таков их порядок по степени значимости, и именно в такой последовательности они располагаются в BIOS материнских плат и в описаниях к модулям памяти. Например, в технических характеристиках плашек Kingmax DDR3 2400 MHz Nano Gaming RAM есть строка «10-11-10-30» — так вот, это и есть тайминги. Первая цифра показывает значение CAS Latency, вторая — RAS-to-CAS Delay и так далее.

Чтобы понять, за что отвечают те или иные задержки, следует разобраться, как происходит считывание данных из ячеек. Для начала чип памяти должен подготовить к обработке нужную строку и столбец в банке. Для этого им отсылается соответствующая команда, после чего происходит процесс активации строки, занимающий определенное время. Количество тактов, необходимое для «пробуждения» строки, как раз и зовется RAS-to-CAS Delay.

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

А где же два других тайминга? Первый, Row Precharge Time, вступает в силу сразу после закрытия строки. Дело в том, что последующий доступ к этой строке становится возможным не сразу, а лишь после подзарядки, которая отнимает определенное число тактов — за этот интервал и отвечает Row Precharge Time. Ну а тайминг Row Active Time показывает период активности строки, то есть количество тактов, прошедших от момента ее активации до момента поступления команды подзарядки. Фактически эта задержка зависит от параметров RAS-to-CAS Delay, CAS Latency и длины считываемой строки, однако обычно ее значение подбирают простым сложением трех других таймингов. Это не совсем корректно, зато позволяет гарантированно избежать проблем со стабильностью работы при минимальных потерях производительности.

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

Воткнул — и порядок?

Многие начинающие сборщики нередко допускают следующую ошибку: стремясь вооружить системник по максимуму, они устанавливают в материнскую плату модули DDR3 с запредельной рабочей частотой (скажем, 2400 МГц) и остаются в счастливой уверенности, что память в их компьютере уже работает на заявленной скорости. Однако без дополнительных манипуляций со стороны пользователя подобные плашки будут работать в том же режиме, что и их дешевые собратья. Объясняется это тем, что базовые настройки памяти материнская плата черпает из специального чипа SPD (Serial Presence Detect), коим в обязательном порядке оснащается каждый DDR-модуль. Прописанные в SPD частоты и тайминги, как правило, далеки от максимально возможных — это сделано для того, чтобы модули могли стартовать даже в очень слабой системе. Соответственно, такую память приходится дополнительно разгонять.

К счастью, иногда этот процесс можно существенно облегчить. Так, компания Intel уже не первый год продвигает особое расширение для чипа SPD, известное как XMP (Extreme Memory Profiles). Оно записывает в модули памяти информацию о дополнительных настройках системы, которая может быть считана материнскими платами с поддержкой этой технологии. Если материнке удастся подхватить нужный профиль XMP (он выбирается через BIOS), то она автоматически выставит заявленную в нем частоту памяти, подкорректировав ради этого другие параметры системы, — произойдет автоматический разгон. Правда, при этом крайне желательно, чтобы память была сертифицирована для той платформы, на которую она установлена, иначе профиль либо не сработает, либо сработает, но не так, как надо. Кроме того, никогда не лишне перепроверить выставленные автоматикой значения, поскольку некоторые производители памяти умудряются прописывать в профиле XMP такие настройки, от которых система может скоропостижно скончаться. В целом же технология эта очень полезна, но дружит она только с процессорами Intel.

Стоит отметить, что еще до появления XMP компании NVIDIA и Corsair продвигали аналогичную разработку, известную как EPP (Enhanced Performance Profiles), но она не прижилась.

Соковыжималка

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

Если вы готовы драться за каждый лишний балл в каком-нибудь PCMark, то мы рекомендуем перепробовать несколько различных соотношений частоты и таймингов и выбрать тот, что дает наилучший результат конкретно для вашей системы. В противном случае будет разумнее сначала увеличить тайминги, потом найти частотный потолок для используемых модулей памяти, а затем попытаться вновь снизить задержки — как показывает практика, такой подход чаще оказывается выигрышным. При этом на протяжении всего пути не стоит сильно отклоняться от базового соотношения таймингов: первые три задержки должны быть примерно одинаковыми, а для четвертой желательно выставлять значение равное сумме этих таймингов или чуть ниже.

При разгоне памяти нельзя обойтись без помощи тестов, измеряющих производительность системы, — именно они позволят оценить, насколько велик прирост быстродействия вследствие ваших манипуляций и есть ли он вообще. Может показаться парадоксальным, но порою понижение таймингов или увеличение частоты оперативки может негативно сказаться на скорости работы компьютера — случаются такие сюрпризы нечасто, но отмахиваться от них не стоит. В общем, без бенчмарков никуда. Какое ПО лучше всего использовать? Мы советуем джентльменский набор из PCMark , Everest и WinRAR (встроенный тест), но вообще список диагностических утилит для памяти обширен — выбирайте то, что больше по душе. Кстати говоря, бенчмарки полезны еще и потому, что позволяют проверить память на стабильность работы. А после того, как разгон будет считаться завершенным, не помешает дополнительно помучить компьютер стресс-тестами вроде OCCT и S &M, дабы окончательно убедиться в стабильности системы.

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

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

И еще: не стоит сразу впадать в панику, если на определенном этапе разгона система вдруг напрочь откажется стартовать. Как правило, это означает лишь, что материнская плата не может автоматически сбросить неприемлемые для нее настройки BIOS. Встречается данная болезнь не так часто и лечится она банальным выниманием батарейки из платы. А вот если это не поможет — тогда уже можно и паниковать.

Индивидуальный подход

Когда дело доходит непосредственно до ковыряния в многочисленных меню, становится понятно, что изменять тайминги куда проще, чем частоту памяти. Это в видеокартах все элементарно: потянул в специальной утилите ползунок вправо — получил нужную прибавку к частоте. С полноценными DDR-модулями все намного сложнее.

Основные проблемы связаны с тем, что скорость работы оперативки зависит сразу от двух параметров — опорной частоты (FSB, BCLK) и множителя. Перемножая эти значения, мы получаем итоговую частоту ОЗУ. Однако простое увеличение первого параметра почти наверняка приведет к непредвиденным результатам, ведь это неизменно скажется на производительности других компонентов системы. Можно, конечно, не трогать опорную частоту, но добиться впечатляющего разгона с помощью одних лишь модификаций множителя в большинстве случаев невозможно.

На разных платформах изменение опорной частоты приводит к разным последствиям. Кроме того, нередко ради повышения скорости работы памяти требуется изменить рабочие параметры других исполнительных блоков системы. Словом, к каждой платформе нужен свой подход, так что мы постараемся разобрать основные нюансы для каждого случая. Рассматривать все возможные конфигурации мы, разумеется, не станем — сосредоточимся на десктопных платформах, появившихся в последние несколько лет. У всех них контроллер памяти располагается в процессоре, так что можно сказать, что особенности разгона зависят от того, какой именно кусок кремния является сердцем системы. Итак, хит-парад самых актуальных на сегодняшний день процессоров…

Intel Sandy Bridge

Новейшие процессоры Intel , представленные двухтысячной линейкой Core i3/i5/i7 , придутся по душе оверклокерам-новичкам. Матерые адепты разгона считают, что с приходом Sandy Bridge разгонять систему стало слишком скучно. Все дело в том, что в этих процессорах опорная частота (у Intel она зовется BCLK), от которой пляшут все основные исполнительные блоки, практически не поддается изменению — стоит отклонить ее на какие-то 6-7 МГц, и система начинает вести себя неадекватно. Соответственно, старые добрые приемы в случае с Sandy Bridge не работают, поэтому единственный способ разогнать оперативку (как, впрочем, и процессор) — увеличивать соответствующий множитель. Благо контроллер памяти, встроенный в новые процессоры, вышел довольно шустрым, и частота в 2133 МГц ему покоряется без проблем. Поскольку трогать BCLK настоятельно не рекомендуется, итоговая опорная частота памяти в любом случае должна быть кратна 266 МГц, то есть не любой набор DDR3 удастся завести именно на той частоте, что заявлена его производителем. Скажем, модули DDR3-2000, встретившись с новыми процессорами Intel, будут работать как DDR3-1866.

Заметим, что одного лишь процессора Sandy Bridge для эффективного разгона ОЗУ недостаточно — нужна еще и подходящая материнская плата. Все дело в том, что Intel искусственно ограничила оверклокерские возможности не только процессоров (множитель можно увеличить лишь у моделей с индексом «К»), но и чипсетов. Так, младшие наборы логики память разгонять не умеют, поэтому в системных платах на их основе даже самые скоростные модули будут работать как DDR3-1333. А вот чипсет Intel P67 Express , позиционирующийся как решение для энтузиастов, поддерживает режимы вплоть до DDR3-2133, поэтому к выбору материнской платы под Sandy Bridge стоит подходить со всей основательностью.

К бою готов

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

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

Intel Bloomfield

Любимцы энтузиастов — процессоры Core i7 девятисотой серии — обладают феноменальной вычислительной мощностью, однако с их помощью очень сложно заставить память работать на запредельных частотах. Отчасти это компенсируется тем, что контроллер памяти у Bloomfield может работать в трехканальном режиме, недоступном другим рассматриваемым платформам.

При работе с Core i7-9хх возможности оверклокерских модулей, как правило, упираются в недостаточную производительность процессорного блока Uncore. Последний состоит из контроллера памяти и L3-кэша, а скорость его работы напрямую зависит от BCLK. При этом существует правило, что частота этого блока должна быть как минимум в два раза выше частоты работы памяти, то есть, например, для нормального функционирования плашек в режиме DDR3-1800 придется завести Uncore на 3600 МГц. Проблема заключается в том, что этот самый блок получился большим и горячим. Работу в нештатном режиме он не любит, и подаваемое на него напряжение необходимо существенно увеличивать (но не выставлять выше 1,4 В!). В итоге, даже если не разгонять вычислительные блоки процессора, Uncore с частотой 4000 МГц разогреет кристалл так, что не всякий кулер справится. Поэтому пересечь черту в 2000 МГц для памяти, не применяя серьезное охлаждение, крайне сложно. А поскольку разгонять память, не повышая частоту процессора, не очень разумно, можно констатировать, что среднестатистическому компьютеру на базе Bloomfield скоростная память вообще не нужна — какой-нибудь DDR3-1600 хватит с лихвой.

Любопытно, что модели семейства Core i7-9хх предоставляют в распоряжение пользователя внушительный набор множителей для памяти — они покрывают диапазон от 6х до 16х с шагом 2х. Для Uncore множитель так и вовсе можно выкручивать до 42х. Ну а поскольку штатная частота BCLK у Bloomfield равна 133 МГц, к максимально возможным для памяти значениям частоты можно подобраться, даже не трогая тактовый генератор. Впрочем, играясь и с BCLK, и с множителем, опытный оверклокер в любом случае сможет выжать из плашек еще немного бонусных мегагерц.

Intel Lynnfield

Процессоры линеек Core i7-8хх и Core i5-7хх , построенные на архитектуре Lynnfield, — это, пожалуй, лучший выбор для тех, кто хочет поставить рекорд частоты модулей памяти. Чтобы убедиться в этом, достаточно взглянуть, какие процессоры используются нынешними рекордсменами.

Секрет успеха Lynnfield в том, что для стабильной работы оперативки частота Uncore у этих кристаллов необязательно должна быть в два раза больше частоты памяти. Intel решила вообще заблокировать множитель ненавистного оверклокерами блока: для восьмисотых моделей Core i7 он зафиксирован на отметке 18х, а для семисотых — на 16х. Максимальные множители памяти для этих процессоров равны 12х и 10х соответственно. Таким образом, Uncore больше не выступает в роли бутылочного горлышка при разгоне памяти, поэтому «набор высоты» проходит легко и непринужденно.

Процессор из линейки Core i7-8хх без труда сможет выжать максимум из любого набора памяти: до 1600 МГц (133х12) можно добраться, не трогая BCLK, ну а дальше в ход идут эксперименты с опорной частотой. У семисотых Core i7 возможности чуть скромнее, но и их рядовому пользователю должно хватить с лихвой. Конечно, при значительном увеличении BCLK блок Uncore хорошенько разогреется (его рабочее напряжение придется усилить), однако к тому времени модули уже будут работать на пределе возможностей. Вообще же в таких случаях крайне желательна мощная система охлаждения процессора.

Intel Clarkdale

Бюджетные процессоры Intel со встроенной графикой, представленные семействами Core i5-6хх , Core i3 и Pentium G , плохо дружат с памятью. Увы, в целях экономии в этих моделях контроллер памяти вместе с графическим ядром вынесен на отдельный кристалл, который соединен с вычислительными ядрами шиной QPI. Использование шины плохо сказывается на производительности контроллера, так что от скоростной памяти в системе с Clarkdale особого толка не будет.

Разгон памяти, работающей в тандеме с обозначенными процессорами, осуществляется самым обычным образом: увеличиваем множитель, подкручиваем частоту BCLK (по умолчанию она равна 133 МГц). Никаких подводных камней нет, разве что при сильном разгоне придется понизить множитель QPI и увеличить напряжение, подаваемое на L3-кэш (пресловутый Uncore). Старшие Clarkdale, как правило, могут завести оверклокерскую память на частотах около 2000 МГц, что не так уж и плохо. Другое дело, что прирост быстродействия системы от увеличения скорости работы плашек будет совсем уж мизерным. Что касается максимального множителя для памяти, то он зависит от конкретной модели процессора: для «пентиумов» он равен 8х, а у Core i5-6хх и Core i3 — 10х. Кроме того, существует еще Core i5-655K , созданный специально для разгона, — он поддерживает множитель 16х, но лишь немногие материнские платы знают о его возможностях.

AMD Phenom II/Athlon II

В последние годы каждая новая процессорная архитектура от Intel привносит какие-то новые особенности, связанные с разгоном. С AMD все иначе — алгоритм раскочегаривания этих кристаллов уже давно практически не претерпевает изменений. Вероятно, что вместе с выходом процессоров Llano , оснащенных встроенным графическим ядром, этой стабильности придет конец, ну а пока что мы рассмотрим, каким образом разгоняется память, работающая в тандеме с нынешними решениями AMD — Phenom II и Athlon II.

В качестве опорной частоты для памяти в данном случае выступает частота системной шины (HT Clock по терминологии AMD), которая по умолчанию равна 200 МГц. Изменение этого параметра сказывается на режиме работы процессора, контроллера памяти (этот блок обычно обозначается как CPU NB) и шины HyperTransport Link. По этой причине в поисках частотного потолка вашего ОЗУ следует понизить множители для процессора и HT Link, а вот контроллер памяти, напротив, глушить не стоит. Его частота должна быть по крайней мере в три раза выше, чем реальная частота памяти (и, соответственно, в полтора раза выше, чем частота эффективная), иначе стабильность системы не гарантируется. Вместе с тем чем быстрее работает контроллер, то тем больше шансов выдавить из модулей памяти лишние мегагерцы или понизить их тайминги. Можно даже слегка задрать напряжение CPU NB, чтобы достичь лучшего результата, но сильно увлекаться не стоит.

Следует отметить, что на платформах AMD память разгоняется хуже, чем на платформах Intel и, как правило, отметку в 2000 МГц оверклокерам покорить не удается. Таким образом, покупать для такой системы сверхбыстрые планки DDR3 нет особого смысла. Учтите, что режимы работы до DDR3-1600 МГц включительно можно активировать изменением множителя, однако при дальнейшем разгоне в любом случае придется мучить тактовый генератор.

* * *

Как видно, изменять опорную частоту при более-менее серьезном разгоне памяти приходится практически всегда (а если бы на свете не существовало Sandy Bridge, это высказывание было бы еще более категоричным). Да, порою серьезных частот можно достичь посредством одних лишь множителей, однако шаг между доступными для активации значениями частоты в этом случае оказывается слишком велик, поэтому для более точного нахождения частотного потолка все равно приходится шаманить с тактовым генератором. Ну а это, как известно, приводит к изменению частоты процессора.

Мораль такова: если уж заниматься разгоном памяти серьезно, то параллельно стоит разгонять и процессор. В самом деле, зачем выжимать все соки из плашек и одновременно пытаться сдерживать рабочую частоту процессора, если даже незначительный разгон ЦП даст куда больший эффект, чем все опыты над памятью? Таким образом, прежде чем браться за разгон памяти, будет неплохо узнать, какие частоты способен покорить ваш процессор. Ну а после придется искать баланс между скоростью работы кристалла и частотой/таймингами оперативки, ведь обычно выставить максимально привлекательные значения обоих компонентов разом не получается.

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

Комментарии
Чтобы оставить комментарий,Войдите или Зарегистрируйтесь