Главная страницаОбратная связьКарта сайта

Функции процессора компьютера

Типы и спецификации микропроцессоров.Функции процессора

По мере появления новых процессоров их архитектура дополняется все новыми и новыми возможностями, которые позволяют повысить не только эффективность выполнения тех или иных приложений, но и надежность центрального процессора в целом. В следующих разделах представлено краткое описание различных технологий, включая режим управления системой (SMM), суперскалярное выполнение (SE), технологии MMX, SSE, 3DNow!, HyperThreading и многоядерность.

Режим управления системой (SMM)

Задавшись целью создавать все более быстрые и мощные процессоры для портативных компьютеров, Intel и AMD в начале 1990-х годов начали внедрять в свои процессоры режим управления системой. Этот режим позволяет процессорам управлять на низком уровне системой энергоснабжения. Система SMM предлагает изолированную среду программирования, открытую для операционной системы и прикладных программ; она предназначена для использования системной BIOS и драйверами устройств.

Режим SMM был реализован в мобильном процессоре 386SL в октябре 1990 года. Позже этот режим был внедрен в процессоры 486SL, а начиная с июня 1993 года стал использоваться во всех процессорах серии 486. Когда в марте 1993 года появились первые процессоры Pentium, в них система SMM встроена не была. Однако эта система была включена во все процессоры, начиная с Pentium с тактовой частотой 75 МГц, выпущенных после октября 1994 года.
Компания AMD примерно в то же время внедрила систему SMM в свои процессоры Am486 и K5. С этого момента все процессоры, поступающие на рынок, включали в себя систему SMM.

Режим SMM вызывается с помощью подачи сигнала на специальный вывод процессора, который генерирует прерывание управления системой (System Management Interrupt — SMI) — немаскируемое прерывание с наивысшим доступным приоритетом. При запуске системы SMM текущий контекст (т.е. состояние) процессора и выполняющихся программ сохраняется. После этого процессор переключается в специально выделенное адресное пространство и выполняет код SMM совершенно прозрачно для прерванной программы и прочего программного обеспечения системы. После завершения выполнения кода SMM восстанавливается прежде сохраненный контекст процессора и прерванных программ и процессор продолжает работу с той точки, в которой остановился.

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

■     функции управления электропитанием ACPI и APM;

■     поддержка портом USB старых устройств (клавиатура и мышь);

■     загрузка с устройств USB (эмуляция устройств);

■     функции защиты паролем;

■     мониторинг температуры;

■     мониторинг скорости вентилятора;

■     чтение/запись CMOS ОЗУ;

■     обновление BIOS;

■     протоколирование ошибок ECC памяти;

■     протоколирование ошибок других устройств;

■     функции включения компьютера при возникновении событий (например, Wake On Lan).

Систему SMM можно увидеть в работе при ее попытке получить доступ к периферийному устройству, которое ранее было переведено в режим энергосбережения. Предположим, что некоторая программа выполнила попытку чтения файла с жесткого диска, который с целью энергосбережения ранее был приостановлен. При получении такого запроса контроллер диска генерирует прерывание SMI, чтобы включить систему SMM. После этого программное обеспечение SMI подает команды раскрутки жесткого диска и приведения его в состояние готовности. После этого управление возвращается операционной системе и загрузка файла с диска начинается так, будто работа диска не приостанавливалась.

Суперскалярное выполнение

В процессорах Pentium пятого и последующих поколений встроен ряд внутренних конвейеров, которые могут выполнять несколько команд одновременно. Процессор 486 и все предшествующие в течение определенного времени могли выполнять только одну команду. Технология одновременного выполнения нескольких команд называется суперскалярной. Благодаря ее использованию и обеспечивается дополнительная эффективность по сравнению с процессором 486.

Суперскалярная архитектура обычно ассоциируется с процессорами RISC (Reduced Instruction Set Computer — компьютер с упрощенной системой команд). Процессор Pentium — одна из первых микросхем CISC (Complex Instruction Set Computer — компьютер со сложной системой команд), в которой применяется суперскалярная технология, реализованная во всех процессорах пятого и последующих поколений.


Рассмотрим на примере установки электрической лампочки инструкции CISC.

1.   Возьмите электрическую лампочку.

2.   Вставьте ее в патрон.

3.   Вращайте ее по часовой стрелке до отказа.

И аналогичный пример в виде инструкций RISC.

1.   Поднесите руку к лампочке.

2.   Возьмите лампочку.

3.   Поднимите руку к патрону.

4.   Вставьте лампочку в патрон.

5.   Поверните ее по часовой стрелке.

6.   Лампочка еще поворачивается в патроне? Если да, то перейти к п. 5.

7.   Конец.

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

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

Технология MMX

В зависимости от контекста MMX может означать multi-media extensions” (мультимедийные расширения) или matrix math extensions” (матричные математические расширения). Технология MMX использовалась в старых моделях процессоров Pentium пятого поколения в качестве расширения, благодаря которому ускоряется компрессия/декомпрессия видеоданных, манипулирование изображением, шифрование и выполнение операций ввода-вывода — почти все операции, используемые во многих современных программах.

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

Другим усовершенствованием MMX является расширение набора команд процессора пятьюдесятью семью новыми командами, а также введение новой возможности выполнения команд, называемой одиночный поток команд — множественный поток данных (Single Instruction — Multiple Data, SIMD).

В современных мультимедийных и сетевых приложениях часто используются циклы; хотя они занимают около 10% (или даже меньше) объема полного кода приложения, на их выполнение может уйти до 90% общего времени выполнения. Технология SIMD позволяет одной команде осуществлять одну и ту же операцию над несколькими данными, подобно тому, как преподаватель, читая лекцию, обращается ко всей аудитории, а не к каждому студенту в отдельности. Применение SIMD позволяет ускорить выполнение циклов при обработке графических, анимационных, видео- и аудиофайлов; в противном случае эти циклы отнимали бы время у процессора.

Компанией Intel было добавлено 57 новых команд, специально разработанных для более эффективной обработки звуковых, графических и видеоданных. Эти команды предназначены для выполнения с высокой степенью параллелизма последовательностей, которые часто встречаются при работе мультимедийных программ. Высокая степень параллелизма в данном случае означает, что одни и те же алгоритмы применяются ко многим данным, например к данным в различных точках при изменении графического изображения.

Такие компании, как AMD и Cyrix, лицензировали у Intel технологию MMX и реализовали ее в собственных процессорах.

Инструкции SSE, SSE2 и SSE3

В феврале 1999 года Intel представила общественности процессор Pentium III, содержащий обновление технологии MMX, получившей название SSE (Streaming SIMD Extensions — поточные расширения SIMD). До этого момента инструкции SSE назывались Katmai New Instructions (KNI), так как первоначально они были включены в процессор Pentium III с кодо­вым именем Katmai. Процессоры Celeron 533A и выше, созданные на основе ядра Pentium III, тоже поддерживают инструкции SSE. Более ранние версии процессора Pentium II, а также Celeron 533 и ниже (созданные на основе ядра Pentium II) SSE не поддерживают.

Инструкции SSE содержат 70 новых команд для работы с графикой и звуком в дополнение к существующим командам MMX. Фактически этот набор инструкций, кроме названия KNI, имел еще и второе название — MMX-2. Инструкции SSE позволяют выполнять операции с плавающей запятой, реализуемые в отдельном модуле процессора. В технологиях MMX для этого использовалось стандартное устройство с плавающей запятой.

Инструкции SSE2, содержащие 144 дополнительные команды SIMD, были представлены в ноябре 2000 года вместе с процессором Pentium 4. В SSE2 были включены все инструкции предыдущих наборов MMX и SSE.

Инструкции SSE3 были представлены в феврале 2004 года вместе с процессором Pentium 4 Prescott; они добавляют 13 команд SIMD, предназначенных для ускорения выполнения сложных математических операций, обработки графики, кодирования видео и синхронизации потоков данных. Инструкции SSE3 также содержат все инструкции MMX, SSE и SSE2.

Дополнительные инструкции SSSE3 (Supplemental SSE3) были представлены общественности в июне 2006 года в процессорах серии Xeon 5100 и в июле того же года в процессорах Core 2. В этот набор были включены еще 32 дополнительные команды. Также компания Intel анонсировала выход нового набора SSE4, в который войдет еще 50 дополнительных команд.

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

■     более высокое разрешение/качество при просмотре и обработке графических изображений;

■     улучшенное качество воспроизведения звуковых и видеофайлов в формате MPEG2, а также одновременное кодирование и декодирование формата MPEG2 в мультимедийных приложениях;

■     уменьшение загрузки процессора и повышение точности/скорости реагирования при выполнении программного обеспечения для распознавания речи.

