КС на базі трансп'ютерів і з неоднорідним доступом до пам'яті

Поява трансп'ютерів пов'язана з ідеєю створення різних по продуктивності КС за допомогою прямого з'єднання однотипних процесорних чіпів. Сам термін об'єднує два поняття - “транзистор” і “комп'ютер”.

Трансп'ютер - це надвелика інтегральна мікросхема (НВІМ), що містить в собі центральний процесор, блок операцій з плаваючою комою (окрім трансп'ютерів першого покоління Т212 і Т414), статичний оперативний пристрій, що запам'ятовує, інтерфейс із зовнішньою пам'яттю і декілька каналів зв'язку. Перший трансп'ютер був розроблений в 1986 році фірмою Inmos.

Канал зв'язку складається з двох послідовних ліній для двостороннього обміну. Він дозволяє об'єднати трансп'ютери між собою і забезпечити взаємні комунікації. Дані можуть пересилатися поелементно або як вектор. Одна з послідовних ліній використовується для пересилки пакету даних, а друга - для повернення пакету підтвердження, який формується, як тільки пакет даних досягне пункту призначення.

На базі трансп'ютерів можна легко побудувати різні види КС. Чотири канали зв'язку забезпечують побудову двовимірного масиву, де кожен трансп'ютер пов'язаний з чотирма найближчими сусідами. Можливе об'єднання трансп'ютерів в групи з подальшим з'єднанням груп між собою. Якщо група складається з двох трансп'ютерів, то для підключення її до інших груп залишаються вільними 6 каналів зв'язку (мал. 8.8, а). Комплекс з трьох трансп'ютерів також залишає вільними 6 каналів (мал. 8.8, б), а для зв'язку з “квартетом” трансп'ютерів залишаються ще 4 канали зв'язку (мал. 8.8, в).

Особливості трансп'ютерів вимагали розробки для них спеціальної мови програмування Occam. Назва мови пов'язана з ім'ям філософа-схоласта XIV століття Оккама - автора концепції “бритви Оккама”: “entia praeter necessitatem non sunt multiplicanda” - “поняття не повинні множитись без необхідності”. Мова забезпечує опис простих операцій пересилки даних між двома об’єктами, а також дозволяє явно вказати на паралелізм при виконанні програми декількома трансп'ютерами. Основним поняттям програми на мові Occam є процес, що складається з одного або більше операторів програми, які можуть бути виконані послідовно або паралельно. Процеси можуть бути розподілені по трансп'ютерах обчислювальної системи. При цьому устаткування трансп'ютера підтримує сумісне використання трансп'ютера декількома процесами.

а – два транспьютера;

б – три транспьютера;

в – четыре транспьютера

Рисунок 8.8 – Групи з повністю взаємозв'язаних трансп'ютерів

Перше покоління трансп'ютерів (Т212, Т414 і Т805) розроблялося для систем реального часу і цифрової обробки сигналів. Для подібних завдань потрібні порівняно невеликі КС з швидкісними каналами зв'язку між сусідніми процесорами і швидким перемиканням контексту. Під контекстом розуміється вміст регістрів, який при переході до нового завдання в ході багатозадачної обробки може бути змінений і тому повинен бути збережений, а при поверненні до старого завдання - відновлений.

У трансп'ютерах другого покоління (Т9000) істотно підвищена продуктивність і покращені канали зв'язку. Головна особливість трансп'ютерів другого покоління - розвинені комунікаційні можливості, хоча в обчислювальному плані, навіть не дивлячись на наявність в них блоків для операцій з плаваючою комою, вони сильно поступаються універсальним мікропроцесорам Power РС і Pentium.

Узагальнена структура трансп'ютера (рис.8.9) включає:

- центральний процесор;

- АЛП для операцій з плаваючою комою;

- канали зв'язку;

- внутрішню пам'ять (ОЗП);

- інтерфейс для підключення зовнішньої пам'яті;

- інтерфейс подій (систему переривань);

- логіку системного сервісу (систему обслуговування);

- таймери.

Рисунок 8.9 – Базова внутрішня архітектура трансп'ютера

Перший трансп'ютер Т212 містив 16-розрядний арифметичний процесор. Подальші трансп'ютери були оснащені 32-розрядним цілочисельним процесором (Т414) і процесором з плаваючою комою (Т800, Т9000), що дає істотне підвищення швидкості обчислень (до 100 MIPS). Версії, що підтримують процесор з плаваючою комою, організовані так, що цей процесор і цілочисельний процесор можуть працювати одночасно. У трансп'ютер Т9000 додана внутрішня кеш-пам'ять і процесор віртуального каналу. Процесор трансп'ютера побудований по архітектурі RISC, має мікропрограмний УП, а команди в ньому виконуються за мінімальне число циклів процесора. Прості операції, такі як складання і віднімання, займають один цикл, тоді як складніші операції вимагають декількох циклів. Команди складаються з одного або декількох байтів. Більшість версій трансп'ютерів мають по 4 послідовних каналу зв'язку із швидкістю передачі по каналу близько 10 Мбіт/с. У міру розвитку трансп'ютерів підвищилася швидкість передачі по каналах зв'язку. Місткість внутрішньої пам'яті (спочатку 2 Кбайт) також зросла. З'явилася можливість підключення зовнішньої пам'яті через інтерфейс пам'яті. Схема цього інтерфейсу програмується і здатна формувати різні сигнали для задоволення вимог найрізноманітніших мікросхем зовнішньої пам'яті.

Передача інформації проводиться синхронно під впливом загального генератора тактових імпульсів (ГТІ) або локальних ГТІ з однаковою частотою проходження імпульсів. Інформація передається у вигляді пакетів. Кожного разу, коли пересилається пакет даних, приймач відповідає пакетом підтвердження (рис.8.10).

Рисунок 8.10 – Організація введення/виведення в трансп’ютерній системі

Пакет даних складається з двох бітів-одиниць, за якими слідують 8-бітові дані і нуль (всього 11 бітів). Пакет підтвердження - це проста комбінація 10 (всього два біта); вона може бути передана, як тільки пакет даних буде ідентифікований інтерфейсом вхідного каналу. Канали забезпечують апаратну підтримку операторів введення і виведення мови Occam, тобто пакети можуть пересилатися один за іншим як вектори. Для комунікацій між процесами усередині трансп'ютера замість зовнішніх каналів операторів введення/виведення використовують внутрішні канали трансп'ютера.

Інтерфейс подій дає можливість зовнішньому пристрою привернути увагу і отримати підтвердження. Цей інтерфейс функціонує як вхідний канал і аналогічно програмується.

Контрольні запитання

1 Які комп’ютерні системи називають асоціативними?

2 Які комп’ютерні системи називають систоличними?

3 Які комп’ютерні системи називають комп’ютерними системами з наддовгими командами?

4 Які комп’ютерні системи називають комп’ютерними системами з явним паралелізмом команд?

5 Які комп’ютерні системи називають комп’ютерними системами з обробкою за принципом хвильового фронту?

6 Які комп’ютерні системи називають комп’ютерними системами на базі трансп'ютерів?


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: