рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Архитектура материнских плат

Архитектура материнских плат - раздел Компьютеры, Архитектура Материнских Плат В Мире Существует Множество Компьютеров Различн...

Архитектура материнских плат В мире существует множество компьютеров различных фирм различающихся по сложности, назначению и т.д основной частью которых является материнская плата. Материнская плата - основная плата персонального компьютера, её по - другому называют системной платой.Современная материнская плата ПК, как правило, включает в себя чипсет, осуществляющий взаимодействие центрального процессора с ОЗУ и основной оперативной памятью, с портами ввода/вывода, со слотами расширения PCI Express, PCI, а также, обычно, с USB, SATA и IDE/ATA. Большинство устройств, которые могут присоединяться к материнской плате, делают это с помощью одного или нескольких слотов расширения или сокетов, а некоторые современные материнские платы поддерживают беспроводные устройства, использующие протоколы IrDA, Bluetooth, или 802.11 (WI-Fi). Рис.1 Материнская плата стандарта ATX (модель MSI K7T266 Pro2) Центральный микропроцессор – основная микросхема компьютера, в которой производятся все вычисления.

Процессор на материнской плате закреплён в специальном гнезде, называемым сокетом.

Рис.2 Socket 754(AMD) Сокет - гнездовой или щелевой разъём, предназначен для облегчения установки центрального процессора.Использование разъёма вместо прямого распаивания процессора на материнской плате упрощает замену процессора для модернизации или ремонта компьютера. Разъём может быть предназначен для установки собственно процессора или CPU-карты (например в Pegasos). Каждый разъём допускает установку только определённого типа центральных процессоров или CPU-карт. В современных материнских платах, использующих процессоры х86 , разъёмы обозначаются трехзначными номерами, при этом номер соответствует числу пинов (ножек) процессора.

