За каждым устройством закреплена определенная группа адресов, на которые оно должно отзываться. Обнаружив свой адрес на магистрали, устройство, в зависимости от заданного процессором направления передачи данных, либо считывает с магистрали поступившие данные, либо, наоборот, устанавливает имеющиеся в нем данные на магистраль.
Из рис. 1.13 видно, что все устройства компьютера можно разбить на две категории.
К первой группе относятся устройства, регистры которых не отображены на адресное пространство оперативной памяти, эти устройства имеют собственную память, поэтому адреса оперативной памяти и памяти этой группы устройств разнесены и не перекрываются.
Ко второй группе относятся устройства, регистры которых отображены на адресное пространство оперативной памяти.
1. Представителем первой категории является видеобуфер, входящий в видеосистему компьютера.
Устройство управления видеобуфером настроено на две группы адресов, которые как бы продолжают адреса, относящиеся к оперативной памяти (рис.5.1.а). Действительно, адрес последнего байта оперативной памяти составляет 9FFFFh, а уже следующий адрес A0000h является адресом первого байта графического видеобуфера. Графический видеобуфер занимает 64 Кбайт адресного пространства до адреса AFFFFh. Текстовый видеобуфер расположен на некотором расстоянии от графического и занимает 32 Кбайт, начиная с адреса B8000h.
|
|
Таким образом, адреса оперативной памяти и памяти видеобуфера разнесены и не перекрываются.
2. Ко второй категории устройств можно отнести все устройства, адреса которых перекрываются с адресами оперативной памяти (рис.5.1.б). Например, за контроллером клавиатуры закреплены два адреса: 60h и 61h. По адресу 60h выполняется чтение кода нажатой клавиши, а адрес 61h используется для управления работой контроллера. И тот, и другой адрес имеются в оперативной памяти и, таким образом, возникает проблема распознавания устройства, к которому происходит обращение. Аналогичная ситуация наблюдается и со многими другими устройствами компьютера.