Однофункціональні базиси. Методи синтезу комбінаційних схем у цих базисах.
Перш ніж перейти до прикладів синтезу композиційних логічних схем розглянемо способи використання універсальності вентилів І-НЕ і ІЛІ-НЕ. Властивість універсальності вентиля ІЛІ-НЕ(NOR):
Властивість універсальності вентиля І-НЕ(NAND):
Схеми з одним виходом і декількома входами відносяться до найбільш простих схем. Основна складність при синтезі цих схем полягає в тому, щоб знайти вираз для вихідної функції в заданому базисі.Розглянемо деякі прості приклади переходу від логічних рівнянь до логічних ланцюгів, тобто приклади синтезу простих логічних ланцюгів. Зокрема, розглянемо перехід від представлення функції в НДФ (ДНФ) до її реалізації на елементах І-НЕ і ІЛІ-НЕ. НДФ має вигляд: F = ABD + ABD + C.
Розглянемо реалізацію цього рівняння за допомогою елементів І-НЕ. У загальному випадку на елементах І-НЕ НДФ функція реалізується за допомогою двох ступенів логіки. На першому ступені виходять інверсні значення логічних творів і однобуквених членів. На другому ступені виконуються операції І-НЕ, тобто НЕ-ІЛІ, над одержаними інверсіями. Дійсно, за допомогою застосування подвійного заперечення можна привести задану функцію до вигляду:
F = ABD + ABD + C = ABD ABD C
Схема, відповідна даному рівнянню, приведена нижче.
У приведеній схемі для елементів першого і другого ступеня застосовані різні, але еквівалентні умовні позначення. При реалізації НДФ функції за допомогою елементів І-НЕ такий прийом дозволяє вести проектування схем, користуючись операціями І, АБО і НЕ.
По рассмотреним раніше правилам з вищенаведеної карти Карно, може бути знайдена мінімальна НКФ заданій функції:
F = (C +D)(A +B +C)(A + B +C)
Звідси, узявши подвійне заперечення і застосувавши теорему Де Моргана, одержимо
EMBED Equation.3
На елементах І-НЕ КНФ функції реалізується за допомогою трьох ступенів (відповідна схема приведена нижче). На першому ступені за допомогою операції І-НЕ над інверсними значеннями змінних, що входять в КНФ, утворюються логічні суми. На другому ступені виконується операція І-НЕ над логічними сумами і однобуквеними членами (якщо вони є), тим самим утворюється інверсне значення функції. На третьому ступені виконується інверсія і виходить шукана функція.
При мінімізації логічних функцій для логічних схем, які передбачається будувати на базі елементів І-НЕ або ІЛІ-НЕ, необхідно окрім власне мінімізації прагнути також до того, щоб структурна формула була представлена у вигляді комбінації з елементів І-НЕ або ІЛІ-НЕ. Тоді перехід від структурної формули до функціональної схеми не буде складним. У будь-якому випадку при побудові логічної схеми в базисі І-НЕ на основі логічної функції, представленої в МНДФ, необхідно скрізь замість елементів І і АБО ставити елемент І-НЕ. При побудові логічної схеми в базисі ІЛІ-НЕ на основі логічної функції, представленої в МНКФ, необхідно скрізь замість елементів І і АБО ставити елемент ІЛІ-НЕ. Проте треба врахувати, що є точка зору, по якій вважається, що найбільш зручним для вирішення синтезу схем цифрових автоматів є базис І, АБО, НЕ. Тепер розглянемо способи формування схеми, що реалізовує функцію підсумовування по модулю 2 (функція f6), в різних базисах. Логічна функція f6, як відомо, в аналітичному вигляді представляється у вигляді: F = AB +AB, і має наступну таблицю істинності:
У базисі І, АБО, НЕ схема, що реалізовує функцію f6, має вигляд:
M2
F
A
B
В базисе ИЛИ-НЕ:
F = AB + AB = A +B +A + B = A +B +A + B
В базисе И-НЕ:
F = AB + AB = AB AB
. ПМЛ. Схема макрокомірки.
1556ХП2
EMBED Visio.Drawing.11
EMBED Visio.Drawing.11
EMBED Equation.3
D=Q+=
EMBED Visio.Drawing.11
EMBED Visio.Drawing.11
EMBED Visio.Drawing.11
ПЛМ (Програмована логічна матриця)
EMBED Visio.Drawing.11
ПМЛ (Програмована матрична логіка)
Модель та зпрощенна структура ПЛМ та ПМЛ.
ПЛМ і ПМЛ мають матриці І та АБО. Основна відмінність між ними, що в ПМЛ матриця АБО фіксована, а в ПЛМ програмуються дві матриці, що забезпечує їй більшу гнучкість порівнянно з ПМЛ.
Перепрограмуванню ця мікросхема не підлягає
ROM – read only memory
PROM – programmable read only memory
EPROM – erasable programmable read only memory (ультрафіолетом)
EEPROM – electrically erasable programmable read only memory
Реконфігурована матрична логіка (FPGA – Field Programmable Gate Arrays)
Програмована матрична логіка
EPLD – Erasable Programmable Logic Device
CPLD – Complex Programmable Logic Device
Що таке кеш? Однорівневий та дворівневий кеш, їхня продуктивність.
1. Розмір кешу та розмір блоку.
2. Функція відбиття кешу на головну пам’ять:
- пряме відбиття.
- асоціативне відбиття,
- частково-асоціативне відбиття.
3. Алгоритм заміщення:
- визначення “найстаршого” (за зверненням до нього) блоку LRU (Least Recently Used),
- за дисципліною FIFO (First-In-First-Out),
- блок, що найменшу кількість разів використовувався (Least Frequently Used),
- випадковий алгоритм (не є гіршим).
- інші (наприклад, Working Set).
4. Стратегія запису до кешу:
- наскрізний запис (Write Through), повільність,
- зворотній запис (Write Back з притаманою йому проблемою збереження когерентності пам’яті),
Однорівневий кеш, продуктивність
Кеш рівня 1 має забезпечити, насамперед, мінімальний час обслуговування ситуації влучення до кеша. У розглянутому више інформаційному тракті конвеєрної RISC машини передбачалося, що отримання інформації з пам'яті інструкцій та обмін інформацією із пам'яттю даних виконувався за один інтервал тактових імпульсів, тобто, назвичайно швидко. Ясно, що це можливо лише за умови використання роздільного надшвидкого кеша (для інструкцій і для даних, окремо) із високою імовірністю влучення до кешу. Розглянемо методику обчислення продуктивності так званої системи із розділенем кешем лише першого рівня на наступному прикладі. Нехай реальний кеш інструкцій для програми gcc має 2% промахів, а реальний кеш даних - 4% (отримано в спосіб моделювання). Хай наша машина має СРІ=2, коли усі звернення до пам'яті задовільняє кеш, а покарання за невлучення до будь-якого кеша дорівнює 40 тактових інтервалів (циклів). Визначити, у скільки разів скоршою є машина із ідеальним кешем, що задовільняє усі звернення до пам'яті на порівняння з машиною із реальним кешем?Питома вага інструкцій load/store складає для програми gcc 36%. Якщо програма компілятора містить І інструкцій, тоді ми маємо втратити при вибиранні інструкцій, що дорівнюють І*2%*40= 0.8*I циклів на очікування готовності пам'яті інструкцій. При обміні даними ми втратимо ще I*4%*36%*40=0.58*I циклів. Отже, відношення витрачених на виконання програми циклів для реального кеша до того самого при ідеальному кеші становить I*(2 + 0.8 + 0.58)/(I*2) = 3.38/2 = 1.69 разів. Тобто, реальний (і цілком непоганий) кеш першого рівня майже вдвічі пригальмував машину. Зауважимо, що статистичні 36% з розподілу інструкцій ми змінити не можемо, а ось вплинути на статистики 2% і 4% ми спроможні (в спосіб уведення додаткового кеша другого рівня).
Дворівневий кеш, продуктивність
Дворівневий кеш складено ієрархією кешів першого та другого рівнів. При чому місткість кешу другого рівня значно збільшеною у порівнянні із кешем першого рівня. Основною задачею кешу другого рівня є зменшення відсотку невлучень до нього, чого і досягають за рахунок певного зниження його швидкодії у порівнянні із процесором. Розглянемо задачу. Нехай маємо процесор із СРІ=1 за умови, що усі посилання на пам'ять задовільняє ідеальний кеш. Тактова частота процесора – 500 МГц. Час доступу до головної пам'яті складає 200 нс, враховуючі усі відпрацювання апаратури виправлення кешових промахів. Нехай також реально питома вага (у розрахунку на одну інструкцію) кешових промахів складає 5%. В скільки разів можна прискорити машину уведенням додаткового кешу другого рівня (доступ за 20 нс), який є достатньо містким, аби знизити кешові промахи до 2%? Покарання за невлучення до однорівневого кеша, що функціонує на частоті процера є 200нс / 2нс = 100 тактових інтервалів. Тоді реальне значення СРІ дорівнюватиме Реальне СРІ = Ідеальне СРІ + Число циклів пригальмування на одну інструкцію при невлученні до кешу. Маємо, що Реальне СРІ = 1.0 + 5%*100 = 6.0. Отже, при 5 відсотках невлучення до кешу у машині із наявним лише кешем першого рівня "досягли пригальмування в 6.0/1.0 = 6 разів. У дворівневій кешевій системі невлучення до кешу першого рівня автоматично спричинює звернення до кешу другого рівня. Якщо кеш другого рівня забезпечує час вибирання даних як 20 нс (50 МГц), тоді покараннят за звернення до кешу другого рівня є 20 нс / 2 нс = 10 тактових інтервалів. Ясно, що у машини із дворівневим кешем реальне число СРІ для кожної інструкції визначиться сумою ідеального СРІ плюс сума покарань за невлучення до кожного із двох кешів ( у найгіршому випадку маємо невлучення як до першого, так і до другого кешу, а от до головної пам'яті влучаємо завжди). Тоді Реальне СРІ = Ідеальне СРІ + зважені (затримки кешу першого рівня + затримки кешу другого рівня). Отже, Реальне СРІ = 1 + 5%* 10 + 2%* 100= 3.5. Тобто, уведення дворівневої ієрархії кеш-пам'яті зменшило пригальмування із 6-ти до 3.5 тактових інтервалів в розрахунку на одну інструкцію..