Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпора 4 варіант.docx
Скачиваний:
1
Добавлен:
20.07.2019
Размер:
208.71 Кб
Скачать
  1. Пояснити синхронізацію тракту даних із використанням часової діаграми віртуальної машини Java

Ц икл тракту даних можна розбити на підцикли. Початок підциклу 1 запускається заднім фронтом синхронізуючого сигналу. Нижче показано, що відбувається під час кожного з підциклів. У дужках наводиться довжина підциклу.

1. Встановлюються сигнали управління (Aw).

2. Значення регістрів завантажуються на шину В (Ах).

3. Відбувається робота АЛУ і схеми зсуву (Ду).

4. Результати проходять по шині З назад до регістрів (ДГ).

На наростаючому фронті наступного циклу результати зберігаються в регістрах.

  1. Намалювати схему мікроархітектури Міс-1 і коротко пояснити управління її мікрокомандами.

(то в зошиті є)

  1. Пояснити, що таке стек і його призначення. Привести приклад графічного зображення стеку і пояснити його роботу

Для змінних резервується особлива область пам'яті, яка називається стеком, але окремі змінні не

о держують у ньому абсолютних адрес. Якої-небудь регістр, скажімо, LV, вказує на базовий адресу локальних змінних для поточної процедури.. У даному випадку викликається процедура А з локальними змінними а1, а2і АЗ, і для цих змінних резервується ділянку пам'яті, що починається

з адреси, який вказується регістром LV. Інший регістр, SP, вказує на старше слово локальних змінних процедури А. Якщо значення регістра LV дорівнює 100, а слова складаються з 4 байтів, то значення SP буде 108. Для звернення до змінної потрібно обчислити її зсув від адреси LV. Структура даних між LV і SP (включаючи обидва зазначених слова) називається фреймом локальних змінних.

  1. Описати принцип організації пам’яті іjvm. Пояснити призначення і адресацію різних областей пам’яті: констант, фреймів локальних змінних і області процедур

А тепер ми можемо розглянути архітектуру IJVM. Вона складається з пам'яті, яку можна розглядати або як масив з 4294967296 байтів (4 Гбайт), або як масив з 1073741824 слів, кожне з яких містить 4 байта. На відміну від більшості архітектур команд, віртуальна машина Java не робить звернень до пам'яті, видимих на рівні команд, але тут існує кілька неявних адрес, які складають основу для покажчика. Команди IJVM можуть звертатися до пам'яті лише через ці покажчики. Визначено такі області пам'яті:

1. Набір констант. Ця область складається з констант, ланцюжків і покажчиків на

інші області пам'яті, на які можна робити посилання. Дана область

завантажується в той момент, коли програма завантажується з пам'яті, і після

цього не змінюється. Існує неявний регістр СРР (Constant Pool Pointer -

покажчик набору констант), який містить адресу першого слова набору

констант.

2. Фрейм локальних змінних. Ця область призначена для зберігання змінних під час виконання процедури. Вона називається фреймом локальних змінних. На початку цього фрейму розташовуються параметри (або

аргументи) викликаної процедури. Фрейм локальних змінних не включає в себе стек операндів. Він міститься окремо. Виходячи з міркувань

продуктивності, ми помістили стек операндів прямо над фреймом

локальних змінних. Існує неявний регістр, який містить

адресу першої змінної фрейму. Ми назвемо цей регістр LV (Local

Variable - локальна змінна). Параметри викликаної процедури зберігаються на початку фрейму локальних змінних.

3. Стек операндів. Стек операндів не повинен перевищувати певний розмір, який заздалегідь обчислюється компілятором Java. Простір стека

операндів розташовується прямо над фреймом локальних змінних, як

показано на рис. 4.9. У даному випадку стек операндів зручно вважати частиною

фрейму локальних змінних. У будь-якому випадку існує віртуальний

регістр, який містить адресу верхнього слова стека. Відзначимо, що на відміну від регістрів СРР і LV цей покажчик змінюється під час виконання

процедури, оскільки операнди поміщаються в стек і виштовхуються з нього.

4. Область процедур. Нарешті, існує область пам'яті, в якій міститься програма. Є віртуальний регістр, що містить адресу команди,

яка буде викликана наступної. Цей покажчик називається лічильником

команд, або PC (Program Counter). На відміну від інших ділянок пам'яті,

область процедури представляє собою масив байтів.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]