Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[44]

7.4. DMA

DMA (Direct Memory Access - "прямой доступ к памяти", или ПДП). Это способ (механизм, технология) обмена данными между внешним устройством и памятью без участия процессора, что может заметно снизить нагрузку на процессор и повысить общую производительность системы. Необходимо сказать, что "прямой доступ к памяти" существовал в электронной вычислительной технике задолго до появления первых ПК. Он осуществляется через DMA-контроллер -специальный чип, получающий первоначальную команду на перенос данных от центрального процессора. Каналы DMA предназначены для передачи массивов информации по 8-или 16-битным шинам одновременно. В отличие от портов ввода/вывода каналы DMA непосредственно не сообщаются с центральным процессором, они работают напрямую с системной памятью. Всего каналов DMA - 8 (от 0 до 7). Первоначально DMA-контроллер задумывался, прежде всего, для разгрузки CPU от тривиальных задач, например, контроля флоппи- дисководов или жестких дисков (на PC/XT DMA-каналов было 4). Начиная с компьютеров PC/AT передача данных от жестких дисков и к ним стала осуществляться уже не через каналы DMA, а через программируемый ввод/вывод.

Начиная с Intel 80386, процессоры располагают собственным устройством управления памятью (MMU - Memory Management Unit), которое пересчитывает логические адреса в физические. DMA-контроллеры "ничего не знают" о разрядности адресов. Поэтому, чтобы иметь возможность применять DMA вместе с управлением виртуальной памятью, нужно зарезервировать в качестве DMA-буфера какую-то область памяти в первом мегабайте адресного пространства, где логические и физические адреса совпадают. В эту

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

Основными "потребителями" каналов DMA являются звуковые карты, CD-ROM-дисководы более ранних выпусков. В обоих случаях скорость передачи не превышает 500 Кб/с. Максимально возможная скорость передачи данных по DMA-каналам (около 2 Мб/с) значительно перекрывает потребности 8-битной звуковой карты. Если же необходимо осуществить быстрый обмен информацией, то в этом случае DMA не используется - процессор берет на себя управление процессом переноса информации, перекрывая все допустимые способности DMA-каналов. Еще одно замечание. Возможность использования одного IRQ несколькими картами расширения требует поддержки со стороны драйверов и реализуется на уровне конкретного программного продукта. Использование разными картами (или устройствами) одного канала DMA в принципе возможно, но связано со множеством проблем и поэтому не рекомендуется. Простейший пример! При одновременном использовании DMA-канала звуковой картой и портом принтера может возникнуть треск в динамиках или "зависание" воспроизведения звука.

Небольшое уточнение. Цикл DMA начинается с запроса DMA от исполнителя, желающего произвести обмен. После освобождения шины текущим задатчиком (например, процессором) контроллер DMA формирует соответствующий сигнал - "DACK" (DMA Acknowledge - подтверждение ПДП), говорящий о предоставлении канала DMA запросившему его устройству.


канналл

Разрядность

Назначение