Инструкции SSEх особенно эффективны при декодировании файлов формата MPEG2, который является стандартом сжатия звуковых и видеоданных, используемых в DVD. Следовательно, оснащенные SSE процессоры позволяют достичь максимальной скорости декодирования MPEG2 без использования дополнительных аппаратных средств (например, платы декодера MPEG2). Кроме того, процессоры, содержащие набор инструкций SSE, значительно превосходят предыдущие версии процессоров в операциях распознавании речи.

Одним из основных преимуществ SSE по отношению к MMX является поддержка операций SIMD с плавающей запятой, что очень важно при обработке трехмерных графических

изображений. Технология SIMD, как и MMX, позволяет выполнять сразу несколько операций при получении процессором одной команды. В частности, SSE поддерживает выполнение до четырех операций с плавающей запятой за цикл; одна инструкция может одновременно обрабатывать четыре блока данных. Для выполнения операций с плавающей запятой ин­струкции SSE могут использоваться вместе с командами MMX без заметного снижения быстродействия. SSE также поддерживает упреждающую выборку данных, которая представляет собой механизм предварительного считывания данных из кэш-памяти.

Обратите внимание: наилучшие результаты применения новых инструкций процессора обеспечиваются только при их поддержке на уровне используемых приложений. Сегодня большинство компаний, занимающихся разработкой программного обеспечения, модифицировали приложения, связанные с обработкой графики и звука, что позволило в более полной мере использовать возможности SSE. Например, графическое приложение Adobe Photoshop поддерживает инструкции SSE, что значительно повышает эффективность использования оснащенных SSE процессоров. Поддержка инструкций SSE встроена в DirectX 6.1 и в самые последние видео- и аудиодрайверы, поставляемые с операционными системами Windows 98 Second Edition и более новыми.

Каждый следующий набор инструкций SIMD построен на основе предыдущего. К примеру, процессоры, поддерживающие SSE4, поддерживают команды всех предыдущих наборов инструкций SSE и даже MMX.

3DNow!, Enhanced 3DNow! и 3DNow! Professional

Технология 3DNow! разработана компанией AMD в ответ на реализацию поддержки инструкций SSE в процессорах Intel. Впервые (май 1998 года) 3DNow! реализована в процессорах AMD K6 еще до реализации SSE в процессорах Pentium III, а дальнейшее развитие — Enhanced 3Dnow! — эта технология получила в процессорах Athlon и Duron. Новая технология 3DNow! Professional впервые появилась в процессорах Athlon XP. Компания AMD лицензировала технологию MMX от Intel и реализовала полноценную поддержку инструкций MMX в процессорах K6, Athlon и Duron. Не желая дополнительно лицензировать инструкции SSE, в AMD разработали новый набор расширений для инструкций MMX, получивший название 3DNow!. Аналогично SSE/SSE2, технологии 3DNow!, Enhanced 3DNow! и 3DNow! Professional предназначены для ускорения обработки трехмерной графики, мультимедиа и других интенсивных вычислений.

Технология 3DNow! представляет собой набор из 21 инструкции SIMD, которые оперируют массивом данных в виде единичного элемента. В Enhanced 3DNow! к существующим добавлены 24 новые инструкции (19 SSE и 5 DSP/коммуникационных инструкций), что составляет в итоге 45 инструкций. Будучи расширением MMX, технология 3DNow! предоставляет функциональные возможности, аналогичные инструкциям SSE процессоров Pentium III и Celeron. Согласно данным компании AMD, технология 3DNow! расширяет возможности MMX наравне с SSE, однако использует для этого меньшее количество инструкций и менее сложную архитектуру. Технологии обработки данных 3DNow!, Enhanced 3DNow! и 3DNow! Professional хотя и подобны SSE, но несовместимы на уровне инструкций, поэтому производителям программного обеспечения необходимо отдельно реализовать их поддержку.

Технология 3Dnow!, как и SSE, поддерживает операции SIMD с плавающей запятой, а также позволяет выполнять до четырех операций с плавающей запятой за один цикл. Инструкции 3DNow! для операций с плавающей запятой могут использоваться вместе с командами MMX без заметного снижения быстродействия. Поддерживается и упреждающая выборка данных — механизм предварительного считывания данных из кэш-памяти.

Наравне с SSE инструкции 3DNow! в полной мере поддерживаются различными программными продуктами, в частности Windows 9x, Windows NT 4.0 и более новыми операционными системами Microsoft. В процессорах последнего поколения Athlon XP и Athlon 64 реализована полноценная поддержка инструкций SSE за счет применения технологии 3DNow! Professional.

