Использование безразмерной величины . 1 страница

(3.18)

(3.19)

 

Формула (3.18) применяется тогда, когда уменьшение Ai приводит к увеличению (улучшению) значения аддитивной формулы критерия. Выражение (3.19) используется, когда к увеличению значения аддитивной формулы критерия приводит увеличение Ai.

 

Учет приоритета частных показателей

 

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

Приоритет частных показателей задается с помощью ряда приоритета I, вектора приоритета (b1, bq, …, bn) и вектора весовых коэффициентов (α1, α2, …, αn).

Ряд приоритета представляет собой упорядоченное множество индексов частных показателей I =(1, 2, …, п). Он отражает чисто качественные отношения доминирования показателей, а именно отношения следующего типа: показатель A1 важнее показателя А2, а показатель А2 важнее показателя А3 и т. д.

Элемент bq вектора приоритета показывает, во сколько раз показатель Аq важнее показателя Аq+1 (здесь Аq — показатель, которому отведен номер q в ряду приоритета). Если Аq и Аq+1 имеют одинаковый ранг, то bq = 1. Для удобства принимают bn=1.

Компоненты векторов приоритета и весовых коэффициентов связаны между собой следующим отношением

Зависимость, позволяющая по известным значениям b, определить величину αq, имеет вид:

(3.20)

Знание весовых коэффициентов позволяет учесть приоритет частных показа­телей.

 

Контрольные вопросы

 

1. Какую функцию выполняет счетчик команд и какой должна быть его разрядность?

2. Какое из полей регистра команд должно быть заполнено в первую очередь?

3. Какой адрес должен быть занесен в указатель стека при его инициализации?

4. Какими средствами компенсируется различие в быстродействии процессора и основной памяти?

5. На основании какой информации микропрограммный автомат формирует сигналы управления?

6. Можно ли считать наличие регистров операндов обязательным условием работы любого операционного блока?

7. Каким образом используется информация, хранящаяся в регистре признаков?

8. С каким понятием можно ассоциировать сигнал управления?

9. В чем состоит различие между микрокомандой и микрооперацией?

10. Какие существуют способы записи микропрограмм?

11. Перечислите основные правила составления граф-схемы алгоритма?

12. Как в предложенном языке микропрограммирования описывается разрядное шины?

13. Какие варианты описания слова памяти допускает язык микропрограммирования?

14. Описание каких видов микроопераций допускает рассмотренный в книге язык микропрограммирования?

15. Что подразумевает понятие «совместимость микроопераций»?

16. Какие из этапов цикла команды являются обязательными для всех команд?

17. Какие узлы ВМ участвуют в реализации этапа выборки команды?

18. Местоположение какого из этапов цикла команды в общей их последовательности в принципе может быть изменено?

19. На какой стадии выполнения команды анализируются запросы прерывания?

20. Опишите последовательность действий, выполняемых при поступлении запроса прерывания.

21. Как обеспечивается возобновление вычислений после обработки прерывания?

22. Что понимается под номинальным и средним быстродействием ВМ?

23. Каким образом можно охарактеризовать производительность вычислительной машины?

24. Перечислите и охарактеризуйте основные способы построения критериев эффективности ВМ?

25. Какими способами можно произвести нормализацию частных показателей эффективности?


Глава 4

Организация шин

 

 

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

§ центральным процессором и памятью;

§ центральным процессором и модулями ввода/вывода;

§ памятью и модулями ввода/вывода.

Информационные потоки, характерные для основных устройств ВМ, показать на рис. 4.1.

 

Рис. 4.1. Информационные потоки в вычислительной машине

 

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

 

Рис. 4.2. Эволюция структур взаимосвязей (ЦП - центральный процессор,

ПАМ - модуль основной памяти, МВВ - модуль ввода/вывода)

 

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

Чтобы охарактеризовать конкретную шину, нужно описать (рис. 4.3):

§ совокупность сигнальных линий;

§ физические, механические и электрические характеристики шины;

 

Рис. 4.3. Параметры, характеризующие шину

 

§ используемые сигналы арбитража, состояния, управления и синхронизации;

§ правила взаимодействия подключенных к шине устройств (протокол шины).

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

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

