Единое окно доступа к образовательным ресурсам

Архитектура базовой ЭВМ: Учебное пособие

Голосов: 4

В учебном пособии рассматриваются основы функционирования и построения ЭВМ. Приводятся общие сведения о представлении и обработке информации в ЭВМ. Описывается функциональная модель гипотетической микроЭВМ (Базовой ЭВМ), структурно похожей на любые несложные ЭВМ, и работа с этой моделью. На ней можно исследовать взаимодействия устройств ЭВМ при выборке и исполнении команд и изучить ее функционирование на микропрограммном уровне. Пособие предназначено для подготовке бакалавров по направлениям 230100 "Информатика и вычислительная техника", 231000 "Программная инженерия", а также подготовки бакалавров других направлений, которым читают дисциплины, связанные с вычислительной техникой, как преподаватели кафедры ВТ, так и преподаватели других кафедр.

Приведенный ниже текст получен путем автоматического извлечения из оригинального PDF-документа и предназначен для предварительного просмотра.
Изображения (картинки, формулы, графики) отсутствуют.
    с десятичными числами, за исключением того, что переносы в следующие
разряды производятся при достижении 2, 8 и 16, а не 10 как в десятичной
системе. Подробно ряд арифметических операций рассмотрим в параграфе
2.4, а здесь приведем пример сложения чисел (166)10 и (47)10 в двоичной,
восьмеричной и шестнадцатеричной системах счисления:

Перенос                       1 111               11                 1
1-е слагаемое                10100110             246                A6
2-е слагаемое                00101111              57                2F
Результат                    11010101             325                D5

      Наконец, следует упомянуть и о двоично-десятичной системе
счисления, которая широко используется в цифровых устройствах, где
основная часть операций связана не с обработкой и хранением вводимой
информации, а с самим ее вводом, и выводом на какие-либо индикаторы с
десятичным         представлением          полученных          результатов
(микрокалькуляторы, кассовые аппараты и т. п.).
      В двоично-десятичной системе десятичные цифры от 0 до 9
представляют 4-разрядными двоичными комбинациями от 0000 до 1001, т.
е. двоичными эквивалентами десяти первых шестнадцатеричных цифр (см.
табл. А.1 приложения А). Преобразования из двоично-десятичной системы
в десятичную (и обратные преобразования) не вызывают затруднений и
выполняются путем прямой замены четырех двоичных цифр одной
десятичной цифрой (или обратной замены). Две двоично-десятичные
цифры составляют 1 байт. Таким образом, с помощью 1 байта можно
представлять значения от 0 до 99, а не от 0 до 255 или от 0 до FF, как при
использовании 8-разрядного двоичного числа или 2-разрядного
шестнадцатеричного числа. Используя 1 байт для представления каждых
двух десятичных цифр, можно формировать двоично-десятичные числа с
любым требуемым числом десятичных разрядов.
      Так, если число
                             1001 0101 0011 1000
рассматривать как двоичное, то его десятичный эквивалент
                    (1001 0101 0011 1000) 2 = (38200)10
в 4 раза больше десятичного эквивалента двоично-десятичного числа
                   (1001 0101 0011 1000)2–10 = (9538)10.
      Сложение двоично-десятичных чисел, имеющих один десятичный
разряд, выполняется так же, как и сложение 4-разрядных двоичных чисел
без знака, за исключением того, что при получении результата,
превышающего 1001, необходимо производить коррекцию. Результат
корректируется путем прибавления двоичного кода числа 6, т. е. кода
0110.


18


Например:

    4       0100     5    0101               9    1001
    5       0101      9   1001               9    1001
    9       1001    14    1110              18 1 0010
                          0110 – коррекция        0110 - коррекция
                   10+4 1 0100             10+8 1 1000

     Если первоначальное двоичное сложение или прибавление
корректирующего числа приводит к возникновению переноса, то при
сложении многоразрядных двоично-десятичных чисел осуществляется
перенос в следующий десятичный разряд:

     1889            0001          1000           1000         1001
     6376            0110          0011           0111         0110
     8265            0111          1011           1111         1111
                                   0110           0110         0110
                                                     1         0101
                                      1           0110
                        1          0010
                     1000
Резюме
      1. Для удобства выполнения ручных операций по подготовке и
отладке программ для микроЭВМ двоичные коды команд и данных обычно
заменяют на восьмеричные или шестнадцатеричные.
      2. Перевод двоичных чисел в восьмеричные (шестнадцатеричные)
выполняется путем разбиения этого числа на 3-битовые (4-битовые)
группы и замены каждой из групп на восьмеричную (шестнадцатеричную)
цифру.
      3. Перевод восьмеричных (шестнадцатеричных) чисел в двоичные
осуществляется путем замены каждой восьмеричной (шестнадцатеричной)
цифры на ее 3-битовый (4-битовый) двоичный код.
      4. Двоичное число можно преобразовать в десятичное, представив
его в виде суммы степеней числа 2.
      5. Десятичное число можно преобразовать в двоичное путем
последовательного вычитания степеней числа 2, начиная с наибольшей
степени, содержащейся в числе. Найденные в результате коэффициенты
располагают в последовательности таким образом, чтобы коэффициент
при старшей степени числа 2 стоял в старшем разряде двоичного числа.
      6. Ряд    микроЭВМ       может     обрабатывать     информацию,
представленную в виде двоичных кодов десятичных цифр, т. е. как бы в
десятичной системе счисления. Подобная система счисления получила
название двоично-десятичной. Перевод чисел из десятичной системы
                                                                     19


счисления в двоично-десятичную (и обратное преобразование)
выполняется путем прямой замены каждой десятичной цифры числа на
четыре двоичные (или обратной замены).
      7. Основание системы счисления часто указывают в виде индекса
для числа, взятого в круглые скобки.
       1.4. Структура и принцип функционирования ЭВМ
      Типичная ЭВМ состоит из процессора, памяти и устройств ввода-
вывода (рис. 1.6). Со времени появления в 40-х годах первых электронных
цифровых вычислительных машин технология производства каждой из
этих трех подсистем была значительно усовершенствована. За последнее
десятилетие благодаря развитию интегральной технологии существенно
улучшились характеристики процессоров и памяти. Кроме того, была
снижена их стоимость. В настоящее время по цене хорошего цветного
телевизора можно приобрести в личное пользование достаточно мощную
ЭВМ, за которую в 70-х годах потребовалось бы заплатить больше, чем за
несколько самых дорогих автомобилей.
      Несмотря на успехи, достигнутые в области технологии,
существенных изменений в базовой структуре и принципах работы
вычислительных машин не произошло. Так, еще в 1946 г. в описании
впервые предложенной ЭВМ с хранимой в памяти программой
отмечалось: «Мы располагаем... двумя личными типами памяти:
памятью чисел и памятью команд. Тем не менее, и команды
представлены машине в виде числового кода и, если машина каким-
либо образом в состоянии отличать числа от команд, то блок памяти
можно использовать для хранения и тех и других».

                                      ПАМЯТЬ

                               Шины             памяти

            Шины ввода                                    Шины вывода
                                   ПРОЦЕССОР
        УСТРОЙСТВА                                                УСТРОЙСТВА
           ВВОДА                   Устройство
                                                                    ВЫВОДА
                                   управления

                                   Арифметико-
                                    логическое
           ...                      устройство                       ...
                                     Регистры
                                    ... ...

                     Рис. 1.6. Обобщенная структурная схема ЭВМ


20


     Несмотря на успехи, достигнутые в области технологии,
существенных изменений в базовой структуре и принципах работы
вычислительных машин не произошло. Так, еще в 1946 г. в описании
впервые предложенной ЭВМ с хранимой в памяти программой
отмечалось: «Мы располагаем... двумя личными типами памяти:
памятью чисел и памятью команд. Тем не менее, и команды
представлены машине в виде числового кода и, если машина каким-
либо образом в состоянии отличать числа от команд, то блок памяти
можно использовать для хранения и тех и других».
     И в настоящее время почти во всех вычислительных машинах
для хранения данных (чисел, текстов) и команд служит одна и та же
память. Это позволяет повысить эффективность использования
достаточно дорогостоящей памяти ЭВМ, так как среди решаемых ею
задач встречаются задачи с достаточно сложной обработкой (много
команд) небольшого числа исходных данных (например, ряд
научных расчетов) и задачи, связанные с переработкой по простым
алгоритмам (мало команд) очень больших объемов данных
(обработка переписи населения, расчет заработной платы на крупном
предприятии и т. п.).
     «Сердцем» ЭВМ является процессор, в состав которого входят:
      устройство управления выборкой команд из памяти и их
      выполнением;
      арифметико-логическое устройство, производящее операции
      над данными;
      регистры, осуществляющие временное хранение данных и
      состояний процессора;
      схемы для управления и связи с подсистемами памяти и ввода-
      вывода.
     Подробнее о структуре процессора будет рассказано в конце
