Главная -> Книги

(0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (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) (119)

с объектом ассоциируется набор базовых операций, которые непосредственно манипулируют структурой данных (контроль допустимости операций реализован аппаратно); к объекту можно обращаться (адресовать объект) как к неделимой сущности; объект имеет метку, идентифицирующую его тнп.

Таким образом, объект представляет собой структуру данных произвольной сложности, которая необязательно должна находиться в одной (неразрывной) области памяти. Объект может занимать один сегмент памяти, несколько сегментов или часть сегмента. Понятие объекта относится к логической структуре, показывающей, каким образом используется память.

Для понимания программы необходимо рассмотреть программную структуру, представляющую собой цепочку связанных объектов. Первым элементом этой цепочки является процессор, который выбирает и выполняет команды, хотя физический процессор, разумеется, не является объектом. Однако с ним ассоциируется объект-процессор, который представляет собой структуру данных в памяти, содержащей такую информацию о процессоре, как его состояние (работает или остановлен), диагностическую информацию и требующиеся ему обращения к другим объектам. Объект-процессор размещается в любой области памяти, и его при необходимости можно перемещать.

Следующим элементом в программной цепочке является процесс, представляющий собой запрограммированные действия, которые можно запланировать для автономного выполнения их процессором. Объект-процесс представляет собой структуру данных в памяти, содержащую информацию о конкретном процессе: каким образом необходимо планировать процесс, каково состояние процесса и др. Объект-процессор содержит объект-обращение Для текущего объекта-процесса, выполняемого процессором. Объектно-ориентированные механизмы адресации и защиты не разрешают процессору доступ к объекту, если процессор не имеет объекта-обращения для этого объекта. Объект-обращение от объекта-процессора к объекту-процессу не является постоянным, а изменяется, когда происходит переключение процессора с одного процесса на другой.

Очередным элементом в программной цепочке служит процедура - набор команд для выполнения определенной операции, например вычисления синуса угла. При вызове процедуры ей передаются параметры, она выполняет операцию и возвращает результат в вызквающую процедуру. В системе может быть несколько процессов, выполняющих одну и ту же операцию, и потребуется разделять процедуру между процессами. Система реализует разделение, выделяя каждому процессу копию процедуры, называемую контекстом. Контексты не обязательно дублируют всю информацию, например команды могут использовать несколько процессов.

Объект-коитекст представляет собой аппаратно-распознаваемую структуру данных, содержащую следующую информацию о конкретной копии процедуры: указатель команд для конкретного контекста; указатель стека для стека контекста, информацию о возврате в вызывающий контекст, обращения ко всем объектам, к которым контексту разрешен доступ.

Полный список объектов, к которым процедуре разрешены обращения, называется ее средой доступа. Когда одна процедура вызывает другую, среда доступа изменяется, так как вызванная процедура имеет другой контекст.

Последний элемент в программной цепочке связан с выборкой и исполнением команд, т. е. с программной обработкой данных. Следб-




Рис. 8-18. Структура программы системы iAPX-432

вательно, контекст должен обеспечивать доступ к объектам, содержащим команды н данные. Объект-команда содержит только команды и представляет собой единственный тип объектов, который процессор использует как источник команд, подлежащих выборке и выполнению. Объект-данные содержит такие элементы, как целые, символы, действительные числа, таблицы или комбинации примитивных типов данных. Благодаря такому разделению команд и данных процессор не может ошибочно выбрать и выполнить объекты, отличающиеся от объектов-команд.

Полная структура программы показана на рнс. 8-18. Отметим, что объект-контекст содержит обращение ко всем объектам-командам и объектам-данным, которые будет обрабатывать данная копия процедуры. Приведенная структура не является статической, а динамически изменяется по мере того, как программа выполняет различные процессы, процесс создает различные контексты, а контекст создает и уничтожает объекты-данные.

Системным языком программирования является язык «Ада», который, как полагают, объединяет простоту языка «Паскаль» и возможности, необходимые для многофункциональных программных систем. Язык «Ада» непосредственно реализует объектно-ориентированное программирование и, по существу, является ассемблером системы iAPX-432.

Вспомогательные схемы. За последнее время появилось очень много БИС, предназначенных для разгрузки центрального процессора от узкоспециализированных операций. По-видимому, тенденция разработки специализированных БИС сохранится и в будущем. Наиболее широкую группу составляют схемы управления операциями ввода-вывода и периферийными устройствами. В нее входят такие БИС, как контроллеры накопителей на гибком диске, контроллеры символьных и графических дисплеев, устройства шифрования данных, анализаторы и синтезаторы речи, аналоговые микропроцессоры и др. Каждая БИС по своей сложности и архитектуре приближается к специализированной ЭВМ и имеет иа кристалле тысячи и десятки тысяч транзисторов.

Логическим развитием этих БИС являются специализированные процесчеРЫ», предназначенные для увеличения производительности системы и расширения системы команд центрального процессора. Наиболее

23-808



Процессор 8086 RQ/GT QST TEST

RQ/GT QST BUSY Пооцессор 8087

Локальная шина

Прогрэмглная память

Шинный интерфейс

Оперативная память

Системная шина

Средства ВВ

Рис. 8-19. Организация математического сопроцессора

примечательны в этом отношении процессоры ввода-вывода и так называемые математические процессоры, орненйрованные иа сложные операции в формате с плавающей запятой. Типичным примером математических процессоров служит микросхема 8087 фирмы Intel с плотностью упаковки 65 000 транзисторов. По сравнению с прстраммной реализацией операций в формате с плавающей запятой эта БИС увеличивает производительность примерно в 100 раз.

Программная модель процессора содержит стек из восьми 80-битных регистров данных, допускающий также прямую адресацию всех регистров, регистры управления и состояния, а также регист-ры адресов команд и данных. Регистры данных хранят числа с 15-битной характеристикой и 64-битной мантиссой, что обеспечивает диапазон представи-мых" чисел ±10***"". Система команд охватывает все арифметические операции, извлечение квадратного корня, тригонометрнческие функции и др.

Процессор 8087 спроектирован для работы с процессором 8086 в качестве сопроцессора, расширяющего вычислительные возможности центрального процессора. Организация сопроцессоров является частным случаем мультипрограммирования, когда оба процессора выполняют команды одной программы. Оба процессора работают синхронно, и каждый выполняет свои команды, встречающиеся в программе (рис. 8-19).

Процессор 8086 осуществляет сегментацию памяти, вычисляет адреса операндов, а процессор 8087 выполняет сложные математические операции, которые иначе прншлось бы реализовать программно. Когда процессор 8086 встречает команду ESC, идентифицирующую операцию для процессора 8087, он вычисляет адрес операнда н выдает его на разделенную локальную шину. Процессор 8087 фиксирует адрес, считывает операнд и начинает выполнять операцию. Он управляет шиной только при необходимости загрузки и запоминания данных.

Управляющая линия запроса/подтверждения RQ/GT используется процессором 8087 для передачи управлений локальной шине npii обмене данными. Линия QST состоянии очереди используется для синхронизации выборки и дешифрации команд. Сигнал занятости BUSY идентифицирует состояние процессора 8087, и процессор 8086 с помощью команды ожидания WAIT проверяет, когда процессор 8087 готов выполнить следующую команду.

Программирование комбинации двух процессоров аналогично программированию одного процессора 8086. С точки зрения пользователи добавляется 68 новых команд и 7 типов данных. -nmooi



(0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (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)