
- •7.091501 – Комп’ютерні системи та мережі
- •7.091503 – Спеціалізовані комп’ютерні системи
- •7.091501 – Комп’ютерні системи та мережі
- •7.091503 – Спеціалізовані комп’ютерні системи
- •2. Надійність і відмовостійкість
- •3. Масштабованість
- •4. Сумісність і мобільність програмного забезпечення
- •5. Класифікація комп'ютерів по галузям застосування Персональні комп'ютери та робочі станції
- •Сервери
- •Мейнфрейми
- •Кластерні архітектури
- •Контрольні запитання
- •Тести tpc
- •2. Тест tpc-a
- •3. Тест tpc-b
- •4. Тест tpc-c
- •5. Майбутні тести tpc
- •2. Архітектура системи команд. Класифікація процесорів (cisc і risc)
- •3. Методи адресації та типи даних Методи адресації
- •4. Типи команд
- •5. Команди керування потоком команд
- •6. Типи й розміри операндів
- •2. Найпростіша організація конвеєра й оцінка його продуктивності
- •3. Структурні конфлікти й способи їхньої мінімізації
- •4. Конфлікти за даними, зупинка конвеєра й реалізація механізму обходів
- •5. Класифікація конфліктів за даними
- •6. Конфлікти за даними, що призводять до призупинки конвеєра
- •7. Методика планування компілятора для усунення конфліктів за даними
- •Контрольні запитання
- •2. Зниження втрат на виконання команд умовного переходу
- •Метод вичікування
- •Метод повернення
- •Затримані переходи
- •3. Статичне прогнозування умовних переходів: використання технології компіляторів
- •2. Обробка багатотактних операцій і механізми обходів у довгих конвеєрах
- •3. Конфлікти й прискорені пересилання в довгих конвеєрах
- •4. Підтримка точних переривань
- •Контрольні запитання
- •2. Паралелізм рівня команд: залежності й конфлікти за даними
- •Залежності
- •3. Паралелізм рівня циклу: концепції та методи
- •4. Основи планування завантаження конвеєра й розгортання циклів
- •Контрольні запитання
- •2. Динамічна оптимізація із централізованою схемою виявлення конфліктів
- •2. Подальше зменшення зупинок по керуванню: буфера цільових адрес переходів
- •Контрольні запитання
- •Процесор з архітектурою 80x86 і Pentium.
- •Особливості процесорів з архітектурою spark компанії Sun Microsystems.
- •Процесори pa-risc компанії Newlett-Packard
- •2.Особливості процесорів з архітектурою sparc компанії Sun Microsystems
- •Процесори pa-risc компанії Hewlett-Packard
- •Контрольні запитання
- •Процесор mc88110 компанії Motorola.
- •Особливості архітектури mips компанії mips Technology.
- •Особливості архітектури Alpha компанії dec.
- •Особливості архітектури power компанії ibm і power pc компанії Motorola, Apple і ibm.
- •2.Особливості архітектури mips компанії mips Technology
- •3.Особливості архітектури Alpha компанії dec
- •4.Особливості архітектури power компанії ibm і PowerPc компаній Motorola, Apple і ibm
- •Архітектура power
- •Еволюція архітектури power у напрямку архітектури PowerPc
- •Процесор PowerPc 603
- •Контрольні запитання
- •Термінологія в області паралельної обробки .
- •Питання створення програмного забезпечення.
- •Ахітектура паралельної обробки.
- •2.Питання створення програмного забезпечення.
- •1) Язикові розширення.
- •2) Розширення компіляторів.
- •3) Додавання нового язикового рівня.
- •4) Нова мова.
- •3.Архітектура паралельної обробки.
- •4.Елементи теорії конкурентних процесів. Події та процеси
- •Особливості мов конкурентного програмування
- •Моделі конкурентних процесів
- •Взаємодія процесів, синхронізація й передача даних
- •2. Внутрішня архітектура трансп’ютера
- •3. Послідовна обробка
- •Регістри трансп’ютера
- •4. Інструкції
- •Безпосередні функції
- •Непрямі функції
- •Ефективність кодування
- •5. Підтримка паралелізму
- •6. Зв'язок
- •Лінії зв'язку
- •7. Таймер
- •8. Альтернативне виконання
- •9. Інструкції із плаваючою крапкою
- •Контрольні запитання
- •2. Найпростіші процеси-примітиви
- •3. Послідовні процеси-композиції
- •4. Паралельні процеси
- •5. Канали зв'язку
- •6. Конструктор альтернативного процесу
- •7. Описи
- •8. Масиви
- •9. Оголошення процесів
- •10. Цикли і масиви процесів
- •Контрольні запитання
- •2. Структури програмування
- •Прості паралельні процеси
- •Синхронізація за допомогою керуючих сигналів
- •3. Мовні засоби для програмування в реальному масштабі часу
- •4. Використання мови оккам для рішення завдань системного програмування
- •Контрольні запитання
- •Рекомендована література
Контрольні запитання
Які різновиди процесів існують у мові OKKAM?
Яким чином формуються послідовні процеси - композиції?
Яким чином реалізуються умовні обчислення?
Яким чином формуються паралельні процеси?
Яким чином задають конструктор альтернативного процесу?
Яким чином задаються канали зв’язку?
Яким чином задаються описи масивів?
Які правила оголошення процесів?
Яким чином задаються описи циклів і масивів процесів?
Рекомендована література
1. Транспьютеры. Архитектура и программное обеспечение. Перевод с англ. – М., ”Радио и связь”, 1993.
2. Бахтеяров С. Д., Дудников Е. Е., Евсеев М. Ю. Транспьютерная технология. – М., ”Радио и связь”, 1993.
Лекція 17. Мова програмування OKKAM (продовження)
План лекції
1. Вирази.
2. Структура програмування.
3. Мовні засоби для програмування в реальному масштабі часу.
4. Використання мови OKKAM для рішення завдань системного програмування.
Виклад лекції
1. Вирази
Кожен вираз в мові Оккам має значення, що обчислюється під час виконання програми або при її компіляції. Значення виразу представляється в ЕОМ у вигляді бітового рядка довжиною в машинне слово.
У мові Оккам відсутні неявні пріоритети операцій, тому для однозначного тлумачення виразу, що містить більше однієї операції, необхідно використати дужки. Виключенням із цього правила є асоціативні операції, які в дужках не мають потреби.
Всі вирази будуються зі знаків операцій, констант, змінних і індексованих масивів. Операції у виразх можуть бути:
арифметичними
а + b |
сума а й b |
а – b |
різниця а й b |
а * b |
добуток а й b |
а / b |
результат розподілу а на b з округленням |
a mod b |
залишок від розподілу а на b (можна використати символ ‘\’) |
– а |
взяття а зі зворотним знаком |
операціями відношень
а < b |
TRUE, якщо а менше b |
a <= b |
TRUE, якщо а менше або дорівнює b |
a = b |
TRUE, якщо а дорівнює b |
a >= b |
TRUE, якщо а більше або дорівнює b |
а > b |
TRUE, якщо а більше b |
а <> b |
TRUE, якщо а не дорівнює b |
логічними
a AND b |
TRUE, якщо a u b — TRUE одночасно |
a OR b |
TRUE, якщо хоча б а або b — TRUE |
a XOR b |
TRUE, якщо тільки a або тільки b — TRUE |
NOT а |
TRUE, якщо а — FALSE, і навпаки |
бітовими
а \/ b |
побітове АБО для слів а й b |
a /\ b |
побітове И для слів а й b |
NOT а |
побітове заперечення слова a |
а
|
побітова сума по модулі 2 слів а й b |
а « b |
зрушення слова а на b біт уліво |
а » b |
зрушення слова а на b біт вправо |
Наприклад,
арифметичні вирази в процесі-примітиві присвоювання
Estimate := (Estimate + (x/Estimate))/2
або в процесі-примітиві виводу
values [i+1] ! (Estimate + (x/Estimate))/2
логічні вирази
string[BYTE i] <> object [BYTE i]
('0' <= char) AND (char <='9')
бітові вирази
(ch/\(l < bit.number)) <> 0
Бітові операції зсуву нециклічні, тобто вивільняють біты, що, заповнюються нулями.
Значення булевих констант TRUE і FALSE є словами, причому TRUE позначає слово, що цілком складається з одних одиниць, a FALSE - з нулів. Тому
(х /\ TRUE) завжди х
(х /\ FALSE) завжди 0
Мова Оккам дозволяє також будувати різні бітові рядки, а потім використовувати їх як цілі, логічні або булеві константи або змінні. Наприклад, значення виразу
(NOT 0) > 1
цілком складається з одних одиниць за винятком старшого розряду машинного слова, тобто є максимально представленим позитивним числом на конкретній ЕОМ. Важливо те, що вид цього виразу не змінюється при переносі програми з однієї ЕОМ на іншу. Ще один приклад:
y := (NOT(TRUE<8)) /\ y
Цей вираз виділяє молодший байт слова y.
Подібні операції над бітовими рядками дозволяють складати Оккам-програми, що не залежать від розрядності процесора, для якого вони призначаються.