этой главы.
     Устройства ввода обеспечивают считывание информации
(исходных данных и программы решения задачи) с определенных
носителей информации (клавиатур, перфолент, магнитных лент или
дисков, датчиков состояний управляемых объектов и т. п.) и ее
представление в форме электрических сигналов, воспринимаемых
другими устройствами ЭВМ (процессором или памятью).
     Устройства вывода представляют результаты обработки
информации в форме, удобной для визуального восприятия
(индикаторы, печатающие устройства, графопостроители, экран
дисплея и т. п.). При необходимости они обеспечивают запоминание
результатов на носителях, с которых эти результаты могут быть
снова введены в ЭВМ для дальнейшей обработки (перфоленты,
магнитная лента, магнитный диск и т. п.), или передачу результатов
                                                                21


на исполнительные органы управляемого объекта (например,
робота).
     Память ЭВМ включает устройство, обеспечивающее хранение
команд и данных. Это устройство состоит из блоков одинакового
размера – ячеек памяти, предназначенных для хранения одного слова
информации рис. 1.7, а ) . В свою очередь, ячейка памяти состоит из
элементов памяти, состояние каждого из которых соответствует
одной двоичной цифре (0 или 1 ) . С овокупность нулей и единиц,
хранящихся в элементах одной ячейки, представляет собой
содержимое этой ячейки памяти.
     а)                                                            б)

          Адреса                                         Ячейки
          ячеек            Элементы памяти               памяти                  Шина
          памяти
                                                                                 адреса
          0000     1   0    1    0    0    0    1    1
          0001     0   0    0    1    0    0    1    0
                                                                                 Шина
          0002     0   1    1    1    1    1    0    0                  ПАМЯТЬ
                                                                                 чтения
          0003     0   0    0    0    0    0    0    1

          ...                     ...                                            Шина

                                                                                 записи
          07FF     0   0    0    0    0    0    0    0

                                Рис. 1.7. Организация памяти ЭВМ

      Ячейки нумеруются числами 0, 1, 2, называемыми адресом
ячеек. Если необходимо записать в память слово, следует подать на
шину адреса памяти (рис. 1.7,б ) сигналы, соответствующие адресу
ячейки, в которую надо поместить записываемое слово, и подать
само слово на шину записи. Память устроена так, что заданное слово
будет передано в ячейку с указанным адресом и может храниться там
сколь угодно долго. В любой момент, обратившись к памяти, можно
получить содержимое хранимого там слова. Для этого в память
посылается адрес, определяющий местоположение требуемого слова,
и она выдает по шине чтения копию слова. При считывании
содержимое ячейки остается без изменения, так что, один раз
записав слово, можно сколько угодно раз получать его копии. Это
аналогично записи песни на магнитофонную ленту. Песню можно
прослушивать с ленты (читать с ленты) сколько угодно раз, но если
на ее место записать другую мелодию, то первая будет стерта.
Однако время доступа к информации на магнитной ленте зависит от
того, где записана эта информация (иногда надо перемотать почти

22


всю ленту, чтобы прослушать какую-либо песню), тогда как время
доступа к любой ячейке памяти всегда одинаково (не зависит от ее
номера).
      На рис. 1.7,а показана память, имеющая 4096 = 2 12 8-разрядных
слов, т. е. содержащая 4096 байт информации. При том же самом
числе запоминающих элементов можно было бы организовать память
из 32 768 1-битовых слов, 2048 16-битовых слов, 1024 32-битовых
слов и т. д. Если нужно обрабатывать информацию, которая может
кодироваться лишь двумя символами (например, некоторые данные
переписи населения: пол, семейное положение и т. п.), то выгодно
использовать первую организацию памяти. В случае же точных
вычислений приемлемее память из 32-битовых или даже 64-битовых
слов. Однако при выборе разрядности ячеек памяти надо учитывать,
что в них должны храниться и команды программы, используемые
процессором для обработки таких данных. А как же строится
команда ЭВМ и какова ее разрядность?
      Команда ЭВМ первоначально содержала следующую
