івнянні числових значень. Звичайно, якщо кількість байт в слові є ступенем двох, тоді поле адрес є безперервним і послідовним, і над покажчиками можуть вироблятися звичайні арифметичні дії.
Значення, відповідні найбільшим (по модулю) негативним значенням, ніколи не застосовуються як покажчики, так як вони зарезервовані на микропрограммном рівні для забезпечення механізму роботи планувальника.
Для представлення цих та деяких інших значень служать наступні символічні імена:
MostNeg - найбільше від'ємне значення (старший біт дорівнює одиниці, інші - нулі);
MostPos - найбільше позитивне значення (старший біт дорівнює нулю, решта - одиниці);
NotProcess. p ( - MostNeg ) - зарезервовані для механізму роботи планувальника.
Крім того, при роботі планувальника процесів, а також при роботі з таймером використовуються інші негативні значення, похідні від MostNeg . Формат команди транспьютера показаний на малюнку 2.2 Довжина кожної команди дорівнює одному байту; байт ділиться на дві частини: чотири старших біти представляють собою код функції, чотири молодших біта - значення даних. Такий формат дозволяє представити 16 функцій з діапазоном даних від 0 до 15 для кожної з них; 13 функцій виділені для кодування найбільш важливих операцій, включаючи переходи, виклики і команди, використовувані для доступу до змінних.
Малюнок 2.2 - Формат команди транспьютера
Для збільшення довжини операнда будь-якої команди вводяться дві функції:
- pfix - префікс;
- nfix - негативний префікс.
Для виконання всіх команд чотири біти даних (молодші біти) завантажуються в чотири молодших біта регістра операндів, значення якого потім використовується в якості операнда команди. Усі команди, крім префіксних, закінчивши своє виконання, очищають регістр операндів, готуючи його для наступної команди.
Команда з префіксом pfix завантажує чотири біти даних в регістр операндів, а потім зрушує його на чотири розряди вліво. Команда з nfix діє таким же чином, як і з pfix , за винятком того, що вона доповнює регістр перед зрушенням. Отже, для розширення операнда перед ним може бути поміщена послідовність з однієї або більше префіксних команд. Операнди в діапазоні від - 256 до 255 можуть бути представлені за допомогою однієї префиксной команди.
Префіксние команди мають важливі властивості:
) полегшують написання трансляторів, забезпечуючи всім командам один і той же метод доступу до операндів будь-якої довжини аж до довжини слова процесора;
) дозволяють представляти операнди у формі, незалежної від довжини слова процесора.
Непряма функція opr інтерпретує свій операнд як деяку операцію над значеннями, що зберігаються в регістрах. Це дозволяє закодувати у вигляді однобайтном команди до 16 операцій. Як і в будь-який інший команді, у функції орr можна використовувати префіксние команди для збільшення довжини операнда. Для забезпечення найбільш компактного представлення програм операції кодуються таким чином, що найбільш часто вживані команди представляються без префіксів.
Для простоти надалі префіксние послідовності, а також функція орr використовуватися не будуть. Кожна команда представлена ??мнемонічним позначенням; а для безпосередніх функцій додається елемент даних, який замінює відповідну Префіксний послідовність і код функції.
3. Особливості інтерфейсів транспьютеров
Найбільш просто здійснюється з'єднання транспьютеров один з одним. Для цього лінк одного з транспьютеров під'єднується до линку іншого. До одного линку одночасно можна під'єднати тільки один трансп'ютер. Таким чином, до транспьютерах Т212 , Т414 або Т800 , які мають по чотири линка, можна підключити до чотирьох транспьютеров. Кожен лінк включає два канали, фізично два дроти: один канал - в один бік, другий - в іншу (рисунок 3.1, а). Один лінк може одночасно обслужити до двох пар оккамовскіх процесів (рисунок 3.1, б). При з'єднанні лінків відбувається з'єднання Лінкові інтерфейсу одного транспьютера з Лійкових інтерфейсом іншого. При обміні повідомленнями канали працюють в режимі прямого доступу в пам'ять кожного з з'єднаних транспьютеров, а процесори транспьютеров в цей час мають можливість паралельно ...