Якщо вміст ССК не дорівнює константі, значить даний процес є в процесі обміну другим. У цьому випадку вміст ССК - дескриптор процесу, використовуючи який перебувають дані у випадку уведення або буфер для даних у випадку виводу.
Обмін по лінкам здійснюється аналогічно, з тією різницею, що ССК мають фіксовані адреси в пам'яті й у процесі обміну дані не пересилаються між областями пам'яті, а передаються по лініях зв'язку в стартостопному режимі із квітирування байтів.
При виконанні вводу/виводу від центрального процесора потрібно лише ініціалізація обміну. По команді вводу-виводу вся необхідна інформація про операції обміну (адреса й довжина даних) міститься у внутрішні регістри лінка, після чого центральний процесор звільняється для подальших обчислень, а лінк трансп’ютера самостійно управляє обміном даних.
Взаємодія між трансп’ютерами здійснюється за допомогою обміну повідомленнями, що складаються з послідовностей байтів. Дані передаються по одному проводу пари проводів. По іншому проводу пари передаються підтвердження прийому кожного байта.
Байт передається в обрамленні службових бітів, починаючи зі стартового, потім іде 8 інформаційних, керуючий і стоповий біти. Протокол аналогічний асинхронному обміну звичайних мікропроцесорних систем. Після передачі байта відправник чекає підтвердження, що складається зі стартового й керуючого біта. Причому, якщо при передачі інформаційного байта керуючий біт дорівнює 1, то в підтвердженні він дорівнює 0. Байти даних, а також підтвердження для переданих у протилежному напрямку, байтів даних передаються по одному провіднику. Підтвердження мають пріоритет перед байтами даних. Можна встановити режим, при якому підтвердження починають передаватися відразу після одержання стартового й керуючого бітів, що приводить до передачі байтів без затримки між ними.
Якщо один з процесів, обмінюючих через лінк не готовий до прийому даних, байти накопичуються в регістрі даних лінка. При заповненні регістра підтвердження після одержання чергового байта не видається, і передавальний лінк припиняє передачу до прийому даних процесом і звільнення регістра лінка.
При ініціалізації передачі першого байта повідомлення існує затримка на настроювання каналів прямого доступу в передавальному й прийомному трансп’ютерах, що спричиняється різну швидкість при передачі коротких (від одиниць до декількох десятків байт) і довгих (кілька тисяч байт) повідомлень. У першому випадку швидкість становить 2-4 Мбіт. /с, у другому - максимально можливу 10-20 Мбіт/з, залежно від настроювання передавального й приймаючого трансп’ютерів.
Передача по лінку асинхронна, прийомний трансп’ютер не чутливий до фази прийнятих сигналів. Єдине, що потрібно - точний кварцовий генератор для завдання тактових сигналів трансп’ютерів.
Блок режимів роботи лінков дозволяє задавати швидкість передачі по лінкам трансп’ютера (5,10,20 Мбіт/с), причому для нульового лінка швидкість установлюється незалежно від інших. Установка здійснюється подачею відповідних рівнів на входи LinkSpecial, Link0Special, Link123Special.
Обміни по лінку програмуються роздільно в передавальному й приймаючому трансп’ютерах. У передавальному трансп’ютері програмується команда передачі по лінку заданого числа байт. У приймаючому трансп’ютері програмується команда прийому з лінка заданого числа байт. Реалізація обміну відбувається, якщо програми в передавальному й приймаючому трансп’ютерах виходять на команди передачі й прийому. Якщо один трансп’ютер вийшов на відповідну команду, то він чекає, поки іншої вийде на свою команду обміну. Неправильно запрограмований обмін веде до нескінченного очікування. Крім того, нескінченне очікування можливо, якщо задані різні значення кількості переданих і прийнятих байтів.
Блок подій (Event) виконує перетворення зовнішніх логічних рівнів на вході блоку в байтове повідомлення зі значенням 0 або 1, передане по внутрішньому каналі. Тому програмно блок подій сприймається як спеціальний канал, відмінністю якого від звичайного каналу є те, що із цього каналу можна тільки читати. ССК для блоку подій має фіксована адреса в адресному полі середкристальної пам'яті трансп’ютера. Очікувати уведення з каналу блоку подій може одночасно тільки один процес у трансп’ютері.
Звичайно блок подій використається ля реєстрації зовнішніх переривань у трансп’ютерної системі. Сигнал переривання подається на вхід трансп’ютера. Підтвердження прийому сигналу переривання (читання з каналу Event) видається у вигляді рівня 1 по лінії EventAck.
Програмно таймер сприймається як канал тільки для читання, що видає або вміст регістра таймера з відповідним пріоритетом, або сигнал настання очікуваного моменту часу.
Всі процеси, що очікують настання деякого моменту часу (витікання тимчасового інтервалу) містяться в чергу до таймера, що відповідає їхньому пріоритету. Черга процесів відсортована в порядку настання очікуваного моменту часу й організована за допомогою посилань між службовими словами в робочій області процесів. Адреса першого процесу в черзі відповідного пріоритету втримується в службових словах трансп’ютера, у молодших адресах пам'яті. При досягненні очікуваного моменту часу диспетчерові передається дескриптор відповідного процесу для його перекладу в кінець черги активних процесів.
Програмні помилки, такі як арифметичне переповнення, розподіл на 0, вихід за межі масиву, викликають у трансп’ютері установку прапора й поява на виході Error сигналу. Прапор режиму обробки помилок трансп’ютера дозволяє визначити поводження трансп’ютера у випадку появи помилки на виході Error. Якщо був заданий режим зупинки, у випадку появи будь-якої помилки й видачі сигналу помилки, трансп’ютер зупиняється, інакше продовжує працювати.
У мультипроцесорних системах виводи Analyze, Reset, Error, ErrorIn всіх трансп’ютеров звичайно з'єднані згідно мал.4. При такій схемі з'єднання появи сигналу помилки на виводі будь-якого трансп’ютера переводить всю систему в режим керування пам'яттю. Відповідні програми в хост-машині дозволять визначити стан системи й шляхи подолання помилкової ситуації.
Малюнок 4. З'єднання ліній системного сервісу у мультітрансп'ютерній системі
Трансп’ютер і його ОЗУ побудовані по КМОП-технології й не зберігають свого стану після відключення живлення. Тому після включення живлення для початку функціонування в трансп’ютер необхідно завантажити деякий мінімум програмного забезпечення. Трансп’ютер може бути завантажений як із зовнішнього ПЗУ, так і з будь-якого лінка. Для вказівки виду завантаження використається відповідний вивід трансп’ютера.
При завантаженні даних з лінка після включення живлення трансп’ютер переходить у стан очікування прийому даних по лінкам. Перший байт, прийнятий по кожному з лінков, управляє подальшим режимом роботи трансп’ютера. Якщо його значення більше 1, то він інтерпретується як довжина коду програми, прийнятої слідом за ним. Прийняті дані записуються на згадку, починаючи зі стартової адреси, з його починається й виконання програми. Як правило, першої завантажується програма початкового завантаження трансп’ютера, що забезпечує завантаження іншого програмного забезпечення.
Якщо перший прийнятий керуючий байт дорівнює 0 або 1, то трансп’ютер переходить у режим керування пам'яттю.
Керуючий байт рівний 0, змушує трансп’ютер інтерпретувати наступні 4 байти як адреса пам'яті, по якому на згадку буде записане слово, що надійшло як наступні 4 байти. Після цього трансп’ютер знову переходить у режим керування пам'яттю, з якого його може вивеСТІ лише прийом керуючого байта зі значенням, більшим 1.
Якщо керуючий байт дорівнює 1, наступні 4 байти задають адресу слова пам'яті, що буде лічене й передане як 4 байти по тому ж лінку, з якого надійшли в протилежному напрямку попередні 4 байти. Після цього трансп’ютер залишається в режимі керування пам'яттю.
Режим керування пам'яттю використається звичайно для цілей налагодження.
1. Ю-Чжен Лю, Г. Гибсон Микропроцессоры семейства 8086/8088 М.: Радио и связь, 1987.
2. Б.В. Шевкопляс Микропроцессорные структуры. Инженерные решения М.: Радио и связь, 1990
3. В. Шевкопляс Микропроцессорные структуры. Инженерные решения. Дополнение первое. М.: Радио и связь, 1993
4. М. Гук Аппаратные средства IBM PC С. Петербург ²Питер² 2000
5. В. Корнеев, А. Киселев Современные микропроцессоры Санкт-Петербург ² БХВ - Петербург ² 2003
6. Локазюк В.М. и др. Микропроцессоры и микроЭВМ в производственных системах Киев Издательский центр ² Академия ² 2002
7. Гуржий А.М. и др. Архитектура, принципы функционирования и управления ресурсами IBM PC Харьков, 2003
8. В.В. Сташин, А.В. Урусов, О.Ф. Мологонцева Проектирование цифровых устройств на однокристальных микроконтроллерах Л. Энергоатомиздат
9. Под ред. А.Д. Викторова Руководство пользователя по сигнальным микропроцессорам семейства ADSP-2100 Санкт - Петербургский государственный электротехнический университет. Санкт - Петербург 1997
10. М. Предко Руководство по микроконтроллерам в 2-х томах М: Постмаркет, 2001