Архитетура ЭВМ и ВС

Содержание

Слайд 2

Лекции:

Многоуровневая организация компьютера
Функциональная организация компьютера
Архитектура системы команд
Архитектура памяти
Операционные устройства вычислительных машин
Системы ввода/вывода
Основные

Лекции: Многоуровневая организация компьютера Функциональная организация компьютера Архитектура системы команд Архитектура памяти
направления развития архитектуры вычислительных машин
Многоядерные процессоры
Законы параллельных вычислений
Топология вычислительных систем
Вычислительные системы класса SIMD
Вычислительные системы класса MIMD

Слайд 3

Практикум:

Арифметические основы вычислительных машин
CISK и RISK-системы команд

Практикум: Арифметические основы вычислительных машин CISK и RISK-системы команд

Слайд 4

Базовые принципы работы компьютера

Базовые принципы работы компьютера

Слайд 5

"Архитектура - это наиболее общие принципы построения ЭВМ, реализующие программное управление работой

"Архитектура - это наиболее общие принципы построения ЭВМ, реализующие программное управление работой
и взаимодействием основных ее функциональных узлов"

Слайд 6

Принципы Фон-Неймана
Классические принципы построения архитектуры ЭВМ были предложены в работе Дж. фон

Принципы Фон-Неймана Классические принципы построения архитектуры ЭВМ были предложены в работе Дж.
Неймана, Г.Голдстейга и А. Беркса в 1946 году и известны как " принципы фон Неймана".
Принцип двоичного кодирования. Для представления данных и команд используется двоичная система счисления.
Принцип программного управления. Программа состоит из набора команд, которые выполняются процессором друг за другом в определённой последовательности.
Принцип однородности памяти. Как программы (команды), так и данные хранятся в одной и той же памяти (и кодируются в одной и той же системе счисления, чаще всего – двоичной). Над командами можно выполнять такие же действия, как и над данными.
Принцип адресуемости памяти. Структурно основная память состоит из пронумерованных ячеек, процессору в произвольный момент времени доступна любая ячейка.
Принцип последовательного программного управления. Все команды располагаются в памяти и выполняются последовательно, одна после завершения другой.
Принцип условного перехода. Команды из программы не всегда выполняются одна за другой. Возможно присутствие в программе команд условного перехода, которые изменяют последовательность выполнения команд в зависимости от значений данных. (Сам принцип был сформулирован задолго до фон Неймана Адой Лавлейс и Чарльзом Бэббиджем, однако он логически включен в фон-неймановский набор как дополняющий предыдущий принцип).

Слайд 10

Принстонская архитектура (фон Неймана)

Достоинства:
1) Наличие общей памяти позволяет оперативно перераспределять ее объем

Принстонская архитектура (фон Неймана) Достоинства: 1) Наличие общей памяти позволяет оперативно перераспределять
для хранения отдельных массивов команд, данных и реализации стека в зависимости от решаемых задач. Таким образом, обеспечивается возможность более эффективного использования имеющегося объема оперативной памяти в каждом конкретном случае применения.
2) Использование общей шины для передачи команд и данных значительно упрощает отладку, тестирование и текущий контроль функционирования системы, повышает ее надежность.
Недостатки:
Общая шина становится «узким местом» , которое ограничивает производительность цифровой системы.
Благоприятная среда для вирусов

Универсальные ЭВМ предназначены для решения широкого круга задач
Характерная особенность – наличие операционной системы

Слайд 12

Гарвардская архитектура

Недостатки:
Большее число шин, сложнее реализовать Устройство управления
Фиксированный объем памяти, выделенной для

Гарвардская архитектура Недостатки: Большее число шин, сложнее реализовать Устройство управления Фиксированный объем
команд и данных, назначение которой не может оперативно перераспределяться в соответствии с требованиями решаемой задачи
Достоинства:
Возможно одновременое обращение к памяти команд и памяти данных
Память программ аппаратно защищена от изменения и даже от чтения

Контроллеры – специализированные устройства, предназначены для управления двигателями, для приема и передачи сигналов, обработки сигналов от датчиков, для программирования других контроллеров и др.
Программа для контроллера подготавливается на универсальной ЭВМ, после загрузки в память программа может быть «защелкнута» (защищена от чтения и записи).

Слайд 13

Микроконтроллер Atmel AVR ATmega8

Микроконтроллер Atmel AVR ATmega8

Слайд 14

Многоуровневая организация компьютера

Многоуровневая организация компьютера

Слайд 15

Производство процессоров

Производство процессоров

Слайд 16

Архитектура системы команд компьютера

Архитектура системы команд компьютера

Слайд 17

Архитектура системы команд как интерфейс между программным и аппаратным обеспечением

Архитектура системы команд

Архитектура системы команд как интерфейс между программным и аппаратным обеспечением Архитектура системы команд

Слайд 18

Соотношение программ на ЯВУ и машинном языке

Здесь ЯВУ можно рассматривать как

Соотношение программ на ЯВУ и машинном языке Здесь ЯВУ можно рассматривать как
язык ассемблера, т.е. имеется взаимно однозначное соответствие между типами операторов и знаков операций ЯВУ с командами машинного языка. Здесь идет ассемблирование, а не компилирование, во время которого удаляются комментарии и пробелы в исходной программе, преобразуются разделители, ключевые слова и знаки операций в машинные коды, имена – в адреса полей памяти. Таким образом, многих привычных функций компилятора здесь нет. Остальная привязка программы к ЭВМ происходит перед выполнением программы;

Компиляция идет на машинный язык более высокого уровня, сокращая тем самым семантический разрыв между ЯВУ и машиной;

Здесь машинный язык является ЯВУ и идет процесс интерпретации программы на компьютере

Это традиционный подход. После компилирования программа переводится на машинный язык, а затем интерпретируется машиной;

Слайд 19

Требования ЯВУ к архитектуре ЭВМ :

память состоит из набора дискретных именуемых переменных.

Требования ЯВУ к архитектуре ЭВМ : память состоит из набора дискретных именуемых
ЯВУ наряду с линейными данными оперируют и с многомерными: массивами, структурами, списками;
в ЯВУ четко разграничены операции и данные;
данные определяют и операции над ними.

Слайд 20

Взаимосвязь между системой команд и эффективностью вычислений

Твыч - время выполнения программы;
Nком- число

Взаимосвязь между системой команд и эффективностью вычислений Твыч - время выполнения программы;
команд в программе;
CPI- среднее количество тактов процессора на одну команду;
τпр - длительность тактового периода (1/fсист)

Твыч= Nком* CPI * τпр

Слайд 21

Система команд вычислительной машины - полный перечень команд, которые способна выполнять данная

Система команд вычислительной машины - полный перечень команд, которые способна выполнять данная
ВМ.
Архитектура системы команд (АСК) - те средства вычислительной машины, которые видны и доступны программисту.

Слайд 22

Архитектура системы команд (англ. instruction set architecture, ISA) — часть архитектуры компьютера, определяющая программируемую

Архитектура системы команд (англ. instruction set architecture, ISA) — часть архитектуры компьютера,
часть ядра микропроцессора.
На этом уровне определяются реализованные в микропроцессоре конкретного типа:
архитектура памяти,
взаимодействие с внешними устройствами ввода/ вывода,
режимы адресации,
регистры,
машинные команды,
типы внутренних данных (например, с плавающей запятой, целочисленные типы и т . д.),
обработчики прерываний и исключительных состояний.

Слайд 23

Хронология развития архитектур системы команд

Классификация архитектур системы команд

Хронология развития архитектур системы команд Классификация архитектур системы команд

Слайд 24

Классификация архитектур системы команд

По составу и сложности команд (CISC, RISC, VLIW, ROSC)
По

