Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Модели, методы, алгоритмы и программные решения вычислительных машин, комплексов и систем

Покупка
Основная коллекция
Артикул: 737092.01.95
Доступ онлайн
от 324 ₽
В корзину
Учебник предназначен для изучения принципов работы микроЭВМ IBM на основе микропроцессоров, логического программирования, программирования микроконтроллерной базы на основе платформы Arduino. Раздел лабораторных работ содержит описание создания дополненной реальности в конструкторе (AR) ELIGOVISION TOOLBOX (EV TOOLBOX). В учебнике проводится ознакомление с интеллектуальными системами и технологиями в инженерии знаний. Описано моделирование работ с основными объектами, процессами и явлениями, связанными с интеллектуальными информационными системами и использованием методов их научного исследования. Дополнительно прилагаются практические задания и методы их решения с использованием алгоритмов Дейкстры, Флойда - Уоршелла, Хаффмана. Учебник разработан с учетом профессиональных стандартов, сопряженных с профессиональной деятельностью выпускника: «Программист», «Администратор баз данных», «Специалист по информационным системам», «Руководитель проектов в области информационных технологий», «Специалист по тестированию в области информационных технологий», «Технический писатель», «Системный администратор информационно-коммуникационных систем», «Специалист по администрированию сетевых устройств информационно-коммуникационных систем». Предназначен для бакалавров направлений подготовки 09.03.01 «Информатика и вычислительная техника»; 09.03.02 «Информационные системы и технологии»; 09.03.04 «Программная инженерия», с учетом требования профессиональных стандартов.
7
163
Веретехина, С. В. Модели, методы, алгоритмы и программные решения вычислительных машин, комплексов и систем : учебник / С.В. Веретехина, В.Л. Симонов, О.Л. Мнацаканян. — Москва : ИНФРА-М, 2020. — 306 с. : ил. — (Высшее образование: Бакалавриат). - ISBN 978-5-16-016656-8. - Текст : электронный. - URL: https://znanium.com/catalog/product/1210403 (дата обращения: 10.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
МОДЕЛИ, МЕТОДЫ, 
АЛГОРИТМЫ 
И ПРОГРАММНЫЕ РЕШЕНИЯ 
ВЫЧИСЛИТЕЛЬНЫХ МАШИН, 
КОМПЛЕКСОВ И СИСТЕМ

С.В. ВЕРЕТЕХИНА
В.Л. СИМОНОВ
О.Л. МНАЦАКАНЯН

Москва
ИНФРА-М
2020

УЧЕБНИК

УДК 004.7(075.8)
ББК 32.97я73
 
В31

Веретехина С.В.
В31  
Модели, методы, алгоритмы и программные решения вычислительных машин, комплексов и систем : учебник / С.В. Веретехина, В.Л. Симонов, О.Л. Мнацаканян. — Москва : ИНФРА-М, 2020. — 306 с. : ил. — 
(Высшее образование: Бакалавриат). 

ISBN 978-5-16-016656-8 (print)
ISBN 978-5-16-109241-5 (online)
Учебник предназначен для изучения принципов работы микроЭВМ IBM 
на основе микропроцессоров, логического программирования, программирования микроконтроллерной базы на основе платформы Arduino. Раздел лабораторных работ содержит описание создания дополненной реальности в конструкторе (AR) ELIGOVISION TOOLBOX (EV TOOLBOX). В учебнике 
проводится ознакомление с интеллектуальными системами и технологиями 
в инженерии знаний. Описано моделирование работ с основными объектами, 
процессами и явлениями, связанными с интеллектуальными информационными системами и использованием методов их научного исследования. Дополнительно прилагаются практические задания и методы их решения с использованием алгоритмов Дейкстры, Флойда – Уоршелла, Хаффмана.
Учебник разработан с учетом профессиональных стандартов, сопряженных 
с профессиональной деятельностью выпускника: «Программист», «Администратор баз данных», «Специалист по информационным системам», «Руководитель проектов в области информационных технологий», «Специалист по тестированию в области информационных технологий», «Технический писатель», 
«Системный администратор информационно-коммуникационных систем», 
«Специалист по администрированию сетевых устройств информационно-коммуникационных систем».
Предназначен для бакалавров направлений подготовки 09.03.01 «Информатика и вычислительная техника»; 09.03.02 «Информационные системы и технологии»; 09.03.04 «Программная инженерия», с учетом требования профессиональных стандартов.

