
- •1.1 Пояснити що таке мікроархітектурний рівень комп’ютера
- •1.2 Дати опис послідовності мікрооперацій в іjvm Міс-1 в одному циклі синхронізації?
- •1.3 Дати опис взаємодії іjvm Міс-1 з основною пам’яттю.
- •1.5 Скільки команд має іjvm Міс-1. Перерахуйте основні групи команд і дайте пояснення їх призначення.
- •1.6 Поясніть роботу стека операндів на прикладі
- •1.7 Опишіть інтерпретацію в Міс-1 команди умовного переходу ifeq
- •1.8 Поясніть призначення мікрокоманди Маіn1
- •1.9 Як побудована кеш-пам’ять прямого відображення? Поясніть, що таке тег. Що таке «промах кеш-пам’яті»
- •1.10 Опишіть типи даних і формати команд віртуальної машини Java
- •1. Намалювати тракт даних мікроархітектури віртуальної машини іjvm. Пояснити призначення і його функціонування.
- •2. Намалювати схему мікроархітектури Міс-1 і коротко пояснити управління її мікрокомандами.
- •3. Пояснити що таке старший біт і призначення бітів n і z.
- •4. Яке призначення регістра sp і які значення він набуває?
- •5. Приведіть простий приклад компіляції з мови Java на мову ассемблера Java
- •6. Опишіть інтерпретацію в Міс-1 команди bipush
- •7. Опишіть інтерпретацію в Міс-1 команди if_icmeq
- •8. Які типи організації (моделі) кеш-пам’яті вам відомі. Які типи взаємодії процесор пам’ять вам відомі?
- •9. Поясніть як здійснюється прогнозування переходів (галужень)
- •10. Опишіть типи команд віртуальної машини Java
- •Пояснити синхронізацію тракту даних із використанням часової діаграми віртуальної машини Java
- •Пояснити що таке мікрокоманда іjvm. Дати опис формату мікрокоманд віртуальної машини Java.
- •Пояснити, що таке стек і його призначення. Привести приклад графічного зображення стеку і пояснити його роботу.
- •Описати принцип організації пам’яті іjvm. Пояснити призначення і адресацію різних областей пам’яті: констант, фреймів локальних змінних і області процедур
- •Поясніть в загальних рисах, як здійснюються інтерпретація команд іjvm Міс-1.
- •Опишіть інтерпретацію в Міс-1 команди iload.
- •Опишіть інтерпретацію в Міс-1 команди istore
- •Що таке просторова і часова локалізація адрес в кеш-пам’яті
- •Опишіть, як здійснюється програмне введення-виведення.
Варіант 1
1.1 Пояснити що таке мікроархітектурний рівень комп’ютера
Мікроархітектурний рівень. На цьому рівні можна бачити сукупності 8 або 32 регістрів, які формують локальну пам'ять і схему, звану АЛП (арифметико-логічний пристрій). АЛП виконує прості арифметичні операції. Регістри разом з АЛП формують тракт даних, по якому поступають дані. Основна операція тракту даних полягає в наступному. Вибирається один або два регістри, АЛП проводить над ними яку-небудь операцію, наприклад складання, а результат поміщається в один з цих регістрів. На деяких машинах робота тракту даних контролюється особливою програмою, яка називається мікропрограмою. На інших машинах тракт даних контролюється апаратними засобами. У попередніх виданнях книги ми назвали цей рівень «рівнем мікропрограмування», тому що раніше він майже завжди був інтерпретатором програмного забезпечення. Оскільки зараз тракт даних зазвичай контролюється апаратним забезпеченням, ми змінили назву, щоб точніше відобразити сенс. На машинах, де тракт даних контролюється програмним забезпеченням мікропрограма — це інтерпретатор для команд на рівні 2. Мікропрограма викликає команди з пам'яті і виконує їх одну за іншою, використовуючи при цьому тракт даних. Наприклад, для того, щоб виконати команду ADD, ця команда викликається з пам'яті, її операнди поміщаються в регістри, АЛП обчислює суму, а потім результат переправляється назад. На комп'ютері з апаратним контролем тракту даних відбувається така ж процедура, але при цьому немає програми, яка контролює інтерпретацію команд рівня 2.
1.2 Дати опис послідовності мікрооперацій в іjvm Міс-1 в одному циклі синхронізації?
Для того, щоб викликати операнд з пам’яті, необхідно зменшити значення вказівника стека і записати його в реєстр MAR. Цей адрес буде використовуватися для наступного запису. Більше того, оскільки ця комірка пам’яті буде новою вершиною стеку, дане значення повинно бути присвоєне регістру SP. Далі визначити нові значення SP і Mar, зменшити SP на 1 і записати його в обидва регістри можна за одну операцію
Всі ці дії виконуються в першому циклі(iaddl). Тут же ініціюється операція читання. Крім того регістр MPC отримує значення з поля NEXTADDRES мікрокоманди iaddl. Це адрес мікрокоманди iaddl2. Потім iaddl2 зчитується з керуючої пам’яті.
1.3 Дати опис взаємодії іjvm Міс-1 з основною пам’яттю.
Машина може взаємодіяти з пам'яттю двома способами: через порт з послівний адресацією (32-бітний) і через порт з байтовой адресацією (8-бітний). Порт з послівний адресацією управляється двома регістрами; MAR. Порт з байтовой адресацією управляється регістром PC, який записує 1 байт в 8 молодших розрядів регістра MBR. Цей порт може зчитувати дані з пам'яті, але не може їх записувати в пам'ять.Регістр MAR містить адреси слів, таким чином, значення 0,1,2 і т. д. вкапоказують на послідовні слова. Регістр PC містить адреси байтів, таким чином, значення 0,1,2 і т. д. вказують на послідовні байти.
Як вже було сказано вище, дані, лічені з пам'яті через 8-бітний порт, шину У двома способами: зі знаком і без знаку. Коли потрібно значення без знака, 32-бітне слово, що поміщається на шину В, містить значення MBR в молодших 8 бітах і нулі в інших 24 бітах. Значення без знака потрібні для індексування таблиць або для отримання цілого 16-бітного числа з двох послідовних байтів у потоці команд.
Для змінних резервується особлива область пам'яті, яка називається стеком, але окремі змінні не одержують у ньому абсолютних адрес. Якої-небудь регістр, скажімо, LV, вказує на базовий адресу локальних змінних для поточної процедури. Фрейм локальних змінних призначений для зберігання змінних під час виконання процедури. На початку цього фрейму розташовуються параметри викликаної процедури. Фрейм локальних змінних не включає в себе стек операндів. Він міститься окремо