Жмакин А.П. Архитектура ЭВМ (2006) (1186252), страница 18
Текст из файла (страница 18)
Для кодирования элементов каждого из трех подмножеств потребуется по три двоичных разряда. Может показаться, что для У3 хватит и двух, ведь |У3| = 4 = 22, однако следует учесть, что в каждом подмножестве необходимо предусмотреть один код для случая отсутствия микрооперации из этого подмножества в микрокоманде. Оптимальным разбиением исходного множества будет такое, когда У|У,-| = 2г -1, где г — натуральное число.
В подмножестве У3 всего одна "лишняя" микрооперация, а среди кодов У^ и У2 есть свободные. Попробуем перенести одну из микроопераций из У3 в другое подмножество, сохраняя, естественно, требование к попарной несовместимости всех микроопераций одного подмножества. Очевидно, первые три элемента подмножества У3 нельзя перенести в другое, т. к. они являются микрооперациями из "тройных" вершин. Зато микрооперация у9 совместима только с у2 е У], поэтому у9 можно перенести в У2. Окончательно получим, предварительно упорядочив элементы подмножеств в порядке возрастания индексов:
Теперь мы можем определить размеры полей микрокоманды. Поле микроопераций будет состоять из трех подполей — Yi, У2 > (назовем их по именам соответствующих подмножеств), размером в 3, 3 и 2 двоичных разрядов соответственно.
Поле номера условия х должно содержать номер одного из двух логических условий — ДГ|, х2 (один разряд?), однако для повышения гибкости процесса микропрограммирования удобно иметь возможность выбирать еще и тождественно истинное и тождественно ложное условия. Итак, поле х занимает два разряда.
Наконец, поле адреса определяется объемом памяти микропрограмм. Если в нашем примере мы будем считать, что разрабатываем УА только для реализации микропрограммы рис. 4.14, а она содержит 8 вершин, не считая начальной, конечной и условных, количество микрокоманд (каждая микрокоманда — ячейка памяти, имеющая свой адрес), выдаваемых УА, будет никак не менее 8, а реально — (1,2,1,3) х 8, то для поля адреса в микрокоманде следует отвести 4 разряда (24 = 16 > 1,3 х 8 « 11).
В поле адреса будет располагаться адрес памяти — двоичный номер ячейки, а в полях Yj w х — коды микроопераций и логических условий. Окончательно формат микрокоманды будет иметь вид, приведенный на рис. 4.15.
Кодировка микроопераций и логических условий
Здесь может осуществляться произвольно, например так, как показано в табл. 4.4.
Выбрав кодировку, можно начинать писать микропрограмму в машинных микрокодах. Фактически мы формируем содержимое ПЗУ микропрограмм (табл. 4.5).
Анализируя ГСА микропрограммы (см. рис. 4.14), увидим, что в первом такте работы автомата должны быть выданы микрооперации у2 и у6. Учитывая, что в начальном состоянии автомата Рг Сч А МК удобно установить в О, микрокоманда, расположенная по нулевому адресу, должна сформировать микрооперации у2 и у6. Из табл. 4.4 следует, что у2 е Ух и имеет код 010, а у6 е У2 (код 011). Микрооперации, включенные в множество У3, в этой микрокоманде отсутствуют. Тогда поле микроопераций микрокоманды должно содержать следующий код: 010 011 00.
После первой операторной вершины ГСА следует условная вершина, содержащая логическую переменную Х\. Следовательно, в микрокоманде должна анализироваться переменная хх . При xt = 0 следующей должна выполняться микрокоманда (^, у4, у7) по адресу 1, иначе— микрокоманда (У\ > ^5 > >^8) по неизвестному пока адресу. Заполним строку таблицы для нулевой ячейки памяти следующим кодом: 010 011 00 01 ????. К этой строке нам еще придется вернуться для заполнения поля адреса перехода. По адресу 1 должна располагаться микрокоманда, формирующая микрооперации (>>], у4, y-j) и безусловно передающая управление следующей микрокоманде (j>3, у5). Заполняем строку таблицы для первой ячейки памяти: 001 001 01 00 хххх. В поле х этой микрокоманды код 00 указывает на тождественно ложное условие (константу 0) — к Рг Сч А МК будет добавлена 1, а содержимое поля адреса перехода не используется
Действуя аналогичным образом, заполняем строки табл. 4.5, соответствующие адресам ПЗУ 3, 4, 5, 6 (на рис. 4.14 рядом с операторными вершинами обозначены адреса соответствующих микрокоманд). В микрокоманде по адресу 4 выполняется условный переход по переменной х2, причем адрес перехода при х2 -1 пока также неизвестен. По адресу 6 размещается микрокоманда, соответствующая конечной вершине ГСА, завершающая работу микропрограммы микрооперацией ук . Таким образом, завершено микропрограммирование участка ГСА от начальной до конечной вершины, соответствующего нулевым значениям логических переменных.
Теперь можно вернуться к логической вершине, размещенной после первой операторной. Микрокоманду, следующую за ее единичным выходом (уи у5, ys), можно разместить по следующему свободному (7) адресу. Поэтому в поле адреса перехода ячейки 0 теперь можно поместить код 0111. Сама микрокоманда по адресу 7 формирует три микрооперации и переходит к микрокоманде по адресу 8: 001 010 10 00 хххх.
Микрокоманда по адресу 8 не связана с логической вершиной, но она должна передавать управление уже существующей (по адресу 3) микрокоманде. Поэтому ее поле х = 11 адресует тождественно истинное условие, а в поле переадресации указан адрес 3.
Наконец, остался неопределенным адрес перехода в микрокоманде по адресу 4. Сейчас уже всем операторным вершинам ГСА (включая конечную) соответствуют микрокоманды в ячейках ПЗУ. На какую из них следует передать управление после проверки условия х2, если оно окажется истинным? Из ГСА видно, что тогда следует проверить условие х^ — случай двух подряд расположенных условных вершин. Передать управление на адрес 0, где проверяется это условие? Но тогда выполнятся и микрооперации ух, у4, у7, а это микропрограммой не предусмотрено. Очевидно, в микропрограмму следует включить дополнительно микрокоманды (в нашем случае — по адресам 9 и 10), которые не формируют никаких микроопераций, а обеспечивают только передачу управления. Первая осуществляет условный переход по переменной на адрес 7, вторая' (которая будет выполняться только при =0)— безусловно на адрес 1. Теперь код микропрограммы полностью сформирован.Осталось изобразить структурную схему разработанного управляющего автомата (рис. 4.16).
ГЛАВА 5
Организация памяти в ЭВМ
ЭВМ, реализованная по классической фон-неймановской архитектуре, включает в себя:
□ процессор, содержащий арифметико-логическое устройство (АЛУ) и центральное устройство управления (ЦУУ);
□ память, которая в современных ЭВМ подразделяется на оперативную (ОП или ОЗУ) и сверхоперативную (СОЗУ);
□ внешние устройства, к которым относят внешнюю память (ВЗУ) и устройства ввода/вывода (УВВ).
В этой главе рассмотрим организацию устройств памяти. Принципы взаимодействия других устройств ЭВМ с процессором рассмотрены в разд. 6.3.
5.1. Концепция многоуровневой памяти
Известно, что память ЭВМ предназначена для хранения программ и данных, причем эффективность работы ЭВМ во многом определяется характеристиками ее памяти. Во все времена к памяти предъявлялись три основных требования: большой объем, высокое быстродействие и низкая (умеренная) стоимость.
Все перечисленные выше требования к памяти являются взаимно-противоречивыми, поэтому пока невозможно реализовать один тип ЗУ, отвечающий всем названным требованиям. В современных ЭВМ организуют комплекс разнотипных ЗУ, взаимодействующих между собой и обеспечивающих приемлемые характеристики памяти ЭВМ для каждого конкретного применения.
В основе большинства ЭВМ лежит трехуровневая организация памяти: сверхоперативная (СОЗУ) — оперативная (ОЗУ) — внешняя (ВЗУ). СОЗУ и ОЗУ могут непосредственно взаимодействовать с процессором, ВЗУ взаимодействует только с ОЗУ.
СОЗУ обладает максимальным быстродействием (равным процессорному), небольшим объемом (101—105 байтов) и располагается, как правило, на кристалле процессорной БИС. Для обращения к СОЗУ не требуются магистральные (машинные) циклы. В СОЗУ размещаются наиболее часто используемые на данном участке программы данные, а иногда — и фрагменты программы.
Быстродействие ОЗУ может быть ниже процессорного (не более чем на порядок), а объем составляет 106—109 байтов. В ОЗУ располагаются подлежащие выполнению программы и обрабатываемые данные. Связь между процессором и ОЗУ осуществляется по системному или специализированному интерфейсу и требует для своего осуществления машинных циклов.
Информация, находящаяся в ВЗУ, не может быть непосредственно использована процессором. Для использования программ и данных, расположенных в ВЗУ, их необходимо предварительно переписать в ОЗУ. Процесс обмена информацией между ВЗУ и ОЗУ осуществляется средствами специального канала или (реже)— непосредственно под управлением процессора. Объем ВЗУ практически неограничен, а быстродействие на 3—6 порядков ниже процессорного.
Схематически взаимодействие между процессором и уровнями памяти представлено на рис. 5.1.
Следует помнить, что положение ЗУ в иерархии памяти ЭВМ определяется не элементной базой запоминающих ячеек (известны случаи реализации ВЗУ на БИС — "электронный диск" и, наоборот, организация оперативной памяти на электромеханических ЗУ — магнитных барабанах), а возможностью доступа процессора к данным, расположенным в этом ЗУ.
При организации памяти современных ЭВМ (МПС) особое внимание уделяется сверхоперативной памяти и принципам обмена информацией между ОЗУ и ВЗУ.
5.2. Сверхоперативная память
Применение СОЗУ в иерархической памяти ЭВМ может обеспечить повышение производительности ЭВМ за счет снижения среднего времени обращения к памяти Т при условии, что время цикла СОЗУ Тс будет (значительно) меньше времени цикла ОЗУ Т0. Очевидно:
Т = рс-Тс+(1-рс)-Т0