УДК 004.7(075.8)
ББК 32.97я73

Р е ц е н з е н т ы:
Вольфенгаген В.Э., доктор технических наук, профессор, профессор 
кафедры кибернетики Национального исследовательского ядерного 
института «МИФИ» (г. Москва);
Миронов П.Н., кандидат технических наук, начальник отдела аппаратно-программных разработок АО «Государственный научно-исследовательский институт приборостроения» (г. Москва)

ISBN 978-5-16-016656-8 (print)
ISBN 978-5-16-109241-5 (online)
© Веретехина С.В., Симонов В.Л., 
Мнацаканян О.Л., 2020

Оглавление 
1. Принципы построения ПЭВМ  
 
 
 
 
7 
1.1.Взаимодействие устройств по системной магистрали 
7 
1.2. Центральный процессор 
 
 
 
 
 
9 
1.3. Микросхемы памяти 
 
 
 
 
 
 
15 
1.3.1. Оперативное запоминающее устройство (ОЗУ) 
18 
1.3.2. Постоянное запоминающее устройство (ПЗУ) 
19 
1.4. Микросхемы процессоров 
 
 
 
 
 
22 
1.4.1. Процессор Intel Core i7 
 
 
 
 
24 
1.4.2. Однокристальная система Texas Instruments  
OMAP5430 
 
 
 
 
 
 
 
34 
1.4.3. Микроконтроллер Atmel ATmega128  
 
35 
1.4.4. Микроконтроллер 1887ВЕ7Т 
 
 
 
38 
1.5. Компьютерные шины  
 
 
 
 
 
42 
1.5.1. Ширина шины  
 
 
 
 
 
45 
1.5.2. Синхронизация шины  
 
 
 
 
46 
1.5.3. Арбитраж шины 
 
 
 
 
 
51 
1.5.4. Принцип работы шины 
 
 
 
 
55 
1.6. Системы RISC и CISC  
 
 
 
 
 
58 
1.7. Принципы проектирования современных компьютеров 59 
1.8. Параллелизм на уровне команд 
 
 
 
 
61 
1.8.1. Конвейеры 
 
 
 
 
 
 
61 
1.8.2. Суперскалярные архитектуры 
 
 
 
62 
1.9. Параллелизм на уровне процессоров 
 
 
 
65 
1.9.1 Матричные компьютеры 
 
 
 
 
65 
1.9.2. Мультипроцессоры 
 
 
 
 
 
68 
1.9.3. Мультикомпьютеры  
 
 
 
 
69 
1.10. Иерархическая структура памяти  
 
 
 
70 
1.11. Ввод-вывод 
 
 
 
 
 
 
 
71 
1.11.1. Шины 
 
 
 
 
 
 
 
71 
1.11.2. Шины PCI и PCIe 
 
 
 
 
 
74 
1.12. Терминалы  
 
 
 
 
 
 
 
76 
1.12.1. Клавиатуры 
 
 
 
 
 
 
76 
1.12.2. Сенсорные экраны  
 
 
 
 
78 
1.12.3. Мониторы 
 
 
 
 
 
 
80 
1.13. Видеопамять 
 
 
 
 
 
 
 
84 
1.14. Мыши 
 
 
 
 
 
 
 
 
85 
1.15. Шлемы виртуальной реальности  
 
 
 
87 
1.16. 3D сканеры 
 
 
 
 
 
 
 
88 
1.17. Принтеры  
 
 
 
 
 
 
 
