реклама на сайте
подробности

 
 
> Адреса ISA шины, Помогите разобраться с диапазонами адресов
Amon Ra
сообщение Sep 17 2009, 13:36
Сообщение #1





Группа: Участник
Сообщений: 12
Регистрация: 26-04-08
Пользователь №: 37 110



Добрый день.
Возник такой вопрос по этой старой шине, долго гуглил но что то не доконца разобрался.

Возьмем для определенности 8битную ее версию и компьютер под управлением 80368. На плату внешнего устройства заведены 20 линий адреса + сигналы типа Мем_рид и ИО_рид. Как я понимаю, на все слоты (предположим, на материнке их 5) выведены одни и те же линии шины, то есть мы получаем как бы 2^20 = 1 мегабайт пространства, выделенного на все иса-устройства.
Подскажите, во-первых - этот мег памяти - где он на карте памяти? Ну то есть, мы же можем туда завести А0-А19 от процессора, а можем, допустим, А12-А31 - то есть в первом случае это будет первый мегабайт всех адресов памяти компа, во втором - последний.
Второй вопрос - какие есть ограничения на декод адреса, кроме как "чтоб не конфликтовали".
Я почему-то много где видел.. что-то вроде "декодируйте А0-А9", то есть 10 бит. Я так понимаю, это сказано в отношении пространства ИО, все таки, но не понятно почему такое ограничение, и что делать с остальными линиями.

Может, я какой то очень важный момент проглядел, но вроде бы пространство ИО в 386м уже 16-битное, то есть я могу сделать
mov ax, FFFF
in ax, dx
Пусть из него какая то часть занята устройствами на мат. плате типа сис таймера - но FFFF-3FF это ж целых 64512 портов ИО, где они?

И последний пока вопрос - больше практический - ИСА же никак не сообщает об устройствах системе, как же биос узнает какие установлены флопики и харды, чтобы загрузиться с них?

Заранее благодарен, надеюсь поможете пролить свет на архитектуру.
Вообще, задумал небольшой проект с целью самообразования и заодно в рамках курса в универе - собрать ИСА контроллер для флешки (SD-карточки).
Предполагаю сделать его эмулятором флопика или харда, чтобы старенький комп просто решил что в него воткнули новый хард и спокойно с него загрузился.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
vvs157
сообщение Sep 17 2009, 16:54
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Пространство ввода-вывода с архитектуре x86 всегда было 16-ти битное. Пространство памяти, доступное из длинного ISA слота - 20 бит (под 8086/8088 проц), вметсте с добавочным коротким слотом - 24 бит (сделано под 286 проц). Причем в свое время из-за экономии на дешифраторе адреса при обращении к устройствам ввода-вывода многие производители ограничивались 10-ю битами. В принципе вы можете декодировать полный 16-ти битный I/O адрес, но если он у вас >1024, то никто не гарантирует конфликта с какой-нибудь ISA карточкой.
Обычный ISA BIOS про ISA устройства знать ничего не должен, конфигурация ресурсов исключительно "руками". В последсвии была создана спецификация PNP под ISA, когда BIOS раздавал ресурсы автоматически. Однако в силу кривизны далеко не всегда раздача ресурсов была без конфликтов.
Флопы, харды и пр. вы в БИОСе прописываете сами. Что прописали, тот и опознается в системе.
Флоп-эмулятор на флешке достаточно нетривиален, так как привод флопика мозгов не имеет никаких, там только жесткая логика образца 80-х. Обработка идет флоп-контроллером на материнке, то есть ваш эмуль должен изображать специфический последовательный поток с флопа и отрабатывать команды "шаг вперед" и "шаг назад"
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 17 2009, 17:05
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(vvs157 @ Sep 17 2009, 18:54) *
но если он у вас >1024, то никто не гарантирует конфликта с какой-нибудь ISA карточкой.

Если он больше 1024, то для начала приличная гарантия, что до такой карточки вообще не достучитесь, ибо эти порты НЕ ДОЛЖНЫ ВООБЩЕ отображаться на ISA


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
vvs157
сообщение Sep 17 2009, 21:00
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Цитата(zltigo @ Sep 17 2009, 21:05) *
Если он больше 1024, то для начала приличная гарантия, что до такой карточки вообще не достучитесь, ибо эти порты НЕ ДОЛЖНЫ ВООБЩЕ отображаться на ISA
Да нет, отображаются. У меня была ISA карточка LabMaster от Scientific Solutions (1986 года выпуска, когда еще не было моды на экономию микросхем PAL в дешифраторе адреса) у которой все адреса были >700H и все работало, правда не со всеми доп. карточками

Цитата(Amon Ra @ Sep 17 2009, 21:19) *
Объясните мне механизм этого "НЕ ДОЛЖНЫ" - я просто не совсем понимаю - если на плату заведены 20 линий адреса, и я вызываю чтение из порта 65535 - на шине адреса выставляется 0000 FFFF, проц дергает MEM/IO пин, показывая что идет обращение к порту - и что дальше? Адрес на шине стоит, пин доступа к порту "горит" - каким образом на ISA не пустят данные?
На вашей ISA плате обязательно должен быть адресный дешифратор, который выдает сигнал разрешения обращения к вашей плате, кога на шине выставлен адрес из ее диапазона. Если на этот дешифратор по-простому не завести старшие 6 бит шины I/O, то такая плата будет откликаться на чужие адреса провоцируя конфликт на шине.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 17 2009, 21:01
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(vvs157 @ Sep 17 2009, 22:52) *
Да нет, отображаются....

