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

 
 
> Адреса 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
2 страниц V  < 1 2  
Start new topic
Ответов (15 - 27)
BigRed
сообщение Sep 18 2009, 02:59
Сообщение #16


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 16-12-05
Из: Екатеринбург
Пользователь №: 12 302



Скачайте и почитайте. Вроде бы все подробно описано.Прикрепленный файл  techhelp.zip ( 793.36 килобайт ) Кол-во скачиваний: 101
Go to the top of the page
 
+Quote Post
Demeny
сообщение Sep 21 2009, 09:13
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 648
Регистрация: 11-02-06
Из: Санкт-Петербург
Пользователь №: 14 237



Цитата(Amon Ra @ Sep 18 2009, 01:18) *
Ведь, я так понимаю, раз биос энумерейтит харды с любым сторонним контроллером, то они все все-таки по этим адресам (170....) располагают что то определенное, что биос может прочесть и понять что у компа теперь есть хард.

Никаких специальных идентификаторов, по которым BIOS может однозначно распознать legacy ISA-устройство, в пространстве регистров нет, в противном случае это было бы уже PnP-устройство. rolleyes.gif
Если смотреть конкретно IDE (ATA) интерфейс - то BIOS общается не с IDE-контроллером, а уже с самим IDE-диском, считывая из него, например, строку производителя, его геометрию и т. п. посредством чтения-записи в порты 170h-177h (1F0h-1F7h). Если диск не подключен - в регистре статуса будет "вечное BUSY" (занято), и по истечении таймаута BIOS "поймет", что устройство либо отсутсутвует, либо неисправно.
Думаю, что контроллер дисковода устроен очень похожим образом и представляет собой дешифратор нескольких адресов в пространстве IO. Реализовать его не составит большого труда. А вот реализовать имитацию настоящего дисковода будет очень непросто.


--------------------
Сделано в Китае. Упаковано в России.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 21 2009, 09:19
Сообщение #18


Гуру
******

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



Цитата(Demeny @ Sep 21 2009, 12:13) *
Думаю, что контроллер дисковода устроен очень похожим образом и представляет собой....

Отнюдь. Достаточно навороченное устройство.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Demeny
сообщение Sep 21 2009, 09:43
Сообщение #19


Знающий
****

Группа: Свой
Сообщений: 648
Регистрация: 11-02-06
Из: Санкт-Петербург
Пользователь №: 14 237



Цитата(zltigo @ Sep 21 2009, 13:19) *
Отнюдь. Достаточно навороченное устройство.

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


--------------------
Сделано в Китае. Упаковано в России.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 21 2009, 09:52
Сообщение #20


Гуру
******

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



Цитата(Demeny @ Sep 21 2009, 12:43) *
Помнится мне, старые ISA-мультикарты (в составе которых был и флоппи-контроллер) содержали всего несколько микросхем стандартной логики...

Совершеннейшая неправда - они, как правило, содержали вполне навороченый NEC µPD765 контроллер.


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


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Начать можете с книжки Роберта Журдена
"Справочник программиста на персональном компьютере фирмы IBM"

Там конечно про 8086/286 но основы работы биоса и девайсов не сильно менялись

Например здесь: http://lib.guru.ua/TECHBOOKS/JURDAIN/jourdain.txt
Go to the top of the page
 
+Quote Post
SSerge
сообщение Sep 21 2009, 10:21
Сообщение #22


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

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Цитата(Demeny @ Sep 21 2009, 15:43) *
Помнится мне, старые ISA-мультикарты (в составе которых был и флоппи-контроллер) содержали всего несколько микросхем стандартной логики, обеспечивающей переключение направления шины данных и дешифрацию адресов.

А ещё раньше контроллер MFM-винта состоял из примерно полусотни микросхем, плата еле помещалась в корпус. Потом весь этот контроллер переехал внутрь винчестера, оставив на плате только дешифратор адреса.
Но воспроизводить его или другое устройство большой необходимости нет. Вполне можно организовать загрузку и со своего устройства.
Так работает, например, загрузка с сетевых интерфейсов. Они имеют на борту ПЗУ, там сидит программа, реализующая ввод-вывод и прочее управление устройством.
Посмотрите в techhelp темы ROM-Scan, POST, Int13h, Int19h.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
MaslovVG
сообщение Sep 21 2009, 11:10
Сообщение #23


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

Группа: Свой
Сообщений: 1 210
Регистрация: 24-01-05
Из: Россия Волгодонск
Пользователь №: 2 134



Цитата(Demeny @ Sep 21 2009, 13:43) *
Помнится мне, старые ISA-мультикарты (в составе которых был и флоппи-контроллер) содержали всего несколько микросхем стандартной логики, обеспечивающей переключение направления шины данных и дешифрацию адресов.
Другое дело контроллер, встроенный в сам дисковод, который управляет двигателями и головкой - это действительно навороченное устройство. Но автору и не требуется его воспроизводить. Достаточно декодировать команды, поступающие от хоста, и возвращать данные, считанные из запрошенного сектора.