91 
1.17.1. Лазерные принтеры  
 
 
 
 
91 
1.17.2. Цветные принтеры  
 
 
 
 
93 
1.17.3. Струйные принтеры  
 
 
 
 
94 
1.17.4. Термографические принтеры 
 
 
 
96 

1.17.5. 3D принтеры  
 
 
 
 
 
96 
Вопросы к главе 1  
 
 
 
 
 
 
 
98 
Библиографический список 
 
 
 
 
 
 
99 
2. Логическое программирование  
 
 
 
 
100 
2.1. Основные понятия 
 
 
 
 
 
 
100 
2.1.1. Алгоритмы и алгоритмические языки  
 
100 
2.2.  Элементы математической логики и теории нечетких  
множеств  
 
 
 
 
 
 
 
102 
2.2.1. Исчисление предикатов первого порядка 
 
102 
2.2.2. Прикладное исчисление нечетких предикатов 
103 
2.2.3. Дедуктивные вопросы прикладного исчисления  
нечетких предикатов  
 
 
 
 
 
105 
2.3. Программирование на алгоритмическом языке  
ПРОЛОГ  
 
 
 
 
 
 
 
 
108 
2.3.1. Основные понятия языка ПРОЛОГ 
 
 
109 
2.3.2. Главное меню системы Турбо-Пролог  
 
119 
2.3.3. Основные режимы работы системы 
 
 
120 
2.3.4. Работа со списками 
 
 
 
 
 
123 
Вопросы к главе 2  
 
 
 
 
 
 
 
128 
Библиографический список 
 
 
 
 
 
 
128 
3. Реализация обучения программированию на базе  
программно-аппаратных средств в соответствии   
с требованиями новых образовательных стандартов  
(ФГОС 3++)   
 
 
 
 
 
 
 
 
129 
3.1. Программирование. Знакомство с микроконтроллерной  
базой на основе платформы «Arduino»  
 
 
130 
3.1.1. Датчики информации, используемые  
при построении схем 
  
131 
3.1.2. Пример построения схем с использованием  
датчиков информации  
 
 
 
 
 
133 
3.1.3. Моделирование в среде Tinkercad.com  
 
134 
Вопросы к главе 3  
 
 
 
 
 
 
 
140 
Библиографический список 
 
 
 
 
 
 
140 
4. Лабораторные работы в конструкторе (AR)  
    ELIGOVISION TOOLBOX (EV TOOLBOX) 
 
 
142 
4.1. Понятие дополненной реальности в конструкторе 
  
  (AR) ELIGOVISION TOOLBOX (EV TOOLBOX)  
142 
4.2. Интерфейс EV TOOLBOX   
 
 
 
 
142 
4.2.1. Экран приветствия 
 
 
 
 
 
142 
4.2.2. Основной экран  
 
 
 
 
 
143 
4.2.3. Панель «Проект» 
 
 
 
 
 
144 
4.2.4. Сценарий  
 
 
 
 
 
 
145 
4.2.5. События, действия и свойства объектов 
 
145 
4.2.6. Создание нового блока объекта  
 
 
146 

4.2.7. Добавление событий и действий объекта 
 
147 
4.2.8. Соединение 
 
 
 
 
 
 
147 
4.2.9. Соединение одного события с несколькими  
действиями 
 
 
 
 
 
 
 
148 
4.2.10. Различные варианты построения сценария  
148 
4.2.11. Приоритеты соединений  
 
 
 
149 
4.2.12. Свойства  
 
 
 
 
 
 
149 
4.3. Поддержка формата FBX 
 
 
 
 
 
150 
4.4. Настройка среды окружения Android 
 
 
 
150 
4.4.1. Установка JDK  
 
 
 
 
 
150 
4.4.2. Установка Android SDK 
 
 
 
 
152 
Лабораторная работа № 1 
 
 
 
 
 
 
158 
Вопросы к главе 4  
 
 
 
 
 
 
 
