====== DMA ====== DMA (Direct Memory Access) - контроллер, позволяющий периферийным устройствам обмениваться данными с [[RAM|системной памятью]] напрямую, без прямого участия [[CPU]]. Процессор лишь настраивает регистры DMA, после чего контроллер забирает управление шиной. Это позволяет осуществлять асинхронный ввод/вывод, освобождая процессор для других задач, что особенно важно для программ реального времени. Примеры использования DMA: * Загрузка данных в [[VRAM|видеопамять]] и отправка пакетов [[GPU]] * Загрузка данных в память [[SPU]] * Чтение с [[cd_rom|CD-ROM]] ===== Каналы DMA ===== Контроллер поддерживает 7 каналов, каждый из которых жестко привязан к конкретному устройству: * 0x1F80108x DMA0/MDECin - передача данных в [[MDEC|декодер макроблоков]] * 0x1F80109x DMA1/MDECout - чтение данных из декодера макроблоков * 0x1F8010Ax DMA2/GPU - передача списков команд и данных изображений в [[GPU|графический процессор]] * 0x1F8010Bx DMA3/CDROM - передача данных с привода CD-ROM в память * 0x1F8010Cx DMA4/SPU - передача данных в звуковой процессор * 0x1F8010Dx DMA5/PIO - обмен данными через [[PIO|параллельный порт]] * 0x1F8010Ex DMA6/OTC - специальный программный канал, не связанный с физическим устройством; используется для быстрой очистки [[OT|таблицы упорядочивания]]. ===== Регистры DMA ===== * 0x1F8010F0 DPCR - контрольный регистр * 0x1F8010F4 DICR - регистр прерываний.