Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Білети з інформатики.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
176.45 Кб
Скачать

1. Оператори. Оператори керування.

Оператори керув.- оп., які дозволяють змін. послідовність викон. ін. опер. Діляться на:

1) оп. умовної та безумовної передачі кер-ня; не рекоменд. використ. у прогр.(за виключенням прогр. на мові Асемблер);

2) цикл- оп., який забезпеч. повторення викон. ін. операторів певну к-сь разів; поділ. на: цикл з параметром, цикл з передумовою, цикл умови повторення;

3) оп. кер-ня підпрограм.

2. Прямий доступ до памяті. Контролер прямого доступу до памяті.

Прямий доступ до пам'яті (англ. Direct Memory Access, DMA) - режим обміну даними між пристроями або ж між пристроєм і основною пам'яттю (RAM) без участі центрального процесора (ЦП). У результаті швидкість передачі збільшується, так як дані не пересилаються в ЦП і назад.

Крім того, дані пересилаються відразу для багатьох слів, розташованих по поспіль йдуть адресами, що дозволяє використання т. зв. «Пакетного» (burst) режиму роботи шини - 1 цикл адреси і наступні за ним численні цикли даних. Аналогічна оптимізація роботи ЦП з пам'яттю вкрай утруднена.

В оригінальній архітектурі IBM PC (шина ISA) був можливий лише за наявності апаратного DMA-контролера (мікросхема з індексом Intel 8237).

DMA-контролер може отримувати доступ до системної шини незалежно від центрального процесора. Контролер містить кілька регістрів, доступних центральному процесору для читання і запису. Регістри контролера задають порт (який повинен бути використаний), напрям перенесення даних (читання / запис), одиницю переносу (побайтно / послівний), число байтів, яке слід перенести.

ЦП програмує контролер DMA, встановлюючи його регістри. Потім процесор дає команду пристрою (наприклад, диску) прочитати дані у внутрішній буфер. DMA-контролер починає роботу, посилаючи пристрою запит читання (при цьому пристрій навіть не знає, чи прийшов запит від процесора або від контролера DMA). Адреса пам'яті вже знаходиться на адресній шині, так що пристрій знає, куди слід переслати наступне слово зі свого внутрішнього буфера. Коли запис закінчена, пристрій посилає сигнал підтвердження контролеру DMA. Потім контролер збільшує використовуваний адресу пам'яті і зменшує значення свого лічильника байтів. Після чого запит читання повторюється, поки значення лічильника не стане дорівнює нулю. По завершенні циклу копіювання пристрій ініціює переривання процесора, що означає завершення перенесення даних. Контролер може бути багатоканальним, здатним паралельно виконувати декілька операцій.

Для здійснення прямого доступу до пам'яті контролер повинен виконати ряд послідовних операцій:

прийняти запит (DREQ) від пристрою введення-виведення;

сформувати запит (HRQ) в процесор на захоплення шини;

прийняти сигнал (HLDA), що підтверджує захоплення шини;

сформувати сигнал (DACK), що повідомляє влаштуванню про початок обміну даними;

видати адреса комірки пам'яті, призначеної для обміну;

виробити сигнали (MEMR, IOW або MEMW, IOR), що забезпечують управління обміном;

по закінченні циклу DMA або повторити цикл DMA, змінивши адресу, або припинити цикл.

Для передачи данных между встроенными запоминающими устройствами и УВВ в пространстве памяти данных у микроконтроллеров XMEGA A3 предусмотрен контроллер прямого доступа к памяти (DMA-контроллер). Для передачи данных DMA-контроллер и ЦПУ используют общую шину данных.

Контроллер имеет 4 канала с возможностями раздельной конфигурации. Каждый канал DMA может передавать данные блоками конфигурируемого размера от 1 до 64 кбайт. При необходимости передачи за одну транзакцию до 16 Мбайт данных можно воспользоваться возможностью повторяющейся передачи. В настройках каждого из каналов DMA задается адрес источника и получателя данных, а также режим адресации: с инкрементируемым, декрементируемым или статическим адресом. Адресация источника и получателя данных независимая.

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

DMA-контроллер имеет доступ ко всем УВВ через их расположенные в памяти ввода-вывода регистры. Кроме того, DMA можно использовать для автоматический передачи данных в коммуникационные модули и обратно, а также для автоматического считывания результата преобразования АЦП, передачи данных для преобразования в ЦАП, или изменения/опроса состояния линий ввода-вывода. Доступен для выбора широкий диапазон источников запуска передачи из УВВ, системы событий и программы. У каждого канала DMA имеются различные источники запуска передачи.

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

DMA-контроллер может считывать данные из EEPROM, но не может записывать в него данные и не имеет доступа к Flash-памяти.