Классификация архитектур системы команд По составу и сложности команд (CISC, RISC, VLIW,
типу выполняемых операций (общего назначения, специализированные, дополненной системой команд)
По месту хранения операндов (тип адресуемой памяти)

Слайд 25

Классификация по составу и сложности команд

архитектура с полным набором команд: CISC (Complex

Классификация по составу и сложности команд архитектура с полным набором команд: CISC
Instruction Set Computer);
архитектура с сокращенным набором команд: RISC (Reduced Instruction Set Computer);
архитектура с командными словами сверхбольшой длины: VLIW (Very Long Instruction Word):
безоперандная (стековая) архитектура: ROSC (Removed Operand Set Computer)

Слайд 26

Программная модель Intel 8086

Процессор интересует нас, прежде всего, как набор регистров
Регистр –

Программная модель Intel 8086 Процессор интересует нас, прежде всего, как набор регистров
быстродействующее запоминающее устройство, реализованное на электронных компонентах.
Все регистры имеют размер слова (16 разрядов), за каждым из них закреплено определенное имя. По назначению и способу использования регистры можно разбить на следующие группы:
регистры общего назначения (AX, BX, CX, DX, SI, DI, BP, SP);
сегментные регистры (CS, DS, SS, ES);
указатель команд (IP);
регистр флагов (Flags).

Слайд 27

AX accumulator, аккумулятор; BX base, база; CX counter, счетчик; DX data, данные; (буква

AX accumulator, аккумулятор; BX base, база; CX counter, счетчик; DX data, данные;
X - от слова eXtended, расширенный: в процессоре 8080 были байтовые регистры A, B, C и D, но затем их расширили до размера слова) SI source index, индекс источника; DI destination index, индекс приемника; BP base pointer, указатель базы; SP stack pointer, указатель стека; IP instruction pointer, указатель команд; SS stack segment, сегмент стека; DS data segment, сегмент данных; CS code segment, сегмент команд; ES extra segment, дополнительный сегмент.

Слайд 28

Сегментные регистры

Указатель команд

Сегментные регистры Указатель команд

Слайд 29

Регистр флагов

Флаг - это бит, принимающий значение 1 ("флаг установлен") или значение

Регистр флагов Флаг - это бит, принимающий значение 1 ("флаг установлен") или
0 ("флаг сброшен"). В i8086 используется 9 флагов, собранных в один 16-разрядный регистр, называемый регистром флагов (Flags).
Флаги условий:
CF   (carry flag) - флаг переноса.
OF   (overflow flag) - флаг переполнения
ZF   (zero flag) - флаг нуля
SF   (sign flag) - флаг знака
PF   (parity flag) - флаг четности
AF   (auxiliary carry flag) - флаг дополнительного переноса
Флаги состояний:
DF   (direction flag) - флаг направления.
IF   (interrupt flag) - флаг прерываний
TF   (trace flag) - флаг трассировки

Слайд 30

Форматы команд

Длина команды
Разрядность полей команды
Количество адресов в команде
Способы

Форматы команд Длина команды Разрядность полей команды Количество адресов в команде Способы
адресации операндов
Способы адресации в командах управления потоком команд
Система операций

Слайд 31

Четырехадресный формат команды

Трехадресный формат команды

Количество адресов в команде

Форматы команд

Четырехадресный формат команды Трехадресный формат команды Количество адресов в команде Форматы команд

Слайд 32

Двухадресный формат команды

Одноадресный формат команды

Количество адресов в команде

Форматы команд

Двухадресный формат команды Одноадресный формат команды Количество адресов в команде Форматы команд

Слайд 33

Полутораадресный формат команды

Количество адресов в команде

Нульадресный формат команды

Форматы команд

Полутораадресный формат команды Количество адресов в команде Нульадресный формат команды Форматы команд

Слайд 34

Прямая адресация

Косвенная адресация

Способы адресации операндов

Форматы команд

Прямая адресация Косвенная адресация Способы адресации операндов Форматы команд

Слайд 35

Регистровая адресация

Косвенная регистровая адресация

Способы адресации операндов

Форматы команд

Регистровая адресация Косвенная регистровая адресация Способы адресации операндов Форматы команд

Слайд 36

Адресация со смещением

Способы адресации операндов

Форматы команд

Адресация со смещением Способы адресации операндов Форматы команд

Слайд 37

Относительная адресация

Способы адресации операндов

Форматы команд

Относительная адресация Способы адресации операндов Форматы команд

Слайд 38

Базовая регистровая адресация с базовым регистром

Способы адресации операндов

Форматы команд

Базовая регистровая адресация с базовым регистром Способы адресации операндов Форматы команд

Слайд 39

Способы адресации операндов

Базовая регистровая адресация с использованием одного из РОН

Форматы команд

Способы адресации операндов Базовая регистровая адресация с использованием одного из РОН Форматы команд

Слайд 40

Индексная адресация с индексным регистром

Способы адресации операндов

Форматы команд

Индексная адресация с индексным регистром Способы адресации операндов Форматы команд

Слайд 41

Индексная адресация с использованием одного из РОН

Способы адресации операндов

Форматы команд

Индексная адресация с использованием одного из РОН Способы адресации операндов Форматы команд

Слайд 42

Страничная адресация

Способы адресации операндов

Форматы команд

Страничная адресация Способы адресации операндов Форматы команд

Слайд 43

CISC архитектура команд

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

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

Слайд 44

Достоинства:
Система команд процессоров с CISC–архитектурой может содержать несколько сотен команд разного формата

Достоинства: Система команд процессоров с CISC–архитектурой может содержать несколько сотен команд разного
(от 1 до 15 байт), или степени сложности, и использовать более 10 различных способов адресации, что позволяет программисту реализовать наиболее эффективные алгоритмы решения различных задач.
Недостатки:
усложнение аппаратной части АЛУ и УУ
увеличение сроков разработки процессора
снижение быстродействия выполнения программ так как большинство команд выполняется за несколько тактов

CISC архитектура команд

Слайд 45

RISC архитектура команд

каждая команда независимо от ее типа выполняется за один машинный

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

Слайд 46

КОП  -  код операции.
Усл    -  бит условия (для команд переходов).
Dest   -  номер

КОП - код операции. Усл - бит условия (для команд переходов). Dest
регистра назначения (длина пять бит - NPOH = 32).
SRC1 -  номер регистра-источника 1
SRC2 -  номер регистра или непосредственного значения источника 2:
Если  IMM = 1, то SRC2 – непосредственное данное
Если  IMM = 0 , то SRC2 – регистр.
Используется   два вида формата  команды.
1.     RDest = RSRC1 oper  S2  -   выполнение операции обработки;
2.     RDest = Mem; Mem = RSRC1 - чтение/запись в память

Команда в RISC архитектуре

В большинстве RISC-процессоров  команды являются трех адресными.

Слайд 47

Достоинства:
Повышение производительности обработки программ вычислительных задач.
Благодаря использованию простых команд  и минимума их

Достоинства: Повышение производительности обработки программ вычислительных задач. Благодаря использованию простых команд и
форматов сокращается время разработки RISC-процессора.
Улучшение технологичности RISC-процессоров благодаря большей свободе в размещении их элементов на кристалле интегральной схемы.

RISC архитектура команд

Слайд 48

Недостатки:
Нарушение основных принципов программирования:
минимум  длины исполняемого кода программы
снижение семантического разрыва между исходным

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

RISC архитектура команд

Слайд 49

В последних микропроцессорах фирмы Intel и AMD широко используются идеи, свойственные RISC-архитектуре,

В последних микропроцессорах фирмы Intel и AMD широко используются идеи, свойственные RISC-архитектуре,
начиная с Intel Pentium Pro, появились CISC-процессоры с RISC-ядром.
Они непосредственно перед исполнением преобразуют CISC-инструкции в более простой набор внутренних инструкций RISC.
В микропроцессор встраивается аппаратный транслятор, превращающий CISC-команды в команды внутреннего RISC-процессора. При этом одна CISC-команда может порождать несколько RISC-команд.
Исполнение команд происходит на суперскалярном конвейере одновременно по несколько штук. В итоге, такой подход и позволил поднять производительность CPU.

CISC система команд и RISC ядро

Слайд 50

VLIW архитектура команд

количество простых команд, объединяемых в одну команду сверхбольшой длины, равно

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

Слайд 51

VLIW архитектура команд

Преимущества
Подход VLIW сильно упрощает архитектуру процессора, перекладывая задачу распределения вычислительных

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

Слайд 52

Сравнительная оценка CISC-, RISC- и VLIW-архитетур

Сравнительная оценка CISC-, RISC- и VLIW-архитетур

Слайд 53

ROSC (стековая) архитектура команд

Стек - LIFO, Last In First Out
При описании вычислений

ROSC (стековая) архитектура команд Стек - LIFO, Last In First Out При
с использованием стека обычно используется форма записи математических выражений, известная как обратная польская, которую предложил польский математик Я. Лукашевич.
f=(a+b*c)/(a-d) f= abc*+ad-/

Слайд 54

Сравнение выполнения программы на RISC процессоре и на ROSC процессоре IGNITE

g5 =

Сравнение выполнения программы на RISC процессоре и на ROSC процессоре IGNITE g5 = g1–(g2+1)+g3–(g4*2)
g1–(g2+1)+g3–(g4*2)

Слайд 55

Достоинства
Сокращение адресной части команд, поскольку все операции производятся через вершину стека (не

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

ROSC-архитектура команд

Слайд 56

Классификация по месту хранения операндов

стековая;
„аккумуляторная;
регистровая;
с выделенным доступом к памяти.

Классификация по месту хранения операндов стековая; „аккумуляторная; регистровая; с выделенным доступом к памяти.

Слайд 57

Стековая архитектура

Стековая архитектура

Слайд 58

Аккумуляторная архитектура

Аккумуляторная архитектура

Слайд 59

Регистровая архитектура

Регистровая архитектура

Слайд 60

Сравнительная оценка вариантов размещения операндов

Сравнительная оценка вариантов размещения операндов

Слайд 61

Архитектура с выделенным доступом к памяти

Архитектура с выделенным доступом к памяти

Слайд 62

Классификация данных

Классификация данных

Слайд 63

Типы команд

команды пересылки данных (регистр-регистр , регистр-память, память-память);
команды арифметической и логической обработки;
команды

Типы команд команды пересылки данных (регистр-регистр , регистр-память, память-память); команды арифметической и
работы со строками;
команды SIMD;
команды преобразования;
команды ввода/вывода;
команды управления потоком команд:
безусловные переходы;
условные переходы (ветвления);
вызовы процедур и возвраты из процедур.

Слайд 64

Тип выполняемых операций

Команды пересылки и загрузки данных (память – регистр)
Команды

Тип выполняемых операций Команды пересылки и загрузки данных (память – регистр) Команды
арифметической и логической обработки
Команды ввода/вывода
Команды управления
Системные команды

Слайд 65

Система прерывания программ

Система прерывания программ — это совокупность аппаратных и программных средств,

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

Слайд 67

Цикл команды с учетом прерываний

1. Установка запрета на прием запросов прерывания.
2. Сохранение

Цикл команды с учетом прерываний 1. Установка запрета на прием запросов прерывания.
всей информации прерванной программы, которая необходима для возобновления выполнения этой программы (контекста программы) после завершения обработки прерывания.
3. Снятие запрета на прием запросов прерывания.
4. Идентификация источника ЗП, определение нужного обработчика прерывания и его запуск.
5. Завершение программы обработки прерывания.
6. Установка запрета на прием запросов прерывания.
7. Восстановление контекста прерванной программы (возврат к состоянию на момент прерывания).
8. Снятие запрета на прием запросов прерывания.
9. Возврат к выполнению прерванной программы.

Слайд 68

Характеристики систем прерывания

время реакции TР — время между появлением запроса прерывания и

Характеристики систем прерывания время реакции TР — время между появлением запроса прерывания
началом выполнения первой команды обработчика прерывания;
затраты времени на переключение программ — суммарный расход времени на запоминание TЗ и восстановление TВ состояния программы (Тобсл=Тз+Тв);
эффективность прерывания η — отношение времени выполнения прерывающей программы к общему времени, необходимому для обслуживания прерывания (η=Тп/Тпр);
глубина прерываний — максимальное число программ, которые могут последовательно прерывать друг друга.

Слайд 69

С позиций глубины прерывания можно рассматривать три варианта СПП:
СПП способна воспринимать только

С позиций глубины прерывания можно рассматривать три варианта СПП: СПП способна воспринимать
один запрос;
глубина прерываний ограничена некоторым значением n;
программы могут неограниченно прерывать друг друга.

Слайд 70

временная диаграмма процесса прерывания

временная диаграмма процесса прерывания

Слайд 71

Допустимые моменты прерывания программ

Метод помеченного оператора (метод опорных точек) – наличие в

Допустимые моменты прерывания программ Метод помеченного оператора (метод опорных точек) – наличие
коде команд специального бита, единичное значение которого означает разрешение прерывания по завершении данной команды, а нулевое — запрет. Сокращается время обслуживания Тобсл, но время реакции ТР увеличивается
Покомандный метод - прерывание допускается после завершения любой текущей команды. Уменьшается времени реакции ТР , но возрастает время обслуживания Тобсл
Метод быстрого реагирования - допускает прерывание после любого такта выполнения команды. Минимальное время реакции ТР , но возрастает объем запоминаемого контекста программы и увеличивается Тобсл

Слайд 72

Дисциплины обслуживания прерываний

P = pn–1 … p1 p0 - код прерывания (pi

Дисциплины обслуживания прерываний P = pn–1 … p1 p0 - код прерывания
– запрос от i-го источника)
M=mn-1…m1m0 – маска прерываний (mi = 1 — прерывание от i-го источника допустимо)
Zp=P&M

Слайд 73

Идентификация источника запроса прерывания

⇐ обзорная СПП

СПП с векторными прерываниями


Идентификация источника запроса прерывания ⇐ обзорная СПП СПП с векторными прерываниями ⇒

Слайд 74

Система приоритетов

Система приоритетов позволяет определить: имеет ли право поступивший запрос прерывания прервать

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

Слайд 75

Обслуживание прерывания

Обслуживание прерывания
Имя файла: Архитетура-ЭВМ-и-ВС.pptx
Количество просмотров: 41
Количество скачиваний: 0