- •Намалювати тракт даних мікроархітектури віртуальної машини іjvm. Пояснити призначення і його функціонування.
- •Пояснити що таке мікрокоманда іjvm. Дати опис формату мікрокоманд віртуальної машини Java.
- •Пояснити що таке старший біт і призначення бітів n і z.
- •Яке призначення регістра sp і які значення він набуває?
- •Поясніть в загальних рисах, як здійснюються інтерпретація команд іjvm Міс-1
- •Опишіть інтерпретацію в Міс-1 команди bipush
- •Опишіть інтерпретацію в Міс-1 команди if_icmeq
- •Поясніть як здійснюється прогнозування переходів (галужень)
- •Опишіть типи команд віртуальної машини Java
Поясніть в загальних рисах, як здійснюються інтерпретація команд іjvm Міс-1
В основному циклs, який складається з однієї мікрокоманд, виконується наступне:
1. Значення регістру PC збільшується, і тепер він містить адресу першого байта після коду операції.
2. Починається передача наступного байта в регістр MBR. Цей байт знадобится рано чи пізно або в якості операнда поточної команди IJVM, або в якості коду наступної операції (як у випадку з командою IADD, у
якої немає операндів).
3. Здійснюється перехід до адреси, що містився в регістрі MBR на початку циклу Main 1. Номер адреси дорівнює значенню коду операції, яка виконується в даний момент. Ця адреса була поміщеною туди попередньою мікрокомандою. Відзначимо, що значення, яке викликається з пам'яті під час цієї мікрокоманд, не грає ніякої ролі в межуровневом переході.
Опишіть інтерпретацію в Міс-1 команди bipush
Команда BIPUSH – переміщає дані в стек, вона дещо складніша за більшість команд, оскільки за кодом операції слідує
Б
айт.
Цей байт представляє собою ціле число
зі знаком . Цей байт, який вже було
передано в регістр MBR під час мікрокоманд
Mainl, потрібно розширити до 32 бітів
(знакова розширення) і скопіювати його
в регістр MDR. Нарешті, значення SP
збільшується на 1 і копіюється в MAR, що
дозволяє записати операнд на вершину
стека. Цей операнд також повинен
скопіюватися в регістр TOS. Відзначимо,
що значення регістра PC має збільшуватися
на 1, щоб у мікрокоманди Mainl наступний
код операції вже був у наявності.
Опишіть інтерпретацію в Міс-1 команди if_icmeq
Команда IF_ICMPEQ бере два верхніх слова з стека і здійснює перехід, якщо вони рівні.
Спочатку операнд або операнди поміщаються в регістри, потім у TOS записується нове верхнє слово стека, і, нарешті, відбувається порівняння і здійснюється перехід. Процес зчитування починається в мікрокоманд if_icmpeq1, Під час if_icmpeq2 слово, яке потрібно перевірити, зберігається в регістрі ОРС, тому нове значення можна відразу помісити в регістр TOS, і при цьому попереднє значення не пропаде. У циклі if_icmpeq3 нове верхнє слово стека, яке вже знаходиться в MDR, копіюється в регістр TOS,другий операнд зберігається в регістрі Н , де починається читання нового верхнього слова стека. Поточне верхнє слово стека зберігається в ОРС, а нове завантажується в регістр TOS. Нарешті, в циклі if_icmpeq4 проверяемі слові пропускається через АЛП без збереження результату, після чого перевіряється біт N.
Які типи організації (моделі) кеш-пам’яті вам відомі. Які типи взаємодії процесор пам’ять вам відомі?
Кеш — це швидка буферна пам'ять невеликої місткості, що розташована поміж процесором і основною пам'яттю. Кеш працює на повній швидкості процесора і не пригальмовує його роботу
Кеш центрального процесора розділений на декілька рівнів.
Найшвидшою пам'яттю є кеш першого рівня - L1-cache. Вона є невід'ємною частиною процесора, оскільки розташована на одному з ним кристалі і входить до складу функціональних блоків. У сучасних процесорах зазвичай кеш L1 розділений на два кешу, кеш команд (інструкцій) і кеш даних (Гарвардська архітектура). Більшість процесорів без L1 кешу не можуть функціонувати. L1 кеш працює на частоті процесора, і, в загальному випадку, звернення до нього може проводитися кожен такт. Найчастіше є можливим виконувати декілька операцій читання / запису одночасно. Частота доступу звичайно дорівнює 2-4 тактів ядра. Обсяг зазвичай невеликий - не більше 128 Кбайт.
Другим за швидкодією є L2-cache - кеш другого рівня, зазвичай він розташований на кристалі, як і L1. У старих процесорах - набір мікросхем на системній платі. Об'єм L2 кешу від 128 Кбайт до 1-12 Мбайт. У сучасних багатоядерних процесорах кеш другого рівня, перебуваючи на тому ж кристалі, є пам'яттю роздільного користування - при загальному обсязі кеша в nM Мбайт на кожне ядро доводиться по nM / nC Мбайта, де nC кількість ядер процесора. Зазвичай частота L2 кешу, розташованого на кристалі ядра, становить від 8 до 20 тактів ядра.
Кеш третього рівня найменш швидкодіючий, але він може бути дуже значного розміру - більше 24 Мбайт. L3 кеш повільніше попередніх кешей, але все одно значно швидше, ніж оперативна пам'ять..
Іноді існує і 4 рівень кеша, звичайно він розташований в окремій мікросхемі. Застосування кешу 4 рівня виправдано тільки для високо продуктивних серверів і мейнфреймів.
Бувають різні типи кеш пам’яті, наприклад: Кеш-пам'ять прямого відображення, Асоціативна кеш-пам'ять з множинним доступом і т.д
В найзагальнішому рівні істунують 2 типи взаємодії процесора і пам’яті: читання та запис
