
- •Мови, рівні і віртуальні машини
- •Сучасні багаторівневі машини
- •Поняття архітектури пк
- •1.4. Розвиток комп’ютерної архітектури
- •Розвиток багаторівневих машин
- •Типи сучасних еом
- •Питання до лекції
- •2.1. Принципи розробки сучасних комп'ютерів
- •2.2. Паралелізм на рівні команд
- •2.3. Конвеєри
- •2.4. Суперскалярні архітектури
- •2.5. Паралелізм на рівні процесорів
- •2.6. Векторні комп'ютери
- •Блок управління
- •2.7. Мультипроцессори
- •2.8. Мультикомпьютери
- •Питання до лекції
- •3. Основи комп’ютерної організації : пам’ять
- •3.1. Ієрархічна структура пам'яті
- •3.2. Загальні відомості про пам'ять
- •3.4. Методи звертання до пам'яті
- •3.5. Модулі пам'яті
- •3.6. Ряди і банки пам'яті
- •3.8. Код з виправленням помилок
- •3. 9. Скільки потрібно пам'яті
- •Питання до лекції
- •4. Цифровий рівень побудови ом
- •4.1. Вентилі і булева алгебра
- •4.2. Булева алгебра
- •4.3. Реалізація булевих функцій
- •4.4. Еквівалентність схем
- •Основні цифрові логічні схеми Інтегральні схеми
- •4.5. Комбінаційні схеми
- •3 Входи і 8 виходів
- •4.6. Арифметичні схеми.
- •4.7. Тактові генератори
- •Питання до лекції
- •Цифровий рівень побудови ом.
- •5. Цифровий логічний рівень архітектури: пам’ять, мікропроцесори
- •5.2. Синхронні sr-защіпки
- •5.3. Синхронні d-защіпки
- •5.4. Тригери (flip-flops)
- •5.5. Регістри
- •5.6. Організація пам'яті
- •Тригер (б)
- •Кожний ряд представляє одне з 3-бітних слів. При операції зчитування і запису завжди зчитується або записується ціле слово
- •5.7. Мікросхеми пам'яті
- •5.9. Мікросхеми процесорів
- •Стрілочки указують вхідні і вихідні сигнали. Короткі діагональні лінії вказують на наявність декількох висновків.
- •Питання до лекції
- •6. Шини
- •6.1. Ширина шини
- •6.2. Синхронізація шини
- •6.3. Синхронні шини
- •6.5. Асинхронні шини
- •6.6. Арбітраж шини
- •6.7. Принципи роботи шини
- •Питання до лекції
- •7. Мікроархітектурний рівень
- •7.1. Приклад мікроархітектури
- •7.2. Тракт даних
- •В цьому розділі
- •Табліця 7.1. Деякі комбінації сигналів аллу і відповідні їм функції
- •7.3. Синхронізація тракту даних
- •7.4. Робота пам'яті.
- •7.5. Мікрокоманди
- •7.6. Управління мікрокомандами: Mic-1
- •7.7. Приклад архітектури команд: ijvm
- •7.8. Модель пам'яті ijvm
- •Питання до лекції
- •8. Рівень архітектури команд
- •8.1. Моделі пам'яті
- •8.2. Загальний огляд рівня архітектури команд
- •8.3. Властивості рівня команд
- •8.4. Регістри
- •8.5. Команди
- •8.6. Загальний огляд рівня команд машини Pentium II
- •8.8. Загальний огляд рівня команд системи ultrasparc II
- •8.9. Загальний огляд віртуальної машини Java
- •8.10. Типи даних
- •8.11. Числові типи даних
- •8.12. Нечислові типи даних
- •8.13. Типи даних процесора Pentium II
- •Підтримувані типи відмічені хрестом (х)
- •8.14. Типи даних машини UltraSparc II
- •8.16. Типи даних віртуальної машини Java
- •8.17. Формати команд
- •Питання до лекції
- •9. Адресація
- •9.1. Способи адресації
- •9.2. Безпосередня адресація
- •9.3. Пряма адресація
- •9.4. Регістрова адресація
- •9.5. Непряма регістрова адресація
- •Лістинг 9.1 - Програма на асемблері для обрахунку суми елементів масиву.
- •9.6. Індексна адресація
- •Листинг 9.2. Програма на мові асемблера для обчислення операції або від (Аі і Ві ) для масиву з 1024 елементів.
- •9.7. Відносна індексна адресація
- •9.8. Стекова адресація
- •9.9. Зворотній польський запис
- •9.10. Обчислення формул в зворотнім польськім записі
- •Питання до лекції
8.10. Типи даних
Всім комп'ютерам потрібні дані. Для багатьох комп'ютерних систем основним завданням є обробка фінансових, промислових, наукових, технічних і інших даних. Усередині комп'ютера дані повинні бути представлені якою-небудь персоною формі. На рівні архітектури команд використовуються різні типи даних. Вони будуть описані нижче.
Ключовим питанням є питання про те, чи існує апаратна підтримка для конкретного типу даних. Під апаратною підтримкою розуміється, що одна або декілька команд чекають дані в певному форматі і користувач не може брати інший формат. Наприклад, бухгалтери звикли писати знак «мінус» справа у негативних чисел, а фахівці з обчислювальної техніки — зліва. Припустимо, що, намагаючись справити враження на свого начальника, глава комп'ютерного центру в бухгалтерській фірмі зрадив всі числа у всіх комп'ютерах, щоб знаковий біт був найправішим бітом (а не самим лівим). Поза сумнівом, це справить велике враження на начальника, оскільки все програмне забезпечення більше не функціонуватиме правильно. Апаратне забезпечення вимагає певного формату для цілих чисел і не працюватиме належним чином, якщо цілі числа поступають в іншому форматі.
Тепер розглянемо іншу бухгалтерську фірму, яка тільки що заключила договір на перевірку федерального боргу. 32-бітова арифметика тут не підійде, оскільки числа перевищують 232 (близько 4 мільярдів). Одне з можливих рішень — використовувати два 32-бітові цілі числа для представлення кожного числа, тобто всі 64 бита. Якщо машина не підтримує такі числа з подвоєною точністю, то всі арифметичні операції над ними повинні виконуватися програмним забезпеченням, але ці дві частини можуть розташовуватися в довільному порядку, оскільки для апаратного забезпечення це не важливо. Це приклад типу даних без апаратної підтримки і, отже, без апаратної реалізації. У наступних розділах ми розглянемо типи даних, які підтримуються апаратним забезпеченням і для яких потрібні спеціальні формати.
8.11. Числові типи даних
Типи даних можна розділити на дві категорії: числові і нечислові. Серед числових типів даних головними є цілі числа. Вони бувають різної довжини: звичайно 8,16,32 і 64 бита. Цілі числа застосовуються для підрахунку різних предметів (наприклад, вони показують, скільки на складі є викруток), для ідентифікації різних об'єктів (наприклад, банківських рахунків), а також для інших цілей. У більшості сучасних комп'ютерів цілі числа зберігаються в двійковому записі, хоча у минулому використовувалися і інші системи. Двійкові числа обговорюються в додатку А.
Деякі комп'ютери підтримують цілі числа і із знаком, і без знаку. У цілому числі без знаку немає знакового біта, і всі біти містять дані. Цей тип даних має перевагу: у нього є додатковий біт, тому 32-бітове слово може містити ціле число без знаку від 0 до 232-1 включно. Двійкове ціле число із знаком, навпаки, може містити числа тільки до 231-1, та зате включає і негативні числа.
Для виразу нецілих чисел (наприклад, 3,5) використовуються числа з плаваючою крапкою. Вони обговорюються в додатку Б. Їх довжина складає 32,64, а іноді і 128 бітів. У більшості комп'ютерів є команди для виконання операцій з числами з плаваючою крапкою. У багатьох комп'ютерах є окремі регістри для цілочисельних операндів і для операндів з плаваючою крапкою.
Деякі мови програмування, зокрема COBOL, допускають в якості типу даних десяткові числа. Машини, призначені для програм на мові COBOL, часто підтримують десяткові числа в апаратному забезпеченні, звичайно кодуючи десятковий розряд в 4 бита і потім об'єднуючи два десяткові розряди в байт (двійково-десятковий формат). Проте результати арифметичних дій над такими десятковими числами будуть некоректні, тому необхідно спеціальні команди для корекції десяткової арифметики. Ці команди повинні знати вихід перенесення бита 3. От чому код умови часто містить біт службового перенесення. Між іншим, проблема 2000 року була викликана програмістами на мові COBOL, які вирішили, що дешевше представлятиме рік у вигляді двох десяткових розрядів, а не у вигляді 16-бітового двійкового числа.