1. Задачі та комп’ютерні ресурси
Відповідь
Наступним рисунком подано задачі, які моделюють комп’ютерні системи, та необхідні для цього моделювання комп’ютерні ресурси.
Видно, що місткість пам’яті досягає одного терабайта (1000 гігабайтів) за умови, що швидкодія має бути один терафлопс (1000 гігафлопсів = 1000 000 мегафлопсів). Вмістиме рисуноку об’єктивно засвідчує існування суперечності “швидкодія системи / місткість пам’яті». Зрозуміло, що межа обсягу потрібних комп’ютерних ресурсів є рухомою. Надати ресурси, що вимагають задачі, за допомогою стандартних однопроцесорних систем неможливо. Це спричинює використання мультипроцесорів, які визначають магістральний напрямок удосконалення однопроцесорних систем, тобто уніпроцесорів.
При цьому, яскравим прикладом уніпроцесорів є сучасні персональні комп’ютери.
Зауважимо, що на перший план комп’ютерного моделювання (змоделював – значить опанував)
висунулися задачі хімії та біології. Часто-густо біохімічні задачі належать до так званого класу
«некоректних» задач. Треба зауважити і про те, що за сучасною проблематикою питома вага
«нечисельних» та «некоректних» задач постійно зростає і вже перевищує відповідну вагу класичних «чисельних» задач, що стандартно програмуються не менш класичною мовою FORTRAN.
2. Загальна класифікація комп’ютерних систем
Відповідь
Будь-яка класифікація, за дефініцією, не є повною, або ж досконалою, що є наслідком відомих теорем Гьоделя про неповноту формальних систем. Проте відмова від класифікацій спричинює втрату системності, тоді як систематизація є основним інструментом структуризації інформації, тобто отримання нового знання на основі первинної невпорядкованої інформації. Треба підкреслити те, що комп’ютер не спроможний подати нову інформацію як таку, проте в спосіб систематизації вже наданої йому інформації він може отримати нове знання. Як приклад, нагадаємо, що тривимірну інтегральну схему винайшов саме комп’ютер, а не людина.
Аби унаочнити місце нашого курсу у велетенській галузі комп’ютерних засобів скористаємося
узагальненою класифікацію японських учених, фундаторів інтелектуальних комп’ютерних систем п’ятого покоління. Згідно їхньої класифікації (1979 рік) усі комп’ютерні засоби можна поділити на:
- засоби обробки чисел,
- засоби обробки сигналів (цифрові сигнальні процесори/комп’ютери),
- засоби обробки символів (мовні та об’єктні машини, наприклад, LISP-машини, PROLOG-машини, SmallTalk-машини, Java-машини тощо).
Предметом дослідження нашого курсу є архітектури комп’ютерів обробки чисел.
3. Продуктивність комп’ютерних систем
Відповідь
Припустимо, що використано дві різні робочі станції, що виконують ту ж саму програму. За умови, коли перша робоча станція виконала програму за менший час у порівнянні з другою, можна казати, що ця перша робоча станція є скорішою. Тут ідеться про так званий час відгуку (response time чи execution time), тобто проміжок часу поміж стартом та завершенням виконання деякого програмного завдання (task). Менеджери обчислювальних центрів зацікавлені у збільшенні перепускної спроможності (throughput, продуктивність) – загальної кількості обчислювальної роботи, яку виконано за фіксований часовий інтервал. Проте обидві щойно зазначені характеристики є взаємно залежними. Адже заміна процесора на більш швидкий призведе до покращення як першої, так і другої характеристики. Це дозволяє визначити продуктивність (performance) наступним чином:
Продуктивність X = 1/Час_виконання_X.
Тоді порівняння характеристик двох робочих станцій X i Y можна виконати за наступними правилами.
Якщо
Продуктивність _X > Продуктивність _Y,
тоді
1/ Час_виконання _X > 1/ Час_виконання _Y,
Час_виконання _Y > Час_виконання _X
Тобто, час виконання Y перевищує час виконання Х.
Часто-густо кажуть про те, щo продуктивність X перевищує продуктивність Y в n разів. Формально це можна записати як:
Продуктивність _X/ Продуктивність _Y = n.
Зараз треба детальніше розглянути питання про складові часу виконання. Найпростіше визначити час виконання через сумарний час виконання завдання. Цей сумарний час складається з часу доступу до диска, часу звернення до пам’яті, часу активності уводу-виводу, додаткових витрати часу на спрацювання модулів операційної системи, витрат процесорного часу тощо. Зауважимо, що саме витрати процесорного часу є найважливішими в контексті порівняння ефективності архітектур. Вони мають назву CPU execution time чи CPU time.
В межах витрат процесорного часу також треба розрізняти дві складові компоненти, а саме, процесорний час користувача (user CPU time) та системний процесорний час (system CPU time). Зауважимо, що відокремлене вимірювання цих двох складових є неординарним завданням, але яке є реалізованим в ОС Unix засобами команди time у дуже зручний з погляду користувача спосіб. Нехай виклик команди time cпричинив наступний відгук: 90,7u 12,9s 2:39 65%
Отримане треба тлумачити так. User CPU time = 90,7 sec, System CPU time = 12,9 sec, загальний час виконання завдання = 2 хвилини 39 секунд. Питома вага процесорного часу у загальному часі виконання завдання склала (90,7 + 12.9) / 159 = 65 відсотків.
Зауважимо, що більше від третини загального часу втрачено на допоміжні дії комп’ютерної системи.
Привернемо увагу до того, що у подальшому викладенні термін “команда” належатиме виключно командам операційної системи, а термін “інструкція” – лише командам процесорів.
Продуктивність як головний чинник еволюції комп’ютерних систем
Відповідь
Залежність зростання продуктивності (performance) від напрямку еволюції комп’ютерних систем подано наступним рисунком.
Еволюція продуктивності
міні-комп'ютерівю. Це зумовило перевагу мікросистем. [Hennessy and Jouppi, 1991]. Зазначимо, що
мейнфрейм (mainframe спочатку був виключно назвою рами конструкції металевої шафи, що містить
апаратуру машини; потім саме цим словом почали називати вже перші машини системи ІВМ 360) – це
машина загального призначення, або ж, просто велика машина.
4. Комп’ютерна архітектура рівня машинних інструкцій
Відповідь
Кожній комп’ютерній системі притамана ієрархічна низка впорядкованих архітектур. Можна казати про макроархітектури операційних систем, про архітектуру рівня машинних інструкцій, що знаходиться на межі програмних та апаратних засобів, про внутрішні мікроархітектури процесорів тощо. В контексті нашого курсу принципового значення набуває так звана архітектура рівня машинних інструкцій, що розташована, наближено. у середині вище зазначеної ієрархії архітектур.
Архітектура комп’ютерної системи рівня машинних інструкцій (Instruction Set Architecture - ISA) – це абстрактне сприйняття машини (або ж означення фізичної системи, а в нас – це комплекс апаратних засобів та мікрокод) програмістом, який програмує цю машину мовою асемблер, або розробником фази генерування машинного коду деякого компілятора (тобто, системним програмістом). Нагадаємо, що асемблер визначають як мову класу “один в один”, тобто, як таку мову програмування, де кожному унікальному оператору мови відповідає унікальна машинна інструкція. Архітектура рівня машинних інструкцій розмежовує програмну та апаратну частини машини та визначає програмний інтерфейс із боку апаратних засобів до (системних) програм. Важливо, що архітектура визначає принципи організації обчислювальної системи. При цьому вона не відбиває керування та пересилання даних у межах процесора, конструктивні особливості логічних електронних схем та специфіку технології виробництва цих схем. Архітектура комп’ютера, передусім, подає:
- видимі програмісту об’єкти, що містять дані (регістри, пам’ять, порти уводу-виводу тощо),
- оператори зміни вмісту об’єктів (множини інструкцій),
- інформацію про комбінування щойно зазначених операторів із метою (програмного) створення нових функцій на основі вже наданих.
Зрозуміло, що архітектуру рівня машинних інструкцій можна визначити як ті ресурси машини (множину інструкцій, структура, місткість та організацію пам’яті, навіть структуру та організацію кеш-пам’яті, як у процесорі Ітаніум), які є наданими до використання системному програмісту. Комп’ютерний архітектор приймає рішення за трьома напрямками:
- визначення форм подання машинних програм та правил інтерпретації цих програм машиною, - уставлення форматів інструкцій, які використовують при програмуванні,
- уставлення форм і форматів подання даних. Сам термін “архітектура комп’ютерної системи” виник у 1964 році із випуском першої комп’ютерної системи третього покоління ІВМ 360 (потім серія 370), що містила низку програмно сумісних здолу догори машин, від найменш потужних до надпотужних класу ІВМ 360/91. Тобто, усвідомлення важливості означення та реалізації єдиної у межах цілої родини комп’ютерів ISA-архітектури стало саме
тим фактором, що принципово відмежував напівпровідникові машини другого покоління (найбільшою тут була перша конвеєрна машина Stretch фірми IBM, понад 400 тис. транзисторів та напівпровідникових діодів) від інтегральних комп’ютерних систем третього покоління. Єдиний документ “Принципи функціонування системи ІВМ 360/370” визначив архітектуру усіх процесорів цієї системи, від малих до великих, а два виключення, що містили машинно-залежні документи, стосувалися наступних суто технічних, а не архітектурних питань:
- способів повідомлень з боку апаратури системним програмним засобам про збої у роботі апаратури, - означень командних слів каналів підсистеми уводу-виводу інформації.
Результати реалізації деякої комп’ютерної архітектури рівня машинних інструкцій подають наявними апаратними засобами, які функціонують за визначеними архітектурою правилами. Деяка родина машин може мати незмінну архітектуру рівня машинних інструкцій (тоді усі машини є програмно, або ж більш сильно, бінарно сумісними), але разом із цим, окремі машини цієї родини можуть містити кардинально розбіжні апаратні засоби. Наприклад, так званий паралелізм чи/або конвеєризація є методами, які з різною глибиною можна застосовувати в межах деякої єдиної архітектури рівня машинних інструкцій.
5 .Класичні комп’ютерні архітектури. Їхній кількісний розгляд.
Відповідь
Наступним рисунком зліва направо подані наступні комп'ютерні архітектури:
- стекова (машини PDP-11/VAX-11 фірми DEC),
- акумуляторна (перші машини, мінімальне число регістрів),
- регістр-пам'ять (IBM/360/370),
- регістр-регістр/завантажити-зберігти (сучасні RISC машини).
Класичні комп’ютерні архітектури (Hennessy & Patterson, 3-d Edition, 2002)
Застосовано позначення: TOS – верхівка стека, ALU – АЛП (арифметико-логічний пристрій). На стековій архітектурі грунтувалися так звані міні-ЕОМ PDP-11/VAX-11 фірми DEC (Digital), які використовували американські університети за часів створення мови Сі та операційної системи UNIX в 60-70 роки минулого сторіччя. Можна навіть казати, що мова Сі є варіантом асемблерного запису машинних інструкцій цих комп'ютерів. Термін "міні" застосовували, аби підкреслити, що апаратна частина цих комп'ютерів була мінімальною, відповідно, і ціна їх була значно меншою від ціни мейнфреймів, комп'ютерів загального призначення родини IBM/360. Проте неможливість реалізації швидкого стека потрібної місткості змусило DEC перейти до нової архітектури Alpha, а відсутність достатнього числа аплікацій під цю нову архітектуру спричинило серьозні обмеження на її поширення і, як наслідок, юридичну смерть цієї фірми.
6)СISC, RISC та гібридні інструкції.
7)Принстонська та гарвардська архітектури.
Відповідь
Пригадаємо принципи, що закладено до принстонської (університет міста Princeton, США, де
працював Нойман) архітектури та гарвардської (університет міста Harvard, США) архітектури. Перша архітектура має спільну головну пам’ять, де зберігаються коди даних та коди програм. Відрізнення одних кодів від інших виконують контекстно. Друга архітектура містить дві відокремлені пам’яті, одну – для даних, іншу – для програм.
Необхідність використання гарвардської архітектури можна пояснити так. Ядро комп’ютера Ноймана утворено процесором та головною пам’яттю. Бажано аби обидві компоненти ядра не пригальмовували один одного, тобто працювали з рівною швидкодію. На практиці вузол пам’яті є значно (на два/три порядки) повільнішим від процесора і ця прірва у швидкодії з прогресом технологій лише зростає.
Подолати прірву можна структурними методами, збільшуючи смугу (пропускання) пам’яті. Саме цей підхід реалізує гарвардська архітектура з двома запам’ятовувальними пристроями. Зрозуміло, що тут паралельно виконують операції вибирання інструкцій програми, з одного боку, а з другого – вибирання та запис кодів даних і результатів обчислень.
Проте швидкі машини гарвардської архітектури не дозволяють розроблювати для себе програми. Це за них виконують засобами кросових технологій машини принстонської архітектури.
Зрозуміло, що бажано створити машину з дуальною архітектурою, яка водночас запозичує нову якість – швидкодію від гарвардської архітектури та стандартну парадигму розробки програм від принстонської архітектури. Злиття двох архітектур виконують на рівні внутрішньої кеш-пам’яті процесора, у спосіб поділу кеша на кеш даних та кеш інструкцій. Зазначене ілюструє поданий вище рисунок. Злиттям архітектур програмісту надано зручність програмних технологій принстонської архітектури, а процесор відчуває гарвардську архітектуру та значно менше пригальмовується з боку головної пам’яті. Реально ситуація є більш складною, оскільки замість суто гарвардської архітектури застосовують її модифікацію, коли пам’ять програм містить частину кодів даних.
8 ) Витрати процесорного часу.
Витрати часу процесора на опрацювання деякої програми визначають за формулою:
Тут:
CPUTime – шуканий час, CPIi (clocks per instruction) – кількість тактових імпульсів на виконання і-
того типу інструкції, ICi (instruction count) - число інструкцій і-того типу у тестовій програмі,
ClockCycleTime – тривалість одного тактового інтервалу.
Аби зменшити ClockCycleTime треба покращити технологію реалізації апаратних засобів та
організацію цих апаратних засобів у машині. СРІ зменшують покращеною організацією машини й утіленням раціональної комп’ютерної архітектури рівня машинних інструкцій. Значення ІС залежить від архітектури рівня машинного інструкцій та застосованої технології компілювання програми (стандартної або ж оптимізованої). Зрозуміло, що витрати процесорного часу є функцією багатьох змінних, їх мінімізують як евристичними, так і формальними методами.
9).Паралелізм і конвеєризація (перекриття). Перекриття проти конвеєризації .
Відповідь
Аби підвищити продуктивність універсальних комп’ютерних систем використовують наступне:
- розпаралелювання,
- конвеєризацію (у сенсі перекриття виконання сусідніх інструкцій програми в часі, або ж часове розпаралелення),
- підвищення тактової частоти (фактор технології),
- оптимізацію частини апаратно-програмних засобів під задачу, точніше під конкретний алгоритм. Розбіжність паралелізму і конвеєризації проілюструємо наступним рисунком.
Паралельний та конвеєрний варіанти прискорення обчислення функції
Тут обчислення функції у конвеєрній системі поділяють на покрокове обчислення підфункій, на які поділено цільову функцію. В паралельній системі апаратно реалізують декілька апаратних пристроїв обчислення цільової функції. При цьому в паралельних та конвеєрних системах існує актуальна задача завантаження роботою надлишкових (з погляду стандартної організації обчислення) апаратних засобів.
Несуперечливим є одночасне застосування розпаралелювання і конвеєризації. Наприклад,
суперкомп’ютер CDC 6600 (1964 рік) спроектували як паралельний, а його вдосконалену версію CDC 7600 зробили вже паралельно-конвеєрною.
Принципові відмінності паралельної та конвеєрної організації обчислень подано наступною таблицею.
Цікаво, що майже від початку випуску універсальних комп’ютерних систем, усі вони були більше чи менше конвеєризованими (працювали з перекриттям). Прикладом є навіть перший комерційний комп’ютер UNIVAC I, за допомогою якого передбачено перемогу генерала Дуайда Ейзенхауера над Гаррі Труменом (став президентом по смерті Франкліна Рузвельта, саме він наказав використати ядерну зброю проти Японії в 1945 році) на президентських перегонах США у 1952 році. Всі сучасні уніпроцесори використовують і паралелелізм, і перекриття (конвеєризацію).
Перекриття проти конвеєризації
Конвеєризація має місце тоді, коли істиною є наступне:
- кожне обчислення базової функції є відносно незалежним від попереднього обчислення,
- кожне обчислення вимагає наближено того ж самого ланцюжка підфункцій,
- підфункції щільно пов’язані поміж собою,
- час обчислення різних підфункцій є майже рівним.
Перекриття має місце тоді, коли істиною є наступне:
- окремі обчислення мають поміж собою залежності,
- кожне обчислення може вимагати відмінного ланцюжка підфункцій,
- за своїм призначенням підфункції достатньо різнорідні,
- час, необхідний для виконання дій на деякій сходинці не є постійним; він є функцією як самої
сходинки, так і функцією даних, що пересуваються цією сходинкою.
Практична розбіжність поміж паралельною обробкою, конвеєрною обробкою та перекриттям може бути досить нечіткою. Проте, до універсальних систем краще пасує термін перекриття виконання інструкцій одинарного потоку ніж термін конвеєрного опрацювання цих інструкцій.
10) Тести продуктивності комп’ютерних систем.
засобом тестування порівняльної продуктивності комп’ютерних систем є так звані синтетичні тести утиліт Norton Utilities. Сама тестова програма має назву System Benchmark, копію її екрану подано наступним рисунком.
Тут відбито, в скільки разів певна реальна система (її результати позначено рожевим, і це є система Пентіум 166 ММХ) є скоршою у порівнянні із еталонною системою на основі першого 32-х розрядного процесора Інтел 386SX 16 МГц. Проте репрезентативність порівняння ПК за допомогою цих штучно утворених (синтетичних) тестів не завжди є прийнятливою. Саме через це професіонали комп’ютерного дизайну використовують наступні, впритул наближені до реальності тестові системи:
- Business Application Performance Corporation (BARC);
- Standard Performance Evaluation Cooperative (SPEC);
- Intеl ICOMP Index.
BARCО. Це консорціум індустріальних публікацій незалежних тестових лабораторій, розробників комп’ютерів, напівпровідникової техніки і програмного забезпечення. Зараз членами концорціумів є Adaptec, Amdahl corporation, Compaq, Dell, Hewlett-Packard, IBM, Intel, Microsoft, Motorola, NEC тощо.
Проголошений у грудні 1999 року набір тестів SYSmark 2000 функціoнує під керуванням усіх 32-х бітових версій ОС Windows і дозволяє визначити продуктивність комп’ютера в режимі імітації реального його функціонування. До складу тестів залучено 12 аплікацій із спільною назвою Internet Content Creation and Productivity. При тестуванні виконуються наступні офісні аплікації:
- Corel Draw v 9;
- Microsoft Exel 2000;
- Dragon System Naturally Speaking Preferred 4;
- Netscape Communicator 4.61;
- Corel Paradox 9;
- Microsoft PowerPoint 2000;
- Microsoft Word 2000;
- Деякі аплікації для створення Web-узлів.
Отримані за тестуванням коефіцієнти відбивають порівняльну продуктивність комп’ютера. При цьому за базову прийнято систему Інтел Пентіум III 450 MHz, 440BX, 128MB DIMM, Diamond Viper V770 Ultra, 32 MB, 1024x768 16 bpp, Windows 98 SE. Базова конфігурація (взірцева система) має за означенням індекс 100. Якщо за результатами тестування проголошено індекс 200 для деякої іншої тестованої системи, то визнають, що вона удвічі випереджує за продуктивності калібраційну систему. Існують і інші тести від
BARC, але вони є менш відомими.
ICOMP. Цей індекс відбиває зважені коефіцієнти продуктивності для чотирьох наступних категорій – продуктивність, мультимедія, тривимірна графіка (3D) і інтернет. Коефіцієнти визначають на основі наступних індустріальних стандартів – CPU mark (20%), Wintune (20%), Advanced CPU Integer Test (20%), Multimedia Mark + WinBench + Lighting and Transformation Test (20%), WinBench FPU Winmark (5%), Jmark Processor Test (10 %). В дужках позначено питому вагу у результуючій суміші індекси від виконання відповідних тестів. Як правило, за допомогою індекса ICOMP порівнюють поміж собою продуктивність процесорів від фірми Інтел.
11).Операційні системи та апаратні засоби.
Відповідь
Можна сформулювати наступні вимоги з боку операційних систем щодо адекватності
підпорядкованих ним апаратних засобів:
1. Великий, іноді навіть надвеликий (сотні терабайт) адресувальний простір.
2. Розвинена і стійка апаратна підтримка програмного механізму керування та захисту віртуальної пам'яті.
3. Підтримка швидкого контекстного перемкнення поміж процесами.
4. Розвинена апаратна частина реалізації переривань, виключень (exceptions) і пасток (traps).
5. Безумовна підтримка стандартів, у тому числі стандартів IEEE на формати рухомої коми, інтерфейси уводу-виводу, підтримка мов високого рівня і, навіть, підтримка вибраних функцій ОС.
12)Архітектура і закон Амдаля. Графічна інтерпретація закону Амдаля.
Відповідь
Формулювання закону Амдаля є наступним. Загальне прискорення, що обумовлено уведенням швидкодіючого пристрою, обмежене часткою часу, протягом якої швидкодіючий пристрій використовують.Закон Амдаля (видатний конструктор мейнфреймів) аналітично формулюють так:
Тут:
ExecutionTime – час виконання програми чи її фрагмента,
new, old – новий, старий (“після” або “до” прискорення ) час,
Frac – частка часу опрацювання, в якій використовується прискорене обладнання,
Speedup(enhan) – прискорення нової апаратури в порівнянні зі старою,
Speedup(overall) – досягнете прискорення опрацювання (загальне).
Наприклад, нове обладнання в 10 разів є швидшим від старого, але нове обладнання використовують
лише у 40 відсотках загального часового інтервалу опрацювання. Тоді досягають прискорення
Частка (покращеного) = 0.4.
Прискорення (покращеного) = 10.
Прискорення (загальне) = (1/(0.6 + 0.4/10)) = 1/0.64 = 1.56.
Якщо питома вага використання прискореного зросте до 0.9, тоді
Прискорення (загальне) = 1/0.19 = 5.1.
Висновок: використовувати швидке обладнання з малим “питомим” навантаженням є не раціональним (наприклад, неконвеєрний характер поділювача з рухомою комою не є об’єктом головної турботи при вирішенні питання про прискорення процесора).
Нехай час опрацювання деякої задачі складає 100 умовних часових одиниць. При цьому одна частка обладнання працює 80 часових одиниць, а інша частка обладнання – 20 часових одиниць. Є можливість прискорити роботу другої частки обладнання в 4 рази. Яке загальне прискорення опрацювання отримаємо?
Відповідь визначимо не за допомогою аналітичного виразу закону Амдаля, а спрощено, як на рисунку.
Імовірно, що не вартує витрачати гроші на модернізацію тої частки обладнання, яку використовують епізодично. Адже в нас загальне прискорення обмежене числом 1.2 раза.
13)Технологія і закон Мура.
Відповідь
За емпіричним законом (1965 рік, однин із засновників фірми Інтел Годона Мура (Gordon Moore) “кожні 18 місяців кількість транзисторів в інтегральній схемі подвоюється, і це має тривати, принаймі декілька наступних років”. Навіть у 2002 році високопоставлені особи (VIP) з Інтел запевняють, що закон Мура мусить “працювати”, принаймі, до 2017 року, і що треба зробити все, аби цей закон “працював” швидше”. Часто-густо закон Мура трактують дещо вільно, із заміною слів “число транзисторів” на слово “продуктивність”. Від цього закон ще жодного разу не втратив коректності. Адже ми знаємо як швидко морально застарівають технічно справні персональні комп’ютери! Подамо далі вибрані відомості про сучасний стан напівпровідникових технологій, аби визначити чи відповідає темп їхнього розвитку закону Мура.
Проаналізуємо подану таблицею інформацію.
1. Інтел впроваджує нове покоління технологій кожні два роки, починаючи від 1989 року.
2. Інтел на основі досягнень власного підрозділу з наукових досліджень гарпнтує узятий темп зміни технологій принаймі протягом наступного десятиліття.
3. При цьому кожна нова технологія зменшує геометричні розміри мінімум із множником (шкалою) ~ 0.7x, збільшує ~ 2.0 рази щільність пакування транзисторів в мікросхемі та приблизно в 1.5 рази пришвидшує швидкість перемикання троанзистора.
Отже, доходимо висновка, що дія емпіричного закона Мура триває і має тривати, принаймі, ще десятиліття. Подивимося на порівняння розмірів сучасного 90нм транзистора фірми Інтел із вірусом грипа. Ці розміри є практично збіжними. Зауважимо, що зараз (2002 рік) Інтел розпочала дослідження з випуску так званого терагерцного транзистора, тобто напівпровідникового прилада, що має функціонувати із тактовою частотою 1000 ТГц = 1 000 000 МГц = 1 000 000 000 000 Гц. Фактично в освоєній 90 нанометровій технології випуску транзисторів інтегральної схеми вже вперше у світі, як для серійної продукції, застосовано нанотехнології, бо позначений на наступному рисунку силіконовий ізолятор має фантастичну товщину в 1.2 нм. Отже, цей ізолятор має товщину в 5 атомів. Наступним рисунком подано інформацію про кристали статичної пам'яті. Такі комірки Ін тел використовує при побудові накристальної кеш-пам'яті власних процесорів. Нагадаємо, що стандартно одна комірка швидкої кеш-пам'яті містить шість транзисторів (динамічної – один, але вона є повільною).
Площа комірки дорівнює одному квадратному мікрометру. Отже, на кристалі, що вже зараз містить 300 млн. транзисторів, можна реалізувати кеш на 300/6=50 мегабітів (8.5 мегабайтів) статичної кеш-пам'яті першого та другого рівнів. На рисунку, наведеному нижче, розміри кристала такої пам'яті порівнюють із розмірами монети номіналом 25 центів (так званий дайм).
14) Архітектура проти мікроархітектури. Стратегія розвитку мікроархітектури.
Відповідь
Подамо на питання відповідь від фірми Інтел та переклад цієї відповіді українською мовою.
Архітектура процесора містить опис множини інструкцій, програмно-керованих регістрів, резидентно-розташованих у пам’яті структур даних, що є доступними програмісту і які у майбутньому можна змінювати в певних межах з метою покращення. Мікроархітектура процесора подає опис реалізації процесорної архітектури в силіконі. В межах певної генерації процесорів, наприклад для ІА-32, мікроархітектуру, як правило, змінюють із переходом до наступної генерації процесора, в той час як стандартна частина архітектури ІА-32, що грунтується на інструкціях множини х86 та відомих програмно-керованих регістрах лишають незмінною. Все це потрібно для того аби забезпечити зворотню сумістність програмних кодів, які викликалися на ранішніх моделях процесорів тої самої архітектурної родини (порівняйте процесор і386, 1987 рік, та процесор Пентіум 4, 2001 рік; обидва процесора належать до архітектурної родини ІА-32 та, водночас, мають разюче відмінну мікроархітектуру).
Наступним рисунком подано стратегію розвитоку мікроархітектури процесорі архітектури ІА-32 залежно від плину часу та нових актуальних комп’ютерних задач, які треба розв’язувати.
Бачимо, що вимогам графічної мережевої об’єктної системи Windows відповідав вже процессор мікроархітектури і486 з родинною, ІА-32 архітектурою. Актуалізація задач мультимедіа змусила радикально змінити мікроархітектуру, чому і відповідали перші потокові процесори Пентіум ММХ потокової мікроархітектури MMX, з притаманою цьому процесорові родинною архітектурою ІА-32. Потім настав час розв’язання актуальної задачі масової реалізації візуальних обчислень (прикладом є пакет MATLAB 6.х), що і спричинло появу поновленої мікроархітектури процесорів Пентіум II/III тої самої родинної архітектури ІА-32. Нарешті, актуалізувалися задачі візуального інтернету (глобалізація усіх видів інформаційних, потокових відео та аудіо контактів, освітніх та розважальних контактів на планеті), чому відповідає новітня мікроархітектура під назвою Intel Net-Burst micro-architecture. Її реалізовано у процесорах Пентіум 4, знову таки із притаманою цим процесорам родинною архітектурою ІА-32. Стосовно того, що буде далі, то мусимо зауважити, що із плином часу на перший план має висунутися найактуальніша задача реалізації глобально розподіленого штучного інтелекту заради його ефективного застосування в усіх галузях діяльності людини, аби надати цій діяльності безперечної сенсовності та раціональності. Вже можна побачити перші проростки у формі використання через інтернет систем автоматизованого проектування комп’ютерних засобів, коли відповідні програмні засоби інстальвано лише на фірмових серверах (технології класів Citrix та Elize від фірми ІВМ).
15) RISC архітектура і CISC архітектура.
RISC архітектура заступила класичну (потім її переназвали як CISC) архітектуру на тому етапі розвитку напівпровідникових технологій, коли відомі методи реалізації машинних інструкцій почали перешкоджати використанню того частотного діапазону, який виявився притаманим новим кристалам.
Сама по собі RISC архітектура із надмірно спрощеними, але пристосованими до над швидкого виконання інструкціями лише заглибила зростаючу прірву поміж надскладною архітектурою рівня кінцевого користувача і спрощеною архітектурою рівня машинних інструкцій. Отже, RISC архітектуру треба розглядати не як стрибок до майбутнього, а як вимушений, тимчасовий, хоча і ефективний компроміс поміж можливостями комп’ютерного дизайну і досягненнями напівпровідникових технологій.
В порівнянні з класичною CISC (complex instruction set computer) архітектурою RISC (reduced
instruction set computer) архітектура має:
1. Одноциклові операції.
2. Архітектурний дизайн load/store.
3. Апаратне керування.
4. Зменшене число інструкцій та адресувальних режимів.
5. Фіксований формат та поділ формату на поля інструкції.
6. Зменшення впливу пригальмувань скалярного конвеєра за рахунок застосування оптимізуючих компіляторів, що спроможні раціонально диспетчеризувати виконуваний машинний код.
16) .Формати інструкцій скалярного RISC процесора. Множина інструкцій RISC процесора.
Формати інструкцій подано наступним рисунком.
Пояснення щодо форматів інструкцій.
1. I - тип інструкції опрацьовує безпосередній операнд (Immediate ).
2. R - тип інструкції отримує пару операндів із джерельних регістрів (Registers) регістрового файла процесора та повертає результат знов таки до регістру призначення цього файла.
3. J – тип є інструкцією безумовного переходу (jump).
4. Opcode є полем коду операції, довжина 6 бітів.
5. rs1,rs2 є полями з довжиною 5 бітів, що визначають номери регістрів-джерел операндів (register of source) та програмно обираються серед регістрів R0..R31 регістрового файла.
6. rd є п'яти бітовим полем номера регістра призначення, приймача результату дії (register of destination), регістр призначення також обирають із множини R0..R31 регістрового файла.
7. Immediate - це 16-ти бітове поле, що містить безпосередній операнд; при цьому найлівіший розряд immediate розглядають як знаковий; при використанні безпосередній операнд знаково розширюють вліво за правилами доповняльного коду до 32-х бітів.
8. Function - це поле, що визначає функцію, яка розширює на 211 – 1 = 2047 комбінацій обмежену кількість дозволених кодів операції.
9. Offset added to PC - це 26-ти бітова константа, яку додають до вмістимого регістру наступної адреси при виконанні інструкції безумовного переходу.
Особливості поданих форматів інструкцій:
1. Довжина усіх форматів – 32 біти.
2. Реалізовано дизайн архітектури load/store.
3. Реалізовано фіксовану систему поділу форматів на поля.
4. Усі інструкції з погляду їхньої обробки поділено на три групи:
- АЛП операції,
- операції load/store,
- операції керування виконанням програми.
Формати АЛП операцій є три адресувальними, а саме, OP RX,RY,RZ. Вони є майже збіжними з форматами інструкцій М88X00 RICS-мікропроцесора фірми Motorola. Останній разом із IBM801 та AMD29000 у середині 80-х років утворив історично першу трійку серійних RICS-процесорів .
Інструкції керування виконанням програми, до яких належать умовні й безумовні переходи, і деякі інші інструкції, наприклад, TRAP (остання тимчасово, на короткий термін ніби "передовіряє" керування системою деякому модулю операційної системи), а також інструкція повернення з виключення (обробка особливої ситуації, що може виникнути при виконанні операції) RFE (Return From Exception).
Інструкції обробки чисел з рухомою комою, за допомогою яких виконується додавання, віднімання, множення, ділення й низка інших операцій над відповідними кодами, як правило, у двох варіантах, із стандартною та подвійною точністю.
Пересилання даних поміж регістрами та пам'яттю даних, або поміж регістрами цілих операндів і регістрів операндів із рухомою комою та спеціальними регістрами; адресування пам'яті виконують за допомогою лише однієї адресувальної моди (mode), де 16-бітовий зсув, що міститься у форматі інструкції, додають до вмістимого одного з регістрів загального призначення (тобто регістра, що містить базову адресу).
Ще раз пригорнемо увагу до того, що саме інструкції завантаження (load) чи збереження (store), які належать до цього типу, вивільнено від додаткової функції арифметичного, логічного чи будь-якого іншого опрацювання операндів. Це, по-перше, задовольняє необхідній умові створення множини інструкцій (машинних команд) RISC-архітектури, а, по-друге, дозволяє визнати архітектуру, що зараз розглядається як load/store.
Пояснимо на ілюстративному прикладі синтаксис запису алгоритмів виконання окремих машинних інструкцій DLX (див. таблицю 2). Розглянемо запис:
Regs[R19]16..31=16(DM[Regs[R8]]0 )8 ## DM [ Regs[R8]].
Запис фіксує наступне. Оновлюють лише 16 молодших (правих) бітів регістру R19. До них пересилають двобайтовий бінарний код, в якому молодший правий байт береться з пам’яті даних DM за адресою, що є збіжною з вмістимим регістру R8. Старший лівий байт утворюють вісімразовим повторюванням нульового (старшого) розряду щойно згаданого правого байта. Парою символів ## позначено операцію конкатенації (зчеплення) двох байтів до двох байтового напівслова.
17) Обґрунтування структури інформаційного тракту скалярного RISC комп’ютера
Основою проектування структури інформаційного тракту (data path) є часова діаграма виконання інструкції з найбільшою складністю, до якої у класичному RISC комп’ютері належить, наприклад, інструкція завантаження слова. Розглянемо виконання інструкції завантаження слова LW R5, 16(R26). При її виконанні потрібно:
- вибрати зазначену інструкцію з пам’яті (отримуємо перший цикл із назвою IF),
- декодувати інструкцію/вибрати операнди (отримуємо другий цикл цикл ID),
- виконати інструкцію, тобто обрахувати виконавчу адресу операнда 16 + <R26> (отримуємо третій цикл EX),
- вибрати операнд із головної пам’яті (отримуємо четвертий цикл MEM),
- переслати вибраний з пам’яті операнд до регістра R5 регістрового файла (отримуємо п’ятий цикл WB).
Інші інструкції не вимагають реалізації усього переліченого тому, що мають меншу часову складність.
18)Багатоцикловий прототип RISC машини. Його цикли.
Структуру багатоциклового (максимально наближеного до цільового конвеєрного варіанту) прототипу машини подано наступним рисунком.
Скороченням PC позначено лічильник інструкцій (Program Counter). Вмістиме РС визначає адресу інструкції у пам'яті інструкцій ІМ. Комбінаційний додавач Adder обраховує адресу наступної за чергою виконання інструкції. При цьому враховано, що впорядкована послідовність інструкцій (програма) складається з чотирьох байтових і тільки чотирьох байтових інструкцій (усі інструкції мають формати з довжиною 32 біти), які розміщено в IM за адресами 0, 4, 8, C і т.д. Через це константа зсуву адреси (пересування покажчика на наступну за чергою інструкцію) дорівнює +4. Визначене за допомогою додавача значення адреси вибирання наступної інструкції зберігають у регістрі NPC (next PC). Зчитаний з ІМ бінарний код поточної інструкції записують до регістру інструкції IR. Поля щойно вибраної інструкції (рис. 6), що містять бінарні коди-ідентифікатори регістрів-операндів, є фактично адресами
комірок внутрішньо процесорної пам'яті, яка емулює пул (множину) програмно досяжних (видимих програмісту) регістрів. Вмістиме зазначених полів формату інструкції надсилають на адресні входи регістрового файлу Registers чи Regs, а відповідні надісланим адресам бінарні коди регістрових операндів завантажуються до внутрішніх, програмно недосяжних, тобто службових регістрів А і В.
Існує ще один тип операнда з назвою “безпосередній” (Immediate чи Imm). Його задають прямо у форматі інструкції. Як правило, довжина безпосереднього операнда не перевищує половини довжини формату інструкції. В нас безпосередній операнд матимете довжину 32/2 = 16 бітів. В той самий час бажано зафіксувати таку довжину формату даних такою, що дорівнює довжині формату інструкції ( зауважимо без пояснень, що різноманіть довжин форматів суттєво пригальмовує машину). Якщо усі формати даних, як і формати інструкцій, матимуть довжину 32 біти, тоді безпосередньому операнду не вистачатиме ще 16 бітів аби бути стандартним за довжиною. Тому знакове розширення 16 бітового безпосереднього операнда до 32-х бітів виконує комбінаційний вузол Sign Extend. Результат знакового розширення тимчасово зберігають у службовому регістрі Imm. В цілому можна нарахувати чотири можливі операнди на вході АЛП:
- з регістрів А, В, Imm;
- вмістиме регістру адреси наступної для виконання інструкції NPC.
Наперед зазначимо, що операнд-адресу NPC опрацьовують в АЛП при виконанні інструкцій умовного переходу, коли на додаток до натуральної потрібна ще одна адреса, яку утворюють додаванням до вмістимого NPC деякої константи переходу.
Вибирання двох операндів АЛП із чотирьох можливих виконують за допомогою мультиплексорів операндів mux. Результат операції АЛП тимчасово запам'ятовують у проміжному службовому регістрі ALUoutput (ALUout). Якщо результатом операції є число, тоді його заносять до комірки регістрового файлу. Якщо результатом операції є адреса, тоді цю адресу надсилають до (верхнього на рисунку) мультиплексора вибору адреси mux. За допомогою зазначеного мультиплексора вибирають адресу переходу (чергова чи перехід), яку і надсилають до лічильника інструкцій PC аби коректно продовжити виконання програми.
Керування мультиплексором вибору адреси наступної інструкції покладено на вузол Zero?, де вмістиме службового регістра А порівнюють із нулем (дорівнює нулю, більше нуля, менше нуля і т.д., в залежності від виду виконуваної у поточний час операції умовного переходу). Результат порівняння є бінарним логічним значенням (так або ні). Саме цей бінарний результат керує роботою мультиплексора вибирання адреси наступної інструкції.
Результат-адресу з виходу АЛП надсилають до пам’яті даних як отриману адресу комірки цієї пам’яті (для інструкцій збереження/завантаження).
Результатом на виході правого на рисунку мультиплексора може бути або вмістиме пам’яті даних (при виконанні інструкції завантаження LW слова з пам’яті даних до регістру регістрового файла), або результат виконання арифметичної, зсувної, логічної чи іншої операції в АЛП (наприклад, при виконанні інструкцій ADD, SUB і т.д.). Такий результат засобами мікропрограмування зберігають в регістрі регістрового файла. Отже, зазначений мультиплексор, керований регістром поточної інструкції, комутує на вхід регістрового файла потрібну інформацію.
19) Конвеєрна структура iнформацiйного тракту.
Конвеєрний Datapath DLX структуровано наступними сходинками конвеєра, а саме: IF, ID, EХ, MEM, WB. Апаратура кожної сходинки реалізує притамані їй мікрооперації. Наприклад, на першій сходинці виконують вибирання інструкції з пам’яті інструкцій IM за вмістимим програмного лічильника PC, інкремент на +4 (з врахуванням логічного байтового адресування пам’яті інструкцій) поточної адреси за допомогою комбінаційного додавача ADD та занесення значення наступної адреси до поля NPC (Next PC), інтегрованого до конвеєрного регістра IF/ID. Мультиплексор Mux, що керується відповідним одно бітовим полем конвеєрного регістра EX/MEM, визначає джерело запису до NPC – або наступна за чергою адреса, або цільова адреса умовного чи безумовного переходу. Важливо, що обов’язок змінювати природне адресування послідовності вибирання інструкцій з пам’яті інструкцій покладено на контекст інструкції, яка пройшла цикл конвеєра MEM.
Конвеєрні регістри виконують функцію збереження контекстів інструкцій, а саме вмістимого інтегрованих до них регістру інструкції IR, робочих регістрів А, В і т.д. Конвеєрні регістри розташовано на межах сходинок. Bони мають назви, відповідні граничним сходинкам, наприклад IF/ID. Тоді поле A конвеєрного регістра позначають як EX/MEM.A.
До апаратури другої сходинки ID належать регістровий файл Regs, що містить множину програмно керованих регістрів та знаковий розширювач Signum Extender, що конвертує 16-бітові безпосередні знакові константи у 32-х бітові стандартні операнди формату з фіксованою комою.
Апаратура третьої сходинки містить комбінаційний АЛП із мультиплексорами на кожному вході і схему (Zero?) визначення істинності чи хибності умови інструкції умовного переходу. Особливість інформаційного тракту – залучення до нього двох пристроїв пам’яті: даних DM і інструкцій ІМ. Саме через це мова йде про інформаційний тракт, а не процесор.
Призначення інших вузлів є зрозумілим з рисунку. Можна на додаток зауважити, що регістровий файл має два порти на читання і один на запис. Ця особливість є прямим наслідком запроваджених в DLX системи інструкцій і конвеєрного принципу роботи.
20). Сходинки скалярного конвеєра.
Перелік мікроподій надано мікрокомандою:
IF/ID.IR <= Mem[PC];
IF/ID.NPC, PC <= (if EX/MEM.cond {EX/MEM.NPC} else {PC + 4})
Обидві зазначені мікродії мають бути сумісними в часі і виконуються паралельно за один цикл (як правило, один тактовий інтервал). Перша мікродія вибирає нову інструкцію з пам’яті Instruction memory за адресою, що зберігається в PC і записує її до поля IR (Instruction Register) конвеєрного регістра IF/ID. В той самий час друга мікродія змінює вмістиме поля NPC конвеєрного регістра і програмний лічильник за алгоритмом:
якщо бітове поле cond(ition – умова) попередньої інструкції , яка пройшла цикл EX, є true, тоді
порушується природна черговість і вмістиме IF/ID.NPC та PC отримує значення поля EX/MEM.NPC конвеєрного регістра EX/MEM; iнакше записується природня, наступна адреса (PC+4) з врахуванням байтової логічної структури адреси пам’яті.
Мікродії сходинки ID скалярного конвеєра
Перелік мікроподій надано мікрокомандою:
ID/EX.A<=Regs[IF/ID.IR 8..10 ]
ID/EX.B<=Regs[IF/ID.IR 11..15 ]
ID/EX.NPC<= IF/ID.NPC
ID/EX.IR<= IF/ID.IR
ID/EX.Imm<= (IR 16 ) 16 ##IR 16..31
Усі чотири мікродії є сумісними і виконуються в часі паралельно. Перша мікродія вибирає перший операнд з програмно керованого регістра регістрового файла до службового регістра А, що є інтегрованим до конвеєрного регістра ID/EX. При цьому адреса програмно керованого регістра визначається вмістимим підполя (розряди 8..10) поля IR конвеєрного регістра IF/ID. Тут вибирається
операнд. Такі ж за призначенням дії виконує друга мікрооперація, але з іншим джерелом і приймачем.
Третя і четверта мікродії зберігають контекст інструкції, що знаходиться на поточній сходинці. Це необхідно для її коректного просування конвеєром. Четверта мікродія вибирає (та знаково розширює з 16-ти до 32-ч бітів) до службового регістра Imm(ediate – безпосередній, негайний) операнд, який містився у підполі 16..31 поля IR конвеєрного регістра. Поточний цикл Instruction Decode можна розширити у назві додатковим означенням Operand Fetch (Вибирання Операндів).
Мікродії сходинки EX скалярного конвеєра ( АЛП інструкція)
Перелік мікроподій надано мікрокомандою:
EX/MEM.IR <=ID/EX.IR
EX/MEM.cond <= 0
EX/MEM.ALUoutput <=ID/EX.A op ID/EX.B
Або EX/MEM.ALUoutput <=ID/EX.A op ID/EX.Imm
Усі мікродії є сумісними в часі, виконуються паралельно за один цикл (тактовий інтервал). Перша мікродія зберігає контекст регістра інструкції. Четверта мікродія забороняє АЛП-інструкції впливати на послідовність вибирання інструкцій з пам’яті. Друга і третя мікродії утворюють альтернативу (або). Кожна з них визначає пару операндів для операції ор і при цьому записує результат ор до службового (програмно некерованого) вихідного регістра ALU під назвою ALUoutput. Важливо, що на цьому циклі конвеєра вперше від початку треба визначитися із її типом.
Мікродії сходинки EX скалярного конвеєра (load/store інструкції)
Перелік мікроподій надано мікрокомандою:
EX/MEM.IR <=ID/EX.IR
EX/MEM.ALUoutput <=ID/EX.A + ID/EX.Imm
EX/MEM.B <=ID/EX.B
EX/MEM.cond (ition) <= 0
Усі мікродії є сумісними в часі, виконуються паралельно за один цикл (тактовий інтервал). Перша мікродія зберігає контекст регістра інструкції, друга вираховує виконавчу (ефективну) адресу пам’яті даних на основі бази (Immediate – Безпосередній операнд), третя зберігає контекст службового, програмно некерованого регістра В, четверта забороняє поточній інструкції змінювати природний порядок адресування інструкцій. Важливо, що на цьому циклі конвеєра вперше від початку треба визначитися із типом інструкції.
Мікродії сходинки EX скалярного конвеєра (інструкція branch)
Перелік мікроподій надано мікрокомандою:
EX/MEM.ALUoutput <=ID/EX.NPC + ID/EX.Imm
EX/MEM.cond <=(ID/EX.A op 0)
Мікродії є сумісними в часі, виконуються паралельно, за один цикл (тактовий інтервал). Перша мікродія вираховує цільову адресу можливого переходу та зберігає її у робочому (некерованому програмістом) вихідному регістрі ALUoutput, детально – у полі ALUoutput конвеєрного регістра EX/MEM. Друга мікродія вираховує істинне або хибне значення логічної умови, що визначається порівнянням в деякому, тобто op розумінні, службового регістра А, визначеного за вмістимим на циклі ID, з нулем ( дорівнює нулю, не дорівнює нулю,тощо). Логічне значення умови записується до поля cond конвеєрного регістра EX/MEM з метою дозволу зміни природнього порядку вибирання інструкцій програми, коли cond=1.
Важливо, що на цьому циклі конвеєра вперше від початку виконання інструкції має бути визначеним її тип. Контексти не зберігаються, що неформально свідчить про завершення опрацювання цієї інструкції в конвеєрі.
Мікродії сходинки MEM скалярного конвеєра (AЛП інструкція)
Перелік мікроподій надано мікрокомандою:
MEM/WB.IR <=EX/ MEM.IR
MEM/WB.ALUoutput <= IR/MEM.ALUoutput
Мікродії є сумісними в часі, виконуються паралельно за один цикл (тактовий інтервал). Активних мікродій обробки інформації немає, що свідчить про транзитний характер опрацювання інструкції на цій сходинці. Обидві мікродії лише зберігають на подальше контексти регістра інструкцій і вихідного регістра АЛП.
Мікродії сходинки MEM скалярного конвеєра ( інструкції load/store)
Перелік мікроподій надано мікрокомандою:
MEM/WB.IR <=EX/ MEM.IR
MEM/WB.LMD <= Mem[EX/MEM.ALUoutput]
або Mem[EX/MEM.ALUoutput] <= EX/MEM.B
Мікродії є сумісними в часі, виконуються паралельно за один цикл (тактовий інтервал). Перша
мікродія виконує транзитне пересилання вмістимого коду операції з відповідного поля вхідного
конвеєрного регістра до відповідного поля вихідного конвеєрного регістра сходинки. Це свідчить про те, що виконання інструкції (лише – завантаження) має продовжуватися наступної сходинки конвеєра. При завантаженні виконується друга мікродія, а при збереженні – третя. Виконавча (ефективна) адреса пам’яті даних визначається вмістимим службового вихідного регістра АЛП. При завантаженні вмістиме комірки пам’яті даних зберігається в проміжному регістрі LMD (Load Memory Data), а при збереженні вмістиме службового регістра В записується до комірки пам’яті даних.
Важливо, що надана мікропрограма ігнорує існування відомого парадоксу пам’яті, що коректно тільки за умови використання кеш-пам’яті даних та системи переривань у випадку “невлучення до кешу” (“покарання” за невлучення надається певною кількістю додаткових тактових інтервалів, аби погодити швидкодію процесора і пам’яті даних за рахунок пригальмування операцій на скалярному процесорі).
Мікродії сходинки WB скалярного конвеєра (АЛП інструкції)
Перелік мікроподій надано фрагментом мікропрограми:
Regs[MEM/WB.IR 16..20 ] <= MEM/WB.ALUoutput
Або Regs[MEM/WB.IR 11..15 ] <= MEM/WB.ALUoutput
Завжди виконується лише одна мікрооперація з двох зазначених. В кожному випадку результат
обробки операндів в АЛП з поля конвеєрного регістра MEM/WB.ALUoutput записують до регістра загального призначення (комірки пам’яті регістрового файла). Використання двох мікро інструкцій замість однієї пояснюється тим, що у форматі інструкцій load DLX повного дотримання правила “фіксоване розташування полів” немає. За рахунок цього адреса призначення у форматі інструкції рухається: може визначатися розрядами 16..20 або розрядами 11..15 формату інструкції. Так чи інакше, але вказана "рухомість” адреси поля призначення ускладнює апаратний пристрій керування і може зменшити його швидкодію.
Мікродії сходинки WB скалярного конвеєра (інструкція load)
Перелік мікроподій надано мікрокомандою:
Regs[MEM/WB.IR 11..15 ] <= MEM/WB.LMD
Зазначимо, що інструкція store (збереження) на цій сходинці виконання мікродій не потребує. Тут завершується виконання лише інструкції завантаження операнда з комірки пам’яті даних до регістра загального призначення регістрової пам’яті процесора.
Операнд зберігається у полі LMD вхідного конвеєрного регістра MEM/WB, а адреса комірки (регістра) регістрового файла міститься у полі MEM/WB.IR 11..15. Важливо, що регістровий файл повинен реалізувати два порти, а саме, два порти на читання та один порт на запис. При цьому, якщо дві адреси на читання постачає конвеєрний регістр (IF/ID), тоді адресу на запис і дані постачає щойно розглянутий
21) . Класифікація залежностей даних. Скасування залежностей даних.
Нехай програма складається з наступних інструкцій:
(початок)...i...k...j...(кінець)
Тоді:
1. RAW (read after write) - читання після запису. Інструкція j намагається прочитати ще не оновлений інструкцією k операнд.
2. WAR (write after read) - запис після читання. Інструкція j намагається записати до регістра
призначення ще до того, як попереднє вмістиме цього регістра прочитає інструкція k.
3. WAW (write after write) -запис після запису. Інструкція j намагається записати результат до регістра призначення ще до того, як цей запис провела інструкція i. В результаті регістр тимчасово отримує некоректне вмістиме, чим може “скористатися” проміжна k-та команда.
4. RAR (read after read) - небезпеки не створює і тому не розглядається.
Означення, класифікацію та перші методи скасування залежності даних (в оригіналі – data hazards) запропонував Роберт Келлер (1975 рік).
Скасування залежностей даних
Відомі наступні типи залежності даних:
1. RAW (read after write) - читання після запису.
2. WAR (write after read) - запис після читання.
3. WAW (write after write) - запис після запису.
4. RAR (read after read) - небезпеки не утворює і тому не розглядається.
Застосовують наступні методи скасування зазначених залежностей:
1. Затримка перед випуском (Stalls before issue) інструкції із сходинки ID (instruction decoding) на сходинку EX (Execute) конвеєра доти, доки залежність даних не вичерпується плином часу.
2. Випереджувальне пересилання результатів з внутрішніх сходинок конвеєра попередньої
інструкції до потрібної сходинки конвеєра наступної інструкції (платня - додаткові апаратні
витрати).
3. Статична диспетчеризація послідовності інструкцій у програмі під час compile-time (час
компіляції) з використанням слоту затриманої інструкції (delay slot).
23) Основні чинники запитів на переривання у конвеєрі машини
Сходинка IF: промах сторінки у пам’яті програм, порушення захисту пам’яті програм, невирівнене вибирання інструкції з пам’яті програм.
Сходинка ID: невизначений чи нелегальний код операції.
Сходинка ЕХ: арифметичне виключення.
Сходинка МЕМ: промах сторінки пам’яті даних при читанні або запису.
Сходинка WB: переривання не виникають (саме тут змінюють програмний стан машини!).
24 ). Прискорена структура конвеєра DLX машини.
Покращену структуру подано наступним рисунком (копія екрану UNIX програми DLXview).
Структура додатково містить суматор ADD, що вже на сходинці ID обраховує цільову адресу переходу,
25) Суперконвеєрний і суперскалярний процесор.
Суперконвеєрний процесор
На рисунку надано принцип дії суперконвеєрного RISC процесора. Бачимо, що кожний цикл конвеєра складається більш, ніж з одного тактового інтервала. Запуск наступної за чергою інструкції виконується не по завершенню виконання цілого конвеєрного циклу попередньої інструкції, а по завершенню першого тактового інтервалу першого циклу цієї інструкції. Має місце перекриття виконання інструкцій у часі.
Теоретично суперконвеєрність повинна прискорити опрацювання інструкцій в порівнянні з
конвеєрним варіантом в n разів, де n є кількістю тактових інтервалів, з яких складається цикл конвеєра (на наведеній вище часовій діаграмі n = 2, тобто цикл містить два інтервали). Практичний результат є дещо меншим за рахунок того, що кожна сходинка конвеєра містить додатковий у порівнянні з неконвеєрною реалізацією конвеєрний регістр, який обумовлює “накладні” витрати на реалізацію конвеєра (близько 10% відсотків часу). З іншого боку, безмежно зменшувати тривалість тактового інтервалу неможливо, що також обмежує ефективність суперконвеєрного рішення.
Пост-“рісковий” процесор Пентіум 4 має 20-ти сходинкові паралельні конвеєри, що функціонують на подвоєній частоті по відношенню до частоти ядра. Отже, цей процесор можна вважати за суперконвеєрнй., Але, водночас, він є супурскалярним та ще із машиною так званого динамічного (невпорядкованого, хаотичного) виконання інструкцій.
Суперскалярний процесор
Суперскалярний процесор у порівнянні з суперконвеєрним є більш “коректним” з погляду фізичних обмежень на швидкодію елементної бази та кіл пересилання сигналів (останнє навіть важливіше!). Ідея побудови є надзвичайно прямолінійною – застосувати два чи навіть більшу кількість паралельно працюючих конвеєрів (див. нижче структуру із двома паралельно працюючими та спеціалізованими за типом інструкції, що опрацьовується, конвеєрами).
Тут паралельну пару інструкцій утворюють (АЛП-інструкція чи інструкція переходу, з одного боку, та інструкція завантаження чи запам’ятовування, з іншого боку). За (теоретично існуючої) умови повного наповнення двох конвеєрів швидкодія зросте вдвічі. Вадою проголошеного підходу є те, що він не враховує залежностей поміж інструкціями з наявного послідовного потоку однієї програми. Адже потік, де відсутні залежності поміж інструкціями, лише теоретично можна називати програмою. Такі залежності ускладнюють завантажнення конвеєрів. конвеєрів Конвеєри час від часу простоюють, а продуктивність зменшується в порівнянні з теоретичним піковим значенням при повному завантаженні обидвох ниток. Забезпечити сумісність і паралельність виконання в часі двох інструкцій простіше, якщо їх поділити на два неперетинних класи, як це зазначено вище.
Джон Коук (John Cocke, ІВМ, 1987 рік) розробив першу суперскалярну архітектуру, що отримала назву America; він i запропонував термін “суперскаляр”. Вже потім модифікований варіант архітектури America під назвою POWER-1 (Performance Optimization With Enhanced RISC) впровадили до серійних систем RISC System/6000 фірми ІВМ. Нарешті, підмножину архітектури POWER-1 реалізовано в процесорах Power PC, які є основою комп’ютерів Apple Macintosh.
26). VLIW і суперскалярна архітектура. Обмеження ефективності VLIW архітектури.
Розпаралелювання у VLIW (Very Long Instruction Word) машинах виконується класично виключно на етапі компіляції під час формування пакетних команд, тобто статично. Тут неможливо на 100 відсотків бути певним щодо розв’язання усіх видів залежностей. Тому відкомпільовані програми вимагають ретельного налагоджування. Цей підхід дозволяє сягнути максимума продуктивності, але є сприйнятливим лише у певних застосуваннях комп"ютерних засобів (наприклад, обробка сигналів, процесори ADSP21XX фірми Analog Devices та TMS320C6X фірми Тexas Іnstruments). VLIW запроваджено у новітньому процесорах Alpha Digital та Ітаніум (сумісна розробка фірм Інтел та Х'юлетт-Паккард, архітектура - IA-64); процесор оптимізовано під виконання серверних задач.
Суперскалярні процесори розпаралелюють одиничний потік скалярних інструкцій динамічно, тобто, під час виконання програми. Це вимагає певних додаткових апаратних витрат на реалізацію механізму динамічного виконання (розпаралелювання, передбачення напрямку переходів та спекулятивне виконання інструкцій у передбаченні). Прикладом є процесори Пентіум. Зрозуміло, що певну частку роботи з виявлення залежностей даних, керування і структур покладають на оптимізуючий компілятор, якому притамана розвинута оптимізація результату генерування коду. Результатом є те, що отримують дещо нижчу швидкодію суперскалярного варіанту у порівнянні з VLIW-варіантом, разом з більшою надійністю суперскалярних програм та незалежністю суперскалярного програмного коду від модифікацій апаратної побудови процесора.
Першою VLIW-машиною був зовнішній по відношенню до базового мейнфрейма процесор АР-120В Фішера (Йельский університет, США,1981 рік). Особисто Фішер запропонував термін VLIW. Новітнім прикладом VLIW процесора є кристал Крузо фірми Трансмета, що опрацьовує пакети у складі восьми 32 розрядних інструкцій та використовує часткову віртуалізацію (!) апаратних підсистем.
У VLIW (Very Long Instruction Word) машинах розпаралелювання виконується статично, на етапі компіляції коду. Тут неможливо передбачити ті залежності, що формуються динамічно, під час виконання програми, що може спричинити некоректну обробку потоку інструкцій. До динамічно сформованих залежностей належать залежності даних та залежності керування. Новітні процесори (Ітаніум, наприклад) вимагають, аби у потоці інструкцій прямо казувалося, які інструкції треба виконувати паралельно, а які не можна так опрацьовувати.
Негативно впливають також ефекти невпорядкованого завершення виконання команд. Саме тому надійність виконання програми тут зменшена у порівнянні з суперскалярним варіантом. Перевага
VLIW в потенційній швидкодії найбільш відчутна в серверних задачах, де паралельно опрацьовують декілька процесів (ниток), в наукових задачах, задачах тривимірної візуалізації та в задачах обробки сигналів.
27) Динамічне виконання.
Динамічне виконання інструкцій з послідовного первинного потоку запроваджено, наприклад, у суперскалярних процесорах класу Пентіум Про, Пентіум II/III/4 (IA-32 , тобто 32-х розрядна
архітектура Інтел), AMD Hammer (архітектура х86-64, для робочих станцій), Ітаніум (IA-64,
розроблено сумісно з фірмою Hewlett-Packard, архітектура ЕРІС, призначений для серверів, робочих станцій) і передбачає наступне:
- динамічне (під час виконання програми) розпаралелювання єдиного скалярного послідовного
потоку інструкцій ( виконує вбудована до процесора апаратна підсистема, що була предтечею
машини потоку даних, яка реалізує спекулятивно модифікований алгоритм "Роберт Томасуло”, мейнфрейм ІВМ 360/91, 1967);
- передбачення напрямків умовних переходів з імовірністю 92 і більше відсотків, на основі
кореляційних алгоритмів;
- спекулятивне (за передбаченням) опрацювання коду з використанням тіньових регістрів аби
захистити машину від спекулятивного промаху забороною зміни програмного стану машини до
певного пункту виконання програмного коду.
На сьогодні динамічне виконання є стандартним засобом підвищення рівня завантаження
розпаралеленої архітектури багатьох типів процесорів.
28) . Класифікація комп’ютерів за фактором паралельності.
За рівнем ПАРалельності опрацювання даних розрізняють:
- скалярні машини, ПАР=1, розпаралелювання немає;
- суперскалярні та VLIW, що розпаралелюють послідовний первинний потік скалярних інструкцій на ПАР = (2-32) паралельних потоки (остання цифра належить VLIW);
- машини потоку даних, де ПАР = 32-100;
- векторні машини (раніше – суперкомп’ютери) з ПАР > 100.
Зараз векторні процесори обов’язково монтуються до стандартних мейнфреймів (машин загального призначення) IBM S/390. До того ж, за стандартами США, суперкомп’ютер не може бути спеціалізованою машиною.
29). Переназва регістрів
Механізмом переназви (Registers rename) програмно керованих регістрів архітектури ІА-32 (посилання на які містять ще нетрансльовані на мікрооперації, первинні, вхідні щодо процесора машинні коди) ставлять у відповідність робочі, програмно недосяжні регістри процесора, число яких на порядок перевищує число програмно-керованих регістрів архітектури ІА-32. Це дозволяє в обчисленнях динамічно заміняти вісім програмно керованих регістрів загального призначення на 128 вбудованих до пропцесора регістрів і, тим самим, запобігають тим сповільнюючим надлишковим звертанням до пам’яті, які не є об’єктивно обгрунтовані алгоритмом, а викликані виключно нестачої архітектурних регістрів.
Аби реалізувати переназви використовують так звану таблицю псевдонимів (Register Alias Table, RAT), за допомогою якої відслідковують відповідності поміж цими двома групами регістрів. Заповнені рядки цієї таблиці повідомляють наступній за поточною інструкції про те, з якого робочого регістру треба вибирати регістрові операнди.
30) . Що таке кеш? Однорівневий та дворівневий кеш, їхня продуктивність.
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 тактових інтервалів в розрахунку на одну інструкцію..
TOC \o "1-3" \h \z \u HYPERLINK \l "_Toc74810904" 1. Задачі та комп’ютерні ресурси PAGEREF _Toc74810904 \h 1
HYPERLINK \l "_Toc74810905" 2. Загальна класифікація комп’ютерних систем PAGEREF _Toc74810905 \h 1
HYPERLINK \l "_Toc74810906" 3. Продуктивність комп’ютерних систем PAGEREF _Toc74810906 \h 2
HYPERLINK \l "_Toc74810907" 4. Комп’ютерна архітектура рівня машинних інструкцій PAGEREF _Toc74810907 \h 3
HYPERLINK \l "_Toc74810908" 5 .Класичні комп’ютерні архітектури. Їхній кількісний розгляд. PAGEREF _Toc74810908 \h 4
HYPERLINK \l "_Toc74810909" 6)СISC, RISC та гібридні інструкції. PAGEREF _Toc74810909 \h 5
HYPERLINK \l "_Toc74810910" 7)Принстонська та гарвардська архітектури. PAGEREF _Toc74810910 \h 5
HYPERLINK \l "_Toc74810911" 8 ) Витрати процесорного часу. PAGEREF _Toc74810911 \h 6
HYPERLINK \l "_Toc74810912" 9).Паралелізм і конвеєризація (перекриття). Перекриття проти конвеєризації . PAGEREF _Toc74810912 \h 6
HYPERLINK \l "_Toc74810913" 10) Тести продуктивності комп’ютерних систем. PAGEREF _Toc74810913 \h 9
HYPERLINK \l "_Toc74810914" 11).Операційні системи та апаратні засоби. PAGEREF _Toc74810914 \h 10
HYPERLINK \l "_Toc74810915" 12)Архітектура і закон Амдаля. Графічна інтерпретація закону Амдаля. PAGEREF _Toc74810915 \h 11
HYPERLINK \l "_Toc74810916" 13)Технологія і закон Мура. PAGEREF _Toc74810916 \h 12
HYPERLINK \l "_Toc74810917" 14) Архітектура проти мікроархітектури. Стратегія розвитку мікроархітектури. PAGEREF _Toc74810917 \h 13
HYPERLINK \l "_Toc74810918" 15) RISC архітектура і CISC архітектура. PAGEREF _Toc74810918 \h 14
HYPERLINK \l "_Toc74810919" 16) .Формати інструкцій скалярного RISC процесора. Множина інструкцій RISC процесора. PAGEREF _Toc74810919 \h 15
HYPERLINK \l "_Toc74810920" 17) Обґрунтування структури інформаційного тракту скалярного RISC комп’ютера PAGEREF _Toc74810920 \h 18
HYPERLINK \l "_Toc74810921" 18)Багатоцикловий прототип RISC машини. Його цикли. PAGEREF _Toc74810921 \h 18
HYPERLINK \l "_Toc74810922" 19) Конвеєрна структура iнформацiйного тракту. PAGEREF _Toc74810922 \h 20
HYPERLINK \l "_Toc74810923" 20). Сходинки скалярного конвеєра. PAGEREF _Toc74810923 \h 21
HYPERLINK \l "_Toc74810924" 21) . Класифікація залежностей даних. Скасування залежностей даних. PAGEREF _Toc74810924 \h 23
HYPERLINK \l "_Toc74810925" 23) Основні чинники запитів на переривання у конвеєрі машини PAGEREF _Toc74810925 \h 24
HYPERLINK \l "_Toc74810926" 24 ). Прискорена структура конвеєра DLX машини. PAGEREF _Toc74810926 \h 24
HYPERLINK \l "_Toc74810927" 25) Суперконвеєрний і суперскалярний процесор. PAGEREF _Toc74810927 \h 25
HYPERLINK \l "_Toc74810928" 26). VLIW і суперскалярна архітектура. Обмеження ефективності VLIW архітектури. PAGEREF _Toc74810928 \h 26
HYPERLINK \l "_Toc74810929" 27) Динамічне виконання. PAGEREF _Toc74810929 \h 27
HYPERLINK \l "_Toc74810930" 28) . Класифікація комп’ютерів за фактором паралельності. PAGEREF _Toc74810930 \h 27
HYPERLINK \l "_Toc74810931" 29). Переназва регістрів PAGEREF _Toc74810931 \h 27
HYPERLINK \l "_Toc74810932" 30) . Що таке кеш? Однорівневий та дворівневий кеш, їхня продуктивність. PAGEREF _Toc74810932 \h 28