Когда два устройства обмениваются информацией по шине, одно из них должно инициировать обмен и управлять им. Такого рода устройства называют ведущими (bus master). В компьютерной терминологии «ведущий» - это любое устройство, способное взять на себя владение шиной и управлять пересылкой данных. Ведущий не обязательно использует данные сам. Он, например, может захватить управление шиной в интересах другого устройства. Устройства, не обладающие возможностями инициирования транзакции, носят название ведомых (bus slave). В принципе к шине может быть подключено несколько потенциальных ведущих, но в любой момент времени активным может быть только один из них: если несколько устройств передают информацию одновременно, их сигналы перекрываются и искажаются. Для предотвращения одновременной активности нескольких ведущих в любой шине предусматривается процедура допуска к управлению шиной только одного из претендентов (арбитраж). В то же время некоторые шины допускают режим записи, когда информация одного ведущего передается сразу нескольким ведомым (здесь арбитраж не требуется). Сигнал, направленный одним устройством, доступен всем остальным устройствам, подключенным к шине.

Английский эквивалент термина «шина» — «bus» — восходит к латинскому слову omnibus, означающему «для всего». Этим стремятся подчеркнуть, что шина ведет себя как магистраль, способная обеспечить всевозможные виды трафика.

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

 

Типы шин

 

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

§ шины «процессор-память»;

§ шины ввода/вывода;

§ системные шины.

Шина «процессор-память»

 

Шина «процессор-память» обеспечивает непосредственную связь между центральным процессором (ЦП) вычислительной машины и основной памятью (ОП). В современным микропроцессорах такую шину часто называют шиной переднего плана и обозначают аббревиатурой FSB (Front-Side Bus). Интенсивный трафик между процессором и памятью требует, чтобы полоса пропускания шины, то есть количество информации, проходящей но шине в единицу времени, была наибольшей. Роль этой шины иногда выполняет системная шина (см. ниже), однако в плане эффективности значительно выгоднее, если обмен между ЦП и ОП ведется по отдельной шине. К рассматриваемому виду можно отнести также шину, связывающую процессор с кэш-памятью второго уровня, известную как шина заднего плана — BSB (Back-Side Bus). BSB позволяет вести обмен с большей скоростью, чем FSB, и полностью реализовать возможности более скоростной кэш-памяти.

Поскольку в фон-неймановских машинах именно обмен между процессором и памятью во многом определяет быстродействие ВМ, разработчики уделяют связи ЦП с памятью особое внимание. Для обеспечения максимальной пропускной способности шины «процессор-память» всегда проектируются с учетом особенностей организации системы памяти, а шины делается по минимальной.

 

Шина ввода/вывода

 

Шина ввода/вывода служит для соединения процессора (памяти) с устройствами ввода/вывода (УВВ). Учитывая разнообразие таких устройств, шипы ввода/вывода унифицируются и стандартизируются. Связи с большинством УВВ (но не с видеосистемами) не требуют от шины высокой пропускной способности. При проектировании шин ввода/вывода в учет берутся стоимость конструктива и соединительных разъемов. Такие шины содержат меньше линий по сравнению с вариантом «процессор-память», но длина линий может быть весьма большой. Типичными примерами подобных шин могут служить шины PCI и SCSI.

 

Системная шина

 

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

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

 

Рис. 4.4. Структура системной шины

 

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

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

Физически системная шина представляет собой совокупность параллельных электрических проводников. Этими проводниками служат металлические полоски на печатной плате. Шина подводится ко всем модулям, и каждый из них подсоединяется ко всем или некоторым ее линиям. Если ВМ конструктивно выполнена на нескольких платах, то все линии шины выводятся на разъемы, которые затем объединяются проводниками на общем шасси.

Среди стандартизированных системных шин универсальных ВМ наиболее известны шины Unibus, Fastbus, Futurebus, VME, NuBus, Multibus-II. Персональные компьютеры, как правило, строятся на основе системной шины в стандартах ISA, EISA или MCA.

 

Иерархия шин

 

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

 

Вычислительная машина с одной шиной

 

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

 

Рис. 4.5. Структура взаимосвязей с одной шиной

 

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

 

Вычислительная машина с двумя видами шин

 

Хотя контроллеры устройств ввода/вывода (УВВ) могут быть подсоединены непосредственно к системной шине, больший эффект достигается применением одной или нескольких шин ввода/вывода (рис. 4.6). УВВ подключаются к шинам ввода/вывода, которые берут на себя основной трафик, не связанный с выходом на процессор или память. Адаптеры шин обеспечивают буферизацию данных при их пересылке между системной шиной и контроллерами УВВ. Это позволяет ВМ поддерживать работу множества устройств ввода/вывода и одновременно «развязать» обмен информацией по тракту процессор-память и обмен информацией с УВВ.

 

