Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпора 2 варіант.docx
Скачиваний:
1
Добавлен:
05.12.2018
Размер:
186.42 Кб
Скачать

1.1 Пояснити призначення і використання віртуальної машини jvm. Пояснити відмінність іjvm і jvm.

Рівень команд машини JVM незвичайний, але досить простий. Ми вже частково

розглянули його під час вивчення машини JVM. Модель пам'яті JVM точно така ж, як у IJVM, про яку ми говорили в розділі 4 (див. рис. 4.9), але з однією додатковою областю, про яку ми зараз розповімо. Порядок байтів зворотний. Пам'ять містить 4 основні області: фрейм локальних змінних, стек операндів, область процедур і набір констант. Нагадаємо, що в реалізаціях Mic-x машини IJVM на ці області вказують регістри LV, SP, PC і СРР. Доступи до пам'яті повинні здійснюватися тільки по зсуві від одного з цих регістрів; покажчики і абсолютні адреси пам'яті не використовуються. Хоча JVM не вимагає наявності цих регістрів, в більшості реалізацій такі регістри (або подібні до них) є. Відсутність вказівників для доступу до локальних змінних і констант не випадково. Це потрібно для досягнення однієї з головних цілей мови Java: можливості завантажувати двійкову програму з Інтернету і виконувати її, не побоюючись шпигунських програм або будь-якого збою в машині, на якій це програма виконується. Якщо обмежити використання покажчиків, можна домогтися високої безпеки.

1.2Пояснити призначення і роботу регістрів пам’яті віртуальної машини іjvm.

Наша машина може взаємодіяти з пам'яттю двома способами: через порт з послівний адресацією (32-бітний) і через порт з байтовой адресацією (8-біт- ний). Порт з послівний адресацією управляється двома регістрами; MAR (Memory Address Register - регістр адреси комірки пам'яті) і MDR (Memory Data Register - інформаційний регістр пам'яті), Порт з байтовой адресацією управляється регістром PC, який записує 1 байт в 8 молодших розрядів регістра MBR (Memory Buffer Register - буферний регістр пам'яті). Цей порт може зчитувати дані з пам'яті, але не може їх записувати в пам'ять. Регістр MAR містить адреси слів, таким чином, значення 0,1,2 і т. д. вка- показують на послідовні слова. Регістр PC містить адреси байтів, таким

чином, значення 0,1,2 і т. д. вказують на послідовні байти. Якщо значення ня 2 помістити в регістр PC і почати процес читання, то з пам'яті вважається байт 2, який потім буде записаний в 8 молодших розрядів регістра MBR. Якщо значення 2 помістити в регістр MAR і почати процес читання, то з пам'яті вва- ються байти 8-11 (тобто слово 2), які потім будуть записані в регістр MDR. Як вже було сказано вище, дані, лічені з пам'яті через 8-бітний порт, зберігаються у 8-бітному регістрі MBR. Цей регістр може бути скопійований на шину У двома способами: зі знаком і без знаку. Коли потрібно значення без зна- ка, 32-бітне слово, що поміщається на шину В, містить значення MBR в молодших 8 бітах і нулі в інших 24 бітах. Значення без знака потрібні для індексування- ня таблиць або для отримання цілого 16-бітного числа з двох послідовник- них байтів (без знака) у потоці команд.

1.3 Пояснити призначення контролера мікрокоманд іjvm Міс-1. Намалювати його структурну схему і пояснити призначення кожного його функціонального модуля.

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

потрібен власний адресний регістр і власний регістр даних. Їй не вимаються сигнали читання і запису, оскільки тут постійно відбувається процес ввазгортання. Ми назвемо адресний регістр керуючої пам'яті МРС (Microprogram Counter - мікропрограмних лічильник). Регістр даних ми назвемо MIR (Microinstruction Register - регістр мікрокоманд). Він містить поточну мікрокоманду, біти якої запускають сигнали управління, що впливають на робо- ту тракту даних.Схема, зображена на рис. 4.5, працює таким чином. На початку кождого циклу в регістр MIR завантажується слово з керуючої пам'яті, яка на малюнку відзначена літерами МРС. Завантаження регістру MIR займає період Так;, тобто перший підцикл Коли мікрокоманда потрапляє в MIR, в тракт даних поступають різні сигнали. Значення певного регістра поміщається на шину В, а АЛУ дізнається, яку операцію потрібно виконувати. Все це відбувається під час другого підциклу.

Після періоду Aw + Ax вхідні сигнали АЛУ стабілізуються.

Після періоду ДГ / стабілізуються сигнали АЛУ N і Z і вихідний сигнал схеми зсуву. Потім значення N і Z зберігаються у двох 1-бітних тригерах. Ці біти, як і всі регістри, які завантажуються з шини С і з пам'яті, зберігаючиються на наростаючому фронті синхронізуючого сигналу, ближче до кінця циклу тракту даних. Вихідний сигнал АЛУ не зберігається, а просто передається в схе-

му зсуву. Робота АЛУ і схеми зсуву відбувається під час підциклу 3. Після наступного інтервалу, ДГ, вихідний сигнал схеми зсуву, пройшовши через шину С, досягає регістрів. Регістри завантажуються в кінці циклу на нарастаю- щем фронті синхронізуючого сигналу (див. рис. 4.2). Під час підциклу 4 про- виходить завантаження регістрів і тригерів N і Z. Він завершується відразу після нарастанучого фронту, коли всі значення збережені, результати попередніх операцій пам'яті доступні і регістр МРС завантажений. Цей процес триває знову і сно-

ва, поки ви не втомитеся і не вимикайте комп'ютер. Мікропрограмі доводиться не тільки керувати трактом даних, але і визначати, яка мікрокоманда повинна бути виконана наступної, оскільки вони не впорядковані у керуючої пам'яті. Обчислення адреси наступної МІКРОКОМмих фахівців починається після завантаженн регістра MIR. Спочатку в регістр МРС копіру-ється 9-бітове поле NEXT_ADDRESS (наступну адресу). Поки відбувається копі-

вання, перевіряється поле JAM Якщо воно містить значення 000, то нічого більше робити не потрібно; коли копіювання поля NEXT_ADDRESS завершиться, регістр МРС вкаже на наступну мікрокоманду. Якщо один або кілька біт у поле JAM рівні 1, то потрібні ще деякі дії. Якщо біт JAMN дорівнює 1, то тригер N з'єднується через схему АБО зі старшим бітом регістру МРС. Якщо біт JAMZ дорівнює 1, то тригер Z з'єднується через схему АБО зі старшим бітом регістру МРС. Якщо обидва біти рівні 1, вони обидва з'єднуються через схему АБО з тим же бітом А тепер пояснимо, навіщо потрібні тригери N і Z. Справа в тому, що після наростаючого фронту сигналу (і аж до

заднього фронту) шина В більше не запускається, тому вихідні сигнали АЛП вже не можуть вважатися правильними. Збереження прапорів стану АЛУ регі- страх N і Z робить правильні значення стабільними і доступними для обчислення регістру МРС, незалежно від того, що відбувається навколо АЛП.