Портал освітньо-інформаційних послуг «Студентська консультація»

  
Телефон +3 8(066) 185-39-18
Телефон +3 8(093) 202-63-01
 (093) 202-63-01
 studscon@gmail.com
 facebook.com/studcons

<script>

  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){

  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),

  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)

  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

 

  ga('create', 'UA-53007750-1', 'auto');

  ga('send', 'pageview');

 

</script>

Дослідження роботи і призначення шини РСІ, режимів роботи, протоколів обміну та сфери застосування

Тип роботи: 
Лабораторна робота
К-сть сторінок: 
24
Мова: 
Українська
Оцінка: 

необхідно знайти конкретний пристрій, то пошук виконується по кодах пристрою і його виготівника; якщо потрібно знайти всі пристрої певного типу, то використовується код класу. Після того, як шуканий пристрій знайдений, за допомогою регістрів базових адрес можна визначити виділені йому області в адресному просторі пам'яті і просторі вводу-виводу. Найбільший інтерес, проте, представляє регістр Interrupt Line, що дозволяє з'ясувати, яка лінія IRQ була виділена пристрою процедурою PnP BIOS в процесі початкового завантаження комп'ютера В деяких випадках це єдиний «документований спосіб» визначення номера переривання.

Функції PCI BIOS
Оскільки конфігураційний простір не має «прив'язки» до якої-небудь певної області адресного простору комп'ютера, доступ до нього зв'язаний з певними труднощами. З метою спрощення роботи з пристроями PCI в BIOS персональних комп'ютерів були внесені спеціальні додаткові функції. Доступ до функцій PCI BIOS при 16-розрядному виклику виконується через функцію Blh переривання lAh. Для 32-розрядних викликів використовується «32-розрядна точка входу захищеного режиму».
Функції PCI BIOS використовують регістри процесора для передачі аргументів і отримання результатів. При успішному виконанні функції флаг перенесення CF скидається в 0, у разі невдачі — приймає значення 1.
Переривання 1Ah, функція B101h: перевірити присутність PCI BIOS в системі
Для перевірки присутності PCI BIOS в системі по перериванню 1Ah викликається функція Bl0lh.
Перед викликом переривання lAh вимагається занести в регістр АХ код 0Bl0lh. Після виконання функції в регістрах будуть розміщені наступні значення:
в EDX — сигнатура PCI (P — в DL, С — в DH і т. д., в старшому байті — пропуск);
в АН — ознака присутності (0 — BIOS присутній, якщо в EDX правильна сигнатура, будь-яке інше значення — PCI BIOS відсутній);
в AL — апаратний механізм;
в ВН — номер версії інтерфейсу PCI (в двійково-десятковому коді);
в BL — підномер версії інтерфейсу (в двійково-десятковому коді);
в CL — номер останньої шини PCI в системі (відлік номерів починається з нуля).
Флаг CF також вказуватиме на присутність PCI BIOS (0 — BIOS присутній, 1 — відсутній).
 
Рис. 4. Формат байта апаратного механізму шини PCI
На рис. 4 показаний формат байта-описувача апаратного механізму шини: інформація, повернена в регістрі AL, показує, які механізми функціонування шини PCI реалізовані в даній апаратурі. Специфікація PCI визначає два апаратні механізми для доступу до конфігураційного простору. Механізм #1 підтримується, якщо встановлений біт 0, механізм #2 — якщо встановлений біт 1. Специфікація PCI визначає також механізми генерації «спеціальних циклів». Біт 4 встановлений, якщо апаратура може виконувати генерацію спеціальних циклів на основі механізму #1, біт 5 встановлений, якщо апаратура може виконувати генерацію спеціальних циклів на основі механізму #2. Біти 2, 3, 6 і 7 зарезервовані і повинні бути рівний нулю.
Переривання 1Ah, функція B102h: знайти пристрій PCI заданого типу
Для пошуку пристрою PCI заданого типу по перериванню lAh викликається функція B102h.
Перед викликом переривання вимагається занести в регістри наступні значення:
в АХ - код 0B102h;
в СХ — ідентифікатор пристрою (число від 0 до 65535);
в DX — ідентифікатор виробника (від 0 до 65534);
в SI — індекс (порядковий номер) пристрою заданого типу (від 0 до N).
Після виконання функції в регістрах будуть розміщені наступні значення:
в ВН — номер шини, до якої підключений пристрій (від 0 до 255);
в BL — номер пристрою в старших п'яти бітах і номер функції в трьох молодший;
в АН — код повернення (може приймати значення SUCCESFUL, BAD_VENDOR_ID і DEVICE_NOT_FOUND);
в CF — статус повернення (0 — функція успішно виконана, 1 — помилка).
Якщо необхідно знайти всі пристрої даного типу, то в SI заноситься 0. Після кожного виконання функції значення SI треба збільшувати на 1, поки не буде отриманий код повернення DEVICE_NOT_FOUND (пристрій не знайдений).
Переривання lAh, функція В103h: знайти пристрій PCI заданого класу
Для пошуку пристрою PCI заданого класу по перериванню lAh викликається функція B103h.
Перед викликом переривання вимагається занести в регістри наступні значення:
в АХ - код 0В103h;
в ЕСХ — код класу (в молодших трьох байтах);
в SI — індекс (порядковий номер) пристрою заданого класу (від 0 до N).
в ВН — номер шини, до якої підключений пристрій (від 0 до 255);
в BL — номер пристрою в старших п'яти бітах і номер функції в трьох молодших;
в АН — код повернення (може приймати значення SUCCESFUL і DEVICE_NOT_FOUND);
в CF — статус повернення (0 — функція успішно виконана, 1 — помилка).
Якщо необхідно знайти всі пристрої даного класу, то в SI заноситься 0. Після
 кожного виконання функції значення SI треба збільшувати на 1, поки
 не буде отриманий код повернення DEVICE_NOT_FOUND (пристрій не знайдений).
Переривання 1Ah, функція B106h: генерувати спеціальний цикл шини
Для генерації спеціального циклу шини по перериванню 1Ah викликається функція B106h.
Перед викликом переривання вимагається занести в регістри наступні значення:
в АХ - код 0B106h;
в ВН
Фото Капча