Рис. 4.6. Структура взаимосвязей с двумя видами шин

 

Подобная схема существенно снижает нагрузку на скоростную шину «процессор-память» и способствует повышению общей производительности ВМ. В качестве примера можно привести вычислительную машину Apple Macintosh II, где роль шины «процессор-память» играет шина NuBus. Кроме процессораипамятик ней подключаются некоторые УВВ. Прочие устройства ввода/вывода подключаются к шине SCSI Bus.

 

Вычислительная машина с тремя видами шин

 

Для подключения быстродействующих периферийных устройств в систему шин может быть добавлена высокоскоростная шина расширения (рис. 4.7).

 

 

Рис. 4.7. Структура взаимосвязей стремя видами шин

 

Шины ввода/вывода подключаются к шине расширения, а уже с нее через адаптер к шине «процессор-память». Схема еще более снижает нагрузку на шину «процессор-память». Такую организацию шин называют архитектурой с «пристройкой» (mezzanine architecture).

 

Физическая реализация шин

 

Кратко остановимся на различных аспектах физической реализации шин в вычислительных машинах и системах.

 

Механические аспекты

 

Основная шина (рис. 4.8), объединяющая устройства вычислительной машины, обычно размещается на так называемой объединительной или материнской плате. Шину образуют тонкие медные поперек которых через небольшие интервалы установлены разъемы для подсоединения устройств ВМ. Подключаемые к шине устройства обычно также выполняются в виде печатных плат, часто называемых дочерними платами или модулями. Дочерние платы вставляются в разъемы на материнской плате. В дополнение к тонким сигнальным линиям на материнской плате имеются также и более широкие проводящие линии, по которым к дочерним платам подводится питающее напряжение. Несколько контактов разъема обычно подключаются к общей точке — «земле». «Земля» на материнской плате реализуется либо в виде медного слоя (одного из внутренних слоев многослойной печатной платы), либо как широкая медная дорожка на обратной стороне материнской платы.

 

Рис. 4.8. Организация объединительной шины

 

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

разъема в загрязненной или коррозийной среде.

«Механические» спецификации шины обычно включают такие детали, как размеры плат, размеры и размещение направляющих для установки платы, разрешенное место для установки кабельного разъема, максимальная высота элементов на плате и т. д.

 

Электрические аспекты

 

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

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

При реализации шины необходимо предусмотреть возможность отключения драйвера от сигнальной линии на период, когда он не использует шину. Один из возможных способов обеспечения подобного режима — применение драйвера, выход которого может находиться в одном из трех состояний: «высокий уровень напряжения» (high), «низкий уровень напряжения» (low) и «отключен» (off). Для перевода в состояние «off», эквивалентное отключению выхода драйвера от сигнальной линии, используется специальный вход драйвера. Режим «off» необходим для исключения возможности одновременного управления шиной двумя или более устройствами, в противном случае на линиях могут возникать пиковые выбросы напряжения или искаженные сигналы, которые кроме некорректной передачи информации могут привести к преждевременному отказу электронных компонентов.

