4.2.5.2. Мікродії ярусів конвеєрного процесора
Відразу зазначимо, що всі мікродії одного ярусу конвеєра мають бути сумісними в часі та виконуються паралельно в рамках однієї фази (як правило, за один тактовий інтервал). Мікродії, що реалізуються в кожному ярусі конвеєра комп'ютера DLX, зведено в табл. 4.2.
156
Мікродії ярусу IF.
Перша мікродія вибирає нову команду з пам'яті команд за адресою, що зберігається в PC,і записує її до поля IR(InstructionRegister)конвеєрного регістра IF/ID.В той самий час друга мікродія змінює вміст поля NPCконвеєрного регістра і програмний лічильник за алгоритмом: якщо бітове поле cond(condition- умова) попередньої команди, яка пройшла фазу ЕХ, є одиницею (true), тоді порушується природна черговість і вміст IF/ID.NPC та PC отримує значення поля EX/MEM.NPC конвеєрного регістра ЕХ/МЕМ; інакше записується наступна адреса (РС+4) з врахуванням байтової логічної структури адреси пам'яті.
Мікродії ярусу ID.
Усі чотири мікродії є сумісними і виконуються в часі паралельно. Перша мікродія вибирає перший операнд з програмно керованого регістра регістрового файла до службового регістра А, що є інтегрованим до конвеєрного регістра ID/ЕХ. При цьому адреса програмно керованого регістра визначається вмістом розрядів 8.. 10 поля IRконвеєрного регістра IF/ID.Тут вибирається операнд. Такі ж за призначенням дії виконує друга мікрооперація, але з іншим джерелом і приймачем. Третя і четверта мікродії зберігають контекст команди, що знаходиться на поточній сходинці. Це необхідно для її коректного просування конвеєром. Четверта мікродія вибирає (та знаково розширює з 16 до 32-х бітів) до службового регістра Imm (immediate - безпосередній) операнд, який містився у розрядах 16...31 поля IR конвеєрного регістра. Поточну фазу ID можна розширити у назві додатковим означенням Operand Fetch (вибирання операндів).
Мікродії ярусу ЕХ (команди арифметико-догічного пристрою).
Важливо відзначити, що на фазі ЕХ вперше від початку виконання команди має бути визначеним її тип. Перша мікродія зберігає вміст регістра команди. Четверта мікродія забороняє командам ALU впливати на послідовність вибирання команд з пам'яті. Друга і третя мікродії утворюють альтернативу (або). Кожна з них визначає пару операндів для операції ор і при цьому записує результат ор до службового (програмно-некерованого) вихідного регістра ALUпід назвою ALUoutput.
Мікродії ярусу ЕХ (команди load/store).
Перша мікродія зберігає контекст регістра команди, друга вираховує виконавчу (ефективну) адресу пам'яті даних на основі бази (Immediate - безпосередній операнд), третя зберігає вміст службового, програмно-некерованого регістра В, четверта забороняє поточній команді змінювати природний порядок адресування команд.
Мікродії ярусу ЕХ (команда branch).
Перша мікродія вираховує цільову адресу можливого переходу та зберігає її у робочому (некерованому програмістом) вихідному регістрі ALUoutput,а конкретно - у полі ALUoutputконвеєрного регістра ЕХ/МЕМ. Друга мікродія вираховує істинне або хибне значення логічної умови, що визначається порівнянням в деякому, тобто ор розумінні, службового регістра А, визначеного за вмістом на фазі ID, з нулем (дорівнює нулю, не дорівнює нулю, тощо). Логічне значення умови записується до поля condконвеєрного регістра ЕХ/МЕМ з метою дозволу зміни природного порядку вибирання команд програми, коли cond=l.Контексти не зберігаються, що свідчить про неформальне завершення опрацювання цієї команди в конвеєрі.
157
Мікродії ярусу MEM (команди арифметико логічного пристрою).
Активних мікродій обробки інформації немає, що свідчить про транзитний характер опрацювання команди на цій сходинці. Обидві мікродії лише зберігають для подальшого користування вміст регістра команд і вихідного регістра ALU.
Мікродії ярусу MEM ( команди load/store).
Перша мікродія виконує транзитне пересилання вмісту коду операції з відповідного поля вхідного конвеєрного регістра до відповідного поля вихідного конвеєрного регістра ярусу. Це свідчить про те, що виконання команди (лише - завантаження) має продовжуватися в наступному ярусі конвеєра. При завантаженні виконується друга мікродія, а при збереженні - третя. Виконавча (ефективна) адреса пам'яті даних визначається вмістом службового вихідного регістра ALU.При завантаженні вміст комірки пам'яті даних зберігається в проміжному регістрі LMD(LoadMemoryData),а при збереженні вміст службового регістра В записується до комірки пам'яті даних
Важливо, що дана мікропрограма ігнорує існування відомого парадоксу пам'яті, що коректно тільки за умови використання кеш пам'яті даних та системи переривань у випадку «невлучення до кеш» («покарання» за невлучення - це певна кількістю додаткових тактових інтервалів, аби погодити швидкодію процесора і пам'яті даних за рахунок пригальмовування операцій в скалярному процесорі).
Мікродії ярусу WB (команди арифметико логічного пристрою).
Завжди виконується лише одна мікрооперація з двох зазначених. В кожному випадку результат обробки операндів в ALUз поля конвеєрного регістра MEM/WB.ALUoutputзаписується до регістра регістрового файла процесора. Використання двох мікрокоманд замість однієї пояснюється тим, що у форматі команд load DLX повного дотримання правила «фіксоване розташування полів» немає. За рахунок цього адреса призначення у форматі команди рухається: може визначатися розрядами 16...20 або розрядами 11... 15 команди. Так чи інакше, але вказана «рухомість» адреси поля призначення ускладнює апаратний пристрій керування і може зменшити його швидкодію
Мікродії ярусу WB (команда load).
Зазначимо, що команда store(збереження) на цьому ярусі виконання не потребує мікродій. Тут завершується виконання лише команди завантаження операнда з комірки пам'яті даних до регістра регістрового файла процесора
Операнд зберігається у полі LMDвхідного конвеєрного регістра MEM/WB,а адреса комірки (регістра) регістрового файла міститься у полі MEM/WB.IR11... 15. Важливо, що регістровий файл повинен реалізувати два порти, а саме, два порти на читання та один порт на запис. При цьому, якщо дві адреси на читання постачає конвеєрний регістр (IF/ID), то адресу на запис і дані постачає щойно розглянутий конвеєрний регістр (MEM/WB).
4.3. Суперконвеєрні процесори
Можлива така організація виконання деякої послідовності команд в процесорі, коли всі однойменні фази виконання цих команди послідовно, тобто спочатку проводиться вибірка всіх команд, далі 'їх декодування і т. д., як це показано на рис. 4.13. для послідовності із двох команд
158
Такий підхід не прискорює роботу процесора, але при конвеєрному опрацюванні команд може виявитися доцільним, оскільки в ярусах конвеєра (рис. 4.14) знаходяться результати виконання декількох фаз різних команд, що при наявності конфліктів дозволяє ефективніше їх вирішувати, аніж у звичайному конвеєрі команд. Процесор з конвеєром команд, в якому послідовно виконуються декілька фаз над різними командами, називається суперконвеєрним.
Як видно з приведеної на рис. 4.14 діаграми, при послідовному виконанні фаз двох команд в одному такті роботи конвеєра кожна з фаз повинна виконуватись двічі. Коли послідовно виконується kфаз команд, то в кожному такті кожна з фаз має виконуватися kраз. Це говорить про те, що внутрішня частота роботи ярусів конвеєра суперконве-єрного процесора є в kразів вищою 'їх зовнішньої частоти, з якою відбувається обмін інформацією між ярусами.
Потрібно відзначити, що для організації суперконвеєрного опрацювання команд необхідне деяке додаткове обладнання порівняно з конвеєрним. Це, зокрема, регістри для зберігання проміжних результатів послідовно виконуваних фаз різних команд.
4.4. Суперскалярні процесори
Вище була розглянута конвеєрна структура процесора, коли засоби виконання ярусів потокового графа алгоритму розділяються конвеєрними регістрами. Щоб підвищити продуктивність конвеєрного процесора потрібно далі спрощувати операції його ярусів та поглиблювати глибину конвеєра. Це і робиться в сучасних процесорах, в яких глибина конвеєра досягає двадцяти і більше ярусів. Наприклад, процесор комп'ютера UltraSPARC III має 10 ярусів конвеєра, а процесор комп'ютера Pentium IV - 20 ярусів конвеєра. Однак процес спрощення операцій ярусів конвеєра має межу, коли операції не піддаються поділу. Наприклад, фаза вибірки команди з пам'яті не може бути поділеною на простіші фази. Тоді для підвищення продуктивності процесора необхідно використовувати паралельне включення декількох конвеєрів команд. Такі процесори з декількома конвеєрами команд дозволяють одночасно виконувати кілька скалярних команд, а тому дістали назву суперскалярних.
Першу суперскалярну архітектуру розробив Джон Коук (JohnCocke,IBM,1987 рік), що отримала назву America.Він і запропонував термін "суперскаляр". Вже потім модифікований варіант архітектури Americaпід назвою POWER-1 (Performance Optimization With Enhanced RISC) впровадили до серійних систем RISC System/6000 фірми IBM.
159
Нарешті, підмножину архітектури POWER-1 реалізовано в процесорах Power PC, які є основою комп'ютерів Apple Macintosh. Іншими прикладами суперскалярних процесорів є процесори систем UltraSparc фірми Sun та Alpha фірми DEC.
Структура суперскалярного процесора та його зв'язки з кеш пам'яттю даних і команд, показані на рис. 4.15.
Тут одночасно вибирається та декодується декілька команд, а блок виконання команд включає кілька функціональних блоків. Для забезпечення одночасного читання та запису кількох операндів кеш пам'ять будується за модульним принципом.
Зрозуміло, що підвищення продуктивності такого процесора досягається шляхом його конвеєризації. Діаграма виконання команд в суперскалярному процесорі, який має два конвеєри команд, показана на рис. 4.16а.
160
Можливе суміщення суперскалярного та суперконвеєрного опрацювання команд, як це показано на рис. 4.16 b.
4.5. Процесор векторного комп'ютера
Вище були розглянуті скалярні та суперскалярні процесори, в яких операції виконуються над скалярними даними. Однак існує значна кількість завдань, коли опрацюванню за одними процедурами підлягають великі масиви (вектори) даних. У цьому випадку виглядає доцільним розгляд можливості модифікації комп'ютера під виконання цього класу завдань. До цих пір така модифікація здійснювалась в потужних комп'ютерах, але на даний час вона почала поширюватись на всі типи комп'ютерів. Відповідно комп'ютери, орієнтовані на опрацювання векторів даних, дістали назву векторних.
Різницю між виконанням скалярної та векторної операції наглядно відображає рис. 4.17, з якого видно, що скалярна операція передбачає виконання додавання над двома даними, тоді як векторна - над двома векторами даних.
Аби зрозуміти стиль програмування векторних комп'ютерів, наведемо приклад програми із скалярними і векторними кодами. Запишемо програму обчислення виразу Y=а * X+ Y,де Y,X- вектори, а а - скаляр. Нехай вектори мають довжину по 64 елементи. Векторна програма має вигляд:
LD | F0, а | ; load scalar a |
LV | VI, Rx | ; load vector X |
MULTS | V2, F0, V1 | ; vector-scalar mult. |
LV | V3, Ry | ; load vector Y |
ADDV | V4, V2, V3 | ;add |
SV | Ry, V4 | ; store vector |
Відповідна скалярна програма має вигляд:
І61
| LD | F0,a |
|
| ADDI | R4,Rx,#512 | ; last address to |
Loop: | load LD | F2,0(Rx) | ; load X(l) |
| MULTD F2,F0,F2 | ; a*X(l) | |
| LD | F4, 0(Ry) | ; load Y(l) |
| ADDD | F4,Ґ2,F4 | ; a*X(l)+Y(l) |
| SD | F4,0(Ry) | ; store into Y(l) |
| ADDI | Rx,Rx,#8 | ; increment index |
| ADDI | Ry,Ry,#8 | ; increment index |
| SUB | R20,R4,Rx | ; compute bound |
| BNZ | R20, loop | ; check if done |
У скалярній програмі курсивом позначено залежності, яких немає у векторному варіанті програми. Обидва варіанти програми можна порівняти за наступними кількісними характеристиками:
За кількістю операцій: 578(2+9*64) проти 321(1+5*64); кількість операцій у векторній програмі зменшено в 1,8 разу.
За кількістю команд: 578(2+9*64) проти 6-ти команд у векторній програмі; перевага в 96 разів.
В таблиці 4.3 наведені характеристики кількох промислових векторних комп'ютерів, з якої видно доцільність їх створення з огляду на досягнуту продуктивність.
Таблиця 4.3
Тип машини | Рік випуску | Частота, MHz | Кількість регістрів | Кількість елементів | Кількість пристроїв float point | Кількість пристроїв load/store | Продуктив ність (MFLOPS) |
Cray-1 | 1976 | 80 | 8 | 64 | 6 | 1 | 160 |
Cray XMP | 1983 | 120 | 8 | 64 | 8 | 2L, IS | 940 |
Cray YMP | 1988 | 166 | 8 | 64 | 8 | 2L, IS | 2667 |
Cray C-90 | 1991 | 240 | 8 | 128 | 8 | 4 | 15238(16) |
Cray T-90 | 1996 | 455 | 8 | 128 | 8 | 4 | 57600(32) |
Conv. C-l | 1984 | 10 | 8 | 128 | 4 | 1 | 20(1) |
Conv. C-4 | 1994 | 133 | 16 | 128 | 3 | 1 | 3240(4) |
Fuj. VP200 | 1982 | 133 | 8-256 | 32-1024 | 3 | 2 | 533(1) |
Fuj. VP300 | 1996 | 100 | 8-256 | 32-1024 | 3 | 2 | N/A |
NEC SX/2 | 1984 | 160 | 8 + 8К | 256 + var | 16 | 8 | 1300(1) |
NEC SX/3 | 1995 | 400 | 8 + 8К | 256 + var | 16 | 8 | 25600(4) |
Таким чином, процесори векторних комп'ютерів виконують команди над векторами даних. Структура цих процесорів за складом та зв'язками повторює вже розглянуті вище структури процесорів, тобто це можуть бути процесори векторних комп'ютерів із
162
складною та простою системою команд, конвеєрні та суперконвеєрні, а також процесори супервекторних комп'ютерів, коли в процесорі є декілька конвеєрів команд. Основна їх відмінність - забезпечення одночасного виконання однієї команди над вектором даних. Це, зокрема, дозволяє будувати 'їх блоки виконання команд за конвеєрним принципом і при цьому позбутися конфліктів, які суттєво гальмують роботу конвеєра чи ускладнюють його структуру.
Для вияснення базових принципів побудови процесорів векторних комп'ютерів розглянемо структуру та систему команд процесора векторного варіанта комп'ютера DLX,а саме комп'ютера DLXV.До складу процесора, структура якого приведена на рис. 4.18, входять пристрій векторного читання запису, регістрові файли з векторними та скалярними регістрами, а також операційний пристрій з набором конвеєрних операційних пристроїв додавання, множення та ділення з рухомою комою та виконання арифметичних і логічних операцій над цілими числами.
Цей комп'ютер має векторні команди, які наведено в табл. 4.4.
Таблиця 4.4
Команда | Операнди | Операція | Коментар |
ADDV | VI, V2.V3 | V1=V2+V3 | VECTOR+VECFOR |
ADDSV | VI, F0.V2 | V1=F0+V2 | SCALAR+VECFOR |
MULTV | V1,V2,V3 | Vl=V2xV3 | VECFORxVECFOR |
MULSV | VI, F0.V2 | V1=F0XV2 | SCAFAR x VECTOR |
LV | VI, Rl | Vl=M[Rl..Rl+63] | FOAD, SFRIDE=1 |
LVWS | V1,R1,R2 | V1=[R1..R1+63*R2] | LOAD, SFRIDE=R2 |
LVI | V1,R1,V2 | V1 = [R1+V2i,i=0..63 | indirect ("gather") |
CeqV | VM,V1,V2 | VMASKi=(Vl I=V2I) | comp. Set mask |
MOV | VLR,R1 | Vec. Len. Reg = Rl | set vector length |
MOV | VM, Rl | Vec. Mask=Rl | set vector mask |
Приведений процесор є процесором комп'ютера з простою системою команд. До цього типу належать усі векторні суперкомп'ютери: Cray, Convex, Fujitsu, Hitachi, NEC.
163
Хоча потрібно зауважити, що існують і векторні комп'ютери з архітектурою «пам'ять-пам'ять», коли всі векторні операції є операціями типу пам'ять-пам'ять наприклад, CDC-6600.
Подібно до приведеного на рис, 4.18, процесори векторних комп'ютерів містять наступні основні компоненти
Векторні регістри; це регістрий файл фіксованої ємності що вміщує вектор даних. Цей файл має як мінімум 2 порти на читання і один порт на запис та зазвичай включає 8-32 векторних регістри, кожний з яких є 64-128-розрядним
Конвеєрні операційні пристрої. Зазвичай застосовують 4-8 операційних пристроїв, а саме: додавання, множення і ділення з фіксованою та рухомою комою, зсуву тощо
Векторний вузол читання-запису, також конвеєрний, який опрацьовує вектори даних. Водночас застосовують декілька таких вузлів
Скалярні регістри, які містять один скаляр з рухомою комою або адресу
Багатошинні магістралі або комутаційні мережі, які з'єднують між собою всі зазначені компоненти, аби прискорити роботу процесора в цілому
Перші векторні комп'ютери STAR-100 фірми CDC та ASC фірми ТІ були створені в 1972 році. Це були векторні комп'ютери з архітектурою типу пам'ять-пам'ять
Значний внесок в теорію побудови векторних комп'ютерів зробив видатний американський конструктор векторних суперкомп'ютерів Сеймур Крей. Нарис. 4.19 зображено його перший векторний суперкомп'ютер Сгау-1 та векторні суперкомп'ютери Сгау-2 і Cray-YMP.
Комп'ютер CRAY-1був створений в 1976 році і мав архітектуру типу «регістр-ре-гістр», тому він був найшвидшим серед векторних та скалярних комп'ютерів свого часу. В 1981 році на ринку з'явився значно потужніший векторний комп'ютер CYBER-205 фірми CDC з тією ж базовою архітектурою, що і STAR-100, але більшою кількістю векторних функціональних блоків. Це були векторні комп'ютери з архітектурою типу "пам'ять-пам'ять". В 1983 році фірма Cray Research поставила на ринок векторний суперкомп'ютер CRAY X-MR а через кілька років - CRAY-2, який мав вищу тактову частоту та іще більший рівень конвеєризації. В 1988 році фірма Cray Research створила значно швидший, ніж Х-МР суперкомп'ютер CRAY Y-MP, котрий мав 8 конвеєрних процесорів, кожний з яких працював з тактом 6 нc.
Одночасно потужні векторні суперкомп'ютери почали створюватись і в інших державах. Зокрема, в середині 80-х років в Японії були створені суперкомп'ютери Fujitsu
164
VP100і VP200,за ними HitachiS810і NECSX/2,які за технічними характеристиками не поступалися комп'ютерам фірми CrayResearch
Протягом наступних 20 років векторні комп'ютери мали швидкий розвиток і з екзотичних перетворились в широковживаний клас потужних комп'ютерів.
4.6. Класифікація архітектури комп'ютера за рівнем суміщення опрацювання команд та даних
Виходячи з вищенаведеного розгляду різних принципів побудови процесорів, можна зробити наступну класифікацію архітектури комп'ютера за рівнем суміщення в них опрацювання команд та даних
■ за відсутністю та наявністю конвеєра команд: комп'ютери без конвеєра команд та комп'ютери з конвеєром команд
■ за відсутністю та наявністю конвеєра даних: комп'ютери без конвеєра даних та комп'ютери з конвеєром даних
за кількістю послідовно виконуваних фаз команд в конвеєрі: конвеєрні та супер-конвеєрні
за кількістю одночасно опрацьовуваних даних за однією командою: скалярні та векторні
" за кількістю одночасно опрацьовуваних скалярних команд: скалярні та супер-скалярні
■ за кількістю одночасно опрацьовуваних векторних команд: векторні та супер- векторні
Проведений вище аналіз названих архітектур дозволяє зробити висновок про те, що для побудови високопродуктивних комп'ютерів потрібно, щоб вони мали суперконве-єрну суперскалярну та супервекторну архітектуру
4.7. Короткий зміст розділу
Розглянуто місце процесора в комп'ютері, його функції та склад. Приведена одно-шинна структура процесора комп'ютера із складною системою команд та розглянуто виконання на ній основних операцій процесора: вибірки слова із пам'яті, запам'ятовування слова в пам'яті, обміну між регістрами, виконання арифметичних і логічних операцій. Проведено порівняння одношинної з багатошинною структурою процесора
Виділено особливості побудови процесора комп'ютера із складною системою команд та сформовано вимоги до процесора комп'ютера з простою системою команд. Описані базові принципи побудови процесора комп'ютера з простою системою команд, а також взаємодія процесора з основною пам'яттю в комп'ютері з простою системою команд
Розглянуто фази виконання команд в процесорі комп'ютера з простою системою команд: вибирання та декодування команди, виконання та формування ефективної адреси, звернення до пам'яті/завершення умовного переходу, зворотного запису. Описана конвеєрна структура процесора з простою системою команд на прикладі процесора комп'ютера DLX.Розглянуто принципи побудови суперконвеєрним та суперскалярних процесорів, а також процесорів векторних комп'ютерів. Виходячи з вищенаведеного розгляду різних принципів побудови процесорів, зроблено класифікацію архітектури комп'ютера за рівнем суміщення в ньому опрацювання команд та даних.
165
- 2.6. Формати даних 63
- 3.1. Кодування та виконання команд в комп'ютері 82
- 4.3. Суперконвеєрні процесори 157
- 4.10. Питання до розділу 4 165
- 5.3. Конфлікти керування 177
- 6.1. Логічні операції 204
- 8.3. Пристрій мікропрограмного керування 297
- 9.3. Пам'ять з асоціативним доступом 321
- 9.4. Основна пам'ять 328
- 9.7. Зовнішня пам'ять 339
- 10.1. Ієрархічна організація пам'яті комп'ютера 357
- 10.2. Організація обміну інформацією між процесором і основною пам'яттю
- 10.3. Організація обміну інформацією між основною та зовнішньою пам'яттю 376
- 10.4. Захист пам'яті від несанкціонованих звернень 391
- 12.8. Організація комп'ютерних систем із розподіленою пам'яттю 444
- 12.9. Комунікаційні мережі багатопроцесорних систем 445
- Розділ 1 Сучасний комп'ютер. Основні поняття
- 1.2. Функції, структура та характеристики комп'ютера
- 1.2.1. Функції та основні функціональні вузли комп'ютера
- 1.2.2. Тенденції зміни основних характеристик апаратних засобів комп'ютера
- 1.2.3. Оцінка продуктивності комп'ютера
- 1.2.3.1. Одиниці оцінки продуктивності
- 1.2.3.2. Тестові програми для оцінки продуктивності
- 1.2.4. Організація зв'язків між функціональними вузлами комп'ютера
- 1.3. Архітектура комп'ютера
- 1.3.1. Поняття архітектури комп'ютера
- 1.3.2. Архітектурні принципи Джона фон Неймана
- 1.3.3. Ненейманівські архітектури комп'ютерів
- 1.4. Типи сучасних комп'ютерів
- 1.4.1. Персональні комп'ютери
- 1.4..2. Робочі станції
- 1.4.3. Багатотермінальні системи
- 1.4.4. Сервери
- 1.4.5. Великі універсальні комп'ютерні системи
- 1.4.6. Кластерні комп'ютерні системи
- 1.4.7. Суперкомп'ютери
- 7.4.8. Мікроконтролери
- 1.4.9. Спеціалізовані комп'ютери
- 1.5. Предмет та порядок розгляду матеріалу даної книги
- 1.6. Підсумок розділу
- 1.7. Література для подальшого читання
- 1.8. Література до розділу 1
- 1.9. Питання до розділу 1
- Розділ 2 Представлення даних у комп'ютері
- 2.7, Позиційні системи числення
- 2.2. Двійкові, вісімкові та шістнадцяткові числа
- 2.5. Представлення чисел зі знаком
- 2.5.7. Прямий код
- 2.5.2. Обернений код
- 2.6. Формати даних
- 2.6.1. Способи представлення чисел
- 2.6.2. Числа з фіксованою комою
- 2.6.3. Числа із рухомою комою
- 2.6.4. Стандарт іеее-754
- 2.6.5. Кодування алфавітно-цифрової інформації
- 2.6.5.7. Двійково-кодовані десяткові числа
- 2.6.4.2. Розширений двійково-кодований десятковий код обміну ebcdic
- 2.6.4.3 Американський стандартний код інформаційного обміну ascii
- 2.6.4.4. Стандарт кодування символів Unicode
- 2.7. Короткий зміст розділу
- 2.8. Література для подальшого читання
- 2.9. Література до розділу 2
- 2.10. Питання до розділу 2
- 2.11. Задачі до розділу 2
- Розділ 3 Порядок виконання команд і програм в комп'ютері
- 3.1.1. Кодування команди та програми
- 3.1.2. Порядок виконання команд
- 3.1.3. Виконання команд на рівні регістрів процесора
- 3.2. Типи операцій та команд
- 3.2.1. Класифікація команд за типами операцій
- 3.2.2. Команди обробки даних
- 3.2.3. Команди переміщення даних
- 3.2.4.. Команди передачі керування
- 3.2.4.1. Команди переходу
- 3.2.4.2. Команди пропуску
- 3.2.4.3. Команди звернення до підпрограм
- 3.2.5. Команди введєння-виведення
- 3.2.6. Принципи формування системи команд комп'ютера
- 3.2.7. Конвеєрне виконання команд
- 3.3. Формати команд комп'ютера
- 3.3.1. Класифікація архітектури комп'ютера за типом адресованої пам'яті
- 3.3.2. Порівняльний аналіз форматів команд
- 3.4. Способи адресації операндів
- 3.4.1. Безпосередня адресація
- 3.4.2. Пряма адресація
- 3.4.3. Непряма адресація
- 3.4.4. Способи адресації операндів на основі операції зміщення
- 3.4.4.1. Відносна адресація
- 3.4.4.2. Базова адресація
- 3.4.4.3. Індексна адресація
- 3.4.5. Сторінкова адресація
- 3.4.6. Неявна адресація
- 3.4.7. Стекова адресація
- 3.4.8. Використання стекової адресації
- 3.4.9. Вибір способів адресації операндів
- 3.5. Приклади форматів команд
- 3.5.1. Формати команд комп'ютерної системи ibm 370
- 3.5.2. Формати команд комп'ютера Cyber-70
- 3.5.3. Формати команд сучасного комп'ютера
- 3.6. Вплив технологи компілювання на систему команд комп'ютера
- 3.7. Архітектура системи команд комп'ютера
- 3.7.1. Класифікація архітектури комп'ютера за складом системи команд
- 3.7.2. Комп'ютери із складною та з простою системами команд
- 3.7.3. Особливості архітектури комп'ютера з простою системою команд
- 3.7.4. Архітектура комп'ютера з доповненою системою команд
- 3.7.5. Комп'ютери зі спеціалізованою системою команд
- 3.8. Короткий зміст розділу
- 3.9. Література для подальшого читання
- 3.10. Література до розділу з
- 4.1. Процесор комп'ютера із складною системою команд
- 4.1.1. Одношинна структура процесора
- 4.1.2. Основні операції процесора
- 4.1.2.1. Вибірка слова з пам'яті
- 4.1.2.2. Запам'ятовування слова в пам'яті
- 4.1.2.3. Обмін даними між регістрами
- 4.1.2.4. Виконання арифметичних і логічних операцій
- 4.1.3. Багатошинна структура процесора
- 4.1.4. Приклади виконання операцій в процесорі
- 4.1.4.1. Виконання операції додавання двох чисел
- 4.1.4.2. Виконання операції переходу
- 4.1.5. Особливості побудови процесора комп'ютера із складною системою команд
- 4.2. Процесор комп'ютера з простою системою команд
- 4.2.1. Вимоги до процесора комп'ютера з простою системою команд
- 4.2.2. Базові принципи побудови процесора комп'ютера з простою системою команд
- 4.2.3. Взаємодія процесора з пам'яттю в комп'ютері з простою системою команд
- 4.2.4. Виконання команд в процесорі комп'ютера з простою системою команд
- 4.2.4.1. Фаза вибирання команди
- 4.2.4.3. Фаза виконання та формування ефективної адреси
- 4.2.4.4. Фаза звернення до пам'яті та завершення умовного переходу
- 4.2.4.5. Фаза зворотного запису
- 4.2.5. Конвеєрна структура процесора комп'ютера з простою системою команд
- 4.2.5.1. Конвеєрний процесор
- 4.2.5.2. Мікродії ярусів конвеєрного процесора
- 4.8. Література для подальшого читання
- 4.9. Література до розділу 4
- 4.10. Питання до розділу 4
- 5. 1. Структурні конфлікти
- 5.2. Конфлікти за даними
- 5.2.1. Типи конфліктів за даними
- 5.2.2. Методи зменшення впливу конфліктів за даними на роботу конвеєра команд
- 5.2.3. Призупинення виконання команди
- 5.2,4. Випереджувальне пересилання
- 5.2.5. Статична диспетчеризація послідовності команд у програмі під час компіляції
- 5.2.6. Динамічна диспетчеризація послідовності команд у програмі під час компіляції
- 5.2.7. Перейменування регістрів
- 5.3. Конфлікти керування
- 5.3.1. Типи конфліктів керування
- 5.3.2. Зниження втрат на вибірку команди, до якої здійснюється перехід
- 5.3.3. Зниження втрат на виконання команд умовного переходу
- 5.3.3.7. Введення буфера попередньої вибірки
- 5.3.3.2. Дублювання початкових ярусів конвеєра
- 5.3.3.3. Затримка переходу
- 5.3.3.4. Статичне передбачення переходу
- 5.3.3.5. Динамічне передбачення переходу
- 5.7. Комп'ютери з комбінованою архітектурою
- 5.9. Короткий зміст розділу
- 5.10. Література для подальшого читання
- 5.12. Питання до розділу 5
- 6.1. Логічні операції
- 6.1.1. Операція заперечення
- 6.2. Операції зсуву
- 6.2.1. Логічні зсуви
- 6.2.2. Арифметичні зсуви
- 6.2.3. Циклічні зсуви
- 6.3. Операції відношення
- 6.3.1. Порівняння двійкових кодів на збіжність
- 6.3.2. Визначення старшинства двійкових кодів
- 6.4. Арифметичні операції
- 6.4.1. Додавання двійкових чисел без знаків
- 6.4.2. Додавання двійкових чисел із знаками
- 6.4.3. Віднімання двійкових чисел
- 6,4.4. Множення двійкових чисел
- 6.4.4.7. Множення цілих двійкових чисел без знаків
- 6.4.4.2. Багатомісна операція додавання часткових добутків
- 6.4.4.3. Множення двійкових чисел із знаками
- 6.4.4.4. Прискорене множення двійкових чисел за методом Бута
- 6.4.5. Ділення двійкових чисел
- 6.4.6. Арифметичні операції над двійковими числами у форматі з рухомою комою
- 6.5. Операції обчислення елементарних функцій
- 6.6. Операції перетворення даних
- 6.6.1. Перетворення даних із формату з фіксованою у формат з рухомою комою та навпаки
- 6.6.2. Перетворення даних з двійково-десяткового коду в двійковий та навпаки
- 6.7. Операції реорганізації масивів і визначення їх параметрів
- 6.8. Операції обробки символів та рядків символів
- 6.9. Короткий зміст розділу
- 6.70. Література для подальшого читання
- 6.11. Література до розділу 6
- 6.72. Питання до розділу 6
- Розділ 7
- 7.1. Функції арифметико-логічного пристрою
- 7.2. Способи обробки даних в арифметико-логічному пристрої
- 7.3. Елементарні операції арифметико-логічного пристрою
- 7.4. Складні операції арифметико-логічного пристрою
- 7.5. Використання графа алгоритму при побудові арифметико-логічного пристрою
- 7.6. Виконання складних операцій в арифметико-логічному пристрої
- 7.8. Типи операційних пристроїв
- 7.9. Табличний операційний пристрій
- 7.10. Вагатотактовий операційний пристрій
- 7.11. Однотактовий операційний пристрій
- 7.12. Конвеєрний операційний пристрій
- 7.13. Алгоритмічні операційні пристрої
- 7.13.1. Пристрої додавання і віднімання двійкових чисел з фіксованою комою
- 7.13.2. Пристрої множення двійкових чисел з фіксованою комою
- 7.13.2.1. Багатотактовий пристрій множення двійкових чисел з молодших розрядів множника при нерухомому множеному з зсувом суми часткових добутків
- 7.13.2.2. Багатотактовий пристрій множення двійкових чисел з молодших розрядів при нерухомій сумі часткових добутків з зсувом множеного вліво
- 7.13.2.3. Багатотактовий пристрій множення двійкових чисел з старших розрядів при нерухомій сумі часткових добутків з зсувом множеного вправо
- 7.13.2.4. Багатотактовий пристрій множення двійкових чисел з старших розрядів при нерухомому множеному з зсувом суми часткових добутків вліво
- 7.13.2.5. Багатотактовіш пристрій прискореного множення
- 7.13.2.6. Однотактові пристрої множення двійкових чисел з фіксованою комою
- 7.13.2.7. Конвеєрні пристрої множення двійкових чисел з фіксованою комою
- 7.13.3 Пристрої ділення двійкових чисел з фіксованою комою
- 7.13.3.1. Багатотактові пристрої ділення двійкових чисел з фіксованою комою
- 7.13.3.2. Однотактові та конвеєрні пристрої ділення двійкових чисел з фіксованою комою
- 7.13.4. Пристрої обчислення елементарних функцій методом "цифра за цифрою"
- 7.13.4.1. Багатотактовий пристрій обчислення елементарних функцій методом "цифра за цифрою"
- 7.13.5.2. Пристрої множення та ділення чисел з рухомою комою
- 7.14. Таблично-алгоритмічні операційні пристрої
- 7.15. Короткий зміст розділу
- 7.16. Література для подальшого читання
- 7. Т 7. Література до розділу 7
- 7. 18. Питання до розділу 7
- Розділ 8 Пристрій керування
- 8.1. Функції та методи побудови пристрою керування
- 8.2. Пристрій керування з жорсткою логікою
- 8.2.1. Структура пристрою керування з жорсткою логікою
- 8.2.2. Методи проектування пристрою керування з жорсткою логікою
- 8.2.3.2. Мови опису функціонування автоматів
- 8.2.3.3. Структурний синтез цифрових автоматів
- 8.2.4. Пристрій керування на основі синхронних елементів часової затримки
- 8.2.5. Пристрій керування на основі лічильників
- 8.3. Пристрій мікропрограмного керування
- 8.3.1. Організація роботи пристрою мікропрограмного керування
- 8.3.2. Організація мікропрограм в пам'яті мікрокоманд
- 8.3.3. Горизонтальне та вертикальне мікропрограмування
- 8.4. Порівняння пристроїв керування з жорсткою логікою та пристроїв мікропрограмного керування
- 8.5. Короткий зміст розділу
- 8.6. Література для подальшого читання
- 8.7. Література до розділу 8
- 8.8. Питання до розділу 8
- 9.1. Типи та характеристики пам'яті комп'ютера
- 9.1.1. Багаторівнева структура пам'яті комп'ютера
- 9.1.2. Типи пам'яті
- 9.1.3. Основні характеристики пам'яті
- 9.2 Регістровий файл процесора
- 9.2.1. Типи регістрових файлів
- 9.2.2. Інтегрований багатопортовий регістровий файл
- 9.2.3. Розподілений регістровий файл
- 9.2.3. 1. Кластерний розподілений регістровий файл
- 9.2.3.2. Розподілений регістровий файл з керованою комутацією
- 9.2.3.3. Розподілений регістровий файл з віконною організацією
- 9.2.4. Ієрархічний регістровий файл
- 9.2.5. Динамічна та статична організація збереження даних в регістрових файлах
- 9.3. Пам'ять з асоціативним доступом
- 9.3.1. Організація та типи пам'яті з асоціативним доступом
- 9.3.2. Пам'ять з повним паралельним асоціативним доступом
- 9.3.3. Пам'ять з неповним паралельним асоціативним доступом
- 9.3.4. Пам'ять з послідовним асоціативним доступом
- 9.3.5. Пам'ять з частково асоціативним доступом
- 9.4. Основна пам'ять
- 9.4.1. Структура основної пам'яті
- 9.4.2. Нарощування розрядності основної пам'яті
- 9.4.4. Розшарування пам'яті
- 9.5. Оперативний запам'ятовуючий пристрій
- 9.6. Постійний запам'ятовуючий пристрій
- 9.6.1. Організація роботи постійного запам'ятовуючого пристрою
- 9.6.2. Запрограмований при виготовленні постійний запам'ятовуючий пристрій
- 9.6.3. Одноразово запрограмований після виготовлення постійний запам'ятовуючий пристрій
- 9.6.4. Багаторазово програмований постійний запам'ятовуючий пристрій
- 9.7. Зовнішня пам'ять
- 9.7.1. Магнітні диски
- 9.7.2. Масиви магнітних дисків з надлишковістю
- 9.7.2.1. Базовий тип дискових масивів raid 0
- 9.7.2.2. Базовий тип дискових масивів raid 1
- 9.7.2.3. Базовий тип дискових масивів raid 2
- 9.7.2.4. Базовий тип дискових масивів raid з
- 9.7.2.5. Базовий тип дискових масивів raid 4
- 9.7.2.6. Базовий тип дискових масивів raid 5
- 9.7.2.7. Тип дискових масивів raid 6
- 9.7.2.8. Тип дискових масивів raid 7
- 9.7.2.9. Тип дискових масивів raid 10
- 9.7.3. Оптична пам'ять
- 9.7.3.1. Постійна пам'ять на основі компакт дисків
- 9.7.3.2. Оптичні диски із стиранням
- 9.7.4. Магнітні стрічки
- 9.8. Короткий зміст розділу
- 9.9. Література для подальшого читання
- 9. 1 0. Література до розділу 9
- 9.11. Питання до розділу 9
- Організація пам'яті
- 10.1. Ієрархічна організація пам'яті комп'ютера
- 10.1.1. Різниця між: продуктивністю процесора та пам'яті
- 10.1.2. Властивість локальності за зверненням до пам'яті
- 10.1.3. Принцип ієрархічної організації пам'яті
- 10.1.4. Характеристики ефективності ієрархічної організації пам'яті
- 10.1.5. Ієрархічна пам'ять сучасного комп'ютера
- 10.2. Організація обміну інформацією між процесором і основною пам'яттю через кеш пам'ять
- 10.2.1. Кеш пам'ять в складі комп'ютера
- 10.2.2. Порядок взаємодії процесора і основної пам'яті через кеш пам'ять
- 10.2.3. Забезпечення ідентичності вмісту блоків кеш пам'яті і основної пам'яті
- 10. 0.2.4. Функція відображення
- 10.2.4.1. Типи функцій відображення
- 10.2.4.2. Повністю асоціативне відображення
- 10.2.4.3. Пряме відображення
- 10.2.4.4. Частково-асоціативне відображення
- 10.2.5. Порядок заміщення блоків в кеш пам'яті з асоціативним відображенням
- 70.2.6. Підвищення ефективності кеш пам'яті
- 10.3. Організація обміну інформацією між основною та зовнішньою пам'яттю
- 10.3.1. Статичний та динамічний розподіл пам'яті
- 10.3.2. Розподіл основної пам'яті за допомогою базових адрес
- 10.3.3. Віртуальна пам'ять
- 10.3.4. Сторінкова організація пам'яті
- 10.3.4.1. Основні правила сторінкової організації пам'яті
- 10.3.4.2. Реалізація сторінкової організації пам'яті
- 10.3.4.3. Апаратна реалізація сторінкової таблиці
- 10.3.5. Сегментна організація віртуальної пам'яті
- 10.4. Захист пам'яті від несанкціонованих звернень
- 10.4.1. Задачі захисту пам'яті
- 10.4.2. Захист пам'яті за допомогою регістра захисту
- 10.4.3. Захист пам'яті за граничними адресами
- 10.4.4. Захист пам'яті за значеннями ключів
- 10.4.5. Кільцева схема захисту пам'яті
- 10.5. Короткий зміст розділу
- 10.6. Література для подальшого читання
- 10.7. Література до розділу 10
- 10.8. Питання до розділу 10
- Розділ 11 Організіція введення-виведення
- 11.1. Під'єднаний зовнішніх пристроїв до комп'ютера
- 1 1.2. Розпізнавання пристроїв введення-виведення
- 11.3. Методи керування введенням-виведенням
- 11.4. Програмно-кероване введення-вивєдення
- 11.5. Система переривання програм та організація введення-виведення за перериваннями
- 11.5.1. Функції системи переривання програм
- 11.5.2. Характеристики системи переривання програм
- 11.5.3. Вхід в переривальну програму
- 11.5.4. Пріоритетне обслуговування переривання
- 11.5.5. Організація повернення до перериваної програми
- 11.5.6. Введення-виведення за перериваннями
- 11.6. Прямий доступ до пам'яті
- 11.7. Введення-виведення під керуванням периферійних процесорів
- 11.7.1. Принципи введення-виведення під керуванням периферійних процесорів
- 11.7.2. Причини застосування каналів введення-виведення
- 11.7.3. Функції каналів введення-виведення
- 11.7.4. Керуюча інформація каналу введення-виведення
- 11.7.5. Мультиплексний та селекторний канали введення-виведення
- 11.8. Короткий зміст розділу
- 11.9. Література для подальшого читання
- 11.10. Література до розділу 11
- 11.11. Питання до розділу 11
- Розділ 12
- 12.1. Використання принципів паралельної обробки інформації в архітектурі комп'ютера
- 12.2. Вибір кількості процесорів у багатопроцесорній системі
- 12.3. Багатопотокова обробка інформації
- 12.4. Класифікація паралельних комп'ютерних систем
- 12.4.1. Класифікація Шора
- 12.4.2. Класифікація Фліна
- 12.5. Типи архітектур систем окмд
- 12.6. Типи архітектур систем мкмд
- 12.7. Організація комп'ютерних систем із спільною пам'яттю
- 12.7.1. Типи комп'ютерних систем із спільною пам'яттю
- 12.7.2. Системи з однорідним доступом до пам'яті
- 12.7.3. Системи з неоднорідним доступом до пам'яті
- 12.7.4. Системи лише з кеш пам'яттю
- 12.8. Організація комп'ютерних систем із розподіленою пам'яттю
- 12.9. Комунікаційні мережі багатопроцесорних систем
- 12.9.1. Типи комунікаційних мереж
- 12.9.2. Основні характеристики комунікаційних мереж багатопроцесорних систем
- 12.9.3. Статичні топології комунікаційних мереж: багатопроцесорних систем
- 12.9.4. Шинні динамічні комунікаційні мережі багатопроцесорних систем
- 12.9.5. Комутуючі динамічні комунікаційні мережі багатопроцесорних систем
- 12.9.5.1. Типи комутуючих динамічних комунікаційних мереж
- 12.9.5.2. Координатна мережа
- 12.9.5.3. Матрична одноярусна комутуюча мережа
- 12.9.5.4. Багатоярусні блокуючі комутуючі мереж
- 12.9.5.5. Багатоярусні неблокуючі комутуючі мережі з реконфігурацією
- 12.9.5.6. Багатоярусні неблокуючі комутуючі мережі
- 12.10. Короткий зміст розділу
- 12.11. Література для подальшого читання
- 12.12. Література до розділу 12
- 12.13. Питання до розділу 12
- 43010 М. Луцьк, пр. Волі, 27.