162 
5. Интеллектуальные системы и технологии  в инженерии  
знаний  
 
 
 
 
 
 
 
 
 
163 
5.1. Введение 
 
 
 
 
 
 
 
 
163 
5.2. Понятие интеллектуальной информационной системы 
164 
5.3. Направления исследований в области интеллектуальных  
       систем  
 
 
 
 
 
 
 
 
164 
5.4. Классификация интеллектуальных систем 
 
 
165 
5.5. Понятие интеллектуальной информационной  
       технологии  
 
 
 
 
 
 
 
173 
5.6. Архитектура интеллектуальных систем  
 
 
176 
5.6.1. Свойства знаний 
 
 
 
 
 
176 
5.6.2. Классификация знаний 
 
 
 
 
177 
5.6.3. Базы знаний 
 
 
 
 
 
 
180 
5.6.4. Архитектура интеллектуальных систем 
 
182 
5.7. Применение интеллектуальных систем и технологий  
            в профессиональной деятельности  
 
 
 
184 
5.7.1. Организация диалога между человеком   
и интеллектуальной системой 
 
 
 
 
184 
5.8. Разработка сложных предмето-ориентированных  
      интеллектуальных систем на основе  
      естественно-языкового интерфейса  
 
 
 
203 
5.8.1. Сравнительный анализ ЕЯ-интерфейсов   
и традиционных интерфейсов к структурированным  
источникам данных 
 
 
 
 
 
 
204 
5.8.2. Критерии качества ЕЯ-интерфейсов 
 
 
208 
5.8.3. Критерии стоимости построения  
и сопровождения ЕЯ-интерфейса  
 
 
 
208 
5.8.4. Вопросы портируемости 
 
 
 
 
209 
5.8.5. Основные составные части ЕЯ-интерфейсов  
210 
5.9. Работы с основными объектами, процессами  
 
и явлениями, связанными с интеллектуальными  

системами, и использование методов их научного 
 исследования 
 
 
 
 
 
 
 
211 
5.9.1. Модели принятия решения в условиях  
конфликта  
 
 
 
 
 
 
 
214 
5.9.2. Определение оптимальной интеллектуальной  
системы принятия решения и управления в условиях  
конфликта  
 
 
 
 
 
 
 
220 
5.10. Интеллектуальные системы и технологии 
 
в современной робототехнике 
 
 
 
 
231 
5.10.1. Интеллектуальные роботы 
 
 
 
231 
5.10.2. Архитектура интеллектуальных роботов 
 
231 
5.10.3. Технологии искусственного интеллекта  
для интеллектуальных роботов  
 
 
 
232 
5.10.4. Учебные роботы LEGO Mindstorms  
Education EV3  
 
 
 
 
 
 
235 
5.10.5. Нечеткие множества и нечеткая логика 
 
236 
5.10.6. Нечеткие множества  
 
 
 
 
238 
5.10.7. Нечеткая логика 
 
 
 
 
 
241 
5.10.8. Нанороботы 
 
 
 
 
 
 
248 
5.10.9. Роль нанотехнологий при разработке  
интеллектуальных роботов  
 
 
 
 
248 
5.10.10. Обзор научно-исследовательских разработок  
по нанороботам  
 
 
 
 
 
 
251 
Заключение 
 
 
 
 
 
 
 
 
 
257 
Вопросы к главе 5  
 
 
 
 
 
 
 
258 
Библиографический список 
 
 
 
 
 
 
258 
Приложение 1: Задание по теме «Алгоритм Дейкстры» 
 
267 
Приложение 2: Задание по теме «Алгоритм  
Флойда – Уоршелла» 
 
 
 
 
 
 
 
277 
Приложение 3: Задание по теме «Данные дистанционного  
зондирования Земли (ДДЗ) и спектральное представление  
цвета»  
 
 
 
 
 
 
 
 
 
280 
Приложение 4: Задания по теме «Технология распознавания  
психофизиологического состояния человека» 
 
 
 