Непосредственно сам НГМД это привод вращения диска, привод позиционирования головки считывания/записи, датчик нулевой дорожки, датчик начала дорожки и усилитель считывания записи. Ну еще небольшая схемка обеспечивающая соединение четырех устройств на одной шине с контроллером.
Считываемые магнитной головкой импульсы в последовательном виде без декодирования идут в контроллер дисковвода.
Контроллер дисковвода при считываии и записи в потоке данных обнаруживает магнитную метку (заголовок сектора) содежащую пакет данных о номере дорожки, номере сектора контрольную сумму. После обнаружения необходимого пакета, записывает сектор, посылая пакет импулсов на дисковвод, или считывает сектор проверяя контрольную сумму сектора на ходу . Подробности по программированию процесса чтения записи читать

Например здесь: http://lib.guru.ua/TECHBOOKS/JURDAIN/jourdain.txt
Мне приходилось эмулировать дисковвод правда в 8'. Наилучшим решением оказалось замена дисковвода вместе с контроллером
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Sep 21 2009, 12:07
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 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
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 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
SasaVitebsk
сообщение Sep 22 2009, 10:33
Сообщение #26


Гуру
******

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



Ну в целом я согласен с Вами. Но найдите прокол в моём подходе. Посмотрите например Creative Labs AWE32. Думаю этот производитель получал документацию от IBM.
Go to the top of the page
 
+Quote Post
Demeny
сообщение Sep 22 2009, 14:32
Сообщение #27


Знающий
****

Группа: Свой
Сообщений: 648
Регистрация: 11-02-06
Из: Санкт-Петербург
Пользователь №: 14 237



Цитата(SasaVitebsk @ Sep 22 2009, 14:33) *
Ну в целом я согласен с Вами. Но найдите прокол в моём подходе. Посмотрите например Creative Labs AWE32. Думаю этот производитель получал документацию от IBM.

Прокол заключается в том, что мост PCI-ISA (а именно на таких мостах построены шины ISA в современных писюках, в частности, в индустриальных PC популярен ITE8888 ...) ни сном ни духом не ведает, какие там устройства висят на ISA и какие адреса они используют, поэтому он (мост) как-то должен принимать решение, транслировать I/O операцию на ISA шину, или же оставить её PCI-устройствам. Существует две политики транслирования - позитивное и субтрактивное декодирование адреса.
1) В случае позитивного декодирования - на ISA-шину транслируются I/O операции в строго определённых диапазонах, именуемых окнами. Эти диапазоны прописываются BIOS-ом в регистрах PCI-ISA моста.
Таким образом, чтобы запустить ISA-карту с нестандартным расположением I/O пространства на конкретном PC, требуется, чтобы BIOS Setup позволял настроить эти окна в нужном диапазоне (что позволяют далеко не все "мамки"), либо самостоятельно писать патч (драйвер) под конкретную "мамку".
2) Случай субтрактивного декодирования, на первый взгляд, решает проблему - на ISA-шину отправляются все транзакции I/O, которые не были востребованы на PCI в течение 3 тактов PCI-шины. И в большинстве случаев это действительно работает. Только вот гарантии, что это будет работать всегда нет никакой - ибо теперь уже служба PnP не знает, какие адреса можно выделять PCI-устройствам, а какие заняты ISA-девайсом. И вполне может оказаться так, что PnP выделит PCI-устройству именно тот диапазон адресов, который использует Ваша ISA-карта. При этом мост PCI-ISA, настроенный на субтрактивное декодирование, уже не будет транслировать I/O на ISA-шину в нужном диапазоне, занятом PCI-устройством, и опять же ISA-устройство не будет работать.
==============================
Вот чтобы таких казусов не происходило - договорились о "железной" границе в пространстве I/O (как наиболее дефицитном ресурсе) - до 3FF на ISA, далее всё в распоряжение PCI.


--------------------
Сделано в Китае. Упаковано в России.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Sep 22 2009, 15:28
Сообщение #28


Гуру
******

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



1) Извиняюсь за то, что я невнимательно ознакомился с самой веткой. Просмотрел её бегло. Решил, что речь идёт о старых компах.
2) Не влазил в схематехнику PCI. Я думал, что существует лишь один способ обращения. А именно запрос-нет ответа-на ISA.
3) Я, в своё время знакомился со стоимостями чипов реализующих прямой доступ к PCI шине. Конечно дорого, но, по-моему это всё равно не повод разрабатывать и применять устаревшую шину. То есть мне кажется, что для новых устройств всётаки надо применять PCI шину тем или иным способом. Либо использовать один из доступных интерфейсов USB/IE1934/Ethernet.

Извиняюсь, что ввёл в заблуждение или отвлёк внимание. laughing.gif
Go to the top of the page
 
+Quote Post

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

 


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


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