· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› Что такое - шина А20?

Посл.отвђт Сообщенiе


Дата: Июл 9, 2003 20:08:00 · Поправил: Безпощадный даос

Что такое - шина А20, и с чем ее едят ???
Поясните чайнику !!!!!!!!!!!!


Дата: Июл 9, 2003 21:43:53

У компа к процу есть две шины - шина данных и шина адреса. Термин "шина" применительно к A20 некорректен. А20 - это, всего лишь, разьем на шине данных, с которым связан забавный глюк, которому мы обязаны защищенным режимом и кучей приятных частностей в реальном. Более подробно - возьми Михаила Гука.


Дата: Июл 10, 2003 18:30:34

буду конкретней ... если ты переключишся в защищенный режим и не "откроеш эту линию"( хм ... - или "не закроеш" :), то попытка записи по физическому адресу, предположим 04010002, приведет реально к записи по адресу 00000002. Т.е. адресные линии выше 20-той игнорируются. Эта линия открывается установкой не помню какого бита в порту 92h ...

... - хотя я могу и наврать ;) ...


Дата: Июл 11, 2003 14:44:06

Попытаюсь быт еще поконкретнее.
У первых процессоров I8086/88 и их клонов, для адресации памяти было(и осталось :-)) всего 20 ножек.
Имена от A0 до А19.

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

При выпуске процессора i80286, изменили корпус и добавили еще 4 ножки, A20..A23.
И появился защищенный режим.
Для совместимости, новый процессор работал в реальном режиме, так же как старый.
И должен был адресовать память только 20 ножками.
Но по не понятным причинам, то ли не доглядели, то ли специально оставили разработчики за задержку зарплаты.
Перенос из старшего разряда(А19) попадал в А20 и заворота адреса не происходило.

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

То есть по включению питания, линия А20(шиной можно называть не менее двух проводов) принудительно сброшена в "0" при любых обращениях к памяти.

Для доступа к 64K выше 1M памяти из реального режима
использовалось включение A20 и переключение страниц
для доступа еще выше.

В этом случае ошибку(не полное соответсвие i8086) можно гордо назвать специальной возможность, фичей(feature) или гениальным предвидением инженеров Intel что стоимость одного мегабайта оперативной памяти упадет ниже $1000
и поднимать цены на процессоры :-)

Так как контролер клавиатуры мог быть занят, то приходилось ожидать переключения долго.
Для ускорения этого процесса придумали быстрое переключение, мимо контроллера.
(Но старые программы об этом не знали :-))
Не соответствующее стандартному(придуманному IBM) переключение подвигло создателей BIOS на новый пункт в SETUP BIOS.
Для новой совместимости с исправленнием старой не совместимости( как закрутил ;-)) в BIOS SETUP ввели пункт разрешить/запретить быстрое переключение.

Для углубленного разжевывания вопроса, пристегну текст из
исходника BIOS, для Intel 430TX.
Если MiniBB 1.6 его не съест.

Процедуры называются A20_OFF и A20_ON.

Теперь резюме:

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

В сети есть примеры на эту тему.

Если моя легенда вам не понравилась, прошу слюной не брызжать.

Не подобает воинам Дзена, не верить на слово.
В нашей местности такие легенды рассказывают.




782785095__atorgs.rar


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.053