Последняя версия 3DNow! — 3DNow! Professional — добавляет 51 инструкцию SSE к набору команд 3DNow! Enhanced, благодаря чему процессоры AMD в полной мере поддерживают все возможности SSE. Таким образом, все современные процессоры AMD имеют как минимум все возможности SSE. В процессоры Athlon 64, Athlon 64XP и 64-разрядные Op-teron была добавлена поддержка инструкций SSE2, а в 0,09-микронные процессоры Athlon 64 и в двухъядерные Athlon 64 X2 — поддержка инструкций SSE3. Скорее всего, в будущие свои процессоры AMD добавит и поддержку SSE4.

Динамическое выполнение

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

■     Предсказание множественного перехода (ветвления). Предсказание потока выполнения программы через несколько ветвлений.

■     Анализ потока команд. Назначение выполнения команд по мере готовности, независимо от их порядка в исходной программе.

■     Упреждающее выполнение. Увеличение скорости выполнения за счет опережающего просмотра счетчика команд и выполнения тех инструкций, к которым, вероятно, потребуется обратиться позже.

Предсказание перехода

Функция предсказания перехода, ранее применявшаяся только в универсальных процессорах старших моделей, позволяет процессору при высокоскоростном выполнении команд сохранять конвейер заполненным. Специальный модуль выборки/декодирования, включенный в процессор, использует высокооптимизированный алгоритм предсказания перехода, по­зволяющий предсказывать направление и результат команд, выполняемых через несколько уровней ветвлений, обращений и возвратов. Этот модуль напоминает шахматиста, который разрабатывает несколько различных стратегий перед началом шахматной партии, предсказывая ответные действия противника на несколько ходов вперед. Благодаря предсказанию ре­зультатов выполнения команды инструкции могут выполняться практически без задержек.

Анализ потока команд

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

Упреждающее выполнение

Способность процессора выполнять команды с помощью опережающего просмотра существующего счетчика команд называется упреждающим выполнением. Модуль отправки/ выполнения, включенный в процессор, анализирует поток данных для выполнения всех команд, существующих в буфере (накопителе) команд, и сохранения результатов в буферных регистрах. После этого модуль изъятия анализирует содержимое пула команд на предмет наличия завершенных команд, не зависящих от данных, получаемых при выполнении других команд, или команд, имеющих неразрешенные предсказания перехода. Результаты выполнения обнаруженных завершенных команд передаются в память модулем изъятия или соответ­ствующей стандартной архитектурой Intel в том порядке, в котором они были получены. Затем команды удаляются из буфера.

Рис. 3.2. Процессор, поддерживающий HT, позволяет заполнить время простоя выполнением другого процесса, тем самым увеличивая многозадачность и быстродействие многопоточных приложений

Совместное использование процессорных компонентов приводит к тому, что быстродействие системы с процессором HT меньше быстродействия систем c двумя физическими процессорами. Однако выполнение нескольких приложений или одного многопоточного приложения в системе с процессором HT демонстрирует прирост производительности примерно на 25% по сравнению с обычным однопроцессорным компьютером.

Требования к использованию

Технология Hyper-Threading, доступная для настольных систем, впервые появилась в процессоре Pentium 4 c тактовой частотой 3,06 ГГц. Более быстродействующие процессоры Pentium 4 и процессоры Pentium 4 с тактовой частотой шины 800 МГц также поддерживают HT. Однако этого недостаточно — существуют и другие требования.

■   Поддерживающая HT системная плата (набор микросхем). Может понадобиться обновление BIOS.

■     Поддержка BIOS включения/отключения HT. Если технология Hyper-Threading не поддерживается установленной операционной системой, HT необходимо отключить средствами BIOS. При включении поддержки HT скорость выполнения приложений изменяется, в большей или меньшей мере (обратитесь к индексам производительности конкретных приложений, наполняющих вашу систему).

■     Совместимая с HT операционная система, например Windows XP или Vista. При

использовании режима HT в программе Диспетчер устройств будет отображено два процессора.

Хотя Windows NT 4.0 и Windows 2000 разработаны для использования нескольких физических процессоров, для обеспечения работы процессора HT потребуется изменить ряд конфигурационных параметров. Операционные системы Linux с версией ядра 2.4.18 и выше также поддерживают данную технологию.

Многоядерная технология