Повидал железа не мало. Адреса больше, чем 0x3FF только на современных индустриалках с кривыми дешевыми, практически noname мостами типа 8888 и иже с ним. Посему не верю совсем. Дело даже не в вере а в том, что даже есть кривая мать и Ваша карточка, то любая нормальная ISA карточка дешифрирущая 10bit засадит Вашу гипотетическую 0x7xx карточку напрочь.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Sep 21 2009, 12:07
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(zltigo @ Sep 18 2009, 00:01) *
Повидал железа не мало. Адреса больше, чем 0x3FF только на современных индустриалках с кривыми дешевыми, практически noname мостами типа 8888 и иже с ним. Посему не верю совсем. Дело даже не в вере а в том, что даже есть кривая мать и Ваша карточка, то любая нормальная ISA карточка дешифрирущая 10bit засадит Вашу гипотетическую 0x7xx карточку напрочь.

Ну не совсем.
Существует узаконенный способ выхода за пределы 3ff. Так же как и узаконенный выход за пределы 1Мб.
Я им пользовался и всё всегда прекрассно работало.

1) Берёте стандартный адрес (например 2f8-2ff). Используете все зеркальные адреса (например 6f8-6ff/ef8-eff).
2) Чтобы вы нессылались на мою самодеятельность - так реализованы к примеру большинство крутых звуковых карт
smile.gif
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 21 2009, 13:39
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(SasaVitebsk @ Sep 21 2009, 15:07) *
Существует узаконенный способ выхода ....

Я только имею IBM-овскую документацию которая раздавалась в качестве рефренсной для производителей PC. Этого мне совершенно достаточно, дабы не строить предположения.
Эти требования в основном соблюдаются и сейчас, по крайней мере с изделием, которое сделали на адресах 0x1XXX и со словами "а у нас работает" пытались раздать на объекты я сталкивался - не заработало НИГДЕ, кроме индустиальной писишки на которой народ это сваял - в ней просто мост так был запрограммирован. Для еще одной, я патч сделал, дабы эту область открыть. Потом авторы переделали.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Amon Ra   Адреса ISA шины   Sep 17 2009, 13:36
- - zltigo   Цитата(Amon Ra @ Sep 17 2009, 15:36) Подс...   Sep 17 2009, 16:50
- - Amon Ra   >На PCI, вестимо.... > Ну и вообще-то PnP на...   Sep 17 2009, 17:19
|- - zltigo   Цитата(Amon Ra @ Sep 17 2009, 19:19) Мы о...   Sep 17 2009, 17:23
|- - Amon Ra   Цитата(zltigo @ Sep 17 2009, 21:23) Мы го...   Sep 17 2009, 17:31
|- - zltigo   Цитата(Amon Ra @ Sep 17 2009, 19:31) Ну х...   Sep 17 2009, 18:52
- - Amon Ra   Ну спасибо, с этим более-менее разобрался. Тогда о...   Sep 17 2009, 20:11
|- - zltigo   Цитата(Amon Ra @ Sep 17 2009, 22:11) Так ...   Sep 17 2009, 20:28
|- - rezident   Цитата(Amon Ra @ Sep 18 2009, 02:11) Пото...   Sep 17 2009, 20:45
|- - vvs157   Цитата(Amon Ra @ Sep 18 2009, 00:11) Пото...   Sep 17 2009, 21:08
- - Amon Ra   Под "в стандартном формате" я имел в вид...   Sep 17 2009, 21:18
|- - Demeny   Цитата(Amon Ra @ Sep 18 2009, 01:18) Ведь...   Sep 21 2009, 09:13
|- - zltigo   Цитата(Demeny @ Sep 21 2009, 12:13) Думаю...   Sep 21 2009, 09:19
|- - Demeny   Цитата(zltigo @ Sep 21 2009, 13:19) Отнюд...   Sep 21 2009, 09:43
|- - zltigo   Цитата(Demeny @ Sep 21 2009, 12:43) Помни...   Sep 21 2009, 09:52
|- - SSerge   Цитата(Demeny @ Sep 21 2009, 15:43) Помни...   Sep 21 2009, 10:21
|- - MaslovVG   Цитата(Demeny @ Sep 21 2009, 13:43) Помни...   Sep 21 2009, 11:10
- - BigRed   Скачайте и почитайте. Вроде бы все подробно описан...   Sep 18 2009, 02:59
- - singlskv   Начать можете с книжки Роберта Журдена "Справ...   Sep 21 2009, 09:56
- - SasaVitebsk   Ну в целом я согласен с Вами. Но найдите прокол в ...   Sep 22 2009, 10:33
|- - Demeny   Цитата(SasaVitebsk @ Sep 22 2009, 14:33) ...   Sep 22 2009, 14:32
- - SasaVitebsk   1) Извиняюсь за то, что я невнимательно ознакомилс...   Sep 22 2009, 15:28


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 05:53
Рейтинг@Mail.ru


Страница сгенерированна за 0.01463 секунд с 7
ELECTRONIX ©2004-2016