285 
Приложение 5: Нравственно-этические и правовые требования 
в отношении разработчиков и производителей юнитов  
искусственного интеллекта 
 
 
 
 
 
 
289 
Приложение 6: Задание по теме «Алгоритм кодирования  
Хаффмана» 
 
 
 
 
 
 
 
 
 
297 
 
 
 
 
  

1. 
Принципы построения ПЭВМ 
ПЭВМ (Персональная Электронная Вычислительная Машина) строится 
по принципу соединения составных частей через общую системную 
магистраль. Общая системная магистраль - набор шин, по которым 
передаются 
данные, 
места 
нахождения 
этих 
данных 
(адреса) 
и 
управляющие сигналы.  
Структура универсальной ПЭВМ показана на рисунке 1.1. 
ПЭВМ состоит их следующих блоков: 
● микропроцессор (МП); 
● оперативное запоминающее устройство (ОЗУ); 
● постоянное запоминающее устройство (ПЗУ); 
● сопряжения устройств (контроллеры). 
  

 

Рисунок 1.1 –  Структура универсальной ПЭВМ 
Назначение ПЭВМ - обрабатывать данные по команде пользователя. В 
универсальной ПЭВМ через блоки сопряжения подключаются устройства 
ввода-вывода 
информации: 
дисплеи, 
печатающие 
устройства, 
графопостроители, клавиатуры, устройства внешней памяти для хранения 
программ и данных на магнитных дисках и т. д. 
 
1.1. ВЗАИМОДЕЙСТВИЕ УСТРОЙСТВ ПО СИСТЕМНОЙ МАГИСТРАЛИ 
Рассмотрим процесс взаимодействия между элементами по системной 
магистрали ПЭВМ. 
К системной магистрали подсоединены разные блоки: МП, ОЗУ, ПЗУ, 
порты контроллеров устройств ввода-вывода. 
Для возможности взаимодействия в каждый момент времени к 
системной магистрали подсоединен один ведущий блок, (например МП) и 
один ведомый блок. Блоки ПЭВМ построены на тристабильной логике 
(тристабильные логические микросхемы  - микросхемы, которые могут 
переводить свои выводы в три устойчивых состояния: логического нуля, 
логической единицы и высокоимпедансное).  
Все ведомые блоки имеют уникальные адреса. Ведущий блок всегда 
начинает общение с выдачи на системную магистраль адреса информации 
об адресе. Все ведомые блоки, чей адрес не совпадает с выставленным, 

переводят свои выводы в высокоимпедансное состояние, то есть, 
отключаются. 
Блок, чей адрес совпадает с запросом ведущего блока, выдает на 
магистраль данных содержащиеся по этому адресу данные или принимает 
посланные 
ведущим 
блока. 
Для 
указания 
направления 
обмена 
информацией 
и 
моменты 
приема 
информации 
вырабатываются 
управляющие сигналы. 
Адресные и управляющие сигналы всегда направлены от ведущего 
блока, 
передача 
данных 
может 
быть 
в 
обоих 
направлениях 
(двунаправленная), но есть ведомые блоки, которые только принимают 
информацию. 
Принцип реализации IBM PC AT (первая форма реализации общей 
системной магистрали ПЭВМ) заключается в том, что для всех этих 
сигналов применяют параллельно расположенные проводники. Общую 
системную магистраль разделяют на три части: магистраль адреса, 
магистраль данных и магистраль управления (рис. 1.2). Общее число 
проводников 
магистралей 
определяется 
длинами 
слов 
адреса 
(разрядностью магистрали адреса) и данных (разрядностью магистрали 
данных). 
Принцип реализации IBM PC XT (вторая форма реализации общей 
системной магистрали ПЭВМ) заключается в том, что сигналы адреса и 
данных передаются одни за другими, разделенными по времени 
(мультиплексированная по времени системная магистраль) [1]. 

 

