Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VPKS_v2_UKR_new.doc
Скачиваний:
21
Добавлен:
11.09.2019
Размер:
2.31 Mб
Скачать

2. Внутрішня архітектура трансп’ютера

Трансп’ютер (наприклад, IMST 414) складається із блоку пам'яті, процесора й системи зв'язку, з'єднаних 32-розрядною шиною. До цієї шини також підключений інтерфейс із зовнішньою пам'яттю. На малюнку показана схема з'єднань основних блоків трансп’ютерів IMS T 800 і IMS T 414.

ЦП трансп’ютера містить 3 регістри А, В і С для роботи із цілими числами й адресами, які формують апаратний стек. При записі в стек вміст регістра В записується в С, А - в В, і лише після цього в регістр А заноситься нове значення.

При читанні зі стека витягується значення регістра А, після чого вміст В записується в А, а вміст С - у В. Процесор із плаваючою крапкою (ППТ) містить трьохрегістровий стек для зберігання проміжних результатів при роботі із числами із ПТ (обчислювальний стек). Це регістри AF, BF і CF. Робота із цим стеком аналогічна попередній.

Адреси значень змінних із ПТ формуються в стеці ЦП і ці значення передаються між адресуючими комірками пам'яті зі стеком ППК під керуванням ЦП. Тому що стек ЦП використовується тільки для зберігання адрес змінних із ПТ, розрядність ЦП не залежить від розрядності ППК. Тому той самий ППК може використовуватися як в IMS T 800, так і з IMS T 212 у яких розрядність ЦП різна.

Планувальник трансп’ютера підтримує 2 рівні пріоритетів. Це дозволяє зменшити час на переривання.

3. Послідовна обробка

Центральний процесор містить 6 регістрів, які використовуються при виконанні послідовного процесу. Цими регістрами є:

  • покажчик на робоче поле, що вказує на область пам'яті, де зберігаються локальні змінні;

  • лічильник команд

  • регістр операнда, що використовується для формування операндів інструкцій.

Регістри трансп’ютера

Регістри А, В, і С формують обчислювальний стек і є джерелом і приймачем для більшості арифметичних і логічних операцій.

Для обчислення виразів використовується обчислювальний стек. При цьому інструкції звертаються до цього стеку неявним чином. Наприклад, інструкція add складає два верхніх елементи стека й розміщує результат у верхівку стека.

4. Інструкції

При проектуванні було враховано, що трансп’ютер буде програмуватися мовою високого рівня. Тому набір інструкцій підібраний для простої і ефективної компіляції. Інструкції однакового формату, що найбільш часто зустрічаються в програмах. Набір інструкцій не залежить від розрядності процесора, що дозволяє той самий мікрокод використати для трансп’ютерів різної розрядності.

Кожна інструкція займає 1 байт, розділений на 2 чотирьохбітні поля.

Безпосередні функції

Є 16 функцій, у яких значення операнда перебуває в межах 0 - 15.13 з них використовуються для подання найбільш важливих функцій, виконуваних будь-яким комп'ютером. Сюди входять:

load constant

add constant

load local point

load local

store local

load non-local

store non-local

call

jump

conditional jump

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

Для збільшення довжини операндів інструкцій використовуються ще два коди функцій. Це prefix і negative prefix.

При виконанні всіх інструкцій чотири біти даних записуються в 4 молодших розряди регістра операнда, що потому використовується як операнд інструкції.

Після завершення всіх інструкцій, крім префіксних, регістр операнда обнуляється. При виконанні інструкції prefix чотири біти – дані завантажуються в регістр операнда, що потім зсувається вліво на 4 позиції. При інструкції negative prefix відбувається те ж саме, тільки до зсуву вміст регістра операнда переводиться в додатковий код.

При використанні префіксних інструкцій операнди можуть бути розширені до будь-якої довжини, аж до розрядності регістра операнда. Інакше кажучи, є можливість формувати операнди методом, що не залежить від розрядності процесора.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]