Chapter_04 (1110556), страница 4
Текст из файла (страница 4)
Заметим, однако, что теперь при выполнении каждого обращения заоперандом в основную память, центральный процессор должен вычислять значение адреса этого10операнда по формуле A=B+. Это вычисление производится в устройстве управления и, естественно,усложняет его, не говоря уже о том, что и выполнение всей команды может несколько замедлиться.Например, адрес переменной X вычисляется как Адрес(X) = B+=107+1=10000001.Осталось выбрать оптимальную длину смещения в поле адреса команды.
Для этого вернёмся крассмотрению учебной ЭВМ с адресуемыми регистрами, для которой теперь будет реализовано базирование адресов основной памяти (не регистровой, там это не нужно, так как адреса регистров итак маленькие). Например, пусть под запись смещения мы выделим в команде поле длиной в 12 бит.Будем, как и раньше, обозначать операнд в памяти A1 или A2, но помним, что теперь это толькосмешение относительно базы.
Тогда все команды, которые обращаются за операндом в основнуюпамять, будут в нашей ЭВМ с адресуемыми регистрами более короткими:1КОП8 битr14 битаA212 битРассмотрим схему выполнения такой команды для формата регистр-память ( как обычно задаёт какой-то код бинарной операции):r1 := r1 <B+A2>или для формата память-регистр:<B+A2> := <B+A2> r1Область, в которой находятся вычисляемые относительно базы ячейки основной памяти, обычноназывается сегментом – это сплошной участок памяти, начало которого задаётся в некотором регистре, называемом базовым, или сегментным. Будем далее для определённости называть такие регистры сегментными, а сам приём разбиения памяти на такие участки – сегментированием памяти.Сегментирование позволяет уменьшить объём памяти для хранения программ, но оно имеет иодин существенный недостаток: теперь каждая команда может обращаться не к любой ячейке оперативной памяти, как это было у нас раньше, а только к тем из ячеек, до которых "дотягивается" смещение относительно своей базы.
В нашем предыдущем примере при длине смещения 12 бит каждаякоманда может обращаться к диапазону адресов от значения сегментного регистра B до B+212-1.Для доступа к другим ячейкам памяти необходимо записать в сегментный регистр новое значение(как говорят, перезагрузить сегментный регистр). Этот недостаток, например, существенно затрудняет в таких компьютерах работу с массивами длиной больше, чем 212 ячеек.
Однако, несмотря науказанный недостаток, современные ЭВМ в целях уменьшения объёма программы часто производятсегментирование памяти и базирование адресов команд для уменьшения длины программы.Заметим также, что отмеченный выше недостаток в большинстве архитектур современных ЭВМисправляется путём реализации нескольких сегментных регистров, а также переменной длины смещения (например, разрешается смещение длиной в 1, 2 или 4 байта). Необходимо, однако, понимать,что это ещё более увеличивает набор команд языка машины и усложняет центральный процессор.Итак, ещё раз отметим очень важное обстоятельство сегментного способа адресации.
В новойархитектуре для осуществления любого доступа к памяти ЭВМ необходимо, чтобы ячейка, к которой осуществляется доступ, находилась в сегменте, на начало которого указывает некоторый сегментный регистр. Как уже говорилось, современные ЭВМ обеспечивают одновременную работу снесколькими сегментами памяти и, соответственно, имеют несколько сегментных регистров.В некоторых архитектурах адресуемые регистры центрального процессора являются универсальными, т.е. каждый из них может быть использован как сегментный или для выполнения любыхопераций над данными. Сложность центрального процессора при этом существенно повышается, поэтому во многих архитектурах используются специализация регистров, т.е. определённые регистрыявляются только сегментными (на них нельзя, например, складывать числа), на других могут производиться операции над данными, третьи используются в качестве счётчиков циклов и т.д.
Именнотак будет обстоять дело в той конкретной ЭВМ, которую мы будем вскоре изучать.1Таким был формат команд популярного в 60-70-х годах прошлого века семейства ЭВМ IBM-360/370 и ихотечественных аналогов ЕС-360/370.11Вопросы и упражнения1.2.3.4.5.6.7.8.Что такое адресность ЭВМ? Почему в безадресной ЭВМ должны быть хотя бы две одноадресные команды?Какие ЭВМ называются компьютерами с адресуемыми регистрами? В чём достоинства и недостатки такой архитектуры?Что такое способ адресации? Чем отличается прямая адресация от косвенной?Добавьте в язык учебной машины УМ-3 новую команду косвенной пересылки:ПЕРК А1,А2,А3Эта команда использует косвенную адресацию по своему третьему адресу и выполняется поправилу:<A1> := <<A3>>Покажите, что с помощью этой команды можно обрабатывать массивы без использования самомодифицирующихся программ.
Переделайте для этого программу суммирования всех элементов массива из примера на рис. 3.4.Для чего нужно многообразие форматов данных?Почему есть формат команд память-непосредственный операнд (SI), но нет формата команднепосредственный операнд-память (IS) ?В чём преимущества и недостатки сегментной организации памяти?Что такое базирование адресов?.