информацию (рис. 1.8,а ) .
      1. Код операции, указывающий операцию, которую должна
выполнить ЭВМ (сложение, вычитание, умножение, сравнение,
изменение знака и т. п.).
      2. Адреса двух операндов – аргументов операции, например
слагаемых, уменьшаемого и вычитаемого, сомножителей и т. п. Если
какой-либо из операндов является константой, то вместо его адреса в
команде может быть задано само значение операнда. Однако это
обстоятельство должно быть отражено в коде операции, чтобы ЭВМ
использовала соответствующую часть команды в качестве операнда,
а не адреса ячейки памяти, в которой хранится этот операнд.




                                                                  23


      а)
           15           12 11        9   8       6   5        3   2       0


                                                           Адрес
                   Код      Адрес 1-го Адрес 2-го Адрес  следующей
                операции     операнда операнда результата команды

       б)
         15             12 11                                             0


                   Код
                операции    Адрес операнда, результата или перехода


       в)
         15             12 11                                             0


                   Код
                операции             Расширение кода операции

                               Рис. 1.8. Форматы команд:
                 а — четырехадресная; б — одноадресная; в — безадресная

     3. Адрес ячейки памяти, в которую должен быть помещен
результат операции.
     4. Адрес следующей команды.
     Такая команда, состоящая из пяти полей (код операции и
четыре адреса), может быть реализована процессорами самых
разнообразных структур.
     Простейшая из этих структур (рис. 1.9) напоминает структуру
процессора микрокалькулятора, приведенную на рис. 1.4. Процессор
содержит устройство управления, АЛУ, регистр для размещения
исполняемой команды (регистр команд) и регистр для размещения
одного из операндов или результата операции в процессе
выполнения этой команды – аккумулятор (на рис. 1.4, а роль
аккумулятора выполнял регистр X ) . Рассмотрим, что происходит в
процессоре после того, как в его регистр команд была переписана из
памяти какая-либо команда, например команда вычитания.




24


                        Ячейка, из которой будет
                        считана следующая команда
       ПАМЯТЬ
                                       Адрес следующей команды
        ...                            Адрес результата                       У4
                       Адрес
                                       Адрес вычитаемого                 У3
        ...                            Адрес уменьшаемого           У2
                                                               У1
     Вычитаемое                               У7
                       Чтение
        ...
                                                          Регистр команд
                          У5      У6
      Разность

        ...                                   У10
                                АЛУ                           УСТРОЙСТВО
                                              У11
                                                    У1
                                       У8           У11
                                                              УПРАВЛЕНИЯ
        ...
                           Аккумулятор
     Уменьшаемое      Запись
        ...                     У9                         ПРОЦЕССОР

                       Ячейка, из которой была
                       считана исполняемая команда
       Рис. 1.9. Простой процессор, работающий с четырехадресной командой,
                     целиком выбираемой из одной ячейки памяти

     Так как поле регистра команд, в котором хранится код
операции, связано шиной с устройством управления, то последнее
получит приказ на выполнение операции «Вычитание» и перейдет в
режим генерации управляющих сигналов:
     одновременной выработкой сигналов У1, У5, У10 и У8
     обеспечиваются пересылка из памяти численного значения
     уменьшаемого, прохождение его через АЛУ (сигнал У10) и
     запись в аккумулятор;
     следующий тактовый импульс инициирует выработку сигналов
     У2, У5, У6 и У11, что приводит к пересылке из памяти
     численного значения вычитаемого, к выполнению операции
     вычитания этого значения (сигнал У11) из содержимого
     аккумулятора (из уменьшаемого);
     по сигналу У8 производится запись полученной разности в
     аккумулятор вместо уменьшаемого;




                                                                                   25


      затем сигналы УЗ и У9 обеспечат пересылку разности из
      аккумулятора в ячейку памяти, на которую указывает
      предпоследнее поле команды;
      наконец, с помощью сигналов У4 и У7 будет произведена
      перепись в регистр команд следующей команды программы.
      Рассмотренная структура процессора и реализуемая им
