Трансп’ютери – елементна база ММПС
Трансп'ютери - елементна база ММПС
Зміст
Вступ
1. Основні визначення
2. Архітектура сімейства Т-2, Т-4, Т-8
2.1 Структура центрального процесора
2.2 Система команд трансп’ютера і їхнє виконання
2.3 Організація пам'яті трансп’ютера
2.4 Диспетчеризація процесів
2.5 Організація вводу-виводу
2.6 Протокол передачи даних по лінку
2.7 Очікування сигналів від блоку подій, таймера, блоку помилок
2.8 Ініціалізація системи після включення живлення
Література
Вступ
Тема реферату "Трансп’ютери - елементна база ММПС" з дисципліни "Мультимікропроцесори".
Мультимікропроцесорні системи (ММПС) - це системи, що мають два й більше компонент, які можуть одночасно виконувати команди. Підпорядкованими процесорами можуть бути спецпроцесори, розраховані на виконання певного типу завдання або процесори широкого застосування. Спецпроцесори - співпроцесори, процесори вводу-виводу.
Трансп’ютер - це мікрокомп'ютер із власною внутрішньою пам'яттю й лінками (каналами) для з'єднання з іншими трансп’ютерами.
1. Основні визначення
Трансп’ютер - транзистор і комп'ютер - це об'єднання слів відбиває основну область застосування даного класу мікроконтролерів, а саме - масово-паралельні обчислювальні системи, у яких трансп’ютер відіграє роль базового обчислювального елемента.
Деякі фахівці трактують даний термін як найменування конкретного продукту фірми Inmos, інші як узагальнене найменування мікропроцесорів з вбудованими міжпроцесорними інтерфейсами.
Перший трансп’ютер Т414 був розроблений фірмою Inmos в 1983 році.
У цей час, крім трансп’ютерів фірми Inmos, серійно випускаються трансп’ютероподібні МП TMS320, З4Х и ADSP2106X.
Високий ступінь функціональної самостійності трансп’ютера, простота інтеграції й наявність периферійних пристроїв дозволяють створювати в короткий термін системи на їхній основі. Комунікаційні канали трансп’ютера можуть здійснювати обмін даними одночасно з обчисленнями, практично не знижуючи продуктивності процесора. Завдяки цій якості трансп’ютерів, системи на їхній основі мають гарну масштабованість і високе значення показника ефективності (продуктивність/вартість).
Малюнок 1. Структура трансп’ютера Т800
2. Архітектура сімейства Т-2, Т-4, Т-8
Трансп’ютери ставляться до класу RISC процесорів. Система команд орієнтована на мову високого рівня ОККАМ (OCCAM). Це мова паралельного програмування, що дозволяє задавати паралельні обчислення відповідно до моделі взаємодіючих послідовних процесів (CSP). Програма мовою ОККАМ являє собою сукупність асинхронних, що спільно протікають взаємодіючих процесів. Взаємодія між процесорами реалізується шляхом обміну даними за принципом " рандеву". Ця модель обчислень підтримується завдяки апаратному диспетчерові, що забезпечує виконання паралельних процесів у режимі квантування часу. Причому кількість одночасно виконуваних процесів не обмежена.
Мультипроцесорна система на базі трансп’ютерів - сукупність трансп’ютерів, з'єднаних лініями зв'язку (безпосередньо або через комутатор).
Істотно спростити програмування мультипроцесорних обчислювальних систем дозволяє той факт, що однакова модель паралельних обчислень підтримується як усередині окремого трансп’ютера, так і в рамках мультипроцесорної системи в цілому. Завдяки цьому програма, розроблена для ММПС, може бути створена й налагоджена на одному єдиному процесорі, а потім перенесена на мережу трансп’ютерів без істотних змін.
трансп'ютер мікрокомп'ютер процесор канал
2.1 Структура центрального процесора
Малюнок 2. Структура центрального процесора
Апаратний планувальник (диспетчер) ЦП організує одночасне (у режимі поділу часу) виконання декількох процесів. Кожному процесу в момент його створення в адресному просторі трансп’ютера, виділяється вирівняна по границі слова робоча область пам'яті й установлюється пріоритет. Існує дворівнева система пріоритетів: 0 - високий пріоритет; 1 - низький пріоритет. Об'єднання адреси робочої області й пріоритету утворить дескриптор процесу
Центральний процесор містить два регістри - таймера, один для низько, інший для високопріоритетних процесів. Високопріоритетний регістр збільшується через 1 μs, низькопріоритетний - через 64 μs.
Регістр W трансп’ютера вказує на робочу область процесу, а в регістрі-покажчику команди I перебуває адреса наступної виконуваної команди.
Регістри загального призначення А, В, С утворять регістровий стек SS (пам'ять із дисципліною доступу FIFO). АЛУ виконує логічні й арифметичні операції над операндами, що втримуються в регістровому стеці. Операнди містяться в стек через його вершину - регістр А. При завантаженні даних в А його вміст переноситься в В, вміст В в С, а вміст останнього губиться. Результати операцій також формуються в регістрі А, при цьому вміст регістра С виштовхується в регістр В и стає невизначеним.
2.2 Система команд трансп’ютера і їхнє виконання
Всі команди трансп’ютера однобайтні й виконуються за один такт процесора. Старші 4 біти команди - код команди, молодші 4 біти використаються для формування операнда команди або коду команди в регістрі операнда О. Операції, реалізовані командами трансп’ютера, підрозділяються на первинні й вторинні. Команди вибираються з пам'яті трансп’ютера й містяться в буфер команд центрального процесора. За один такт вибирається дві команди в Т-414 і 4 команди в Т-800. У випадку наявності в трансп’ютера вбудованого співпроцесора, що виконує операції із плаваючою крапкою, розпізнавання команд і передача їх на виконання здійснюється апаратно в центральному процесорі, там же виконується обчислення адреси операндів і завантаження їх у регістри FPU.
Модуль операцій із плаваючою крапкою складається із двох блоків - блоку мантиси й блоку порядку зі своїм набором регістрів (дві регістрових стеки). Всі команди із плаваючою крапкою підрозділяються на два класи - повністю самостійні команди (не впливають на стан центрального процесора), і команди, пересилаючі результат виконання операції в центральний процесор.
Після передачі команди на виконання в співпроцесор центральний процесор продовжує виконання потоку команд, якщо ця команда ставиться до першого класу, або очікує одержання результату, якщо це команда другого класу.
Шина адреси 32-розрядна, тому адресувати можна до 4 Гбайт пам'яті. Особливістю адресації є початок адрес в області негативних значень. Молодша адреса в додатковому коді відповідає значенню 80000000Н.
Структурно вся пам'ять підрозділяється на внутрішньокристальну й зовнішню. Обсяг внутрішньокристальної пам'яті становить 4 (2) Кбайт (залежно від виконання трансп’ютера). Архітектурно вся пам'ять, як зовнішня так і внутрішня рівнодоступна й має єдину адресацію. Внутрішньокристальній пам'яті відповідають молодші адреси, а зовнішньої пам'яті - старші.
2.3 Організація пам'яті трансп’ютера
Малюнок 3. Структура пам’яті трансп’ютера
2.4 Диспетчеризація процесів
Кожний із процесів у конкретний момент часу може бути виконуваним, активним (готовим до виконання в черзі відповідного пріоритету), що очікує сигналу таймера (у черзі до таймера відповідного пріоритету), що очікує вводу-виводу.
Для виконуваного процесу регістр I містить адресу наступної команди, регістр W містить його дескриптор.
Для організації черги процесів на виконання (черга активних процесів) у диспетчері використаються пари регістрів Fptr0, Bptr0, Fptr1, Bptr1, що вказують на початок і кінець черги високо - і низькоприорітетних процесів відповідно. Як елементи черг використаються робочі області процесів, що містять крім даних процесу, керуючу інформацію, що використається для збереження й відновлення стану процесів на етапі диспетчеризації (у тому числі посилання на робочу область наступного процесу в черзі).
Низькопріоритетні процеси виконуються протягом не більш ніж 32 періоду низкопріоритетного таймера, після чого процес, якщо він ще здатний до виконання, міститься в кінець черги активних низькопріоритетних процесів, а диспетчер планує виконання наступного процесу. Спочатку проглядається черга високопріоритетних процесів, потім - низькопріоритетних.
Високопріоритетний процес не переривається й виконується доти, поки це можливо (до завершення або до моменту очікування вводу-виводу, сигналу таймера, сигналу зовнішньої події, видаваного блоком Event). Якщо Високопріритетний процес стає активним (наприклад одержує сигнал таймера) у момент виконання процесу з низьким пріоритетом, останній переривається, його стан зберігається в області зарезервованих адрес пам'яті трансп’ютера й ініціюється виконання що перервало високопріоритетного процесу. Після його виконання відновляється перерваний низькопріоритетний процес.
2.5 Організація вводу-виводу
Ввід-вивід для процесорів у трансп’ютері організується однаковим образом, як у випадку апаратних лінків (зовнішній ввод/вивод), так і у випадку використання віртуального лінка (обмін між процесами одного трансп’ютера). В обміні завжди беруть участь тільки два процеси - один уводить дані, інший виводить.
У момент виконання команди опису каналу й після завершення кожного обміну слово стану каналу (ССК) ініціалізується константою MinInt. Процес, першу виконуючу команду обміну, припиняється й перевіряється вміст каналу. Якщо воно дорівнює константі, то в ССК заноситься дескриптор процесу, а в робочу область процесу містяться значення W і адреса переданих даних, після чого керування передається диспетчерові для планування виконання інших процесів.
Якщо вміст ССК не дорівнює константі, значить даний процес є в процесі обміну другим. У цьому випадку вміст ССК - дескриптор процесу, використовуючи який перебувають дані у випадку уведення або буфер для даних у випадку виводу.
Обмін по лінкам здійснюється аналогічно, з тією різницею, що ССК мають фіксовані адреси в пам'яті й у процесі обміну дані не пересилаються між областями пам'яті, а передаються по лініях зв'язку в стартостопному режимі із квітирування байтів.
При виконанні вводу/виводу від центрального процесора потрібно лише ініціалізація обміну. По команді вводу-виводу вся необхідна інформація про операції обміну (адреса й довжина даних) міститься у внутрішні регістри лінка, після чого центральний процесор звільняється для подальших обчислень, а лінк трансп’ютера самостійно управляє обміном даних.
2.6 Протокол передачи даних по лінку
Взаємодія між трансп’ютерами здійснюється за допомогою обміну повідомленнями, що складаються з послідовностей байтів. Дані передаються по одному проводу пари проводів. По іншому проводу пари передаються підтвердження прийому кожного байта.
Байт передається в обрамленні службових бітів, починаючи зі стартового, потім іде 8 інформаційних, керуючий і стоповий біти. Протокол аналогічний асинхронному обміну звичайних мікропроцесорних систем. Після передачі байта відправник чекає підтвердження, що складається зі стартового й керуючого біта. Причому, якщо при передачі інформаційного байта керуючий біт дорівнює 1, то в підтвердженні він дорівнює 0. Байти даних, а також підтвердження для переданих у протилежному напрямку, байтів даних передаються по одному провіднику. Підтвердження мають пріоритет перед байтами даних. Можна встановити режим, при якому підтвердження починають передаватися відразу після одержання стартового й керуючого бітів, що приводить до передачі байтів без затримки між ними.
Якщо один з процесів, обмінюючих через лінк не готовий до прийому даних, байти накопичуються в регістрі даних лінка. При заповненні регістра підтвердження після одержання чергового байта не видається, і передавальний лінк припиняє передачу до прийому даних процесом і звільнення регістра лінка.
При ініціалізації передачі першого байта повідомлення існує затримка на настроювання каналів прямого доступу в передавальному й прийомному трансп’ютерах, що спричиняється різну швидкість при передачі коротких (від одиниць до декількох десятків байт) і довгих (кілька тисяч байт) повідомлень. У першому випадку швидкість становить 2-4 Мбіт. /с, у другому - максимально можливу 10-20 Мбіт/з, залежно від настроювання передавального й приймаючого трансп’ютерів.
Передача по лінку асинхронна, прийомний трансп’ютер не чутливий до фази прийнятих сигналів. Єдине, що потрібно - точний кварцовий генератор для завдання тактових сигналів трансп’ютерів.
Блок режимів роботи лінков дозволяє задавати швидкість передачі по лінкам трансп’ютера (5,10,20 Мбіт/с), причому для нульового лінка швидкість установлюється незалежно від інших. Установка здійснюється подачею відповідних рівнів на входи LinkSpecial, Link0Special, Link123Special.
Обміни по лінку програмуються роздільно в передавальному й приймаючому трансп’ютерах. У передавальному трансп’ютері програмується команда передачі по лінку заданого числа байт. У приймаючому трансп’ютері програмується команда прийому з лінка заданого числа байт. Реалізація обміну відбувається, якщо програми в передавальному й приймаючому трансп’ютерах виходять на команди передачі й прийому. Якщо один трансп’ютер вийшов на відповідну команду, то він чекає, поки іншої вийде на свою команду обміну. Неправильно запрограмований обмін веде до нескінченного очікування. Крім того, нескінченне очікування можливо, якщо задані різні значення кількості переданих і прийнятих байтів.
2.7 Очікування сигналів від блоку подій, таймера, блоку помилок
Блок подій (Event) виконує перетворення зовнішніх логічних рівнів на вході блоку в байтове повідомлення зі значенням 0 або 1, передане по внутрішньому каналі. Тому програмно блок подій сприймається як спеціальний канал, відмінністю якого від звичайного каналу є те, що із цього каналу можна тільки читати. ССК для блоку подій має фіксована адреса в адресному полі середкристальної пам'яті трансп’ютера. Очікувати уведення з каналу блоку подій може одночасно тільки один процес у трансп’ютері.
Звичайно блок подій використається ля реєстрації зовнішніх переривань у трансп’ютерної системі. Сигнал переривання подається на вхід трансп’ютера. Підтвердження прийому сигналу переривання (читання з каналу Event) видається у вигляді рівня 1 по лінії EventAck.
Програмно таймер сприймається як канал тільки для читання, що видає або вміст регістра таймера з відповідним пріоритетом, або сигнал настання очікуваного моменту часу.
Всі процеси, що очікують настання деякого моменту часу (витікання тимчасового інтервалу) містяться в чергу до таймера, що відповідає їхньому пріоритету. Черга процесів відсортована в порядку настання очікуваного моменту часу й організована за допомогою посилань між службовими словами в робочій області процесів. Адреса першого процесу в черзі відповідного пріоритету втримується в службових словах трансп’ютера, у молодших адресах пам'яті. При досягненні очікуваного моменту часу диспетчерові передається дескриптор відповідного процесу для його перекладу в кінець черги активних процесів.
Програмні помилки, такі як арифметичне переповнення, розподіл на 0, вихід за межі масиву, викликають у трансп’ютері установку прапора й поява на виході Error сигналу. Прапор режиму обробки помилок трансп’ютера дозволяє визначити поводження трансп’ютера у випадку появи помилки на виході Error. Якщо був заданий режим зупинки, у випадку появи будь-якої помилки й видачі сигналу помилки, трансп’ютер зупиняється, інакше продовжує працювати.
У мультипроцесорних системах виводи Analyze, Reset, Error, ErrorIn всіх трансп’ютеров звичайно з'єднані згідно мал.4. При такій схемі з'єднання появи сигналу помилки на виводі будь-якого трансп’ютера переводить всю систему в режим керування пам'яттю. Відповідні програми в хост-машині дозволять визначити стан системи й шляхи подолання помилкової ситуації.
Малюнок 4. З'єднання ліній системного сервісу у мультітрансп'ютерній системі
2.8 Ініціалізація системи після включення живлення
Трансп’ютер і його ОЗУ побудовані по КМОП-технології й не зберігають свого стану після відключення живлення. Тому після включення живлення для початку функціонування в трансп’ютер необхідно завантажити деякий мінімум програмного забезпечення. Трансп’ютер може бути завантажений як із зовнішнього ПЗУ, так і з будь-якого лінка. Для вказівки виду завантаження використається відповідний вивід трансп’ютера.
При завантаженні даних з лінка після включення живлення трансп’ютер переходить у стан очікування прийому даних по лінкам. Перший байт, прийнятий по кожному з лінков, управляє подальшим режимом роботи трансп’ютера. Якщо його значення більше 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