Старые разъёмы обозначаются в порядке выпуска, обычно одной цифрой. Приведём примеры сокетов различных фирм. Разъёмы процессоров Intel: Socket 1— Intel 80486; Socket 423 — процессоры Intel Pentium 4 и Celeron (основанные на ядре Willamette); Socket 478 — процессоры Intel Pentium 4 и Celeron (основанные на ядрах Northwood, Prescott и Willamette); Socket479 — процессоры Intel Pentium M и Celeron M (основанные на ядрах Banias и Dothan); Socket480 — процессоры Intel Pentium M (основанные на ядре Yonah); Socket 603/604 — процессоры Intel Xeon основанные на ядрах Northwood и Willamette Pentium 4; Socket T/LGA 775 — процессоры Intel Pentium 4 и Celeron (основанные на ядрах Prescott и Cedar Mill); Socket 775 - процессорыIntel Core 2 Quad/Core 2 Extreme/Core 2 Extreme/Pentium 4/Extreme; Socket 771 - процессоры Intel Xeon серии 50хх, 51хх (основанные на ядре Dempsey и Woodcrest)и Xeon серии 53хх (основанные на ядре Clovertown ); Разъёмы процессоров фирмы AMD: Socket A (Socket 462) — семейство процессоров AMD K7 (Athlon, Athlon XP, Sempron и Duron); Socket563 - процессоры Athlon XP-M с низким потреблением энергии; Socket 754 — процессоры AMD Athlon 64 нижнего уровня и процессоры; Sempron с поддержкой только одноканального режима работы с памятью; Socket 939 — процессоры AMD Athlon 64 и AMD Athlon FX с поддержкой двухканального режима работы с памятью; Socket940 — процессоры AMD Opteron и ранние AMD Athlon FX (от 939 отличается одной «ногой», которая используется для контроля правильности прочитанных данных из памяти (ECC); Socket AM2 — новый сокет для процессоров AMD. Имеет 940 контактов, но не совместим с Socket 940; Socket AM2+ — перспективная замена для Socket AM2 (в настоящее время уже выпускается); прямая и обратная совместимость с сокетом AM2 для всех планируемых материнских плат и процессоров; Socket AM3 — перспективная замена для Socket AM2+ (выпуск запланирован на конец 2007 - начало 2008г.); Socket (Socket 1207) — новый сокет для процессоров Opteron; Socket S1— сокет для процессоров Mobile Sempron; На материнской плате устанавливаются две основные микросхемы: северный и южный мост ,образующие вместе чипсет.

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

Северный мост определяет частоту системной шины, возможный тип оперативной памяти (в системах на базе процессоров Intel) (SDRAM, DDR, другие), её максимальный объем и скорость обмена информацией с процессором.

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

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

Южный мост (от англ. Southbridge), также известен как контроллер-концентратор ввода-вывода от англ. I/O Controller Hub (ICH). Это микросхема, которая реализует «медленные» взаимодействия на материнской плате между чипсетом материнской платы и её компонентами.

Южный мост обычно не подключён напрямую к процессору (CPU), в отличие от северного моста. Северный мост связывает южный мост с CPU. Функционально южный мост включает в себя: Шину PCI; шину ISA; SMBus (SM шина) или интерфейс I2C;DMA контроллер; контроллер прерываний; IDE (SATA или PATA) контроллеры; шина LPC Bridge; часы реального времени (Real Time Clock); управление питанием (Power management (APM и ACPI); энергонезависимую память BIOS (CMOS); звуковой контроллер AC97 (опционально). Опционально южный мост также может включать в себя поддержку,RAID контроллера, контроллера USB, контроллера Fire Wire и аудио-кодек.

Реже южный мост включает в себя поддержку клавиатуры, мыши и последовательных портов, но обычно эти устройства подключаются с помощью другого устройства – Super I/O (контроллера ввода-вывода). Поддержка шины PCI включает в себя традиционную спецификацию PCI, но может также обеспечивать поддержку шины PCI-X и PCI Express.

Хотя поддержка шины ISA используется достаточно редко, она осталась неотъемлемой частью современного южного моста.

Шина SM используется для связи с другими устройствами на материнской плате (например, для управления вентиляторами). Контроллер DMA позволяет устройствам на шине ISA или LPI получать прямой доступ к оперативной памяти, обходясь без помощи центрального процессора.

Контроллер прерываний обеспечивает механизм выделения центрального процессора каждому устройству.IDE интерфейс позволяет работать системе с жёсткими дисками.LPC шина обеспечивает передачу данных и управление SIO (это такие устройства, как клавиатура, мышь, параллельный ,последовательный порт, инфракрасный порт и флоппи-контроллер) и BIOS ROM (флеш). APM или ACPI функции позволяет перевести компьютер в «спящий режим» или выключить его. Системная память CMOS, поддерживаемая питанием от батареи, позволяет создать ограниченную по объёму область памяти для хранения системных настроек (настроек BIOS). На материнской плате располагаются различные шины. Компьютерная шина- подсистема, которая передает данные и/или питание между компонентами компьютера или между компьютерами.

Обычно шина управляется драйвером.

В отличие от связи точка—точка, к шине можно подключить несколько устройств по одному набору проводников. Каждая шина определяет свой набор коннекторов для физического подключения устройств, карт и кабелей. ISA (англ. Industry Standard Architecture, ISA bus) — 8-ми или 16-ти разрядная системная шина IBM PC -совместимых компьютеров. Служит для подключения плат расширения стандарта ISA. Конструктивно выполняется в виде 62-х или 98-контактного разъёма на материнской плате.С появлением материнских плат формата ATX шина ISA перестала широко использоваться в компьютерах, хотя встречаются ATX-платы с AGP 4x,6 PCI и одним или двумя потами ISA. PCI (англ. Peripheral component interconnect, дословно: взаимосвязь периферийных компонентов) — системная шина для подключения периферийных устройств к материнской плате компьютера. Форм-фактор материнской платы — стандарт, определяющий размеры материнской платы для персонального компьютера, места ее крепления к корпусу; расположение на ней интерфейсов шин, портов ввода/вывода, сокета центрального процессора и слотов для оперативной памяти, а также тип разъема для подключения блока питания.

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

Устаревшими считаются: Baby-AT; Mini-ATX; полноразмерная плата AT; LPX. Современными считаются: ATX; microATX; Flex-АТХ; NLX; WTX. Внедряемыми считаются: Mini-ITX и Nano-ITX;Pico-ITX; BTX, MicroBTX и PicoBTX Существуют материнские платы несоответствующие никаким из существующих форм-факторов (см. таблицу). Обычно это обусловлено либо тем, что производимый компьютер узкоспециализирован, либо желанием производителя материнской платы самостоятельно производить и периферийные устройства к ней, либо невозможностью использования стандартных компонентов (так называемый «брэнд», например Apple Computer, Commodore, Silicon Graphics, Hewlett Packard, Compag чаще других игнорировали стандарты; кроме того в нынешнем виде распределённый рынок производства сформировался только к 1987 г когда многие производители уже создали собственные платформы). Форм-фактор Физические размеры Спецификация, год Примечание XT 8,5 Ч 11" (216 Ч 279 мм) IBM,1983 архитектура IBM PC XT AT 12 Ч 11"–13" (305 Ч 279–330 мм) IBM, 1984 архитектура IBM PC AT (Desktop/Tower) Baby-AT 8,5" Ч 10"–13" (216 Ч 254-330 мм) IBM, 1990 архитектура IBM PC XT (форм-фактор считается недействительным с 1996 г.) ATX 12" Ч 9,6" (305 Ч 244 мм) Intel,1995 для системных блоков типов MiniTower, FullTower ATX Riser Intel, 1999 для cистемных блоков типа Slim eATX 12" Ч 13" (305 Ч 330 мм) Mini-ATX 11,2" Ч 8,2" (284 Ч 208 мм) для системных блоков типа Tower и компактных Desktop microATX 9,6" Ч 9,6" (244 Ч 244 мм) Intel, 1997 имеет меньше слотов чем ATX, также возможно использование меньшего PSU LPX 9" Ч 11"–13" (229 Ч 279–330 мм) Western Digital, 1987 для системных блоков типа Slim Mini-LPX 8"–9" Ч 10"–11" (203–229 мм Ч 254–279 мм) Western Digital,1987 для системных блоков типа Slim NLX 8"–9" Ч 10"-13,6" (203–229 мм Ч 254–345 мм) Intel, 1997 Предусмотрен AGP, лучшее охлаждение чем у LPX FlexATX 9,6" Ч 7,5"-9.6" (244 Ч 244 мм) Intel, 1999 разработан как замена для форм-фактора MicroATX Mini-ITX 6,7" Ч 6,7" (170 Ч 170 мм) VIA Technologies 2003 допускаются только 100 Вт блоки питания Nano-ITX (120 Ч 120 мм) VIA Technologies, 2004 BTX 12,8" Ч 10,5" (325 Ч 267 мм) Intel, 2004 допускается до 7 слотов и 10 отверстий для монтажа платы MicroBTX 10,4" Ч 10,5" (264 Ч 267 мм) Intel, 2004 допускается до 4 слотов и 7 отверстий для монтажа платы PicoBTX 8,0" Ч 10,5" (203 Ч 267 мм) Intel, 2004 допускается 1 слот и 4 отверстия для монтажа платы WTX 14" Ч 16,75" (355,6 Ч 425,4 мм) 1999 для высокопроизводительных рабочих станций и серверов среднего уровня ETX и PC-104 используются для встраиваемых (embedded) систем Все основные электронные схемы компьютера и необходимые дополнительные устройства включаются в материнскую плату, или подключаются к ней с помощью слотов расширения.

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

Список литературы 1. Борзенко, А. IBM PC: устройство, ремонт, модернизация [Текст] / А. Борзенко // Журнал Компьютер Пресс. – 1995. – январь. – С. 52-55. 2. Аврин, С. Компьютерные артерии [Текст] / С. Аврин // Журнал Hard ‘n’ Soft. – 1994. – №6. – С. 29–33. 3. Фролов, А.В. Аппаратное обеспечение IBM PC [Текст] / А.В. Фролов, Г.В.Фролов // Журнал ДИАЛОГ-МИФИ. – 1992. – С. 202-206. 4. Скотт Мюллер Модернизация и ремонт ПК [Текст] / Скотт Мюллер //Журнал Вильямс. – 2007. – С. 241–443. Задание №2 Рисунок 1– Блок-схема к заданию №2 Полный исходный текст программы /* задача про прямоугольники */ #include <stdio.h> main() { int a, b, c, d; //ввод сторон прямоугодьников printf("Enter fore positive numbers: "); scanf("%d%d%d%d", &a, &b, &c, &d); /* условия выполнения задачи*/ if((c > a)&&(d > b)) printf("Yes ");//прямоугольник со сторонами a, b вмещается в прямоугольник со сторонами c, d else if((c > b)&&(d > a )) printf("Yes ");//прямоугольник со сторонами a, b вмещается в прямоугольник со сторонами c, d else printf("No ");//прямоугольник со сторонами a, b не вмещается в прямоугольник со сторонами c, d getch(); return 0; } Задание №3 Рисунок 2– Блок-схема к заданию №3 Полный исходный текст программы #include <stdio.h> void ch(int *, int*);//прототип функции ch main() { int n=0, m=0, i, j; int a[26][26]; // объявление массива //прозьба ввести границы матрицы, удовлетворяющие условию while (((m==0)||(m>25))||((n==0)||(n>25) )) { printf("Enter n "); scanf("%i", &n); printf("Enter m "); scanf("%i", &m); printf(" "); } //заполнение и вывод исходной матрицы for (i = 1; i <= n; i++) { for (j = 1;j <= m; j++) { a[i][j] = j; printf("%3i", a[i][j]); } printf (" "); } printf (" "); /*преобразование исходной матрицы с помощью функции ch */ for(j = 1; j <= (m – m %2); j++) { if (j%2) { for( i =1; i <= n; i++) { ch(&a[i][j+1],&a[i][j]); } } } /*вывод преобразованной матрицы*/ for (i = 1; i <= n; i++) { for (j = 1; j <= m; j++) { printf("%3i", a[i][j]); } printf (" "); } return 0;//выход из функции main и из всей программы } void ch(int * x, int * y)// определение функции { // замена элементов строки местами int t; t = *x; *x = *y; Задание №4 Рисунок 3– Блок-схема к заданию №4 Функция main Функция insert - вставляет элемент в список Функция prinList - печатает список Функция oneLeft – возвращает 1, если в списке остался один элемент, иначе возвращает ноль Функция delete4 - удаляет элемент из списка Полный исходный текст программы // подключение стандартных заголовочных файлов #include <stdio.h> #include <stdlib.h> // определение структуры - ячейки связного циклического списка struct listNode{ int data; struct listNode *nextPtr; }; //определение типа структуры и указателя на нее typedef struct listNode LISTNODE; typedef LISTNODE *LISTNODEPTR; // прототипы функций // функция вывода списка int prinList(LISTNODEPTR *); // функция вставки в список void insert(LISTNODEPTR *, int); // функция удаления элемента списка int delete4(LISTNODEPTR *, int); // предсказывающая функция int oneLeft(LISTNODEPTR); // функция main main () { // определение указателя на начало списка LISTNODEPTR startPtr= NULL; int g; printf("Please fill the list with INTEGER value.

Adding is stoped by 0 value. "); // ввод значения для заполнения списка scanf("%i", &g); while (g!=0) { // вызов функции вставки в список и передача ей адреса первого элемента списка и значения нового элемента insert(&startPtr, g); scanf("%i", &g); } printf(" "); printf(" List IS: "); // выводит на экран список и проверяет возвращаемое функцией вывода списка значение if (prinList(&startPtr)) { //если выведено успешно // ввод значения удовлетворяющего условию типа int и условию задачи while ((g<1)||(g>32000)) { printf (" Enter number to delete: "); scanf("%i", &g); } printf(" "); // пока не остался один элемент - удалять элементы в соответствии с введенным номером while((!oneLeft(startPtr))) { delete4(&startPtr, g); }; printf("The last element is: "); // выводит на экрн список prinList(&startPtr); printf(" Press ENTER to exit "); getch(); } else { //если вывод списка неуспешен (список пуст или поврежден) printf("Nothing to delete Press ENTER to exit "); getch(); } return 0; } // функция вставки в список.

Вставляет принятое значение в конец списка void insert(LISTNODEPTR *sPtr, int value){ // инициализация переменных LISTNODEPTR newPtr, previousPtr, currentPtr; // выделяем пмять для структуры listnode, и записываем адрес в newPtr newPtr = malloc(sizeof(LISTNODE)); // если память выделена: if (newPtr != NULL ) { // формируем новую ячейку списка newPtr->data = value; newPtr->nextPtr = NULL; // ставим указатель currentPtr на начало списка currentPtr = *sPtr; // если список пустой: if (*sPtr == NULL) { // формируем первый элемент списка newPtr->nextPtr= *sPtr; *sPtr=newPtr; } else { // если список не пустой //если список состоит из одного элемента if ((currentPtr->nextPtr) == NULL) { // вставляем новый элемент списка и зацикливаем список newPtr->nextPtr = *sPtr; ((*sPtr)->nextPtr) = newPtr; } else { // если список состоит из двух и более // устанавливаем указатель на currentPtr на последний элемент циклического списка // пока следующий за currentPtr элемент не начало списка while (currentPtr->nextPtr != *sPtr) { // передвигаем currentPtr по списку вперед currentPtr=currentPtr->nextPtr; } // вставляем новый элемент списка и замыкаем список currentPtr->nextPtr = newPtr; newPtr->nextPtr=*sPtr; } } } // вывод сообщения об ошибке в случае невыделения памяти else printf("Insuficient Memory ENOUGH!"); } // функция печати списка.

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

Если список пуст - возвращает 0 int prinList(LISTNODEPTR *sPtr) { // определение переменной указателя LISTNODEPTR currentPtr; // установка указателя на начало списка currentPtr = *sPtr; if (currentPtr == NULL) { // если список пустой printf(" List is empty. "); return 0; } else { // если не пустой // вывод значения элемента, на который указывает указатель currentPtr printf(" %d ", currentPtr->data); // пока следующий за currentPtr не начало списка и не конец списка while ((currentPtr->nextPtr != *sPtr)&&(currentPtr->nextPtr != NULL)){ // перемещаем указатель currentPtr на следующий элемент currentPtr = currentPtr -> nextPtr; // вывод значения элемента, на который указывает указатель currentPtr printf(" %d ", currentPtr->data); } return 1; } } // функция сообщающая о том , что список состоит из одного элемента int oneLeft(LISTNODEPTR sPtr){ return (sPtr->nextPtr)==NULL; } // функция удаления элемента.

Удаляет элемент и перемещает указатель, указывающий начало списка, на следующий элемент за удаленным int delete4(LISTNODEPTR *sPtr, int n){ // инициализация переменных LISTNODEPTR previousPtr, currentPtr, tempPtr; int i,tw=0; // елси список пуст - выйти из функции if ((*sPtr)==NULL) return 0; // установка указателей previousPtr = *sPtr; currentPtr = (*sPtr)->nextPtr; // если удаляем не первый элемент if (n!=1) { // устанавливаем указатель currentPtr на удаляемый элемент // устанавливаем указатель previousPtr на предшествующий ему for(i=1; i<(n-1); i++) { previousPtr = currentPtr; currentPtr = currentPtr->nextPtr; } } else { // если удаляем первый элемент // устанавливаем указатель currentPtr на удаляемый элемент // устанавливаем указатель previousPtr на предшествующий ему while((currentPtr)!=(*sPtr)){ previousPtr = currentPtr; currentPtr = currentPtr->nextPtr; } }; // если в списке не 2 элемента if( ( ((*sPtr)->nextPtr)->nextPtr )!=*sPtr ) { //исключаем currentPtr previousPtr->nextPtr=currentPtr->n extPtr; } else { // разрываем список previousPtr->nextPtr=NULL; }; // устанавливаем указатель начала списка на следующий за currentPtr элемент *sPtr=currentPtr->nextPtr; // удаляем из памяти элемент currentPtr tempPtr = currentPtr; free(tempPtr); } //конец.

– Конец работы –

Используемые теги: архитектура, материнских, плат0.058

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Архитектура материнских плат

Что будем делать с полученным материалом:

Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Еще рефераты, курсовые, дипломные работы на эту тему:

АРХИТЕКТУРА МАТЕРИНСКОЙ ПЛАТЫ
На сайте allrefs.net читайте: "АРХИТЕКТУРА МАТЕРИНСКОЙ ПЛАТЫ"

Лекция: Архитектура компьютерной системы В лекции подробно рассмотрена архитектура компьютерной системы: управление прерываниями
В лекции подробно рассмотрена архитектура компьютерной системы управление прерываниями памятью вводом выводом иерархия памяти ассоциативная... Содержание Введение Архитектура компьютерной системы... Введение...

Логические операции. Базовая конфигурация PC. Внутренние устройства. Устройства, располагаемые на материнской плате. Шинные интерфейсы. Периферийные устройства PC
Логические операции... В компьютерных программах используются операции... И пересечение или конъюнкция A B В программном коде обозначается как And а в функциональных схемах как знак...

Материнская плата ПК
Рис 1. Структурная схема функционирования ЭВМ Вот эти основные принципы 1. Вычислительная машина должна состоять из следующих частей Устройство… УУ формирует команды управления устройствами управляющие импульсы и отправляет… Благодаря принципу условного перехода, число команд в программе получается во много раз меньше, чем число выполненных…

Лекция 5 Логические операции. Базовая конфигурация PC. Внутренние устройства. Устройства, располагаемые на материнской плате. Шинные интерфейсы. Периферийные устройства PC
Логические операции... В компьютерных программах используются операции... И пересечение или конъюнкция A B В программном коде обозначается как And а в функциональных схемах как знак...

Архитектура системных плат
Одной из главных микросхем системной платы является микросхема BIOS это основная система ввода вывода Basic Input Output System зашитая в ПЗУ... Обычно на системной плате установлено только ПЗУ с системным Main System... Обычно BIOS для современных системных плат разрабатывается одной из специализирующихся на этом фирм однако некоторые...

Материнские платы и виды памяти
Если вы собираете компьютер, выбор материнской платы самое важное решение, которое вам нужно принять, и часто самое сложное. Если вы модернизируете… Комбинация физических характеристик называется форм-фактором. Тип чипсета… Материнской платы. Форм-фактор очень важен при модернизации, потому что новая материнская плата должна поместиться в…

Лекция: Уровни абстракции ОС. ОС с архитектурой микроядра. Виртуальные машины. Цели проектирования и разработки ОС. Генерация ОС В лекции рассматриваются следующие вопросы: методы проектирования и реализации ОС: уровни абстракции ОС; ОС с архитектурой мик
В лекции рассматриваются следующие вопросы методы проектирования и реализации... Содержание Введение Уровни абстракции ОС Операционные системы с микроядром Виртуальные машины другой распространенный подход к...

В настоящее время существуют два типа архитектуры микропроцессорных систем – Принстонская, или архитектура фон-Неймана и Гарвардская
Введение... В настоящее время существуют два типа архитектуры микропроцессорных систем... В г американский математик Джон фон Нейман сформулировал основные принципы работы современных компьютеров Им...

Материнская плата. Устройства, подключаемые на неё
Развитие любой из отраслей национальной экономики напрямую обусловлено внедрением автоматизации на всех ее уровнях, что предполагает наличие… Насыщенность предприятий, организации и учреждений персональными компьютерами… Выполнение такого задания окажется по плечу при условии получения определенной теоретической подготовки и…

0.033
Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • По категориям
  • По работам