структура четырехадресной команды кажутся вполне естественными.
Действительно, без усложнения доступа к содержимому ячеек
памяти нельзя одновременно получать из нее оба операнда и,
следовательно, первый операнд приходится сохранять в процессоре
до момента получения следующего операнда. Поэтому в состав
процессора и включен аккумулятор (он назван так потому, что может
быть использован для накопления – аккумуляции – слагаемых в
процессе получения суммы многих слагаемых или накопления
результатов других вычислений).
      Нужен и регистр для хранения в процессоре исполняемой команды
(регистр команд), так как во время выполнения этой команды из нее
должна выбираться различная информация, используемая устройством
управления и памятью. Однако целесообразно ли хранить в регистре
команд одновременно все поля команды, если они все равно используются
последовательно?
      Когда команда хранится в одной ячейке памяти, то не существует
возможности считывания из памяти отдельных полей этой команды.
Поэтому лучше поставить вопрос так: целесообразно ли хранить
четырехадресную команду в одной ячейке памяти или лучше хранить ее
отдельные поля в нескольких ячейках памяти?
      Короткую четырехадресную команду (см. рис. 1.8,а) безусловно
следует целиком хранить в 16-битовой ячейке памяти. Но такая команда
может адресовать лишь 23 = 8 ячеек памяти. Современные же микроЭВМ
адресуются к памяти, содержащей не менее 216 = 65 536 ячеек. Если
создавать четырех-адресную команду, работающую с памятью подобных
размеров, то на каждое адресное поле команды придется отвести 16 бит, а
на всю команду (при 16-битовом коде операции) — 80 бит. Однако ЭВМ,
работающую с такими командами, уже нельзя назвать микроЭВМ, так как
она будет содержать очень много оборудования: 80-разрядные, ячейки
памяти, 80 разрядные регистры, 80-разрядное АЛУ, 80-разрядные
вентильные схемы, шины шириной 80 и т. д. Следовательно, надо либо
четырехадресную команду хранить в ячейках памяти в виде отдельных ее
полей, либо уменьшать число адресных полей команды.
      Среди команд современных ЭВМ практически не встречаются
четырехадресные. Мало и трехадресных команд (см. рис. 1.5,г ) , так
как результат операции почти всегда можно записать на место
одного     из    уже    использованных     операндов.    Наибольшее

26


распространение в микроЭВМ получили             одноадресные  и
безадресные команды (см. рис. 1.8,б,в ) , позволяющие построить
простой процессор, например, показанный на рис. 1.10. Но прежде
чем перейти к обсуждению таких коротких команд, ответим на ряд
вопросов, которые, как нам кажется, могут возникнуть у
любознательного читателя.
        ПАМЯТЬ
                          Адрес                                                    +1
          ...                        Регистр адреса             Счетчик команд
   26 Вычитаемое          Чтение               Адрес         У1     У2
          ...             Запись              команды                       Адрес
   41   Разность                               Адрес операнда              перехода
          ...                                  или результата
   77 Уменьшаемое                                                    У3
                           Регистр данных
          ...                                   У4
                                                                Регистр команд
  102                         У5       У6


          ...                                        У10   +1
                                      АЛУ                           УСТРОЙСТВО
                                                     У11
                                                           У1
                              У8          Регистр          У11
  134 Загр. 77                                                      УПРАВЛЕНИЯ
                                         состояния
  135 Выч.    26
  136 Пер.    41                  Аккумулятор
  137   Останов
                                                     У7
          ...
                             У9                                   ПРОЦЕССОР


     Рис. 1.10. Простой процессор, работающий с одноадресными и безадресными командами

      Не потребуется ли хранить в разных ячейках памяти отдельные
поля (или части полей) трех-, двух- или одноадресных команд и как
работать с подобными командами?
      Чем объясняется появление в процессоре, изображенном на
рис. 1.10, дополнительных регистров (регистра адреса, счетчика
команд и регистра данных)? Почему эти регистры связаны между
собой так, как показано на рис. 1.10, а не иначе?
      Если команды программы размещать в памяти ЭВМ друг за другом
(а не в произвольной последовательности), то адрес следующей команды
чаще всего будет отличаться от адреса исполняемой команды (или ее
последнего поля) лишь на единицу, а добавление единицы к текущему
адресу можно возложить на ЭВМ (счетчик команд на рис. 1.10). Это
позволяет сократить длину команды (изъять из ее содержимого адрес
следующей команды), но приводит к необходимости использования

                                                                                         27



    
Яндекс цитирования Яндекс.Метрика