3.2. ВНУТРЕННЯЯ ОРГАНИЗАЦИЯ МИКРОПРОЦЕССОРА
К оглавлению1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1617 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
Перечислим основные функции микропроцессора:
• выборка команд из ОЗУ;
•декодирование команд (т.е. определение назначения команды, способа ее исполнения и адресов операндов);
• выполнение операций, закодированных в командах;
• управление пересылкой информации между своими внутренними регистрами, оперативной памятью и внешними (периферийными) устройствами;
• обработка внутрипроцессорных и программных прерываний;
• обработка сигналов от внешних устройств и реализация соответствующих прерываний;
• управление различными устройствами, входящими в состав компьютера.
Внутреннее устройство микропроцессоров очень сложно (вспомним три миллиона транзисторов в «Pentium»). Даже если попытаться рассмотреть наиболее общую схему основных функциональных узлов, и то получится достаточно сложная картина. К тому же внутреннее устройство МП сильно зависит от его марки, а стало быть изучение структуры одного процессора не обязательно помогает понять работу другого. Следует признать нецелесообразным для пользователя (и даже, может быть, для программиста) изучение инженерных деталей процессора современной ЭВМ, и ограничиться, как это принято делать, только теми функциональными узлами, которые доступны программно. При таком подходе оказывается, что МП имеют много общего, и становятся отчетливо видны некоторые закономерности их внутреннего устройства. Кроме того, исчезает пугающая сложность и возникает приятное и полезное чувство, что компьютер - это не какая-то там «вещь в себе» и его поведение можно понять.
Итак, что же представляет собой микропроцессор с точки зрения программиста? Рассмотрение начнем в наиболее общем виде, не конкретизируя пока тип МП.
Ответ на поставленный вопрос, как ни странно, будет чрезвычайно прост: для программиста любой процессор состоит из набора регистров памяти различного назначения, которые определенным образом связаны между собой и обрабатываются в соответствии с некоторой системой правил. Конечно, программисту доступна не вся внутренняя память процессора: есть множество рабочих (программно-недоступных) регистров, использующихся только во время выполнения команд и т.п.; их мы рассматривать не будем.
Обсуждение внутренних регистров микропроцессора начнем с наиболее важных: счетчика адреса команд, указателя стека и регистра состояния. Наличие счетчика адреса команд, как уже говорилось выше, было предложено еще в работах фон Неймана. Роль счетчика состоит в сохранении адреса очередной команды программы и автоматическом вычислении адреса следующей. Благодаря наличию программного счетчика в ЭВМ реализуется основной цикл исполнения последовательно расположенных команд программы. Заметим, что не во всех МП счетчик команд программно доступен.
В указателе стека хранится адрес начала специальным образом организуемого участка памяти стека, описанного в следующем параграфе; роль указателя стека в функционировании процессора достаточно велика.
Наконец, регистр состояния процессора. Для разных МП он может называться по-разному (например, слово состояния процессора, регистр флагов и т.п.), но суть его всегда одна: в этом регистре хранятся сведения о текущих режимах работы процессора. Сюда же помещается информация о результатах выполняемых команд, например, равен ли результат нулю, отрицателен ли он, не возникли ли ошибки в ходе операции и т.п. Использование и анализ информации в этом очень важном регистре происходит побитно; иными словами, каждый бит регистра состояния имеет самостоятельное значение. Содержание регистра состояния МП всегда старается сохранить в первою очередь сразу после значения командного счетчика.
Помимо рассмотренных выше, каждый МП имеет набор рабочих регистров, в которых хранятся текущие обрабатываемые данные или их адреса в ОЗУ. У некоторых процессоров регистры функционально равнозначны (классическим примером служит процессор машин семейства PDP). в других (к ним принадлежит все интел-ловское семейство МП) назначение регистров достаточно жестко оговаривается. В последнем случае выделяется особый регистр, который принято называть аккумулятором.. В нем производятся все основные операции и сохраняется их результат
Завершая разговор о регистрах, укажем на существование определенных связей между ними: информация из одного может передаваться в другой. Для машин с равноправными регистрами передача данных возможна между любыми регистрами, для остальных - между строго определенными парами. Так или иначе (в худшем случае за несколько машинных команд) информацию из одного регистра МП всегда можно перенести в другой.
Разрядность регистров МП существенно влияет на возможности всей ЭВМ. Поэтому уточним понятие «разрядность ЭВМ». Оно включает
• разрядность внутренних регистров микропроцессора (m);
• разрядность шины данных (n);
• разрядность шины адреса (k).
Рис. 4.12. Обмен информацией между процессором и основной памятью
Схема обмена информацией между микропроцессором и ОЗУ представлена на рис. 4.12. Данные поступают из ОЗУ в регистры процессора и наоборот по шине данных; по шине адреса передается информация о месте хранения данных в ОЗУ. Разрядности этих шин могут не совпадать: например, упомянутый выше МП «Intel 8088» характеризовался значениями m/n/k = 16/8/20. Когда говорят, не вникая в детали, «16-разрядная ЭВМ», то имеют в виду значение т. Поскольку объем адресного пространства ОЗУ, контролируемого МП, равен 2k, то понятно стремление увеличить разрядность шины адреса.
Перечислим основные функции микропроцессора:
• выборка команд из ОЗУ;
•декодирование команд (т.е. определение назначения команды, способа ее исполнения и адресов операндов);
• выполнение операций, закодированных в командах;
• управление пересылкой информации между своими внутренними регистрами, оперативной памятью и внешними (периферийными) устройствами;
• обработка внутрипроцессорных и программных прерываний;
• обработка сигналов от внешних устройств и реализация соответствующих прерываний;
• управление различными устройствами, входящими в состав компьютера.
Внутреннее устройство микропроцессоров очень сложно (вспомним три миллиона транзисторов в «Pentium»). Даже если попытаться рассмотреть наиболее общую схему основных функциональных узлов, и то получится достаточно сложная картина. К тому же внутреннее устройство МП сильно зависит от его марки, а стало быть изучение структуры одного процессора не обязательно помогает понять работу другого. Следует признать нецелесообразным для пользователя (и даже, может быть, для программиста) изучение инженерных деталей процессора современной ЭВМ, и ограничиться, как это принято делать, только теми функциональными узлами, которые доступны программно. При таком подходе оказывается, что МП имеют много общего, и становятся отчетливо видны некоторые закономерности их внутреннего устройства. Кроме того, исчезает пугающая сложность и возникает приятное и полезное чувство, что компьютер - это не какая-то там «вещь в себе» и его поведение можно понять.
Итак, что же представляет собой микропроцессор с точки зрения программиста? Рассмотрение начнем в наиболее общем виде, не конкретизируя пока тип МП.
Ответ на поставленный вопрос, как ни странно, будет чрезвычайно прост: для программиста любой процессор состоит из набора регистров памяти различного назначения, которые определенным образом связаны между собой и обрабатываются в соответствии с некоторой системой правил. Конечно, программисту доступна не вся внутренняя память процессора: есть множество рабочих (программно-недоступных) регистров, использующихся только во время выполнения команд и т.п.; их мы рассматривать не будем.
Обсуждение внутренних регистров микропроцессора начнем с наиболее важных: счетчика адреса команд, указателя стека и регистра состояния. Наличие счетчика адреса команд, как уже говорилось выше, было предложено еще в работах фон Неймана. Роль счетчика состоит в сохранении адреса очередной команды программы и автоматическом вычислении адреса следующей. Благодаря наличию программного счетчика в ЭВМ реализуется основной цикл исполнения последовательно расположенных команд программы. Заметим, что не во всех МП счетчик команд программно доступен.
В указателе стека хранится адрес начала специальным образом организуемого участка памяти стека, описанного в следующем параграфе; роль указателя стека в функционировании процессора достаточно велика.
Наконец, регистр состояния процессора. Для разных МП он может называться по-разному (например, слово состояния процессора, регистр флагов и т.п.), но суть его всегда одна: в этом регистре хранятся сведения о текущих режимах работы процессора. Сюда же помещается информация о результатах выполняемых команд, например, равен ли результат нулю, отрицателен ли он, не возникли ли ошибки в ходе операции и т.п. Использование и анализ информации в этом очень важном регистре происходит побитно; иными словами, каждый бит регистра состояния имеет самостоятельное значение. Содержание регистра состояния МП всегда старается сохранить в первою очередь сразу после значения командного счетчика.
Помимо рассмотренных выше, каждый МП имеет набор рабочих регистров, в которых хранятся текущие обрабатываемые данные или их адреса в ОЗУ. У некоторых процессоров регистры функционально равнозначны (классическим примером служит процессор машин семейства PDP). в других (к ним принадлежит все интел-ловское семейство МП) назначение регистров достаточно жестко оговаривается. В последнем случае выделяется особый регистр, который принято называть аккумулятором.. В нем производятся все основные операции и сохраняется их результат
Завершая разговор о регистрах, укажем на существование определенных связей между ними: информация из одного может передаваться в другой. Для машин с равноправными регистрами передача данных возможна между любыми регистрами, для остальных - между строго определенными парами. Так или иначе (в худшем случае за несколько машинных команд) информацию из одного регистра МП всегда можно перенести в другой.
Разрядность регистров МП существенно влияет на возможности всей ЭВМ. Поэтому уточним понятие «разрядность ЭВМ». Оно включает
• разрядность внутренних регистров микропроцессора (m);
• разрядность шины данных (n);
• разрядность шины адреса (k).
Рис. 4.12. Обмен информацией между процессором и основной памятью
Схема обмена информацией между микропроцессором и ОЗУ представлена на рис. 4.12. Данные поступают из ОЗУ в регистры процессора и наоборот по шине данных; по шине адреса передается информация о месте хранения данных в ОЗУ. Разрядности этих шин могут не совпадать: например, упомянутый выше МП «Intel 8088» характеризовался значениями m/n/k = 16/8/20. Когда говорят, не вникая в детали, «16-разрядная ЭВМ», то имеют в виду значение т. Поскольку объем адресного пространства ОЗУ, контролируемого МП, равен 2k, то понятно стремление увеличить разрядность шины адреса.