Совместное использование линии шины несколькими устройствами возможно также за счет подключения этой линии к выходу драйвера через резистор, соединенный с источником питания. В зависимости от полупроводниковой технологии, примененной в выходных каскадах драйвера, подобную возможность обеспечивают схемы с открытым коллектором (ТТЛ), открытым стоком (МОП) или открытым эмиттером (ЭСЛ). Данный способ не только исключает электрические конфликты на шине, но и позволяет реализовать очень полезный вид логической операции, известный как «монтажное ИЛИ» или «монтажное И» (трактовка зависит от соответствия между уровнями напряжения и логическими значениями 1 и 0). Если к линии одновременно подключается несколько драйверов, то сигнал на линии представляет собой результат логического сложения (операция всех поступивших на линию сигналов. Это оказывается весьма полезным при решении задачи арбитража, которая рассматривается позже. В некоторых шинах «монтажное ИЛИ» используется лишь в отдельных сигнальных линиях, но иногда эту операцию допускают по отношению ко всем линиям шины.

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

Рассматривая процесс распространения сигнала по сигнальной линии, необходимо учитывать четыре основных фактора:

§ скорость распространения;

§ отражение;

§ перекос;

§ эффекты перекрёстного влияния.

Теоретическая граница скорости распространения сигнала — скорость света в свободном пространстве, то есть около 300 мм/не. Реальная скорость, определяемая физическими характеристиками сигнальных линий и нагрузкой, реально не может превысить 70% от скорости света.

Процессы в линии рассмотрим на примере сигнальной линии, которая через резистор, соединенный с источником питания, удерживается на уровне напряжения, соответствующем логической единице. Сигнал драйвера «подтягивает» линию к своему уровню напряжения. Изменение напряжения распространяется от точки подключения драйвера в обоих направлениях, пока на всей линии не установится уровень сигнала драйвера. Характер распространения сигнала определяют емкость, индуктивность и характеристическое сопротивление линии, локальные значения которых по длине линии зависят от локальных свойств проводника и его окружения.

По мере распространения по реальной линии сигнал преодолевает области с различным сопротивлением. Там, где оно меняется, сигнал не может оставаться постоянным, поскольку меняется соотношение между током и напряжением. Часть сигнала продолжает продвижение, а часть — отражается в противоположную сторону. Прямой и отраженный сигналы могут повторно отражаться, в результате чего на линии формируется сложный результирующий сигнал. В конце линии сигнал отражается назад, если только он не поглощен правильно подобранным согласующим резистором. Если на конце линии имеется согласующий резистор, с сопротивлением, идентичным импедансу линии, сигнал будет поглощен без отражения. Такие резисторы должны размещаться по обоим концам сигнальной линии. К сожалению, точное значение импеданса реальной линии никогда не известно, из-за чего номиналы резисторов невозможно точно согласовать с линией, и отражение всегда место.

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

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

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

линий, чего можно добиться, разместив вблизи сигнальных линий «земляные»

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

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

Поскольку драйвер одновременно «видит» две линии, передающие информацию в противоположных направлениях, он должен поддерживать двойную по срав­нению с одной линией величину тока. Для типичных линий импеданс не превы­шает 20 Ом, а сигналы имеют уровень порядка 3 В, что выражается в величине тока около 150 мА. Приведенные цифры для современных драйверов не составляют проблемы, поскольку применяемые в настоящее время схемы способны приспособиться к гораздо худшим параметрам сигналов.

Порождаемый сигналом ток замыкается через «земляной» контакт драйвера. Когда одновременно активны все сигнальные линии, ток возврата через «землю» может быть весьма большим. Положение осложняет то, что ток этот не является постоянным и в моменты подключения и отключения драйвера содержит высокочастотные составляющие. Кроме того, из-за сопротивления и индуктивности «земляного» слоя печатной платы потенциалы на «земляных» выводах дочерних плат могут различаться. Это может приводить к неверной оценке сигналов приемниками, следствием чего становится некорректное срабатывание логических схем. С «земляным» шумом легче бороться на стадии проектирования шины. Прежде всего необходимо улучшать характеристики «земляных» слоев на материнской и дочерних платах. Между системами заземления материнской и дочерних плат должно быть много хорошо распределенных надежных контактов. Для высокоскоростных шин на каждые четыре сигнальных шины следует иметь отдельный «земляной» контакт. Кроме того, дочерняя плата должна быть спроектирована так, чтобы «земляной» ток от данного драйвера протекал к тому «земляному» контакту, который расположен как можно ближе к сигнальным выводам. «Земля» материнской платы обычно реализуется в виде внутреннего медного слоя в многослойной печатной плате; отверстия с зазором вокруг сигнальных выводов предотвращают короткое замыкание сигнального вывода с этим слоем. Разъем должен быть достаточно широким, чтобы на дочерней плате можно было разместить по возможности ближе к нему, что позволяет сократить длину тех участков шины, где нарушается ее неразрывность.

В целом ряде известных шин многие из рассмотренных положений игнорируются. По практическим соображениям используются линии с высоким импедансом. Надежность работы с такими «плохими» шинами достигается за счет их замедления: затягивание перехода сигналов от одного уровня к другому приводит к уменьшению отражений. Снижается также влияние перекрестных помех.

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

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








Дата добавления: 2019-04-03; просмотров: 376;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.049 сек.