Технология Hyper-Threading всего лишь имитирует наличие двух процессоров. Однако если даже имитация нескольких процессоров принесла свои плоды, то наличие двух и более процессоров в одном корпусе еще больше скажется на производительности. Внешне двухъядерные процессоры выглядят, как один; так же они рассматриваются и с точки зрения лицензионной политики компании Microsoft (в частности, для операционных систем Windows). Однако на самом деле внутри одного корпуса содержатся два, четыре, а то и больше полноценных процессорных ядер. Многоядерные процессоры обладают всеми теми же преимуществами, которые дают многопроцессорные системы, однако стоят намного дешевле. К тому же многоядерные процессоры, как уже отмечалось, позволяют избежать многих проблем, связанных с лицензированием программных продуктов. К примеру, несмотря на то что редакции Windows Vista Home Basic и Home Premium, равно как и XP Home, поддерживают только один процессор, если этим процессором окажется четырехъя-дерный, все четыре ядра будут поддерживаться и функционировать на полную мощность. Аналогично редакции Vista Business и Ultimate, а также XP Professional поддерживают до двух процессоров. Если этими процессорами, опять-таки, окажутся четырехъядерные, функционировать будут все 8 ядер.

В 2005 году компании AMD и Intel представили свои первые двухъядерные процессоры. AMD выпустила на рынок процессор Athlon 64 X2, устанавливаемый в материнские платы Socket 939, предназначенные для обычных одноядерных процессоров Athlon 64 и Athlon XP (в некоторых случаях могло потребоваться обновление BIOS). Также AMD представила двухъядерные версии процессоров Opteron для серверов и рабочих станций. Первыми ласточками от компании Intel стали двухъядерные процессоры Pentium D и Pentium Extreme Edition. Они использовали тот же разъем Socket 775, что и предыдущие модели Pentium 4. В то же время они требовали наличия в материнской плате набора микросхем системной логики, поддерживающих операции с двумя ядрами. Более новые двухъядерные процессоры Core 2 от Intel продолжали поддержку разъема Socket 775 на обновленных материнских платах и чипсетах. Затем компания AMD представила процессоры Athlon 64 FX, Athlon 64 X2 и Athlon X2 для разъема Socket AM2 с поддержкой памяти DDR2, а также Phenom X2 для разъема Socket AM3 с поддержкой памяти DDR2 и DDR3. В ноябре 2006 года компания Intel представила свои первые четырехъядерные процессоры Core 2 Extreme QX и Core 2 Quad. Свой первый четырехъядерный процессор компания AMD назвала Phenom X4.

Преимущества многоядерных процессоров

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

Однако высокая стоимость многопроцессорных материнских плат и необходимость установки нескольких процессоров долгое время не позволяли воспользоваться этими преимуществами владельцам настольных систем.

Примечание

В многопотоковом приложении разные части программы, именуемые потоками, могут выполняться одновременно и работать в одном адресном пространстве. Они могут совместно использовать данные и программный код. Такие приложения гораздо быстрее выполняются на многоядерных процессорах и процессорах от Intel, поддерживающих технологию Hyper-Threading.

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

Многоядерные процессоры, как и следует из названия, содержат в одном корпусе несколько процессорных ядер, что позволило получить все достоинства многопроцессорного компьютера при существенном уменьшении затрат. В отличие от технологии Hyper-Threading, которая только имитирует наличие двух процессоров, двухъядерным процессорам для поддержания повышенной производительности не нужны специальные приложения. Каждое из ядер процессора получило возможность посвящать больше времени отдельным приложениям и их потокам, что в многозадачной среде положительно сказалось на общей производительности.

Многоядерные процессоры предназначены для пользователей, которым необходима одновременная работа нескольких приложений или которые используют многопотоковые программы (пожалуй, в эту категорию попадут практически все современные пользователи компьютеров). На рис. 3.3 показано, как двухъядерный процессор обслуживает несколько приложений.




Рис. 3.3. Обслуживание нескольких задач одноядерным (слева) и двухъядерным (справа) процессорами
Важно осознать, что двухъядерный процессор не способен повысить производительность системы в однозадачной среде. К примеру, если вы играете на компьютере в трехмерные игры, не поддерживающие многопотоковость, то, вероятнее всего, это единственный процесс, поддерживаемый системой в текущий момент. Следовательно, многозадачности нет, и получить преимущества от двухъядерного процессора не удастся. К счастью, с каждым днем все больше производителей компьютерных программ (в том числе игр) начинают использовать разделение потоков, что автоматически позволяет взять на вооружение достоинства параллельной обработки информации несколькими ядрами процессора.

Обсудить статью на форуме


Если прочитаная статья из нашей обширной энциклопедия компьютера - "Функции процессора компьютера", оказалась полезной или интересной, Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу:

Так же Вы можете задать вопрос по статье через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!
   


Copyright © 2008 - 2024 Дискета.info