Рисунок 1.2 – Формы организации общей системной магистрали 
Во время выполнения операции записи (передача информации к 
ведомому блока) ведущий блок выставляет адрес и данные. Ведомый блок 
через необходимое для получения адреса и протекания внутренних 
процессов время (время обращения) принимает информацию с магистрали 
данных. 
 

1.2. ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР 
Устройство центрального процессора показано на рисунке 1.3. Тракт 
данных состоит из регистров (обычно от 1 до 32), арифметико-логического 
устройства (АЛУ) и нескольких соединительных шин. Содержимое 
регистров поступает во входные регистры АЛУ, которые на рисунке 1.3 
обозначены буквами А и В. В них находятся входные данные АЛУ, пока 
АЛУ проводит вычисления [2]. 
АЛУ выполняет сложение, вычитание и другие простые операции над 
входными данными и помещает результат в выходной регистр. 
Содержимое этого выходного регистра может записываться обратно в один 
из регистров или сохраняться в памяти, если это необходимо. Не во всех 
архитектурах есть регистры А, В и выходные регистры. На рисунке 1.3 
представлена операция сложения, но АЛУ может выполнять и другие 
операции. 
Команды можно разделить на две группы: команды типа регистр-память 
и типа регистр-регистр. 

 

 

Рисунок 1.3 – Устройство центрального процессора 

Команды первого типа вызывают слова из памяти, помещают их в 
регистры, где они используются в качестве входных данных АЛУ.  
Слова – это такие элементы данных, которые перемещаются между 
памятью и регистрами, размер слова обычно соответствует разрядности 
регистра данных. Так, у 16-разрядных микропроцессоров 8086 и 8088 слово 
имеет длину 16 бит, у 32-разрядных микропроцессоров – 32 бита, а у 64разрядных микропроцессоров – 64 бита. Словом может быть целое число.  
Другие команды этого типа помещают регистры обратно в память. 
Команды второго типа вызывают два операнда из регистров, помещают 
их во входные регистры АЛУ, выполняют над ними какую-нибудь 
арифметическую или логическую операцию и переносят результат обратно 
в один из регистров.  
Этот процесс называют циклом тракта данных. В какой-то степени он 
определяет, что может делать машина. Современные компьютеры 
оснащаются 
несколькими 
АЛУ, 
работающими 
параллельно 
и 
специализирующимися на разных функциях. Чем быстрее происходит цикл 
тракта данных, тем быстрее компьютер работает. 
Выполнение команд 
Центральный процессор выполняет каждую команду за несколько шагов. 
Он делает следующее: 
Шаг 1. Вызывает очередную команду из памяти и помещает ее в регистр 
команд. 
Шаг 2. После декодирования текущей команды (иногда и после её 
выполнения) меняет положение счетчика команд, который после этого 
указывает на следующую команду. 
Шаг 3. Определяет тип вызванной команды. 
Шаг 4. Если команда использует слово из памяти, определяет, где 
находится это слово. 
Шаг 5. Помещает слово, если это необходимо, в регистр центрального 
процессора (бывают команды, которые требуют загрузки из памяти целого 
множества слов и их обработки в рамках единственной команды). 
Шаг 6. Выполняет команду. 
Шаг 7. Переходит к Шагу 1, чтобы начать выполнение следующей 
команды. 
Такая 
последовательность 
шагов 
(выборка 
– 
декодирование 
– 
исполнение) является основой работы всех компьютеров. 
Описание работы центрального процессора можно представить в виде 
программы. В листинге 1.1 приведена такая программа-интерпретатор на 
языке Java. В описываемом компьютере есть два регистра: счетчик команд 
(РС) с адресом предыдущей команды и аккумулятор (АС), в котором 
хранятся результаты арифметических операций. Кроме того, имеются 
внутренние регистры, в которых хранится текущая команда (instr), тип 
текущей команды (instr_type), адрес операнда команды (data_loc) и сам 
операнд (data). Каждая команда содержит один адрес ячейки памяти. В 

