[an error occurred while processing this directive] [an error occurred while processing this directive]
Ответ: (+)
(«Телесистемы»: Конференция «Программируемые логические схемы и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено IgorK 29 апреля 2002 г. 21:12
В ответ на: Ответ: To IgorK... отправлено Шурик 29 апреля 2002 г. 10:48

Здесь нужно отделить дешифрацию, которая нужна для того, чтобы выставить DEVSEL# - в этом случае в дешифрацию не вовлекаются все младшие биты, принадлежащие к пространству карты. Например, если имеем пространство 256 байт, в дешифрации участвуют AD[31:8]. Пространство меньше двойного слова запросить нельзя, из этого нужно исходить даже если нет конф. пространства. Так что AD[1:0] в любом случае для I/O не дешифрируются (опять же, оговорюсь, речь о “подтверждении транзакции” – DEVSEL#). В этом случае всё едино – 340h, 341h, 342h, 343h. А вот уже 344h вам может и не принадлежать.
Другой вопрос – адресация байта внутри двойного слова. Обращаемся к таблице в спецификации (PCI2.2, Table 3-1, Byte Enables and AD[1:0] Encodings, стр. 28/48 в PDF). Я сам не смотрел, что происходит на остальных байтах при выполнении восьмиразрядного обращения по outportb – но какая разница, будет ли 0 или что-то другое... Но передаваемый байт будет на своем месте.
При чтении (так же, как и при записи) комп указывает вам, на каком месте должен быть байт, – тот же механизм AD[1:0] и BE[3:0]# - см. таблицу 3-1.

P.S. По поводу того, что адреса принадлежат ISA. Это не совсем верно. Транзакция возникает сначала на PCI, и если ее никто не подтвердит, то она переходит на ISA. У меня были PCI-карты с адресами 300-31F и 320-33F.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru