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

 
 
> Адреса 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
Ответов
Amon Ra
сообщение Sep 17 2009, 21:18
Сообщение #2





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



Под "в стандартном формате" я имел в виду следующее - что хотя бы часть из регистров должна иметь определенную стандартом функцию - грубо говоря - есть ли стандарт, что если я делаю контроллер харда, то он не только должен на адресе 170 иметь какие то регистры, но регистры еще и должны быть именно такие и именно в том порядке, какой описан в стандарте(читай - регистровый интерфейс у всех контроллеров хардов должен быть одинаков)?

Ну я как бы задачку поставил примерно так - собрать устройство на ISA-карточке, которое биос компа (старого, обычного 368) воспримет как контроллер дисковода с собственно дисководом.
Либо - наверное все же лучше - как контроллер ИДЕ-харда с подвешенным на него хардом.

Не подскажете направление поисков? Стандарт какой нибудь?
Ведь, я так понимаю, раз биос энумерейтит харды с любым сторонним контроллером, то они все все-таки по этим адресам (170....) располагают что то определенное, что биос может прочесть и понять что у компа теперь есть хард.

Проблема в том что это все старое, сейчас контроллеры хардов встроенные, а если внешние то PCI....

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

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

Сообщение отредактировал Amon Ra - Sep 17 2009, 21:21
Go to the top of the page
 
+Quote Post
Demeny
сообщение Sep 21 2009, 09:13
Сообщение #3


Знающий
****

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


Гуру
******

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


Знающий
****

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



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

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


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


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

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

Сообщений в этой теме
- Amon Ra   Адреса ISA шины   Sep 17 2009, 13:36
- - zltigo   Цитата(Amon Ra @ Sep 17 2009, 15:36) Подс...   Sep 17 2009, 16:50
- - vvs157   Пространство ввода-вывода с архитектуре x86 всегда...   Sep 17 2009, 16:54
|- - zltigo   Цитата(vvs157 @ Sep 17 2009, 18:54) но ес...   Sep 17 2009, 17:05
|- - vvs157   Цитата(zltigo @ Sep 17 2009, 21:05) Если ...   Sep 17 2009, 21:00
|- - zltigo   Цитата(vvs157 @ Sep 17 2009, 22:52) Да не...   Sep 17 2009, 21:01
|- - SasaVitebsk   Цитата(zltigo @ Sep 18 2009, 00:01) Повид...   Sep 21 2009, 12:07
|- - zltigo   Цитата(SasaVitebsk @ Sep 21 2009, 15:07) ...   Sep 21 2009, 13:39
- - 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
|- - zltigo   Цитата(Demeny @ Sep 21 2009, 12:43) Помни...   Sep 21 2009, 09:52
|- - 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 Текстовая версия Сейчас: 22nd July 2025 - 20:47
Рейтинг@Mail.ru


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