свободен (ранее использовался в PC/XT для обновления памяти

обычно задействуется под звуковые или сетевые карты

контроллер floppy-дисководов

свободен (в PC/XT обеспечивал передачу данных от HD), иногда используется EPP-функцией параллельного порта

каскадирование для 8-разрядного контроллера (координация между "старым" и "новым" чипами DMA)

свободен (часто задействуется под 16-разрядные звуковые карты)

свободен

свободен

DMA Clock

эта опция позволяет установить скорость DMA-каналов, равной полной или половинной системной тактовой частоте. Гравда, слишком высокая тактовая частота может представлять опасность либо оказаться завышенной для некоторых микросхем. Опция может носить название "DMA Clock Selection" или "DMA Clock Speed". Значения параметров могли иметь следующий вид: "BUSCLK/2", "BUSCLK" или

"ISA/2", "ISA".

Была встречена опция и с названием "Fast DMA Only". Только для нее высокая скорость передачи по DMA-каналам

реализовывалась через "Enabled". Все перечисленные опции в таком виде уже не встречаются. DMA Line Buffer Mode

-использование этой опции позволяет DMA-данным накапливаться в буфере с тем, чтобы не прерывать работу PCI-шины. Когда установлено значение "Standard", линейный буфер будет применяться в одиночном режиме передачи. "Enhanced"-установка позволяет оперировать с данными в 8-байтном режиме, что естественно более эффективно. DMA n Assigned to

-(канал DMA с номером n назначен на...). Опция становится доступной пользователю при "ручном" контроле над ресурсами. Согласно этой опции каждому каналу DMA системы может быть назначен один из следующих типов устройств: "Legacy ISA" (классические ISA-карты). Это стандартные карты для ISA-шины, такие как модемы или звуковые карты, без поддержки "Plug&Play". Эти карты требуют назначения каналов DMA в соответствии с документацией на них, "PCI/ISA PnP" (устройства для шины PCI или устройства для шины ISA с поддержкой Plug&Play).

Данной опции абсолютно идентична "DMA Channel n" с параметрами "PnP" и "ISA/EISA". Естественно, что это не одна опция, а небольшое подменю с возможностью установки типа устройства по 0, 1, 2, 3, 5, 6 и 7-му каналам DMA. Опция "DMA-n Type" встречалась и раньше, применяется и в более современных системах. Поэтому в качестве параметров собран, пожалуй, весь возможный ряд значений:

"Normal ISA", "PC/PCI", "Distributed", "LPC DMA".

Спецификация LPC (Low Pin Count) была разработана "Intel" еще в 1997 г. и начала использоваться в системных наборах 8xx, первым из которых был 810-й. Эта шина была призвана заменить устаревшую шину ISA в тех системах, где без нее пока еще нельзя обойтись. В частности, к ней можно подключать контроллеры флоппи-дисководов, параллельные и последовательные порты, контроллер клавиатуры и т. п. То


есть речь идет о всей низкоскоростной периферии, хотя тактовая частота интерфейсной шины составляет ни много, ни мало - 66 МГц. DMA n Used By ISA

(канал DMA с номером n используется на шине ISA). Параметр может принимать значения:

"No/ICU" (нет/конфигурационная утилита для ISA). Если установлено это значение, то BIOS может распоряжаться этим каналом DMA по своему усмотрению. Для DOS настройка параметров в этом случае выполняется с помощью программы ICU (ISA Configuration Utility) от "Intel", которая ранее изредка прилагалась к материнским платам. Она запрашивала у пользователя необходимые данные и загружала их при последующем пуске ПК,

"Yes" (да). Означает принудительное освобождение канала DMA для какой-либо карты на шине ISA, не поддерживающей технологию "Plug&Play". Рекомендуется всегда указывать "Yes" для таких карт и нужных им каналов DMA, так как в противном случае BIOS может назначить канал, жестко используемый какой-либо картой на ISA, другой карте, что может вызвать даже прекращение нормальной работы компьютера. DMA Wait States

- этой опцией устанавливается количество тактов ожидания перед началом передачи данных по DMA-каналам. Уменьшение значения повышает быстродействие, но у пользователя остается резерв для возврата назад при возникновении сбойных ситуаций. В некоторых случаях версия BIOS может предоставить возможность такой регулировки отдельно для 8- и 16-битных каналов: "8-Bit DMA Cycle Wait States", "16-Bit DMA Cycle Wait States".

При этом предлагается следующий ряд значений: 1T, 2T, 3T,

Extended DMA Registers

-(расширенные DMA-регистры). В пределах AT-стандарта DMA оперирует в пределах 16 МБ адресуемой памяти. Если установлено "Enabled", DMA охватывает все 4 ГБ адресуемой памяти 32-битного процессора.

!!! При использовании некоторых системных плат с процессорами 386 и 486 адресация памяти свыше 16 МБ может вызвать сложности, связанные с контроллером прямого доступа к памяти. Если в разъеме шины ISA установлен адаптер, который использует канал DMA, то при установке памяти объемом более 16 МБ могут возникнуть проблемы, поскольку архитектура шины ISA позволяет организовать канал DMA только в пределах первых 16 МБ.

PCI/PNP ISA DMA Resource Exclusion

-в данном случае это специализированное подменю "Phoenix BIOS", с помощью которого можно индивидуально блокировать отдельные DMA-каналы и предоставить их стандартным ISA-картам (т.е. не Plug&Play картам). Само же подменю имеет следующий вид:

DMA 0: [Available] DMA 1: [Available] DMA 2: [Available] DMA 3: [Available] DMA 5: [Reserved] DMA 6: [Available] DMA 7: [Available]

Параметр "Available" означает, что DMA-канал может быть использован PCI- и P&P ISA-картами. Значение "Reserved" означает, что DMA-канал не может быть использован этими же устройствами. TypeF DMA Buffer Control1(2)

-очень интересная опция "AMI BIOS". Обычный цикл прямого доступа к памяти занимает 8 циклов шины, а в данном режиме - только 3 (что, естественно, намного ускоряет доступ). Однако необходимо согласовать этот параметр с



[стр.Начало] [стр.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] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51] [стр.52] [стр.53] [стр.54] [стр.55] [стр.56] [стр.57] [стр.58] [стр.59] [стр.60] [стр.61] [стр.62] [стр.63]