Міністерство освіти та науки України
Національний університет “Львівська політехніка”
Кафедра ЕОМ
Методичні вказівки
до лабораторної роботи №1
з дисципліни “Організація та функціонування комп’ютерів”
на тему: “Архітектура навчального комп’ютера - симулятора DeComp”
Укладачі:
ст.. викл., к.т.н. Єрметов Ю.О.
ст.викл. Кудрявцев О.Т.
Львів
2003 - 2005
Лабораторна робота № 1
Тема: “Ознайомлення з архітектурою навчального комп’ютера - симулятора DeComp”
Мета: 1. Ознайомитись із структурою та принципом роботи комп’ютера 1-го покоління;
2. Вивчити архітектуру навчального комп’ютера – симулятора DeComp, призначення окремих блоків і їх можливості;
3. Засвоїти правила роботи із симулятором навчального комп’ютера.
Теоретичні відомості
Cимулятор навчального комп’ютера DeComp – це програма, яка імітує роботу комп’ютерів 1-го покоління (наприклад, комп’ютера “Мінськ-1”, що був створений у 60-х роках ХХ ст.) і дозволяє досліднику не тільки виконувати усі команди та програми, але й “зазирнути” у внутрішню структуру комп’ютера і крок за кроком відслідкувати, як він працює. Таким чином, симулятор – це програма, яка моделює роботу електронного пристрою і відображає результати роботи у зручному для дослідника вигляді. Дослідження комп’ютера 1-го покоління зручне тим, що його структура є максимально простою і містить мінімум елементів, необхідних для роботи комп’ютера взагалі. Сучасні комп’ютери надзвичайно складні, в них додано велику кількість додаткових елементів, призначених для підвищення продуктивності комп’ютера.
Програма-симулятор навчальної ЕОМ, яку ми в подальшому будемо називати просто “симулятор”, знаходиться у комп’ютерах на логічному диску D: у каталозі DeCOMP (D:\DECOMP) або в каталозі, на який вкаже викладач. Якщо запустити на виконання файл DeComp.exe (або клікнути на іконці симулятора , яка розташована на робочому столі), тоді з’явиться вікно програми, зображене на рис.1.1.
Рис.1.1. Головна закладка вікна симулятора DeComp
У перший момент активізованою є головна “закладка” вікна – “Навчальна ЕОМ”, окрім якої існують ще закладки “Карта пам’яті ЕОМ”, “Пристрій підготовки даних” та “Документація до “Навчальної ЕОМ”.
Закладка, що зображена на рис.1.1, фактично відображає зовнішній вигляд панелі управління реальних машин 1-го покоління. Як видно на рисунку, панель навчального комп’ютера складається з двох частин: структури комп’ютера та пульта управління. Перед тим, як почати вивчення симулятора, знайомимось із архітектурою найпростіших 1-го покоління.
Отже, згідно із фундаментальними принципами побудови універсального обчислювача, що були запропоновані ще на початку ХІХ сторіччя англійським вченим Ч. Беббіджем, він повинен складатись з 5-ти основних частин (див. рис.1.2):
Рис.1.2. Структура універсального обчислювача Ч. Беббіджа
Призначення кожної з частин наступні:
арифметичний пристрій, у залежності від його внутрішньої будови, повинен вміти виконувати математичні операції (додавання, віднімання, множення, ділення або й навіть складніші – добування квадратного кореня, піднесення до степеня та ін.);
пам’ять інструкцій та даних – саме пам’ять визначає, які операції і у якій послідовності необхідно виконувати. Без пам’яті арифметичний пристрій не виконає жодної дії (хоча пам’ять без арифметичного пристрою, звичайно, також). Інструкції у пам’яті визначають які операції і над якими даними необхідно виконувати, а послідовність інструкцій у пам’яті – порядок виконання операцій;
пристрої вводу та виводу інформації забезпечують зв’язок обчислювача із людиною. За часів Беббіджа (а навіть і за часів комп’ютерів 1-го – 3-го покоління) інформація вводилась та виводилась за допомогою перфокарт – спеціальних картонних пластинок з отворами, кількість та порядок розташування яких кодували інформацію. Нагадаємо, що інформація, яку вводить людина у комп’ютер, може бути двох видів: дані, які необхідно обробляти, та інструкції (або – команди), які визначають послідовність та тип процедур обробки даних;
керуючий пристрій, відповідно, керує роботою усіх частин обчислювача. Для цього він повинен одна за одною зчитувати інструкції з пам’яті, “повідомляти” арифметичний пристрій про закладені у інструкціях операції та дані, а також змінювати свою роботу за вказівками людини.
Ідея Ч. Беббіджа виявилась настільки вдалою і простою водночас, що будь-який сучасний комп’ютер складається із тих самих частин (див. рис.1.3).
Звичайно, що кожна складова частина комп’ютера стала сама по собі надзвичайно складною. Так, процесор здатний одночасно обробляти зразу декілька складних інструкцій, пам’ять поділяється на різні типи з різною швидкодією та ємністю (оперативна пам’ять, кеш-пам’ять, пам’ять на жорсткому диску та ін.), а пристрої вводу та виводу самі по собі являють комп’ютери із спеціалізованими функціями (сканери, принтери, цифрові фотокамери і т.інш.). Також надзвичайно складною частиною комп’ютера стали магістралі (або шини) зв’язку між окремими компонентами комп’ютера, які на рисунку показані просто стрілками.
Рис.1.3. Структура сучасного комп’ютера
Але повернемось до симулятора. Панель симулятора розділена на дві частини. У лівій частині панелі “Навчальна ЕОМ” подана структура навчального комп’ютера, на якій можна побачити усі 5 складових частин (блоків) обчислювача Ч. Беббіджа. Кожний блок, у свою чергу, містить:
Пам’ять інструкцій та даних - регістр адреси пам’яті і регістр даних пам’яті;
Арифметично логічний пристрій - акумулятор і регістр ознак;
Керуючий пристрій – регістр інструкцій і лічильник адреси інструкцій;
Пристрої вводу і виводу – на даний час робота цією частиною симулятора ще не завершена. Заплановане використання пристроїв послідовного вводу/виводу.
Зауважимо, що у сучасних комп’ютерах арифметичний та керуючий пристрої об’єднані у одну складову частину – процесор (від англ. to process – обробляти), який не випадково називається головною частиною комп’ютера, що обробляє інформацію та керує роботою усього комп’ютера.
Пам’ять навчального комп’ютера складається з 4096 комірок і на панелі навчального комп’ютера подана спеціальним вікном, яке відображає 8 комірок. Кожна комірка описується своє адресою (або номером) у лівій частині. За кожною адресою зберігається число у двійковому значенні, яке подається у правій частині вікна зображення пам’яті. На відміну від людини, яка користується системою числення з основою 10, у комп’ютері використовується лише 2 цифри – 0 та 1, тобто система числення з основою 2. Відповідно усі дані, а також інструкції всередині комп’ютера кодуються і зберігаються у двійковому вигляді.
Кожна комірка пам’яті здатна зберігати 16-розрядний код, який складається з 16 двійкових цифр, що називаються розрядами або бітами. (8 біт = 1 байт). Таке 16-розрядне число називається словом. Максимальне число, яке здатна зберігати одна комірка, дорівнює 216 1 = 6553510. У свою чергу, оскільки максимальна кількість комірок становить 4096, то адреса кожної комірки складається з log24096 = 12 розрядів. Оскільки у сучасних комп’ютерах шина адреси є 32-розрядною, то максимальна кількість комірок може становити 232 4млрд. = 4 ГБайти.
У симуляторі вікно пам’яті працює таким чином, щоб комірка, з якою у даний момент відбувається робота, знаходилась посередині вікна. Також біля вікна пам’яті зображено два регістри: Регістр Адреси пам’яті та Регістр Даних пам’яті. Хоча ці регістри, за допомогою яких здійснюється доступ до комірок пам’яті, зображені біля неї, насправді вони розташовані у процесорі.
Процесор, який складається з арифметичного та керуючого пристроїв, у симуляторі представлений „Арифметико-логічним пристроєм”, двома регістрами пристрою управління (Регістр Інструкцій та Лічильник Адреси Інструкції) та регістрами для доступу до пам’яті (див. вище).
Регістр – це комірка для запам’ятовування інформації, яка розташована у процесорі і працює з набагато більшою швидкістю у порівнянні із комірками пам’яті. Як і комірка пам’яті, регістр складається з двійкових розрядів, які у регістрі мають спеціальну назву – тригер. Відповідно кожний тригер здатний запам’ятовувати одну двійкову цифру: 0 або 1. Кожний розряд (тригер) регістра у симуляторі представлений індикатором (кружечком), жовтий колір якого (індикатор “світиться”) відповідає 1, а сірий – 0.
Арифметико-логічний пристрій (АЛП) – це пристрій, який має два входи і один вихід і здатний виконувати набір арифметичних, логічних та інших операцій. На входи подаються дані у вигляді двійкових чисел, а на виході отримуємо результат виконання біжучої операції над цими даними. У нашому симуляторі АЛП як такий не зображений, хоча обов’язково присутній. До складу АЛП у симуляторі також віднесено ще два регістри: Акумулятор, який грає одну з найголовніших ролей у роботі процесора, та Регістр Ознак.
На рис. 1.4. схематично зображено підключення акумулятора. Акумулятор підключений до одного з двох входів АЛП, а до другого підключається Регістр Даних пам’яті. Таким чином, АЛП здатний виконувати арифметичні та логічні операції над двома числами, з яких одне повинно знаходитись у акумуляторі, а друге може розташовуватись у будь-якій комірці пам’яті, до якої АЛП звертається за допомогою Регістра Даних пам’яті. Деякі операції вимагають лише одного числа (наприклад, логічна операція НІ, або арифметичні операції зсуву) – у цьому випадку для збереження вхідного числа використовується акумулятор.
Вихід АЛП також підключається до акумулятора – відповідно результат операції замінює (“затирає”) те число, що попередньо знаходилося в акумуляторі – це необхідно пам’ятати. Назва „акумулятор” (походить від англ. to accumulate – накопичувати) пояснюється тим, що більшість операцій в алгоритмі програми є взаємопов’язаними, коли результат однієї операції використовується як вхідне число у наступній операції. В цьому випадку підключення акумулятора до входу та виходу АЛП (див. рис.1.4) є дуже зручним:
Регістр Ознак складається з 3-х тригерів (розрядів) і відображає наступні ознаки результату операції АЛП:
Z (від англ. Zero - нуль) – ознака того, що результат операції дорівнює 0;
S (від англ. Sign – знак) – ознака того, що результат є < 0 (тобто - від’ємне число);
C (від англ. Carry – переніс) – ознака того, що при виконанні арифметичної операції виникло переповнення розрядної сітки акумулятора і переніс (тобто результат більший ніж 65535).
Коли індикатор відповідного тригера світиться, тобто значення його є “1”, це означає, що відбулася подія, яку відслідковує даний розряд регістра ознак.
Рис. 1.4. З’єднання входів та виходів АЛП, акумулятора та Регістра Даних пам’яті
Підключення акумулятора до пам’яті дозволяє завантажувати до акумулятора вхідні дані з пам’яті, а також зберігати результати обчислень, записуючи їх назад до пам’яті.
Як вже говорилось раніше, доступ до пам’яті у процесорі здійснюється за допомогою двох регістрів: Регістра Даних пам’яті (надалі - Регістр Даних) та Регістра Адреси пам’яті (надалі - Регістр Адреси). Порядок дій дуже простий – перш ніж виконувати операцію доступу до пам’яті (запис або читання), необхідно у Регістр Адреси записати адресу тієї комірки, до якої ми будемо звертатись. Якщо відбувається операція читання, тоді до Регістра Даних з пам’яті потрапляють дані (число або інструкція) із вказаної комірки. Якщо ми хочемо записати до пам’яті, то зрозуміло, що окрім адреси комірки у Регістр Адреси, необхідно попередньо до Регістра Даних занести число (або двійковий код інструкції), яке ми будемо записувати до даної комірки пам’яті.
У роботі любого комп’ютера є одна особливість: і дані і інструкції зберігаються у пам’яті у вигляді чисел, при чому без спеціальної інформації про те, де знаходяться дані, а де – інструкції, абсолютно неможливо відрізнити. Яким же чином їх відрізняє процесор? Саме для цього і призначені два спеціальних керуючих регістри: Регістр Інструкцій та Лічильник Адреси Інструкції. Лічильник Адреси Інструкції автоматично “відслідковує” адресу інструкції, яка в даний момент буде виконуватись у процесорі. А для того, щоб виконати цю інструкцію, вона зчитується з пам’яті до Регістра Інструкцій.
З правого боку панелі навчального комп’ютера розміщений пульт управління, що призначений для безпосереднього керування людиною роботою комп’ютера. За допомогою пульта управління можна “вручну” занести інформацію (дані або інструкції) до регістрів процесора або пам’яті, а також виконувати операції запису та читання з пам’яті. Крім того, за допомогою пульта управління програміст “запускає” комп’ютер для виконання програми, яка знаходиться у пам’яті.
Головною частиною пульта управління є набірне поле з 16 перемикачів, які можуть знаходитись у 2-х станах: “натиснуто” і “не натиснуто” (відповідно “1” та “0”) Усі перемикачі пронумеровані від 0 до 15 справа наліво і відповідають розрядам 16-розрядного двійкового числа від наймолодшого розряду (0) до найстаршого (15). Для того, щоб встановити усі розряди набірного поля в 0, використовується спеціальна кнопка “Скидування набірного поля”.
Вище набірного поля знаходиться поле „Занесення з набірного поля” з 5-ю кнопками, які дозволяють занести значення набірного поля у один з внутрішніх регістрів процесора:
РА – Регістр Адреси пам’яті,
РД – Регістр Даних пам’яті,
А – акумулятор,
РІ – Регістр Інструкцій,
ЛАІ – Лічильник Адреси Інструкції.
Оскільки регістри РА та ЛАІ пов’язані із адресами комірок пам’яті і є 12-розрядними, тому при занесенні значення набірного поля до них потрапляють тільки 12 молодших розрядів (від 0-го до 11-го).
Для роботи із комірками пам’яті використовується поле “Операція з пам’яттю” у верхній частині пульта управління. Як вже зазначалось вище, перш ніж виконувати операції запису або читання (кнопки “Запис” та “Читання”), необхідно у Регістр Адреси занести адресу потрібної комірки, а у випадку операції запису – також до Регістра Даних занести число, яке буде записуватись. Якщо операція доступу до пам’яті буде виконуватись із групою комірок, які розташовані підряд, то у цьому випадку зручно використовувати кнопку “+1”, яка автоматично збільшує значення Регістра Адреси на 1. Наприклад, це зручно, коли необхідно занести у пам’ять програму, або коли необхідно “онулити” (очистити) ряд комірок (занести число 0).
Тепер перейдемо до поля внизу пульта управління, де розміщені кнопки вибору одного з 3-х режимів роботи, кнопки початку і зупинки роботи та кнопка включення живлення навчального комп’ютера. Використання кнопки „Живлення” пояснення не вимагає. Використання інших кнопок розглянемо детальніше.
Кнопка “Пуск” “примушує” процесор почати виконувати інструкції, які знаходяться у пам’яті, починаючи з комірки, на яку вказує Лічильник Адреси інструкцій. При цьому в залежності від обраного режиму роботи процесор буде виконувати програму наступним чином:
у автоматичному режимі будуть виконуватись підряд усі інструкції до тих пір, доки не зустрінеться інструкція зупинки HLT (від англ. to halt – зупинятись), натиснута кнопка “Стоп” або не буде досягнуто кінець пам’яті. Автоматичний режим використовується для остаточного виконання програми, що розміщена у пам’яті.
Автоматичний – це стандартний режим роботи комп’ютера, коли уся програма виконується миттєво без участі людини, при цьому програміст бачить вже готові результати роботи програми. Зрозуміло, що у випадку помилки програміста процесор може виконувати непередбачувані дії (“тлумачити” дані як інструкції) або потрапляти у нескінчені цикли (коли той самий фрагмент програми повторюється знову і знову). У таких випадках говорять про “зависання” або “зациклення” програми. У сучасних комп’ютерах така ситуація вимагає лише закриття такої програми, тоді як у попередні роки помилка призводила до “зависання” усього комп’ютера, що вимагало його перезавантаження. Для уникнення такої ситуації і для створення можливості відлагодження програми використовується поле “Зупинка за адресою”, що розміщене під полем роботи з пам’яттю. За допомогою 12-розрядної Адреси зупинки можна встановити адресу інструкції, на якій процесор буде зупиняти виконання програми. Для того, щоб точка зупинки почала працювати, її необхідно “Ввімкнути...”.
у покроковому режимі виконується лише одна інструкція, на яку вказує Лічильник Адреси Інструкцій, після чого Лічильник Адреси Інструкції вкаже на наступну інструкцію і процесор зупиниться, чекаючи наступного натискання кнопки “Пуск”. Покроковий режим використовується для відлагодження алгоритму виконання програми і для дослідження сценарію виконання програми у процесорі навчального комп’ютера DeComp;
у потактовому режимі виконується лише один мікрокрок, з послідовності яких насправді складається виконання одніє інструкції. Потактовий режим роботи використовується для дослідження процесу виконання окремих інструкцій навчального комп’ютера.
І, наприкінці, відкриємо закладку “Документація до “Навчальної ЕОМ” для того, щоб ознайомитись з набором інструкцій процесора (див. рис.1.5). Для цього необхідно, у свою чергу, активізувати закладку “Набір інструкцій ЕОМ” внизу вікна симулятора:
Рис.1.5. Набір інструкцій процесора навчальної ЕОМ
Як видно на рисунку 1.5., таблиця „Набір інструкцій” складається з наступних полів: Кодування, Мнемоніка, Виконання і Ознаки. Процесор навчальної ЕОМ містить 26 інструкцій.
Поле „Кодування” подане у вигляді 4-х чотирирозрядних груп (тетрад). Будь-яка інструкція описується її двійковим кодом, у якому старші розряди означають власне двійковий код інструкції. Буква “a” означає двійковий розряд 12-розрядної адреси комірки пам’яті, яку буде використовувати дана інструкція, а “x” – довільне двійкове значення.
Поле „Мнемоніка” містить символьне позначення, яке у більшості випадків є скороченням або абревіатурою англійських слів, що описують операцію даної команди.
Поле „Виконання” містить скорочений опис операції, яка буде виконуватись.
Поле „Ознаки” містить інформацію про вплив на регістр ознак результату виконання інструкції (“–” – не впливає, “*” – впливає згідно з результатом операції, “0” – встановлює в 0).
Усі команди можна розділити на адресні та безадресні. У адресних командах найстарші 4 розряди коду інструкції (старша тетрада) містять код, який визначає операцію, що буде виконувати дана інструкція (наприклад, команда читання з пам’яті LOAD – 0000, команда додавання ADD – 0010, а команда безумовного переходу JMP – 1110). Відповідно у 12 молодших розрядах коду інструкції розташована адреса комірки пам’яті, у якій записаний один з операндів операції (команда ADD) або у якій розташовано наступну інструкцію, яка буде виконуватись (команда JMP).
У випадку безадресних команд код інструкції може займати 6 або 7 старших розрядів, тоді як решта молодших розрядів не використовується. Оскільки 25 = 32, то це означає, що 5 старших розрядів могло б вистачити для кодування усіх 26-ти інструкцій, але з метою об’єднання подібних інструкцій у групи з подібними кодами розробники симулятора використали більшу кількість розрядів для кодування безадресних інструкцій (фактично старших 4 розряди визначають код групи інструкцій).
Більш детально набір інструкцій навчальної ЕОМ буде розглянуто у наступних лабораторних роботах..
2. Порядок виконання роботи № 1.
Ознайомитись з теоретичними відомостями до лабораторної роботи № 1.
Запустити програму “Симулятор навчальної ЕОМ DeComp” (файл DeComp.exe) і включити живлення на панелі навчального комп’ютера.
За допомогою набірного поля записати до регістрів процесора наступні значення: до РА – 0101 0101 0101, до РД – 0011 0011 0011 0011, до А – 0000 1111 0000 1111, до РІ – 0000 0000 1111 1111, до ЛАІ – 1010 1010 1010.
Записати до 5-ти сусідніх комірок пам’яті з адресами 20, 21, 22, 23 та 24 (перевести у двійкову систему числення) числа 16, 17, 18, 19, 20 (перевести у двійкову систему числення).
Занести у пам’ять, починаючи з комірки 0, програму, яка додаватиме числа, що знаходяться у 10-й та 11-й комірках пам’яті і результат запише до 12-ї комірки. Попередньо у 10-ту та 11-ту комірки занести числа відповідно до свого варіанту:
Відповідна програма матиме наступний вигляд:
LOAD 10 – завантажити (прочитати) значення 10-ї комірки до акумулятора;
ADD 11 – додати до акумулятора значення 11-ї комірки і результат зберегти у акумуляторі;
STORE 12 – зберігти (записати) значення акумулятора до 12-ї комірки;
HALT – зупинити роботу процесора.
У двійковому представленні дана програма матиме наступний вигляд:
0000 0000 0000 1010;
0010 0000 0000 1011;
0001 0000 0000 1100;
0111 1100 0000 0000.
Відповідно, першу інструкцію (тобто її код) необхідно занести до комірки з адресою 0000 0000 0000, другу – у комірку 0000 0000 0001, третю – у комірку 0000 0000 0010, а четверту – у комірку 0000 0000 0011.
Після того, як у 10-ту (код адреси у двійковій формі - 0000 0000 1010) та у 11-ту (код адреси - 0000 0000 1011) комірки будуть занесені задані числа, необхідно у Лічильнику Адреси Інструкції за допомогою набірного поля встановити адресу першої інструкції, тобто код адреси - 0000 0000 0000.
Виконати програму у автоматичному режимі і перевірити результат у 12-й комірці (прочитати значення 12-ї комірки).
Онулити 12-ту комірку і ще раз виконати цю програму, але у покроковому режимі (попередньо знову встановивши у ЛАІ адресу першої інструкції – адресу 0). Після виконання кожної інструкції записати усі зміни в усіх регістрах процесора та Регістрі Ознак).
Оформити та захистити звіт з лабораторної роботи.
3. Вимоги до оформлення звітів з лабораторних робіт
Звіт про виконання лабораторної роботи оформляється на чистих аркушах формату А4 (210х297мм) з однієї сторони у друкованому вигляді. До складу звіту повинні входити:
Титульна сторінка стандартного взірця, приклад якої наведено нижче.
Тема та мета лабораторної роботи.
Теоретичні відомості (обсягом від 1,5 до 3 сторінки). У теоретичних відомостях необхідно коротко вказати найголовнішу інформацію, отриману з методичних вказівок та пояснень викладача.
Хід роботи. Необхідно у відповідності до завдання з порядку виконання роботи точно описати виконувані дії. Наприклад, хід виконання 4-го пункту завдання може виглядати наступним чином:
4. У набірному полі у молодших 12 розрядах у двійковій системі числення вводжу адресу 10 першої комірки – 0000 0000 1010. З допомогою кнопки “РА” заношу цю адресу до Регістра Адреси пам’яті. У набірному полі вводжу перше число 12 – 0000 0000 0000 1100. З допомогою кнопки “РД” заношу це число до Регістра Даних пам’яті. З допомогою кнопки “Запис” заношу число 12 у комірку з адресою 10. З допомогою кнопки “+1” збільшую значення Регістра Адреси на 1. У набірному полі змінюю молодший розряд для отримання числа 13 – 0000 0000 0000 1101. Кнопкою “Запис” заношу число 13 у 11-ту комірку. Таким самим чином число 14 заношу у 12-ту комірку, число 15 – у 13-ту, а 16 – у 14-ту.
Як видно з наведеного прикладу, детального пояснення вимагає перше виконання тої або іншої дії. При повторному виконанні тієї самої дії її опис можна скорочувати, але таким чином, щоб це було зрозумілим. Відповідно у наступних лабораторних роботах у детальному поясненні пройденого матеріалу необхідності немає. При недостатньо детальному поясненні або підозрі на списування викладач має право запитати, як студент виконував ту або іншу дію, попросити продемонструвати це на комп’ютері або вимагати переписування звіту.
Висновки (не більше 0,5 сторінки). У висновках необхідно коротко сформулювати основну ідею даної лабораторної роботи, висловити свої позитивні та негативні враження, а також по можливості запропонувати покращення (до симулятора, методичних вказівок, завдання тощо).
Література.
Нешумова К. А. Электронные вычислительные машины и системы. Учеб. для техникумов спец. ЭВТ. – 2-е изд., доп. и перераб. М.: Высш. шк., 1989.
Рабинович З. Л., Раманаускас В. А. Типовые операции в вычислительных машинах. К.: Техніка, 1980.
Компьютеры: Справочное руководство. В 3-х томах. Том 1. Пер. с англ./ Под ред. Г. Хелмса – М.: Мир, 1986.
Преснухин Л. Н., Нестеров П. В. Цифровые вычислительные машины. Учеб. Пособие для втузов. М., «Высшая школа», 1974.
Цилькер Б. Я., Орлов С. А. Организация ЭВМ и систем. Учебник для вузов. – СПб.: Питер. 2006.
Хамахер К., Вранешич З., Заки. – Организация ЭВМ. 5-е изд. – СПб.: Питер; Киев: Издательская группа BHV, 2003. – (Серия «Классика computer science»).
Бройдо В. Л., Ильина О. П. Архитектура ЭВМ и систем.: Учебник для вузов. – СПб.: Питер, 2006.
Хамахер