ячейке памяти хранится операнд – например, фрагмент данных, который 
нужно добавить в аккумулятор. 
 

Листинг 1.1. Интерпретатор для простого компьютера (на языке Jawa) 

Public class Interp{ 
   static int PC;            //PC содержит адрес следующей команды 
   static int AC;            //Аккумулятор, регистр для арифметики 
   static int instr;          //Регистр для текущей команды 
   static int instr_type;  //Тип команды (код операции) 
   static int data_loc;     //Адрес данных или -1, если его нет 
   static int data;           // Текущий операнд 
   static boolean run_bit = true;  //Бит, который можно сбросить, 
 
 
 
 
 
      //чтобы остановить машину 
   public static void interpret(int memory[], int starting_address{ 
//эта процедура интерпретирует программы для простой машины, 
//которая содержит команды только с одним операндом из 
//памяти. Машина имеет регистр АС (аккумулятор). Он 
//используется для арифметичесих действий – например, 
//команда ADD суммирует число из памяти с АС. Интерпретатор 
//работает до тех пор, пока не будет выполнена команда 
//HALT, вследствие чего бит run_bit поменяет значение на 
//false. Машина состоит из блока памяти, счетчика команд, бита 
//run bit и аккумулятора АС. Входные параметры представляют собой 
//копию содержимого памяти и начальный адрес. 
 
   PC-starting_address; 
   while (run_bit) { 
        instr = memoru[PC]; //вызывает следующую команду в instr 
        PC = PC+1;               //Увеличивает значение счетчика команд 
        instr_type = get_instr_type(instr); //определяет тип команды 
        data_loc = find_data(instr, instr_type); //находит данные (-1, 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
         //если данных нет) 
        if(data_loc>=0) //Если data_loc=-1, значит операнда нет 
        data=memory[data_loc];//вызов данных 
        rxecute(instr_type,data);//выполнение команды 
                             } 
                      } 
  private static int get_instr_type(int addr){…} 
  private static int find_data(int instr, int type){…} 
  private static void execute(int type, int data){…} 
} 

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

К концу 50-х годов компания IBM, которая лидировала тогда на 
компьютерном рынке, решила, что производство семейства компьютеров, 
каждый из которых выполняет одни и те же команды, выгоднее и для 
самой компании, и для покупателей. Чтобы охарактеризовать этот уровень 
совместимости, компания IBM ввела термин архитектура. Новое 
семейство компьютеров должно было иметь единую архитектуру и много 
разных моделей, отличающихся по цене и скорости, но «умеющих» 
выполнять одни и те же программы. Но как построить дешевый компьютер, 
который сможет выполнять все сложные команды, предназначенные для 
высокоэффективных дорогостоящих машин? 
Решением проблемы стала интерпретация. Эта технология, впервые 
предложенная Уилксом в 1951 году, позволяла разрабатывать простые 
дешевые компьютеры, которые, тем не менее, могли выполнять болшое 
количество команд. В результате компания IBM создала архитектуру System/360, семейство совместимых компьютеров, различающееся по цене и 
производительности почти на три порядка. Аппаратное обеспечение, 
позволяющее работать без интерпретации, использовалось только в самых 
дорогих моделях. 
Простые 
компьютеры 
с 
интерпретаторами 
команд 
имели 
свои 
достоинства. Наиболее важными среди них являлись: 
- возможность исправлять неправильно реализованные команды «на 
месте» или даже компенсировать ошибки аппаратного обеспечения на 
уровне аппаратного обеспечения; 
- возможность добавлять новые команды при минимальных затратах, 
причем при необходимости уже после покупки компьютера; 
- возможность (благодаря структурированной организации) разработки, 
проверки и документирования сложных команд. 
В 70-е годы компьютерный рынок быстро разрастался, новые 
компьютеры могли выполнять все больше и больше функций. Вследствие 
повышенного спроса на дешевые компьютеры предпочтение отдавалось 
компьютерам с интерпретаторами. Возможность разрабатывать аппаратное 
обеспечение с интерпретатором для определенного набора команд привела 
к появлению дешевых процессоров. Полупроводниковые технологии 
быстро развивались, низкая стоимость брала верх над высокой 
производительностью, 
и 
интерпретаторы 
стали 
применяться 
при 
разработке компьютеров все шире и шире. Интерпретация использовалась 
практически во всех компьютерах, выпущенных в 70-е годы, от мини 
компьютеров до самых больших машин. 
К концу 70-х годов интерпретаторы стали применяться практически во 
всех 
моделях, 
кроме 
самых 
дорогих 
машин 
с 
очень 
высокой 
производительностью (например, Cray-1 и компьютеров серии Control Data 
Cyber). Интерпретаторы обеспечивали реализацию сложных команд без 
использования дорогостоящей аппаратуры, поэтому разработчики могли 

вводить все более и более сложные команды, а также (и даже в 
особенности) расширять способы определения операндов. 
Эта 
тенденция 
достигла 
своего 
апогея 
в 
компьютере 
VAX, 
разработанном компанией DEC; у него было несколько сот команд и более 
200 способов определения операндов в каждой команде. К несчастью, 
архитектура VAX с самого начала ориентировалась на интерпретацию, а 
производительности уделялось мало внимания. Это привело к появлению 
большого количества второстепенных команд, которые сложно было 
выполнять непосредственно. Данное упущение стало фатальным как для 
VAX, так и для его производителя (компании DEC). Компания Compaq 
купила DEC в 1998 году (правда, тремя годами позже сама компания Compaq вошла в структуру Hewlett-Packard). 
Хотя самые первые 8-разрядные микропроцессоры были очень простыми 
и поддерживали небольшой набор команд, к концу 70-х годов даже они 
стали разрабатываться с ориентацией на интерпретаторы. В этот период 
основной проблемой для разработчиков стала возрастающая сложность 
микропроцессоров. Главное преимущество интерпретации заключалось в 
том, что можно было разработать очень простой процессор, а все самое 
сложное реализовать с помощью интерпретатора. Таким образом, вместо 
разработки сложной аппаратуры требовалась разработка сложного 
программного обеспечения. 
Успех системы Motorola 68000 с большим набором интерпретируемых 
команд и одновременный провал компьютера Zilog Z8000, у которого был 
столь же обширный набор команд, но не было интерпретатора, 
продемонстрировали все преимущества интерпретации при разработке 
новых машин. Этот успех был довольно неожиданным, учитывая, что 
компьютер Z80 (предшественник Zilog Z8000) пользовался большей 
популярностью, чем Motorola 6800 (предшественник Motorola 68000). 
Конечно, важную роль сдесь сыграли и другие факторы – например то, что 
компания Motorola много лет занималась производством микросхем, а 
торговая марка Zilog принадлежала Exxon – крупной нефтяной компании. 
Еще 
один 
фактор 
в 
пользу 
интерпретации 
– 
существование 
быстродействующих постоянных запоминающих устройств для хранения 
интерпретаторов (так называемых командных ПЗУ). Предположим, что для 
выполнения 
обычной 
интерпретируемой 
команды 
интерпретатору 
компьютера Motorola 68000 нужно выполнить 10 команд (они называются 
микрокомандами), по 100 нс на каждую, и произвести два обращения к 
оперативной памяти, по 500 нс на каждое. Общее время выполнения 
команды составит, следовательно, 2000 нс – всего лишь в два раза больше, 
чем в лучшем случае заняло бы непосредственное выполнение этой 
команды без интерпретации. А если бы не было специального 
быстродействующего 
постоянного 
запоминающего 
устройства, 
выполнение этой команды заняло бы целых 6000 нс. Шестикратное 
возрастание времени выполнения вынести намного сложнее. 

Доступ онлайн
от 324 ₽
В корзину