Текст
                    -А. МАЙОРОВ • Г. И. НОВИКОВ
z i*
СТРУКТУРА
ЭЛЕКТРОННЫХ
ВЫЧИСЛИТЕЛЬНЫХ
МАШИН


С. А. МАЙОРОВ, Г. И. НОВИКОВ СТРУКТУРА ЭЛЕКТРОННЫХ ВЫЧИСЛИТЕЛЬНЫХ МАШИН Второе издание переработанное и дополненное ЛЕНИНГРАД «МАШИНОСТРОЕНИЕ» ЛЕНИНГРАДСКОЕ ОТДЕЛЕНИЕ 1979
ББК 32.973 М14^ УДЙ4б81.32 Майоров С. А., Новиков Г. И. М14 Структура электронных вычислительных машин. —Л.: Машиностроение. Ленингр. отд-ние, 1979. — 384с., ил. 1 р. 60 к. В книге изложены принципы построения и методы схемотехнического проек- тирования ЭВМ и устройств цифровой вычислительной техники. В ней описаны структуры ЭВМ общего назначения, мини- и микро-ЭВМ; рассмотрены методы проектирования структурных и функциональных схем процессоров, каналов ввода — вывода и средств управления внешними устройствами, методы синтеза операционных и управляющих автоматов. Во втором издании (1-е изд. вышло в 1970 г. под названием «Структура циф- ровых вычислительных машин») изложен функциональный подход к проектиро- ванию структур ЭВМ, а также описаны новые принципы построения схем управ- ления и обработки информации. Книга предназначена для инженерно-технических работников, занимаю- щихся проектированием и эксплуатацией ЭВМ и систем на их основе. „ 30502—50 2405000000 М 038(01 )-=79~5° ~79 ББК 32.973 6Ф7.3 © Издательство «Машиностроение», 1979 г.
Памяти Ф. Г. Староса посвящается ПРЕДИСЛОВИЕ Вычислительная техника играет значительную роль в научно- техническом прогрессе нашей страны, способствуя повышению эффективности общественного производства, улучшению качества продукции, росту производительности труда. С каждым годом увеличиваются масштабы применения электронных вычислитель- ных машин (ЭВМ) во всех отраслях народного хозяйства, в связи с чем возрастают требования к характеристикам ЭВМ и, следова- тельно, к принципам их построения и проектирования. Цель этой книги, как и ее первого издания, — изложить основ- ные принципы построения и проектирования схем ЭВМ. Однако это издание значительно отличается от предыдущего в следующих аспектах. В основу методики изложения положен принцип первичности функций в отношении структур, из которого следует, что струк- тура ЭВМ, т. е. конфигурация схем, предопределяется функцией (назначением) ЭВМ. Этот принцип предопределил порядок изло- жения материала в книге. В отличие от традиционного подхода, когда принципы построения и проектирования ЭВМ начинают рассматриваться от элементов и заканчиваются описанием ЭВМ как целого, материал излагается в обратном порядке: сначала выявляются функции ЭВМ, которые затем детализируются до отдельных устройств, узлов и, наконец, до элементов. Такой порядок изложения представляется наиболее результативным, поскольку, во-первых, совпадает с порядком проектирования ЭВМ и, во-вторых, упрощает изучение основ вычислительной техники, так как в этом случае каждое схемотехническое решение воспринимается как необходимое, предопределенное предыдущими решениями. Для унификации многочисленных структурных решений, при- меняемых в инженерной практике, используются понятия опе- рационного устройства и интерфейса. Эти понятия вводятся на функциональном уровне и соответствуют преобразователю ди- скретной информации с произвольной функцией и алгоритму обмена информаций между устройствами. Столь широкое толко- вание указанных понятий создает основу для построения мето- дики проектирования разнообразных операционных устройств, в частности процессоров, каналов ввода—вывода и контроллеров внешних устройств ЭВМ. В основу проектирования операционных устройств различного назначения положен принцип функционального микропрограм 1* 3
мирования и представления устройства как композиции опера- ционного и управляющего автоматов. При этом содержание тер- мина микропрограммирование расширено по сравнению с тради- ционным. В этой книге микропрограммирование понимается как способ описания функций операционных устройств безотноси- тельно к техническим средствам, используемым для их реализации. Такое толкование микропрограммирования позволяет формали- зовать синтез структур любых операционных устройств независимо от способа управления работой устройства. Наиболее детально описываются принципы структурной организации операционных автоматов, формализованные методы синтеза которых только начинают разрабатываться. Следует отметить, что ^принципы построения и методы проектирования операционных и управля- ющих автоматов являются той основой, на которой базируется теория и практика проектирования большей части устройств ЭВМ. В инженерной практике используется широкая номенклатура устройств, каждое из которых может быть реализовано большим числом способов. Естественно, что в рамках книги, затрагивающей обширный круг вопросов вычислительной техники, невозможно даже перечислить все многообразие способов построения ЭВМ и устройств. По этой причине основное внимание уделялось изло- жению общих принципов и основополагающих вариантов схем, а частные случаи использовались только для их иллюстрации. Авторы стремились излагать материал в наиболее доступной форме и поэтому намеренно опускали из рассмотрения отдельные детали, которые могут оказаться в какой-то степени существен- ными при практическом применении описываемых схем и методов. Предполагается, что читатель знаком с двоичной арифметикой, булевой алгеброй, основами теории автоматов (переключательных схем) и программирования. Авторы глубоко благодарны всем, кто прислал свои замечания по первому изданию книги, и с признательностью примут новые отзывы и замечания, которые просим направлять в адрес Ленин- градского отделения издательства «Машиностроение».
ВВЕДЕНИЕ Методы описания и проектирования столь сложных объектов, какими являются ЭВМ, базируются па основополагающих прин- ципах, сформулированных в общей теории систем [47]. Поэтому, прежде чем приступить к изложению способов построения и ме- тодов проектирования ЭВМ, раскроем смысл основных понятий и принципов, которые относятся к общей теории систем и широко используются для ЭВМ. Функция, структура и организация систем. Система — это совокупность элементов, объединенных в одно целое для дости- жения определенной цели. При этом под целью понимается мно- жество результатов, определяемых назначением системы. ЭВМ в смысле указанного определения является системой, предназна- ченной для автоматизации вычислений на основе алгоритмов. Дополнительно отметим, что понятие система приложимо как к ЭВМ в целом, так и к отдельным частям ЭВМ, например к устрой- ствам ЭВМ. И в дальнейшем будем пользоваться термином система в качестве эквивалента фразы «ЭВМ или отдельное устройство», считая, что все утверждения о системах в равной степени отно- сятся и к ЭВМ, и устройствам ЭВМ. Чтобы описать систему, необходимо определить функцию системы и структуру системы. Функция системы. — правило получения результатов, опре- деляемых назначением системы. Иначе говоря, функция системы — это описание процессов, которые имеют место в системе. Функции систем стремятся описывать в математической форме ввиду ее компактности и четкости. Наряду с этим, для описания функций широко используется и словесная форма, которая, впрочем, является далеко не худшим способом выражения существа вещей. Функции ЭВМ чаще всего описываются в форме алго- ритмов. Структура системы—фиксированная совокупность элемен- тов и связей между ними. Структура наглядно изображает, как устроена система — из каких частей она состоит и как эти части связаны друг с другом. Математической, а в этом смысле наиболее абстрактной и универсальной, формой изображения структуры является граф. Граф есть совокупность вершин и дуг (ребер), представляющих однонаправленные (соответственно двунаправ- ленные) связи между вершинами. Вершины графа отождеств- ляются с элементами (минимальными частями) системы, а дуги и ребра графа — со связями между соответствующими элементами. 5
Инженерная форма отображения структуры —схема. Схема и граф тождественны по своему содержанию и различаются лишь по форме. В схемах для обозначения элементов используются различные геометрические фигуры, разнообразие форм которых облегчает чтение схем. Система описана, если заданы ее функция и структура. Функ- ция определяет порядок процессов в системе, а структура — состав и взаимосвязь частей (элементов), из которых состоит система. Системам присуще следующее качество. Свойства совокуп- ности элементов, объединенных в одну систему, не являются про- стой суммой свойств элементов, а имеют новое качество, отсут- ствующее в элементах. Например, в совокупности электронных элементов (транзисторов, резисторов и т. п.), определенным об- разом соединенных между собой, появляется эффект, который отождествляется с операциями математической логики, т. е. сово- купность электрических элементов превращается в систему, функ- ции которой описываются не законами электротехники, а зако- нами математической логики. Такого рода система из электронных элементов приобретает новое свойство и становится логическим элементом. В свою очередь, объединение логических элементов, каждый из которых реализует логическую операцию, приводит к схеме, которая обладает свойством складывать числа. Принцип (способ), по которому объединение элементов приводит к появле- нию новых свойств, отличных от свойств элементов, называется принципом организации. Другими словами, организация—это способ аранжировки с целью осуществления определенных функ- ций в системах, состоящих из большого числа элементов. Организация — понятие более высокого ранга, чем функция и структура. Конкретный принцип организации—это способ построения различных систем, обладающих одинаковыми свой- ствами, т. е. один принцип организации, применяемый к различ- ным случаям, приводит к системам с различными функциями и структурами. Так что функция и структура — это конкретизация принципа организации, всего лишь один вариант организации. В свою очередь, различные принципы организации приводят к системам, различающимся своими функциями и структурами, но тождественным по своим свойствам, своему назначению. Когда речь идет о принципе порождения функций, необходи- мых и достаточных для обеспечения определенных свойств систем, пользуются термином функциональная организация. Функцио- нальная организация — это принципы построения абстрактных систем, заданных своими функциями. Об абстрактной системе известно только ее назначение и не известно, как она устроена, из каких элементов состоит, т. е. абстрактная система—это лишь описание, существующее на бумаге. Когда речь идет о прин- ципе порождения структур, необходимых и достаточных для реа- лизации заданных функций, используется термин структурная организация. Структурная организация — это принципы перевода 6
абстрактных систем, заданных в виде функций, в материальные системы, состоящие из физически существующих элементов. Проектирование систем — ЭВМ и составляющих их устройств — базируется на определенных принципах организации систем с требуемыми свойствами: автоматически выполнять вычисления, хранить информацию, выполнять арифметические операции и т. д. Эти принципы изобретаются людьми и используются всякий раз, когда необходимо создать систему с заданными свойствами. Принцип иерархии в сложных системах. Существенной особен- ностью ЭВМ является сложность. Сложность —это свойство си- стем, состоящих из большого числа элементов. Для сложных систем характерно, что функция, реализуемая системой, не может быть представлена как композиция функций, реализуемых наи- меньшими элементами системы. Так, порядок функционирования ЭВМ невозможно рассмотреть с точки зрения лишь электрических процессов, происходящих в цепях ЭВМ. Функции ЭВМ выяв- ляются только в том случае, если процессы в ЭВМ рассматриваются в информационном и алгоритмическом аспекте. Это объясняется эффектом организации, порождающим в совокупностях элементов новые свойства: в совокупности электронных элементов ЭВМ — свойство выполнять логические операции над значениями «ложь» и «истина»; в совокупности логических элементов — свойство складывать или сравнивать числа; в совокупности устройств — свойство реализовать вычисления на основе алгоритма. Сказанное свидетельствует об органической потребности в использовании нескольких форм описания функции и структуры системы — иерархии функций и структур. Иерархический подход к описанию сложных систем предпо- лагает, что на высшем уровне иерархии система рассматривается как один элемент, имеющий входы и выходы для связи с внешними объектами. В этом случае функция системы не может быть задана подробно и представляется как отображение состояний входов на состояния выходов системы. Чтобы раскрыть устройство и по- рядок функционирования системы, глобальная функция и сама система разделяются на части — функции и структурные элементы следующего, более низкого уровня иерархии. В свою очередь, эти части опять детализируются, и так до тех пор, пока функция и структура системы не будут раскрыты полностью, с необходимой степенью подробности. Становится очевидным, что элемент — это прежде всего удоб- ное понятие, а не физическое свойство. То, что элементарно на одном уровне рассмотрения процессов и структуры системы, ока- зывается разложимым на совокупность объектов — элементов низшего уровня, взаимосвязь которых порождает определенные свойства в элементах высшего уровня иерархии. Таким образом, любая сложная система содержит в себе иерар- хию процессов и элементов, наличие которой приводит к необ- ходимости использовать иерархию функций и структур для 7
описания того, как устроена и работает система. Нижележащий уровень иерархии раскрывает сущность процессов и устройство элементов, относящихся к более высокому уровню. Стратегия проектирования сложных систем. Устройство и по- рядок функционирования систем, в том числе и ЭВМ, предопре- деляются, с одной стороны, назначением системы, а с другой сто- роны, — элементной базой, «материалом», из которого строится система. Отсюда следует, что система должна проектироваться исходя из ее назначения с учетом свойств материальной базы, существующей на момент проектирования или потенциально воз- можной. Наиболее естественным представляется следующий подход к проектированию систем. Пусть назначение системы задается в виде функции F. Исходя из содержания и свойств функции F, можно определить номенклатуру элементов, пригодную для создания системы. Когда номенклатура элементов определена, становится известной номенклатура функций фх, ..., фд,, реали- зуемых элементами. Заметим, что функция системы F относится к верхнему уровню иерархии, и, следовательно, она описана в базисе операций, отличных от операций, которые используются в функциях q?!, ..., фЛ, относящихся к более низкому уровню опи- сания системы. Функции элементов фъ ..., фд, более просты, чем функция системы F. По этой причине, чтобы выявить структуру S, реализующую функцию F, необходимо путем формальных пре- образований построить эквивалентную F функцию Ф, представ- ленную в виде композиции функций ф1( ..., фЛ>. Этим самым функ- ция F будет детализирована до элементарных функций фъ ..., фЛ., для реализации каждой из которых имеется определенный струк- турный элемент. Местоположение функций фх, ..., фд, в записи функции Ф предопределяет места соответствующих элементов в структуре. Поэтому функцию Ф можно использовать в качестве формы для построения структуры S, состоящей из элементов типа Фх, ..., фд, и реализующей заданную функцию Ф = F, т. е. функ- цию системы. Если система сложная, указанная процедура повто- ряется по отношению к каждой из функций фх, ..., фд,, реализуе- мых элементами структуры S. В результате этого будет выявлена структура элементов верхнего уровня иерархии и т. д. Описанный подход к проектированию систем базируется на предположении о доминирующей роли функций в отношении структур. Это означает, что функции первичны, а структуры, их реализующие, вторичны, т. е. функция предопределяет струк- туру. Как следствие доминирующей роли функций, структуры системы, определенные для верхних уровней иерархии, играют преобладающую роль в отношении структур низших уровней, т. е. состав элементов и связей в структурах верхних уровней пре- допределяет состав элементов и связей в структурах низших уровней. Из сказанного следует, что системы должны проекти- роваться по принципу «сверху—вниз» — от верхнего уровня 8
представления функций и структур к нижнему. Подход к проек- тированию систем, основанный на признании доминирующей роли функций в отношении структур, можно назвать функцио- нальным подходом. Способы преобразования функций, присущих верхнему уровню иерархии, в функции, соответствующие нижнему уровню, а также способы порождения структур по заданным функциям являются следствием определенных принципов функциональной и струк- турной организации систем. Эти способы порой удается формали- зовать и тем самым упростить процесс проектирования, а когда формальные методы отсутствуют, приходится прибегать к нефор- мальным методам синтеза систем, которые в таких случаях носят характер инженерной импровизации.
Глава 1 ПРИНЦИПЫ ПОСТРОЕНИЯ И ФУНКЦИОНИРОВАНИЯ ЭВМ 1.1. Основные факторы, влияющие на принципы построения ЭВМ ЭВМ —это искусственная (инженерная) система, предназна- ченная для выполнения вычислений на основе алгоритмов. Прин- ципы построения ЭВМ определяются, с одной стороны, назначе- нием ЭВМ и, с другой стороны, элементной базой — набором элементов, который может быть использован для создания ЭВМ. Назначение ЭВМ — выполнение вычислений на основе алгорит- мов, и поэтому свойства алгоритмов предопределяют принципы построения ЭВМ — организацию ЭВМ. К числу важнейших свойств алгоритмов, наиболее существенно влияющих на организацию ЭВМ, относятся: 1) дискретность информации, с которой оперируют алгоритмы; 2) конечность и элементарность набора операций, выполняемых при реализации алгоритмов; 3) детерминированность вычислительных процессов, порождаемых алгоритмами. Перечисленные свойства алгоритмов обусловливают необходимость представления информации в ди- скретной (числовой, символьной) форме, реализации в ЭВМ огра- ниченного числа достаточно простых операций и использова- ния алгоритмов как источника управления процессом вычис- лений. Характеризуя назначение ЭВМ, указывают не только класс алгоритмов (задач), выполнение которых является функцией ЭВМ, но и требования к производительности и надежности ЭВМ. Производительность определяется числом задач, решаемых ЭВМ в единицу времени, и для достижения требуемой производитель- ности ЭВМ приходится наделять специальными функциями, обес- печивающими, например, параллельную обработку нескольких задач. Таким образом, существенное влияние на организацию ЭВМ оказывают не только свойства алгоритмов, но и требования к производительности — времени выполнения алгоритмов. То же самое можно сказать и о влиянии надежности на функциональную организацию ЭВМ. Влияние элементной базы на принципы построения ЭВМ сво- дится, в основном, к следующему. Оказывается, что конструкция ЭВМ предельно упрощается и ЭВМ работает наиболее надежно (устойчиво), если сигналы, циркулирующие в электронных схе- мах ЭВМ, используются для представления только двух значе- ний — 0 и 1. Таким образом, свойства электронных элементов заставляют представлять информацию, с которой оперирует ЭВМ, исключительно в двоично-кодированной форме — в виде последо- вательностей из нулей и единиц. Столь же существенное влияние 10
па принципы построения ЭВМ оказывает специфика средств, используемых для организации машинной памяти, а также для ввода в ЭВМ и вывода информации. 1.2. Принцип программного управления Современные ЭВМ строятся на одном принципе — принципе программного управления. В основе этого принципа лежит пред- ставление алгоритма в форме операторной схемы, которая задает правило вычислений как композицию операторов (операций над информацией) двух типов: операторов, обеспечивающих преобра- зование информации, и операторов, анализирующих информацию с целью определения порядка выполнения операторов. Принцип программного управления может быть реализован в ЭВМ многими способами. Один из способов реализации программного управле- ния был предложен в 1945 г. Дж. фон Нейманом [12], и с тех пор неймановский принцип программного управления исполь- зуется в качестве основного принципа построения всех современ- ных ЭВМ. Неймановский принцип программного управления. Этот прин- цип состоит в следующем. 1. Информация кодируется в двоичной форме и разделяется на единицы (элементы) информации, называемые словами. 2. Разнотипные слова информации различаются по способу использования, но не способами кодирования. 3. Слова информации размещаются в ячейках памяти машины и идентифицируются номерами ячеек, называемыми адресами слов. 4. Алгоритм представляется в форме последовательности упра- вляющих слов, которые определяют наименование операции и слова информации, участвующие в операции, и называются ко- мандами. Алгоритм, представленный в терминах машинных команд, называется программой. 5. Выполнение вычислений, предписанных алгоритмом, сво- дится к последовательному выполнению команд в порядке, одно- значно определяемом программой. Прокомментируем происхождение и содержание перечислен- ных пунктов принципа программного управления. Использование в ЭВМ двоичных кодов продиктовано, как уже отмечалось, спецификой электронных схем, применяемых для передачи, хранения и преобразования информации. Совокупности нулей и единиц (битов информации), используемые для представ- ления отдельных чисел, команд и т. п., рассматриваются как самостоятельные информационные объекты и называются словами. Слово обрабатывается в ЭВМ как одно целое — как машинный элемент информации. Во втором пункте утверждается, что нет необходимости в сред- ств ах, позволяющих различать разнотипные слова информации. 11
Поэтому все слова, представляющие числа, команды и прочие объекты, выглядят в ЭВМ совершенно одинаково и сами по себе неразличимы. Только порядок использования слов в программе вносит различия в слова. Благодаря такому «однообразию» слов оказывается возможным использовать одни и те же операции для обработки слов различной природы, например для обработки и чисел, и команд. Так что команды программы становятся в та- кой же степени доступными для отработки, как и числа, а это приводит к интересным возможностям. Третий пункт принципа программного управления фиксирует специфику хранения и идентификации (обозначения) информации, порождаемую свойствами машинной памяти. Дело в том, что ныне машинная память не имеет ничего общего с памятью, существу- ющей в живой природе. Машинная память — совокупность ячеек, каждая из которых служит местом для хранения слова информа- ции, и наиболее подходящий синоним термина «машинная па- мять»— «склад информации». Ячейка памяти выделяется для хранения значения величины, в частности константы или команды. Чтобы записать слово в память, необходимо указать адрес ячейки, отведенной для хранения соответствующей величины. Чтобы выбрать слово из памяти (прочитать его), следует опять же ука- зать адрес ячейки памяти. Таким образом, адрес ячейки, в кото- рой хранится величина или команда, становится машинным иден- тификатором (именем) величины и команды. Для обозначения величин и команд в ЭВМ нет никаких средств, кроме адресов, присваиваемых величинам и командам в процессе составления программы вычислений. Дополнительно отметим, что выборка (чтение) слова из памяти не разрушает информацию, хранимую в ячейке. Это позволяет любое слово, записанное однажды, чи- тать какое угодно число раз, т. е. из памяти выбираются не слова, а копии слов. Принцип программного управления работой ЭВМ предпола- гает, что алгоритм представляется в ЭВМ в виде упорядоченной последовательности команд следующего вида: bb ... b bb ... b bb ... b ... bb ... b КО AL А2 Ak Здесь b —двоичная переменная, принимающая значение 0 или 1, так что команда — это последовательность нулей и единиц. Определенное число первых разрядов команды характеризует код операции (КО). Код —это любое обозначение, отличное от общепринятого. Так, операция сложения может представляться в команде кодом 001010. Последующие наборы двоичных пере- менных bb ... b определяют адреса Alt .... Ak операндов (аргумен- тов и результатов), участвующих в операции, заданной кодом КО. 12
Чтобы изобразить, из каких частей состоит команда, обычно поль- зуются следующей формой: 1 /1 т 1 т 1 tn ко А А, . . . Ak (1-1) Здесь прямоугольник обозначает слово информации, части кото- рого, имеющие определенный смысл, принято называть полями. Так КО, Av А2, ..., Ак — поля команды, представляющие соот- ветственно код операции и адреса операндов, участвующих в опе- рации. Сверху указаны номера разрядов полей: поле КО состоит из I двоичных разрядов, каждое поле Alt А2, .... Ak содержит т двоичных разрядов. Известно, что с помощью К двоичных разря- дов можно закодировать различных значений или объектов. С учетом этого команда (1.1) позволяет инициировать одну из 2* операций и каждый адрес может принимать до 2т различных значений, обеспечивая ссылку на любую из 2т величин или команд. Форма (1.1) характеризует структуру, или иначе формат команды. Требуемый порядок вычислений предопределяется алгоритмом и описывается последовательностью команд, образующих программу вычислений. Процесс вычислений, выполняемых ЭВМ по заданной про- грамме, состоит в последовательном выполнении команд. Первой выполняется команда, заданная пусковым адресом программы. Обычно это адрес первой команды программы. Адрес следующей команды однозначно определяется в процессе выполнения текущей команды и может быть либо адресом следующей по порядку команды, либо адресом любой другой команды. Процесс вычисле- ний продолжается до тех пор, пока не будет выполнена команда, предписывающая прекращение вычислений. Важно видеть, что вычисления, производимые машиной, опре- деляются программой. Именно программа «настраивает» ЭВМ на получение требуемых результатов. Замена программы приводит к изменению функций, реализуемых ЭВМ. Следовательно, много- образие программ, которые могут быть выполнены ЭВМ, опре- деляет класс функций, который способна реализовать ЭВМ. Другие принципы программного управления. Неймановский принцип не является единственно возможнйхлтринципом функ- циональной организации ЭВМ. Так, Дж. Айлиф в [1 ] предлагает принципы построения машины, отличной от традиционных ней- мановских машин. Отличия сводятся в основном к следующему. Во-первых, неймановский принцип программного управления предполагает, что коды слов информации не зависят от типа информации. Это приводит к тому, что программист сам обязан следить за тем, чтобы для обработки информации определенного типа, например целых или действительных чисел, использовались соответствующие операции, чтобы был запрограммирован перевод 13
чисел из одной формы представления в другую и т. д. Если эти правила не соблюдаются, то в программе появляются ошибки, приводящие к получению курьезных результатов. Дж. Айлиф предлагает тип информации отображать в кодах данных. В ре- зультате этого числа, адреса, команды оказываются различными и операция, указываемая в команде, производится машиной в форме, соответствующей типам операндов. Это приводит к сокра- щению списка машинных операций и уменьшению числа ошибок в программе. Во-вторых, память неймановской машины сугубо линейна —это последовательность адресов от 0 до L. И какой бы не была структура данных, т. е. из каких бы элементов (скаляров, векторов, матриц) не состояли данные, и как бы они не были взаимосвязаны, программист должен эти данные спроецировать на линейную цепочку адресов 0, 1, ..., L. Затем при составлении программы приходится находить способ выделения адресов, соот- ветствующих отдельным структурным элементам данных. Про- цедуры размещения информации в памяти и выделения элементов информации весьма сложны. Дж. Айлиф предлагает вносить опи- сание структуры информации непосредственно в память машины, за счет чего обеспечивается возможность автоматического выявле- ния адресов отдельных элементов в процессе работы машины. Благодаря этому значительно упрощается как процесс программи- рования, так и сами программы, что уменьшает число содержа- щихся в программах ошибок. Ясно, что дополнительные возможности ЭВМ обеспечиваются за счет введения в машину дополнительной аппаратуры, что приводит к увеличению стоимости ЭВМ. К настоящему времени попытки определить наиболее рациональные принципы построе- ния ЭВМ обычно заканчиваются созданием машин, построенных па неймановском принципе. Это объясняется тем, что возможности неймановских машин, хотя они и доведены до предела, пока обеспечивают потребности в вычислениях. Однако к настоящему времени сложность задач, для решения которых применяются ЭВМ, достигла такого уровня, что затраты на программирование и решение задач близки к экономическим возможностям общества, а порой, по-видимому, превышают их. В связи с этим уже сейчас ощущается потребность в пересмотре классического неймановского принципа построения ЭВМ с тем, чтобы приблизить машинные формы представления данных и алгоритмов к естественным, повседневно используемым способам представления и обработки информации. В настоящее время наращивание возможностей машин произ- водится в основном за счет программных средств. Наряду с этим делаются попытки изменить принципы построения самих машин. Так, широкое распространение получил принцип построения ЭВМ с развитыми системами интерпретации [17], разработанный коллективом, возглавляемым академиком В. М. Глушковым. ЭВМ этого класса обеспечивают восприятие алгоритмов, записан- 14
пых на языках высокого уровня — в виде знаков операций, наи- менований величии и данных, представляемых в естественной форме, причем указанные возможности реализуются за счет введения в ЭВМ нетрадиционных средств адресации и операций над информацией. 1.3. Состав и порядок функционирования ЭВМ Теперь определим номенклатуру устройств, из которых должна состоять ЭВМ. Номенклатура устройств органически проистекает из неймановского принципа программного управления и свойств технических средств, обеспечивающих хранение, обработку, ввод и вывод информации. Основные устройства ЭВМ. Принцип программного управления предполагает, что ЭВМ строится по рис. 1.1. Для хранения инфор- Рис. 1.1. Состав ЭВМ мации, необходимой для производства вычислений, служит па- мять. В памяти размещаются программы, задающие порядок вычислений, и данные, представляющие исходные значения, промежуточные и конечные результаты вычислений. Для ввода информации — программ и данных — в память ЭВМ исполь- зуются устройства ввода, которые обеспечивают считывание инфор- мации с определенных носителей (перфокарт, перфолент, кла- виатур и т. и.) и представление считанной информации в форме электрических сигналов, воспринимаемых памятью. Вывод инфор- мации из памяти для ее последующего использования обеспечи- вается устройствами вывода, которые преобразуют электрические сигналы, поступающие из памяти и несущие в себе информацию о результатах вычислений, в форму печатного текста, пробивок на перфолентах и перфокартах и т. п. Одним словом, устройства ввода и вывода обеспечивают обмен информацией со средой, внешней по отношению к ЭВМ. В отдельных случаях ввод и вывод реализуются одним физическим устройством, например 15
электрической пишущей машинкой, с клавиатуры которой вводится информация, а иа лист бумаги выводится информация. Устройства, обеспечивающие как ввод, так и вывод информации, называются устройствами ввода—вывода. Этим же термином поль- зуются для обозначения любого устройства, относящегося к классу устройств ввода и вывода информации. Вычисления, заданные программой, реализуются процессором. Функцией процессора является выборка команд из памяти и выполнение действий, предписанных командами. Команды выби- раются последовательно одна за другой из ячеек памяти, адреса которых определяются во время выполнения предшествующей команды. Процессор выполняет все операции за исключением операций ввода—вывода информации. Команды ввода—вывода, как и любые другие команды, поступают в процессор, но функции процессора в отношении этих команд ограничиваются иницииро- ванием операций ввода—вывода, а сами операции реализуются устройствами ввода—вывода. Процессор — это центральное устройство ЭВМ. Процессор «воспринимает» программу и на ее основе управляет работой всех устройств ЭВМ, инициируя выполнение действий в памяти и устройствах ввода—вывода. Порядок функционирования ЭВМ. Работа ЭВМ протекает следующим образом. Программа и исходные данные, представлен- ные на машинном носителе информации, например на перфокартах, считываются устройством ввода и загружаются в память ЭВМ. Затем в процессор посылается пусковой адрес программы, и про- цессор начинает выполнять программу от команды с заданным адресом, что сводится к последовательной выборке команд из памяти и их выполнению средствами процессора и устройств ввода—вывода. Этот процесс заканчивается в момент выборки команды, отмечающей конец вычислений. Для загрузки и запуска программы необходимо выполнить определенную последовательность действий: указать адрес об- ласти памяти, в которую должна быть загружена программа; инициировать операцию ввода в определенном устройстве; пере- дать в процессор пусковой адрес программы и т. д. Для таких действий служит инженерный пульт управления, который снаб- жается органами управления и средствами индикации состояний процессора. Чтобы упростить процесс загрузки и запуска про- грамм, используется специальная программа — программа на- чальной загрузки. После включения ЭВМ под напряжение про- грамма начальной загрузки вводится в память под управлением с инженерного пульта. Загрузка и запуск всех последующих программ производятся уже в автоматическом режиме под управ- лением программы начальной загрузки, которая задает необходи- мую последовательность действий, обеспечивающих ввод про- граммы в память и запуск программы. Для инициирования про- граммы начальной загрузки и других вспомогательных программ 16
выделяется устройство ввода—вывода (обычно электрическая пишущая машинка), которое используется как пульт оператора ЭВМ. С (пульта посылаются директивы на загрузку и запуск программ, прекращение вычислений и т. п. На пульт оператора выводятся сообщения о завершении вычислений и особых ситуа- циях, возникающих при выполнении программ. Таким образом, включение ЭВА'! в работу производится с инженерного пульта, а в дальнейшем управление ходом решения задач осуществляется с пульта оператора. 1.4. Организация машинной памяти Номенклатура запоминающих устройств. Для хранения инфор- мации могут использоваться средства различной физической природы: полупроводниковые приборы, ферритовые сердечники и магнитные пленки, наносимые на поверхность барабанов, дисков Рис. 1.2. Характеристики запоминающих устройств ЭВМ (П— полу- проводниковые ЗУ; Ф—ферритовые ЗУ; МБ—накопители на ма- гнитных барабанах; МД — накопители па магнитных дисках; МЛ — накопители на магнитной ленте) и лент. На их основе создана широкая номенклатура запомина- ющих устройств (накопителей информации)', полупроводниковые и ферритовые запоминающие устройства, накопители на магнит- ных барабанах, дисках и лентах. Основные характеристики за- поминающего устройства (ЗУ) — емкость, быстродействие и удель- ная стоимость. Емкость ЗУ определяется предельным количеством информации, размещаемым в ЗУ. Емкость исчисляется в битах, байтах 1 и иногда в словах. Быстродействие ЗУ определяется затратами времени на обращение к ЗУ с целью чтения или записи информации. Удельная стоимость — это затраты средств (в руб- лях) на хранение единицы информации (бита или байта). 1 Байт — единица информации, состоящая из восьми бит. Байт исполь- зуется для кодирования одного символа (буквы, цифры, знака) или двух деся- тичных цифр. • t-jir । ' ~ -t 1 полг-.те» Я 1 17
Характеристики ЗУ детально рассматриваются в гл. И, а сейчас ограничимся констатацией зависимостей между характе- ристиками. Во-первых, увеличение емкости ЗУ непременно при- водит к уменьшению быстродействия, т. е. увеличению времени обращения к ЗУ. Характер этой зависимости иллюстрируется рис. 1.2, а, где Е — емкость ЗУ в байтах и т — среднее время доступа к ЗУ в с. Во-вторых, увеличение быстродействия ЗУ непреременно приводит к увеличению удельной стоимости. За- висимость удельной стоимости S (ед. стоимости/тыс. байт) от времени доступа т (с) приведена на рис. 1.2, б. Из рис. 1.2 видно, что емкость, быстродействие и удельная стоимость ЗУ изменяются в очень широких пределах и не существует ЗУ, наилучшего во всех отношениях — по емкости, быстродействию и удельной стоимости. Многоуровневая организация памяти. Рассмотрим вопрос, из каких ЗУ следует строить память ЭВМ. Чаще всего задача проектирования памяти ЭВМ формулируется следующим образом: определить минимальный по стоимости набор ЗУ, обеспечивающий заданную емкость и быстродействие памяти. Если требуемая емкость памяти невелика (порядка 104—10е байт), то память мо- жет быть построена из одного ЗУ — полупроводникового или ферритового. Однако в большинстве случаев память должна иметь емкость порядка 109—1012 байт (т. е. 109—101а символов информации, что соответствует примерно 10я—109 страницам машинописного текста) и обеспечивать доступ к информации за время, исчисляемое несколькими микросекундами. В таких слу- чаях память, состоящая исключительно из полупроводниковых или ферритовых ЗУ, оказывается недопустимо дорогой, а память на базе накопителей на магнитных лентах — слишком медленно — действующей. Поэтому в общем случае память требуемой емкости, достаточно высокого быстродействия и умеренной стоимости должна состоять из многих разнотипных ЗУ как быстродейству- ющих и вместе с тем малоемких и дорогих, так и медленнодей- ствующих, но дешевых и имеющих большую емкость. Таким обра- зом, в общем случае в состав памяти ЭВМ должны входить ЗУ нескольких типов, и только в отдельных случаях, например при небольшой емкости памяти, могут использоваться ЗУ одного или двух типов. Теперь рассмотрим вопрос о способе подключения ЗУ к про- цессору. Как видно из рис. 1.2, лишь полупроводниковые и ферри- товые ЗУ обеспечивают быстрый доступ к информации — микро- секунды на запись или чтение слова. Поэтому такие ЗУ подклю- чаются непосредственно к процессору, который обращается к ЗУ каждый раз, когда нужно записать или прочитать слово информа- ции. Накопители на магнитных барабанах, дисках и лентах не- допустимо подключать непосредственно к процессору, поскольку обращение к слову информации требует миллисекунд и даже секунд времени. Поэтому память ЭВМ строится по схеме рис. 1.3. 18
Процессор П сопрягается с полупроводниковыми или феррито- выми ЗУ, образующими основную память ОП, а накопители на магнитных барабанах НМ.Б, магнитных дисках НМД и магнит- ных лентах НМЛ подключаются к основной памяти и образуют внешнюю память ЭВМ. Обмен информацией между процессором и основной памятью производится словами, т. е. за одно обраще- ние к основной памяти записывается или читается ровно одно слово информации. Обработка информации, хранимой во внешней памяти, организуется иначе. При необходимости обратиться к информации, хранимой во внешней памяти, процессор иниции- рует операцию чтения в соответствующем на- копителе по цепи, обо- значенной на рис. 1.3 штриховой линией. За одно обращение из на- копителя необходимо передавать в основную память по возможности большее количество ин- формации, например 103—104 байт. За счет этого на доступ к от- дельному байту инфор- мации, хранимому во внешней памяти, тра- Рис. 1.3. Структура памяти ЭВМ тится относительно небольшое время, которое равно времени обращения к накопителю, деленному на количество байт, пере- данных за одно обращение. Обработка переданной информации выполняется процессором, который обращается к основной па- мяти. Запись информации во внешнюю память производится после того, как в основной памяти будет сформирован доста- точно большой информационный массив, который пересылается во внешнюю память за одно обращение к накопителю, иниции- руемое процессором. Таким образом, по отношению к процессору память имеет двухуровневую структуру. К первому уровню относится основная память, в которой хранится информация, доступная для процес- сорной обработки. Внешняя память относится ко второму уровню, поскольку хранимая в ней информация недоступна для процес- сорной обработки и может быть подвергнута обработке только после передачи в основную память. Дополнительно заметим, что память, двухуровневая по своей структуре, в функциональном отношении может рассматриваться как многоуровневая память. Так, из-за низкого быстродействия накопителей на магнитных лентах может оказаться целесообразным перед началом решения задачи переместить информацию с магнитных лент в накопители на магнитных барабанах или дисках и в процессе решения задачи 19
обращаться к последним. По окончании обработки результаты, собранные в накопителях на магнитных барабанах или дисках, перемещаются на магнитные ленты. В таком случае, в функцио- нальном отношении память представляется трехуровневой: пер- вый уровень — оперативная память, второй — накопители на магнитных барабанах и дисках и третий — накопители на магнит- ных лентах, обращение к которым производится только в начале и конце решения задачи. Накопители на магнитных дисках и лентах могут иметь смен- ные носители информации — пакеты дисков и магнитные ленты. Это позволяет часть информации на сменных носителях хранить вне ЭВМ. Совокупность сменных носителей информации принято рассматривать как один из уровней памяти — архивную память ЭВМ. Доступ к архивной памяти производится с помощью обслу- живающего персонала, который по запросу ЭВМ обеспечивает установку в накопители затребованных носителей информации. Размещение информации в многоуровневой памяти произво- дится на основе следующих принципов. Основным местом хранения информации является внешняя и архивная память. Основная память используется для хранения лишь небольшой доли инфор- мации, необходимой на текущем этапе решения задач. Это озна- чает, что информация загружается в основную память из внешней памяти по мере развития вычислительного процесса. Очевидно, что затраты времени на обращение к внешней памяти уменьшаются, если наиболее часто используемую информацию размещать в на- копителях с наибольшим быстродействием, например на магнит- ных барабанах, а редко используемую информацию — в накопи- телях с низким быстродействием, например на магнитных лентах. Наиболее редко используемая информация хранится в архивной памяти. По техническим соображениям устройства ввода — вывода (УВВ) подключаются к основной памяти (см. рис. 1.3). Вводимая информация поступает в основную память и при необходимости может быть передана во внешнюю память. Информация, хранимая во внешней памяти, выводится из ЭВМ только через основную память. Внутренняя память процессора. Для уменьшения затрат вре- мени на обработку информации стремятся уменьшить количество обращений к основной памяти. Этого можно достичь следующим образом. В процессе вычислений результат операции целесооб- разно сохранять в процессоре и не записывать в основную память, если полученный результат будет использован в качестве опе- ранда в следующей операции. Так, при вычислении значения вы- ражения alb с — d частное alb, а затем сумму alb 4- с можно сохранить в процессоре, что позволит исключить четыре обраще- ния к основной памяти. Чтобы обеспечить хранение промежуточ- ных результатов, необходимо в процессор ввести память, обеспе- чивающую хранение, по крайней мере, одного слова информации — 20
результата операции. Еще большего эффекта можно достичь, если процессор снабдить памятью большей емкости, достаточной для хранения, например, 16 или 32 слов. Память, являющаяся частью процессора и используемая для хранения промежуточных резуль- татов и вспомогательных величин, называется внутренней (ре- гистровой) памятью процессора» Назначение внутренней памяти — уменьшить количество обра- щений к основной памяти. С увеличением емкости внутренней памяти увеличивается доля обращений, обслуживаемых внутрен- ней, но не основной памятью. Обычно емкость внутренней памяти не превосходит 32 слов. При столь незначительной емкости затраты времени на обращение к внутренней памяти оказываются значи- тельно меньше затрат времени на обращение к основной памяти. 1.5. Основные характеристики ЭВМ Возможности ЭВМ как средства для выполнения вычислений определяются посредством технических характеристик, основ- ными из которых являются: операционные ресурсы, емкость па- мяти, быстродействие, производительность, надежность и стои- мость. » Операционные ресурсы ЭВМ. Множество операций, реализуе- мых ЭВМ с целью обработки, хранения и управления вводом— выводом информации, определяют операционные ресурсы ЭВМ. Другими словами, операционные ресурсы — это перечень того, что может делать ЭВМ. Операционные ресурсы определяются в основном способом представления информации и системой команд ЭВМ. Способ представления информации — это множе- ство форм, используемых в ЭВМ для представления чисел, логи- ческих значений и символьной информации (текстов). Сис/пелцу команд — это перечень команд, определяющий номенклатуру операций и способов адресации информации, реализованных в ЭВМ. Чем более разнообразны формы представления информа- ции и чем шире система команд, тем больше операционные ре- сурсы ЭВМ. Понятие операционные ресурсы включает в себя и такие возможности, как контроль верности информации (исправ- ности оборудования), параллельную обработку нескольких про- грамм, совместную работу с другими ЭВМ и т. д. Расширение операционных ресурсов возможно только за счет дополнительных затрат оборудования. Наличие очевидных огра- ничений на предельное количество оборудования, составляющего ЭВМ, приводит к ограниченности, конечности операционных ресурсов. Операционные ресурсы характеризуют степень приспособлен- ности ЭВМ для решения определенного класса задач. Операцион- ные ресурсы могут ориентироваться как на решение любых задач, возникающих при самых разнообразных применениях ЭВМ, так и на узкий класс задач, связанный с определенной сферой при- менения ЭВМ. 21
Емкость памяти. Память ЭВМ разделяется на основную и внеш- нюю. Доступ к информации, хранимой в основной памяти, произ- водится с помощью адресов, которые указываются в командах и посылаются процессором в основную память при чтении или записи информации. При проектировании ЭВМ определяется необходимая емкость Е основной памяти и исходя из этого нахо- дится длина адреса т = log2 Е. Процессор разрабатывается в рас- чете на работу с адресами, содержащими не более чем т двоичных разрядов. Поэтому значение Е = 2т обусловливает предельную емкость основной памяти, которой может быть укомплектована ЭВМ. Таким образом, емкость основной памяти определяется конструкцией процессора и не может быть увеличена сверх пре- дельно допустимого значения Е. Емкость основной памяти чаще всего рассчитывают в следу- ющих единицах: кбит, кбайт и кслов, где к = 210 = 1024 и чита- ется «кило». Емкость внешней памяти определяется суммарной емкостью накопителей, подключаемых к ЭВМ. Обычно ЭВМ допускает подключение большого числа разнообразных накопителей, но- менклатура которых выбирается для каждого конкретного при- менения ЭВМ. Поэтому задать емкость внешней памяти предельным количеством хранимой информации не представляется возможным и ее характеризуют косвенно — максимальным числом накопите- лей, подключаемых к ЭВМ. Если ЭВМ имеет только основную память, то ее емкость Е вносит ограничение на класс решаемых ЭВМ задач, поскольку задача, требующая для своего решения более Е единиц информа- ции, не может быть решена на ЭВМ в автоматическом режиме, без помощи со стороны человека. Емкость внешней и архивной памяти может считаться практически неограниченной, поэтому наличие внешней памяти снижает ограничение на степень слож- ности задач, обрабатываемых ЭВМ. Однако емкость основной памяти существенно сказывается на времени решения задач, поскольку чем меньше емкость основной памяти, тем чаще воз- никает необходимость в обращениях к внешней памяти, в резуль- тате чего увеличивается время решения задачи. Из этого ясно, что емкость основной памяти в конечном счете влияет на производи- тельность ЭВМ. Быстродействие ЭВМ. Быстродействие ЭВМ определяет ско- рость, с которой может осуществляться обработка информации. Быстродействие характеризуется либо числом операций V, вы- полняемых за секунду, либо временем выполнения одной опера- ции т = 1/V. В общем случае время выполнения различных операций существенно различно. Поэтому быстродействие ЭВМ определяется в векторной форме значениями (У1( ..., или (тх...хм), где Е1( ..., VM — среднее число операций типа 1, ..., М, выполняемых за секунду; тх, ..., хм — среднее время выполнения соответствующих операций. Набор (Ех, ..., ЕЛ)) или (tx, ..., тм) 22
характеризует номинальное быстродействие ЭВМ, т. е. потен- циальные возможности ЭВМ без учета частоты использования различных операций и простоев из-за недогрузки ЭВМ и отказов оборудования. Номинальное быстродействие (1^..... ЕД1) определяет скорость выполнения всех без исключения операций — процессорных опе- раций и операций ввода—вывода. Имея в виду, что ЭВМ может комплектоваться различными наборами внешних устройств, но- минальное быстродействие чаще всего характеризуют скоростью (Vi, ..., ЕЛ1) или временем (тх, ..., тм) выполнения только процессор- ных операций. Размерность М наборов (Ръ ..., УЛ1) и (ту, ..., тЛ) весьма вели- ка— порядка 102, что затрудняет сравнение быстродействий различ- ных ЭВМ. Процедура сравнения становится простой, если быстро- действие оценивать скалярной величиной — средним быстродейст- вием. Среднее быстродействие (операция/с) определяется как вели- чина, обратная математическому ожиданию длительности операции, ^Z = -yL—> (1-2) У, Р/Т/ i = i где Pi — вероятности выполнения операций i = 1, .... Л-1 и, следовательно, рг + ... -j- рм = 1; тг— среднее время выпол- нения операции. Вероятности р1, ..., рм характеризуют долю операций каждого наименования, выполняемых при решении одной задачи или класса задач. Таким образом, среднее быстро- действие зависит от номинального быстродействия, т. е. от техни- ческих характеристик ЭВМ, а также от класса задач, по отноше- нию к которому определяется среднее быстродействие. Если два класса задач различаются составом выполняемых операций, то среднее быстродействие, определенное для одного класса задач, отличается от среднего быстродействия для другого класса задач. Чтобы использовать среднее быстродействие для сравнения характеристик различных ЭВМ, необходимо принять соглашение о классе задач, по отношению к которому оценивается среднее быстродействие, т. е. установить значения вероятностей pY, ..., рм. Производительность ЭВМ. Производительность Л опреде- ляется средним количеством задач, обрабатываемых ЭВМ за еди- ницу времени. Если в любой момент времени ЭВМ занята обра- боткой только одной задачи, то величина U = 1/Лопределяет среднее время решения задачи в ЭВМ, иначе называемое средним временем ответа. Если ЭВМ работает в режиме параллельной обработки М задач, то среднее время решения задачи U = М/А. Среднее время решения задачи U можно определить, если из- вестны: среднее число операций 9, выполняемых за один прогон программы; вероятности ри .... рм операций; номинальное бы- стродействие ЭВМ, характеризуемое средними значениями вре- мени выполнения операций (тх, ..., ти). В этом случае на основе 23
(1.2) определяется среднее быстродействие V и среднее время решения задачи U — Q/V. Следовательно, производительность ЭВМ Л = MU. Указанный способ определения производитель- ности ЭВМ применим только в том случае, если все операции в ЭВМ выполняются сугубо последовательно, без какого-то ни было параллелизма в работе устройств ЭВМ. Однако в совре- менных ЭВМ для повышения производительности широко исполь- зуется принцип параллельной обработки информации, основан- ный на совмещении во времени процесса выполнения нескольких операций. Например, совмещается во времени процессорная обработка и ввод—вывод информации. В таком случае определение производительности ЭВМ оказывается далеко не тривиальной задачей, для решения которой используется аппарат теории вы- числительных систем [58]. Производительность ЭВМ — это характеристика, зависящая от большого числа факторов: 1) номинального быстродействия ЭВМ; 2) параметров класса задач, которые определяют число операций, выполняемых в процессе решения задачи, включая операции обращения к устройствам ввода—вывода и внешней памяти; 3) порядка прохождения задач через ЭВМ, определяе- мого количеством одновременно обрабатываемых задач и способом распределения ресурсов ЭВМ (устройств и памяти) между парал- лельно обрабатываемыми задачами. Производительность ЭВМ, определяемая с учетом быстродействия устройств ЭВМ, параметров задач и порядка прохождения задач через ЭВМ, называется си- стемной производительностью. Надежность ЭВМ. Надежность — это свойство ЭВМ выпол- нять возложенные на нее функции в течение заданного проме- жутка времени. Работоспособность ЭВМ нарушается в резуль- тате отказов оборудования, возникающих из-за неисправности элементов и соединений. Отказы — случайные события, частоту которых принято характеризовать величиной, называемой интен- сивностью отказов. Интенсивность отказов — это среднее число отказов за единицу времени. Обычно интенсивность отказов за- дается в расчете на 1 ч, т. е. имеет размерность ч-1. Интенсивность отказов зависит от сложности объекта, характеризуемой числом составляющих его элементов и соединений, и технологии произ- водства, с определенной вероятностью гарантирующей соответ- ствующие свойства объектов. При расчете надежности принимается, что интенсивность отказов — постоянная во времени величина. Если предположить, что отказы различных элементов взаимонезависимы и любой отказ носит катастрофический характер, полностью нарушая работу устройства, то интенсивность отказов устройства равна сумме интенсивностей отказов элементов, входящих в состав устрой- N ства, т. е. X = У Х(п(-, где — интенсивность отказов элементов i=i 24
типа i — 1, .... N‘, nL — количество элементов типа i в уст- ройстве. Интенсивность отказов — основная характеристика надеж- ности, на основе которой определяется ряд других характеристик. Величина Т = 1/Л равна среднему промежутку времени между двумя отказами и называется наработкой на отказ. Вероятность исправной работы в течение произвольного интервала времени t равна р (/) = e-w. После возникновения отказа устройство ремонтируют для восстановления работоспособности. Затраты времени на восста- новление складываются из времени поиска неисправности и вре- мени замены вышедшего из строя элемента. Это время называется временем восстановления. Оно является случайной величиной, которая характеризуется средним значением Тв, называемым сред- ним временем восстановления. Значение Тв зависит от количества оборудования, составляющего устройство, и от техники поиска и устранения отказов. С позиций надежности эксплуатационные свойства ЭВМ при- нято характеризовать коэффициентом готовности Кг = Т/(Т 4- 4- Тв), где Т — наработка на отказ; Тв — среднее время восста- новления. Коэффициент готовности имеет двоякий смысл. Во- первых, он характеризует долю времени, в течение которого ЭВМ работоспособна, т. е. может решать задачи. С учетом этого значе- ние Кп = 1 — Лг определяет долю времени, в течение которого ЭВМ простаивает из-за отказов оборудования. Во-вторых, коэф- фициент готовности Кг характеризует вероятность того, что в лю- бой произвольный момент времени t ЭВМ работоспособна. С уче- том этого значение (1 — Кг) определяет вероятность того, что в момент времени t ЭВМ не работает из-за отказа оборудования. Для увеличения надежности ЭВМ применяется способ резер- вирования. Резервирование основывается на введении в состав системы избыточного оборудования — параллельного включения нескольких элементов, устройств или машин. При возникновении отказа в одном из элементов система сохраняет работоспособность за счет наличия резервного элемента, выполняющего функции вышедшего из строя элемента. Способ резервирования позволяет строить системы со сколь угодно высокими показателями надеж- ности. Увеличение надежности достигается за счет двух-, трех-, четырехкратного резервирования элементов различных уровней иерархии. Если надежность характеризуется вероятностью р безотказной работы в течение промежутка времени t и р0 — надеж- ность одного элемента (блока, устройства, ЭВМ), то для полу- чения требуемой надежности р необходимо параллельное соеди- нение k элементов, при котором (1 —р) = (1 —р0)*. Отсюда следует, что количество элементов, обеспечивающее требуемую надежность р, равно k = lg (1 — p)/lg (1 — р0). График, иллюстрирующий зависимость кратности 1г резервирования от надежности элементов р0 и системы р, приведен на рис. 1.4. 25
Резервирование приводит к увеличению стоимости системы в k раз, т. е. увеличение надежности достигается за счет увеличения стоимости системы. Стоимость ЭВМ. Стоимость ЭВМ равна суммарной стоимости оборудования, входящего в состав ЭВМ. Чем больше оборудования (элементов, устройств) используется в ЭВМ, тем выше стоимость ЭВМ. Возникает вопрос, что заставляет увеличивать количество оборудования и, как следствие, стоимость ЭВМ. Необходимость в этом порождается требованиями к надежности и производитель- к 5 0,9 0,95 0,99 0,995- 0,999 р0 Рис. 1.4. Кратность резерви- рования, обеспечивающая на- дежность системы р при на- дежности элементов р0 ности ЭВМ, которые зависят от назна- чения, т. е. области применения ЭВМ. Как только что отмечалось, для повы- шения надежности необходимо вводить в ЭВМ избыточное оборудование, при наличии которого ЭВМ становится бо- лее устойчивой к отказам отдельных элементов и устройств. Для обеспече- ния требуемой производительности ЭВМ могут использоваться следующие способы. -Д. Расширение операционных ресур- сов, что сводится к введению в систему команд ЭВМ дополнительных операций, способов адресации информации, ко- манд и т. д., без использования которых соответствующие действия пришлось бы программировать последовательностями команд. За счет расши- рения операционных ресурсов уменьшается количество команд, выполняемых в процессе решения задачи, и, как следствие, уменьшается время решения задачи, т. е. увеличивается произ- водительность ЭВМ. 2. Увеличение быстродействия ЭВМ за счет использования более быстродействующих и, следовательно, более дорогих эле- ментов, а также за счет использования дополнительного оборудо- вания, наличие которого позволяет распараллеливать во времени выполнение операций, т. е. уменьшать время их выполнения. 3. Обеспечение параллельной обработки нескольких задач пу- тем совмещения этапов процессорной обработки одних задач с вво- дом— выводом информации для других задач (мультипрограммиро- вание), а также путем использования нескольких процессоров (мультипроцессирование). Ясно, что каждый из этих способов, повышая производитель- ность, приводит к увеличению затрат оборудования и стои- мости ЭВМ. Во сколько же раз увеличится производительность ЭВМ, если затраты оборудования, т. е. стоимость ЭВМ, увеличить, ска- жем, в два раза? Дать точный ответ на этот вопрос можно только 26
в конкретном случае, когда четко определен каждый из двух вариантов построения ЭВМ. Такого рода задачи решаются ме- тодами теории вычислительных систем [58]. В общем случае ответ на этот вопрос может быть дан только в статистической форме — в виде статистической зависимости между производительностью и стоимостью ЭВМ, справедливой лишь в среднем, в отношении боль- шого количества ЭВМ. Такого рода статистическая зависимость была получена для ЭВМ К. Най- Рис. 1.5. Зависимость стоимости от быстродействия ЭВМ Рис. 1.6. Зависимость времени реше- ния задачи от количества оборудования где V — среднее быстродействие ЭВМ; k — коэффициент пропор- циональности; S — стоимость ЭВМ. Свойство систем, в том числе и ЭВМ, проявляющееся в увеличении быстродействия (производи- тельности) системы пропорционально квадрату стоимости, назы- вается законом Гроша. Иллюстрацией закона Гроша являются зависимости, приведенные на рис. 1.5. Ось абсцисс отмечена зна- чениями номинального быстродействия, определяемого числом операций сложения целых чисел, выполняемых за секунду. Отдельные кривые соответствуют различным классам ЭВМ, по- строенных на одинаковой элементной и технологической базе и имеющих различное быстродействие, увеличение которого дости- гается за счет использования дополнительного оборудования. Из рисунка видно, что различие в элементной базе и технологии производства приводит к разным значениям коэффициента k, фигурирующего в (1.3). Стремление создавать сверхбыстродей- ствующие ЭВМ, оправданное необходимостью решения особо сложных задач или задачами обороны, приводит к снижению сте- пени влияния стоимости на быстродействие ЭВМ. В области боль- ших значений V зависимость (1.3) может оказаться линейной V = kS и даже пропорциональной корню квадратному стои- мости v = k уз. 27
Закон Гроша (1.3) наталкивает на мысль, что за счет увеличе- ния количества оборудования, определяемого стоимостью S, можно беспредельно повышать производительность ЭВМ. Однако дело обстоит иначе. Определяя производительность числом задач, обрабатываемых ЭВМ в единицу времени, необходимо учитывать, что ЭВМ обладает нулевой производительностью в период восста- новления системы после отказа оборудования. Учитывая это, при- мем, что время решения задачи определяется как сумма Т = = А + ^2, где Ту — время счета; Т2 — время простоя ЭВМ из-за отказов оборудования. Характер зависимости значений Ту, Т2, Т от количества оборудования S в ЭВМ иллюстрируется рис. 1.6. Увеличение оборудования приводит к уменьшению вре- мени Ту решения задачи. Если принять, что каждая единица оборудования используется эффективно, то функция 7\ (S) будет монотонно убывающей. Наряду с этим, с увеличением количества оборудования возрастает интенсивность потока отказов и увели- чивается время восстановления ЭВМ. По этой причине время простоя Т2 (S) будет монотонно возрастать с увеличением S. Как видно из рис. 1.6, функция Т (S) = Ту (S) + Т2 (S) носит экстремальный характер и максимальная производительность ЭВМ, которой соответствует минимум Т, достигается при исполь- зовании So единиц оборудования. Увеличение оборудования сверх значения So не приводит к увеличению производительности ЭВМ, т. е. существует ограничение 30 на предельное количество обору- дования в составе одной ЭВМ. От чего же зависит предельное количество оборудования So, которое можно объединять в одной ЭВМ для достижения макси- мальной производительности? Ясно, что ход кривой Ту (S) опре- деляется эффективностью схемных решений, применяемых для увеличения производительности ЭВМ, т. е. уровнем развития теории и практики проектирования ЭВМ. Ход кривой Т2 (S) связан со степенью совершенства производственно-технологиче- ской базы вычислительной техники. Использование более совер- шенной технологии, например технологии интегральных схем, приводит к повышению надежности элементов и устройств, в ре- зультате чего время простоев снижается до значений, определяе- мых кривой T'i (рис. 1.6), и время решения задачи будет опреде- ляться кривой Т', которая достигает минимума при So > So. А это означает, что совершенствование технологической базы позволяет за счет использования большего количества оборудова- ния создавать более производительные ЭВМ. Таким образом, состояние технологической базы вычисли- тельной техники предопределяет предельное количество обору- дования, которое может эффективно использоваться для повыше- ния производительности ЭВМ. Увеличение количества оборудо- вания сверх предельно допустимого значения не приводит к повы- шению производительности ЭВМ, хотя быстродействие ЭВМ продолжает возрастать. 28
1.6. Классификация ЭВМ Цель классификации — разделить множество существующих и мыслимых ЭВМ на непересекающиеся подмножества — классы, чтобы свойства и закономерности, присущие конкретной ЭВМ, можно было бы определять исходя из свойств и закономерностей, присущих классу, к которому относится ЭВМ. Классификация проводится на основе свойств функций, структур и характеристик ЭВМ, называемых признаками классификации. Многообразие свойств и характеристик ЭВМ, присущее ЭВМ как сложным Рис. 1.7. Классификация ЭВМ по области применения системам, порождает многообразие классификаций, различаю- щихся в основном тем, какие признаки принимаются в качестве главных и какие считаются второстепенными. Классификация ЭВМ по области применения. Признавая доми- нирующую роль функций в отношении структур, в качестве глав- ного признака классификации выбирают назначение, т. е. область применения ЭВМ. Область применения ЭВМ наиболее существенно влияет на свойства и характеристики ЭВМ, предопределяя по- требность в операционных ресурсах, емкости памяти и средствах ввода—вывода, что, в свою очередь, приводит к специфическим особенностям в функциональной и структурной организации ЭВМ, ориентированным на конкретную область применения. Классифи- кация ЭВМ по области применения (назначению) представлена на рис. 1.7. ЭВМ. общего назначения предназначаются для использования в вычислительных центрах, автоматизированных системах управ- ления производством, отраслями народного хозяйства и транспор- том. В такого рода применениях на ЭВМ возлагается выполнение широкого спектра работ: выполнение научных и инженерных расчетов, решение экономических задач, обработка текстовой информации в целях автоматизации программирования и т. д. 29
Разнообразие задач, для решения которых используются ЭВМ общего назначения, предполагает наличие обширной системы команд, обеспечивающей обработку целых чисел, чисел с плава- ющей запятой, десятичных чисел и текстов. ЭВМ оснащается основной памятью достаточно большой емкости и широкой номен- клатурой устройств ввода—вывода. При управлении реальными объектами (технологическими и энергетическими установками), регистрации, накоплении и обра- ботке данных необходимо выполнять относительно несложные алгоритмы, оперирующие с величинами, диапазон значений кото- рых и точность сравнительно невелики. Если ориентировать функ- циональную и структурную организацию ЭВМ на такого рода применения (алгоритмы), то оказывается возможным создавать сравнительно недорогие ЭВМ, хорошо приспособленные для мас- совых применений в сфере управления, регистрации и обработки информации. ЭВМ, ориентированные на решение ограниченного круга задач, называются проблемно-ориентированными ЭВМ. Специфической чертой таких ЭВМ является ограничение опера- ционных ресурсов применительно к определенному кругу приме- нений. В классе проблемно-ориентированных ЭВМ выделяют подклассы мини-ЭВМ, микро-ЭВМ и электронных клавишных вычислительных машин (ЭКВМ). Мини-ЭВМ — это малые вычислительные машины (машины невысокой стоимости), ориентированные на производство вычисле- ний в системах управления реальными объектами и информационно- измерительных системах. Главными отличительными особенно- стями мини-ЭВМ являются: 1) представление данных с узким диапазоном значений и относительно небольшой точностью —4—6 десятичных знаков; 2) использование в системах команд только простых операций — обычно операций над числами с фиксиро- ванной запятой; 3) небольшая емкость основной памяти — 4—16 кслов. Указанная точность вполне достаточна для представления данных, получаемых от измерительных приборов, точность кото- рых обычно не превосходит 0,1—0,01%. Эта особенность данных позволяет обходиться простейшей арифметикой — операциями над числами с фиксированной запятой. К тому же алгоритмы управле- ния и обработки измерительной информации обычно несложны, так что для размещения данных и программ требуется память небольшой емкости. А вследствие ограничения операционных ресурсов и емкости памяти уменьшается стоимость машины, что расширяет сферу применения мини-ЭВМ. Микро-ЭВМ — это малые вычислительные машины, создавае- мые на основе технологии больших интегральных схем и предна- значаемые в основном для встраивания в аппаратуру систем в ка- честве элементов, обеспечивающих логическую и арифметическую обработку информации. Микро-ЭВМ можно рассматривать как многофункциональный блок, который за счет программирования органически сливается в функциональном отношении с аппара- 30
турой, в которую он встраивается. Иначе говоря, каждое приме- нение микро-ЭВМ предполагает «настройку» на реализацию задан- ной функции. Типичные применения микро-ЭВМ следующие: предварительная обработка результатов измерений; управление отдельным процессом в системе, например органом движения или измерительным устройством; управление системой индикации. Для такого рода применений достаточно, чтобы ЭВМ имела сле- дующие характеристики: 1) диапазон (точность) представления данных — 2—4 десятичных знака; 2) использование простейших операций над информацией; 3) емкость памяти — 1—8 кслов. За счет этого создаются хорошие предпосылки для микроминиатю- ризации и резкого снижения стоимости ЭВМ и, как следствие, массового использования средств обработки информации в про- мышленности, связи и на транспорте. Электронные клавишные вычислительные машины (ЭКВМ) — это машины, предназначенные для выполнения операций в про- цессе решения задач. В отличие от ЭВМ, автоматизирующих процесс вычислений в целом, включая ввод и вывод информации, ЭКВМ используются в качестве вспомогательного средства в про- цессе решения задач при непосредственном участии человека, работающего за клавиатурой ЭКВМ. Простейшие ЭКВМ — каль- куляторы — обеспечивают выполнение четырех арифметических операций над числами, вводимыми с клавиатуры, и вывод резуль- татов на индикатор. Операционные возможности ЭКВМ расши- ряются за счет: использования памяти для хранения промежуточ- ных результатов; включения в состав операций сложных операций, например операций извлечения корня, возведения в степень и вычисления значений функций; использования печатающих уст- ройств; обеспечения возможности работы со стандартными под- программами, записанными, например, на кассетной магнитной ленте. Наиболее совершенные ЭКВМ обеспечивают возможность программирования задачи на алгоритмическом языке, но всегда на одном и, как правило, достаточно простом. ЭВМ может создаваться для реализации только конкретного алгоритма: вычисления корреляционных и спектральных функций случайных процессов, реализации преобразования Фурье, опти- мального раскроя листового материала и т. д. Столь узкая ориен- тация ЭВМ позволяет четко специализировать структуру, в ре- зультате чего время решения задачи может быть сокращено в де- сятки и сотни раз. ЭВМ, предназначенные для реализации одного алгоритма, называются специализированными ЭВМ. Классификация ЭВМ по быстродействию. Вторая по значи- мости характеристика ЭВМ — производительность. ЭВМ различ- ной производительности имеют существенно различную органи- зацию. Однако оценка производительности ЭВМ — процесс слож- ный и пока еще не доведенный до уровня общепринятого стандарта, оэтому классификация ЭВМ по производительности заменяется классификацией по быстродействию процессоров. При этом 31
предполагается, что остальные характеристики ЭВМ — емкость основной памяти, система команд, номенклатура средств ввода— вывода информации — в какой-то степени сбалансированы с бы- стродействием процессора. Такого рода сбалансированность особенно четко проявляется в ЭВМ общего назначения: с ростом быстродействия процессора увеличивается емкость основной памяти, растет число и произво- дительность устройств ввода—вывода информации. Быстродей- ствие процессора ЭВМ общего назначения является доминирующей характеристикой для ЭВМ в целом, и поэтому, используя быстро- действие процессора в качестве признака классификации, ЭВМ общего назначения подразделяют на следующие классы: 1) малые ЭВМ со средним быстродействием V < 100 тыс. операций/с; 2) средние ЭВМ со средним быстродействием 100 < V < < 500 тыс. операций/с; 3) большие ЭВМ со средним быстродействием V > 0,5 млн. операций/с. Классы малых, средних и больших ЭВМ, выделенные по бы- стродействию процессора, сильно отличаются по количеству обо- рудования: если малые ЭВМ размещаются на площади в несколько десятков квадратных метров, то большие ЭВМ — па площади в сотни квадратных метров. Классификация мини- и микро-ЭВМ по быстродействию за- труднена из-за существенного различия длин чисел и состава операций, тем более такая классификация не возможна в отно- шении специализированных ЭВМ. Классификация ЭВМ по способу функциональной организации. В ЭВМ могут быть реализованы специальные функции (операции), необходимые для обеспечения определенных режимов обработки информации. Исходя из особенностей функциональной органи- зации, выделяются следующие классы ЭВМ: мультипрограммные ЭВМ, ЭВМ для многомашинных систем и ЭВМ для работы в реаль- ном масштабе времени. Мультипрограммные ЭВМ—это машины, предназначенные для параллельной обработки нескольких задач за счет совмещения во времени процессорной обработки одних задач с вводом—вы- водом информации, относящейся к другим задачам. Мультипро- граммные ЭВМ оснащаются памятью большой емкости, доста- точной для размещения нескольких программ; средствами, с по- мощью которых процессор, занятый обработкой, получает инфор- мацию о моментах окончания операций ввода—вывода и особых ситуациях, возникающих при выполнении программ; средствами защиты информации, относящейся к одним программам, от до- ступа со стороны других программ. ЭВМ для многомашинных систем реализуют функции, обеспе- чивающие обмен информацией между несколькими параллельно работающими ЭВМ. Эти функции осуществляются, в частности, 32
за счет введения в систему команд ЭВМ специальных операций, реализующих передачу управляющей и сигнальной информации между процессорами, а также данных из памяти одной ЭВМ в память другой ЭВМ. В системах управления реальными объектами и информа- ционно-измерительных системах ЭВМ должна работать в темпе протекания процессов, происходящих вне ЭВМ. Режим работы ЭВМ, при котором порядок обработки информации предопреде- ляется ходом процессов вне ЭВМ, называется работой в реальном масштабе времени (РМВ). Чтобы обеспечить возможность работы в РМВ, машины оснащаются средствами, обеспечивающими реак- цию ЭВМ на сигналы, возникающие вне ЭВМ, а также средствами для контроля времени — часами, таймерами. Классификация ЭВМ по способам структурной организации. Для повышения быстродействия в состав ЭВМ может включаться несколько процессоров, обеспечивающих параллельную обработку информации. Наличие нескольких процессоров существенно влияет на структуру ЭВМ. Поэтому ЭВМ принято подразделять на два класса: однопроцессорные и мультипроцессорные ЭВМ. Слово «однопроцессорная» обычно опускается в сочетании с ЭВМ, а тер- мин мультипроцессорная ЭВМ может конкретизироваться в виде двухпроцессорная ЭВМ, трехпроцессорная ЭВМ и т. д. Мультипроцессорная ЭВМ может состоять как из однотипных, так и разнотипных процессоров. В первом случае мультипроцес- сорная ЭВМ называется однородной, в последнем— неоднородной. Поколения ЭВМ. Современная история ЭВМ начинается с 1945 г., когда Дж. фон Нейман и его коллеги определили осново- полагающие принципы построения ЭВМ. Первой ЭВМ, построен- ной на этих принципах, была ЭВМ ЭДВАК, вошедшая в строй в 1949 г. Машина ЭДВАК положила начало первому поколению ЭВМ, к которому относятся ЭВМ, производимые в 1950—1960 гг. Характерная черта ЭВМ первого поколения — использование электронных ламп для построения устройств ЭВМ. Невысокая надежность ламп налагала ограничение на предельное число элементов в ЭВМ, в связи с чем операционные ресурсы, емкость памяти и быстродействие были по современным понятиям незна- чительными. Исследования в области физики полупроводников привели к созданию полупроводниковых приборов (1949 г.). Хорошие надежностные, скоростные и стоимостные характеристики полу- проводниковых приборов позволили значительно увеличить число элементов ЭВМ и за счет этого значительно расширить операцион- ке возможности, увеличить производительность и надежность М. Использование в ЭВМ полупроводниковых приборов при- вело к разработке ЭВМ с улучшенными эксплуатационными рактеристиками — машин второго поколения (1960—1968 гг.). аи олее важным результатом этого этапа развития ЭВМ яв- тся расширение сферы применения ЭВМ. В этот период ЭВМ 2 с. А. Майоров. Г. И. Новиков 33
начинают широко использоваться в экономике и управлении. В эти годы сформировались основные принципы организации малых, средних и больших ЭВМ, была решена проблема повы- шения эффективности ЭВМ и проблема общения между человеком и машиной. Идеи, реализованные в ЭВМ второго поколения, оказали значительное влияние на дальнейшее развитие вычисли- тельной техники. В начале 60-х годов была разработана технология производ- ства интегральных схем, обеспечивающая создание элементов, состоящих из десятков, сотен, а в последнее время тысяч электри- ческих компонентов. Полупроводниковая интегральная техноло- гия позволила комплексно решить проблему увеличения надеж- ности и снижения стоимости схем, благодаря чему были созданы предпосылки для создания сложных цифровых систем. С момента применения интегральных схем (1968 г.) начинается третье поколение ЭВМ, породившее широкий спектр ЭВМ и их примене- ний. Характерной чертой ЭВМ третьего поколения является со- вершенство организации процессов математической и технической эксплуатации ЭВМ, обеспечившее широкое внедрение ЭВМ во все сферы человеческой деятельности. 1.7. Критерии эффективности ЭВМ Операционные ресурсы, емкость памяти, быстродействие, на- дежность и стоимость характеризуют лишь отдельные свойства ЭВМ. Может оказаться, что одна ЭВМ имеет высокое быстродей- ствие и большую стоимость, а другая — низкое быстродействие при малой стоимости. Возникает вопрос, какая из них более пред- почтительна, более эффективна в эксплуатации. Чтобы дать ответ на этот вопрос, необходимо ввести меру для оценки степени при- способленности ЭВМ к выполнению возложенных на нее функций— меру эффективности ЭВМ. Эффективность обычно измеряется либо количеством затрат, необходимых для получения опре- деленного результата, либо результатом, получаемым при опре- деленных затратах. Интегральная характеристика, определяющая степень соответствия системы своему назначению, называется критерием эффективности системы. Иначе говоря, критерий эффективности — это мера качества системы. Естественно, что различие в назначении ЭВМ порождает необходимость исполь- зования различных критериев. Критерий стоимости машинной операции. Эффективность ЭВМ принято характеризовать по критерию стоимости машинной опе- рации (руб./операция), предложенному В. М. Глушковым [20], /1 = С(Т)/М(Т), (1.4) где С (Т) — сумма амортизационных отчислений и эксплуата- ционных расходов за время Т; N (Т) — количество операций, выполняемых ЭВМ за время Т. Критерий (1.4) является инверс- 34
Рис. 1.8. Зависимость стоимости машинной операции от быстродей- ствия ЭВМ нЫМ — максимуму эффективности ЭВМ соответствует минимум значения критерия /,. Это означает, что из двух ЭВМ более эффек- тивной является та, которой соответствует меньшее значение критерия /х. Интересно рассмотреть, как влияет быстродействие на эффек- тивность ЭВМ, оцениваемую по критерию (1.4). На рис. 1.8 при- веден график зависимости стоимости машинной операции 1Х от среднего быстродействия V процессора, определенного, напри- мер, по Гибсону. Такого рода зависимости могут быть получены путем аппроксимации значений /ъ вычисленных для многих ма- шин. Из рис. 1.8 видно, что стои- мость машинной операции умень- шается с увеличением быстродей- ствия ЭВМ, т. е. более быстро- действующие ЭВМ оказываются более эффективными. Это озна- чает, что стоимость расчетов на ЭВМ с быстродействием V меньше стоимости расчетов, которые мо- гут быть выполнены на двух ЭВМ с быстродействием V/2 каж- дая. Этот фактор и объясняет стре- мление создавать все более бы- стродействующие ЭВМ, поскольку они оказываются более эффектив- ными, рентабельными. В связи с этим возникает вопрос, что оправдывает производство средних и тем более малых ЭВМ. Дело в том, что зависимость (рис. 1.8) строится в предположении о полной загрузке ЭВМ с любым быстродействием, т. е. об отсутствии простоев из-за не- догрузки ЭВМ. Это справедливо в том случае, если на предприя- тии, эксплуатирующем ЭВМ, имеется объем вычислительных работ, соответствующий быстродействию ЭВМ и исключающий возможность простоя ЭВМ. Когда это требование нарушается, количество операций N (Т) уменьшается из-за простоев, вызванных отсутствием работы, в результате чего стоимость машинной опера- ции повышается, т. е. эффективность ЭВМ падает до значений, присущих ЭВМ с низким быстродействием. По этой причине в конкретных применениях, которым соответствует определенный объем вычислительных работ, эффективными по критерию (1.4) являются как малые, так и большие ЭВМ. Критерий цены эффективного быстродействия. Чтобы упро- стить применение критерия (1.4), необходимо перейти к техниче- ским характеристикам ЭВМ — стоимости S и быстродействию V. ожно принять, что сумма амортизационных отчислений и экс- плуатационных расходов пропорциональна стоимости ЭВМ и времени эксплуатации Т, т. е. С (Г) = kTS, где k — коэффициент пропорциональности. Количество операций, выполняемых ЭВМ | ** . 35
за время Т, N (Т) = TV. С учетом этого = kTS/(TV) = kS/V. Видно, что эффективность ЭВМ пропорциональна отношению’5/У. Величину /а = 5/У, (1.5) принято называть критерием цены эффективного быстродействия ЭВМ. Критерий /2 (руб.-с/тыс. операций) согласован с крите- рием /j, т. е. ЭВМ, эффективная по критерию является эффек- тивной и по критерию Критерий /, характеризует затраты средств (оборудования), приходящиеся на единицу быстродействия. Значение V можно характеризовать средним быстродействием процессора. Однако в этом случае не учитываются потери эффективности из-за ограни- ченной емкости основной памяти, приводящей к простоям процес- сора при обращении к внешней памяти, и потери из-за ожидания моментов окончания ввода—вывода. Значения 12 становятся реа- листичными, если учесть долю простоев т] процессора при работе с внешней памятью и устройствами ввода—вывода. С учетом этого в знаменатель (1.5) необходимо подставлять значение эффективного быстродействия процессора рУ, где р — коэффициент загрузки процессора, равный! доле времени, в течение которого процессор за- гружен работой, т. е. не простаивает. Вычисление коэффициента загрузки р производится методами теории вычислительных си- стем [58]. Отметим, что коэффициент загрузки р процессора зависит от класса задач, решаемых ЭВМ. Соотношения между количеством вычислений и объемом вводимой—выводимой информации изме- няется от задачи к задаче, что приводит к различным значениям р, определенным для различных классов задач. Следовательно, чтобы оценку по критерию /2 сделать сопоставимой для различных ЭВМ, необходимо определить класс задач, по отношению к кото- рому характеризуется эффективность ЭВМ. Таким образом, оценка эффективности ЭВМ по критерию цены эффективного быстродействия не вызывает трудностей, если быстродействие ЭВМ характеризовать быстродействием процес- сора, но при этом игнорируется существенный фактор — влияние емкости основной памяти и характеристик внешней памяти и средств ввода—вывода информации на эффективность ЭВМ. Учет простоев процессора повышает реалистичность оценки эффектив- ности, но из-за необходимости конкретизации класса задач услож- няется процедура оценки эффективности ЭВМ. Критерий цены производительности. В теории вычислительных систем [58] доказано, что значение рУ пропорционально количе- ству задач заданного класса, обрабатываемых ЭВМ в единицу времени, т. е. пропорционально производительности Л ЭВМ. С учетом этого критерий (1.5) можно заменить равносильным ему критерием цены производительности (руб.-ед.времени/задача) /s = S/A, (1.6) 36
Производительность Л характеризует все стороны органи- зации ЭВМ, т. е. зависит от быстродействия процессора, емкости, основной памяти, быстродействия внешней памяти и устройств ввода—вывода, а также от режима обработки задач на ЭВМ. Значение Л может быть определено методами теории вычислитель- ных систем только по отношению к определенному классу задач. 1.8. Номенклатура ЭВМ Рассмотрим вопрос о том, сколь разнообразной может быть номенклатура ЭВМ, отличающихся по своим характеристикам — операционным ресурсам, быстродействию и стоимости. В п. 1.5 была выявлена необходимость в ЭВМ нескольких классов: ЭВМ общего назначения, мини- и микро-ЭВМ, ЭКВМ и специализи- рованных ЭВМ. ЭВМ различных классов различаются по опера- ционным ресурсам, состав которых предопределяется спецификой соответствующих применений ЭВМ. Рассмотрим вопрос о необхо- димом разнообразии ЭВМ в пределах одного класса — разнооб- разии, вызванным различием ЭВМ по быстродействию и стоимости (количеству оборудования). • ЭВМ коллективного и локального пользования. Из критериев (1.4) и (1.5), посредством которых оценивается степень эффектив- ности ЭВМ, вытекает, что вычислительные мощности должны концентрироваться в одной ЭВМ, вместо того, чтобы распреде- ляться по многим ЭВМ. Однако этому препятствуют два фактора. Во-первых, как отмечалось в п. 1.4 (см. рис. 1.6), из-за отказов оборудования существует ограничение на количество оборудова- ния в ЭВМ, превышение которого не приводит к увеличению про- изводительности ЭВМ. Во-вторых, чтобы создавать ЭВМ с макси- мально допустимой стоимостью, необходимо располагать соответ- ствующей потребностью в вычислениях, которая обеспечит полную загрузку ЭВМ. Один коллектив пользователей (коллектив пред- приятия) может не обеспечить ЭВМ необходимым уровнем загрузки. В таком случае к ЭВМ должны подключаться другие коллективы пользователей, относящиеся к данному региону или отрасли про- изводства, для чего необходимо дополнительное оборудование — аппаратура передачи данных по каналам связи. Это оборудование не повышает производительность ЭВМ и влияет лишь на стоимость, увеличивая ее. С учетом этого эффективность, оцениваемая отно- шением S/А или S/V, уменьшается по мере расширения сети пользователей, подключаемых к ЭВМ посредством каналов связи. Следовательно, ограничение на предельное количество оборудо- вания в одной ЭВМ и ограниченная потребность локальных коллек- тивов пользователей в производительности ЭВМ исключают воз- можность концентрации вычислительной мощности в одной ЭВМ и приводят к необходимости обеспечивать потребность в производ- стве вычислений за счет использования большого числа ЭВМ. Из сказанного следует, что в целях снижения стоимости выполнения расчетов, т. е. повышения эффективности ЭВМ, 37
необходимо увеличивать производительность ЭВМ до уровня, обеспечивающего минимум цены производительности S/Л, учиты- вая при этом фактор увеличения стоимости S за счет аппаратуры передачи данных, которая обеспечивает поток задач, соответствую- щий производительности Л. Система, состоящая из одной или нескольких ЭВМ и аппаратуры передачи данных, обеспечивающей взаимодействие пользователей с ЭВМ, называется вычислитель- ной системой коллективного пользования. Проектирование таких систем сводится к решению следующей задачи: для заданного распределения вычислительной нагрузки, характеризуемого место- положением источников задач и типами задач, генерируемых источниками, определить состав ЭВМ и структуру сети связи, при которой цена производительности S/Л имеет минимальное значение. Отметим, что при такой постановке задачи проекти- рования вычислительной системы критерий S/Л распространяется на всю систему, но не на ЭВМ, являющуюся лишь частью системы. Поэтому производительность Л = Л*, при которой минимизи- руется цена S/Л, определяется не только свойствами ЭВМ, но и свойствами потенциальных пользователей и аппаратуры пере- дачи данных. При определенном сочетании стоимостей и производительностей процессоров, запоминающих устройств и аппаратуры передачи данных может оказаться, что минимум цены производительно- сти S/Л достигается, когда ЭВМ обслуживает только локальный коллектив пользователей, например только одно предприятие или организацию, что исключает необходимость в использовании аппаратуры передачи данных. И как показывает практика, такие ситуации являются преобладающими, т. е. подавляющее боль- шинство ЭВМ эксплуатируются в режиме локального пользования и только в отдельных случаях оказывается целесообразным экс- плуатировать ЭВМ в режиме коллективного пользования. Таким образом, при проектировании ЭВМ критерии (1.4)— (1.6) приложимы только к системе «ЭВМ — аппаратура передачи данных», оптимизация которой позволяет выявить потребность в производительности Л = Л*. Проектирование ЭВМ как само- стоятельного объекта должно проводиться с учетом того, что про- изводительность ЭВМ задана значением Л*, которое не является варьируемой величиной. ЭВМ заданной производительности и стоимости. Как было установлено, потребность в вычислениях, определяемая назна- чением ЭВМ, задается производительностью Л*, равной коли- честву задач определенного класса, которое ЭВМ должна обра- батывать за единицу времени. В таком случае задача проектиро- вания ЭВМ, оптимальной в смысле критериев (1.4)—(1.6), сво- дится к задаче проектирования ЭВМ заданной производительности и формулируется следующим образом: спроектировать ЭВМ заданной производительности А — Л* и минимальной стои- мости S. Таким образом, задача проектирования ЭВМ, эффектив- 38
ность которых оценивается, например, по критерию S/Л, превра- щается в каждом конкретном случае в задачу проектирования по критерию минимума стоимости при ограничении Л = Л*. По аналогии с описанной задачей может быть сформулиро- вана следующая сопряженная задача: спроектировать ЭВМ за- данной стоимости S < S* и максимальной производительностью Л. Ясно, что максимизация производительности Л приводит к ми- нимуму цены производительности S/Л, обусловленному огра- ничением S < S*. Задача проектирования формулируется и решается в такой постановке, если по соображениям технико- экономического характера потребность в вычислениях задается суммой средств S*, выделяемых для производства вычислений. Ряды ЭВМ и агрегатированные системы средств вычислитель- ной техники. Разнообразие применений ЭВМ порождает необхо- димость в создании ЭВМ различных классов, каждый из которых состоит из ЭВМ разной производительности. При создании ЭВМ различной производительности используются два принципа: мо- дельный и модульный. Модельный принцип построения ЭВМ различной производи- тельности сводится к построению ряда ЭВМ, состоящего из по- следовательности моделей, имеющих одинаковую функциональ- ную организацию (систему команд) и разную производительность (быстродействие). Модели малой производительности называются младшими моделями ряда ЭВМ, а высокопроизводительные мо- дели — старшими моделями. Наращивание производительности от модели к модели в пределах одного ряда достигается в основном за счет использования устройств с различным быстродействием и частично за счет комплектации моделей ЭВМ различным коли- чеством однотипных устройств. Таким образом, для создания моделей ЭВМ необходимы разные модели устройств — процес- соров, основных памятей, устройств внешней памяти и ввода— вывода, различающихся своим быстродействием. Наращивание быстродействия устройств достигается за счет использования более быстродействующих структур и более быстродействующих систем элементов. Типичным примером реализации ряда ЭВМ общего назначения на модельном принципе является Единая система ЭВМ—ЕС ЭВМ, состоящая из большого числа моделей разной производительности, основными из которых являются модели ЕС-1020, ЕС-1030, ЕС-1040, ЕС-1050, ЕС-1060. Среднее быстродействие ЭВМ младшей модели составляет 20 тыс. операций/с и старшей модели — несколько миллионов операций в секунду. Модульный принцип построения ЭВМ различной производи- тельности сводится к использованию набора устройств — модулей, на основе которых могут компоноваться различные конфигурации ЭВМ, отличающиеся составом устройств. Основной способ нара- щивания производительности — использование большего числа устройств, за счет параллельной работы которых и увеличивается производительность. Модульный принцип ориентируется на 39
использование мультипроцессорной и многомашинной обработки информации, т. е. мультипроцессорных ЭВМ и многомашинных вычислительных комплексов. Наборы модулей для создания ЭВМ называются агрегатированными системами средств вычисли- тельной техники (АСВТ). Типичным примером набора модулей является система АСВТ-М, на основе которых создана широкая номенклатура ЭВМ, ориентированных на задачи управления, в частности ЭВМ М-4000 и М-6000. Естественно, что для создания рядов ЭВМ на основе модель- ного принципа могут использоваться решения, присущие модуль- ному принципу построения ЭВМ. Например, для повышения про- изводительности в моделях ЭВМ могут использоваться наборы однотипных устройств — процессоров, каналов ввода—вывода и т. д. Аналогично, для создания различных ЭВМ на основе мо- дульного принципа в номенклатуру модулей могут включаться однотипные устройства нескольких моделей, имеющих разное быстродействие.
Глава 2 ФУНКЦИОНАЛЬНАЯ ОРГАНИЗАЦИЯ ЭВМ 2.1. Понятие функциональной организации ЭВМ ЭВМ, как и любую систему, можно рассматривать в двух аспектах: функциональном и структурном. С функциональной точки зрения ЭВМ — это система функ- циональных (абстрактных) элементов, в терминах которых пред- ставляется информация, относящаяся к данным и алгоритмам, и процессы вычислений, порождаемые алгоритмами. К числу таких элементов относятся наборы символов, используемых для представления данных, машинные операции, адреса и команды, в терминах которых могут быть представлены алгоритмы и про- цессы вычислений. Необходимый набор функциональных элемен- тов предопределяется назначением ЭВМ, т. е. классом алгоритмов, реализация которых возлагается на ЭВМ, и требованиями к про- цессу вычислений — производительности, надежности и т. п. Со структурной точки зрения ЭВМ — это система, состоящая из взаимосвязанных материальных объектов, организованных таким образом, чтобы их функционирование, представляемое совокупностью физических процессов, приводило к реализации заданных функций — вычислениям на основе алгоритмов. Струк- тура ЭВМ, т. е. состав элементов и конфигурация связей между ними, предопределяется функцией ЭВМ, т. е. способом представле- ния данных и алгоритмов и способом организации процессов вы- числений. Одни и те же функции могут быть реализованы различ- ными структурами, отличающимися номенклатурой и количе- ством используемых элементов и конфигурацией связей между ними. Различные структуры обеспечивают различную скорость вычислений при различных затратах оборудования. Следовательно, функции являются первичными по отношению к структурам и проектирование ЭВМ должно начинаться с кон- кретизации принципа программного управления в плане способов представления данных, состава операций, способов адресации информации и типов команд, соответствующих назначе- нию ЭВМ. Практика проектирования ЭВМ выработала множество ва- риантов реализации принципа программного управления — спо- собов функциональной организации ЭВМ, разнообразие которых позволяет создавать ЭВМ с широким диапазоном характеристик. тобы выбрать способ функциональной организации ЭВМ, опти- мально соответствующий назначению ЭВМ и, в первую очередь, классу алгоритмов и требованию к производительности, 41
необходимо располагать сведениями о степени влияния различных способов функциональной организации на характеристики ЭВМ, в частности на затраты оборудования и производительность. Описанию многообразия способов функциональной организации и анализу их эффективности и посвящена эта глава. Для обозначения круга вопросов, относящихся к функцио- нальной организации ЭВМ, часто, особенно в зарубежной лите- ратуре, используется термин архитектура ЭВМ. Термины функ- циональная организация и архитектура — синонимы, но при- менительно к ЭВМ мы будем пользоваться только первым, остав- ляя за последним традиционную сферу использования. 2.2. Машинные элементы информации Двоичные коды. Выполнение вычислений на основе алгорит- мов предполагает, что вся информация, участвующая в процессе вычислений, представляется в дискретной форме. Это означает, что любая величина (любой информационный объект) может принимать конечное число значений N. Свойства электронных элементов, из которых строятся ЭВЛ\, обусловливают предста- вление информации (команд и данных) в двоично-кодированной форме. При этом для кодирования величины, которая может иметь N различных значений, необходим минимум I > log2 N двоичных переменных — бит, принимающих значения 0 или 1. Упорядоченная последовательность двоичных переменных ЬгЬг ... bt, представляющих некоторый объект (цифру, букву, число, команду), называется двоичным кодом объекта. Количе- ство двоичных переменных в коде называется длиной кода. Влияние длины слов на затраты памяти. Информация, с кото- рой работает ЭВМ, состоит из данных и программы. Данные (числа, логические значения, последовательности символов) пред- ставляются двоичными кодами длиной /2, /2, •••> бит. Программа разделяется на команды, каждая из которых также является кодом определенной длины. Таким образом, информация пред- ставляется в виде последовательности из В бит, разделяющейся на коды длиной ..., 1М бит, bbbb bbbbbbb b ... bbb ... b. Ц <2 lM Примем, что элементы данных и команды имеют произвольные длины /ц ..., 1М, ограниченные значением L. Чтобы идентифици- ровать элемент данных или команду, нужно указать адрес Л(- и длину Z; z-ro элемента информации. В таком случае затраты на адресацию одного элемента «1 = log, В ф- log,L = log2BT. (2.1) Из этого можно сделать вывод, что затраты на адресацию зависят от количества информации В, с которой оперирует программа, 42
и разнообразия L элементов информации, отличающихся но своей длине. Длина адреса влияет на длину команды и, следовательно, на емкость и стоимость памяти, необходимую для размещения программы. Чтобы уменьшить емкость памяти, необходимо по возможности уменьшить затраты на адресацию информации. Этого можно достичь, если представлять информацию словами фиксированной длины п > 1, т. е. представлять любой элемент информации одним, двумя или более словами. Стремясь выявить лишь качественную картину влияния способа представления информации на затраты машинной памяти, в первом приближе- нии будем считать, что представление информации в виде «-раз- рядных слов породит В/п слов и разнообразие длин элементов информации сократится до L/n. В таком случае на адресацию одного элемента информации не- обходимо а„= log2 В/п + log2 L/n = log2 BL/n2. (2-2) Сравнивая (2.1) и (2.2), полу- чаем, что представление инфор- мации «-разрядными словами по- зволяет уменьшить затраты (бит) на адресацию элемента информа- ции на = 2 log2«. (2.3) Рис. 2.1. Влияние длины слова на затраты памяти Из (2.3) можно было бы сделать вывод, что емкость памяти, необходимую для размещения программы, можно уменьшать, уве- личивая до максимума разрядность « слова. Однако это не так и вот почему. Поскольку при представлении информации «-раз- рядными словами для элемента информации может быть выде- лено «, 2«, 3«, ... бит (« > 1), часть бит окажется неиспользуемой. Такая ситуация возникает всякий раз, когда длина слова не кратна «. По этой причине по мере увеличения длины слова умень- шается коэффициент заполнения памяти, т. е. увеличивается емкость памяти, необходимая для размещения данных и про- граммы. Влияние длины слов на затраты памяти иллюстрируется Рис. 2.1, где « — длина слова; С — затраты памяти, исчисляемые в битах. Точка L на оси абсцисс соответствует максимальной длине элементов информации. Кривая 1 характеризует затраты на идресацию информации, которые уменьшаются с увеличением « и при п ~ L принимают минимальное значение Со = A log, М, определяемое числом адресов в программе А и числом элементов информации Л4, с которыми оперирует программа. Кривая 2 43
характеризует затраты памяти па представление элементов инфор- мации — данных и команд. Затраты памяти, необходимые для размещения информации, определяются суммой значений, пред- ставляемых кривыми 1 и 2 (кривая 3). Как видно из рис. 2.1, в общем случае минимум затрат памяти достигается при 1 < < п < L. Представление информации словами. Из сказанного следует, что представление информации словами фиксированной длины позволяет уменьшить емкость памяти ЭВМ за счет уменьшения затрат на адресацию информации. К тому же целесообразность представления информации словами вызвана следующим. Полу- проводниковые и ферритовые запоминающие устройства, исполь- зуемые в основной памяти ЭВМ, предназначены для работы со словами фиксированной длины, поскольку каждая ячейка запо- минающего устройства состоит из фиксированного числа запоми- нающих элементов и за одно обращение к устройству записы- вается и читается ровно одно слово информации. Таким образом, основная память по принципу своего действия работает со сло- вами фиксированной длины. Из этого следует, что выделение кодов переменной длины может выполняться только средствами процессора, для чего в процессоре должны использоваться спе- циальные средства, т. е. дополнительное оборудование. Следова- тельно, использование слов фиксированной длины вместо кодов переменной длины позволяет уменьшить затраты оборудования в процессоре. Минимум затрат оборудования достигается, если все элементы информации — и данные, и команды — представляются словами одного типа, одной длины. В настоящее время отсутствует результативная методика вы- бора оптимальной длины слова, минимизирующей сумму затрат памяти и оборудования в процессоре. Поэтому при выборе длины слова руководствуются традициями, сложившимися при проекти- ровании ЭВМ различного назначения. В мини- и микро-ЭВМ, важным показателем качества которых является низкая стои- мость, слово фиксированной длины обычно является единствен- ным форматом, в котором представляется вся информация. В этом случае каждое число, логическое значение, команда представляется одним словом, которое передается и обрабатывается всегда как целое. В некоторых ЭВМ отдельные числовые значения и команды изображаются двумя словами, которые последовательно выби- раются из памяти и последовательно обрабатываются, но ука- занные действия инициируются одной командой. За счет этого уменьшаются затраты времени на обработку величин с большим диапазоном значений, выходящим за рамки одного слова. В мини- ЭВМ длина слов обычно равна 12 или 16 битам и в редких слу- чаях— 24 битам. В микро-ЭВМ чаще всего используются слова длиной 8, 12 или 16 бит. В ЭВМ общего назначения используется большее по сравнению с мини- и микро-ЭВМ разнообразие форматов данных и команд, 44
так что процессор обрабатывает элементы информаций различной длины. В таком случае термин «машинное слово» связывается со словами, хранимыми в основной памяти. Длина слов, хранимых в основной памяти ЭВМ общего назначения, чаще всего равна 32 или 64 битам и в редких случаях — 128 битам. Представление информации байтами. В отличие от мини- и микро-ЭВМ, ориентированных на обработку информации, состоя- щий из относительно небольшого числа величин (102—103) с отно- сительно узким диапазоном значений (— 103—± 105), ЭВМ общего назначения оперируют с большим количеством данных, диапазон точностей и значений которых изменяется в очень широких пре- делах — от одного до десятков десятичных знаков. По этой при- чине представление всей информации в виде слов фиксированной длины приведет либо к неэффективному использованию памяти, либо к снижению эффективного быстродействия. Потери памяти возникают, если длину слова определить максимальной длиной элементов информации. В таком случае в словах, представляющих элементы небольшой длины, часть бит не употребляется и емкость памяти используется неэффективно. Снижение эффективного бы- стродействия наблюдается, когда используются слова небольшой длины. В этом случае выполнение операций над элементами инфор- мации большой длины сводится к последовательности операций над словами, к нескольким машинным операциям. Таким образом, требования к длине слов для минимизации емкости памяти и увеличения быстродействия ЭВМ противоречивы: минимизация емкости памяти требует уменьшения длины слова, а увеличение быстродействия — увеличения длины слова. Выходом из этого положения является использование несколь- ких машинных форматов, различающихся по своей длине, напри- мер форматов длиной 8, 16, 24, 32, 48 и 64 бита. Возможность обработки данных, представляемых в различных форматах, в ЭВМ третьего поколения обеспечивается за счет использования машин- ного элемента информации, называемого байтом. Байт — это упорядоченная последовательность из 8 бит, рассматриваемая как элемент информации (неделимое целое). Байты являются адресуемыми единицами информации, т. е. адрес позволяет выде- лять информацию с точностью до байта. Один байт обычно исполь- зуется для кодирования алфавитно-цифрового символа (буквы, Цифры или знака) или двух десятичных цифр. Для кодирования чисел и команд используются последовательности из двух и более байт. Таким образом, использование байта в качестве машинного элемента информации позволяет распределять память с точностью ДО 8 бит, в результате чего потери памяти не могут превышать бит на элемент данных. Требуемое быстродействие достигается за счетного, что за одно обращение к памяти выбирается слово ольшой длины, состоящей обычно из 4 или 8 байт. Естественно, ТО использование байта в качестве машинного элемента инфор- Ции приводит к увеличению затрат оборудования в процессоре 45
за счет средств, необходимых для выделения байтовых структур из слов. Однако это компенсируется более эффективным исполь- зованием памяти. 2.3. Пргдставление данных в ЭВМ ЭВМ оперирует с данными трех основных типов: числами, строками символов и логическими значениями. Отметим, что адреса относятся к типу числовых данных. Двоичные числа. Основной формой представления числовых значений в ЭВМ являются двоичные числа. Двоичное число — это значение, представляемое в двоичной системе счисления. Числовые значения могут быть двух типов: целые и действитель- ные. Для представления целых значений и выполнения операций над ними используются целые дзэичные числа, а для действитель- ных значений — числа с фиксированной или плавающей запятой. Целое двоичное число имеет следующий формат (структуру): О 1 п Цифровые разряды Разряд с номером 0 является знаком числа: знак плюс коди- руется цифрой 0, знак минус — цифрой 1. Разряды от 1 до п являются цифровыми. Запятая фиксируется после младшего разряда с номером п. Формат (2.4) обеспечивает представление целых значений в диапазоне [—(2"—1); +(2'1—1)]. Отсюда видно, что число цифровых разрядов п определяет диапазон значений, которые могут быть представлены в формате (2.4). Увеличение количества цифровых разрядов п на единицу расши- ряет диапазон значений в два раза. Выполнение операций над целыми числами, изображаемыми словами фиксированной длины, имеет следующие особенности. Операции сложения и вычитания определены толькэ в том слу- чае, если результат может быть представлен в п цифровых разря- дах, т. е. если результат | С | < 2п. В противном случае говорят, что результат переполняет разрядную сетку ЭВМ. Если | С| > 2п, в процессоре формируется признак переполнения, используемый для управления ходом вычислительного процесса, например для прекращения вычислений. Произведение состоит из 2п цифровых разрядов. Поскольку результат должен представляться «-разряд- ным значением, используется следующий способ формирования результата: 1 п 2 я Отбрасываемые Результат разряды 46
Старшие п разрядов произведения можно отбросить, если они равны нулю, т. е. когда произведение | А X В| < 2". Случай |Д х В| > 2п рассматривается как переполнение разрядной сетки. Результат деления целых чисел А и В — целая часть от деления А на В, т. е. С = A (mod В). Результат определен при любых значениях А и В, кроме В = 0. Последний случай фикси- руется как переполнение при делении. Двоичное число с фиксированной запятой, используемое для представления в ЭВМ действительных чисел, имеет следующий формат: 0 1 п Цифровые разряды (2.5) Запятая фиксируется перед старшим цифровым разрядом. Поэтому число (2.5) является правильной двоичной дробью, значения кото- рой принадлежат отрезку [—(1—2~п); +(1—2~") ] и изме- няются с шагом 2-п. Если число (2.5) получается путем округле- ния по значению (п + 1)-го разряда, то предельная абсолютная погрешность величины, представляемой в формате (2.5), состав- ляет А = 2_<"+О. Отсюда следует, что количество цифровых разрядов определяет точность представления значений числами с фиксированной запятой. С увеличением п на один дополнитель- ный разряд погрешность А уменьшается в два раза. Выполнение операций над действительными числами, пред- ставляемыми в форме с фиксированной запятой, имеет следующие особенности. Операции сложения и вычитания определены только в том случае, если результат может быть представлен в форме с фиксированной запятой, т. е. если результат | С| < 1. В против- ном случае фиксируется переполнение. При умножении п цифро- вых разрядов результата формируются из п старших разрядов 2п-разрядного произведения с использованием округления по значению (л + 1)-го разряда. Деление A/В возможно, если В Q и | Л | < | В |. Результат определяется п старшими раз- рядами частного, округляемыми по значению (п + 1)-го разряда. Число с плавающей запятой имеет следующий формат: 0 1 т т + 2 m-f-p+1 -4- Мантисса Порядок Разряд 0 слова представляет знак числа, который одновременно является знаком мантиссы. Мантисса М. представляется m-раз- рядным числом с фиксированной запятой. Знак порядка коди- руется (щ ]).м разрядом слова. Порядок Р является целым числом и занимает последние р разрядов слова. Слово (2.6) 47
представляет значение Z = ± Md±p, rppd— основание числа с пла- вающей запятой. Обычно d = 2Г, г = 1, 2, ... В качестве осно- вания d чаще всего используется значение 2 или 16. Число с пла- вающей запятой называется нормализованным, если г старших разрядов мантиссы не равны нулю. В противном случае число называется ненормализованным. Представление чисел с плавающей запятой в нормализованном виде обеспечивает минимизацию по- грешности за счет того, что мантисса содержит наибольшее число mlr значащих цифр. Нормализованные числа с плавающей запя- той обеспечивают представление значений в диапазоне d-2₽<|Z|c(l-2-m)d2₽~I (2.7) с предельной относительной погрешностью 6 = 0,5trm/7(l/d) = ti2_('"+1). (2.8) За счет ненормализованных чисел диапазон значений (2.7) расши- ряется слева на 0 < |Z| < d-2P. В этой области значения пред- ставляются с предельной относительной погрешностью, лежащей в интервале d~m/r+l с б < 0,5. Из (2.7) и (2.8) видно, что основа- ние d значительно влияет на диапазон представляемых значений и очень слабо — на точность значений. Увеличение d приводит к существенному расширению диапазона значений, а погрешность при этом увеличивается незначительно. По этой причине в ЭВМ третьего поколения используется основание d = 16. В некоторых ЭВМ знак порядка и порядок представлются одним (р + 1)-разрядным целым значением, называемым харак- теристикой числа с плавающей запятой. В этом случае значения характеристики 0, 1, ..., 2р используются для представления по- рядков —2р, —(2р — 1), —(2р — 2), ..., 0 соответственно, а зна- чения характеристики 2Р + 1, 2Р + 2, ..., 2Р + (2р — 1) — для представления порядков 1,2, ..., 2р — 1. При этом нулевое зна- чение старшего разряда характеристики соответствует знаку порядка минус, а единичное значение — знаку плюс. Таким обра- зом, характеристика — это дополнительный код порядка с инверс- ным представлением знака. С учетом этого порядок определяется по значению характеристики X следующим образом: Р = X — 2Р, где 0 < X с 2Р+1 — 1. Использование характеристики не- сколько упрощает алгоритмы операций над числами с плавающей запятой. Из-за ограниченности числа разрядов мантиссы и порядка при выполнении операций над числами с плавающей запятой могут возникать следующие особые случаи. 1. Потеря значимости имеет место при выполнении операций сложения и вычитания, когда при равных порядках модули ман- тисс равны с точностью до т старших разрядов. В этом случае выполнение операции приводит к числу с нулевой мантиссой и ненулевым порядком, т. е. к числу без значащих цифр. Получен- 48
ное значение рассматривается как машинный нуль, который пред- ставляется словом с нулевыми значениями во всех разрядах. 2. Исчезновение порядка происходит, когда порядок результата должен иметь значение, меньшее — (2р — 1) — максимального по модулю отрицательного порядка. В таком случае результат приходится представлять машинным нулем. 3. Переполнение порядка возникает, когда порядок результата должен иметь значение, превосходящее максимально возможное (2Р — 1)- Такое значение не может быть представлено в формате (2.6), поэтому результат операции считается неопределенным, что отмечается выработкой признака переполнения. 4. Деление на нуль, которое невозможно, что отмечается выра- боткой признака переполнения. Использование двоичных целых чисел и чисел с фиксирован- ной и плавающей запятой. Для представления числовых значе- ний в ЭВМ используются следующие типы чисел: 1) целые числа и числа с плавающей запятой; 2) числа с фиксированной запятой. Две формы чисел — целые и с плавающей запятой — исполь- зуются в ЭВМ общего назначения и старших моделях мини-ЭВМ. Алгоритмы выполнения операций над целыми числами просты. Поэтому за счет использования целых чисел для представления значений достигается высокая скорость обработки информации. Действительные числа представляются в форме с плавающей запятой, за счет чего гарантируется возможность обработки широкого диапазона значений, представляемых с высокой точ- ностью. Использование арифметики с плавающей запятой приводит к значительному увеличению количества оборудования в про- цессоре. Из-за сложности алгоритмов операций над числами с плавающей запятой время их выполнения значительно больше, чем время выполнения операций над целыми числами. Числа с фиксированной запятой используются в качества единственной формы представления значений в мини- и микро-ЭВМ, поскольку выполнение операций над числами с фиксированной запятой требует относительно небольших затрат оборудования. Числа с фиксированной запятой используются для кодирования как действительных, так и целых чисел. Действительные значе- ния приводятся к диапазону 0 < | Z | < 1, свойственному числам с фиксированной запятой, путем масштабирования — умножения на коэффициент, обычно равный 2*, где k — целое. При масштаби- ровании стремятся увеличить до максимума количество значащих Цифр в числе, т. е. приблизить значения | Z | к единице, исключая при этом возможность переполнения. Включение в алгоритм решения задачи процедур масштабирования, программируемых эЛЖДЫй Раз несколькими командами, приводит к уменьшению ффективного быстродействия процессора. Эффективное быстро- ТОпСТВИе падает по мере увеличения диапазонов значений, с ко- чис 1МИ опеРиРУет алгоритм. Целые значения представляются лами с фиксированной запятой с масштабным множителем 2'1. 49
С учетом этого множителя сложение и вычитание целых чисел сводится к одноименным операциям над числами с фиксированной запятой. Чтобы обеспечить возможность умножения целых чисел, в состав операций ЭВМ вводится умножение без округления с сохранением п младших разрядов произведения. Деление целых чисел может осуществляться специальной программой, интерпре- тирующей эту операцию в виде последовательности операций над числами с фиксированной запятой. Таким образом, если функцией ЭВМ является выполнение научных и инженерных расчетов, то для обеспечения возможности представления широкого диапазона значений с высокой точностью необходимо использовать числа с плавающей запятой. Чтобы обеспечить высокое быстродействие ЭВМ при обработке цело- численных значений, которые, наряду с действительными значе- ниями, встречаются очень часто, в дополнение к числам с плава- ющей запятой используются целые числа. Если ЭВМ ориенти- руется на решения задач управления и обработки результатов измерений, то числовые значения представляются в форме с фик- сированной запятой, которые хорошо согласуются с относительно небольшим диапазоном и невысокой точностью величин, исполь- зуемых в таких задачах, и обеспечивают высокую скорость вы- числений при умеренных затратах оборудования в процессоре. Десятичные числа. Необходимость в представлении значений в форме десятичных чисел возникает в тех случаях, когда ЭВМ ориентируется на решение задач обработки данных — учетно- статистических и экономических задач. Целесообразность исполь- зования десятичных чисел обусловлена следующими причинами. Во-первых, характерная особенность задач обработки данных — широкий диапазон количества десятичных знаков, необходимых для представления различных величин. Так, одни величины изображаются тремя-четырьмя знаками, в то время как другие — 20—30 знаками. Если такого рода величины кодировать словами постоянной длины, то при большой длине слова память будет использоваться неэффективно из-за слабого заполнения слов значащими цифрами, а при малой длине слов увеличится время выполнения операций над многоразрядными величинами, для представления которых потребуется несколько машинных слов, обрабатываемых последовательностью команд. Для эффективного использования памяти, уменьшения длин программ и времени решения задач необходимо такого рода данные представлять последовательностями из любого числа цифр — полями перемен- ной длины, которые могут содержать 1,2, ... цифр. Таким образом, ЭВМ может считаться хорошо приспособленной для решения задач обработки данных, если в ней обеспечена возможность обработки значений, представляемых полями переменной длины. Во-вторых, в задачах обработки данных на одно вводимое — вы- водимое число приходится относительно небольшое количество арифметических операций. Поэтому если каждое вводимое число 50
переводить в двоичную систему счисления, а выводимое число — в десятичную систему счисления, то процессор будет загружен в основном служебными функциями по переводу чисел. Чтобы исключить это, необходимо обеспечить ЭВМ средствами обработки десятичных чисел. Таким образом, для уменьшения емкости памяти и числа опе- раций, необходимых для машинной обработки учетно-статистиче- ской и экономической информации, целесообразно реализовать в ЭВМ десятичную арифметику над полями переменной длины, состоящими из двоично-кодированных десятичных цифр. Следует отметить, что введение в ЭВМ десятичной арифметики не исключает необходимости в двоичной арифметике, поскольку операции над десятичными числами, представляемыми полями переменной длины выполняются значительно медленнее операций над двоичными числами. Поэтому для решения научно-технических задач двоич- ные числа, представляемые словами фиксированной длины, остаются наилучшим способом изображения числовых значений. Десятичные числа, представляемые полями переменной длины, имеют следующий формат: 14 14 14 14 14 Z1 2» 2з -4— (2.9) Здесь zlt ..., zL —двоично-десятичные цифры. Одна цифра коди- руется четырьмя битами: цифрам 0, 1, 2, ..., 9 соответствуют коды ОЭОО, 0001, 0010, ..., 1001. Комбинации 1010, 1011.1111 не являются цифровыми и могут появиться только из-за сбоев и отказов оборудования ЭВМ или ошибок в программе. Знак числа обычно кодируется 4-разрядным кодом: знак плюс — набо- рами 1010, 1100, 1110, 1111, а знак минус—наборами 1011, Н01. Знак обычно размещается после младшего разряда, по- скольку операции над десятичными числами выполняются после- довательно цифра за цифрой, начиная от знака и младших разря- дов числа. Поля переменной длины, представляющие десятичные числа, формируются из байт. Обычно количество десятичных Цифр в числе может изменяться в пределах от 1 до 31. Строки символов. Значительную долю информации, обрабаты- ваемой ЭВМ, может составлять текстовая информация — строки символов некоторого алфавита. Типичным примером обработки текстовой информации является трансляция программ, записан- 1,Ых на языках программирования, в машинные программы, ^редставляемые в терминах команд. Чтобы приспособить ЭВМ обработке текстовой информации, используется специальная вол ^б пРедставления Данных — строки символов. Отдельный сим- Раб (°УКВа’- цнФРа или знак) кодируется байтом, что обеспечивает ОТУ с алфавитами, содержащими до 28 = 256 различных 51
символов. Строка символов представляет собой последователь- ность байт следующего вида: 18 18 18 S S ... S (2.Ю) Здесь S — 8-разрядный двоичный код символа. Таким образом, строка символов представляется в ЭВМ полем переменной длины. Обычно длина поля может изменяться от 1 до 256 байт. Использование специального формата (2.10) для представле- ния текстовой информации позволяет упростить программирова- ние процедур, обрабатывающих Рис. 2.2. Представление символь- ной информации словами тексты, н уменьшить затраты вре- мени на обработку текстов. Мож- но было бы не использовать фор- мат (2.10) и представлять тексто- вые строки последовательностью машинных слов, в которых раз- мещаются символы Sj( . . ., SL, составляющие строку (рис. 2.2). В этом случае строка идентифи- цируется адресом А первого слова, с которого она начинается, и чис- лом слов (/< + 1), составляющих строку. В общем случае послед- нее слово заполняется символами неполностью, и при обработке строки для выделения послед- него символа S, приходится использовать соответствующие приемы программирования, т. е. вводить в процедуру обработки строк дополнительные команды. Это увеличивает длину программ и время обработки текстов. Чтобы исключить эти негативные яв- ления, в ЭВМ общего назначения текстовая информация пред- ставляется в формате (2.10) и в систему команд вводятся спе- циальные операции для обработки строк символов. Логические значения. Переменные, принимающие одно из двух значений «ложь» или «истина», называются булевыми (логи- ческими) переменными. Значения «ложь» и «истина» принято кодировать цифрами 0 и 1 соответственно, т. е. булева переменная представляется битом информации. Булевы переменные используются в программах как самосто- ятельные объекты достаточно редко. Чаще всего они являются элементами наборов — булевых векторов и матриц. К тому же слова информации, представляющие команды и числа, а также поля переменной длины, представляющие строки символов и тексты, часто приходится обрабатывать с использованием логи- ческих (булевых) операций, по отношению к которым двоичные разряды слов и полей являются логическими значениями. Таким 52
образом, логические значения 0 и 1 чаще всего участвуют в опера- циях в виде наборов — слов или полей переменной длины, каждый разряд которых рассматривается как значение булевой перемен- ной. По этой причине логические значения представляются сло- вами вида О п Логические значения (2.П) и полями переменной длины (2.10). Информация, представляемая словами (2.11), трактуется как нечисловая и в процессе выполне- ния логических операций все разряды слова обрабатываются одинаково, как отдельные логические значения, объединенные в один набор. Таким образом, при обработке логических значений логические операции распространяются на слова и поля перемен- ной длины, используемые для представления булевых перемен- ных, команд, чисел и строк символов. 2.4. Машинные операции Машинная операция — это действие, инициируемое одной командой и реализуемое оборудованием ЭВМ. Разнообразие типов данных, форм их представления и действий, которые необходимы для обработки информации и управления ходом вычислений, порождает необходимость использования различных операций — набора операций F = {Д, ..., fM}. С набором операций F связана система команд, инициирующих соответствующие операции и определяющих адреса операндов. " Функциональная полнота и эффективность набора операций. Следует ожидать, что алгоритмы можно описать и реализовать с использованием различных наборов операций Flt F2, ... Набор операций F £ {Flt F3, ...} должен обладать двумя свойствами: функциональной полнотой и эффективностью. Функциональная полнота —это достаточность набора операций для описания алгоритмов. Если набор операций обладает свой- ством функциональной полноты, то любой алгоритм может быть описан с использованием операций из заданного набора. Некото- рый набор операций может быть достаточен для описания под- множества алгоритмов — некоторого класса алгоритмов, но не всех без исключения алгоритмов. В таком случае набор операций является функционально полным только в отношении заданного класса алгоритмов. Доказано [25], что функционально полными являются наборы булевых операций {~|, Д], \/}, а также набор {Д}, состоящий из единственной операции И — НЕ. С по- мощью любого из этих наборов может быть описан любой алго- ритм. Функционально полной является алгоритмическая система 53
Поста {: — 0, : = 1, = 0), состоящая из операций присваивания значений 0 и 1 и предиката = 0, с помощью которого проверяется на нуль значение двоичной переменной. Результатом применения предиката к переменной является логическое значение «ложь», если переменная имеет значение 1, и значение «истина», если пере- менная имеет значение 0. Наборы операций ЭВМ состоят из до- статочно большого числа операций, посредством которых могут быть реализованы операции, например, алгоритмической системы Поста. Поэтому наборы операций ЭВМ в общем случае являются функционально полными. Эффективность набора операций — это степень соответствия набора назначению ЭВМ, т. е. классу алгоритмов, для выполне- ния которых предназначается ЭВМ, и требованиям к производи- тельности ЭВМ. Эффективность набора операций принято харак- теризовать двумя показателями: затратами оборудования и за- тратами времени на реализацию алгоритма. Затраты оборудования определяются суммарной стоимостью процессора, реализующего набор операций, и памяти, достаточной для размещения данных и программ, представляющих алгоритмы в терминах операций, реализуемых процессором. Затраты обору- дования в процессоре зависят от сложности операций, составля- ющих набор. Чем сложнее операции и чем больше их в наборе, тем большее количество оборудования необходимо использовать в процессоре для выполнения операций. Стоимость памяти про- порциональна ее емкости. Емкость памяти зависит от количества бит информации, посредством которого может быть закодирован алгоритм, что определяется составом операций, реализуемых процессором. Чем более сложные операции входят в набор, тем меньшее количество операций (команд) требуется для описания алгоритма и, следовательно, тем меньше потребность в емкости памяти. Затраты времени на реализацию алгоритма, в отношении кото- рого оценивается эффективность набора операций, принято харак- теризовать средним числом операций, выполняемых при одном прогоне алгоритма. Число выполняемых операций зависит от состава операций, реализуемых процессором. Введение в набор сложных операций позволяет программировать сложные действия одной командой, в результате чего уменьшается число операций при реализации алгоритма на ЭВМ. Иерархия наборов операций. Определим, насколько различ- ными могут быть функционально полные наборы операций, и оце- ним эффективность различных наборов операций. Пусть ЭВМ предназначается для выполнения некоторого класса алгоритмов з4-. Характерным представителем его является алго- ритм А, в отношении которого будем оценивать затраты обору- дования и времени на реализацию вычислений. Алгоритмы опи- саны в терминах натурального набора операций /71, в состав 54
которого могут входить любые операции, определенные в матема- тике, в частности следующие операции: Д = {: =, +. —. X, /, S, exp, In, | Здесь : = —операция присваивания; £ —суммирования п зна- чений; | —возведение в степень. В набор Ft могут входить и другие операции: операции над векторами и матрицами, вы- числение значений стандартных функций, логические операции и операции над множествами и т. д. Набор Ft является функци- онально полным и может быть реализован в ЭВМ. С использова- нием численных методов можно сложные операции, такие как |, In, ехр, представить в терминах элементарных операций. После- довательно применяя процедуру разложения сложных операций на более простые, можно породить новые наборы операций F2, F3, ... и, в частности, набор ^ = {:=, +, X, /, =, >], где — —операция сравнения на равенство. Наборы F2, F3, ..., Ft являются функционально полными, т. е. в терминах операций одного набора можно запрограммировать любой из алгоритмов зФ. Можно продолжить процедуру разложения операций из набора Ft на более элементарные операции и получить наборы Fi+1, Fi+2, ..., Fj, .... Fk. Функционально полными для алгоритмов л/ являются следующие наборы операций: F;.= i:=, +, -, =, >}......Fk=[: =,| + |, =), где —операция сдвига слова влево или вправо; | + | —сложе- ние положительных целых чисел; “I — инвертирование слова (получение обратного кода). В свою очередь, операции Fk можно представить как композицию операций , Д, = 0), где Д — операция И — НЕ, выполняемая над двумя двоичными перемен- ными; = 0 — операция сравнения двоичной переменной с нулем. Наконец, используя алгоритмическую систему Поста [36], можно представить алгоритмы s/ в терминах простейших операций FP = ~ {: = 0, : = 1, =0], обладающих функциональной полнотой. Таким образом, для любого класса алгоритмов з4- можно породить множество наборов операций Д.....Д, функционально полных в отношении алгоритмов^/. Теперь определим, насколько эффективными являются различ- ные наборы операций, т. е. к каким затратам оборудования и вре- мени приводит реализация различных наборов в ЭВМ. Наборы операций Д, ..., Д можно упорядочить по сложности операций, составляющих каждый из наборов. Это означает, что Для любой пары наборов Д и Д+1 должно выполняться следу- Щее условие: любая операция Д £ F, либо принадлежит набору it-i, либо представляется композицией операций Д £ Д+1. порядоченную последовательность Д, ..., Д будем называть 55
иерархией наборов операций, функционально полных по отноше- нию к алгоритмам л/. На рис. 2.3 представлены графики, иллю- стрирующие зависимость показателей эффективности набора опе- раций /, принадлежащих иерархии F1( ..., FP. Кривая С характе- ризует затраты оборудования в процессоре в зависимости от со- става операций в наборе F,-, i = 1, ..., Р. Поскольку набор Fi+1 содержит операции, менее сложные по сравнению с набором операций F,-, то затраты оборудования в процессоре, реализу- ющем операции Fi+1, будут меньше затрат оборудования в про- цессоре, реализующем операции Fit т. е. иерархии наборов опе- раций Flt F2, . . ., FP соответствует иерархия процессоров с затратами оборудования Сх > С2 > . . . > СР. Затраты оборудования (кривая £), приходящиеся на память ЭВМ, из- меняются с изменением набора опе- раций Fi следующим образом. Если для кодирования алгоритма в тер- минах операций F(- требуется па- мять емкостью Eit то использова- ние более простых операций F1+x приведет к тому, что программа бу- дет содержать большее число команд и емкость памяти Ei+1 > Et, т. е. иерархия наборов операций Fx, F2, . . ., FP приводит к увеличению длины программ, для размещения с емкостью Ег < Е2 < . . . < ЕР. Рис. 2.3. Влияние системы опе- раций на характеристики ЭВМ которых требуется память Характер изменения суммарных затрат оборудования S = С + Е представлен кривой S. Из рис. 2.3 видно, что существует на- бор операций Fm, при котором затраты оборудования S при- нимают минимальное значение. В общем случае набор Fm занимает в иерархии наборов операций Flt . . ., FP промежу- точное положение между натуральным набором операций и набором операций FP, соответствующим алгоритмической си- стеме Поста, т. е. 1 < т < Р. Другой показатель эффектив- ности—-среднее время выполнения алгоритма Т —возрастает от минимального значения 7\, соответствующего набору Flt до максимального значения Т Р, соответствующего алгоритмиче- ской системе Поста FP. Таким образом, иерархия наборов операций Flt .... FP по- рождает иерархию ЭВМ Ult ..., UP, отличающихся по своим ха- рактеристикам. Иерархия ЭВМ обладает следующими свойствами. По мере уменьшения сложности операций Flt ..., FP уменьшаются затраты оборудования в процессоре, по одновременно с этим увели- чиваются затраты оборудования в памяти, используемой для размещения программ, и увеличивается время реализации алго- ритмов, т. е. уменьшается эффективное быстродействие ЭВМ 50
Определение набора операций. При проектировании ЭВМ необ- ходимо выбрать такой набор операций Fn, который на заданном классе алгоритмов s4- обеспечивает требуемую производительность Л = Л* при минимальной стоимости ЭВМ. В настоящее время отсутствует метод решения задачи определения оптимального набора операций. Это обусловлено сложностью самой задачи, отсутствием достоверных данных об алгоритмах, реализуемых ЭВМ общего назначения и проблемно-ориентированными ЭВМ, а также неразработанностью методов количественной оценки затрат оборудования в процессоре и памяти для различных систем команд. Задача определения оптимального набора операций упро- щается для специализированных ЭВМ, предназначаемых для реализации определенного алгоритма А. В таком случае иерархия операций Fu ..., F Р, функционально полных для алгоритма А, может быть определена методом структурного программирования, предложенным Э. Дейкстра [29]. Этот метод сводится к следу- ющему. Алгоритм А рассматривается как один оператор, реали- зующий операцию Д над исходными данными с целью получения требуемых результатов, т. е. Fr = [Д]. Затем оператор раз- деляется на части — программируется последовательностью более элементарных операторов, с каждым из которых отождествляются некоторые операции и данные, участвующие в них. Последова- тельное применение процедуры разделения оператора на более элементарные операторы позволяет выявить наборы операций = (Л), ?2 = {Д, ДД F3 = {Д. Д, ДД F, = [Д, Д, Д, Д], .... в терминах которых описываются отдельные операторы алго- ритма, и тем самым построить иерархию операций Flt ..., FP. Для каждой операции fs £ Ft можно определить частоту ее выполнения при одной реализации алгоритма. В таком случае сумма частот G = S ng (2.12) определит количество операций, выполняемых при одной реали- зации алгоритма, запрограммированного в терминах операций FP Исходя из характеристик элементной базы можно хотя бы при- ближенно оценить среднее время выполнения операции т(- в ЭВМ. С учетом этого время выполнения алгоритма на основе операций F, составит Tt = ^iNh что позволяет поставить в соответствие иерар- хии наборов операций Fu .... FP затраты времени на реализацию алгоритма Tlt ..., ТР, причем 7\ < ... < ТР. Можно предполо- жить, что минимум затрат оборудования достигается в том слу- чае, если набор операций Fn £ {/Д, ..., FP] обеспечивает реали- зацию алгоритма за время Тп, максимально близкое к заданному значению Т*, определяемому производительностью Л* ЭВМ, Таким образом, определение набора операций сводится к 57
нахождению такого набора Fn, для которого разность (Т* — Тп) имеет минимальное неотрицательное значение. Определение оптимального набора операций для ЭВМ общего назначения и проблемно-ориентированных ЭВМ таким методом затруднено из-за отсутствия данных о составе и частоте операций, используемых в алгоритмах, для реализации которых предназна- чается ЭВМ. Поэтому набор операций определяется с учетом опыта разработки и эксплуатации ЭВ?Л. Интересно отметить, что в на- стоящее время операции выбираются на основе двух альтерна- тивных подходов. Первый подход к выбору набора операций базируется на утверждении, что для обеспечения высокой эффек- тивности ЭВМ необходимо в набор операций включать сложные операции, за счет которых гарантируется требуемая производи- тельность ЭВМ. Второй подход базируется на утверждении, что высокая эффективность ЭВМ может быть достигнута, если ограни- читься использованием простейших операций и требуемую произ- водительность обеспечивать за счет структурной (схемотехни- ческой) организации ЭВМ. Правомочность этих подходов к выбору состава машинных операций не исследована, и поэтому оба под- хода используются при проектировании ЭВМ как равноценные. В настоящее время в подавляющем большинстве ЭВМ общего назначения используется набор операций, прообразом которого послужили ЭВМ серии 1ВМ/360 [18 J. В мини-ЭВМ состав опера- ций определяется по аналогии с ЭВМ PDP-8 и PDP-11 [69, 70]. Набор операций, реализуемых в микро-ЭВМ, еще не устоялся, но существует тенденция сближения его с набором операций, типичным для мини-ЭВМ. Классификация операций. Машинные операции принято под- разделять на следующие классы: 1) арифметические и логические операции; 2) посылочные операции; 3) переходы; 4) операции ввода — вывода; 5) системные операции. Арифметические и логические операции служат для вычисления значений функций одного или нескольких аргументов. К этому классу относятся следующие операции: сложение, вычитание, умножение и деление; конъюнкция, дизъюнкция и сравнение на равенство; сдвиги влево и вправо на заданное число разрядов; преобразование чисел из одной системы счисления или формы представления в другую. В зависимости от типа (формата) чисел выделяют операции двоичной арифметики, с помощью которых обрабатываются целые двоичные числа или числа с фиксирован- ной запятой, операции арифметики с плавающей запятой и опера- ции десятичной арифметики. В зависимости от формата слов вы- деляются логические операции над словами фиксированной длины и полями переменной длины. Наиболее обширный набор арифме- тических и логических операций используется в ЭВМ общего назначения. В микро-ЭВМ список операций может ограничиваться сложением целых положительных чисел, формированием обрат- ного кода числа, операциями конъюнкции, дизъюнкции и экви- 58
валентности и операциями сдвига слова влево и вправо. Более сложные операции — сложение чисел со знаками, вычитание, умножение и т. д. — реализуются подпрограммами. Состав ариф- метических и логических операций мини-ЭВМ занимает промежу- точное положение между наборами операций ЭВМ общего назна- чения и микро-ЭВМ. Посылочные операции служат для передачи информации между процессором и основной памятью. Типичные посылочные опера- ции — ЗАГРУЗИТЬ и ЗАПИСАТЬ. Операция ЗАГРУЗИТЬ обес- печивает передачу слова информации из основной памяти во вну- треннюю память процессора, а операция ЗАПИСАТЬ — передачу слова из процессора в память. Для увеличения эффективного быстродействия ЭВМ список посылочных операций расширяется операциями передачи слова с обратным знаком, модуля слова и операциями групповой передачи. Последние обеспечивают передачу заданного количества слов между группами соседних ячеек основной памяти и внутренней памяти процессора. Переходы — это операции, используемые для выполнения команд в порядке, отличном от естественного. Операция перехода обеспечивает возможность передачи управления любой команде программы. Переход может выполняться по значению условия либо к одной, либо к другой команде. Условия, на которые реаги- руют операции перехода, обычно называются признаками пере- хода. Типичными признаками перехода являются нулевое, поло- жительное или отрицательное значения результата операции и переполнение. Для увеличения эффективного быстродействия ЭВМ используются специальные операции перехода: переход по счетчику, переход по индексу, переход с возвратом. Первые две операции служат для организации циклов. Операция перехода по счетчику обеспечивает вычитание единицы из переменной и проверку результата на нуль. Если результат не нулевой, выпол- няется переход к команде с адресом, указанным в команде пере- хода по счетчику. При нулевом результате выполняется следу- ющая по порядку команда. За счет этого обеспечивается и-кратный переход к команде, с которой начинается цикл, и выход из цикла на продолжение программы. Переход по индексу выполняется аналогично: операция перехода изменяет специальную пере- менную — индекс — на значение, заданное переменной, и срав- нивает значение индекса с предельным значением. Если индекс меньше (больше) заданного значения, то выполняется переход по указанному адресу, в противном случае организуется выход из цикла путем перехода к команде, следующей за командой пере- хода по индексу. Переход с возвратом выполняется так. Форми- руется адрес команды, следующей! за командой перехода с возвра- ом, адрес возврата, который загружается в заданную ячейку амяти, после чего выполняется переход к команде с адресом, Данным в команде перехода. Поскольку адрес возврата за- мнен, то после выполнения некоторой совокупности команд — 59
подпрограммы — имеется возможность возвратиться в основную программу и продолжить вычисления, начиная от команды, сле- дующей за командой возврата. Операции перехода относятся к числу часто используемых операций. Поэтому во всех ЭВМ реализуется достаточно широкая номенклатура операций пере- хода: условные переходы, переходы по счетчику и индексу, а также переходы с возвратом. Операции ввода —вывода служат для передачи информации между основной памятью и внешними устройствами ЭВМ — устройствами ввода, вывода и внешними запоминающими устрой- ствами. Операция ввода—вывода инициирует работу опреде- ленного внешнего устройства с целью ввода информации в основ- ную память или вывода информации из основной памяти на внеш- нее устройство. Состав операций ввода — вывода определяется в основном способом подключения внешних устройств к основной памяти и процессору, т. е. структурой ЭВМ. Системные операции предназначаются для управления режи- мами работы ЭВМ. С помощью системных операций производится инициирование и прекращение выполнения программ и органи- зуется мультипрограммная и мультимашинная обработка ин- формации, а также работа ЭВМ в реальном масштабе времени. 2.5. Способы адресации информации Элементы информации, участвующие в операциях, именуются с помощью адресов, указываемых в командах. Для различных применений разработано большое число способов представления адресов в командах и доступа к операндам, определяемым адре- сами. Правило определения адреса и операнда на основе информа- ции, указанной в команде, называется "способом адресации: Каж- дый способ адресации порождает определенный тип адреса: способ прямой адресации — прямые адреса, способ относительной адре- сации — относительные адреса. Эффективность способа адресации характеризуется двумя по- казателями: затратами оборудования и Затратами времени на доступ к адресуемой информации. Затраты оборудования опре- деляются суммой затрат оборудования на обработку адресов в процессоре и затрат памяти на хранение адресов, указываемых в командах программы. Последние составляют основную долю затрат оборудования, и поэтому при оценке затрат оборудования обычно ограничиваются учетом затрат памяти на адресацию информации. Затраты времени принято характеризовать числом обращений к основной памяти, выполняемых с целью выборки или записи операнда. Рассмотрим основные способы адресации информации, исполь- зуемые в ЭВМ различных классов. Прямая адресация. Прямой адрес—это номер ячейки памяти, в которой хранится операнд. Прямой адрес представляется в команде «-разрядным полем, где т = log2 Е (Е — емкость адре- (50
суемой памяти, исчисляемая в машинных элементах информа- ции — словах или байтах). Прямой адрес А передается в память, и путем обращения к памяти из ячейки А читается или в нее записывается операнд. Прямая адресация — это основополага- ющий способ адресации в ЭВА!. Непосредственная адресация. В программах достаточно часто используются целочисленные константы: 0, 1,2, ... Если исполь- зовать прямую адресацию, то для размещения константы необхо- димо выделять ячейку памяти и для выборки константы произ- водить одно обращение к памяти. Затраты памяти и времени уменьшаются, если константу представлять непосредственно в m-разрядном поле адреса. В этом случае для констант со значе- ниями 0, 1, ..., 2т — 1 нет необходимости выделять ячейки памяти, а поскольку константа размещена в команде, экономится одно обращение к памяти на каждую константу. Адрес, в котором раз- мещается значение константы, называется непосредственным адре- сом. Непосредственная адресация позволяет экономить память и время, когда константа является целым положительным числом со значением, меньшим 2т. Косвенная адресация. При программировании некоторых задач широко используются указатели, определяющие местоположение операндов в памяти. Указатель —это адрес операнда, хранимый в определенной ячейке памяти. Значение указателя может ме- няться в процессе выполнения программы по мере обработки одних операндов и перехода к обработке других, но адрес самого указателя остается постоянным, обеспечивая на каждом этапе вычислений обращение к соответствующему операнду. В таком случае адрес операнда определен в ячейке с заданным адресом. Адрес, определяющий адрес операнда, называется косвенным адресом. Для доступа к косвенно адресуемому операнду с помощью прямых адресов требуется выполнить следующие действия: 1) об- ращение к памяти по адресу А с целью выборки адреса /^ опе- ранда; 2) формирование команды, состоящей из кода операции и адреса А± операнда; 3) запись сформированной команды в соот- ввтствующую ячейку памяти; 4) обращение к операнду с помощью сформированной команды. Эта процедура программируется с по- мощью четырех команд и порождает восемь обращений к памяти. Чтобы избежать столь значительных затрат памяти и времени, в ЭВМ используется косвенная адресация. Косвенный адрес Дк, указанный в команде, обрабатывается следующим образом: Ак — > Ак —» • • — > Дк —► А —> Операнд. стРелка обозначает обращение к памяти по адресу, указан- Мо У в начале стрелки. Первое обращение к памяти по адресу Ак обпябТ пРивести к выборке нового косвенного адреса Ак, для мяти °ТКН К0Т0Р0Г0 производятся последующие обращения к па- нему тех П0Р« пока не будет получен прямой адрес А и по У операнд. Количество обращений к памяти с целью 61
определения прямого адреса по косвенному называется глубиной косвенной адресации. Если первое же обращение к памяти гаран- тирует получение прямого адреса, то глубина косвенной адреса- ции равна 1. Если процессор может обращаться к памяти произ- вольное число раз с целью поиска прямого адреса, то косвенная адресация имеет произвольную глубину, для обеспечения которой необходимо, чтобы код косвенного адреса отличался от кода прямого адреса. Признаки адресации. Если адрес может быть прямым, непо- средственным или косвенным, то в команду должен вводиться признак адресации, определяющий тип адреса. Признак адреса- ции может связываться с наименованием операции и указываться в поле кода операции. При этом одноименные операции, связан- ные с разнотипными адресами, рассматриваются как разные операции и кодируются различными кодами. Так, выделяются операции сложения по прямому, непосредственному и косвенному адресу, которые кодируются тремя различными кодами СЛ1( СЛ2, СЛ3. Процессор после дешифрирования кода операции определяет тип адреса и, следовательно, способ получения опе- ранда. При использовании нескольких способов адресации увели- чивается число машинных операций, что приводит к увеличению длины кода операции и, как следствие, длины команды. Способ адресации может указываться с помощью специального поля —признака адресации (ПА). При использовании трех спо- собов адресации признак адресации занимает два разряда и имеет следующий смысл: ПА = 00 —прямая адресация; ПА = 01 — непосредственная адресация; ПА = 10—косвенная адресация. При этом 1-адресная команда имеет следующий формат: 1 /12 1 т КО ПА Ai Первый способ идентификации типа адреса целесообразно применять, если лишь некоторые операции должны работать с ад- ресами нескольких типов. В таком случае слияние признака адре- сации с кодом операции незначительно увеличивает число машин- ных операций и, следовательно, длину кода операции. Второй способ целесообразно применять, когда любая операция может работать с адресами любого типа. Использование непосредственной и косвенной адресации в до- полнение к прямым адресам способствует уменьшению числа ячеек памяти, необходимых для программы, и числа выполняемых операций. Однако введение дополнительных способов адресации приводит к увеличению длины команды. Поэтому использование непосредственной и косвенной адресации оправдано только в том случае, когда экономия памяти и времени, получаемая за счет дополнительных способов адресации, превышает затраты памяти, 62
связанные с введением в команды признаков адресации. Эконо- мия памяти и времени пропорциональна частоте использования непосредственной и косвенной адресации и зависит от класса алгоритмов, реализуемых ЭВМ. Непосредственная адресация ис- пользуется достаточно часто. Применение косвенной адресации оправдано только в тех случаях, когда в алгоритмах широко используются информационные структуры вида «адрес — адрес — ... — адрес — операнд». Неявная адресация. Отдельные команды могут работать с опе- рандами, имеющими фиксированное местоположение. Так, может быть, что операнд размещается в фиксированной ячейке памяти процессора или в фиксированной ячейке основной памяти. В таком случае отсутствует необходимость указывать в команде адрес операнда, поскольку он определен кодом операции. Когда адрес операнда не указывается в команде, а подразумевается, говорят, что адрес задан неявно. Модифицируемые адреса. Рассмотренные способы адресации обеспечивают доступ к простым переменным и константам. В ка- честве операндов могут использоваться переменные с индексами, являющиеся элементами массивов. Массив представляет собой совокупность однотипных значений (слов или полей). Элемент массива хг выделяется идентификатором массива х и индексом I, определяющим порядковый номер элемента в массиве. В программе массив принято идентифицировать адресом Вх первого элемента массива х0, называемым базовым адресом. Адрес <х>> элемента xt определяется значением <%,> = Bx + i, (2.13) где i = 0, 1..т. В команде с операндом х, может быть указан только базовый адрес массива Вх, и перед выполнением команды адрес должен быть увеличен на значение индекса I. Процедура изменения адреса в команде называется модификацией. Модификация может выполняться программно — совокуп- ностью команд, изменяющих адрес в команде в соответствии с (2.13). В 1-адресной ЭВМ для этого требуется три дополнитель- ные команды и одна константа, задающая первоначальную форму модифицируемой команды. Следовательно, программная модифи- кация адресов значительно замедляет процесс обработки пере- менных с индексами и приводит к большим затратам памяти. Затраты времени и памяти на обработку переменных с индек- сами значительно снижаются за счет схемной модификации адресов в процессоре. Для хранения значений индексов используется внутренняя (регистровая) память процессора ВП (рис. 2.4) ем- костью Q = 2’ — 1 слов. Модифицируемый адрес имеет следу- ющую структуру: 1 q 1 tn X Ai (2.14) 63
где X —адрес ВП, по которому хранится индекс; А} —адрес основной памяти. Адрес операнда определяется следующим обра- зом: А = I Аь если X = 0; I + ВП [X], если X =/= 0. (2-15) Когда адрес Aj определяет простую переменную или константу, то модификация исключается нулевым значением поля X. При X =А 0 адрес Аг имеет смысл базового адреса массива. В этом случае производится обращение к внутренней памяти по адресу X । и сложение базового адреса Рис. 2.4. Обработка модифицируемого адреса А1 с индексом ВП [X ], в ре- зультате чего определяется адрес А операнда, хранимого в основной памяти. Для загрузки индексов во внутреннюю память ис- пользуются посылочные опе- рации, обеспечивающие пере- дачу слов из основной памяти во внутреннюю память. Для запоминания значения ин- дексов используются опера- ции передачи слов в обрат- ном направлении. Обычно арифметические и логические операции, реализуемые ЭВМ, могут распространяться и на индексы, хранимые во внутренней памяти процессора. В крайнем случае в ЭВМ обеспечивается возможность увеличения значения индекса на единицу. Рассмотрим вопрос о необходимом числе индексов, которые должны храниться во внутренней памяти процессора. На каждом этапе вычислений используется ограниченное количество ин- дексов — один, два или более, которое определяется числом раз- личных индексов, фигурирующих в вычисляемом выражении. Вероятность того, что на этапе вычислений будут использоваться k = 1, 2, ... индекса, зависит от свойств алгоритмов. Если ем- кость памяти, отведенной для хранения индексов, Q < k, то в про- цессе вычислений возникает необходимость разгрузить память индексов путем передачи их в основную память и загрузить в осво- бодившиеся ячейки другие необходимые индексы. Для этого в программу включаются дополнительные команды, обеспечива- ющие передачу индексов между внутренней и оперативной па- мятью, что увеличивает длину программы и время вычислений. Чем больше емкость памяти индексов, тем меньше вероятность того, что требуемое для вычислений количество индексов пре- высит емкость памяти индексов. Минимально необходимое число 64
индексов для модификации адресов равно 1. Увеличение емкости памяти индексов уменьшает длину программы и время вычислений, что является позитивным явлением, но наряду с этим увеличи- ваются затраты оборудования в процессоре за счет увеличения емкости внутренней памяти и, что самое главное, увеличивается длина поля X, т. е. длина команды. Практика проектирования ЭВМ и программирования показывает, что в общем случае в про- цессе вычислений одновременно используются не более четырех — восьми индексов. Относительная адресация. Для эффективного использования основной памяти необходимо обеспечить возможность размещения массивов данных и программ в любом месте памяти, начиная от любого адреса. За счет этого появляется возможность динами- ческого распределения памяти, при котором для каждого массива выделяется область памяти, равная не максимальной, а факти- ческой длине массива, что приводит к уменьшению размера об- ласти памяти, выделяемой программе. Возможность размещения информации в любой области памяти необходима для обеспечения мультипрограммного режима работы ЭВМ, при котором для про- граммы может быть выделена любая свободная область памяти и, следовательно, программы должны быть закодированы в виде, не зависящем от ее местоположения в памяти. Для обеспечения этого используется относительная адресация информации. Относительная адресация основывается на размещении во внутренней памяти процессора базовых адресов массивов и пред- ставлении всех адресов, кроме непосредственных, в виде двух полей: 1 q 1 т В D (2.16) Здесь В — адрес ячейки внутренней памяти, в которой разме- щается базовый адрес массива; D — смещение, определяющее порядковый номер операнда в массиве. Адрес операнда опре- деляется суммой А = ВШВ] +D, где ВП [В ] —содержимое ячейки внутренней памяти с адресом В. При использовании относительной адресации адреса операндов задаются значениями D — 0, 1, .... 2т — 1 относительно произ- вольных базовых адресов, которые определяются только кос- венно— адресами В = 0, 1, ..., Q ячеек внутренней памяти, со- держащих значения базовых адресов. При загрузке программы в основную память в соответствующие ячейки внутренней памяти засылаются базовые адреса, определяющие местоположение ин- формации в адресном поле основной памяти. При выполнении программы относительные адреса (2.16), указанные в командах, орабатываются процессором путем выборки из внутренней памяти о ° С. А. Майоров, Г. И. Новиков 65
значения базового адреса ВП IB 1 и сложения его со смещением D. Сумма определяет абсолютный адрес — адрес ячейки основной памяти, в которой хранится операнд. При любом местоположе- нии программы в памяти команды не изменяются, а изменяются лишь значения в ячейках внутренней памяти, отведенных для хранения базовых адресов. Емкость внутренней памяти процессора, необходимая для раз- мещения базовых адресов, определяется из следующих сообра- жений. На каждом этапе вычислений используется ограниченное число базовых адресов — один базовый адрес для указания на- чала выполняемой программы и базовые адреса для адресации массивов данных, количество которых определяется свойствами алгоритма и в первую очередь — структурой данных, обрабаты- ваемых программой. Если на этапе вычислений используется k базовых адресов и емкость внутренней памяти, отведенная под базовые адреса, Q < k, то в процессе вычислений возникает необ- ходимость разгружать память базовых адресов путем передачи их в основную память и загружать в освободившиеся ячейки необхо- димые базовые адреса. Как и в случае с индексами, передачи базо- вых адресов между внутренней памятью процессора и основной памятью приводят к увеличению длины и времени выполнения программы. Чем больше емкость памяти базовых адресов, тем меньше вероятность того, что количество базовых адресов, исполь- зуемых на текущем шаге вычислений, превысит емкость памяти. Следовательно, увеличение емкости памяти для хранения базо- вых адресов приводит к уменьшению длины и времени выполнения программы. Однако одновременно с этим увеличивается длина поля В в адресе (2.16), т. е. длина команд, и затраты оборудования в процессоре. Методика определения оптимального числа базовых адресов, минимизирующего затраты памяти на кодирование алго- ритмов заданного класса, отсутствует. Считается, что в ЭВМ общего назначения целесообразно обеспечивать хранение в про- цессоре четырех — восьми базовых адресов. В мини- и микро-ЭВМ, емкость памяти которых сравнительно невелика, относительная адресация обычно не используется. Чтобы эффективно обрабатывать переменные с индексами при относительной адресации информации, используются относи- тельные модифицируемые адреса со следующей структурой: 1 q 1 q 1 т В X D (2.17) Здесь В и X — адреса базового адреса и индекса соответственно; D — смещение. Адрес (2.17) обрабатывается с целью вычисления 66
адреса операнда А по схеме, показанной на рис. 2.5. Адрес опе- ранда определяется /п-разрядным значением ( ВП [В] ф D, если Х = 0; 1 ВП [В] ВП [Х| 4- D, если X 4= 0. большой емкости, достигающей Рис. 2.5. Обработка относительного мо- дифицируемого адреса равна 32 битам, в мини-ЭВМ — Смещение D в (2.17) при X =f= 0 имеет смысл относительно базового адреса массива, элементом которого является адресуемый операнд — переменная с индексом. Страничная организация памяти. ЭВМ общего назначения оснащаются основной памятью 224 байт, так что адреса могут иметь длину до 24 бит. В ми- ни-ЭВМ емкость памяти и длина адреса составляет соот- ветственно 216 слов и 16 бит и в микро-ЭВМ — 28—212 слов и 8—12 бит. При определе- нии форматов команд стре- мятся длину команды прирав- нять длине слова, поскольку представление команды, на- пример, в виде двух слов уве- личивает время выборки ко- манды из памяти в два раза. Длина слова предопределяет- ся диапазоном и точностью представления данных, с ко- торыми должна оперировать ЭВМ. В ЭВМ общего назна- чения длина слова обычно ,_________________, _ ___________ 16 бигам и в микро-ЭВМ—8—12 битам. Приведенные цифры свидетельствуют, что длина адреса в ЭВМ каждого класса совпадает с длиной слова. Чтобы освободить часть слова для размещения необходимых полей команды (кода операции, признака адресации, адреса базового адреса и индекса), необходимо уменьшить Длину адреса, представляемого в команде. Для этого исполь- зуется следующий прием. Множество из 2т ячеек основной памяти разделяется на группы, состоящие из S = 2Р соседних ячеек и называемые страницами. Количество ячеек (слов) S в странице называется размером стра- ницы. Для уменьшения длины команд адрес в команде предста- вляется не полностью, а только младшими р разрядами — адре- сом слова в странице. Для определения полного т-разрядного адреса, указываемого в команде, используются следующие спо- °Obi: относительная и страничная адресация. Относительная адресация при страничной организации памяти ’полняется путем сложения m-разрядного базового адреса, 3* 67
выделяемого полем В относительного адреса (2.16), с р-разрядным смещением D В результате определяется m-разрядный адрес операнда. При использовании относительных модифицируемых адресов (2.17) адрес операнда определяется суммированием m-разрядных значе- ний базового адреса и индекса с р-разрядным значением смещения. Относительный адрес с р-разрядным полем смещения D обеспечи- вает команде доступ не ко всем словам, хранимым в памяти, а только к S = 2₽ словам с адресами С, С Д- 1, ..., С ф S — 1. Следовательно, если необходимо обратиться к слову с адресом А >С A-S — 1, принадлежащему другой странице, то до выполне- ния команды, порождающей обращение по адресу Л, необходимо выполнить команду, изменяющую значение базового адреса или индекса на величину, обеспечивающую доступ к адресу А. Это дей- ствие можно рассматривать как переход на другую страницу. Таким образом, за счет страничной организации памяти уменьшается длина команд, но одновременно с этим из-за межстраничных переходов увеличивается длина и время выполнения программ. При страничной адресации 2т ячеек основной памяти раз- деляются на страницы с фиксированными базовыми адресами: ячейки с адресами 0, 1, .... S — 1 образуют страницу 0; ячейки S, S ф 1, ..., 2S — 1 —страницу 1 и т. д. Номера 0, 1, ... назы- ваются адресами страниц. Поскольку длина страницы равна целой степени двойки (S = 2Р; р — 1, 2, ...), m-разрядный адрес па- мяти, имеющей емкость 2т слов, можно рассматривать состоящим из двух полей 1 ________________т ~~Р д 1 Я 1 Р (2.18) Здесь Р — (/-разрядный адрес страницы, равный 0, 1....2Ч— 1; А — р-разрядный адрес ячейки в странице Р, равный 0, 1, ... ...,2Р—1.В командах указываются р-разрядные адреса слов (ячеек) 68
в страницах, в результате чего длина команды уменьшается на q бит в расчете на один адрес. Полный адрес операнда форми- руется приписыванием р-разрядного смещения D, указанного в команде, к ^-разрядному адресу страницы, определенному к моменту выполнения программы. Установка адреса страницы обычно производится специальными командами с полноразрядным адресом, кодируемыми, например, с помощью двух слов. Такая команда, обеспечивая переход к ячейке а новой страницы Р, позволяет в дальнейшем оперировать с короткими адресами, при- надлежащими странице Р, до тех пор, пока не потребуется перейти к другой странице, для чего вновь используется команда с полнораз- рядным адресом. Таким образом, за счет страничной адресации уменьшается длина команд, но для переходов между страницами при- ходится использовать специаль- ные команды, за счет чего уве- личивается длина и время выпол- нения программы. Размер страницы S = 2р мо- жет меняться в пределах от 2 до 2т слов. При S = 2"1 вся память рассматривается как одна стра- ница, что равносильно отсутст- вию страничной организации па- Рис. 2.6. Влияние размера страни- цы S = 2Р на объем программы мяти. Рассмотрим, как влияет размер страницы на объем и время выполнения программы. Объем программы будем характеризовать количеством бит информации, необходимым для кодирования алгоритма — представления алгоритма совокупностью команд. Пусть N — количество команд в программе и п — длина команды, тогда Nn — объем программы в битах. Когда используются полноразрядные адреса (S = 2"‘), длина команды будет макси- мальна, а количество команд в программе — минимально и опре- деляется набором операций, реализуемых ЭВМ и программиру- емым алгоритмом. При уменьшении размера страницы длина команды п уменьшается, но за счет межстраничных переходов увеличивается количество команд N в программе (рис. 2.6). В общем случае произведение Nn, определяющее объем про- граммы Н, имеет экстремум в точке р0, 1 < р0 < п, т. е. при раз- мере страницы S = 2₽» объем программы и затраты памяти для хранения программы имеют минимальное значение Но. Время выполнения программы изменяется с увеличением размера стра- ницы так же, как число команд N в программе, и имеет минималь- ное значение при S = 2т и максимальное значение приТЗ = 2. Оптимальный размер страницы S — 2Р«, минимизирующий ъем программы, можно было бы вычислить с использованием етоДики, изложенной в [52]. Однако если для хранения программ 69
и данных используется одно запоминающее устройство, перво- степенным фактором является не минимизация объема программы, а размещение всех полей команды в одном машинном слове, длина которого определяется необходимым для вычислений диапазоном и точностью представления данных. В такой постановке задача выбора оптимального размера страницы оказывается чрезвычайно сложной, поскольку размер страницы влияет на длину слова и, следовательно, на диапазон и точность данных. В ЭВМ общего назначения размер страницы обычно составляет 2—8 кбайт (512—2048 слов), а в мини- и микро-ЭВМ — 64—256 слов. 2.6. Форматы команд Команда — это упорядоченная совокупность битов информа- ции, представляющая наименование операции, инициируемой командой, и адреса операндов, участвующих в выполнении опера- ции. Основная характеристика команды — адресность, определя- емая количеством адресов в команде. В зависимости от адрес- ности команды подразделяются на 0-адресные (нульадресные), 1-адресные (одноадресные) и т. д. Длина команды в битах, коли- чество полей, используемых для кодирб'вЩния элементов команды (операции, адресов и признаков), и расположение полей в команде определяют формат команды. Форматы команд изображаются в виде (1.1). Выбор формата команд и, в частности, адресности зависит от большого числа факторов, важнейшими из которых являются: тип машинных элементов информации (слова или байты); длина слова; наличие внутренней памяти процессора; класс алгоритмов, для реализации которого предназначается ЭВМ; способы адресации, необходимые для эффективной обработки информации. Эффективность форматов команд, используемых в ЭВМ, определяется двумя основными показателями: затратами оборудования на хранение и обработку команд и затратами вре- мени на реализацию алгоритмов. Основная доля затрат оборудо- вания приходится на память, используемую для хранения про- грамм. Поэтому для минимизации затрат оборудования необхо- димо, в первую очередь, минимизировать количество информации, составляющей программу, т. е. выбирать такие форматы команд, которые позволяют закодировать алгоритм минимальным числом бит информации. Формат команд, используемых в ЭВМ, суще- ственно сказывается на числе обращений к памяти в процессе вычислений и не влияет на время выполнения операций. Поэтому затраты времени на реализацию алгоритмов, программируемых командами одного или другого формата, целесообразно оценивать числом обращений к памяти в процессе вычислений. Рассмотрим влияние различных способов построения команд на показатели эффективности системы команд: затраты памяти и время вычислений. Эффективность ^-адресных команд. Команды с k = 1, 2, ... адресами имеют формат (1.1). Подход к оценке эффективности 70
команд с различным числом адресов будем иллюстрировать на примере вычисления выражения Y = AxB-\-(C —D) xE/F, (2.19) где А, В, С, D, Е, F, Y — переменные, хранимые в ячейках с адре- сами а, Ь, с, d, е, f, у соответственно. Будем предполагать, что результат выполнения любой операции сохраняется в процессоре и может быть использован в качестве операнда в следующей опе- рации. Значение, хранимое в процессоре, обозначим символом R. Для хранения промежуточных величин Plt Р2, ... будем исполь- зовать рабочие ячейки с адресами plt р2, ... Наиболее естественной для вычисления арифметических и ло- гических выражений является 3-адресная система команд КО А1 А2 А3 (2.20) Здесь КО — код операции и Аг, А2, А3 — адреса двух операндов и результата. При использовании команд (2.20) вычисление выра- жения (2.19) описывается следующей программой: Команды Действия УМН a b Р1 AxB—^Pj ВЫЧ cd— C — D—*R УМН — е — RxE-^R (2.21) ДЕЛ — f — R/F->R СЛ — Р1 у R+Pi — Y. Прочерк в поле адреса означает, что соответствующий адрес не используется, хотя поле адреса и содержится в команде. По- скольку каждая команда содержит три m-разрядных поля адреса, то для адресации информации употребляются К3 = 3 X 5 = = 15 адресов, только 9 из которых, как видно из (2.21), исполь- зуются эффективно. При выполнении программы производится Т3 = 14 обращений к памяти: 5 с целью выборки команд и 9 с целью чтения — записи операндов. При использовании 2-адресных команд КО А, А2 (2.22) процесс вычисления выражения программой: Команды (2.19) описывается следующей Действия УМН а b A xB—>R ЗАП Pi — R-’P! ВЫЧ с d C-D-+R (2.23) УМН — е R xE-^R ДЕЛ — f R/F—+R СЛ Pi У R + Px-Y. 71
Здесь ЗАП — операция записи результата в память. Про- грамма (2.23) состоит из 6 команд, содержащих /<2 = 2 X 6 = = 12 адресов, только 9 из которых используются эффективно. При выполнении программы производится Т2 = 15 обращений к па- мяти: 6 с целью выборки команд и 9 с целью чтения — записи операндов. При использовании 1-адресных команд КО Аг (2.24) рассматриваемое выражение вычисляется следующим образом: Команда Действие ЗАГ а A->R У а; — У МН b R xB->R у а м и с С- - ЗАП pi R->Pi — ЗАГ с C—>R (2.25) ВЫЧ d R — D —»R УМН е R xE—>R Q еЛс l-t^_ — ДЕЛ f R/F->R C./VO — СЛ р± R + Pi-R ЗАП у R—>Y, где ЗАГ — операция загрузки слова с заданным адресом в про- цессор; ЗАП — операция записи результата R в память. Про- грамма (2.25) состоит из 9 команд, содержащих = 9 адресов, каждый из которых в данном случае используется эффективно. При выполнении программы производится 7\ — 18 обращений к памяти: 9 для выборки команд и 9 для чтения — записи опе- рандов. Таким образом, на рассматриваемом примере 3-, 2- и 1-адрес- ные команды имеют различные показатели эффективности: Количество адресов команд k................... 1 2 3 Количество адресов в программе К.......... 9 12 15 Количество обращений к памяти Т.......... 18 15 14 Из нее видно, что с увеличением числа адресов в команде увеличиваются затраты памяти на адресацию информации, но одновременно уменьшается число обращений к памяти, т. е. уменьшается время вычислений. Распространяя полученные ре- зультаты на программирование типичных вычислений, можно сделать следующие выводы: 1) 3-адресные команды обеспечивают минимальное время вычислений; 2) 1-адресные команды обеспе- чивают минимальные затраты памяти на представление алго- ритмов; 3) показатели эффективности 2-адресных команд занимают промежуточное положение между соответствующими показате- лями 3- и 1-адресных команд. Степень различия затрат памяти и времени, присущих коман- дам с различным числом адресов, существенно зависит от свойств 72
алгоритмов, программируемых в терминах различных команд. Так, если для алгоритма типичны короткие выражения вида С = = А* В, где * — знак операции; А, В, С — переменные, храни- мые в памяти, то 3-адресная система команд по сравнению с 1-ад- ресной системой дает существенный выигрыш во времени вы- числений, а затраты памяти на хранение адресов, указываемых в командах, оказываются одинаковыми. Однако с увеличением числа операндов в выражении отпадает необходимость каждую операцию сопровождать тремя адресами, поскольку результат операции может быть сохранен в процессоре и использован в ка- честве операнда в следующей операции. В научно-технических расчетах на одну операцию приходится в среднем 1,2—1,4 опе- ранда, хранимых в основной памяти, а в задачах обработки дан- ных— 1,6—1,8 операнда. Следовательно, с точки зрения затрат памяти на адресацию информации наиболее экономичны для научно-технических расчетов 1-адресные команды, а для задач обработки данных — 2-адресные команды. По этой причине в ЭВМ общего назначения наиболее широко применяется 2-адресная система команд, а в мини- и микро-ЭВМ — 1-адресная система команд. Форматы команд в ЭВМ с внутренней памятью процессора. Внутренняя (регистровая) память процессора используется для хранения значений, наиболее интенсивно используемых на теку- щем этапе вычислений: индексов, базовых адресов, промежуточ- ных результатов вычислений. Емкость внутренней памяти не- велика— 8—32 слова. При наличии внутренней памяти операнд может размещаться как во внутренней, так и в оперативной па- мяти. Адрес операнда, хранимого во внутренней памяти, будем называть адресом типа R, а адрес операнда, хранимого в основ- ной памяти, — адресом типа S. Арифметическая операция «*» в зависимости от местоположения операндов может выполняться в следующих модификациях: R * R—>R; R*S—»R; — R; S*S—/?; R*R->S; S * S-»S, где «—»> — знак присваивания, а посылочные операции реализуют следующие передачи: R_R; R—>S; S-->/?; S->S. В 2-адресной системе команд указанные действия реализуются командами, форматы которых приведены на рис. 2.7. В зависи- мости от типа адресов форматы команд обозначены RR, RS, SS. Длина’/ адреса типа R обычно составляет 3—5 бит, длина m адреса, типа S го—20 бйтГПоэтомУдлины команд*различных форматов ачительно отличаются между собой. 73
Как отмечалось ранее, использование внутренней памяти позво- ляет уменьшать число обращений к основной памяти, за счет чего увеличивается быстродействие ЭВМ. Другое позитивное свойство внутренней памяти — уменьшение длины команд, благодаря чему уменьшается емкость памяти, необходимая для хранения программ. Кодирование команд словами и байтами. Когда слово является машинным элементом информации, затраты оборудования в про- цессоре уменьшаются, если команда представляется в формате машинного слова. Чаще всего Рис. 2.7. Форматы команд, содержащих адреса внутренней и основной памяти оказывается, что длина слова не- достаточна для размещения в его пределах полноразряд- ного адреса. В таких слу- чаях длину адреса, указы- ваемого в команде, сокра- щают за счет страничной ор- ганизации памяти. Сокращен- ный адрес обеспечивает до- ступ лишь к части информа- ции, хранимой и фиксирован- ной странице памяти. Чтобы обеспечить возможность пе- реходов между страницами, необходимы команды с полноразрядными адресами. Такие ко- манды могут кодироваться двумя словами, размещаемыми в по- следовательных ячейках памяти с адресами а и а 1: 1 п а ко р а + 1 А Здесь Р — совокупность полей, в которых размещаются признаки адресации, адреса внутренней памяти и т. п.; А — полноразряд- ный адрес, обеспечивающий доступ к любой из 2т ячеек основной памяти. При использовании команд длиной в одно и два слова тип команды указывается одноразрядным признаком, который может размещаться в поле кода операции КО или поле Р. При нулевом значении признака команда состоит из одного слова и следующая команда размещается в ячейке (а 4- 1); при единичном значении признака команда состоит из двух слов и следующая команда размещается в ячейке (а ф- 2). Использование байтов в качестве машинных элементов ин- формации создает благоприятные возможности для построения команд различных форматов с длиной 1, 2, 3, ... байта, что поз- воляет применять команды с различным числом адресов и различ- ными способами адресации. За счет многообразия форматов команд уменьшается размер программ и отчасти время их выполнения. 74
2.7. Функциональная организация ЭВМ общего назначения Тип машинных элементов информации, способ представления данных, номенклатура операций, форматы команд и способы адре- сации информации — весь этот комплекс факторов, определя- ющих функциональную организацию ЭВМ, крайне существенно влияет на эффективность ЭВМ — ее стоимость и производитель- ность. Выбор рационального способа функциональной организа- ции ЭВМ — чрезвычайно сложная, многопараметрическая задача, Рис. 2.8. Процессор и основная память ЕС ЭВМ алгоритм решения которой неизвестен. Проектирование ЭВМ в аспекте функциональ- ной организации — своеоб- разное искусство, опирающее- ся на знание способов по- строения ЭВМ и понимание степени влияния отдельных решений на эффективность ЭВМ. В предыдущих пара- графах были описаны отдель- ные фрагменты функциональ- ной организации ЭВМ. Чтобы проиллюстрировать способы функциональной организа- ции ЭВМ в целом, обратимся к примерам. Классическим примером ЭВМ общего назначения являются машины серий 1ВМ/360, IBM/370 (США) и Единая Система ЭВМ — ЕС ЭВМ (СССР). Функциональная организация этих машин подробно описана в технических ру- ководствах [18, 62]. Рассмотрим основные моменты функциональной организации машин серии ЕС ЭВМ. Состав ЕС ЭВМ. ЕС ЭВМ — серия ЭВМ, имеющих одинаковую функциональную организацию (способы представления данных и систему команд) и отличающихся производительностью. ЭВМ состоит из процессора, основной памяти (077) и средств ввода — вывода информации (рис. 2.8). Процессор выбирает из 017 команды и выполняет все операции за исключением операций ввода — вывода. Операции ввода — вывода инициируются процессором по цепи 1 и выполняются средствами ввода — вывода, обеспечи- вающими ввод — вывод информации по цепи 2. Внутренняя па- мять процессора состоит из 16 регистров общего назначения (РОН), каждый из которых обеспечивает хранение 32-разрядного слова, и 4 регистров с плавающей запятой (РПЗ), каждый из которых служит для хранения 64-разрядного слова. РОН идентифици- 75
руются адресами О, 1, .... 15, а РПЗ — адресами О, 2, 4, 6. ОП обеспечивает хранение байтов информации, предельное число которых (предельная емкость ОП) равно 224 = 16 777 216. Раз- личные модели ЭВМ имеют разную емкость ОП. Емкость ОП младших моделей, имеющих невысокую производительность, мо- жет составлять 21в = 64 кбайта. Более производительные модели комплектуются памятью большей емкости — 256, 512, 1024 кбайта. За одно обращение к ОП записывается или читается Машинные элементы информации. В ЕС ЭВМ основным эле- ментом информации, адресуемым, передаваемым и обрабатыва- емым как целое, является байт (рис. 2.9). Двоичные разряды байта нумеруются слева направо значениями 0, 1, ..., 7. На основе байт строятся следующие элементы информации: полу- слова, состоящие из 2 байт; слова — из 4 байт; двойные слова — из 8 байт; поля переменной длины, которые могут объединять в себе от 1 до 256 байт. Байт, полуслово, слово и двойное слово называются элементами фиксированной длины. Тип элемента информации указывается кодом операции. Коды операций, вы- полняемых над элементами фиксированной длины, одновременно определяют и длину операндов, которая может быть равна 1, 2, 4 или 8 байтам. Команды, инициирующие операции над полями переменной длины, содержат в себе поля, с помощью которых определяется длина операндов. Адресация информации. Информация, хранимая в ОП, адре- суется с точностью до байт номерами 0, 1, ..., 2т — 1, где 2т — емкость ОП. Каждый номер определяет некоторый байт. Адрес элемента информации, состоящего из нескольких байт, опреде- ляется адресом самого левого байта. Емкость ОП конкретной модели ЭВМ может быть меньше предельного значения 224. Адрес, выходящий за пределы емкости ОП, рассматривается как непра- вильный. В случае появления неправильного адреса, который 76
может быть результатом ошибки в программировании, выполне- ние программы прекращается. С целью уменьшения затрат оборудования в процессоре уста- новлены ограничения на местоположение, а тем самым на адреса элементов фиксированной длины: поля фиксированной длины (полуслова, слова и двойные слова) должны размещаться, начиная с целочисленной границы, соответствующей типу элемента ин- формации. Граница называется целочисленной для элемента информации, если ее адрес кратен числу байт в элементе. Так, полуслово, состоящее из 2 байт, должно иметь адрес, кратный четырем, и двойное слово — адрес, кратный восьми. Порядок Пмуст!а\-2-----------it— ---------и——----------1t——--------11— ----------1 Снова -------------------------11——----------------------11—------------- Двойные , 0____________________________________ 11_®________________________ снова ' Рис. 2.10. Адресация элементов фиксированной длины размещения элементов фиксированной длины в адресном поле ОП иллюстрируется рис. 2.10. Элементы информации обозначены отрезками, над которыми указаны адреса элементов, равные адресу левого байта. Элемент, адрес которого не удовлетворяет условию целочисленности границы, называется неправильно спе- цифицированным. Так, полуслово с адресом 3 и слово с адресом 6 имеют неправильную спецификацию и не могут быть обработаны процессором. Если в команде появляется неправильно специфи- цированный адрес, выполнение программы прекращается. Поля переменной длины могут начинаться с любого байта, т. е. могут иметь произвольный адрес в пределах фактической емкости ОП. Форматы данных. В ЕС ЭВМ представляются и обрабаты- ваются данные следующих типов: целые двоичные числа, числа с плавающей запятой, десятичные числа и логические значения. Целые двоичные числа могут представляться в коротком и длин- ном форматах: 77
Короткий 16-разрядный формат (полуслово) обеспечивает пред- ставление значений | Z | < 216 = 65 536, и длинный 32-разрядный формат (слово) — значений |Z| < 232 «=* 4-10". Наличие двух форматов позволяет экономно использовать память: величины с небольшим диапазоном значений представлять только двумя байтами. В ЕС ЭВМ отрицательные значения изображаются в до- полнительном коде, за счет чего уменьшается время выполнения операций сложения чисел. Числа с плавающей запятой могут представляться в двух форматах: 0 1 7 8 31 X М 0 1 7 8 63 -------------------------------1 ।--------- ± X м 1-------------------------------1 I--------- Здесь X — характеристика; М — мантисса числа. Короткий 32-разрядный формат (слово) обеспечивает представление значений с точностью до семи десятичных знаков, и длинный 64-разрядный формат (двойное слово) — с точностью до 17 десятичных знаков, t Короткий формат при невысокой точности значений позволяет размещать в памяти большое число операндов и выполнять опера- ции с небольшими затратами времени. Длинный формат обеспе- чивает возможность вычислений с повышенной точностью. Знак кодируется нулевым разрядом числа. Характеристика X равна порядку числа, увеличенному на 64, и представляет значение порядка в диапазоне от —64 до -ф-63. Значение числа с плавающей запятой равно Z= fctA4-16"M, где мантисса М — правильная дробь (М < 1). Числа с плавающей запятой обеспечивают пред- ставление значений в диапазоне от 10~78 до 1075. Десятичные числа представляются полями переменной длины в двух форматах: формате с зоной 0 3 4 7 8 11 12 15 8fe- 1 U С U С ... ± С и в упакованном формате 0 3 4 7 8 11 8k - 1 С С С ... С ± Здесь С — 4-разрядный двоичный код 0000, 0001, ..., 1001 деся- тичной цифры; U — код зоны, равный 1111 или 0101; «щ»— 78
4-разрядный код знака числа. Знак плюс кодируется одной из комбинаций 1010, 1100, 1110, 1111, а знак минус — комбина- циями 1011, 1101. Формат с зоной — представление десятичного числа после ввода его в ЭВМ или перед выводом. При этом каждая цифра за исключением последней рассматривается как символ и занимает один байт, четыре старших разряда которого запол- нены служебной комбинацией, называемой зоной. Перед выпол- нением операций формат с зоной должен быть преобразован в упакованный формат, над которым могут выполняться любые операции десятичной арифметики. В упакованном формате один байт содержит две десятичные цифры. Десятичные числа могут иметь длину от 1 до 16 байт. Логические значения представляются в двух форматах: формате фиксированной длины 0 31 Логические значения и формате переменной длины 0 7 8 15 1623 8fe- 1 S S S ... S Формат состоит из k < 256 символов S, каждый из которых кодируется одним байтом. В формате фиксированной длины каж- дый бит представляет одно логическое значение, и совокупность логических значений передается и обрабатывается как одно целое. Формат переменной длины состоит из кодов букв, знаков и цифр, образующих строку алфавитно-цифровой информации — строку текста. Форматы команд. В ЕС ЭВМ команды представляются в пяти форматах RR, RX, RS, SI и SS (рис. 2.11). Первый байт команды (разряды 0—7) содержит код операции КО. Разряды 0—1 кода операции определяют формат и длину команды: Разряды 0—1 кода операции .... 00 01 10 11 Формат команды ....................RR RX RS, SI SS Длина команды, байт................ 2 4 4 6 Поля Rlt R„, R3 служат для задания адресов регистров РОН или РПЗ. Если команда предписывает операцию двоичной ариф- метики (операцию над двоичными числами), адреса Rlt R2, R3 являются адресами РОН; если операция выполняется над числами с плавающей запятой, то адреса относятся к РПЗ. Парами полей Blt и В2, D2 определяются^относительные адреса элементов информации (байт, полуслов, слов, двойных с ловчили полей), хранимых в памяти. Исполнительный адрес вычисляется по отно- сительному адресу как сумма базового адреса, хранимого в РОН 79
с адресом или В2, и смещения Dt или D2. Если Bt или В2 равно нулю, то базовый адрес считается равным нулю независимо от значения, хранимого в РОН с адресом 0. Команды формата RR определяют операцию типа регистр — регистр. Первый операнд, тип которого (полуслово, слово или двойное слово) определяется кодом операции, задается адресом Rx, второй операнд — адресом R2, и результат записывается по адресу R±. 1 Команды формата RX определяют операции типа регистр — память, при этом адрес ячейки памяти является модифицируемым (индексируемым). Адрес первого операнда и одновременно резуль- тата указывается в поле Rt. Адрес второго операнда является относительным модифицируемым адресом, определяемым полем индекса Х2, базового адреса В2 и смещения D2. Исполнительный адрес вычисляется как сумма А = РОН[Х2] + РОН[В2] ф- -|-О2, где РОН [Х2 ], РОН [В2 ] — значения индекса и базового адреса, хранимые в РОН с адресами Х2, В2. Если Х2 = 0, то принимается, что индекс равен нулю. Аналогично, при В2 = 0 базовый адрес считается равным нулю. Команды формата RS определяют операции типа регистр — память и являются 3-адресными. Два адреса Rr, R3 являются адресами РОН. Поля В2, D2 задают относительный адрес элемента информации, хранимого в ОП. В командах, формата S1 второй операнд задается непосред- ственным адресом /2, представляющим значение операнда. 80
Команды формата SS определяют операции типа память — память над по- лями переменной длины. Поля Llt Л2 указывают длины операндов, участву- ющих в операциях десятич- ной арифметики. Адреса первого и второго операн- дов являются относитель- ными и определяются по- лями Blt Dr и В2, £>2. Результат помещается на место первого операнда. Команды общего наз- начения. Эти команды объединяют: операции двоичной арифметики, вы- полняемые над целыми числами, и логические опе- рации над полусловами, словами и полями перемен- ной длины; посылочные операции, обеспечивающие передачу информации ме- жду РОН и ОП; переходы. Перечень арифметиче- ских и логических опе- раций, реализуемых ко- мандами общего назначе- ния, приведен в табл. 2.1. Операции, указанные в та- блице под номерами 1—9, обрабатывают слова и по- луслова как целые двоич- ные числа. В операциях сложения и вычитания ко- дов все 32 разряда слова, включая знаковый разряд, рассматриваются как циф- ровые разряды, т. е слова обрабатываются как 32- разрядные двоичные чис- ла. При выполнении не- которых операций выра- батывается признак ре- зультата, который может принимать четыре значе- Таблица 2.1 Команды общего назначения. Арифметические и логические операции № Операция Формат команды Признак резуль- тата 1 Сложение RR, RX + 2 Сложение полу- слова RX + 3 Сложение кодов RR, RX + 4 Вычитание RR, RX + 5 Вычитание полу- слова RX + 6 Вычитание кодов RR, RX + 7 Умножение RR, RX 8 Умножение полу- слова RX 9 Деление RR, RX 10 Сравнение RR, RX + 11 Сравнение полу- слова RX + 12 Сравнение кодов RX, SI, SS + 13 И RR, RX, SI, SS + 14 ИЛИ RR, RX, SI, SS + 15 Исключающее ИЛИ RR, RX, S/, SS + 16 Сдвиг влево RS + 17 Сдвиг влево двой- ной RS + 18 Сдвиг влево ко- дов RS 19 Сдвиг влево двой- ной кодов RS 20 Сдвиг вправо RS + 21 Сдвиг вправо двойной RS + 22 Сдвиг вправо ко- дов RS 23 Сдвиг вправо двойной кодов RS 24 Преобразование в двоичную RX 25 Преобразование в десятичную RX 26 Упаковать SS 27 Распаковать SS 28 Перекодировать SS 29 Перекодировать и проверить SS + 30 Проверить по маске SI + 81
пия 0, 1,2 или 3, указывающие на то, что результат операципсо- ответственно равен нулю, меньше нуля, больше нуля или перепол- няет формат. Значение признака результата может анализироваться командами условного перехода с целью выбора адреса следующей выполняемой команды. Операции, выполнение которых сопрово- ждается выработкой признака результата, отмечены в таблице зна- ком плюс. При выполнении остальных операций признак резуль- тата сохраняется неизменным, т. е. характеризует ранее получен- ный результат. Операции с номерами 10—23 относятся к классу логических операций. Результатом операции сравнения является только признак результата: 0 — операнды равны; 1 — первый операнд меньше; 2 — первый операнд больше. Операции И и ИЛИ выполняются путем поразрядного логического умножения (конъюнкция) и поразрядного логического сложения (дизъюнк- ция) операндов, которые рассматриваются как наборы логических значений. Результат операции ИСКЛЮЧАЮЩЕЕ ИЛИ вы- числяется как поразрядная сумма операндов по модулю два. Результат равен нулю, если операнды одинаковы, т. е. имеют одинаковые значения в каждом из разрядов. Как видно из перечня форматов команд, в качестве операндов в операциях И, ИЛИ и ИСКЛЮЧАЮЩЕЕ ИЛИ могут участвовать слова, хранимые в РОИ и ОП, а также непосредственно адресуемые операнды и поля переменной длины. В операциях сдвига направление сдвига задается кодом операции, а число сдвигов — значением второго операнда, хранимого в ячейке ОП. Сдвиг двойной распростра- няется сразу на два слова, хранимых в РОН с адресами Rlt ф- + 1. Операции 24—30 являются операциями специальной ариф- метики и обеспечивают: преобразование десятичных чисел в двоич- ную систему счисления и обратно; преобразование десятичных чисел из формата с зоной в упакованный формат и обратно; пере- кодирование и проверку полей переменной длины. Операция перекодирования используется для замены кодов символов дру- гими кодами и сводится к последовательной замене каждого байта соответствующим ему байтом, указанным в таблице перекодиро- вания. Перекодирование с проверкой позволяет выделять опре- деленные символы в поле переменной длины и за счет этого раз- делять поле на отдельные предложения, отделяемые друг от друга некоторыми символами, например точками и запятыми. Операция проверки по маске используется для сравнения кода символа (байта), хранимого в ОП по заданному адресу, с заданным кодом. Результатом операции является признак результата. Посылочные операции, входящие в состав команд общего назначения, перечислены в табл. 2.2. Операции загрузки служат для передачи слов между РОН и ячейками ОП. Команда формата инициирующая операцию загрузки, обеспечивает передачу слова из одного РОН в другой, а команда формата RX — передачу в РОН из ОП слова, полуслова или байта. Операция загрузки адреса помещает в регистр адрес второго операнда, указан- 82
цый в команде. Когда загрузка выполняется с проверкой, кроме передачи слова из регистра в регистр формируется признак результата. При загрузке дополнения передается дополнительный код второго операнда, что рав- носильно изменению знака ве- личины на обратный. Операция групповой загрузки обеспечи- вает загрузку нескольких или всех РОН словами, хранимыми в заданной области ОП. При Таблица 2.2 Команды общего назначения. Посылочные операции — Операция Формат команды * га к 1 с S Q. от н c2.S Загрузка Загрузка адре- са Загрузка и проверка Загрузка до- полнения Загрузка по- луслова Загрузка групповая Загрузка от- рицательная Загрузка по- ложительная Прочитать символ Запись в па- мять Запись в па- мять символа Запись в па- мять полуслова Запись в па- мять групповая Пересылка Пересылка цифр Пересылка со сдвигом Пересылка зон RR, RX RX RR RR RX RS RR RR RX RX RX RX RS SI, SS SS SS SS + 4- + + Т а б л и ц a 2.3 Команды обработки чисел с плавающей запятой № Операция Формат команды Признак резуль- тата 1 Сложение с нормализацией RR, RX + 2 Сложение без нормализации RR, RX + 3 Вычитание с нормализацией RR, RX + 4 Вычитание без нормализации RR, RX + 5 Умножение RR'RX G Деление RR, RX 7 Пополам RR 8 Сравнение RR, RX + 9 Загрузка RR, RX 10 Загрузка и проверка RR + 11 Загрузка до- полнения RR + 12 Загрузка отри- цательная RR + 13 Загрузка по- ложительная RR + 14 Запись в па- мять RX загрузке положительной в РОН передается абсолютное значение числа, а при загрузке отрицательной — число со знаком ми- нус. Операции записи служат для передачи слов, символов (байт), полуслов или совокупности слов из ОП в РОН. При этом состояние РОН не изменяется. Операции пересылки исполь- зуются для перемещения полей переменной длины в ОП. При этом байты, составляющие поле, записываются в ячейки ОП, соответствующие другому полю. При пересылке цифр передается 83
не весь байт, а только его четыре правых разряда — цифра. Опе- рация пересылки со сдвигом служит для сдвига десятичных чисел, представляемых полями переменной длины. При этом операнд сдвигается на четыре двоичных разряда, что соответствует сдвигу десятичного числа на один десятичный разряд. Пересылка зон выполняется так же, как пересылка цифр, но передаются только четыре старших разряда байта — зона. Операции перехода служат для управления порядком выпол- нения команд и имеют следующий формат команд: Условный^ переход................................. RR, RX Переход по счетчику............................... RR, RX Переход по индексу больше .......................... RS Переход по индексу меньше или равно ............... RS Переход с возвратом............................... RR, RX Выполнить........................................... RX Операция условного перехода реагирует на значения призна- ков результата и обеспечивает переход либо к следующей по порядку команде программы, либо к команде с адресом, указан- ным в команде_ перехода. Переход по счетчику сводится к вычи- танию единицы из значения, хранимого в РОН и называемого счетчиком. Если результат не равен нулю, то выполняется пере- ход к команде с адресом, указанным в команде перехода. Если результат равен нулю, выполнение команд продолжается в есте- ственной последовательности. Аналогичным образом выполняется переход по индексу, но значение индекса, хранимое в РОН, изме- няется на заданную величину и сравнивается с заданным значе- нием индекса. Результат сравнения влияет на выбор адреса сле- дующей команды: если индекс больше (меньше) заданного значе- ния, выполняется переход к команде с адресом, указанным в команде перехода; в противном случае команды выполняются в естественном порядке. Переход с возвратом служит для обраще- ния к подпрограммам и обеспечивает формирование и загрузку в РОН адреса возврата — адреса команды, следующей за коман- дой перехода. Операция ВЫПОЛНИТЬ используется для ини- циирования команды с заданным адресом, после выполнения которой программа продолжается от команды, следующей за командой ВЫПОЛНИТЬ. Команды для обработки чисел с плавающей запятой. Эти команды служат для выполнения арифметических и посылочных операций над числами с плавающей запятой, представленными в коротком и длинном форматах — словами и двойными словами. Перечень команд приведен в табл. 2.3. Каждая из операций вы- полняется в двух модификациях: с короткими и длинными опе- рандами. Тип операнда определяется кодом операции. Операции, инициируемые командами формата RR, выполняются над значе- ниями, хранимыми в РПЗ, и результат помещается на место пер- вого операнда. В командах формата RX первый операнд выби- рается из РПЗ, второй — из ОП, и результат операции записы- 84
бается в РПЗ на место первого операнда. При выполнении опера- ций, отмеченных знаком плюс, формируется признак результата. Преобразование чисел с плавающей запятой выполняется опе- рациями с номерами 1—8. Операция ПОПОЛАМ обеспечивает уменьшение значения числа в два раза. В отличие от операции деления на двгГона выполняется очень быстро. Операция сравне- ния служит для выработки только признака результата без сохра- нения результата в памяти. Операция выполняется путем вычи- тания операндов и в зависимости от разности признак результата принимает следующие значения: 0 — операнды равны; 1 — пер- вый операнд меньше; 2 — первый операнд больше. Посылочные операции с номерами 9—14 служат для передачи слов и двойных слов между РПЗ и ОП. При загрузке число с пла- вающей запятой передается из ОП в РПЗ или перемещается из одного регистра с плавающей запятой в другой. В результате загрузки с проверкой формируется признак результата. При загрузке дополнения знак числа изменяется на обратный, при загрузке отрицательной знак изменяется на отрицательный, а при загрузке положительной передается абсолютное значение числа. Команды десятичной арифметики. Эти команды служат для выполнения арифметических и специальных операций над деся- тичными числами, представляемыми в упакованном формате в виде полей переменной длины. Все команды десятичной арифме- тики имеют формат SS с двумя полями L1( Ь2 для указания длин операндов (см. рис. 2.11). Команды десятичной арифметики ини- циируют следующие арифметические операции: сложение деся- тичное, вычитание десятичное, умножение десятичное, деление десятичное, сравнение десятичное, сложение с очисткой. Признак результата формируется при сложении, вычитании, сравнении и сравнении с очисткой. Операция сравнения служит для получе- ния только признака результата. Операция сложения с очисткой эквивалентна сложению с нулем — второй операнд помещается на место первого операнда. Для преобразования десятичных чисел используются две специальные операции: отредактировать и от- редактировать и отметить. Первая операция служит для пре- образования числа из упакованного формата в формат с зоной, обеспечивая вставку запятых и точек, а также ликвидацию не- значащих нулей. Операция ОТРЕДАКТИРОВАТЬ И ОТМЕТИТЬ выполняется так же, но адрес первой значащей цифры числа фиксируется в регистре общего назначения с номером 1. 2.8. Функциональная организация мини-ЭВМ Мини-ЭВМ —- это машины, ориентированные на массовое при- менение в основном в качестве вычислительных устройств систем Управления и систем регистрации и обработки информации. Чтобы сделать ЭВМ доступной для широкого круга применений, стре- мятся, по возможности, снизить стоимость ЭВМ. В мини-ЭВМ 85
это достигается за счет использования коротких машинных слов (12—16 бит) и сокращения списка машинных операций. При умень- шении длины слова возникают специфичные проблемы, которые решаются в рамках функциональной организации ЭВМ нетри- виальными методами. В качестве примера, иллюстрирующего принципы функциональной организации мини-ЭВМ, рассмотрим ЭВМ PDP-8 (США) [69]. Представление информации. В ЭВМ PDP-8 единственной фор- мой представления информации является 12-битное слово О 11 Слово (2.26) Команды, числа и логические значения имеют один формат — формат слова (2.26). Арифметические операции над значениями, представляемыми в формате (2.26), выполняются как над целыми положительными числами из диапазона от 0 до 212 — 1 — 4095 или как над числами с фиксированной запятой, предельная абсо- лютная погрешность которых составляет 2-13 «=« 0,00012. Обра- ботка отрицательных чисел организуется программно. При этом операции выполняются последовательностями машинных команд, которые интерпретируют нулевой разряд слова как знаковый, а разряды 1—11 как цифровые и обеспечивают соответствующую обработку частей слова. В этом случае диапазон представления целых значений составляет от —2047 до -|-2047, а предельная абсолютная погрешность значений с фиксированной запятой — 2-12«=; 0,00024. Расширение диапазона значений или увеличение точности достигается путем представления величин, например, двумя словами и использования подпрограмм выполнения опера- ций над парами слов, характеризующих отдельные значения. Подпрограммы обеспечивают последовательную обработку слов, представляющих значения операндов: обработку слов, содержа- щих значения младших разрядов; формирование переноса из одного слова в другое и обработку слов, представляющих значения старших разрядов. Естественно, что программная реализация операций снижает эффективное быстродействие ЭВМ, но необхо- димость в таких операциях возникает достаточно редко. Адресация информации. В PDP-8 основная память имеет ем- кость 4096 слов, для адресации которых требуется 12-разрядный адрес, равный длине слова и длине команды. Чтобы уменьшить длину адресной части команды используется способ страничной организации памяти. Длина страницы равна 27 = 128 слов, и ад- рес ячейки основной памяти разделяется на два поля 0 4 5 11 Р А. 86
Поле Р содержит 5-разрядный адрес страницы Р — 0, 1, .... 31, и поле Аг— адрес ячейки 0, 1, .... 127 в странице Р. Команда, адресующая хранимый в памяти операнд, имеет следующий формат: 1 2 3 4 5 11 ко ПКА ПС А Поле КО содержит код операции, за которым следует адресная часть команды. Одноразрядный признак косвенной адресации ПКА определяет тип адреса: ПКА = 0 — адрес прямой; ПКА = = 1 — адрес косвенный. Если команда содержит косвенный адрес, то операнд определяется следующим образом: производится обра- щение к ячейке памяти с адресом, указанным в команде, и слово, выбранное из этой ячейки, определяет прямой адрес А операнда; повторное обращение к памяти по адресу А позволяет прочитать (записать) операнд. Одноразрядный признак страницы ПС опре- деляет адрес страницы, к которой производится обращение. Если ПС = 0, то адрес А1г указанный в команде, относится к нулевой странице и определяет одну из первых 128 ячеек памяти; если ПС = 1, то адрес Аг относится к текущей странице Р = 0, 1,... ..., 31, которой принадлежит выполняемая команда. В последнем случае адрес операнда находится относительно страницы, в кото- рой размещается команда. В зависимости от значений признаков адресации ПКА и ПС возможны четыре способа задания адреса операнда, приведенные в табл. 2.4. Выражение Р. АХ означает, Таблица 2.4 Способы задания адреса операнда Номер способа ПКА ПС Адрес Местоположение операнда 1 0 0 411 В ячейке Аг нулевой страницы 2 0 1 Р.Лу В ячейке А} страницы Р 3 1 0 on [4J В ячейке с адресом ОП ГЛ!], хра- нимым в нулевой странице 4 1 1 оп [p./jj В ячейке с адресом ОП [Р., хра- нимым в странице Р что адрес формируется путем составления значения адреса теку- щей страницы Р и адреса указанного в команде, а выражение ОП [х ] определяет содержимое ячейки основной памяти с адре- сом х. Таким образом, за счет прямой адресации (ПКА == 0) команда может обратиться либо к 128 ячейкам нулевой страницы, либо к 128 ячейкам текущей страницы Р. За счет косвенной адре- сации команда может обращаться к любой из 4096 ячеек памяти, но для этого необходимо использовать дополнительную ячейку памяти, в которой размещается полноразрядный адрес ячейки. 87
Автоиндексация. При обработке массивов значений возникает необходимость в последовательном чтении — записи операндов, т. е. в обращении к ячейкам A, A -f- 1, А 4~ в которых размещаются элементы х0, xlt хк массива. Для уменьшения числа команд на программирование такого рода действий исполь- зуется механизм автоиндексации, организованный следующим образом. Восемь ячеек нулевой страницы с адресами 8—17 отво- дятся для хранения адресов и называются ячейками автоиндекса- ции. При выполнении любой команды с прямым адресом (ПКА — = 0) эти ячейки функционируют, как и любые другие. При выпол- нении команды с косвенным адресом Аг = 8....... 17, относя- щимся к ячейке автоиндексации, операнд определяется следу- ющим образом: 1) из ячейки автоиндексации Аг выбирается храни- мое в ней значение Л; 2) значение А увеличивается на единицу А: — А -4-1; 3) новое значение Л записывается в ячейку и исполь- зуется в качестве адреса операнда. Таким образом, если перед выполнением команды в ячейку автоиндексации 4t = 8, ..., 17 записать уменьшенный на единицу базовый адрес массива А — 1, то многократное выполнение команды с адресной частью 'ПКА = = 1, ПС = 0, Аг приведет к последовательным обращениям к ячейкам А, А 4-1, А 4-2, .... содержащим элементы массива с базовым адресом А. Команды. В PDP-8 используются три типа команд: команды с обращением к памяти; микрокоманды; команды ввода—вывода. Команды с обращением к памяти имеют формат (2.27) и за счет 3-разрядного кода операции КО обеспечивают инициирование восьми различных операций. Операция выполняется над операн- дами, один из которых R хранится в процессоре, а другой — в основной памяти по адресу, определяемому полями ПКА, ПС, Ах. Результат операции запоминается в процессоре и может ис- пользоваться в качестве операнда в следующей операции. Перечень Т а б л и ц а 2.5 Команды с обращением к памяти Код операции Операция Действия, инициируемые командой 0 1 3 5 2 4 7 6 Логическое умноже- ние Сложение Запись и сброс Безусловный переход Переход по счетчику Обращение к подпро- грамме Микрокоманда Ввод—вывод /?:=/?А ОП [.4], А; = А4- 1 /?: = /?4-ОП[4], К:= К + 1 ОП [Л] : = /?, R : = 0, К : = К 4- 1 /< : - Л ОП [Л] : -0П1Л14- 1; ь- _ ("4-1, если ОП [Л J 4= 0; л • ~ 1 К 4- 2, если ОП [Л] = 0 ОП [Л] : = К 4- 1, К : = Л 4- 1 88
команд с обращением к памяти приведен в табл. 2.5. Здесь — итоговый регистр процессора; А — адрес, определяемый значе- нием полей ПКА, ПС, Лх команды; ОП 1/4 ] — содержимое ячейки памяти с адресом А; R — адрес команды. Первые две команды относятся к группе арифметических и логических операций. Команда логического умножения обеспечивает поразрядную конъ- юнкцию значений R и ОП 1А ]. Результат операции запоминается в процессоре и адрес /< следующей команды вычисляется увели- чением на единицу адреса А текущей команды. Операция сложе- ния выполняется над 12-разрядными словами как над целыми положительными числами. Перенос из старшего разряда суммы запоминается в процессоре как признак переполнения Р. По- сылочная операция ЗАПИСЬ и СБРОС обеспечивает запись зна- чения R в память, после чего на итоговом регистре R устанавли- вается нулевое значение. Для загрузки регистра R используется операция сложения с нулем. Операции с кодами 5, 2, 4 — пере- ходы, которые задают адрес следующей команды, отличный от естественного адреса R -f- 1. Операция ПЕРЕХОД ПО СЧЕТ- ЧИКУ используется для организации циклов. Значение счетчика, размещаемого в ячейке А, увеличивается на единицу и сравни- вается с нулем. При не нулевом значении счетчика следующей выполняется команда с адресом К 4- 1 — переход в начало цикла; при нулевом значении счетчика выполняется переход к команде с адресом А + 2 — команда перехода в начало цикла пропу- скается. Чтобы выполнить заданное число п повторений цикла, необходимо перед вхождением в цикл значение счетчика опре- делить дополнительным кодом числа п. В таком случае добавление к счетчику единицы эквивалентно вычитанию и счетчик обнулится при n-м обращении к команде ПЕРЕХОД ПО СЧЕТЧИКУ. При обращении к подпрограмме в первую ячейку А подпрограммы записывается адрес возврата /< ф- 1 и выполняется переход к пер- вой команде подпрограммы, размещаемой в ячейке А -|- 1. Пос- ледняя команда подпрограммы, обеспечивая переход по косвен- ному адресу А, передаст управление команде с адресом R ф- 1 на продолжение программы. Микрокоманды, выделяемые кодом операции КО 7, позволяют изменять и (или) анализировать значения итогового регистра R и признака переполнения Р. Микрокоманды имеют следующий формат: О 2 3 4 П 111 g3 (2.28) В разрядах кода операции указано значение 7. Бит g3 определяет группу микрокоманд: g3 = 0 — первая группа; g3 = 1 — вторая Iруппа Каждый из бит Ь4, .... инициирует определенное дей- ствие: Ь1 = 0 — действие не выполняется; Ь. = 1 — действие вы- полняется. 89
Микрокоманды первой группы инициируют следующие дей- ствия: = 1 — сброс итогового регистра /?: = 0: b8 = 1 — сброс признака переполнения Р; — 0; Ьв = 1 — инвертирование итогового регистра R: = “IT?, т. е. замена всех нулей единицами и единиц нулями; &7 = 1 — инвертирование признака переполнения Р; = \Р; Ь8 = 1, Ью = 0 — циклический сдвиг значений Р и R = г0... гп вправо па один разряд, в результате чегоР — ги и Р = Рг0 ... г10; b8 = 1, b10 = 1 — циклический сдвиг значений Р и R = г0 ... гп вправо на два разряда, в результате чего Р=г10 и R = rnPr0 ... r9; b9 = 1, b10 = 0 — циклический сдвиг значений Р и R влево на один разряд, в результате чего Р = г0 и R = гг ... г10Р; Ьа = 1, b10 — 1 — циклический сдвиг значений Р и R влево на два разряда, в результате чего Р = и R = г2 ••• Ьп = 1 -R- = R + 1. Одна микрокоманда может инициировать несколько действий, определяемых единичными значениями бит bt, ..., blv Действия выполняются в следующем порядке: 1) сброс; 2) инвертирование; 3) увеличение R на 1; 4) сдвиг. Микрокоманды второй группы (g3 = 1) служат для анализа значений признака переполнения Р, итогового регистра R и про- пуска следующей команды, если Р и R имеют требуемые значения. Такие микрокоманды можно рассматривать как своеобразные команды перехода, которые при выполнении условия передают управление команде с адресом R -|- 2 (пропуск команды), а в про- тивном случае — следующей команде с адресом R -|- 1. Условие пропуска команды задается значениями бит Ь4, ..., в микро- команде (2.28): b8 — 1 — пропуск, если R < 0; = 1, b8 = 1 — пропуск, если R > 0; be = 1 — пропуск, если R — 0; Ь8 = 1, b8 = 1 — пропуск, если R =/= 0; ft, = 1 — пропуск, если Р = 1; bi = 1, b8 = 1 — пропуск, если Р = 0; b8 = 1 — безусловный пропуск; b4 = 1 — сброс итогового регистра R: = 0; ba = 1 — логическое сложение (дизъюнкция) слова R и команды R: = R \/ (/<); b10 = 1 — останов. Выполнение микрокоманды второй группы начинается с про- верки условий, задаваемых значениями бит Ь&, .... Ь8. Если хотя бы одно из условий выполняется, то адрес следующей команды полагается равным 1\ -|- 2, иначе — равным R 1. После этого при bt = 1 выполняется сброс итогового регистра, затем при ba = 1 — логическое сложение и, наконец, при b10 = 1 — останов. В PDP-8 реализуются системные операции и операции ввода — вывода, которые будут рассмотрены в гл. 5.
Глава 3 ФУНКЦИОНАЛЬНАЯ ОРГАНИЗАЦИЯ МУЛЬТИПРОГРАММНЫХ ЭВМ 3.1. Режимы работы ЭВМ Режим работы ЭВМ определяется порядком прохождения задач через ЭВМ и в первую очередь — количеством задач, параллельно обрабатываемых на ЭВМ. Синонимом термина «режим работы ЭВМ» является режим обработки задач (инфор- мации). Однопрограммный режим. Решение задач (обработка информа- ции) на ЭВМ может быть организовано следующим образом. Про- грамма загружается в основную память ЭВМ, после чего ЭВМ начинает исполнять эту программу до получения команды на прекращение счета. Режим работы, при котором ЭВМ в любой момент времени выполняет только одну программу, называется однопрограммным. Состояния, в которых может пребывать задача, выполняемая в однопрограммном режиме, представлены на рис. 3.1. Основными являются состояния счета и ввода— вывода. В состоянии счета процессор выполняет последователь- ность команд программы до тех пор, пока не появится команда, предписывающая ввод—вывод информации. В состоянии ввода— вывода работает некоторое внешнее устройство — устройство ввода—вывода или внешнее запоминающее устройство, а про- цессор простаивает в ожидании момента окончания ввода— вывода. По окончании операции ввода—вывода процессор про- должает счет и так до тех пор, пока процесс вычислений, пред- писанный программой, не будет завершен. После этого в ЭВМ может быть загружена очередная программа. На рис. 3.2, а приведена временная диаграмма работы уст- ройств ЭВМ в однопрограммном режиме. Из диаграммы видно, что в любой момент времени работает только одно устройство ЭВМ, а остальные простаивают в ожидании окончания пред- шествующего этапа обработки. Если учесть, что внешние устрой- ства имеют невысокое быстродействие и время выполнения опера- ции ввода—вывода составляет десятки—сотни миллисекунд, то становится ясно, сколь велики могут быть простои быстро- действующего процессора и основной памяти. Даже в малых ЭВМ с быстродействием порядка 50 тыс. операций/с коэффициент про- стоя процессора может достигать 30—50%. С увеличением быстродействия процессора коэффициенты простоя процессора и основной памяти увеличиваются, стремясь в пределе к 100%. Столь же значительными оказываются простои других устройств ЭВМ.
Таким образом, однопрограммный режим характеризуется низким коэффициентом загрузки оборудования. В результате этого производительность ЭВМ оказывается невысокой и мед- ленно возрастает с увеличением быстродействия процессора. Однопрограммный режим допустим только для малых ЭВМ, быстродействие которых не превосходит 100 тыс. операций/с. Для средних и больших ЭВМ такой режим работы приводит к слишком большим потерям производительности из-за недоисполь- зования производительности устройств, входящих в состав ЭВМ. Загрузка программы Окончание обработки Рис. 3.1. Про- цесс решения задачи в одно- программном режиме ВЗ Рис. 3.2. Диаграмма однопрограммного (а) и муль- типрограммного (б) режима работы ЭВМ (П — про- цессор; ВУ—внешнее устройство) Мультипрограммный режим. Для уменьшения простоев уст- ройств в память ЭВМ можно загрузить сразу несколько программ и выполнять их параллельно, совмещая во времени счет по одним программам с выполнением операций ввода—вывода для других программ. Режим работы ЭВМ, при котором обеспечивается параллельное выполнение нескольких программ путем совмеще- ния во времени работы процессора и внешних устройств, назы- вается мультипрограммным. На рис. 3.2, б представлена вре- менная диаграмма выполнения трех программ А, В, С в мульти- программном режиме. В данном случае за каждой из программ А, В, С закреплено отдельное внешнее устройство ВУ2, ВУ3 соответственно, но все программы используют одно общее устрой- ство— процессор. Когда в программе А, обрабатываемой про- цессором, встречается команда ввода—вывода, процессор ини- циирует операцию ввода—вывода в устройстве ВУ1 и переклю- чается на выполнение программы В, ожидающей момента осво- бождения процессора. По окончании этапа счета по программе В процессор переключается на выполнение программы С. Процессор простаивает только в том случае, если все программы, обрабаты- ваемые в мультипрограммном режиме, находятся в состоянии 92
3.3. Причиной возникновения задачи Рис. 3.3. Процесс решения задачи в мульти- программном режиме ввода—вывода. С увеличением числа одновременно обрабатыва- емых программ увеличивается вероятность того, что для каждого устройства в любой момент времени найдется работа, вследствие чего производительность ЭВМ возрастает. Процесс решения задачи в мультипрограммном режиме про- текает в соответствии с рис. ~ является задание, которое содержит сведения о про- грамме решения задачи и данных, обрабатываемых программой. Задание вво- дится в ЭВМ и, определяя программу и данные, по- зволяет установить потреб- ность задачи в ресурсах ЭВМ: емкости основной и внешней памяти и типах устройств ввода—вывода. В момент окончания обра- ботки ранее начатой за- дачи затребованные ре- сурсы могут быть предоста- влены очередной задаче. После обеспечения задачи ресурсами программа за- гружается в выделенную для нее” область основной памяти и становится гото- вой к выполнению. В про- цессе обработки задача мо- жет находиться в четырех состояниях, выделенных на рис. 3.3 штриховкой. В состоянии ожидания счета задача находится до момента освобождения процессора, который может быть занят обработкой других задач. Когда процессор освобождается, задача переходит в состояние счета — процессорной обработки, в котором она пребывает до получения команды ввода—вывода. В общем случае для ввода— вывода может использоваться внешнее устройство, которое об- служивает несколько параллельно обрабатываемых задач. По этой причине операция ввода—вывода не может быть начата немедленно, и задача должна ожидать момента освобождения внешнего устройства, занятого обслуживанием других задач. По окончании ввода — вывода задача вновь переходит в состояние ожидания счета. Этот процесс продолжается до команды на пре- кращение счета, по которой обработка задачи заканчивается, 93
предоставленные задаче машинные ресурсы освобождаются и передаются очередной задаче, формируемой по введенному в ЭВМ заданию на^'обработку. Из сравнения рис. 3.1 и 3.3 видно, что время обработки задачи в мультипрограммном режиме больше, чем в однопрограммном режиме. Это связано с процессом ожидания моментов освобождения процессора и внешних устройств при мультипрограммной обра- ботке. Таким образом, мультипрограммирование приводит к уве- личению производительности ЭВМ — количества задач, обраба- тываемых за единицу времени, но одновременно с этим увеличи- Рис. 3.4. Влияние коэффициента мультипрограммирования на произ- водительность Л и время пребыва- ния задач U в ЭВМ вается время пребывания задач в ЭВМ — время от момента посту- пления задания на обработку до момента окончания обработки. Производительность Л и время пребывания задач U зависят от числа одновременно обрабатывае- мых задач М — коэффициента мультипрограммирования. Харак- тер зависимостей Л (Л1) и U (М) представлен на рис. 3.4. В одно- программном режиме (Л4 = 1) производительность и время пре- бывания имеют минимальные зна- чения: Л = Лх; U = С уве- личением числа параллельно об- рабатываемых задач М произво- дительность стремится к максимальному значению Л’-> Лгаах, определяемому количеством устройств в*ЭВМ и’их быстродейст- вием. При этом время пребывания задач в ЭВМ неограниченно возрастает. Режим пакетной обработки задач. При использовании ЭВМ для решения научно-технических задач и задач обработки данных (экономических задач) стремятся максимально уменьшить сто- имость обработки информации. Эта цель равносильна уменьшению цены производительности ЭВМ 13 = S/Л, где S — стоимость ЭВМ. Чтобы уменьшить /3, необходимо увеличить производитель- ность Л, что достигается за счет увеличения загрузки устройств, т. е. уменьшения их простоя. Чтобы уменьшить простои оборудо- вания, используется следующий способ организации работы ЭВМ. Во внешнюю память ЭВМ вводится большое число задач (зада- ний) — пакет задач, который периодически через несколько часов или постоянно пополняется новыми задачами. Из пакета выби- раются и загружаются в основную память М задач, которые начи- нают обрабатываться в мультипрограммном режиме. Когда обра- ботка одной задачи заканчивается, на ее место загружается очеред- ная задача из пакета. Режим работы ЭВМ, при котором в очереди на обработку находится большое число задач, достаточное для 94
стоимости Рис. 3.5. Влияние коэффициента мультипрограммирования на цену производительности ЭВМ загрузки ЭВМ работой в течение нескольких часов, называется режимом пакетной обработки задач. Как было отмечено, цель пакетной обработки — уменьшение стоимости обработки задач. Рассмотрим, как влияет коэффициент мультипрограммирования М на стоимость обработки задач. С уве- личением М производительность Л возрастает, стремясь к пре- дельному значению Лтах (рис. 3.5). Чтобы увеличить коэффициент мультипрограммирования М, необходимо оснастить ЭВМ памятью, достаточной для размещения в пей М программ. Увеличение емкости памяти приводит к росту случае цена производительности /3 = S/А изменяется с увеличе- нием М, как показано на рис. 3.5. При некотором коэффициенте муль- типрограммирования М=М0 цена производительности S/А принима- ет минимальное значение. Опти- мальное значение Мо коэффициен- та мультипрограммирования зави- сит от класса задач, обрабатывае- мых ЭВМ, и отношения стоимости памяти, необходимой для обслу- живания одной программы, к стои- мости ЭВМ. Если это отношение велико, то оптимальным является коэффициент Л40=1, т. е. однопрограммный режим работы -ЭВМ. Такая ситуация типична для малых ЭВМ, оснащаемых процессо- ром небольшой стоимости и малым комплектом внешних устройств. В общем случае оптимальный коэффициент мультипрограммиро- вания 1 <Л40<оо. Средние ЭВМ обычно эксплуатируются врежиме мультипрограммирования с коэффициентом Л4 = 4 ч- 8. Для боль- ших ЭВМ коэффициент мультипрограммирования обычно равен 8—16, но в отдельных случаях может достигать достаточно боль- ших значений. В пакетном режиме задачи обрабатываются в темпе, определя- емом производительностью ЭВМ, которая зависит от состава и быстродействия устройств и коэффициента мультипрограмми- рования. Время обработки задачи определяется суммой времени ожидания начала обработки (времени пребывания в пакете) и вре- мени пребывания задачи в ЭВМ. Последняя составляющая отно- сительно невелика, но время ожидания начала обработки очень велико и обычно составляет несколько часов. Режим работы в реальном масштабе времени. Многие приме- нения ЭВМ требуют, чтобы обработка информации протекала в темпе, определяемом динамикой процессов, которые являются источниками информации, поступающей на вход ЭВМ. Такая ситуация имеет место при использовании ЭВМ в системах управле- ния, регистрации и обработки измерительной информации. В этих 95
случаях задачи должны решаться в темпе, определяемом динами- кой управляемого объекта —скоростью поступления информации от источников. Такая же ситуация возникает и при выполнении расчетных работ на ЭВМ. Для уменьшения сроков разработки программ и выполнения расчетов желательно, чтобы пользователь получал от ЭВМ результаты по возможности быстрее, например за время, не превышающее удвоенного времени решения задачи в однопрограммном режиме. Сказанное свидетельствует о том, что многие применения ЭВМ требуют такой организации обра- ботки информации, при которой выполнялись бы заданные огра- ничения на время пребывания задач в ЭВМ. При этом вопрос об увеличении производительности ЭВМ, как в системах пакетной обработки, не ставится — производительность задана, но тре- буется выполнить заданные ограничения на время пребывания задач в ЭВМ. Режим работы ЭВМ, при котором обработка задач выполняется в темпе, определяемом динамикой процессов на входе ЭВМ, называется работой в реальном масштабе времени (РМВ). Для режима РМВ характерно, что моменты поступления задач на обработку определяются не темпом работы ЭВМ, а процессами вне ЭВМ — сигналами времени или с внешних устройств, под- ключенных к ЭВМ. Вся информация, поступающая в ЭВМ, должна быть принята в общем случае без отказов в обслуживании и обра- ботана за время, не превышающее заданного, а в некоторых слу- чаях — за минимально возможное время. Для уменьшения вре- мени обработки задачи решаются в мультипрограммном режиме. При этом выполнение программы может быть прервано, чтобы начать другую программу, которая обслуживает процесс с же- сткими ограничениями на время получения результатов. 3.2. Средства мультипрограммирования Для обеспечения мультипрограммирования в режиме пакетной обработки или реальном масштабе времени необходимо, чтобы ЭВМ обладала следующими средствами и функциональными воз- можностями. 1. Емкость памяти ЭВМ должна быть достаточна для размеще- ния информации, относящейся к нескольким задачам, которые должны обрабатываться в мультипрограммном режиме. Это озна- чает, что ЭВМ, предназначенная для мультипрограммной обра- ботки, должна иметь основную и внешнюю память, емкость кото- рой превышает емкость памяти однопрограммной ЭВМ. 2. В ЭВМ должна быть обеспечена возможность параллельной работы процессора и внешних устройств, что достигается соответ- ствующей структурной организацией ЭВМ. Если в ЭВМ имеются N устройств, каждое из которых может функционировать парал- лельно с остальными устройствами, то одновременно может вы- полняться до N программ, обслуживаемых в каждый момент вре- мени разными устройствами. 96
3. ЭВМ должна быть оснащена средствами, обеспечивающими управление порядком выполнения задач, принятых на обра- ботку. Управление сводится к следующим действиям: 1) вводу заданий (информации), относящихся к новым задачам, в процессе обработки других задач; 2) обеспечению задач основной и внешней памятью, а также устройствами ввода — вывода, необходимыми для выполнения задач; 3) загрузке программ в основную память; 4) распределению времени работы процессора и внешних устройств между обрабатываемыми задачами; 5) обработке особых ситуаций, возникающих при выполнении программ (например, переполне- ний) и в процессе функционирования устройств (например, сбоев в работе), без останова ЭВМ. Алгоритм управления мультипро- граммной обработкой очень сложен и потому реализуется в основ- ном программными средствами — управляющими программами. Управляющие программы реализуют перечисленные действия с помощью традиционной системы команд. Для уменьшения затрат времени на управление процессом мультипрограммной обработки в систему команд ЭВМ могут вводиться специальные операции, например операции обращения к управляющим про- граммам и инициирования программ. 4. ЭВМ должна иметь систему прерывания программ, с по- мощью которой управляющие программы извещаются об опре- деленных событиях в работе ЭВМ: моментах окончания операций ввода — вывода; особых ситуациях, возникающих в процессе выполнения программ и работе устройств, и т. д. При возникнове- нии такого рода событий формируются специальные сигналы — сигналы прерывания, которые поступают в процессор и обеспе- чивают переключение его на выполнение программ, обслужива- ющих соответствующие события. Система прерывания расширяет функциональные возможности ЭВМ, обеспечивая такие переходы в программах, которые не могут быть учтены в процессе соста- вления программ. 5. Для выполнения расчетов по программам, которые могут содержать ошибки, допущенные при программировании, ЭВМ должна иметь средства защиты памяти. Средства защиты памяти обеспечивают защиту информации, относящейся к программе, от помех, которые возникают при работе других программ, вы- полняемых в мультипрограммном режиме. Помехи возникают, когда одна программа из-за ошибок в программировании записы- вает информацию в ячейки памяти, выделенные другой программе. Средства защиты памяти исключают возможность обращения программы к областям основной памяти, принадлежащим другим программам. За счет этого обработка программ в мультипрограмм- ном режиме с точки зрения получаемых результатов протекает так же, как и в однопрограммном режиме. Необходимая для мультипрограммной обработки емкость па- мяти и параллелизм в работе процессора и внешних устройств обеспечиваются соответствующей структурной организацией ЭВМ, 4 С. А. Майоров, Г. И. Новиков 97
которая рассматривается в последующих главах. Принципы по- строения управляющих программ ЭВМ выходят за рамки этой книги и будут рассмотрены лишь вкратце. В этой главе сосредото- чим внимание на функциях, которыми должна обладать мульти- программная ЭВМ, — операциях для управления программами, способах прерывания программ и функциях средств, обеспечива- ющих защиту памяти. 3.3. Функции управляющих программ Мультипрограммная работа ЭВМ обеспечивается с помощью управляющих программ, которые координируют работу уст- ройств ЭВМ в процессе параллельного выполнения нескольких программ. Принцип управления мультипрограммной обработкой иллюстрируется рис. 3.6. Рис. 3.6. Управление мультипрограммной обработкой информации Основной управляющей программой является супервизор. Су- первизор контролирует состояние и управляет работой всех устройств ЭВМ: процессора /7, основной памяти ОП, внешних запоминающих устройств ПЗУ и устройств ввода —вывода УВВ. Контроль состояния устройств сводится к получению и сохране- нию в супервизоре следующей информации: устройство включено или выключено, исправно или неисправно, занято или свободно. Для каждого запоминающего устройства супервизор ведет та- блицу, в которой отмечается местоположение (адреса) занятых и свободных участков памяти и размещение информации в пре- делах запоминающего устройства. Управление работой устройств сводится к закреплению устройств и областей памяти за програм- мами, инициированию работы устройств и освобождению уст- ройств и областей памяти по окончании их использования про- граммами. В момент окончания этапа процессорной обработки или операции ввода — вывода супервизор получает извещение 98
об этом в виде сигнала прерывания, формируемого процессором или внешним устройством и после соответствующей обработки в процессоре воздействующего на супервизор. Кроме того супер- визор обслуживает особые ситуации, возникающие при выполне- нии программ и в работе устройств: переполнение, нарушение защиты памяти, обрыв бумаги в печатающем устройстве, замятие перфокарты и т. п. Информация о таких ситуациях передается в супервизор также с помощью сигналов прерывания. Через устройства ввода — вывода на супервизор воздействуют внешние сигналы: нажатие кнопки на пульте, свидетельствующее о необ- ходимости принять информацию от оператора; нажатие кнопки о готовности устройства для дальнейшей работы и т. п. Другой управляющей программой является планировщик, функция которого — ввод заданий и обеспечение их ресурсами с целью создания задач, подготовленных для обработки (см. рис. 3.3). Задания поступают в ЭВМ через устройства ввода — вывода и записываются в память. Планировщик, руководствуясь некоторой стратегией планирования, выбирает первоочередные задания и начинает обеспечивать их необходимыми ресурсами: программами, данными, необходимыми емкостями основной и внешней памяти и устройствами ввода — вывода. Потребность в ресурсах выявляется из задания, программы, на основе которой должно выполняться задание, и описания данных. Запросы на требуемые ресурсы посылаются в супервизор, который удовлет- воряет их по мере возможности. При обеспечении задания ресур- сами планировщик заполняет информационную таблицу, в кото- рую заносится перечень конкретных ресурсов, предоставляемых для выполнения задания. Задание, обеспеченное всеми необходи- мыми ресурсами, становится задачей, которая включается в смесь из М задач Jlt ..., Jм, выполняемых ЭВМ под управлением супер- визора. Супервизор инициирует задачу путем загрузки соответству- ющей программы в основную память. При освобождении процес- сора задача переходит в состояние счета (см. рис. 3.3) и обрабаты- вается процессором до тех пор, пока не появится необходимость во вводе — выводе информации. Все запросы на ввод — вывод, формируемые программами, обрабатываются супервизором, ко- торый, реагируя на запрос, инициирует работу внешнего устрой- ства, закрепленного за задачей. В период выполнения операции ввода — вывода задача находится в состоянии ожидания оконча- ния ввода — вывода, а супервизор переключает процессор на обработку другой задачи, находящейся в состоянии ожидания счета. В момент окончания операции ввода — вывода внешнее устройство формирует сигнал прерывания, реагируя на который супервизор ставит задачу в очередь на процессорную обработку. Когда выполнение задачи заканчивается, супервизор инициирует планировщик, который начинает подготавливать к обработке очередное задание.
Чтобы отличать программы, обрабатываемые ЭВМ, от управля- ющих программ, первые называются прикладными программами. И прикладные программы, и управляющие программы реали- зуются. на одних и тех же устройствах ЭВМ поочередно. Планиров- щик включается в работу супервизором и выполняется процес- сором в следующих случаях: 1) при поступлении из устройства ввода —вывода директивы на ввод задания или пакета заданий, воспринимаемой и декодируемой супервизором; 2) по окончании обработки задачи для создания следующей задачи. Супервизор включается в работу: 1) сигналами прерывания; 2) командами прикладных программ и планировщика, посредством которых эти программы обращаются к супервизору для получения ресур- сов, контролируемых супервизором, и выполнения операций ввода — вывода. Прикладные программы обрабатываются про- цессором в промежутки времени, когда процессор не занят вы- полнением управляющих программ — супервизора и планиров- щика. Супервизор и планировщик — достаточно большие программы, объем которых во много раз превышает емкость основной памяти. Поэтому супервизор и планировщик размещаются во внешней памяти, а в основной памяти выделяется небольшая область для размещения основной части супервизора, информации о состо- янии устройств, памятей и задач и отдельных подпрограмм супер- визора. Часть супервизора, постоянно присутствующая в основной памяти, называется резидентной частью. Подпрограммы, входящие в состав этой части, обеспечивают первичную обработку сигналов прерывания и команд обращения к супервизору, а также вызов в основную память подпрограмм супервизора, необходимых для обслуживания прерываний. Планировщик вызывается в область основной памяти, отведенную для прикладных программ, только тогда, когда закончено выполнение задачи и возникает необходи- мость в подготовке очередной задачи. Программа новой задачи обычно загружается в основную память на то место, в котором размещается планировщик, создающий задачу. 3.4. Привилегированные операции и состояния процессора Супервизор централизует в себе все функции по управлению оборудованием ЭВМ. Это означает, что прикладные программы могут использовать только те области памяти, которые выделены супервизором, и могут обращаться только к тем устройствам и только в такие моменты времени, которые назначены супервизором. Следовательно, ни одна прикладная программа не может содер- жать в своем составе системные команды, влияющие на состояние устройств и ЭВМ в целом, и команды ввода—вывода, поскольку появление таких команд в прикладной программе позволяло бы программе бесконтрольно использовать оборудование ЭВМ, явля- ющееся общим для всех программ. Системные операции и опера- 100
ции ввода — вывода, которые могут изменять состояние оборудова- ния, используемого несколькими программами, называются при- вилегированными операциями. Привилегированные операции (команды) могут использоваться только в программах, суперви- зора и недопустимы в прикладных программах. Чтобы контролировать порядок использования привилегиро- ванных операций, принято выделять два альтернативных состоя- ния процессора: состояние супервизор, в котором процессор выпол- няет программы супервизора, и состояние задача, в котором про- цессор выполняет прикладные программы. В состоянии суперви- зор допускается выполнение любых операций, а в состоянии за- дача— только непривилегированных операций. Если процессор находится в состоянии задача, появление в программе привиле- гированной операции считается ошибкой и выполнение программы прекращается. Состояние супервизор—задача устанавливается командой, инициирующей программу. Эта команда относится к классу привилегированных и используется только супервизо- ром. Если инициируется прикладная программа, то устанавли- вается состояние задача; если инициируется программа суперви- зора, процессор переключается в состояние супервизор. Кроме состояния супервизор—задача в мультипрограммных ЭВМ вводятся следующие пары альтернативных состояний про- цессора: счет—ожидание и работа—стоп. В состоянии счет про- цессор занят выполнением прикладных программ и программ супервизора. В состоянии ожидания процессор не выполняет команд, а ожидает сигнал прерывания, по поступлении которого работа будет продолжена. В состоянии работа процессор может выполнять счет по программе или находиться в ожидании сигнала прерывания, будучи готовым приступить к работе. В состоянии стоп процессор прекращает выполнение команд и не реагирует на сигналы прерывания. Из состояния стоп процессор может быть выведен только с инженерного пульта управления. 3.5. Организация прерывания программ Назначение системы прерывания — реагировать на опреде- ленные события путем прерывания работы процессора по выпол- нению, программы и переключения процессора на выполнение Другой программы, обслуживающей соответствующую ситуацию. В момент возникновения определенного события (причины) фор- мируется сигнал прерывания, который поступает в процессор и инициирует специальную операцию — операцию прерывания, обес- печивающую прерывание одной программы и переключение про- цессора на выполнение другой программы. Сигналы прерывания. Причины, приводящие к генерированию сигналов прерывания, принято подразделять в зависимости от источников прерывания на следующие группы. 101
1. Внешние прерывания. Причинами внешних прерываний являются события, происходящие вне ЭВМ, при этом соответству- ющие сигналы прерывания поступают на входы ЭВМ. К внешним относятся прерывания от кнопок на пультах операторов, по сиг- налам времени, от других ЭВМ вычислительного комплекса и т. д. Оператор ЭВМ, работающий за пультом управления, нажимает кнопку, требуя обслуживания со стороны ЭВМ, например для посылки директивы или сообщения. Нажатие кнопки на пульте оператора является причиной, по которой формируется сигнал прерывания. Для определения астрономического времени и отсчета интервалов времени в процессор встраиваются электронные часы, с помощью которых может быть отсчитан заданный интервал вре- мени. В момент окончания интервала формируется сигнал преры- вания, реагируя на который процессор переключается на выпол- нение определенной программы. Аналогичным образом формиру- ются и другие сигналы прерывания, внешние по отношению к ЭВМ. 2. Прерывания от ввода—вывода. Прерывания от ввода—вы- вода возникают в средствах ввода—вывода в момент завершения операции ввода—вывода или при возникновении особых ситуа- ций во внешних устройствах: невозможности выполнить операцию, инициируемую процессором; при отказах оборудования и т. д. Прерывание от ввода—вывода дает возможность процессору отве- тить на сигналы от устройств ввода—вывода, отметить окончание операции ввода—вывода, инициировать процесс приема—выдачи информации, послать операторам указания о замене бумаги в пе- чатающем устройстве и т. д. 3. Программные прерывания. При выполнении программы могут возникнуть необычные ситуации: некорректность кода опе- рации в команде, неправильные адреса, нарушение защиты па- мяти, переполнение, потеря значимости и т. д. В этих случаях процессор прерывает выполнение программы и переключается на обработку прерывания. Обработка обычно производится супер- визором, который устанавливает причину прерывания и выводит информацию, необходимую для внесения исправлений в про- грамму. 4. Прерывания при обращении к супервизору. Для выполне- ния действий, выходящих за рамки возможностей непривилеги- рованных операций, используются программы супервизора. Обра- щение к ним инициируется командой ОБРАЩЕНИЕ К СУПЕР- ВИЗОРУ, при выполнении которой процессор переключается в состояние супервизор и управление передается супервизору. Данная команда прерывает работу процессора — прекращает выполнение прикладной программы и инициирует работу супер- визора. 5. Прерывание от схем контроля. Для контроля верности ин- формации в ЭВМ встраиваются схемы, контролирующие правиль- ность передачи, хранения и обработки информации. При появле- нии сигнала от схем контроля об ошибке в ЭВМ выполнение те- 102
кущей программы прекращается и процессор переключается на выполнение диагностической программы, обеспечивающей лока- лизацию причины ошибки. Каждая причина (сигнал) прерывания индентифицируется но- мером 1,2, ..., называемым кодом причины прерывания. Код при- чины прерывания формируется процессором в момент поступле- ния сигнала, вызывающего прерывание. Приоритеты прерываний. Прерывания происходят в момент окончания выполнения команды. За время выполнения команды в процессор может поступить несколько сигналов прерывания, из которых только одному может быть предоставлено право на- чать выполнение соответствующей программы. Для выделения из множества сигналов, поступивших в процессор, одного сигнала, который и вызовет прерывание, всем сигналам прерывания при- сваиваются приоритеты. Приоритет характеризуется целым чис- лом 1, 2,... Чем меньше значение числа, тем выше приоритет. Приоритеты распределяются между причинами (сигналами) пре- рывания в зависимости от степени важности причины. Обычно высший приоритет имеют прерывания от схем контроля, которые принимаются на обработку в первую очередь. Низший приори- тет может быть присвоен прерываниям от ввода—вывода. Маскирование прерываний. Если возникло прерывание от схем контроля, нет необходимости реагировать на остальные причины прерывания до тех пор, пока не будет установлена причина ошибки и подтверждена работоспособность ЭВМ. Аналогично, при преры- вании по причине q, инициировавшей соответствующую про- грамму, нет смысла реагировать на прерывания по этой же при- чине до конца выполнения программы, поскольку повторное ини- циирование программы может привести к курьезным результатам. Следовательно, ЭВМ должна обладать средствами, позволяющими избирательно относиться к сигналам прерывания — в какой-то момент времени реагировать на одни сигналы и не реагировать на другие. Для управления прерываниями используется маска прерыва- ний, представляющая собой двоичное слово М — т1тг...тк с числом разрядов, равным числу маскируемых причин прерыва- ния. Если разряд маски mk = 0, то прерывание по причине k за- прещено (замаскировано), если mk = 1, то прерывание разрешено (незамаскнровано). Маска прерываний хранится в процессоре, куда она загружается командой «Установить маску А», где А — адрес. По этой команде слово с адресом А загружается в каче- стве маски в процессор и определяет отношение процессора к сиг- налам прерывания. Если все разряды маски равны нулю, про- цессор не реагирует ни на одну причину прерывания. В простейших ЭВ/М (мини- и микро-ЭВМ) используется следую- щий способ маскирования прерываний. В систему команд ЭВМ вводятся две системные команды ЗАПРЕТИТЬ ПРЕРЫВАНИЯ и РАЗРЕШИТЬ ПРЕРЫВАНИЯ, выполнение которых 103
приводит к запрещению и разрешению прерываний одновременно по всем причинам. Команды, маскирующие прерывания, относятся к группе при- вилегированных команд. Операция прерывания. Операция прерывания инициируется незамаскированным сигналом прерывания, имеющим наивысший приоритет среди других сигналов, и выполняется процессором. Операция прерывания состоит из следующих действий: 1) выполне- ние текущей программы прерывается; 2) запоминается информа- оп Рис. 3.7. Организация прерываний на ос- нове уровней ция, характеризующая со- стояние процессора на мо- мент прерывания; 3) ини- циируется программа, со- ответствующая причине прерывания. Информация о состоянии процессора на момент прерывания обыч- но записывается в основ- ную память, чтобы иметь возможность определить в программе команду, к моменту выполнения ко- торой произошло преры- вание, и в дальнейшем продолжить выполнение прерванной программы. Чтобы инициировать пре- рванную программу, нуж- но восстановить состояние процессора — загрузить в процессор информацию, запомненную в момент прерывания. Инициирование программы, соответствующей причине прерыва- ния, производится путем загрузки в процессор адреса начала программы и другой информации, что равносильно передаче уп- равления первой команде программы-преемника. Прерывание организуется различными способами, основные из которых рассматриваются ниже. Организация прерываний на основе уровней. Прерывание орга- низуется по схеме, представленной на рис. 3.7. Для хранения информации о прерванной программе используется область основ- ной памяти, состоящая из Q ячеек с адресами 0, 1, ..., Q — 1. Для хранения информации об одной программе используется q ячеек, совокупность которых называется уровнем прерывания. В ячейки уровня может быть записана вся информация, характе- ризующая состояние процессора (а тем самым и программы) на момент прерывания: адрес команды Лк, перед выполнением кото- рой произошло прерывание; маска М. прерываний; код причины прерывания К; состояние итогового регистра R и т. д. Число 104
ячеек q в уровне определяется количеством такой информации. Для каждой из п причин прерывания 0, 1, п — 1 выделяется свой уровень с соответствующим номером. Уровень 0 будет занимать ячейки с адресами 0, ..., q— 1, уровень 1 —ячейки q, ..., 2q — 1 и т. д. Уровням 0, .... п — 1 соответствуют программы, хранимые в основной памяти. Когда программа загружается в память, она приписывается некоторому уровню /ив ячейки уровня загружается вся информация о про- грамме: пусковой адрес программы Лк; маска прерываний М, характеризующая отношение программы к различным причинам прерывания, и т. д. Если процессор выполняет программу, при- писанную уровню L, то номер L уровня хранится в процес- соре. При поступлении незамаскированного сигнала прерывания в процессоре формируется код причины прерывания k и номер уровня J, которому соответствует программа, обрабатывающая прерывания по этой причине. Сигнал прерывания инициирует в процессоре операцию прерывания, которая выполняется сле- дующим образом. 1. Информация о состоянии процессора записывается в уро- вень L, к которому относится текущая программа. При этом зна- чения, Лк, М, К, R и т. д., характеризующие состояние процес- сора, записываются в ячейки Lq, Lq + 1, .... Lq + (q — 1) уровня L. 2. Из уровня J, соответствующего причине прерывания, ин- формация загружается в процессор. При этом значения, хранимые в ячейках Jq, Jq + 1, ..., Jq + (q — 1) уровня J, присваиваются соответственно адресу команды Лк, маске М и т. д. 3. Изменяется номер уровня L: — J, определяющий программу, и начинается выполнение команды с адресом Лк, равным пуско- вому адресу программы J. Тем самым инициируется программа- преемник, обслуживающая прерывания по причине J. Если в процессе выполнения программы J появится очередной сигнал прерывания, то состояние процессора будет записано в уро- вень J и из соответствующего уровня в процессор загружена ин- формация о новой программе-преемнике. Программы, обслуживающие прерывания, являются програм- мами супервизора. Они инициируются соответствующими сигна- лами прерывания. Прикладные программы также приписываются уровням, обычно последним. Эти программы могут быть прерваны и информация о них будет сохранена в ячейках соответствующего уровня. Прикладные программы инициируются супервизором, для чего используется команда ПЕРЕХОД К УРОВНЮ J, где номер уровня. Количество уровней зависит от числа при- чин прерывания и максимального коэффициента мультипрограмми- рования, определяющего предельное количество параллельно обра- батываемых прикладных программ. Обычно в ЭВМ имеется 8— 1о уровней прерывания. 105
Одноуровневое прерывание. В мини- и микро-ЭВМ может использоваться следующая простая схема организации прерыва- ний. Для сохранения информации о прерываемой программе и перехода к программе-преемнику выделяются две ячейки памяти с адресами 0 и 1. Ячейка 0 служит для сохранения адреса команды прерываемой программы. Ячейка 1 используется для хранения пу- скового адреса программы-преемника, который должен быть за- благовременно записан в эту ячейку. При поступлении сигнала прерывания процессор записывает адрес очередной команды в ячейку 0, тем самым фиксируя место, па котором была прервана текущая программа. Затем процессор читает из ячейки 1 адрес и переходит к выполнению команды с указанным адресом, в ре- зультате чего начинает выполняться программа-преемник. Со- хранение остальной информации, например состояния итогового регистра, производится с помощью команд, включаемых в про- грамму-преемник. Очередная программа, переход к которой ини- циирован операцией прерывания, может заслать в ячейку 1 новый адрес — адрес другой программы, с помощью которой будет обра- батываться очередная причина прерывания. Организация прерываний на основе слов состояний программ. Информация о состоянии процессора в момент прерывания может рассматриваться как одно слово —слово состояния программы (ССП), отдельные поля которого используются для представления адреса команды, маски прерываний и т. д. ССП может иметь сле- дующую структуру: /VI КС к ПР 4 . . . (3.1) Поле М содержит маску прерываний. Поле состоит из битов, определяющих состояния процессора: задача — супервизор, счет — ожидание и т. д. В поле К размещается код причины пре- рывания, в поле ПР — признак результата, в поле Ак —адрес команды и т. д. Таким образом, ССП аналогично уровню преры- вания, но в отличие от последнего содержит минимальное коли- чество информации о прерываемой программе. С использованием ССП прерывания обрабатываются по схеме рис. 3.8. Для каждой причины прерывания назначается отдель- ное ССП: ССПГ —для внешних прерываний, ССПг —для пре- рываний при обращении к супервизору, ССП3 —для программных прерываний, ССПХ —для прерываний от схем контроля, ССПЪ — для прерываний от ввода—вывода. Информация о прерванных про- граммах представляется в старых ССП, а информация о про- граммах-преемниках — в новых ССП. Для хранения каждого ССП в основной памяти выделяется фиксированная область дли- ной, например, 8 байт. Старые ССП{, ..., ССП5 хранятся в па- мяти по адресам а„ ..., а5 и новые ССП1г ССП5 —по адре- сам Pj... |}5. Сигнал прерывания ЛА, поступающий в процессор, 106
инициирует операцию прерывания, которая выполняется следую- щим образом. Сначала запоминается информация о прерываемой программе. Для этого из слов М, J\C, ПР, Ak и т. д. формируется текущее ССП, имеющее структуру (3.1). Текущее ССП записы- вается в память на место ССПк, соответствующего причине пре- рывания. Так, если сигнал является прерыванием от ввода— вывода, то текущее ССП записывается на место старого ССП5, т. е. по адресу а5. Затем в процессор загружается ССП, содержа- щее информацию о программе-преемнике. Это выполняется путем Рис. 3.8. Организация прерывапнй_~на основе слов состояния программ передачи в процессор нового ССПк, помер которого соответствует причине прерывания. В результате передачи в процессоре уста- навливается маска М, состояние КС, признак результата ПР и пусковой адрес Лк, соответствующий программе-преемнику. После выполнения этих действий процессор начинает выполнять команду с адресом АК, т. е. программу-преемник в режиме, опре- деленном новым ССП. При записи старого ССП в памяти сохраняется только основ- ная информация о прерванной программе. Информация, хранимая во внутренней памяти процессора, при этом обычно не переме- щается в основную память. Функция сохранения этой информа- ции возлагается на программы-преемники, которые обеспечивают пересылку информации из внутренней памяти процессора в об- ласть основной памяти, специально выделяемую в программе. Для пересылки информации используются стандартные посылоч- ные операции. По окончании программы производится восстано- вление информации во внутренней памяти путем пересылки слов из основной памяти в процессор. На основе информации, содержащейся в старых ССП, супер- визор устанавливает причину прерывания и управляет порядком 107
обработки задач. Супервизор освобождает от информации область старых ССП путем передачи информации из ячеек .... а5 в выделенную для этих целей область основной памяти, принадле- жащую супервизору. Супервизор подготавливает прерванную программу к дальнейшей обработке передачей соответствующего ССП в область новых ССП. Очередной сигнал прерывания вызо- вет загрузку этого ССП в процессор, и выполнение программы будет продолжено. Супервизор может инициировать программу путем загрузки ССП в процессор с помощью команды ЗАГРУЗИТЬ ССП А, где А —адрес ячейки основной памяти, начиная с кото- рой размещается ССП. Данная команда является привилегиро- ванной. Организация прерываний па основе ССП обеспечивает возмож- ность управления любым числом задач с использованием любых принципов управления. Негативным свойством этого способа пре- рывания программ являются большие затраты процессорного вре- мени па манипуляции с ССП и запоминание-восстановление ин- формации, хранимой во внутренней памяти процессора. 3.6. Средства защиты памяти Средства защиты памяти обеспечивают проверку адреса при каждом обращении к памяти. Адрес считается корректным, если он принадлежит области памяти, которая выделена программе, выполняемой процессором или внешним устройством. Адрес счи- тается некорректным, если он не принадлежит области памяти, выделенной программе. Когда в программе появляется некоррект- ный адрес, обращение к памяти блокируется и программа преры- вается по причине нарушения защиты памяти. Прерванная про- грамма исключается из процесса обработки. Искажение информации, не принадлежащей задаче, может произойти только при записи информации по некорректному ад- ресу. С точки зрения программиста неправильная адресация как при записи, так и при чтении информации одинаково важна, по- скольку свидетельствует о наличии ошибки в программе. По этой причине в ЭВМ контролируются любые обращения к памяти — и запись, и чтение. Для защиты памяти в мультипрограммных ЭВМ используются следующие способы. Защита памяти по граничным адресам. Каждой программе выделяется область основной памяти, начинающаяся от ячейки с адресом Gx. Предполагается, что различным программам супер- визор выделяет непрекрывающиеся области. Адреса А команд и операндов, генерируемые в процессе выполнения программы, проверяются на корректность путем сравнения их с граничными адресами 6\ < А < О2 (Gx < G2). Адрес некорректен, если А < < G или А > G. Проверка адресов производится схемой рис. 3.9, встраиваемой в процессор. При инициировании программы из 108 о
слова состояния программы ССП (уровня прерывания) в процессор загружаются значения граничных адресов Glt G2. Адрес А, сфор- мированный в программе, перед обращением к памяти сравни- вается на меньше—больше с гранич- ссп ными адресами G1( G2. Если А < Gt или А > G2 формируется сигнал пре- рывания А, по которому прекраща- ется выполнение программы и управ- ление передается супервизору, кото- рый выводит на печать информа- цию о команде, породившей некоррект ный адрес. Если в ЭВМ используется странич- ная организация памяти, то програм- ме выделяются области, состоящие из целого числа страниц. В этом случае границы Gj, G2 определяются адресами страниц, которыми начинается и за- канчивается область памяти. В /и-раз- рядном адресе выделяются старшие раз- ряды, представляющие адрес страницы, к которой производится обращение, и Рис. 3.9. Организация защи- ты памяти по граничным сравниваются с граничными значения- адресам ми Gx, G2 адресов страниц. Способ защиты памяти по граничным адресам имеет сле- дующий недостаток: необходимо, чтобы для размещения про- I раммы выделялся сплошной участок памяти. Защита памяти по ключам. При страничной организации памяти в ЭВМ общего назначения ши- роко используется способ защиты информации по ключам. Ключ—это г-раз- рядный двоичный код. На- пример, могут использо- ваться 4-разрядные коды, которые позволяют сфор- мировать 16 различных ключей 0, 1, ..., 15. Ключи присваиваются програм- мам и страницам памяти. Каждой программе при- сваивается свой ключ, называемый ключом про- граммы. Этот же ключ присваивается всем страницам, выделенным программе. Ключи страниц хранятся в памяти ключей ПК (рис. 3.10): ключ Ко страницы 0 —в ячейке 0; ключ К\ страницы 1 — 109
в ячейке 1 и т. д. Ключи записываются в ПК супервизором в мо- мент подготовки программы к выполнению. Для этого исполь- зуется привилегированная операция «Установить ключ памяти А, Р», где А — адрес ячейки, в которой хранится значение ключа; Р — адрес страницы, которой присваивается ключ. В результате выполнения этой команды странице Р, закрепленной за програм- мой с ключом Кп, присваивается ключ Кп, который становится ключом страницы. Проверка адресов организуется следующим образом (рис. 3.10). В момент инициирования программы ее ключ Кп, указанный в ССП (уровне прерывания), загружается в процессор и хранится там, пока процессор выполняет программу. В адресе А, генерируемом программой при обращении к памяти, выделяется поле Р, определяющее адрес страницы, к которой производится обращение. По адресу Р выполняется обращение к памяти клю- чей ПК, из ячейки Р которой читается ключ страницы Кр. Ключ КР сравнивается на равенство с ключом программы Кп. Если /<Р + Кп, адрес А считается некорректным и формируется сиг- нал А, прерывания по защите памяти. В противном случае разре- шается обращение к памяти по адресу А. Чтобы супервизору был обеспечен доступ к любой области па- мяти и несколько программ могли использовать для обмена ин- формацией общую область памяти, используется универсальный ключ 0, который присваивается супервизору и страницам, общим для нескольких программ. При сравнении ключа программы Д:| с ключом страницы КР, ключ 0 считается равным любому другому ключу. Поэтому, если один из ключей Кп, Кр имеет нулевой код, адрес считается корректным и сигнал прерывания А не форми- руется.
Глава 4 ПРИНЦИПЫ СТРУКТУРНОЙ ОРГАНИЗАЦИИ ЭВМ 4.1. Понятие структурной организации ЭВМ Рассмотрение принципов функциональной организации ЭВМ различного назначения позволило выявить формы представления информации и номенклатуру действий, необходимые для решения определенного круга задач, и тем самым установить назначение ЭВМ. Чтобы реализовать заданный набор действий, необходима соответствующая структура — определенный набор устройств, объединенных посредством связей (соединений) в одно целое. Структура определяет, как устроена ЭВМ, из каких физических частей она состоит и как эти части связаны друг с другом. Способы порождения структур, обладающих заданными функциональными возможностями и необходимой производительностью, рассматри- ваются в рамках структурной организации ЭВМ. Структурная организация ЭВМ объединяет в себе следующий круг вопросов: 1) номенклатуру устройств, необходимую и достаточную для построения ЭВМ с определенными свойствами; 2) способы орга- низации связей между устройствами; 3) структуры ЭВМ, отли- чающиеся составом устройств и конфигурацией связей между ними. Очевидно, что одни и те же функции можно реализовать различными структурами, неравноценными по производительно- сти и затратам оборудования. В связи с этим возникает необхо- димость в оценке качества различных способов структурной орга- низации ЭВМ и определения областей применения различных структур. В данной главе структурная организация ЭВМ рассматривается на уровне устройств. Это означает, что устройства — процессоры, запоминающие устройства и т. д. — рассматриваются в качестве элементов ЭВМ, задаваемых перечнем реализуемых ими функций и входов—выходов, через которые элемент связан с другими ча- стями ЭВМ. Так что структура ЭВМ определяется номенклатурой устройств и конфигурацией связей между ними. Структурная организация самих устройств будет рассмотрена в последующих главах. 4.2. Классы устройств ЭВМ В зависимости от функций (назначения) устройства подраз- деляются на следующие классы: операционные, запоминающие и ввода—вывода. Различие функций, реализация которых возлагается на устройства различных классов, порождает разнс- 111
образие способов структурной организации устройств —типов эле- ментов из которых строятся устройства, и способов соединения элементов между собой. Операционные устройства. Операционным называется устрой- ство, предназначенное для выполнения множества операций F — (Д, ..., fG] над операндами, представляемыми множеством слов D = [dlt ..., dH}, с целью вычисления слов R = ... ..., rQ}, определяющих значения результатов, причем в каждый момент времени устройство может реализовать единственную опе- рацию R - fg (D), выделяемую номером (кодом) g = 1, ..., G. Рис. 4.1. Операционное устройство Под операцией /2 понимается вычисление значения функций в точке D D*, и любая вычислимая функция может рассматриваться как операция. Устройство может реализовать как простейшие операции вида rq = dh — присваивание результату rq значения операнда dh, так и сколь угодно сложные операции, обычно опи- сываемые в форме алгоритмов. Например, операционное устрой- ство может предназначаться для выполнения четырех арифмети- ческих операций F = {+, —, X, /} над 16-разрядными двоичными словами D = {dj с целью вычисления слов R = (ту, г2}, первое из которых — 16-разрядный результат операции, а второе — одно- разрядный признак переполнения результата. Операционное устройство как структурный элемент изобра- жено на рис. 4.1, а. На вход устройства поступают входные слова D — [dlt .... dH} и код g операции fg, которую должно выполнить устройство. Код операции инициирует работу устройства, и спустя некоторое время на выходе формируется значение результата R = fg (£>). Операционное устройство можно рассматривать как преобразователь дискретной информации. Функцию преобразо- вателя удобно определить так. Слово g, определяющее код опера- ции fg, можно считать элементом d0 — g множества входных слов D — {d0, dr, ..., dH}. Тогда, обозначая через Q оператор (преобра- зование), реализуемый устройством, функцию устройства можно изобразить в следующем виде: R = й (£>), где /1, если du = 1; fG, если d0 = G. 112
С учетом этих обозначений операционное устройство представлено на рис. 4.1, б, где символ Q определяет функцию, т. е. тип устройства. Функция операционного устройства определена, если заданы множества входных слов D, выходных слов R и операций F, реализуемых устройством. Основные характеристики устрой- ства — быстродействие и затраты оборудования. Быстродействие устройства определяется средним количеством операций, реали- зуемых устройством за секунду. Быстродействие К = W вычис- ляется как величина, обратная среднему времени выполнения опе- рации в устройстве: а = (4.1) g=l где ps—вероятность выполнения операции fg (Pi+-..+pa~ = 1); Tg •—среднее время выполнения операции fs. Затраты оборудования в операционном устройстве оцениваются суммарной стоимостью эле л нтов, составляющих устройство. Операционные устройства ЭВМ строятся на базе логических и запоминающих элементов. Чаще всего используются логические элементы универсального базиса, реализующие функцию И—НЕ. В качестве запоминающих элементов используются триггеры. Триггер обеспечивает хранение бита информации —значения двоичной переменной. Запоминающие устройства. Запоминающим устройством (на- копителем) называется устройство, предназначенное для хранения множества элементов информации и снабженное средствами селек- ции, обеспечивающими запись и (или) чтение заданного элемента информации. Элементами информации могут быть биты, байты, слова и поля переменной длины — записи, состоящие из после- довательности байтов или байтов. Элемент информации выделяется на множестве элементов с помощью адреса, либо с помощью ключа, либо другими способами. Адрес—число, определяющее местоположение элемента в устройстве. Ключ —это признак, идентифицирующий элемент информации. Например, информация о работнике, состоящая из сотен байтов, может идентифицироваться фамилией, именем и отчеством работника или табельным номером, которые являются ключами данных. Основные характеристики запоминающих устройств (емкость, быстродействие и стоимость) определены в п. 1.4. В зависимости от характеристик выделяются оперативные запоминающие устрой- ства, на основе которых строится основная память ЭВМ, и внеш- ние запоминающие устройства, из которых строится внешняя память. Устройства ввода—вывода. Устройством ввода—вывода называется устройство, предназначенное для чтения информа- ции с носителя и (или) записи информации на носитель путем 113
преобразования электрических сигналов в сигналы иной физиче- ской природы. Функция устройства ввода—вывода—преобразова- ние сигналов одной физической природы в сигналы другой при- роды, т. е. передача информации из одной среды в другую. На входе устройства ввода имеется носитель информации — перфокарты, перфолента, клавиатура и т. п., —а на выходе формируется сово- купность электрических сигналов, представляющих информацию, последовательно считываемую с носителя. Устройство вывода вы- полняет обратное преобразование. Например, последовательность электрических сигналов преобразуется в механические переме- щения элементов печатающего устройства. Основные характеристики устройств ввода—-вывода—ско- рость ввода—вывода информации и стоимость. Скорость ввода— вывода характеризует быстродействие устройства и чаще всего измеряется числом символов информации, вводимых—выводимых за секунду. Для некоторых устройств скорость ввода—вывода задается специфическими значениями: числом перфокарт, вводи- мых в минуту; числом строк, печатаемых в минуту, и т. д. 4.3. Концепция интерфейса Устройства ЭВМ соединяются между собой в структуру с по- мощью цепей, предназначенных для передачи электрических сиг- налов. Одна цепь позволяет передавать в один момент времени бит информации, представляемый двоичным сигналом со значе- нием 0 или 1. Совокупность цепей, связывающих два устройства, и алгоритм, определяющий порядок пе- редачи между устройствами, называется интерфейсом (сопряжением). На рис. 4.2 устройства А и В соединены совокуп- ностью электрически независимых це- пей I, которые условно обозначены од- ной линией. В общем случае через ин- терфейс I информация может передаваться как от Л к В, так и в обратном направлении — от В к А. Алгоритм передачи инфор- мации по цепям интерфейса определяет, в какой последователь- ности должны формироваться сигналы на входах цепей для передачи информации между устройствами. Цепи интерфейса в зависимости от их назначения, определяе- мого типом передаваемых сигналов, принято разделять на три группы: информационные, осведомительные и управляющие. Ин- формационные цепи служат для передачи элементов информации — данных, команд, адресов. Количество информационных цепей определяется типом элементов информации, которыми обмени- ваются устройства. Чаще всего по интерфейсу передаются байты и 16- или 32-разрядные двоичные слова. В общем случае по инфор- мационной шине может передаваться разнотипная информация, например байты данных и 8-разрядные адреса. Тип информации, 114 Рис. 4.2. Сопряжение уст- ройств
передаваемой по интерфейсу, идентифицируется сигналами, для передачи которых служат осведомительные цепи. Например, пере- дача байта данных может сопровождаться сигналом 1 по соответ- ствующей осведомительной цепи, а передача адреса — сигналом 1 по другой осведомительной цепи. Устройство, принимающее ин- формацию, реагирует на значение сигналов в осведомительных цепях и соответствующим образом интерпретирует поступающую информацию. Для инициирования передачи информации по ин- терфейсу, синхронизации работы устройств и завершения пере- дачи служат управляющие сигналы, которые формируются одним устройством для управления работой другого устройства. Для передачи управляющих сигналов используются управляющие цепи интерфейса. Основная характеристика интерфейса — скорость передачи информации, которая определяется числом единиц информации (байт, слов), передаваемых за секунду. Скорость передачи зависит от алгоритма передачи информации и времени переключения сиг- налов в цепях, которое определяется характеристиками электрон- ных элементов и цепей. ЭВМ строятся на основе модульного принципа, по которому отдельные модули (процессоры, запоминающие и внешние устрой- ства) могут быть связаны в необходимую конфигурацию без изме- нения схем модулей. Чтобы достичь этого, необходимо стандарти- зовать интерфейсы — установить единые правила сопряжения определенного класса устройств. Если внешние устройства имеют стандартный интерфейс, ЭВМ можно укомплектовать необходимой для конкретной цели номенклатурой внешних запоминающих устройств и устройств ввода — вывода без каких-либо схемотехни- ческих доработок—простым подключением кабелей. Такой же эффект достигается стандартизацией интерфейсов оперативной памяти и интерфейсов процессоров, посредством которых несколько процессоров могут быть связаны в вычислительный комплекс. 4.4. Концепция единого интерфейса и канала ввода—вывода Рассмотрим основные способы соединения набора устройств в единую систему, образующую ЭВМ. Концепция единого интерфейса. Наиболее естественным пред- ставляется способ соединения устройств, изображенный на рис. 4.3. Процессор П, основная память ОП и внешние устройства ВУ подключаются к общей системе цепей — единому интер- фейсу W. Для подключения внешних устройств используются устройства управления УУВУ, иначе называемые контроллерами. УУВУ—операционное устройство, назначение которого—реа- лизация операций ввода—вывода в виде, соответствующем спе- цифике функционирования внешнего устройства. УУВУ преобра- зует стандартную последовательность сигналов интерфейса в совокупность сигналов, обеспечивающую работу внешнего 115
устройства. Для внешнего устройства каждого типа требуется свое- образное устройство управления. Объединение устройств ЭВМ посредством единого интерфейса порождает следующие принципы обмена информацией. Во-первых, информация передается словами, длина которых определяется разрядностью основной памяти. Представление ин- формации в виде слов является естественным способом обмена ин- формацией для основной памяти, процессора и некоторых внешних устройств. Однако большинство внешних устройств передают ин- формацию побитно (например, магнитные диски) или побайтно (например, устройства ввода с перфоленты, печатающие устрой- ства). Поэтому устройство управления, обеспечивая обмен инфор- Рис. 4.3. Соединение устройств ЭВМ через единый ин- терфейс мацией между интерфейсом и внешним устройством, должно при передаче информации преобразовывать последовательность бит или байт в слова или слова в последовательность бит или байт. Во-вторых, приемниками или источниками информации, вво- димой—выводимой через внешние устройства, могут быть про- цессор и память. Передача информации из одного внешнего устрой- ства в другое в общем случае невозможна из-за различия в скоро- стях работы устройств: когда одно устройство передает информа- цию со скоростью, превышающей быстродействие другого устрой- ства, часть информации будет потеряна. Процессор может с помо- щью команды ввода—вывода передать одно слово информации. Для этого необходима программа, проверяющая готовность внеш- него устройства к приему—выдаче слова информации и иниции- рующая операцию ввода—вывода. Такой режим ввода—вывода удобен для обмена информацией с некоторыми внешними устрой- ствами: преобразователями «цифра—аналог» и «аналог—цифра», посимвольными печатающими устройствами и т. д. Однако для обмена информации с внешними запоминающими устройствами этот режим ввода—вывода непригоден, поскольку не обеспечи- вает высокой скорости передачи информации. Поэтому для высо- коскоростных внешних устройств необходимо обеспечить прямой доступ к основной памяти. Ввод—вывод в режиме прямого до- ступа к памяти организуется следующим образом. Процессор, инициируя операцию ввода—вывода, посылает в устройство управления внешним устройством: 1) базовый адрес А области 116
основной памяти, в которой хранится вводимая—выводимая ин- формация; 2) количество слов С, передаваемых в процессе выпол- нения операции; 3) код операции, определяющий направление передачи информации и режим работы внешнего устройства. За- тем процессор продолжает программу вычислений, а внешнее устройство начинает выполнять операцию ввода—вывода. Ввод— вывод информации протекает в темпе работы внешнего устройства параллельно с работой процессора. Устройство управления фор- мирует адреса А, А + 1, А + С — 1 ячеек памяти, в которые записываются (читаются) слова информации, и обеспечивает пере- дачу С слов информации. Третий принцип организации ввода—вывода через единый ин- терфейс состоит в последовательном использовании интерфейса для обслуживания пар устройств — передатчика и приемника информации. Поскольку ввод—вывод может производиться па- раллельно несколькими внешними устройствами в режиме прямого доступа к памяти и одновременно с работой процессора, возникает задача определения очередности на захват интерфейса устройствами Эта задача решается путем назначения приоритетов, определяю- щих преимущественное право устройств на использование интер- фейса. Наивысшие приоритеты присваиваются высокоскоростным устройствам, поскольку задержка в их обслуживании может при- вести к потере передаваемой информации. Процессору присваи- вается низший приоритет, поэтому ввод—вывод протекает в ре- жиме приостановок процессора: при наличии запроса на пере- дачу слова информации обращение процессора к основной памяти блокируется до момента освобождения интерфейса и памяти от обслуживания работающих внешних устройств. Быстродействие интерфейса ограничено быстродействием основной памяти. По- этому сумма скоростей передачи информации по всем одновременно работающим внешним устройствам не должна превосходить бы- стродействия интерфейса. Единый интерфейс является высокоэффективным способом орга- низации обмена информации в ЭВМ, которые комплектуются не- большим числом внешних устройств, работающих в режиме пря- мого доступа к памяти. Такая комплектация типична для мини- и микро-ЭВМ. Поэтому единый интерфейс широко используется в ЭВМ этих классов. При большем числе внешних запоминающих устройств исполь- зование единого интерфейса приводит к большим затратам обору- дования в устройствах управления внешними устройствами по следующей причине. При вводе—выводе через внешние запоми- нающие устройства за одну операцию передается блок информа- , Ции, состоящий из большого числа байт. Обеспечивая передачу блока информации, устройство управления внешним устройством Должно выполнять следующие действия: 1) принимать, хранить и модифицировать адрес ячейки памяти, в которую производится ввод—вывод информации, обеспечивая его последовательное 117
наращивание в виде А, А + 1, А +2, 2) подсчитывать число передаваемых байт и сравнивать его с заданным значением с целью определения момента окончания операции; 3) при вводе информа- ции собирать из байт слова, а при выводе разбирать слова на байты. Можно ожидать, что для выполнения этих действий требуется зна- чительное количество оборудования. При большом числе внешних устройств, которые должны работать в режиме прямого доступа к памяти, эти действия дублируются в каждом из устройств упра- вления, в результате чего затраты оборудования на организацию ввода—вывода могут оказаться чрезмерно большими. От этого недостатка свободен следующий способ организации связей с внеш- ними устройствами. R Рис. 4.4. Подключение внешних устройств через канал ввода—вывода Концепция капала ввода—вывода. При комплектации ЭВМ большим количеством внешних устройств для экономии оборудо- вания внешние устройства подключаются по схеме рис. 4.4. Внешние устройства ВУ, обслуживаемые устройствами управле- ния УУВУ, соединяются с основной памятью ОП через канал ввода—вывода КВВ. Процессор П и капал ввода—вывода сопря- гаются с памятью через интерфейс памяти Р. Информация по ин- терфейсу памяти передается словами. Для сопряжения внешних устройств с каналом ввода—вывода используется специальный интерфейс — интерфейс ввода-вывода, информация через который передается байтами, т. е. единицами, естественными для внеш- них устройств, большая часть которых вводит—выводит информа- цию посимвольно — байт за байтом. Функции канала ввода— вывода состоят в следующем. Процессор, получая команду ввода— вывода, передает ее в канал (штриховая линия на рис. 4.4) и тем самым инициирует операцию ввода—вывода, которая выполняется каналом независимо от работы процессора. Канал ввода—вывода выполняет следующие действия: 1) инициирует работу внешнего устройства, указанного в команде ввода—вывода; 2) последо- вательно читает и записывает слова информации, обращаясь к ячей- кам А, А + 1, А + 2, ... области ввода—вывода, размещаемой 118
в основной памяти; 3) при выводе разделяет слова на байты, а при вводе собирает слова из байтов, поступающих по интерфейсу ввода—вывода; 4) подсчитывает количество передаваемых байтов и сравнивает с заданным значением с целью определения момента окончания ввода—вывода; 5) завершает работу внешнего устрой- ства по окончании передачи данных или операцию ввода—вывода, заканчиваемую по инициативе внешнего устройства. Таким обра- зом, канал ввода—вывода реализует действия, одинаково необхо- димые для обеспечения работы каждого внешнего устройства. По этой причине упрощаются функции устройств управления внеш- ними устройствами, что приводит к уменьшению затрат оборудо- вания в подсистеме ввода—вывода, состоящей из большого числа внешних устройств. Канал ввода—вывода обычно работает по собственной про- грамме — программе канала, хранимой в основной памяти. Про- грамма состоит из последовательности команд, управляющих работой канала и предписывающих достаточно сложную последо- вательность действий, связанных с вводом—выводом информации. С учетом этого канал ввода—вывода можно рассматривать как специализированный процессор, ориентированный на выполнение программ ввода—вывода. Использование канала ввода—вывода порождает необходи- мость в интерфейсах трех типов (рис. 4.4): 1) интерфейса основной памяти, через который процессор и канал сопрягаются с памятью; 2) интерфейса процессор—канал, по которому происходит обмен управляющей информацией и сигналами прерывания; 3) интер- фейса ввода—вывода, используемого для подключения внешних устройств к ЭВМ. За счет использования канала ввода—вывода оборудование экономится при большом числе внешних устройств, входящих в комплект ЭВМ. Экономия достигается за счет централизации В-4<ан.але_ достаточно сложных действий по обслуживанию внеш- них устройств, а также за счет использования побайтной передачи данных через интерфейс ввода—вывода, благодаря чему умень- шаются затраты оборудования в устройствах управления. Боль- шая номенклатура внешних устройств типична для ЭВМ общего назначения. Поэтому в ЭВМ этого класса для подключения внеш- них устройств используются каналы ввода—вывода. 4.5. Структура ЭВМ общего назначения ЭВМ общего назначения обычно строятся по схеме рис. 4.5. Процессор 77 сопрягается посредством интерфейса памяти с основ- ной памятью 077 и посредством интерфейса процессор—канал с каналами ввода—вывода КИВ. Для подключения внешних сиг- налов прерывания используется интерфейс прямого управления ИЛУ. Этот интерфейс объединяет несколько ЭВМ в многомашин- ный комплекс. Через интерфейс прямого управления посылаются 119
сигналы внешнего прерывания в процессоры других ЭВМ и при- нимаются аналогичные сигналы от других ЭВМ комплекса. Для обеспечения ввода—вывода информации используется несколько каналов ввода—вывода ЛДВ. Увеличение числа каналов позво- ляет увеличить скорость ввода—вывода информации, в резуль- тате чего возрастает производительность ЭВМ. В малых ЭВМ, быстродействие которых не превышает 100 тыс. операций/с, обычно используется до трех каналов ввода—вывода, в больших ЭВМ с быстродействием свыше 500 тыс. операций/с число каналов достигает 7. Внешние устройства ВУ подключаются к каналу КВВ Рис. 4.5. Структура ЭВМ общего назначения через интерфейс ввода—вывода. Каждое внешнее устройство об- служивается устройством управления УУВУ. Для управления внешними устройствами различных типов (накопителями на дис- ках и лентах, устройствами ввода с перфолент и перфокарт, пе- чатающими устройствами) используются различные устройства управления, каждое из которых реализует необходимый набор операций и специфичный алгоритм взаимодействия с внешним устройством. Для обслуживания группы однотипных внешних устройств может использоваться одно устройство управления, на- зываемое групповым устройством. Устройство управления не имеет иных средств передачи инфюрмации, кроме интерфейса ввода—вывода. Поэтому обмен всей информацией, в том числе и сигналами прерывания, производится только через интерфейс. Селекторные каналы. Внешние запоминающие устройства — накопители на магнитных барабанах, дисках и лентах — имеют высокую скорость передачи информации, которая составляет от сотни до миллиона килобайт в секунду. Для подключения быстродействующих внешних устройств используются специаль- ные каналы ввода—вывода—селекторные каналы. Селекторный канал обеспечивает возможность подключения нескольких внеш- них устройств. Типичный селекторный канал рассчитан на об- 120
& Ufi Ur !/» % Ue Ur U* п Пп п пП па. Рис. 4.6. Порядок обслуживания уст- ройств мультиплексным каналом служивание до восьми устройств управления, к каждому из ко- торых может подключаться до восьми внешних устройств, т. е. всего с каналом можно соединить до 64 внешних устройств. Чтобы обеспечить высокую скорость передачи данных, структура капала ориентируется на обслуживание в каждый момент времени только одного из подключенных к нему внешних устройств. Внешнее устройство, в котором выполняется операция ввода —вывода, полностью захватывает на время передачи данных интерфейс и канал ввода—вывода. Режим работы канала, при котором сред- ства канала переключаются на обслуживание одного внешнего устройства в течение всей операции ввода—вывода, называется монопольным. Монопольный режим является единственно возмож- ным для селекторного канала. Для повышения производитель- ности ЭВМ может использо- ваться несколько селектор- ных каналов, за счет кото- рых одновременно можно вы- полнять несколько операций ввода — вывода — по одной в каждом из каналов. Мультиплексные каналы. Большое число внешних устройств, подключаемых к ЭВМ, имеет невысокое быстродействие. К таким устройствам относятся устройства ввода с перфокарт и перфолент, печатающие устройства, телетайпы, перфораторы и т. д. Эти устройства обеспечивают скорость ввода—вывода, не превышаю- щую нескольких тысяч байт в секунду, а для отдельных устройств— десятков байт в секунду. Обычно канал обслуживает передачу байта информации за несколько десятков микросекунд, т. е. обеспечивает быстродействие в сотни тысяч байт в секунду. В связи с тем, что быстродействие канала во много раз превышает быстро- действие устройств ввода—вывода, канал может обслуживать несколько параллельно работающих устройств. При этом средства канала поочередно используются для обслуживания одновременно работающих устройств Ua, U^, Uy, U6 (рис. 4.6). Канал прини- мает или передает байт данных по запросу устройства. По окон- чании обслуживания устройства Ua канал ожидает следующего запроса на обслуживание и по поступлении запросов поочередно обслуживает устройства Пр, Uv, Ua и т. д. Канал ввода—вывода, обеспечивающий одновременную работу нескольких внешних устройств путем разделения во времени процессов обслуживания отдельных устройств, называется мультиплексным каналом. Мультиплексный канал состоит из совокупности подканалов, каждый из которых обеспечивает работу одного внешнего устрой- ства. Число подканалов определяет предельное количество одно- временно работающих внешних устройств при условии, что сум- марное быстродействие всех работающих устройств не превышает быстродействия канала. Мультиплексный канал обеспечивает передачу данных и в монопольном режиме. Режим, в котором 121
производится передача данных, —мультиплексный или монополь- ный — определяется внешним устройством, точнее —его устрой- ством управления. Мультиплексные каналы, которыми оснащаются ЭВМ общего назначения, допускают подключение нескольких сотен внешних устройств и передачу данных одновременно от всех устройств, суммарное быстродействие которых не превышает быстродействие канала, которое обычно составляет 30—300 тыс. байт/с. Канал обеспечивает обслуживание большого числа внешних устройств, поэтому большинство ЭВМ оснащаются одним мультиплексным каналом. 4.6. Структура мини- и микро-ЭВМ В состав мини-ЭВМ входят процессор, один или несколько блоков основной памяти и внешние устройства, комплект которых благодаря унифицированному интерфейсу может изменяться в за- висимости от сферы применения ЭВМ. Устройства, входящие в со- став мини-ЭВМ, обычно соединяются посредством единого интер- фейса, который может быть организован несколькими способами. В наиболее мощных мини-ЭВМ, рассчитанных на подключение большого числа внешних устройств и основной памяти различной емкости, все устройства, кроме процессора, подключаются к еди- ному интерфейсу и взаимодействуют с ним одинаковым образом (рис. 4.3). Такую структуру имеет, например, мини-ЭВМ PDP-11 [69]. Управление интерфейсом, сводящееся к анализу запросов на передачу данных, и предоставление интерфейса устройствам возлагается на процессор, для чего в процессоре имеется специаль- ный блок. Такая конфигурация связей между устройствами позво- ляет изменять емкость основной памяти путем подключения к ин- терфейсу дополнительных блоков, за счет которых емкость может быть увеличена до предельного значения, определяемого числом разрядов адреса, например до 218 = 32 кслов. Однако для под- ключения основной памяти к единому интерфейсу требуется до- полнительное оборудование — устройство управления основной памятью, которое обеспечивает сопряжение памяти с интерфей- сом. Это увеличивает стоимость мини-ЭВМ и в некоторой степени длительность цикла обращения к памяти. Более экономичной является структура с выделенной основной памятью (рис. 4.7). В ней основная память ОП подключена к про- цессору 77. Интерфейс W используется для подсоединения только внешних устройств. На процессор возлагаются функции управле- ния интерфейсом и передачей данных между интерфейсом и ос- новной памятью. В структуре с выделенной основной памятью внешние устройства имеют прямой доступ к памяти, как и в струк- туре на рис. 4.3. Прямой доступ к памяти обеспечивается режимом приостановок — процессор приостанавливает выполнение опера- ций на время, равное циклу передачи слова данных между интер- 122
фейсом и основной памятью. В таких структурах непосредственно к процессору часто подключается телетайп Т, используемый в ка- честве пульта оператора для управления работой ЭВМ. По схеме с выделенной основной памятью построена, в частности, ЭВМ PDP-8 [69, 70]. В простейших мини-ЭВМ, ориентированных на узкий класс применений, для подключения внешних устройств используются раздельные w УУВУ - • • ууйу УУВУ Рис. 4.7. Структура мини-ЭВМ с выделенной памятью интерфейсы (рис. 4.8). Раздельный интерфейс—это совокуп- ность цепей, предназначенных для присоединения одного внеш- него устройства. Для подключения внешних устройств в процес- соре имеются специфичные устройства управления внешними устройствами —интерфейсные карты PIKi, ...» Функция интерфейсной карты — коммутация цепей процессора и цепей Рис. 4.8. Структура мини-ЭВМ^с раздельными интер- фейсами внешних устройств внешнего устройства. Интерфейсная карта содержит небольшое количество оборудования и конструктивно оформляется в виде сменной платы, вставляемой в разъем процессора. Для подклю- чения каждого внешнего устройства используется специальная интерфейсная карта, набор которых соответствует номенклатуре внешних устройств ЭВМ. Число внешних устройств, подключае- мых к ЭВМ через раздельные интерфейсы, обычно не превосходит восьми. Микро-ЭВМ строятся по схемам на рис. 4.7, 4.8. В отличие от мини-ЭВМ в микро-ЭВМ для хранения программ чаще всего 123
используются постоянные или полупостоянные запоминающие устройства (ЗУ), подключаемые к процессору. Информация в по- стоянное ЗУ записывается па стадии его изготовления и сохра- няется неизменной в течение всего периода эксплуатации ЭВМ. За счет этого отпадает необходимость в загрузке программ, что позволяет использовать ЭВМ как часть прибора или системы, всегда готовую к работе. Полупостоянные ЗУ позволяют переза- писывать информацию па специальном оборудовании. Когда информация в ЗУ записана, оно используется как постоянное ЗУ —только для чтения информации. 4.7. Состав и характеристики устройств ЭВМ, работающих в реальном масштабе времени Состав устройств ЭВМ и их характеристики (быстродействие, емкость памяти) должны быть согласованы с назначением ЭВМ —- с классом задач, решение которых возлагается на ЭВМ, и ограни- чениями на время решения задач. Класс задач предопределяет требования к емкости памяти и составу внешних устройств: для одних задач требуется память емкостью в несколько тысяч байт, для других — в несколько миллионов байт; для различных при- менений необходимы различные устройства ввода—вывода (устройства передачи данных по каналам связи, быстродействую- щие печатающие устройства и т. д.). Требования к времени реше- ния задач на ЭВМ, работающих в реальном масштабе времени (РМВ), предопределяют потребность в быстродействии и количе- стве устройств, а также в емкости основной памяти. Действительно, время решения задачи на ЭВМ уменьшается с увеличением быстро- действия процессора, емкости основной памяти, числа каналов ввода—вывода, быстродействия и количества внешних запоминаю- щих устройств и устройств ввода—вывода. Уменьшение времени решения задач при увеличении емкости основной памяти обусло- влено тем, что с увеличением емкости уменьшается число обраще- ний к внешней памяти в процессе решения задачи, в результате чего уменьшаются затраты времени на решение задачи. ЭВМ проектируются исходя из их назначения, поэтому при проектиро- вании возникает задача определения номенклатуры и характе- ристик устройств, оптимальным образом согласованных с назна- чением ЭВМ. Такого рода задачи решаются в теории вычисли- тельных систем [58]. Не затрагивая методы решения задач, огра- ничимся рассмотрением постановок задач и рекомендаций по вы- бору быстродействий и числа устройств, которые должны входить в состав ЭВМ, предназначенной для работы в РМВ. Задачи выбора состава оборудования ЭВМ. Основными харак- теристиками ЭВМ, предназначенных для решения задач в РМВ, являются производительность, время пребывания задач в ЭВМ и стоимость. Производительность определяется средним количе- ством задач Л, обрабатываемых ЭВМ в единицу времени. Время 124
пребывания задач обычно характеризуется средним промежутком времени U от момента поступления задачи в ЭВМ до момента окон- чания ее обработки. Стоимость равна суммарной стоимости устрой- ств, входящих в состав ЭВМ. Производительность Л определяется назначением ЭВМ и задана. С учетом этого задача проектирования ЭВМ в части выбора состава оборудования — номенклатуры устройств — может быть сформулирована в одной из следующих постановок: 1. Спроектировать ЭВМ минимальной стоимости, которая обес- печивает решение Л задач в единицу времени при среднем времени пребывания задач в ЭВМ, не превосходящем заданного значе- ния U*. 2. Спроектировать ЭВМ с минимальным временем пребывания задач, которая обеспечивает.решение Л задач в единицу времени, причем стоимость ЭВМ не должна превышать заданного значе- ния S*. Задача проектирования в первой постановке сводится к проек- тированию ЭВМ с заданным временем пребывания задач, а во вто- рой постановке — к проектированию ЭВМ заданной стоимости. В каждом из этих случаев необходимо выбрать совокупность устройств, число и характеристики которых обеспечивали бы за- данную производительность Л ЭВМ и для ЭВМ с заданным време- нем пребывания задач имели бы минимально возможную стои- мость, а для ЭВМ заданной стоимости обеспечивали бы мини- мально возможное время пребывания задач. Состав устройств и их характеристики зависят от класса решае- мых задач. Для выбора состава оборудования в ЭВМ необходимы следующие характеристики задач. Пусть ЭВМ предназначается для решения М типов задач, поступающих на обработку с интен- сивностями Х1; ..., задач в единицу времени. В таком случае ЭВМ должна иметь производительность м Л = ^/ (4-2) и доля задач /-го типа в потоке задач, поступающем на вход ЭВМ, равна %(-/Л. Исходя из алгоритмов решения задач можно опреде- лить потребность в устройствах каждого типа: процессоре, внеш- них запоминающих устройствах и устройствах ввода—вывода. Примем, что в ЭВМ должны использоваться М типов устройств, которые обозначим номерами 1, ..., N. Теперь возникает задача определения быстродействий и числа устройств каждого типа, необходимых для комплектации ЭВМ с заданным временем пре- бывания задач или с заданной стоимостью. Чтобы определить быстродействие и число устройств, необходимо располагать оцен- ками сложности вычислений по задачам каждого из М типов. Сложность вычислений характеризуется средним числом операций каждого типа, выполняемых в процессе решения одной задачи. 125
Пусть для задачи каждого типа / = 1, .... М даны следующие характеристики сложности вычислений: а1у, ах/ — среднее количество обращений к устройствам 1, М за время решения задачи /-го типа; 01;-, 0Л7 — среднее количество операций, выполняемых за одно обращение к устройствам 1, М в процессе решения задачи /-го типа. Произведения а1;-01/, .... »^0ш опре- деляют среднее число операций, выполняемых устройствами 1, ..., N соответственно в процессе решения одной задачи /-го типа. Вместо того, чтобы оперировать с М типами задач, введем одну «среднюю» задачу, обобщающую в себе свойства задач различ- ных типов. Характеристики такой задачи вычисляются путем усреднения одноименных характеристик задач типа / — 1, ..., Л! по вероятностям Х,/Л появления задач каждого типа в смеси задач, обрабатываемых ЭВМ в мультипрограммном режиме. Исходя из этого, среднее число обращений к устройству i = 1, ..., N за время решения задачи и среднее число операций, выполняемых устройством при обслуживании одного обращения, равны соот- ветственно: м лг = (4-3) В дальнейшем будем считать, что ЭВМ обрабатывает однотип- ные задачи, характеристики которых равны в среднем а1т ..., av и 0J, .... 0,v Процесс обработки задачи — случайный процесс, в ходе которого производится в среднем Яц ..., av обращений к устройствам 1, ..., N и каждое из устройств выполняет в сред- нем Эр .... 0у операций. Быстродействие и стоимость каждого устройства связаны ме- жду собой определенной зависимостью: стоимость устройства монотонно возрастает с увеличением быстродействия. Чтобы полу- чить результаты в компактной аналитической форме, примем допущение, что стоимость устройства г-го типа является линейной функцией быстродействия Sz = &£K, где kt — коэффициент про- порциональности с единицей измерения руб.-с/операция, т. е. коэффициент определяет цену единицы быстродействия. Таким образом, задача определения состава устройств ЭВМ формулируется следующим образом. Заданы: 1) производитель- ность Л; 2) количество типов устройств N; 3) зависимости стои- мости от быстродействия устройств St = k1V1, .... = kNVN‘, 4) характеристики задач ax, ..., av и 0П ..., 0V, определяющие среднее число обращений к устройствам 1, ..., N и среднее число операций, выполняемых устройством при обслуживании обраще- ния; 5) предельно допустимое время пребывания задачи U* в ЭВМ (или предельно допустимая стоимость S* ЭВМ). Требуется определить быстродействие и количество устройств каждого типа, обеспечивающие заданную производительность Л, время пребы- вания U « U* (или стоимость ЭВМ S С S*) и минимизирующие стоимость S ЭВМ (или время пребывания [/). Г26
Быстродействие устройств ЭВМ с заданным временем пребы- вания задач. Примем, что исходя из содержательного описания задач определены типы устройств, необходимые для комплекта- ции ЭВМ, однако быстродействие устройств неизвестно. Как дока- зано в [58], при некоторых допущениях быстродействие К,- уст- ройств i = 1, ..., N, при котором время пребывания не превос- ходит заданного U < U*, производительность равна Л и стои- мость S ЭВМ минимальна, определяется значениями ^ = Mt+д^/MAS/Wp (4.4) где Х(- = Ла, — интенсивность обращений к t-му устройству в процессе работы ЭВМ. Интенсивность X,- равна среднему количе- ству обращений к устройству за единицу времени. Составляющая X 0,- в (4.4) равна количеству операций, выполняемых устройством при обслу- живании X,- обращений, и определяет минимально необходимое быстродей- ствие устройств, при котором ЭВМ обеспечивает обработку Л задач в еди- Рис. 4.9. Пример структуры ЭВМ для работы в РМВ ницу времени со сколь угодно боль- шим временем пребывания задач U. Вторая составляющая определяет «дополнительное» быстродействие, которое необходимо устрой- ству, чтобы уменьшить время пребывания задач до U < U*. Обратим внимание, что минимально необходимое быстродейст- вие X,-0Z пропорционально вычислительной нагрузке, создавае- мой в единицу времени Л задачами, кажая из которых приво- дит к выполнению az0z операций на устройстве I. Однако «допол- нительное» быстродействие распределяется между устройствами пропорционально корню квадратному из нагрузки А.,0, = Ла,0,- на устройство. Таким образом, минимум стоимости ЭВМ с заданным временем пребывания задач достигается только в том случае, если быстро- действия К1( ..., VN устройств распределены в соответствии с (4.4). При этом стоимость ЭВМ, обеспечивающая производитель- ность Л и время пребывания задач U < U*, n I N 1=1 u \i=l (4.5) Рассмотрим пример. Пусть ЭВМ, предназначенная для работы в РМВ, со- стоит из процессора с оперативной памятью П и двух разнотипных внешних запоминающих устройств ВЗУ2 и ВЗУ2 (рис. 4.9). По каналу ввода—вывода ВВ в ЭВМ поступают задания на обработку, инициирующие соответствующие задачи. Пусть производительность ЭВМ составляет Л= 0,2 с-1, т. е. средний период между поступлением задач равен 5 с, и ограничение на среднее время пребывания задач в ЭВМ U* = 25 с. Задачи имеют следующие характеристики: 127
среднее количество обращений к процессору, ВЗУ} и ВЗУ-2 в процессе решения одной задачи равно соответственно = 53; а, --= 50; а3 = 2; среднее коли- чество операций, выполняемых этими устройствами при обслуживании одного обращения, = 15 900; 02 1; 03 == 1. Стоимостные коэффициенты устройств положим равными kA =1; k2 — 5000; k3 = 105 руб./(операция/с). Интенсивность обращений X/ = Ла,- к процессору, ВЗУг и ВЗУ2 в про- цессе работы ЭВМ составляет соответственно = 10,6; /.2 = 10; Х3 = 0,4 с-1. Минимально необходимое быстродействие устройств, определяемое первым членом в (4.4), равно I/Jnin = 200 000; V'™n = 10; I'™1” = 0,4 операция/с. Стоимость ЭВМ, обеспечивающей такое быстродействие, Srnin = У, = = 290 тыс. руб. Для обеспечения среднего времени пребывания задач U* = 25 с быстродействие устройств должно быть повышено до значений, определяемых (4.4): = 280 000; V2 ~ 181 Ез = 0,75 операция/с. Это означает, что среднее время доступа к информации, хранимой в ВЗУ^ должно составлять 1/V2 = = 0,056 с, а для ВЗУ2— 1/И3 = 1,33 с. Указанное быстродействие обеспечи- вается устройствами стоимостью S, = k1Vl = 280; S2 = k2V2 = 90; S3 = = k3V3 = 75 тыс. руб. и стоимость ЭВМ составляет S = 445 тыс. руб. Таким образом, производительность Л = 0,2 с-1 обеспечивается за счет использования оборудования со стоимостью Sm,n = 290 тыс. руб. и сокращение времени пребы- вания задач до U* = 25 с потребовало увеличения стоимости ЭВМ на S — S'”111 = = 155 тыс. руб. Быстродействие устройств ЭВМ заданной стоимости. Как и в рассмотренном случае, положим, что номенклатура устройств известна. Определим быстродействия ..., VN устройств, при которых будет обеспечена обработка Л задач в единицу времени на ЭВМ стоимостью S < S* при минимальном времени пребыва- ния задач. В [58] доказано, что при определенных допущениях минимум времени пребывания задач в ЭВМ стоимостью S = S* достигается, если быстродействия устройств i = 1, .... N равны I/ л о । К/г,а,0/ ,. . К,- = Ла Д + , (4.6) У V i=l где S* — предельно допустимая стоимость ЭВМ. Раскроем смысл полученного выражения. Произведение alQi характеризует сред- нее количество операций, выполняемых t-м устройством в процессе решения одной задачи. Величина ЛаД равна количеству опера- ций, выполняемых устройством за время поступления Л задач, т. е. за единицу времени. Следовательно, величина К™1” = = ЛаД — это минимально необходимое быстродействие, кото- рым должно обладать t-e устройство в составе ЭВМ, обрабатываю- щей Л задач в единицу времени. Сумма Smin = E = й(-аД (4.7) i=i 1=1 определяет минимально необходимую стоимость ЭВМ, при ко- торой будет обеспечена производительность Л при неограниченно большом времени пребывания задач. Если стоимость S*, отведен- ная на создание ЭВМ, меньше Smin, обработка задач с заданной про- 128
изводителькостью А в РМВ невозможна. При S* > Smin имеются средства в количестве S* — Smin, за счет которых можно умень- шить время пребывания задач I/. Для получения минимума U эти средства должны быть распределены в соответствии со вторым слагаемым в (4.6): быстродействие t-ro устройства должно быть увеличено пропорционально корню квадратному нагрузки а. О,, которую создает задача на устройство. Таким образом, минимум среднего времени пребывания задач в ЭВМ достигается, если быстродействия Vlt ..., VN устройств распределены в соответствии с (4.6). При этом среднее время пре- бывания задач составляет / N \2 = , (4.8) \;=1 ) где So = S* —Smin, и может быть уменьшено только за счет увеличения стоимости ЭВМ. Рассмотрим пример. Определим быстродействия Pj, V2, Р3 устройств ЭВМ со структурой (рис. 4.9), описанной в предыдущем примере. Пусть производи- тельность ЭВМ составляет Л = 0,2 с-1 и стоимость определена предельным значением S* = 400 тыс. руб. Как и в предыдущем примере, примем, что ха- рактеристики задач равны = 53; а2 = 50; as = 2 и 0j = 15 900; 02 = 1; 03 = 1. Стоимостные коэффициенты kx = 1; k2 = 5000; k3 = 105 руб./(опера- ция/с). Минимально необходимое быстродействие устройств определяется величи- нами V“in = Ла(.0(. и равно Vj = 200 000; V2 = 10; V3 = 0,4 операция/с. Минимально необходимая стоимость ЭВМ в соответствии с (4.7) составляет Smin = 290 тыс. руб. Поскольку на ЭВМ выделено S* = 400 тыс. руб., нали- чие резерва Sb = 5* —Smin = по тыс. руб. позволяет повысить быстродей- ствие устройств до значений, определяемых (4.6): = 256 000; И2 = 15,56; И3 = 0,65 операция/с. При таком быстродействии устройств время пребывания задач в соответствии с (4.8) равно U = 28,85 с. Определение количества и быстродействия устройств ЭВМ. При определении быстродействия устройств предполагалось, что структура ЭВМ задана перечнем устройств, необходимых для ком- плектации ЭВМ, и для создания оптимальной ЭВМ можно подо- брать устройство с любым значением быстродействия. Однако при проектировании ЭВМ приходится ориентироваться на конкретный парк устройств, т. е. на устройства с фиксированным быстродей- ствием. В таком случае потребность в быстродействии должна обеспечиваться за счет выбора необходимого числа устройств. Таким образом, задача выбора состава устройств ЭВМ сводится к определению быстродействия вновь проектируемых устройств и количества устройств, выбираемых из числа рекомендуемых для применения в ЭВМ. Обычно проектирование ЭВМ сводится к опре- делению быстродействия процессора, а внешние запоминающие устройства и устройства ввода—вывода каждого типа выбираются в количестве, необходимом для обеспечения заданного времени пребывания задач или ограничений на стоимость ЭВМ. Способы решения задач в такой постановке детально изложены в 158]. 5 С. А. Майоров, Г. И. Новиков 129
4.8. Состав и характеристики устройств ЭВМ для пакетной обработки задач Основными характеристиками ЭВМ, используемой в режиме пакетной обработки задач, являются производительность Л, ко- торая определяется числом задач, обрабатываемых в единицу вре- мени, и стоимость S ЭВМ. Производительность и стоимость зави- сят от номенклатуры устройств, в том числе и запоминающих, их быстродействия и емкости, а также от коэффициента мульти- программирования, определяющего число параллельно обрабаты- ваемых задач. Эффективность ЭВМ при пакетной обработке задач характери- зуется ценой производительности / = S/Л, имеющей единицу измерения руб.-с/задач. Максимальная эффективность дости- гается при минимуме цены производительности /, что может быть обеспечено за счет уменьшения стоимости S и увеличения произ- водительности Л. Задача проектирования ЭВМ для использова- ния в режиме пакетной обработки обычно решается в одной из следующих постановок: 1) обеспечить максимальную производи- тельность Л при заданной стоимости S < S* ЭВМ; 2) обеспечить заданную производительность Л = Л* при минимальной стои- мости S ЭВМ. Первая постановка приводит к созданию ЭВМ за- данной стоимости, а вторая — к созданию ЭВМ заданной про- изводительности. При любой из указанных постановок оптимиза- ция ЭВМ по производительности или стоимости приводит к мини- мизации цены производительности I в рамках ограничений S < < S* или Л = Л*, налагаемых на соответствующие характери- стики ЭВМ. Отметим, что при пакетной обработке время обработки задач не регламентируется — оно определяется в основном коли- чеством задач в пакете и слабо зависит от характеристик ЭВМ. ЙЩ Для решения указанных задач используется следующий под- ход. Исходя из сведений о классе задач, для решения которых предназначается ЭВМ, определяется номенклатура (типы) уст- ройств, которыми должна комплектоваться ЭВМ, и средняя по- требность одной задачи в емкости памяти. Чтобы определить бы- стродействия К1, .... VN устройств или число устройств опреде- ленного типа, необходимы следующие сведения о классе задач и устройствах ЭВМ. Класс задач, как и в случае обработки в РМВ, характеризуется средним количеством обращений alt ..., aN к устройствам 1, ..., М за время решения одной задачи и средним количеством операций 0!, ..., 0iV выполняемых устройствами 1, ..., N при обслуживании одного обращения. Значения а,-, 0, вычисляются по (4.3), исходя из сведений о характеристиках и частотах выполнения задач разных типов. Стоимость ЭВМ опре- деляется в следующем виде: S = S0M + £ kyn (4.9) z=i 130
где So — стоимость основной памяти, емкость которой обеспе- чивает размещение информации, относящейся к одной задаче; Д4 — коэффициент мультипрограммирования; kt — стоимостной коэффициент в зависимости S,- = £,У,, определяющей стоимость S,- устройства i в функции от быстродействия Vt устройства. Пер- вый член в (4.9) характеризует стоимость основной памяти, обес- печивающей хранение М программ, а второй член — стоимость всех остальных устройств ЭВМ — процессора, внешних запоми- нающих устройств и устройств ввода—вывода. Исходя из сведе- ний о номенклатуре устройств ЭВМ, задачах и стоимостных коэффи- циентах S , памяти и устройств необходимо определить быстро- действие У1( ..., VN устройств и коэффициент мультипрограмми- рования М, обеспечивающие максимальную производительность Л при заданной стоимости S = S* ЭВМ или минимальную стои- мость S при заданной производительности Л = Л*. Методы решения указанных задач подробно рассматриваются в [58]. Здесь ограничимся обсуждением результатов, к которым приводят эти методы. Оптимальное распределение быстродействий устройств в одно- программных ЭВМ. Для ЭВМ, обрабатывающей задачи в одно- программном режиме, максимум производительности при заданной стоимости ЭВМ S = S* достигается, когда быстродействия Vi.. VN устройств 1, ..., N принимают следующие значения; У, = S* -X(4.10) £ V afiiki ‘ / а,0,’й; i=i i=i Таким образом, быстродействия Vx, ..., VN, максимизирующие производительность ЭВМ, должны распределяться между N устройствами пропорционально значениям ]7ах9х/^х, ,]/aNQN/kN. Значения ах9х, ..., av9v равны среднему числу операций, вы- полняемых устройствами 1, ..., N соответственно, в процессе решения задачи и характеризуют нагрузку, которую создают задачи на отдельные устройства ЭВМ. Коэффициенты klt ..., kN определяют цену единицы быстродействия соответствующего устройства. Если принять, что все коэффициенты имеют одинако- вые значения, то из (4.10) видно, что устройства должны иметь быстродействие, пропорциональное корню квадратному из нагрузки, создаваемой задачами на устройства. При таком'распределении ыстродействий производительность однопрограммной ЭВМ со- / N \ 2 Л = 5* £/а,-0Л \i=i / (4.П) и может быть ЭВМ. повышена только за счет увеличения стоимости б* 131
Если задана производительность Л = Л* и требуется мини- мизировать стоимость ЭВМ, устройства однопрограммной ЭВМ должны иметь следующее быстродействие: N = /аДА. 1=1............W. (4.12) /=1 При оптимальном распределении быстродействий, определяемом (4.12), стоимость ЭВМ минимальна и равна / N \ 2 S = A* S/аДД . (4.13) \i=i / Из (4.10) и (4.12) видно, что быстродействия устройств как в ЭВМ заданной стоимости, так и в ЭВМ заданной производитель- ности распределяются пропорционально значениям т. е. корню квадратному из отношения нагрузки аД, создавае- мой задачами, и стоимостного коэффициента kL. Выбор коэффициента мультипрограммирования и быстродей- ствия устройств для мультипрограммных ЭВМ. Производитель- ность п стоимость ЭВМ, работающей в режиме пакетной обработки задач, существенно зависит как от быстродействия устройств, входящих в состав ЭВМ, так и от коэффициента мультипрограмми- рования. Следовательно, для обеспечения требуемой производи- тельности эти параметры должны выбираться совместно с учетом эффекта, достигаемого за счет изменения каждого из них. В [58] приведена методика определения коэффициента мультипрограмми- рования М, при котором минимизируются значения критерия цены производительности I = S/Л для ЭВМ с заданной структу- рой, в которой для каждого из устройств известно быстродействие. Там же описан подход к определению оптимальных значений ко- эффициента мультипрограммирования и быстродействий устройств для ЭВМ заданной стоимости и заданной производительности. Однако соотношения, используемые при определении оптималь- ных значений, являются предположительными и их истинность не доказана.
Глава 5 ОРГАНИЗАЦИЯ ВВОДА- ВЫВОДА ИНФОРМАЦИИ 5.1. Организация ввода—вывода информации в ЭВМ общего назначения Большинство ЭВМ общего назначения строятся по схеме, представленной на рис. 4.5. Внешние устройства (ВУ) подклю- чаются к основной памяти (0/7) через канал ввода—вывода (/(ВВ), к которому В У подключаются с помощью интерфейса ввода— вывода. Для подключения внешних запоминающих устройств используются селекторные каналы. К одному селекторному каналу может подключаться до 64 внешних запоминающих устройств, но в каждый момент времени может работать только одно устройство, которое на период выполнения операции ввода— вывода монополизирует канал. Для подключения устройств ввода—вывода используется мультиплексный канал, который обеспечивает одновременную работу многих устройств, из числа подключенных к каналу. Операции ввода—вывода инициируются командами ввода— вывода, которые поступают в процессор в общем потоке команд, выбираемых из программы. Выполняя команду ввода—вывода, процессор инициирует КВВ, который начинает выполнять ввод— вывод по специальной программе — программе канала, хранимой в ОП, а процессор переходит к выполнению следующей команды программы. Таким образом, после выполнения команды ввода— вывода в ЭВМ начинают параллельно развиваться два процесса: процесс счета, реализуемый процессором, и процесс ввода— вывода, реализуемый КВВ и некоторым ВУ. Поскольку процес- сор может инициировать последовательно несколько операций ввода—вывода, в ЭВМ одновременно могут развиваться несколько процессов: по одному процессу ввода—вывода в каждом селектор- ном канале и несколько процессов в мультиплексном канале. За счет параллельного выполнения большого числа операций ввода—вывода повышается производительность ЭВМ. Порядок выполнения операции ввода—вывода задается про- граммой канала, которая выполняется одновременно КВВ и ВУ без участия процессора. Принято говорить, что в процессе выпол- нения программы КВВ реализует команды канала, а ВУ, точнее устройство управления ВУ, выполняет приказы. Таким образом, программа канала задает последовательность команд канала и приказов, выполняемых соответственно КВВ и В У для ввода— вывОДа информации, указанной в программе канала. КВВ „и (последнее с помощью устройства управления) взаимодействуют между собой через интерфейс ввода—вывода, 133
цепи которого являются единственным средством для обмена ин- формацией между КВВ и ВУ. Через интерфейс в ВУ передаются команды, происходит обмен данными между КВВ и ВУ, а также из ВУ в КВВ посылается информация о текущем состоянии ВУ, в том числе и сигналы прерывания. Вся информация передается байтами и любое взаимодействие КВВ и ВУ сводится к передаче последовательности байт. Каналы и ВУ идентифицируются адресами. В ЕС ЭВМ адрес представляет собой ll-разрядный двоичный набор СуС^р^и., ... и8, (5.1) в котором разряды с^Сз определяют адрес канала С = 0, 1, ..., 7, а разряды ult и2, и8 — адрес ВУ, подключенного к КВВ. Адрес (5.1) обеспечивает идентификацию до 256 ВУ в каждом из каналов. Принято, что адрес С = 0 присваивается мультиплекс- ному каналу, и селекторные каналы могут иметь адреса 1, ..., 7. В 'настоящее время большинство ЭВМ общего назначения строятся по типу машины IBM/360 [17], IBM/370 [62] и ЕС ЭВМ [30]. В связи с этим при изложении принципов организации ввода— вывода в ЭВМ общего назначения будем ориентироваться на форматы команд и порядок выполнения ввода—вывода, принятые в этих ЭВМ. 5.2. Команды ввода—вывода ЭВМ общего назначения Для управления вводом—выводом используются четыре ко- манды: НАЧАТЬ ВВОД—ВЫВОД, ОСТАНОВИТЬ ВВОД- ВЫВОД, ОПРОСИТЬ ВВОД—ВЫВОД и ОПРОСИТЬ КАНАЛ. Команды ввода—вывода представляются в формате SI (см. рис. 2.11) и после обработки адресной части принимают следу- ющий вид: 07 21 23 24 31 КО — С U (5.2) Здесь КО — код операции ввода—вывода; С — адрес канала; U — адрес ВУ. Все команды ввода—вывода являются привиле- гированными и могут использоваться только в супервизоре. Команда НАЧАТЬ ВВОД—ВЫВОД инициирует операцию ввода—вывода в ВУ, подключенном к каналу С с адресом U. К моменту выполнения команды должна быть подготовлена про- грамма канала, под управлением которой будет выполняться ввод—вывод, и адрес начала программы канала должен быть помещен в ячейку 72 основной памяти. Ввод—вывод может быть 134
начат только в том случае, если канал и ВУ свободны, т. е. не заняты выполнением ранее начатой операции ввода —вывода. Если занят канал или ВУ, происходит прерывание программы. Если канал и ВУ свободны, процессор передает в канал С адрес U ВУ и переходит к выполнению следующей команды программы, а канал начинает выполнять ввод—вывод по программе, адрес начала которой указан в ячейке 72. Команда ОСТАНОВИТЬ ВВОД—ВЫВОД позволяет прекра- тить операцию ввода—вывода в адресуемом канале и ВУ. Она дает возможность немедленно освободить селекторный канал для выполнения операции с более высоким приоритетом или закон- чить передачу данных, выполняемую ВУ через мультиплексный канал. Команда ОПРОСИТЬ ВВОД—ВЫВОД вырабатывает признак результата, а при определенных условиях — слово состояния канала в зависимости от состояния адресуемого канала и ВУ. В результате выполнения команды признаку результата присваи- ваются следующие значения: 0 — канал и ВУ доступны для вы- полнения операций; 1 — записано слово состояния канала; 2 — канал или ВУ заняты; 3 — канал или ВУ выключены. Вы- работка признака результата позволяет программе с помощью команд условного перехода соответствующим образом реагировать на состояние средств ввода—вывода. Признак результата содер- жит в себе лаконичную информацию. В особых ситуациях, воз- никающих при вводе—выводе, команда порождает слово состояния канала (ССК), которое содержит подробную информацию о си- туации. ССК имеет следующий формат: 0 3 8 31 32 47 48 63 К 0000 А S L Поле К содержит ключ защиты памяти, с которым работает канал. Адрес А определяет команду канала, выполняемую на момент формирования ССК, и поле L — количество байт информации, переданных каналом. В поле S содержится подробная информация о состоянии ВУ (первый байт поля) и канала (второй байт поля) па момент выполнения команды ОПРОСИТЬ ВВОД—ВЫВОД. В этих байтах находится такая информация о состоянии, как ошибка в данных, нарушение защиты памяти и т. д. ССК форми- руется каналом, который получает байт состояния от ВУ, и запи- сывается в основную память по адресу 64. Команда ОПРОСИТЬ КАНАЛ проверяет состояние адресуе- мого канала и формирует признак результата: 0 — канал досту- пен; 1 — канал хранит заявку на прерывание; 2 — канал рабо- тает в монопольном режиме, т. е. занят; 3 — канал выключен. Признак результата используется супервизором для управления процессами ввода—вывода информации. 135
5.3. Программы каналов ввода—вывода Программа канала инициируется командой НАЧАТЬ ВВОД— ВЫВОД и управляет работой канала и ВУ, выполняющих ввод— вывод. Селекторный канал реализует одну программу канала. Мультиплексный канал одновременно реализует несколько про- грамм — по числу одновременно работающих в канале ВУ. Программа канала. Состав программы представлен на рис. 5.1. Команда НАЧАТЬ ВВОД—ВЫВОД с кодом операции НВВ определяет адрес С канала, адрес U ВУ в канале и посредством адресного слова канала (АСА), хранимого в ячейке 72, указывает программу, по которой должны работать канал и ВУ. АСК со- держит ключ защиты памяти К, который определяет доступность областей основной памяти, используемых для размещения вводи- мой—выводимой информации, и адрес а программы канала. Программа канала состоит из последовательности команд канала, в данном случае команд ККи КК-а. Команда канала кодируется восемью байтами (двойным словом) и определяет действие, которое должны выполнить канал и ВУ для обеспечения ввода—вывода. Команды канала размещаются в основной памяти последовательно по адресам а, а -|- 8, а ф- 16, ... Выполнение программы канала начинается с команды, задан- ной адресом а в АСК. После выполнения команды канал переходит к следующей команде и так до завершения программы. Отдельная команда канала инициирует передачу данных между памятью и ВУ 13G
или подготовительную операцию, устанавливающую режим ра- боты ВУ или обеспечивающую доступ к заданному блоку данных, хранимому в ВУ. Кроме того команды канала используются для выполнения сугубо канальных действий. Команды канала. Канал может выполнять шесть команд, кото- рые имеют следующие коды: ММММ 0100.................. Уточнить состояние ХХХХ 1000 ................ Переход в канале ММММ 1100...................Прочитать в обратном направлении ММММ ММ01.............................. Записать ММММ ММ 10............................. Прочитать ММММММП............................... Управление Тип выполняемой команды определяется кодом команды ка- нала ККК, указываемым в первом байте команды (рис. 5.1). Символ М обозначает разряд кода, принимающий значение 0 или 1. Разряды М определяют, как будет выполняться команда в ВУ. Например, для печатающего устройства эти разряды влияют на режим печати, для накопителя на магнитной ленте — на плот- ность записи информации и на необходимость сравнения с ранее записанными данными и т. д. Разряды М воспринимаются каждым ВУ своеобразно, в зависимости от типа ВУ. Разряды X в команде ПЕРЕХОД В КАНАЛЕ игнорируются, т. е. являются несу- щественными. Код команды канала настраивает канал на выполнение соответ- ствующей операции и передается в ВУ, определяя режим работы устройства во время выполнения операции ввода—вывода. По команде ЗАПИСАТЬ происходит передача данных из памяти в ВУ. По командам ПРОЧИТАТЬ и ПРОЧИТАТЬ В ОБРАТНОМ НАПРАВЛЕНИИ данные передаются из ВУ в основную память. Последняя команда обеспечивает передачу информации при движении носителя информации, например магнитной ленты, в обратном направлении, при котором блок данных передается начиная от концы блока, т. е. от последнего символа. Команда УПРАВЛЕНИЕ служит для передачи в ВУ управляющей инфор- мации. Команда используется, чтобы вызвать перемотку магнитной ленты, пропуск блока данных и т. д. Такого рода действия ини- циируются передачей в ВУ кода команды канала. При необхо- димости из основной памяти в ВУ может быть передана дополни- тельная информация, например адрес блока данных, к которому необходимо обратиться в процессе ввода—вывода. По команде УТОЧНИТЬ СОСТОЯНИЕ из ВУ в основную память передается информация о состоянии ВУ и особых ситуациях, обнаруженных в процессе выполнения предыдущей команды: устройство не готово к работе; требуется вмешательство (например, кончилась бумага в печатающем устройстве); обнаружена ошибка в данных; канал не удовлетворил вовремя запрос от ВУ па обслуживание 11 т. д. Команда ПЕРЕХОД В КАНАЛЕ позволяет располагать команды канала не обязательно в порядке возрастания адресов. 137
Эта команда выполняется исключительно средствами канала и не затрагивает работу ВУ. Поля Ai, Ci в команде канала определяют область основной памяти, в которой размещается вводимая—выводимая информа- ция, или адрес следующей команды (рис. 5.1). Поле А, задает адрес первого передаваемого байта в области ввода—вывода, а поле Cit называемое счетчиком, — длину области, определяемую числом передаваемых байт. При передаче информации адрес Дг последовательно увеличивается, а счетчик Сд- уменьшается на единицу при передаче " " ~ Данные из канона Рис. 5.2. Цепочка данных одного байта. При передаче в обратном направлении адрес А; уменьшается на единицу. Если значение счетчика обра- тилось в нуль, это означает, что область ввода—вывода исчерпана. Разряды 32—36 команды канала слу- жат для представления значения при- знаков-. цепочки данных (ЦД); цепочки команд (ЦК); блокировки неправильной длины (БНД); блокировки записи в па- мять (БЗП); прерывания (П). Значение ЦД=1, указываемое в 32-м разряде ко- манды, задает цепочку данных. Это озна- чает, что область памяти, указываемая адресом Лд+1 и счетчиком Сг+1 следующей команды, будет использоваться в теку- щей операции ввода—вывода как про- должение области А;, С/. На рис. 5.2 цепочка данных состоит из трех областей основной памяти Alt Сг; А2, С2; А3, С3, что должно быть отмечено признаками ЦД= 1 в ко- мандах К.К-1, К.К2 программы канала. Ввод—вывод начинается от адреса А± первой области. После передачи Сх байт процесс переходит к области, определяемой адресом А2, и затем — к об- ласти с адресом Л3. Области ввода—вывода могут размещаться в памяти в любом порядке. Признак цепочки команд ЦК=1, ука- зываемый в 33-м разряде команды, задает цепочку команд. Если команда отмечена признаком ЦК=1, после завершения этой команды начинает выполняться следующая команда канала. Признак ЦК=0 свидетельствует об окончании программы канала. Признак БНД=0, указываемый в 34-м разряде команды, опре- деляет, что для выполнения операции необходимо передать точно С, байт информации. Если ВУ закончит передачи при не нулевом значении счетчика или продолжает передачу, когда счетчик равен нулю, формируется сигнал прерывания, извещающий супервизор об особой ситуации при вводе—выводе. Когда признак БНД= 1, сигнал прерывания блокируется, что обеспечивает передачу блока информации произвольной длины. Признак блокировки записи в память БЗП=1, указываемый в 35-м разряде команды, бло- кирует обращения к памяти при выполнении команд чтения, 138
чтения в обратном направлении и уточнения состояния. За счет использования цепочки данных и признака БЗП информацию и ВУ можно читать выборочно, пропуская отдельные части блока информации. Признак прерывания П = 1 обеспечивает форми- рование сигнала прерывания, извещающего процессор о переходе к соответствующему этапу ввода—вывода. Посылка сигнала пре- рывания не влияет на ход выполнения операции ввода—вывода. 5.4. Интерфейс ввода—вывода Внешние устройства (ВУ) ЭВМ общего назначения подклю- чаются в каналу через интерфейс ввода—вывода. В ЕС ЭВМ используется стандартный интерфейс ввода—вывода [34, 66], построенный следующим образом. Состав цепей интерфейса. Устройства, подключаемые к каналу с помощью интерфейса, принято называть абонентами. Для передачи информации, сигналов идентификации и управления служат: 1) шина канала; 2) шина абонента; 3) цепи идентифи- кации; 4) цепи управления; 5) специальные цепи. Шина канала (ШК) состоит из 9 цепей и служит для передачи байт информации от канала к абоненту. Восемь цепей шины исполь- зуются для передачи разрядов 0—7 байта и одна цепь — для передачи контрольного разряда, обеспечивающего проверку пере- даваемого 9-разрядного кода на нечетность. По шине канала передаются коды команд канала (приказы), адреса ВУ и байты данных. Шина абонента (ША) состоит из 9 цепей и обеспечивает пере- дачу байт информации совместно с контрольным разрядом от абонентов в канал. Шина абонента используется для передачи байт данных, адресов ВУ и информации о состоянии абонентов. Для указания типа информации, передаваемой по шинам канала и абонента, служат цепи идентификации, которые имеют следующие условные обозначения: АДР—К ........................... Адрес от канала АДР—А ........................... Адрес от абонента УПР—К ............................. Управление от канала У ПР—А ............................ Управление от абонента ИНФ—К.............................. Информация от канала ИНФ—А...............................Информация от абонента Сигналы АДРЕС ОТ КАНАЛА АДР—К, УПРАВЛЕНИЕ ОТ КАНАЛА УПР—К, ИНФОРМАЦИЯ ОТ КАНАЛА ИНФ—К принимают значение 1, когда по шине канала передается соответ- ственно адрес ВУ, код команды канала и байт данных. Анало- гично, сигналы АДР—А, УПР—А и ИНФ—А имеют значение 1, когда по шине абонента передается в канал соответственно адрес ВУ, байт состояния ВУ и байт данных. Цепи управления, которые иепользуютея для управления порядком взаимодействия канала и ВУ в процессе выполнения 139
операций ввода—вывода, имеют следующие условные обозначен ния: РАБ—К ....................... Работа канала РАБ—А ....................... Работа абонента ВБР—К ....................... Выборка РВБ—К ...............• ... Разрешение выборки ВБР—А ....................... Обратная выборка БЛК—К ....................... Блокировка ТРБ—А .......................Требование абонента Сигнал РАБОТА КАНАЛА РАБ—К применяется для раз- решения подключения абонента к каналу. Абонент может выпол- нять какие-либо действия только при наличии сигнала РАБ—К, сброс которого требует от абонента прекращения всех операций, выполняемых через интерфейс. Посредством сигнала РАБОТА АБОНЕНТА РАБ—А абонент извещает канал, что ВУ с требуе- мым адресом подключилось к каналу. Сигналы ВЫБОРКА ВБР—К, РАЗРЕШЕНИЕ ВЫБОРКИ РВБ—К и ОБРАТНАЯ ВЫБОРКА ВБР—А служат для подключения к каналу абонента, ожидающего обслуживания и имеющего высший приоритет по сравнению с другими абонентами. Порядок прохождения сигнала ВБР—К иллюстрируется рис. 5.3. Все цепи интерфейса, за исклю- чением ВБР—К и ВБР—А, являются неразрывными и все ВУ подключаются к ним параллельно. Сигналы ВБР—К и ВБР—А последовательно обегают устройства ВУЪ ..., ВУ„. Когда канал посылает сигнал выборки ВБР—К, разрешая подключение к ка- налу для передачи байта данных или состояния, устройство ВУП первым подключенное к каналу, имеет возможность не переклю- чать цепь выборки и тем самым заблокировать доступ к каналу для всех остальных ВУ. Следовательно, устройство ВУХ получает высший приоритет: оно будет обслужено каналом в первую оче- редь, даже при наличии требований на обслуживание от других устройств ВУ2, ..., ВУ„. Самый низкий приоритет имеет устрой- ство ВУ„, которое будет обслуживаться каналом только в том случае, если нет требований на обслуживание от устройств ВУП ..., ВУ„, имеющих более высокие приоритеты. Сигнал 140
«разрешение выборки» РВБ—К поступает одновременно ко всем абонентам и является разрешением на использование сигнала ВБР—К. Сигнал блокировки БЛК—К служит для прекращения операций, выполняемых ВУ через интерфейс. Сигнал ТРЕБОВА- НИЕ АБОНЕНТА ТРБ—А используется абонентом для посылки в канал требования на передачу байта данных или состояния. Специальные цепи предназначены для измерения времени выполнения операций ввода—вывода. Порядок функционирования интерфейса ввода вывода. После- довательность действий, выполняемых через интерфейс при работе канала и абонентов, определяется алгоритмом, который детально описан в [66]. Алгоритм разделяется на последовательности действий, основными из которых являются последовательность начальной выборки ВУ, последовательность передачи данных и последовательность окончания. Канал производит начальную выборку В У ио команде НАЧАТЬ ВВОД—ВЫВОД. Для выборки ВУ канал посылает на шину ШК адрес ВУ, сопровождаемый сигналом идентификации АДР—К и сигналом выборки ВБР—К. Адрес ВУ поступает одновременно ко всем абонентам и начинает ими сравниваться с собственным адресом. Абонент, адрес которого совпал с адресом, посланным каналом, передает по шине ША байт состояния, сопровождаемый сигналом УПР—А, если ВУ занято выполнением операции, а когда ВУ свободно, — собственный адрес, идентифицируемый сигналом АДР—А. В последнем случае сигнал выборки ВБР—К коммутируется на ВУ (рис. 5.3), и ВУ формирует сигнал РАБ—А, свидетельствующий о подключении ВУ к каналу. В ответ на этот сигнал канал передает на ШК байт команды канала и ^сигнал идентификации УПР—К, реагируядш который абонент принимает команду и начинает выполнять ее. Передача данных между каналом и ВУ протекает в темпе работы ВУ следующим образом. Когда требуется передать байт данных, абонент посылает требование ТРБ—А. Канал контроли- рует состояние цепи ТРБ—А, в которую могут ""быть посланы требования от нескольких абонентов. При наличии сигнала ТРБ—А канал посылает сигнал выборки ВБР—К, который по- следовательно проходит' чёр'Ез~устройства ............ ВУп. ВУ, пославшее сигнал ТРБ—А и имеющее высший приоритет средн таких же устройств, переключает сигнал’"ВБР^^К на себя, бло- кируя его дальнейшее распространение, сбрасывает требование ТРБ—А, посылает в канал сигнал РАБ—А и адрес ВУ, который передает на шину ША и идентифицируется сигналом АДР—А. Канал, реагируя на посылку адреса, выдает управляющий сиг- пт'л УПР-К, по которому абонент снимает адрес ВУ с шины ША и передает на нее байт данных, вводимых с ВУ, или прини- RVT г данных> подготовленный каналом к выводу па У- Если ВУ должно обслуживаться в мультиплексном режиме, а онент сбрасывает сигнал РАБ—А, чем прекращается связь 141
с каналом до момента формирования очередного требования на передачу данных. Канал, освободившись от обслуживания або- нента, переходит к обслуживанию других абонентов, выставив- ших требование ТРБ—А. Если ВУ должно обслуживаться в мо- нопольном режиме, сигнал РАБ—А не снимается до тех пор, пока не будет завершена передача блока данных. Процедура окончания операции ввода—вывода может быть инициирована как ВУ, так и каналом. В каждом случае операция заканчивается передачей в канал байта состояния, который со- держит информацию о причине окончания операции. 5.5. Операции ввода—вывода в мини-ЭВМ В мини-ЭВМ внешние устройства (ВУ) подключаются к про- цессору и памяти через единый интерфейсам, рис. 4.3, 4.7), инфор- мация по которому передается словами одного формата, совпа- дающего с форматом слов процессора и памяти. Поэтому вводи- мая—выводимая информация может передаваться двумя путями: между ВУ и процессором, а также между ВУ и памятью. Обмен информацией между ВУ и процессором организуется в рамках программы, выполняемой процессором, с помощью команд ввода—вывода, которые служат для инициирования работы ВУ, проверки готовности ВУ к приему—выдаче данных и передачи данных — слов информации. Ввод—вывод информа- ции на основе программы, управляющей работой ВУ и передачей данных, называется программным обменом данными. При про- граммном обмене ВУ выполняет пассивную функцию источника— приемника информации, состояние которого контролируется и изменяется с помощью программы. За счет этого устройство управления ВУ становится максимально простым и уменьшается стоимость системы ввода—вывода, что крайне существенно для мини-ЭВМ. Однако при программном обмене команда ввода— вывода инициирует передачу только одного слова информации, и процессор работает в темпе ВУ, которые обычно имеют невысо- кое быстродействие, а это приводит к большим потерям процес- сорного времени. Чтобы избежать простоев процессора, исполь- зуется режим ввода—вывода по прерыванию, при котором сигнал прерывания, формируемый в момент готовности ВУ к приему— передаче слова информации, переключает процессор на выпол- нение программы ввода—вывода, по окончании которой обработка данных продолжается до следующего сигнала прерывания. Однако режим ввода—вывода по прерыванию не обеспечивает высокой скорости передачи данных, поскольку передача одного слова программируется несколькими командами. Поэтому такой режим приемлем лишь для передачи небольших объемов информации. Высокая скорость передачи данных при минимальном исполь- зовании ресурсов процессора достигается за счет режима прямого доступа к памяти. Прямой доступ к памяти обеспечивается соответствующей организацией ВУ и интерфейса. ВУ, работаю- 142
щее в таком режиме, должно принимать от процессора адрес А области памяти, в которой размещается вводимая—выводимая информация, и количество передаваемых слов С. Работа ВУ инициируется командой ввода—вывода, по которой ВУ обеспе- чивает передачу С слов информации. При этом процессор и ВУ работают независимо, поочередно обращаясь к памяти для чте- ния — записи слов информации, причем приоритет на доступ к памяти предоставляется ВУ. ВУ, которое работает в режиме прямого доступа к памяти, реализует достаточно сложные функ- ции по передаче информации. Поэтому затраты оборудования в устройствах управления таких ВУ значительно превышают аналогичные затраты в ВУ с программным обменом данными. Для программного обмена данными и управления работой ВУ с прямым доступом к памяти используется один и тот же набор команд ввода— вы „ода. Такая унификация управления режимами передачи данных обеспечивается в основном за счет особой адре- сации ВУ, которая сводится к следующему. Каждому источнику и приемнику информации присваивается собственный адрес. ВУ, работающее в режиме программного обмена данными, полу- чает один адрес, обращаясь по которому можно записать или про- читать слово информации. ВУ с прямым доступом к памяти яв- ляется устройством с несколькими приемниками и источниками информации: в ВУ засылается адрес А области ввода—вывода, число передаваемых слов С и производится обмен словами дан- ных D. В связи с этим такому ВУ присваиваются три адреса U, U -|- 1, U -ф 2. Обращение по адресу U приводит к загрузке в ВУ адреса А, обращение по адресу (U 4-1) — к загрузке зна- чения счетчика С, а обращение по адресу ((7 4-2) позволяет кон- тролировать канал передачи данных D от рассматриваемого ВУ. Некоторые ВУ, для управления работой которых требуется большее количество слов информации, снабжаются большим чис- лом адресов, каждый из которых выделяет приемник или источ- ник слова со специфическим функциональным назначением. 5.6. Команды ввода—вывода и интерфейсы программного обмена и прямого доступа к памяти Мини-ЭВМ с выделенной памятью строятся по схеме, изобра- женной на рис. 4.7. Внешние устройства (ВУ) подключаются посредством единого интерфейса к процессору, через который производится доступ к памяти. Такую структуру имеет мини-ЭВМ PDP-8, ввод—вывод в которой организуется следующим образом. Команды ввода—вывода. Все операции ввода—вывода ини- циируются командами следующего формата: 0 2 3_________________8 9 11 ПО Адрес ВУ Приказ 143
Разряды 0—2 содержат код операции ввода—вывода. Адрес ВУ определяется 6-разрядным двоичным кодом, который позволяет указывать 26 = 64 источника—приемника информации. Поле 9—11 служит для размещения кода приказа, воздействующего на ВУ. В команде можно указать один из восьми приказов, которым соответствуют следующие действия: СБРОС — приведение ВУ в исходное состояние; ПРОПУСК — анализ готовности ВУ к приему—выдаче информации с целью перехода к команде с адресом (а ф- 1), если ВУ не готово, и к команде с адресом (а ф2) в противном случае; ЧТЕНИЕ — передача слова из ВУ в процессор; ЗАПИСЬ — передача слова из процессора в ВУ; ИСПОЛНИТЬ — инициирование какого-либо действия в ВУ, например запуск механизма перемещения перфоленты. Эти приказы могут быть закодированы кодами 0—4, а коды 5—7 можно приписать до- полнительным действиям, реализуе- мым ВУ. Команда ввода — вывода выбирается процессором из памяти в ходе выполне- ния текущей программы и исполняется следующим образом. Адрес ВУ и приказ, указанные в команде, посылаются по соответствующим цепям интерфейса одновременно ко всем ВУ. Каждое ВУ сравнивает собственный адрес с за- данным. ВУ, адрес которого совпадает Рис. 5.4. Интерфейс про- граммного обмена данными со значением, представленным в команде, логически подклю- чается к интерфейсу, т. е. воспринимает код приказа и выполняет предписанное приказом действие: подготовительное (СБРОС, ИСПОЛНИТЬ), передачу слова данных (ЧТЕНИЕ, ЗАПИСЬ) и т. д. По окончании действия процессор переходит к выборке й выполнению следующей команды. Интерфейс программного обмена данными. Программный обмен — передача отдельных слов данных по командам вво- да—вывода — производится через совокупность цепей, изобра- женных на рис. 5.4. Шины, номера цепей которых указаны в скобках, и отдельные цепи служат для передачи следующих сигналов. Шина В (1:2) служит для передачи сигналов о состоянии процессора. По цепи В (1) сигнал передается при включении и запуске ЭВМ. Этот сигнал используется для сброса ВУ в на- чальное состояние. Сигнал В (2) осведомляет ВУ о том, что про- цессор занят (исполняет команды). Шины BD (0 : 11) и AD (0 : И) служат для передачи 12- разрядпого слова из процессора в ВУ и в обратном направлении соответственно. 144
Адрес ВУ и приказ, заданные в команде ввода—вывода, пере- даются в ВУ по шинам BA (1 : 6) и ВС (1 : 3) соответственно. На заданный адрес всегда откликается только одно ВУ. Сигналы из ВУ поступают в процессор по общим для всехВУ цепям AQ, AF, АС. По цепи AQ передаются сигналы прерывания, которые могут быть посланы одновременно от нескольких ус- Рис. 5.5. Программа об- мена данными с синхро- низацией по флажку которые могут быть посланы одновременно тройств. Когда прерывание разрешено, сигнал AQ приводит к прекращению выполнения одной программы и переходу к программе, адрес которой указан в ячейке 1. Сигнал AF представляет со- стояние устройства, как говорят, значе- ние флажка. Когда ВУ готово к приему или передаче слова данных, формируется сигнал готовности—флажокВУ. Сигнал АС служит для сброса итогового регистра процессора перед передачей в регистр слова данных. Шина ВТ (1:2) служит для синхро- низации работы ВУ с помощью сигналов, отмечающих такты работы процессора. Программный обмен данными органи- зуется через интерфейс следующими спо- собами. 1. Если ВУ в любой момент времени готово к передаче слова информации, об- мен программируется командой 6. U.С, где 6 — код операции ввода — вывода; U — адрес ВУ; С — приказ ЧТЕНИЕ или ЗАПИСЬ. При выполнении команды адрес U и приказ С посылаются на шины В А и ВС. ВУ, реагируя па адрес U, под- i ключается к интерфейсу и, исполняя при- каз, читает слово данных, представленное на шине BD, или посылает слово в процессор по шине AD, которое поступит на регистр процессора. 2. Обращение к ВУ, которому требуется определенное время на чтение или запись слова или символа информации, произво- дится по флажку. К такого рода ВУ относятся печатающее устрой- ство и устройство ввода с перфоленты, которым требуются милли- секунды для вывода и ввода символа информации. Обмен данными с такими ВУ программируется по схеме на рис. 5.5. Перед на- чалом обмена необходимо с помощью команд ввода—вывода, содержащих приказы СБРОС и ИСПОЛНИТЬ, сбросить флажок и включить в работу ВУ (например, запустить механизм пере- мещения перфоленты). Затем процессор должен ожидать, когда устройство прочитает символ информации. Для этого используется команда ввода—вывода с приказом ПРОПУСК, опрашивающим 145
флажок ВУ, значение которого передается по цепи AF. Если флажок имеет значение 0, команда многократно повторяется. Когда ВУ подготовит символ для передачи, оно ставит в 1 флажок, соединенный с цепью AF. Реагируя на единичное значение флажка, команда с приказом ПРОПУСК перейдет к выполнению команды с адресом (а + 2), по которому размещается команда ЧТЕНИЕ, СБРОС, обеспечивающая передачу в процессор слова, содержа- щего символ, и сброс флажка в 0. После обработки слова процесс повторяется циклически до тех пор, пока не будет введена необ- ходимая информация. Отметим, Рис. 5.6. Поиск источника прерывания и передача данных что скорость целиком определяется быстродействием ВУ и выпол- нение программы согласуется с темпом работы В У путем опроса флажка с помощью команды ПРОПУСК. 3. Более эффективное ис- пользование времени процес- сора можно обеспечить, если производить чтение — запись слова данных с прерыванием программы. Для этого флажок ВУ должен быть подключен к цепи прерывания AQ. При вводе—-выводе по прерыванию ВУ запускается в работу при- казом ИСПОЛНИТЬ, после чего процессор продолжает обработ- ку данных. Когда В У готово к передаче данных, оно ставит в 1 флажок, соединенный с цепью прерывания. Сигнал с этой цепи вызывает прерывание программы обработки данных и переключает процессор на выполнение про- граммы ввода—вывода, которая обеспечивает передачу слова данных, сброс флажка в 0 и возврат на выполнение программы обработки. Если к интерфейсу подключены несколько ВУ, форми- рующих сигналы прерывания, определение адреса ВУ, вызвав- шего прерывание, производится последовательным опросом этих ВУ с помощью приказа ПРОПУСК, позволяющего определить состояние флажка. Порядок выделения устройства, вызвавшего прерывание, и передачи данных из него иллюстрируется рис. 5.6. Интерфейс прямого доступа к памяти. Передача данных между ВУ и памятью происходит под контролем процессора в следующем порядке. ВУ формирует запрос на передачу слова данных посредством прямого доступа к памяти (ПДП). Процес- сор после выполнения каждой команды анализирует наличие запроса на ПДП и формирует сигнал, что запрос принят. По этому сигналу ВУ передает адрес ячейки памяти, участвующей в передаче слова данных, сигнал о направлении передачи (ввод или вывод) и при вводе — слово данных. На время передачи 146
слова данных процессор приостанавливает свою работу, поскольку память занята обслуживанием ВУ. По окончании обслуживания работа процессора продолжается параллельно с работой ВУ. Для обмена информацией между процессором и ВУ используется интерфейс ПДП, основные цепи которого представлены на рис. 5.7. По цепи AZ в процессор передается запрос на использование ка- нала ПДП. Сигнал о том, что процессор принял запрос на работу с каналом ПДП, передается в ВУ по цепи BZ. По этому сигналу ВУ увеличивает адрес А слова данных на 1 и изменяет на 1 зна- чение С счетчика передаваемых слов. Момент начала цикла ПДП отмечается сигналом BS, по которому в процессор по цепи AWR передается код направления обмена (О — вывод, 1 — ввод), а по цепи АА — адрес слова данных. Для передачи слова служат шины AD и BD, по которым передаются вводи- мые или выводимые слова данных. Управление работой ВУ, подклю- ченного к каналу ПДП, и передача данных производятся следующим образом. Загрузка адреса А области памяти, в которую должен произво- диться ввод—вывод данных, и чис- ла С передаваемых слов произво- Рис. 5.7. Интерфейс прямого доступа к памяти дится по интерфейсу программного обмена, для чего приемники А и С снабжаются адресами, например ад- ресами 21 и 22. Собственно ВУ, через которое вводятся—вы- водятся слова данных, также идентифицируется адресом, на- пример адресом 23. Подготовка ВУ к вводу — выводу осущест- вляется программой, которая с помощью команд ввода—вывода, реализуемых через интерфейс программного обмена, выполняет следующие действия: 1. Сброс флажков командами СБРОС 21, СБРОС 22, СБРОС 23. 2. Загрузка адреса А командой ЗАПИСЬ 21. 3. Загрузка счетчика С командой ЗАПИСЬ 22. 4. ЗАПУСК ВУ командой ИСПОЛНИТЬ 23. Затем программа переходит либо к вычислениям, либо в со- стояние ожидания момента окончания только что начатой опера- ции ввода—вывода. Как только в ВУ будет сформировано вводи- мое слово или завершена подготовка к выводу слова, ВУ посылает запрос на ПДП. Процессор, реагируя на запрос, приостанавливает выполнение очередной команды и переходит к обслуживанию канала ПДП, посылая через интерфейс ПДП сигнал о том, что запрос принят. По этому сигналу запрос сбрасывается и зна- чения А и С изменяются на 1. Затем процессор подает сигнал начала цикла ПДП, по которому происходит передача слова между ячейкой А памяти и ВУ. По окончании цикла ПДП 147
процессор продолжает вычисления, а ВУ читает очередное слово данных или записывает принятое слово, после чего ВУ форми- рует очередной запрос па передачу слова данных. Этот процесс продолжается до тех пор, пока счетчик С не придет в нулевое состояние. Состояние С = 0 используется для выработки сигнала прерывания и установки флажка устройства, в рассматриваемом случае — устройства с адресом 23. Сигнал прерывания и флажок извещают процессор об окончании операции ввода—вывода. 5.7. Единый интерфейс Для обмена информацией между устройствами мини-ЭВМ ис- пользуется единый интерфейс, к которому подключаются все устройства, в том числе и память (см. рис. 4.3). За счет этого все устройства используют одинаковый способ связи между собой, который обеспечивается, в частности, следующим принципом адресации устройств. Каждый источник или приемник информа- ции, в качестве которого может выступить ячейка памяти или регистр устройства, рассматривается как ячейка, из которой можно прочесть или в которую можно записать слово информации. Все множество ячеек адресуется попарно различными адресами О, 1, 2, ..., 2т — 1, где т — число разрядов адреса. Так, в мини-ЭВМ PDP-8 используются 18-разрядные адреса, которые распределяются между ячейками памяти и регистрами ВУ сле- дующим образом: адреса 0—258 047 служат адресами ячеек па- мяти, емкость которой может достигать 252 кслов; последние 4096 адресов 258048—262 144 служат адресами регистров ВУ. Для адресации нескольких регистров одного ВУ используется соответствующее число адресов. Любое устройство, обращаясь по адресу А с целью чтения или записи слова, однозначно опре- деляет устройство, которое должно обслуживать обращение. При таком способе адресации источников—приемников информа- ции любое устройство может обмениваться информацией с любым другим устройством ЭВМ, в частности одно ВУ может обмени- ваться информацией с другим ВУ. Состав интерфейса. Единый интерфейс состоит из 56 цепей, к которым устройства подключаются по схеме на рис. 5.8. Шина адреса А используется для передачи 18-разрядного адреса, в ко- тором последние 4096 адресов относятся к ВУ. Шина данных D состоит из 16 цепей, обеспечивающих передачу слова данных. Шина управления С состоит из 9 цепей, сигналы на которых используются для указания направления обмена (запись, чтение), синхронизации передачи информации, прерывания и т. д. Шины адреса и данных, а также цепи, задающие направление обмена, являются двунаправленными, т. е. информация по ним может передаваться в любом направлении, что обеспечивает обмен адре- сами, данными и кодами управления между любой парой устройств. Для передачи слова информации через интерфейс требуется 655 нс, причем следующий цикл передачи может следовать через 148
149
550 нс от момента начала предыдущей передачи. Одновременно работающие устройства могут использовать интерфейс поочередно. Для управления порядком использования интерфейса служат пять цепей запроса и пять цепей разрешения обмена. Цепям 1—5 запроса соответствуют различные приоритеты: цепи 1 — высший приоритет и цепи 5 — низший. В цикле передачи данных может появиться несколько запросов на использование интерфейса, из которых первым удовлетворяется запрос, поступивший на цепь с более высоким приоритетом. Так, запросы, поступающие в цепь /, удовлетворяются в первую очередь, в то время как остальные запросы должны ожидать момента освобождения интерфейса. Запросы со всех цепей поступают в процессор, который выделяет запрос с максимальным приоритетом и посылает сигнал в одно- именную цепь разрешения обмена. Сигнал разрешения, как пока- зано па рис. 5.8, последовательно пробегает через ВУ, подключен- ные к соответствующей цепи. ВУ, которое находится ближе всех к процессору, замыкает сигнал разрешения на себя и блоки- рует его дальнейшее распространение. Сигнал разрешения, по- ступивший в ВУ, инициирует цикл передачи данных через интер- фейс, который на этот период принадлежит выбранному внешнему устройству. Таким образом, ВУ разделяются на пять групп с раз- ными приоритетами на использование интерфейса. В пределах каждой группы приоритет ВУ определяется его местом в цепи разрешения передачи. Более высокими приоритетами должны обладать наиболее быстродействующие ВУ, поскольку макси- мально допустимое время ожидания обмена определяется периодом следования вводимых—выводимых слов, который тем меньше, чем выше быстродействие ВУ. Обмен данными через интерфейс. Операции ввода—вывода, выполняемые ВУ, инициируются процессором. Любое из ус- тройств, кроме памяти, может стать ведущим и управлять процес- сом обмена данными с другим устройством, называемым ведомым. Ведущее устройство формирует запросы на прерывание и иници- ирует передачу слова данных по задаваемому им адресу А. Про- цесс обмена информацией через интерфейс происходит в сле- дующем порядке. 1. Ведущее устройство выдает на шипы адрес А, код направ- ления обмена и, возможно, слово данных. 2. Ведомое устройство декодирует адрес и сигналы управле- ния, для чего выделяется 150 нс. 3. Ведомое устройство принимает или выдает слово данных (220 нс), после чего ведущее устройство в течение 75 нс ждет установления сигналов на шинах. 4. Ведущее устройство принимает слово данных (30 нс). 5. Ведущее устройство сбрасывает адрес и сигналы управле- ния, а ведомое — слово данных (75 нс). Перечисленные действия требуют для своего выполнения 550 нс, после чего может быть начат следующий цикл обмена. 150
Глава 6 ПРИНЦИП МИКРОПРОГРАММНОГО УПРАВЛЕНИЯ И СТРУКТУРА ОПЕРАЦИОННЫХ УСТРОЙСТВ 6.1. Принцип микропрограммного управления Для выполнения операций над информацией используются операционные устройства — процессоры, каналы ввода—вывода, устройства управления внешними устройствами и т. п. Функцией операционного устройства является выполнение заданного мно- жества операций F = [flt .... fa] над входными словами D = = {с?!, .... dtI] с целью вычисления слов R = {ru ..., rQ}, пред- ставляющих результаты операций R = fg (D), g = 1, ..., G. Функциональная и структурная организация операционных ус- тройств, определяющая порядок функционирования и структуру устройств, базируется на принципе микропрограммного управле- ния, который состоит в следующем. 1. Любая операция fg, g = 1, ..., G, реализуемая устройством, рассматривается как сложное действие, которое разделяется на последовательность элементарных действий над словами информа- ции, называемых микрооперациями. 2^ Для управления порядком следования микроопераций ис- пользуются логические условия, которые в зависимости от значений слов, преобразуемых микрооперациями, принимают значения «истина» или «ложь» (1 или 0). Процесс выполнения операций в устройстве описывается в форме алгоритма, представляемого в терминах микроопераций и логических условий и называемого микропрограммой. Микро- программа определяет порядок проверки значений логических условий и следования микроопераций, необходимый для получе- ния требуемых результатов. 4. Микропрограмма используется как форма представления функции устройства, на основе которой определяется структура и порядок функционирования устройства во времени. Сказанное можно рассматривать как содержательное описание принципа микропрограммного управления, из которого следует, что структура и порядок функционирования операционных ус- тройств предопределяются алгоритмом выполнения операций F = = {/i> • ••> fa}- Схемные решения операционного устройства могут быть различны, но во всех случаях точка зрения на процесс функ- ционирования устройства как процесс реализации микроопераций и проверки логических условий, предопределяемый микропро- граммой, являются результативной, поскольку позволяет упоря- дочить и формализовать проектирование операционных устройств различного назначения. 151
6.2. Концепция операционного и управляющего автоматов В функциональном и структурном отношении операционное устройство разделяется на две части: операционный и управля- ющий автоматы (рис. 6.1). Операционный автомат О А служит для хранения слов информации, выполнения набора микроопера- ций и вычисления значений логических условий, т. е. операцион- ный автомат является структурой, организованной для выпол- нения действий над информацией. Микрооперации, реализуемые операционным автоматом, инициируются множеством управля- Рис. 6.1. Структу- ра операционного устройства ющих сигналов У = {yt, . . ., ум}, с каждым из которых отождествляется определенная микрооперация. Значения логических условий, вычисляемые в операционном автомате, отоб- ражаются множеством осведомительных сигна- ла^ X — [Xj, ..., xj, каждый из которых ото- жествляется с определенным логическим усло- вием. Управляющий автомат УА генерирует последовательность управляющих сигналов, предписанную микропрограммой и соответст- вующую значениям логических условий. Иначе говоря, управляющий автомат задает порядок выполнения действий в операционном авто- мате, вытекающий из алгоритма выполнения операций. Наименование операции, которую необходимо выполнить в устройстве, опреде- ляется кодом g операции. По отношению к управляющему автомату сигналы glt .... gh, посредством кото- рых кодируется наименование операции, и осведомительные сигналы хъ ..., xL, формируемые в операционном автомате, играют одинаковую роль: они влияют на порядок выработки управля- ющих сигналов Y. Поэтому сигналы gx, gh и х1( ..., xL отно- сятся к одному классу — к классу осведомительных сигналов, поступающих на вход управляющего автомата. Таким образом, любое операционное устройство — процессор, канал ввода—вывода, устройство управления внешним устрой- ством — является композицией операционного и управляющего автоматов. Операционный автомат, реализуя действия над сло- вами информации, является исполнительной частью устройства, работой которого управляет управляющий автомат, генери- рующий необходимые последовательности управляющих сиг- налов. На данном этапе рассмотрения вопроса операционный и управ- ляющий автоматы могут быть определены своими функциями — перечнем выполняемых ими действий, исходя из которых в даль- нейшем будет определена структура автоматов. Функция операционного автомата определяется следующей совокупностью сведений: 152
1. Множеством входных слов D = [dj, dH}, вводимых в автомат в качестве операндов. 2. Множеством выходных слов R = {гх, rQ}, представля- ющих результаты операций. 3. Множеством внутренних слов S = {sx, s_v}, исполь- зуемых для представления информации в процессе выполнения операций. В дальнейшем будем предполагать, что входные и вы- ходные слова совпадают с определенными внутренними словами, т е. и с S и R с S. 4. Множеством микроопераций У = {ут}, т = 1, ..., Л1, реализующих преобразование S = cpm (S) над словами информа- ции, где <рт — вычислимая функция. 5. Множеством логических условий X = {xz}, I — 1, ..., L, где Xi = ф/ (S) и ф/ — булева функция. Таким образом, функция операционного автомата задана, если определены множества D, R, S, Y, X. Заметим, что время не является аргументом функции операционного автомата. Функция устанавливает список действий — микроопераций и логических условий, — которые может выполнять автомат, но никак не опре- деляет порядок следования этих действий во времени. Иначе говоря, функция операционного автомата характеризует средства, которые могут быть использованы для вычислений, но не сам вычислительный процесс. Порядок выполнения действий во вре- мени определяется в форме функций управляющего автомата. Функция управляющего автомата — это операторная схема алгоритма (микропрограммы), функциональными операторами ко- торой являются символы ylt ум, отождествляемые с микро- операциями, и в качестве логических условий (предикатов) ис- пользуются булевы переменные хх, ..., xL. Операторная схема алгоритма наиболее часто представляется в виде граф-схемы или логической схемы алгоритма. Каждая из этих форм определяет вычислительный процесс в последовательном аспекте — уста- навливает порядок проверки логических условий хх, ..., xL и порядок следования микроопераций уг, .... ум. 6.3. Влияние систем микроопераций и логических условий на характеристики операционных устройств Основными характеристиками операционных устройств яв- ляются быстродействие и затраты оборудования. Быстродействие устройства определяется средним временем выполнения операций G •ft=2jpgTg, (6.1) где pg — вероятность выполнения операций fg; xg — среднее время выполнения операции. Вероятности рх, .... ра определяются классом задач, для решения которых предназначается ЭВМ, 153
и предполагаются известными. Операционное устройство функ- ционирует в дискретном времени t = 0, 1, 2, ... Промежуток между двумя моментами t и (t + 1) дискретного времени называется тактом. В течение такта формируется набор управляющих сиг- налов, выполняются соответствующие микрооперации и вычис- ляются значения логических условий. Длительность такта Т зависит от сложности микроопераций и логических условий и быстродействия элементов, из которых построены управляющий и операционный автоматы. С учетом этого среднее время выпол- нения операции й = TQ, где О — среднее число тактов, за которое устройство реализует операцию. Затраты оборудования в опера- ционном устройстве определяются суммарной стоимостью С эле- ментов, из которых состоит устройство. Наиболее существенное влияние на быстродействие опера- ционного устройства и затраты оборудования оказывает набор микроопераций У = [ут] и логических условий X = {xz} и в первую очередь — система функций, на основе которых они строятся. Система функций (операций), на основе которых опи- сывается алгоритм (микропрограмма) выполнения операций F = = 1Л, •••, /о}» определяется следующим образом. Система образующих алгоритма. По определению, введенному в п. 6.1, микрооперация У— это присваивание слову sa £ S значения sa : = <p,„ (Sg-y ..., sPn), определяемого как ре- зультат применения функции <рт к значениям слов s₽i, ,Spn £ 5. Аналогично,'^логическое условие-^ С А — это булева функция xi : — Ф/ (s? > •••> 5?Л)> определяющая отношение между словами sv , ..., Syh £ S. В множестве У = {г/т} микрооперации разли- чаются как функциями Ф = {фт}, на основе которых образуются микрооперации, так и наборами слов {(sa, sPi, ..., Sgrt)j, явля- ющихся операндами функции. Аналогичным образом, множество логических условий X — {xz} можно представить в виде набора булевых функций ¥ = {ф/), на основе которых строятся логи- ческие условия, и наборов слов |(sv , ..., на которые распро- страняются булевы функции. Система Z = (Ф, ¥), состоящая из множества функций Ф = {<рт}, образующих микрооперации, и множества булевых функций ¥ = {Ф/}, образующих логические условия, называется системой образующих алгоритма. Напри- мер, набор микроопераций У = {ут} может строиться на базе функций Ф = {+, Д, \/, —|), где Д, \/, Д — знаки булевых операций конъюнкции, дизъюнкции и отрицания (инверсии). Набор логических условий X — {xz( может строиться на базе отношений ¥ = { = , =/=0}. Как показывает опыт, состав функций (операций) в системе Z наиболее существенно сказывается на времени выполнения алго- ритмов (быстродействии) и затратах оборудования в операционном устройстве. Это объясняется тем, что микрооперации и логиче- 154
ские условия образуются путем применения операций, входящих в систему образующих Z = (Ф, V), к словам Sj, .... %, с которыми оперирует алгоритм. Поэтому определение набора функций Z является первоочередной задачей микропрограммирования. Структурная реализация микроопераций и логических условий. В общем случае операционное устройство строится по схеме на рис. 6.2, которая является более детальным представлением схемы на рис. 6.1. Операционный автомат О А разделяется на три части: память S; комбинационную схему Ф, реализующую микро- операции; комбинационную схему Т, вычисляющую значения Рис. 6.2. Структурная организация операционного автомата логических условий. Память S обеспечивает хранение слов8ъ ..., sN которые представляют значения операндов D, промежуточные значения и конечные результаты R. Для выполнения микроопе- раций Y = [ут] служит комбинационная схема Ф. Управляющие сигналы Y, формируемые управляющим автоматом У А, иници- ируют выполнение необходимых микроопераций. Так, если посту- пают сигналы ут1 и утг, то схема Ф выполняет две микроопера- ции: Sa, : = фт, (sp„ ..., Sa,,); Sa2 : = фт, (s₽„ ..., Sa,,), что сво- дится к вычислению значений фт, (sp,, ..., Sa,,); фт, (sp2, ..., Sa>2) и присваиванию их словам sa,, sa, С Для вычисления значений логических условий служит комбинационная схема Т, реализу- ющая систему булевых функций {х, : = ф; (sVi, ..., sVft)j, значе- ния которых представляются осведомительными сигналами X = = {*/)• Управляющий автомат в соответствии с кодом операции g генерирует набор управляющих сигналов, который инициирует соответствующий набор микроопераций. Выполнение микро- операций приводит к изменению состояния памяти операционного автомата — значений слов sx, ..., s,v. Состояние памяти S отобра- жается множеством осведомительных сигналов X, которые анали- зируются управляющим автоматом для определения следующего набора микроопераций. Процесс выработки набора управляющих 155
сигналов, выполнения микрооперации и вычисления логических условий занимает один такт времени, длительность Т которого определяется быстродействием логических и запоминающих эле- ментов. Количество тактов зависит от операции, которую реали- зует устройство, и состава системы образующих Z = (Ф, Чт): чем «элементарнее», проще функции Ф и Т, тем большее число тактов требуется для выполнения операции. Затраты оборудова- ния в операционном устройстве, как следует из рис. 6.2, опре- деляются суммой С = Cs + Сф + Су, + Суд, где Cs, Сф, Суг, Суд — затраты оборудования, приходящиеся соответственно на память S, комбинационные схемы Ф и Т, реализующие микро- операции и логические условия, и управляющий автомат. Многообразие операционных устройств. Рассмотрим различ- ные варианты построения операционного устройства, реализу- ющего фиксированное множество операций F — {/у, ..., fG] над словами D с целью вычисления слов R. Каждый период работы устройства связан с выполнением операции R — fg (£>), заданной кодом операции g = 1, ..., G. Функцию устройства будем пред- ставлять в следующей сокращенной форме: R = й (О), где А при g=l; Й = 7g при g = G — преобразование, реализуемое устройством. Эта функция реали- зуется на основе принципа микропрограммного управления структурой, приведенной на рис. 6.2. В качестве первого варианта построения устройства можно принять, что преобразование й — единственная микрооперация, которую реализует устройство. Это означает, что множество образующих микроопераций Фх = (Й) состоит из единственной функции (операции) й и отсутствует необходимость в логических условиях, т. е. — 0. Следовательно, если принять, что Й — микрооперация, система образующих алгоритма = < {й}, 0} состоит из функции Й и пустого множества функций, связанных с логическими условиями. Как показано в [54], функция й реализуется комбинационной схемой, которую обозначим Ux. Сопоставляя этот вариант реализации преобразования R = = й (D) со структурой (рис. 6.2), можно видеть, что в данном случае отсутствует необходимость в управляющем автомате, памяти для хранения промежуточных результатов и схеме Т, вычисляющей значения логических условий. С учетом этого будем считать, что структура (рис. 6.2) вырождается в единственную комбинационную схему Ф, совпадающую со схемой U± и реали- зующую преобразование й за один такт. Таким образом, реали- зация преобразования й на основе системы образующих Z± = = < {Ф}, 0} приводит к комбинационной схеме которая за один такт вычисляет значения R, соответствующие входным словам D и коду операции g. 156
Рассмотрим другой вариант построения операционного устрой- ства, реализующего то же преобразование R = Q (О). Примем, что элементы схемы (рис. 6.2) выполняют следующие функции. Информация, хранимая в памяти S, разделяется на биты sb ....бд,. Схема Ф выполняет единственную функцию Ф = {Д}, где Д — знак операции И—НЕ, на основе которой могут быть реализованы микрооперации sa : = sp Д sv, где sa, sp, sv — биты (одноразряд- ные слова). На выходе схемы Т формируется единственное логи- ческое условие = sa, значение которого 0 или 1 определяется значением результата микрооперации. В алгоритме значение хг используется для проверки на нуль (или на единицу) значения sa. Следовательно, логические условия образуются из единственной функции Т = {= 0}. Систему образующих ({Д}, {= 0}) обо- значим как ZP. Система ZP является функционально полной, т. е. в терминах функций Д, = 0 можно описать любой алгоритм, и на основе функций ZP можно построить операционное устрой- ство Up, реализующее преобразование Q. Устройство в каж- дом такте может выполнять одну микрооперацию sa : = sp Д sv. В связи с этим процесс выполнения преобразования Q должен быть представлен в форме микропрограммы, реализуемой управ- ляющим автоматом. Сопоставим характеристики операционных устройств Ut и UP, которым соответствуют вышеопределенные системы образующих Zx = ((Q), 0] и ZP = <{Д}, {=0}). Устройство Ur представ- ляет собой комбинационную схему и выполняет преобразование Q за один такт времени и является наиболее быстродействующим. Устройство UP выполняет преобразование в виде последователь- ности простейших операций над битами информации. Поэтому число тактов, необходимых для реализации преобразования Q, будет максимальным. Затраты оборудования в операционном устройстве: Суд = 0; Cs — 0; Uy — 0 и Сф имеет максимальное значение, так что суммарные затраты Сх — Cs + Сф + Счг + + Суд — Сф. Для устройства UP затраты оборудования в управ- ляющем автомате Суд и памяти операционного автомата Cs имеют максимальные значения по сравнению с другими возмож- ными вариантами построения устройств, а затраты оборудования Сф и’Сф-, приходящиеся на комбинационные’схемы Ф и Т, мини- мальны. Таким образом, в общем случае устройства Ut, UP и соответ- ствующие им системы образующих Zn ZP обладают диаметрально противоположными свойствами: 1) устройство Ux является наи- более быстродействующим, а устройство UP — наименее быстро- действующим; 2) в устройстве Ur управляющий автомат отсут- ствует, в то время как в устройстве UP на управляющий автомат приходится максимальная доля затрат оборудования; 3) опера- ционный автомат в устройстве Ux является наиболее сложным по 157
Z. = (фь Y,), t=l, ..., Р и С,# Рис. 6.3. Свойства иерархии опера- ционных устройств количеству используемого оборудования, а в устройстве UP— наиболее простым. Очевидно, что между диаметрально противоположными ва- риантами построения операционных устройств Ur, Up находится ряд вариантов, показатели которых (быстродействие и затраты оборудования) занимают промежуточное положение между экстре- мальными значениями, соответствующими устройствам Ult UP. Предположим, что существует прием, позволяющий для преобра- зования й выявлять любые возможные системы образующих синтезировать на их основе ус- тройства с быстродействием •0,г и минимальные по затратам оборудования. Такого рода си- стемам "образующих и соответ- ствующим этим системам уст- ройствам будем присваивать ин- дексы i = 1, ..., Р в порядке уменьшения быстродействия устройств. При этом времена выполнения преобразования й устройствами Ux, U2, . . ., UP будут образовывать монотонно возрастающую последователь- ность < 02 < ... < 'О'р. По- следовательность Zlt Z2, .. ., ZP будем называть иерархией си- стем образующих преобразова- ния й, а соответствующую последовательность устройств Ult U2.....Up — иерархией операционных устройств, реализующих преобразование й. Иерархия систем образующих содержит в себе иерархию наборов микроопераций и иерархию наборов логических условий, функционально полных в отношении преобразования й. Можно предполагать, что иерархия операционных устройств Ult ..., Up обладает следующими свойствами (рис. 6.3): 1) автоматное время О' выполнения преобразования й монотонно возрастает; 2) затраты оборудования Сф + Су в комбинационной части опе- рационного автомата монотонно убывают; 3) затраты оборудо- вания Cs, приходящиеся на управляющий автомат, монотонно возрастают, начиная от нуля; 4) затраты оборудования Cs, приходящиеся на память операционного автомата, монотонно возрастают; 5) в иерархии устройств имеется устройство суммарные затраты оборудования в котором С — Суд + Cs + + С® + Сцг минимальны, причем в общем случае устройство U,n занимает срединное положение между устройствами Ux и UP, т. е. 1 < т < Р. Влияние системы образующих Z = (Ф, Чг) на характе- ристики операционных устройств иллюстрируется зависимостями, 158
Рис. 6.4. Влияние системы образую- щих на характеристики операционного устройства приведенными на рис. 6.4, где Соа и Суд — затраты оборудова- ния соответственно в операционном и управляющем автоматах и С = Соа + Суд — затраты оборудования в операционном устройстве. Изменение системы образующих Z путем разложения операций F = {flt ..., fa], реализация которых возлагается на устройство, на все более и более простые операции — микро- операции и логические условия — приводит к уменьшению затрат оборудования в операционном автомате Соа, но одновременно с этим увеличиваются затраты оборудования в управляющем автомате Суа- Таким образом, изменяя состав микроопераций и логических условий, в терми- нах которых описывается алго- ритм выполнения операций, можно оборудование из опе- рационного автомата «перека- чивать» в управляющий авто- мат 'и наоборот. Из рис. 6.4 видно, что существует система образующих Zm, которой соот- ветствует определенный набор микроопераций и логических условий, обеспечивающая ми- нимум - затрат оборудования в операционном устройстве. Однако соответствующее системе Zm время выполнения операций Ф, как видно из рис. 6.3, достаточно велико. Чтобы уменьшить значение й; т. е. увеличить быстродей- ствие устройства, необходимо дополнительное оборудование, ко- торое используется для реализации более сложных микроопера- ций -и логических условий. । Задача порождения систем образующих (наборов микроопера- ций и логических условий), минимизирующих затраты оборудо- вания или обеспечивающих заданное время выполнения операций в устройстве, достаточно сложна, что затрудняет разработку фор- мальных методов выбора оптимального состава микроопераций и 'логических условий. Возможные подходы к решению этой задачи описаны в [54]. 6.4. Задача проектирования операционных устройств и концепция функционального микропрограммирования На этапе системного проектирования ЭВМ, когда ЭВМ рассма- тривается как одно целое, выявляются номенклатура устройств, в частности операционных устройств, способ сопряжения устройств (интерфейсы) и требования к быстродействию устройств. В ре- зультате для каждого операционного устройства становится известным: 1) перечень входов D и выходов Z? устройства, 159
определяемый составом интерфейсов; 2) набор операций F = \fv ... ,fe\, реализация которых возлагается фа устройство; 3) требование к быстродействию устройства, определяемое огра- ничением О < О'* на среднее время выполнения операций (6.1). | С учетом этого задача проектирования операционного устрой- ства ставится следующим образом. Заданы функции операцион- ного устройства, определяемые множествами D, R входных и выходных слов и множеством операций F, а также требования к быстродействию устройства, определяемые средним временем выполнения операций $*. Требуется синтезировать схему устрой- ства, обеспечивающую реализацию заданных функций с заданным быстродействием и являющуюся минимальной в смысле количе- ства используемого оборудования (стоимости). Чтобы синтезировать схемы операционного устройства, необ- ходимо принять некоторый способ выполнения операций в устрой- стве и описать его в форме микропрограммы. Микропрограмма, представляющая функцию операционного устройства безотноси- тельно к средствам, которые могут быть использованы для реали- зации заданной функции, называется функциональной микро- программой. Функциональная микропрограмма фиксирует в себе алгоритм выполнения операций, рекомендуемый проектировщи- ком, и используется как исходная форма представления функций устройства, на основе которой синтезируется структура, достаточ- ная для реализации заданных функций. Для записи функциональных микропрограмм необходима какая-либо алгоритмическая система — язык функционального микропрограммирования. Средства языка должны обеспечивать описание алгоритмов выполнения операций — слов, микроопе- раций, логических условий и порядка их выполнения — с такой степенью детализации, которая обеспечит синтез структуры устрой- ства. При проектировании операционных устройств и ЭВМ ис- пользуются различные языки микропрограммирования, среди которых наиболее известны языки LOTIS [45], АЛГОРИТМИК [5], CDL [73], ФОРОС [4] и ПРОЕКТ [22]. Эти языки содержат в себе средства, достаточные для описания порядка функциони- рования устройств и обеспечивающие возможность проверки кор- ректности алгоритмов путем их моделирования на ЭВМ. 6.5. Язык функционального микропрограммирования (Ф-язык) Ф-язык является средством описания функций операционных устройств на уровне микропрограмм безотносительно к структуре (аппаратуре), которая может быть использована для реализации этих функций. Ф-язык будем рассматривать как инженерный (не машинный) язык. По этой причине используем в языке общепри- нятую математическую символику, таблицы в их обычной форме и графическое представление схем алгоритмов. Машинно-ориен- тированная форма Ф-языка описана в [46 I. 1G0
Объектами, описываемыми средствами Ф-языка, являются функциональные микропрограммы, определяющие алгоритмы вы- полнения операций в устройствах. Функциональная микропро- грамма содержит в себе два рода сведений, две части: 1) описание слов и массивов, устанавливающее типы и форматы слов, с кото- рыми оперирует микропрограмма; 2) содержательный граф микро- программы, который определяет алгоритм выполнения операций в содержательной форме — в виде описаний микроопераций и логических условий. Описание слов и массивов. Основным элементом информации, с которым оперирует функциональная микропрограмма, является слово. Наименование, формат и тип слова, характеризующий спо- соб присваивания и использования значений слова, определяются описанием слова. Наименование и формат слова задаются в сле- дующем виде: С (nt: п2), (6.2) где С — идентификатор слова; п1 и п2 — номера старшего и младшего двоичных разрядов слова. Примем, что разряды слова нумеруются слева направо неотрицательными целыми числами, т. е. П] > О, п2 0, пх < п2. В соответствии с описанием (6.2) разряды слова получают номера пг, пг + 1, ..., п2. Так, описание А (О : 31) определяет 32-разрядное слово А и описание В (1 : 8) — 8-разрядное слово В. Описание одноразрядного слова состоит только из идентификатора С. Так, описания Z, /7/7, ЗНАК опре- деляют три одноразрядных слова. Совокупность слов, имеющих одинаковую длину, может объ- единяться в массив. Массив описывается в следующем виде: М [т1; т2\ («г : п2), (б.з) где М — идентификатор массива; mlt т2 — границы номеров слов, составляющих массив, причем < т2, п2 — номера старшего и младшего разрядов слова. Например, описание РП [0:15] (0 : 31) представляет массив из 16 32-разрядных слов, а описание ОП [0 : 4095] (0 : 63) — массив из 4096 64-разрядных слов. Некоторые слова в семантическом отношении разделяются на части, называемые полями, и действия в микропрограмме могут производиться как над целыми словами, так и над частями слов — полями. Поля представляются следующими конструкциями: CtPC.pJ, С(р), (6.4) где С — идентификатор слова С (п^ : п2); plt р2 — номера стар- шего и младшего разрядов поля, причем pt < р2, пг С рг < п2, ni < р2 <. п2, р — номер разряда слова С < р < п2). Первая конструкция в (6.4) выделяет (р2 — рг + 1)-разрядное поле слова С, а вторая — одноразрядное поле, р-й разряд слова С. Чтобы акцентировать особый смысл некоторых полей, полям С. А. Майоров, Г. И. Новиков 161
присваиваются собственные наименования. Наименования полей вводятся конструкциями следующего вида: G («!: п2) = С (^1: р2); Н = С(р). (6.5) Здесь G и И — слова, именующие соответствующие поля слова С. Длины именующих слов должны совпадать с длинами полей: «2 — »i + 1 = Рг — Pi + 1 • Чтобы спроектировать структуру операционного устройства, необходимо в функциональной микропрограмме определить спо- соб использования значений слов и массивов, обусловливаемый типом элементов информации. В зависимости от способа исполь- зования значений выделяются следующие основные типы слов: 1) входные — значения присваиваются вне микропрограммы и используются внутри микропрограммы; 2) внутренние (локаль- ные) — значения присваиваются и используются только внутри микропрограммы; 3) вспомогательные — значения присваиваются и используются только внутри микропрограммы, но существуют не постоянно, а только в течение ограниченных интервалов вре- мени — в пределах такта автоматного времени; 4) выходные — значения присваиваются микропрограмме и используются вне ее. Типы слов обозначаются буквами: I — входные, L — вну- тренние, А — вспомогательные, О — выходные. Некоторые слова могут использоваться как элементы информации нескольких типов. Например, слово может употребляться как входное, внутреннее и выходное. Поэтому некоторые слова могут иметь следующие типы IL, LO и ILO. Последний тип соответствует слову, значение которому может присваиваться и использоваться до входа в ми- кропрограмму, в микропрограмме и по выходе из нее. С использованием принятых обозначений множество слов, с которым оперирует микропрограмма, описывается в виде табл. 6.1. Первый столбец таблицы определяет типы слов с по- мощью символов I, L, О и второй — наименования и форматы слов. В данном случае посредством описания вводится три 16- разрядных слова D, А, В, одно 17-разрядное слово С и одно 4-разрядное слово СЧ. Старите разряды слов А, В, С используются Т а б л и ц а 6.1 Описание слов Тип Наименование и формат Поля Пояснение I D (0 : 15) Входное слово L А (0 : 15) ЗНА = А (0) 1-й операнд L В (0 : 15) ЗНВ = В (0) 2-й операнд LO С (0 : 15) ЗВС = С (0) Результат L СЧ (1 : 4) — Счетчик 162
для представления знаков и этим разрядам присваиваются наиме- нования ЗНА, ЗНВ, ЗНС, которым соответствуют одноразряд- ные двоичные слова. Функциональная микропрограмма, которой соответствует табл. 6.1, может оперировать только с теми словами, которые перечислены в таблице. "* Двоичные выражения. Двоичное выражение определяет пра- вило вычисления двоичного значения путем выполнения операций над первичными двоичными значениями. В качестве первичных значений используются константы и значения слов, элементов массивов и полей. « Константы записываются Таблица 6.2 Н в следующем виде: 1100 148 1210 Сю Здесь определены четыре кон- станты: двоичная, восьмерич- ная, десятичная и шестнад- цатиричная, представляющие одно и то же значение в раз- личных формах. Шестнадцати- ричные константы составляются из символов, перечисленных в'табл. 6.2. Каждый из шест- надцатиричных символов соот- ветствует определенному 4-раз- Шестнадцатиричныг символы Двоич- ный код Символ Двоич- ный код Символ 0 (ГО 0 0 10 0 0 8 0 ОТО 1 1 10 0 1 9 0 0 10 2 1 10 10 Л 0 0 11 3 10 11 В 0 10 0 4 110 0 с 0 10 1 5 110 1 1) 0 110 6 1110 Е 0 111 7 1111 F рядному двоичному коду. Константе с п разрядами соответ- ствует двоичный набор с определенным числом разрядов: двоич- ной константе — «-разрядный набор; восьмеричной константе — 3/г-разрядный двоичный набор; число разрядов двоичного значе- ния, соответствующего десятичной константе, определяется коли- чеством значащих цифр в двоичном значении. Слова в двоичных выражениях представляются своими иденти- фикаторами. Так, D, А, В, С, СЧ, ЗНА, ЗНВ, ЗНС — слова, разрядность которых определена в табл. 6.1. Слово, являющееся элементом массива М, записывается в виде М [а], где М — иден- тификатор массива и а — номер слова в массиве, значение кото- рого должно соответствовать описанию (6.3), т. е. < а < т2. Поля записываются в виде (6.4) или представляются идентифи- каторами слов, именующих поля. Например, в слове А, описан- ном в табл. 6.1, могут выделяться поля Л (0), Л (1 : 4), Л (14 : 15), причем поле Л (0) может представляться словом ЗНА. В двоич- ных выражениях элементы массивов и поля используются наравне со словами, представляя в каждом случае соответствующее двоич- ное значение. Первичные двоичные значения — константы, слова и поля — объединяются в двоичные выражения с помощью двоичных опе- раций, список которых приведен в табл. 6.3. Операция инвер- сии | является унарной и обеспечивает изменение значений
разрядов на обратное—0 на 1 и 1 на 0. Так, если А (1 : 4) и В (1 : 4)— слова со значениями 1010 и ОНО соответственно, то двоичные выражения ~| А = 0101 и —] В = 1001. Операция составления «.» служит для присоединения значения, указанного справа от знака операции, к значению, указанному слева. Так, А. В = — 01011001 и В. А — 10010101. Операции конъюнкции и дизъ- юнкции в отличии от булевых операций применяются к наборам значений, соответствующих одноименным разрядам операндов. Например, А /\ В = 0010 и А V В = 1110. Аналогичным образом интерпретируется опе- Т а б л и ц а 6.3 Операции, используемые в двоичных выражениях х X Наименование операции Инверсия Составление Конъюнкция Дизъюнкция Сложение по моду- лю 2 (неравнознач- ность) Сложение Циклическое сло- жение Вычитание 1 2 3 4 4 рация сложения по модулю 2: А@В= 1100. Результат сложения по модулю 2 равен нулю только в том случае, когда значения одноименных разрядов операндов равны меж- ду собой, т. е. если А — В. Операция сложения выпол- няется по правилам двоич- ной арифметики над операнда- ми А, В как над целыми двоич- ными числами без знака А = 1010 + в = ОНО С = 10000. Результат сложения «-разрядных значений может состоять _из (п + 1) значащего разряда. Операция циклического сложения ж выполняется так же, как операция сложения, но перенос из старшего разряда суммы прибавляется к младшему разряду А = 1010 1 0000 ।t С = 0001. Операция вычитания распространяется значения без знака: на целые двоичные Д = 1010 В= ОНО В = 0Н0 А = 1010 С = 0100; С =...11 100. 164
При вычитании меньшего значения из большего результат пред- ставляется двоичным значением с числом разрядов, равным числу разрядов операндов. При вычитании большего значения из мень- шего результат представляется в дополнительном коде и содержит бесконечное число разрядов, причем старшие разряды равны 1. При выполнении бинарных операций {Д, V, ©> + , Ш , —} операнды совмещаются по младшим разрядам. Операнд с мень- шим числом разрядов дополняется нулями со стороны старших разрядов до длины операнда с большим числом разрядов. Двоичное выражение строится из первичных двоичных зна- чений с использованием знаков двоичных операций и скобок (,). Порядок вычисления двоичного выражения определяется скоб- ками, старшинством операций, указанным в табл. 6.3, и порядком следования операций одинакового старшинства в записи двоич- ного выражения. Примерами двоичных выражений являются следующие кон- струкции: 1510 ПЛ С+1 А 1.А С + Л(1:15) 8(0) А.О С+П.-|А(1 : 15) +1 Последнее выражение вычисляется в следующем порядке: 1) ин- вертирование "ДА (1 : 15); 2) формирование составного значе- ния 11. ~] А (1 : 15); 3) сложение С с составным значением; 4) сложение суммы со значением 1. Микрооперации. В синтаксическом смысле (по форме записи) микрооперация — это оператор присваивания, посредством кото- рого слову присваивается значение двоичного выражения. Микро- операция состоит из левой части, знака присваивания := и двоич- ного выражения. В левой части оператора указывается слово, поле или составное слово вида А. В. Следующие операторы яв- ляются микрооперациями: А : = 0 — присваивание слову А нулевого значения; 8 (1) : = 1 — присваивание полю слова 8 значения 1; А : = В — присваивание слову А значения слова В; С : = С + 1 — увеличение значения слова С на 1; С : = С — 1 — уменьшение значения слова С на 1; С : = С + А — увеличение значения С на значение слова А; С: = С+ ~]А + 1 — сложение С с дополнительным кодом слова А, т. е. вычитание А из С; А. В:= X — присваивание слову А старших разрядов слова X и слову В младших разрядов слова X. Операцию присваивания := будем пониматьс ледующим обра- зом. Если в левой части оператора указано /-разрядное значение, а двоичное выражение содержит г разрядов, то при I < г слову присваивается / младших разрядов двоичного выражения, а при / > г старшим (Z—г) разрядам присваиваются значения 0 и г, младшим разрядам — значение двоичного выражения. 165
Классификация микроопераций. Следуя инженерным тради- циям, микрооперации подразделяются на следующие классы: 1) установки; 2) инвертирования^) передачи; 4) сдвига; 5) счета; 6) сложения; 7) бинарные логические; 8) комбинированные. Микрооперация установки — присваивание слову значе- ния константы. Например, А : = 0; В : — 1111; С (0) ; = 1; С (1 : 17) : = 12710. Микрооперация инвертирования обеспечивает изменение зна- чения слова иа инверсное. Например, А : = ~| А; С(0) : = ~| С (0). Микрооперация передачи — присваивание слову значения дру- гого слова, в том числе инверсии или составного слова. Напри- мер, А : = В; А (0) : = В (0); С : = ~| А; С: = 11. Л (1 : 15). Микрооперация сдвига служит для изменения положения раз- рядов слова по отношению к начальному путем перемещения каждого разряда на k позиций влево или вправо. Любая микро- операция сдвига может быть представлена в форме оператора присваивания. Например, сдвиги слова А (1 : 32) могут "быть описаны следующим образом: А : = А (2 : 32). 0 — сдвиг на один разряд влево с введением нуля в освобождающийся при сдвиге разряд; А : = А (2 : 32) . А (1) — циклический сдвиг на один разряд влево; А : = 00.Л (1 : 30) — сдвиг на два разряда вправо с введе- нием нулей в освобождающиеся разряды; Л : = Л (31 : 32) . Л (1 : 30) — циклический сдвиг на два раз» ряда вправо. В целях сокращения записи микроопераций сдвига и придания семантического оттенка соответствующим операторам исполь- зуются две стандартные процедуры: R& (А)— удаление'”из двоичного выражения A k младших правых разрядов, т. е. сдвиг значения на k разрядов вправо; Lk (А) — удаление из двоичного'выражения A k старших ле- вых разрядов, т. е. сдвиг значения на k разрядов влево. Если А = 0^2 ... ап—«-разрядное двоичное значение, то R/г (А) = ага2 ... an_k и Lk (А) = ak+1ak+2 ... ап. С использова- нием указанных процедур вышеперечисленные микрооперации сдвига представляются следующими операторами: А : = LI (А.0); А : = LI (А.А (1)); А : = R2 (00.А); А : = R2 (А (31 : 32). А). До- полнительно отметим, что если А (1 : 32) и В (1 : 32) —32-разряд- ные слова, то оператор А : = 0.В (1 : 31) представляет не микро- операцию сдвига, а передачу слова В со сдвигом на один разряд вправо, иначе — передачу поля В (1 : 31). Микрооперация счета обеспечивает изменение значения слова на единицу. Например, А : = А + 1; В : — В — 1; С : = А + 1; С(1 : 4) : = С(1 : 4) + 1. Микрооперация сложения служит для присваивания слову зна- чения суммы слагаемых. Например, С : = С + А; С : = = с э ~ув. 166
Бинарные логические микрооперации присваивают слову зна- чение, получаемое поразрядным применением операций Д, \Д © .. парам соответствующих разрядов слагаемых. Например, С : = ;=ДДВ;С:=А©В. Комбинированные микрооперации —это микрооперации, не принадлежащие ни одному из вышеперечисленных классов. Ком- бинированная микрооперация содержит в себе несколько действий, присущих микрооперациям разных классов. Например, микро- операция А : = L1 (—|у4.1) порождает сдвиг влево с одновремен- ным инвертированием слова А и является комбинированной. Совместимость микроопераций. Некоторые из используемых в программе микроопераций могут выполняться параллельно во времени, в то время как другие —только последовательно. Свой- ство совокупности микроопераций, гарантирующее возможность их параллельного выполнения, называется совместимостью. Микро- операции, не обладающие указанными свойствами, называются несовместимыми. Совместимость микроопераций обусловлена, во- первых, содержанием операторов, представляющих микроопера- ции, — так называемая функциональная совместимость — и, во- вторых, структурой операционного устройства, допускающей или исключающей возможность параллельного выполнения несколь- ких микроопераций, — так называемая структурная совмести- мость. В функциональных микропрограммах, описывающих алго- ритм выполнения операций безотносительно к структуре устрой- ства, параллельно могут выполняться только те микрооперации, которые обладают свойством функциональной совместимости. Структура может внести ограничения на количество параллельно выполняемых микроопераций. Поэтому возможность параллель- ного выполнения микроопераций должна определяться исходя из структурной совместимости. Таким образом, если структура операционного устройства не определена, то совместимыми назы- ваются функционально совместимые микрооперации. Если струк- тура задана, то совместимыми называются структурно совмести- мые микрооперации. Микрооперации S4 : = ф4 (S2) и S3 : = <р2 (S4), где S2, S3, S4 <= S — подмножества слов из S, называются функционально совместимыми, если S4 П S3 = 0, т. е. если микрооперации при- сваивают значения разным словам. Так, микрооперации s4 : = — Фх («2, s3), s2 : = ф2 (s2) —функционально совместимы, но ми- крооперации s2 : = <р2 (s2), s2 : = ф3 (s3) —функционально не- совместимы и, следовательно, не могут выполняться параллельно во времени, т. е. одновременно. Возможность параллельного вы- полнения микроопераций, функционально совместимых в смысле данного определения, обеспечивается за счет следующего прин- ципа выполнения микроопераций: совместное выполнение микро- операций s4 : — <рх (s2), s3 : = <p2 (s4) сводится к одновременному вычислению значений двоичных выражений ф4 (s2), ф2 (s4), после чего эти значения одновременно присваиваются словам s4, s3, 167
указанным в левых частях операторов присваивания. Условием совместимости т микроопераций является совместимость каждой пары микроопераций. Указанное определение функциональной совместимости микро- операций не является единственным. Иное понимание функцио- нальной совместимости используется в [46]. Микрооперации называются структурно несовместимыми, если из-за ограничений, порождаемых структурой операционного автомата, они не могут быть выполнены совместно — в одном такте автоматного времени. В противном случае микрооперации явля- ются структурно совместимыми. Структурная несовместимость микроопераций связана с использованием микрооперациями об- щего оборудования, единственность которого исключает возмож- ность совместного выполнения микроопераций. Существуют струк- туры, которые обеспечивают совместимость всех функционально совместимых микроопераций, но все остальные структуры вносят ограничение на совместимость отдельных групп или всех без исключения микроопераций. Логические, условия. Логическое условие — это булева функ- ция ф/ (s₽i, ..., SpJ, где $р , ..., sPn £ S —слова из множества S. Булева функция состоит из первичных булевых выражений, ко- торые связываются между собой знаками булевых операций: — отрицание; Д — конъюнкция, \/ —дизъюнкция; ©—отрица- ние равнозначности. В качестве первичных булевых выражений используются одноразрядные слова и поля, а также отношения. Отношения имеют вид Сх * С2, где * — знак операции отноше- ния = , <, >, >, с. Примерами логических условий яв- ляются следующие выражения: А (0) —одноразрядное поле, значениям 0 и 1 которого соответ- ствуют такие же значения логического условия; А (0) V А (1) — условие принимает значение 0, если пере- менные А (0), А (1) одновременно равны 0, и значение 1, если хотя бы одна переменная имеет значение 1; Л (0) © Л (1) —условие принимает значение 0, если Л (0) = = Л (1), и значение 1, если А (0) =h А (1); Л = 0 — условие, представленное отношением равенства, при- нимает значение 0, если Л 0, и значение 1, если Л = 0; С < 127ю — условие, представленное отношением «не больше», принимает значение 0, если С > 127, и значение 1, если С < 127. В микропрограммировании более сложные конструкции ло- гических условий встречаются очень редко. Содержательный граф микропрограммы. Для инженерных при- менений алгоритмы выполнения операций в устройстве удобно описывать в графической форме — содержательным графом микро- программы. Граф строится с использованием вершин четырех ти- пов (рис. 6.5) и дуг, связывающих вершины. Начальная вершина отмечает начало алгоритма и имеет единственный выход, из ко- торого исходит дуга к первой выполняемой вершине графа. Для 1G8
обозначения операторов алгоритма используются вершины двух типов: функциональные и условные. Функциональная (основная) вершина определяет действие — совокупность функционально сов- местимых микроопераций, выполняемых параллельно. Микро- операции в вершине представляются в виде операторов присваи- Рис. 6.5. Вершины гра- фа микропрограммы: а—начальная; б— функциональная (опе- раторная); в — услов- ная; г — конечная вания. В функциональную вершину может входить любое, не меньшее 1 число дуг и из вершины выходит только одна дуга. Услов- ная вершина используется для разветвле- ния вычислительного процесса в одном из двух возможных направлений, выбор кото- рого определяется текущим значением ло- гического условия, указанного в вершине. Если условие имеет значение 0, вычисли- тельный процесс развивается по дуге, от- меченной символом 0, в противном случае — по дуге, отмеченной символом 1. В условную вершину может входить любое число дуг, но выходят всегда две дуги. Конечная вершина отмечает конец микропрограммы. В конечную вершину может входить любое число дуг. Граф, представляющий микропрограмму, считается корректным, если выполняются следующие условия: 1) граф содержит только одну начальную и только одну конечную вершины; 2) в любую вершину, кроме начальной, должна входить хотя бы одна дуга, исходя- щая из другой вершины графа; 3) из каждого выхода любой вершины, кроме конечной, должна выходить одна дуга, ведущая к некоторой вершине графа; 4) при всевозможных значениях слов должен существовать путь из начальной вер- шины в конечную. Условия 2 и 3 требуют, чтобы каждая вершина имела хотя бы одну предшествующую и одну последующую вершины, причем функциональная вершина может иметь только одну последующую вершину, а условная — точно две последующие вершины, соот- ветствующие выходам 0 и 1 условной вершины. Примеры функциональных микропрограмм. Пусть операционное устройство предназначено для выполнения только двух опера- ций F = {х, /} над двоичными числами с фиксированной запя- той, представляемыми словами следующего формата: О 1______________________15 ± Цифровые разряды (6.6) 169
Результаты операций — произведение и частное—будем пред- ставлять в таком же формате с использованием процедуры ок- ругления. Если делимое больше или равно делителю, значение частного превышает 1 и не может быть представлено в формате (6.6). Этот случай будем отмечать выработкой признака перепол- нения. Сосредоточим внимание лишь на процедуре построения функ- циональных микропрограмм и поэтому будем считать, что можно использовать любые алгоритмы выполнения операций независимо от затрат времени на их реализацию. Для умножения будем использовать алгоритм вычисления произведения, начиная от младших разрядов множителя, который состоит из следующих действий [43]: 1. Произведение полагается равным пулю. 2. Если младший разряд множителя равен 1, произведение увеличивается на значение модуля множимого. 3. Произведение и множитель сдвигаются на один разряд вправо, в результате чего в младший разряд множителя вводится очередная цифра множителя. 4. Действия 2, 3 повторяются для обработки всех 15 цифр множителя. 5. Произведение округляется по значению 16-го раз- ряда. 6. Если знаки сомножителей одинаковы, произведению при- сваивается знак плюс; если знаки разные, произведению присваи- вается знак минус. Определим слова, которые необходимы для выполнения умно- жения по описанному алгоритму. Операнды—множимое и множи- тель — будем представлять словами А и В, формат которых опре- деляется (6.6). Значения присваиваются словам А и В вне алго- ритма до начала операции, поэтому эти слова должны иметь тип I (входные). Затем слова А и В используются в процессе выполне- ния алгоритма, что отмечается присваиванием им типа L (внутрен- ние). Следовательно, слова А, В должны иметь тип IL. Значение произведения будем представлять словом С (0 : 15). Чтобы полу- чить округленное произведение, необходимо сохранить значение по крайней мере 16-го разряда произведения. Слово С (0 : 15) должно иметь тип L0, поскольку оно обрабатывается в микро- программе и по окончании операции представляет значение ре- зультата, используемое вне микропрограммы. Поскольку все цифры множителя обрабатываются одинаково, целесообразно организовать цикл. Для определения момента завершения цикла необходим счетчик числа повторений цикла. В начале операции счетчик устанавливается в состояние 15 и после обработки каждой цифры его состояние должно уменьшаться на единицу. Переход счетчика в состояние 0 свидетельствует об окончании цикла. Чтобы закодировать значение 15, необходимо 4 двоичных разряда, т. е. счетчик должен иметь формат СЧ (1 : 4). Значение счетчика нс- 170
пользуется только в микропрограмме, поэтому слово СЧ должно иметь тип L (внутреннее). Перечисленные слова, которые необ- ходимы для реализации операции умножения, описаны в табл. 6.4. Рис. 6.6. Содержатель- ный граф микропро- граммы умножения счетчик находится Т а б л и ц а 6.4 Описание слов в микропрограмме умножения Тип Слово Пояснение IL А (0 : 15) Множимое IL В (0 : 15) Множитель LO С (0 : 15) Произведение L СЧ (1 : 4) Счетчик циклов Функциональная микропрограмма, опи- сывающая алгоритм операции умножения, состоит из описания слов (табл. 6.4) и содержательного графа микропрограммы (рис. 6.6). Выполнение операции начинается с присваивания произведению С нулевого значения и установки счетчика СЧ в началь- ное состояние 15. Эти микрооперации явля- ются совместимыми, что позволяет объеди- нить их в один функциональный оператор. Вычисление произведения начинается с ана- лиза значения младшей цифры множителя. Если В (15) = 1, произведение С увеличи- вается на значение модуля множимого, представляемое в разрядах 1—15 слова А. В следующем операторе производится сдвиг цифровых разрядов 1—15 множителя В с целью выделения очередной цифры мно- жителя, сдвиг произведения С и уменьшение значения счетчика на 1. Для сохранения младших разрядов произведения разряд С (15) передается в старший разряд слова В, освобождающийся при сдвиге множителя. 1тобы определить необходимость повторе- ния цикла выработки произведения и мо- мент окончания формирования значения про- изведения, проверяется условие С£7=0. До окончания обработки 15 цифр множителя _________ ... в состоянии, отличном от 0. Поэтому условие имеет значение 0 («ложь») и в микропрограмме выполняется переход на обработку следующей цифры. Когда СЧ = 0, выработка произведения
заканчивается. Округление результата производится добавле- нием 1 к 15-му разряду слова С, если разряд В (1) = 1. Значение логического условия А (0) @ В (0) определяет знак произведения. Если А (0)@В (0) = 0, знаки сомножителей одинаковы и в знаковом разряде С (0) произведения сохраняется значение 0, соответствую- щее знаку плюс. Если А (0) @ В (0) = 1, в знаковый разряд С (0) произведения заносится значение 1, соответствующее знаку минус. Для деления чисел с фиксированной запятой будем использо- вать алгоритм без исправляющих сложений [43]: 1. Если делитель равен нулю, фиксируется переполнение при делении. 2. Проверяется возможность деления. Для этого из делимого вычитается делитель. Если остаток не отрицателен, то частное больше 1 (переполняет разрядную сетку) и деление невозможно. 3. Остаток удваивается сдвигом влево. 4. Если остаток положителен, то делитель вычитается из остатка; если остаток отрицателен, то делитель суммируется с остатком. 5. Если новый остаток положителен, очередная цифра част- ного равна 1; если остаток отрицателен, цифра частного равна 0. _6. Действия 3—5 повторяются до выработки 16 цифр частного. 7. Частное округляется по значению 16-го разряда. 8. Частному присваивается знак плюс, если знаки операндов одинаковы, и знак минус, если знаки операндов различны. Определим набор слов, необходимый для выполнения опера- ции деления. Как и при умножении, операнды —делимое и дели- тель — будем представлять словами/! и В, а частное — словом С. Для организации цикла используется счетчик СЧ (1 : 4). При со- ставлении функциональных микропрограмм стремятся умень- шить число микроопераций. Этого можно достичь, если при вы- полнении деления использовать в основном те же микрооперации, которые применялись для умножения. С этой целью примем, что в процессе выполнения операции остаток представляется словом С, делитель — словом А и частное формируется в слове В. В про- цессе деления остаток удваивается и может принимать значения из диапазона 0 < х < 2. Следовательно, для размещения остатка требуется 16 цифровых разрядов и знаковый разряд, т. е. слово С должно быть 17-разрядным. Чтобы получить округленный резуль- тат, необходимо выработать 16 цифр частного, для размещения которых слово В, используемое для представления частного в ходе операции, должно иметь 16 цифровых разрядов.-В процессе деления может возникнуть переполнение. Признак переполнения будем фиксировать в одноразрядном слове ПП. Перечисленные слова, необходимые для реализации операции деления, описаны в табл. 6.5. Содержательный граф микропрограммы деления приведен на рис. 6.7. Деление начинается с перемещения операндов: делимое А 172
Рис. 6.7. Содержательный граф микропрограммы деления
передается в С и делитель — в А. Знаки операндов сохраняют свое первоначальное положение и занимают нулевые разряды слов А и В. При выполнении передачи С : — А (1 : 15) знаковый разряд слова С принимает значение 0. Затем проверяется на нуль значение делителя. Если цифровые разряды делителя равны нулю, фиксируется переполнение ПП : = 1. При ненулевом де- лителе производится пробное вычитание, для чего к 17-разрядному слову С (делимому) прибавляется дополнительный код делителя 11. Л (1 : 15) + 1. Значение 11, добавляемое к обратному коду ~|Д (1 : 15), представляет отрицательный знак и инверсию нуля, Т а б л и ц а 6.5 Описание слов в микропрограмме деления Тип Слово Пояснение IL А (0 : 15) Делимое IL В (0 : 16) Делитель LO С (0 : 16) Остаток ^(част- ное) L СЧ (1 : 4) Счетчик циклов LO ПП Признак пере- полнения заносимого в «свободный» раз- ряд С (1) слова С. Знак разно- сти представляется значением С (0). Если С (0)=0, делимое не меньше значения делителя и де- ление невозможно, что отме- чается выработкой признака переполнения ПП : — 1. Если знак разности отрицателен — С (0) = 1, начинается выработка 16 цифр частного. Предварите- льно остаток удваивается сдви- гом влево, счетчик и слово В, в котором будет формироваться частное, устанавливаются в на- чальное состояние. Цифра частного вырабатывается путем вычитания или сложения остатка и делителя, что реализуется микрооперациями С : = С + 11. —|Д (1 : 15) + 1 и С: = Сф + А (1 : 15). Знак вновь полученного остатка определяет очередную цифру частного, значение которой противоположно коду знака, т. е. цифра частного равна |С (0). Цифры частного, вырабатываются последовательно, начиная от старших разрядов. Поэтому для формирования частного используется сдвиг слова В с введением значения ~|С (0) в крайний правый разряд слова. Это действие выполняется микрооперацией В (1 : 15) : = L1 (В (1 : : 16). ~] С (0)). Определение момента окончания цикла выработки 16-разрядного частного обеспечивается следующим образом. Счетчику СЧ первоначально присваивается значение 0. Перед пер- вой проверкой условия СЧ = 0 из счетчика вычитается единица: СЧ : = СЧ — 1. Поскольку счетчик содержит ограниченное число разрядов, разность (0000—1) будет иметь значение 1111 = 1510, т. е. счетчик из состояния 0 перейдет в состояние 15. После выра- ботки 16 цифр частного, размещаемых в разрядах 1—16 слова В, старшие 15 разрядов передаются в слово С, в котором должен раз- мещаться результат, производится округление по значению млад- шего разряда частного В (16) и в случае необходимости результату присваивается знак минус. 174
5 6. Функции операционного и управляющего автоматов функциональные микропрограммы Ма, описывающие алгоритмы выполнения операций F — {/1( fG] в устройстве, несут в себе информацию о функциях операционного и управ- ляющего автоматов. На данном этапе рассмотрения принципов построения и проектирования операционных устройств ограни- чимся определением формы, в которой представляются функции автоматов, не затрагивая технику выполнения преобразований, позволяющую оптимизировать функции автоматов. Функция операционного автомата. Как отмечалось в п. 6.2, функция операционного автомата определяется множеством слов S, с которыми оперирует автомат, множеством микроопераций Y и множеством логических условий X, необходимых для реализации набора операций F — {Д, ..., fG}. Множества S, Y, X определя- ются из функциональных микропрограмм Mlt ..., Мп следую- щим образом. Каждая функциональная микропрограмма Л4Й, g — 1, ..., G, определяющая алгоритм выполнения операции fg £ F, вводит множества слов Sg, микроопераций Yg и логических условий Xg. Множества Sg, Yg, Xg характеризуют функцию операционного автомата частично — в части средств, достаточных для реализа- ции только одной операции fg. Множества S, Y, X, достаточные для реализации всех операций из набора F = [flt ..., fG], опреде- ляются объединением множеств Sg, Yg, Xg соответственно: OGG S = U Sg- Y = U Yg< X = и g=i g=i g=i Наиболее сложной является задача объединения слов ..., SG с целью определения множества слов S, необходимых операцион- ному автомату для реализации операций F. Можно ожидать, что затраты оборудования в операционном автомате будут тем меньше, чем меньше слов содержит множество S, а точнее, чем меньше суммарное число разрядов в словах S. Если число слов в множе- ствах Slt ..., Sa равно соответственно ..., Na, то для выпол- нения любой операции достаточно N — max (Мх, .... Мо) слов, т. е. мощность множества S определяется максимальной мощ- ностью объединяемых множеств ..., Sa. Следовательно, при объединении слов Slf ..., SG необходимо отождествлять между собой слова, принадлежащие объединяемым множествам. Когда функциональные микропрограммы составляются независимо одна °т другой, для отождествления слов требуется специальная про- цедура, которая позволяет отождествлять слова с различными идентификаторами и длинами таким образом, чтобы минимизиро- вать затраты оборудования в операционном автомате. Такая про- цедура описана в [8]. А пока будемпредполагать, что функ- циональные микропрограммы составляются с учетом объединения их в операционном устройстве и в связи с этим тождественные 175
слова, используемые в различных микропрограммах, идентифи- цируются одинаковыми именами, как в табл. 6.4, 6.5. В таком случае процедура объединения множеств ..., SG сводится к перечислению в множестве S слов с попарно различными иден- тификаторами, причем, если два слова с одинаковыми идентифика- торами имеют разную длину, то в множестве S вводится только Т а б л и ц а 6.6 Микрооперации, используемые в микропрограммах умножения и деления Обоз- наче- ние Микрооперация У1 Уз Уз У4 Уз Уз У1 Ув Уз У ю 4/ц У12 4/13 У и 4/15 4/ю 4/17 С : = 0 СЧ : = 1510 С : = С + А (1 : 15) В (1 : 15) : = /?1 (С (16). В (1 : 15)) С := R\ (0.С) СЧ : = СЧ — 1 С : = С+ 1 С (0) : = 1 С : = А (1 : 15) А : = В (1 : 15) С: = С+ Н.П А (1 : 15) + + 1 ПП : = 1 С : = LI (С.0) СЧ ; = 0 В : = 0 В (1 : 16)4 = L1 (Л (1 : 16).-] С(0)) С : = В (1 : 15) слово с максимальной дли- ной и считается, что слово меньшей длины может быть представлено в большем фор- мате. Так, из сопоставления табл. 6.4 и 6.5 видно, что мно- жество слов, перечисленное в табл. 6.5, обеспечивает представление всех слов из Т а б л и ц а 6.7 Логические условия, используемые в микропрограммах умножения и деления Обоз- наче- ние *1 Х2 *3 х4 X, Логическое условие В (15) сч = О В (1) А (0) © В (0) А (1 : 15) = 0 С(0) В (16) табл. 6.4, т. е. набор слов, используемый в алгоритме деления, достаточен для реализации умножения. Множество микроопераций У^, ..., Y G, используемых в микро- программах 7И1, ..., Мо, получаются путем выборки из содержа- тельных графов алгоритмов операторов присваивания, представ- ляющих микрооперации. Множество Y определяется объедине- нием множеств Ylt ..., YG, т. е. перечислением всех попарно раз- личимых микроопераций из множеств Ylt ..., Ya. В табл. 6.6 приведен объединенный список микроопераций, используемых в микропрограммах (рис. 6.5, 6.6). Микрооперации ylt ..., ys’ ис- пользуются в микропрограмме умножения (рис. 6.6) и микроопера- ции у3, уй, ..., уц —в микропрограмме деления (рис. 6.7). Анало- гично определяется множество логических условий X, достаточ- ное для реализации операций F ~ (Д, .... fG}. В табл. 6.7 приведен список логических условий, используемых в микропрограммах умножения (условия х1, .... х4) и деления (условия х2, хъ, ха, х7). 176
Таким образом, функция операционного автомата представ- ляется таблицами, содержащими описание слов, список микроопе- раций и список логических условий, в частности табл. 6.5—6.7. Закодированный граф микропрограммы. По отношению к управ- ляющему автомату микрооперации и логические условия следует рассматривать.как элементарные символы, которые автомат ин- терпретирует в виде управляющих сигналов Y = {z/j, ..., z/Af} и воспринимает как осведомительные сигналы X — {х1( .... xj. Поэтому функция управляющего автомата представляется в форме операторной схемы микропрограммы (алгоритма), в которой сим- волы z/i, .... Ум играют роль операторов, а символы хХ) ..., xL — роль логических условий. Граф-схема микропрограммы, являю- щаяся одной из форм операторных схем, получается из содержа- тельного графа микропрограммы путем замены микроопераций, указанных в операторных вершинах, соответствующими им сим- волами Ух, .... Ум и замены логических условий, содержащихся в условных вершинах, соответствующими символами хх, ..., xL. Граф микропрограммы, отмеченный символами уг, ..., ум и хх, ..., xL, отождествляемыми с управляющими и осведомительными сиг- налами, называется закодированным графом. На рис. 6.8 представ- лены закодированные графы микропрограмм умножения и деле- ния, полученные на основе содержательных графов рис. 6.6 и 6.7 с использованием табл. 6.6, 6.7, определяющих наименования микроопераций и логических условий. Функция управляющего автомата. Функция управляющего автомата определяется совокупностью закодированных графов микропрограмм Гх, .... Гс, которые соответствуют содержатель- ным графам микропрограмм Afj, ..., MG. В принципе на основе графов Гх, ..., Гс можно синтезировать G управляющих автома- тов, которые обеспечат управление операционным автоматом. Однако такое решение является неоптимальным по следующей при- чине. Графы различных микропрограмм содержат одинаковые опе- раторные и условные вершины, которые сольются, если построить граф Г, объединяющий в себе графы Гх, .... Го. Например, в ми- кропрограммах умножения и деления (рис. 6.7) округление и фор- мирование знака результата производится одинаковым обра- зом — с использованием одних и тех же микроопераций и логи- ческих условий. Микропрограммы сложения и вычитания отли- чаются лишь оператором, инвертирующим при вычитании знак второго операнда. Следовательно, если их, ..., va —число вершин в графах микропрограмм Гц..., Гс, то число вершин в объединен- ном графе V < пх + ... -ф vG. Л1ожпо ожидать, что уменьшение числа вершин в микропрограмме повлечет уменьшение затрат обо- рудования в управляющем автомате. В связи с этим затраты обору- дования в автомате, построенном по объединенной микропро- грамме Г, в общем случае оказываются меньше суммарных за- Рат оборудования в G автоматах, каждый из которых реализует ответствующую микропрограмму Гх, ..., Гд. Таким образом, 177
функцию управляющего автомата целесообразно представлять в виде закодированного графа, являющегося объединением зако- дированных графов микропрограмм, описывающих алгоритмы вы- полнения отдельных операций. а) Начало 6) Начат | Уэ Ую У, У г О Конец | Конец Рис. 6.8. Закодирован- ный граф микропрограм- мы умножения (а) и де- ления (б) Г Уз I л У5 Уе Метод объединения граф-схем алгоритмов Гп ..., Гс в еди- ную граф-схему Г, содержащую минимальное число операторных и условных вершин, детально изложен в 161. В объединенной микропрограмме пути развития процесса вычислений, соответ- ствующие различным операциям Д, .... /0, задаются набором пере- менных gi, ..., gh, h > log2 G, с помощью которых кодируются 178
операции. Так, для кодирования 10 операций /10 требуется 4-разрядиый код ... gA, значения которого 0001, 0010, ООН, ..., 1010 соответствуют операциям flt f2, f3, ..., /10, реализуемым опе- рационным устройством. Двоичные переменные glt ..., gh играют ‘ глгчпг- ппгттолт/тг v тт п^пт» ”, Рис. 6.9. Объединенный граф микропрограмм умноже- ния и деления На рис. 6.9 приведен объединенный граф микропрограмм умно- ения и деления. Операции кодируются переменными gx, g2. код 51^2 — 10 соответствует умножению и код gxg2 = 01 — делению, уммарное число операторных и условных вершин в графах объ- Д няемых микропрограмм (рис. 6.8) равно 25. В объединенной кропрограмме их число уменьшилось до 23. При объединении 179
большого числа микропрограмм создается больше возможностей для слияния фрагментов различных микропрограмм, в результате чего число вершин в объединенной микропрограмме оказывается значительно меньше суммарного числа вершин в объединяемых микропрограммах. 6.7. Время выполнения микропрограммы Быстродействие операционного устройства характеризуется временем выполнения операции, которое определяется произве- дением t = Tft, где Т —длительность такта операционного уст- ройства; & — количество тактов, затрачиваемых устройством на выполнение микропрограммы. Количество тактов О зависит от зна- чений операндов. Чтобы оценить быстродействие устройства при любых значениях операндов, им приписывается случайный харак- тер и значение О определяется как среднее число тактов, затрачи- ваемое устройством на выполнение микропрограммы, операнды которой — случайные величины с заданными законами распределе- ния. Таким образом, задача определения быстродействия опера- ционного устройства сводится к расчету среднего времени выпол- нения микропрограммы, оцениваемого числом тактов автоматного времени. Временной граф микропрограммы. В зависимости от способа построения операционного и управляющего автоматов в одном такте может выполняться различное число действий—микроопера- ций и проверок логических условий. Так, некоторое операцион- ное устройство за один такт может выполнять одну операторную или одну условную вершину графа микропрограммы, и, следова- тельно, на каждую вершину графа затрачивается один такт авто- матного времени. Операционное устройство другой конструкции может выполнять за один такт все микрооперации, указанные в операторной вершине графа микропрограммы, и проверять все логические условия, лежащие на пути от выполняемой вершины графа к следующей операторной вершине. Чтобы определить по- рядок распределения во времени действий, предписываемых ми- кропрограммой, используется временной граф микропрограммы, вершины которого определяют совокупность действий, выполняе- мых за такт автоматного времени (или за заданное число тактов), и порядок выполнения этих действий. Так, микропрограмма умно- жения рис. 6.8, а может выполняться в порядке, определяе- мом временными графами, изображенными на рис.. 6.10. Граф (рис. 6.10, а) соответствует случаю, когда операционное устрой- ство в каждом такте выполняет одну операторную или условную вершину микропрограммы. Вершина 1 временного графа соответ- ствует такту выполнения операторной вершины уъ уг\ вершина 2 — такту выполнения условной вершины и т. д. Граф (рис. 6.10, б) определяет процесс умножения для случая, когда в каждом такте устройство выполняет одну операторную вершину и анализирует 180
все логические условия, лежащие на пути к следующей оператор- ной вершине. Поэтому число вершин в графе (рис. 6.10, б) соответ- ствует числу операторных вершин в графе микропрограммы: вер- шина 1 соответствует операторной вершине ylt у2, вершина 2 — вершине у3, вершина 3 — вершине t/4, Уь< Уб и т- Д- Дуги (/, /), выходящие из вершины i и входящие в вершину / временного графа, отмечаются вероят- ностями переходов р^. Если из вершины i вы- ходит единственная дуга, т0 ptj = 1. Если из верши- ны i выходит несколько дуг, то вероятности пере- ходов должны удовлетво- рять условию °) 0 S) О микропрограммы умножения 1 = 1,2...... К — 1, где суммирование прово- дится по всем дугам (i, /), принадлежащим множест- ву дуг D графа. Вероят- ности переходов на времен- ных графах микропрограм- мы умножения (рис. 6.10) вычислены в предположе- нии, что 16-разрядные опе- ранды распределены рав- номерно в промежутке (—216; +216). При равно- мерном распредении зна- чений вероятности поя- вления нуля и единицы в любом разряде числа одинаковы и равны 0,5. Поэтому на Рве. 6.10, а переходы (2, 3) и (2, 4), которым соответствуют значе- вня 1 и 0 разряда множителя (см. рис. 6.8, 6.6), происходят с ве- роятностями р23=1/2 и р2Л=1/2. Переход (5, 2) выполняется при обработке 14 из 15 цифр множителя, а переход (5, 6)—по окончании умножения на последнюю цифру множителя, поэтому вероятности = 14/15 и р56 = 1/15. Аналогичным образом рассчитываются ^ероятности остальных переходов. Значения вероятностей Рц = I временном графе обычно не указываются. во” аСЧеТ вРемени выполнения микропрограммы на оснозе сете- в модели. Для временных графов, не содержащих циклов, 181
существует простой прием вычисления среднего времени выполне- ния микропрограммы. Для таких графов среднее время опреде- ляется выражением k (6.7) где <?г — вероятность выполнения вершины i при одной реализа- ции микропрограммы; О,- — среднее количество тактов, необходи- мое для выполнения вершины г, k = К. — 1 — число вершин во временном графе. Вероятности qt определяются значениями = Е Qj-Pii, i=l,...,k, (6.8) (/, о С ° где суммирование ведется по всем вершинам /, из которых вы- ходят дуги (/, i), входящие в вершину i, и вероятность выполне- ния начальной вершины q0 = 1. Чтобы применить (6.8), необхо- димо к моменту вычисления значения qt определить все значе- ния <7;-, соответствующие вершинам, из которых выходят дуги в вершину I. Для обеспечения этого требования вершины графа нумеруются следующим образом. Начальной вершине присваи- вается номер 0, а остальным вершинам графа — номера 1, 2, ..., К, причем номер i любой вершины должен быть больше номеров всех других вершин, из которых выходят дуги, заканчивающиеся в вер- шине I. Очевидно, что номер Д будет присвоен конечной вершине графа. Эту процедуру вычисления значений $ можно распространить на графы, содержащие циклы. При этом исходный временной граф преобразуется к форме без циклов путем замены циклов операто- рами (вершинами) с эквивалентным средним временем выполне- ния. Циклы разделяются по рангам. К первому рангу относятся циклы, не содержащие в себе других циклов. Циклы, содержащие в себе циклы только первого ранга, относятся ко второму рангу и т. д. Так, граф (рис. 6.10, а) содержит цикл (\ первого ранга. Время выполнения циклов первого ранга вычисляется следующим образом. Удаляя дугу, замыкающую цикл, получаем подграф, не содержащий циклов и допускающий прямое применение вышеопи- санной процедуры вычисления среднего числа тактов й. Получен- ное значение определяет затраты времени при однократной реали- зации цикла. Если п — среднее число повторений цикла, то зна- чение = пй определит среднее чисдо тактов, за которое выпол- няется цикл С. Когда задана вероятность р выхода из цикла, сред- нее число повторений цикла п = 1/р. Теперь цикл С можно за- менить вершиной со средним временем выполнения и перейти к оценке времени выполнения циклов второго ранга. Путем после- довательной замены циклов первого, второго и последующих ран- гов эквивалентными операторами граф преобразуется к форме, 182
е содержащей циклов. По последней форме рассчитывается время выполнения всей микропрограммы. В качестве примера определим затраты времени на умножение по микро- пограмме (рис. 6.8, а), которой соответствует временной граф (рис. 6.10, а). Тело цикла Су, представляющее собой граф без циклов, изображено на рис. 6.11, а. В соответствии с (6.8) вероятности выполнения вершин 2—5 при одной реали- зации цикла определяются следующим образом; q0 = 1'» 71 = q-zPi, 4 + ЯзРз, 4 — 1 ‘> 7г = РоРо, 2 = 1 > 7з — PiPi, 5 1 • 7з = q-zPi. з = о.5; Подставляя значения q2... <?6 в (6.7) и учитывая, что число тактов •&,, при- ходящееся на рассматриваемые вершины, равно 1, определим среднее количество тактов на одну реализацию тела цикла 5 0 = £ 7Д = 1 Н 0,5 + 1 + 1 = 3,5. 1=2 Среднее число повторений цикла п = 16. Поэтому среднее количество тактов, за которое реализуется цикл равно = 56 тактам. Заменяя в графе (рис. 6.10, а) цикл С\ эквивалентным опе- ратором Cj, получаем временной граф (рис. 6.11, б), не содержащий циклов. Время выполнения ми- кропрограммы по графу (рис. 6.11,6) рассчиты- вается в соответствии с (6.8), (6.7) следующим об- разом: 7о= 1; 7сг = РоР», ст = 1; 7e — 7ciPci, о = 1 7? = ЯьРь, ? = 0,5; 7s = 7бРе, в + Р-Р?, 8=1; 7e= р»р», э= 0.5; — 71'0'х -ф qc^Cx -ф q^0 -ф • • • -ф 7э'й'9 = 60. Таким образом, в среднем на умножение 16-раз- Рядных чисел затрачивается 617 тактов, если каж- дая вершина графа микропрограммы выполняется за один такт. Рис. 6.11. Подграфы, соот- ветствующие рис. 6.10, а Аналогичным образом можно определять минимальное и макси- Мальное время выполнения микропрограммы [46]. Машинно-ориентированный метод расчета времени выпол- нения микропрограммы. Пусть 0, 1, .... К.—номера вершин временного графа, причем 0 и К — номера начальной и конечной еР’нин, и — среднее количество обращений к вер- ннам 1, । в процессе выполнения микропрограммы. 183
Для каждой вершины графа справедливо следующее соотно- шение: «/= S Рцпь 1=1.............../<— 1, п0=1» (6-9) (/. OgD где суммирование выполняется по всем дугам (/, i), входящим в вер- шину i. Соотношение (6.9) построено следующим образом. Оче- видно, что в процессе выполнения микропрограммы к вершине произойдет столько обращений, сколько раз выполняются пере- ходы по всем дугам (/, i), входящим в вершину I. Количество пере- ходов по дуге (/, i) равно РцП,, где pjL — вероятность перехода и п/ — среднее количество обращений к вершине j при одной реализации микропрограммы. Таким образом, каждое значе- ние tii определяется через остальные значения пх, ..., п^_х и соот- ношения (6.9) задают систему линейных алгебраических уравне- ний с k = К — 1 неизвестными пх, nk. В канонической записи эта система имеет следующий вид: (Ри 1) «14* Pnn2 + • 4~ Pkink — — Роб Р12/11 4" (Р22 — 1 ) «2 + ‘ = ---Роб (6 10) Pikni 4~ Ргкп2 + ' • + (Pkk — 1) nk = — Pok- Решая систему уравнений (6.10) относительно неизвестных «!,..., nk и подставляя полученные значения в выражение k = (6-И) i=l определим среднее число тактов О, за которое реализуется микро- программа. Для временного графа микропрограммы умножения, представ- ленного на рис. 6.10, б, система уравнений, порождаемая соотно- шениями (6.9), имеет следующий вид: «1 = «о = 11 । 1,7 «2 = Р1. 2«1 + Рз, 2П3 = —«I + 75 Пз, 1 7 n3 = pXi Зпх p2i Зп2 4- р3 3П3 — -g- пх 4~ «2 4- ту пз< — Рз. 4пз — "зо" «з! «5 = Рз, 5«3 + Pl, 5«4 = Пз + Т "4- 184
Этой системе уравнений соответствует следующая каноническая форма: — «1 = — 1; 1 , 7 — П2 + -15-Я3 = 0; 1 । 8 — П1 + п2--^-п3 = 0; 3Q ^3 ^4 == ^У«з + 4'14-'г5= °-. Решая систему уравнений, получаем: Пх = I; п2 = 7,5; п3 = 15; п4 = 0,5; п5 = 0,5. Полагая, что каждая вершина графа выпол- няется за один такт, т. е. flt- = 1 (t = 1, .... 5), в соответствии с (6.11) определим среднее число тактов, необходимое для умно- жения чисел, 5 fl = ni = 24,5. 1=1 Данный метод удобен для использования в ЭВМ, поскольку не требует преобразования временного графа микропрограммы.
Г лава 7 СТРУКТУРНАЯ ОРГАНИЗАЦИЯ ОПЕРАЦИОННЫХ АВТОМАТОВ 7.1. Структурный базис операционных автоматов Функция операционного автомата сводится к вводу—выводу и хранению слов информации, выполнению микроопераций и вы- числению логических условий. Чтобы реализовать эти действия, необходим набор элементов, достаточный для построения структур с заданными функциями. Набор элементов, на основе которых мо- гут строиться структуры с определенными свойствами, называется структурным базисом (элементной базой). Структурный базис операционных автоматов должен содержать элементы, обеспечи- вающие передачу и хранение слов информации и вычисление зна- чений функций, на основе которых строятся микрооперации и ло- гические условия. Для этих целей наиболее широко используется следующий набор элементов: шины, обеспечивающие передачу слов информации; регистры, обеспечивающие хранение слов; ком- бинационные схемы, посредством которых вычисляются значе- ния функций. Ши ны. Для передачи бита информации (двоичной переменной) необходима одна цепь. Совокупность цепей, используемых для передачи слова, называётсяДццной. Примем, что шина получает наименование передаваемого по ней слова и цепи шины нумеру- ются так же, как разряды слова. Так, слово А (1 : п) передается по шине А (1 : и), состоящей из п цепей с номерами 1, ..., п. Цепи и шины изображаются па схемах в виде рис. 7.1. Цепи иден- тифицируются номерами или наименованиями разрядов слова, например наименованиями А (1), ..., А (п). Для реализации микроопераций’ передачи вида В; = А ис- пользуются управляемые шины, обозначаемые на структурных схемах, как показано на рис. 7.2, а, б. Здесь А — вход шины; В — выход шины; у, -—управляющий сигнал, инициирующий микрооперацию передачй В : == А. Символ «х» или стрелка обо- значают точку приложения управляющего сигнала. Управляе- мая шина реализует следующую функцию: ( 0, если yt = 0; В = { „------------ ЦД-если yi = 1, т. е. при р(- = 0 передача слова информации запрещена, а при Pi = 1 выход шины принимает значение слова, представленного на входе. Управляемая шина устроена следующим образом. Пусть а/ и bj — разряды / слов А и В. Сигнал bjt представляющий значение разряда bj, может принять значение 1 только в том слу- 18G
чае, если в/ = 1и одновременно yL = 1, т. е. значение Ь/ является конъюнкцией значений at и ур Ь, = а/у^ Следовательно,"^-раз- рядная управляемая шина — это совокупность из п двухвходо- вых элементов И (рис. 7.2, в). На функциональных схемах указан- ная совокупность элементов может обозначаться, как показано на рис. 7.2, г. Управляемая шина вносит задержку т в процесс передачи слова, где т — задержка сигнала на логическом элементе. С помощью шины слово можно передавать от одного источника к нескольким приемникам. В ряде случаев к одному приемнику В должны передаваться разные слова А1г .... А %. В каждый момент времени приемник может принять только одно слово, так что раз- личные слова могут передаваться, чередуясь во времени. Следова- ------- -------------< тельно, каждая из шин Xi, ..., Ак, _L. 2 подключаемая к общему прием- _________ нику, должна быть управляемой п и по сигналу ук, /Среа- A(f:n) А((:п) лизовать передачу В : = Ak.' Со- ----------— -------- вокупность управляемых шин Рис. 7.1. Обозначение цепей и шин с общим выходом называется муль- типлексором. На структурных схемах мультиплексор имеет обозначение как показано на рис. 7.3, а. Функция мультиплек- сора Alt если ijt = 1; Л2, >сли i/2=l; Ак, если ук = 1; О в остальных случаях, т. е. сводится к К микрооперациям передачи В : = Лх, ..., В : = = Ак, инициируемым управляющими сигналами ylt ..., ук. Эти микрооперации являются несовместимыми: в каждый момент вре- мени может быть реализована только одна из них. Нетрудно ви- деть, что значение bj разряда / выходного слова является следую- щей функцией значений управляющих сигналов уг, ..., ук и одно- именных разрядов а], ..., af слов Лг...Лк: = VHV ••• (7-1) Функциональная схема 3-входового мультиплексора, построенная (7.1), приведена на рис. 7.3, б. Схема состоит из п элементов И—ИЛИ, каждый из которых формирует сигнал в выходной цепи мультиплексора. Задержка передачи слова в мультиплексоре равна 2т, где т — задержка сигнала на одном логическом элементе, оозначение мультиплексора как элемента функциональной схемы приведено на рис. 7.3, в. Регистры. Регистром называется совокупность запоминающих лементов, предназначенная для хранения слова информаций. 187
6) I уг Z--------- V ---------*-s Рис. 7.2. Обозначение управляемой шины на структурных (а, б) и функциональных (в, г) схемах Рис. 7.3. Обозначение мультиплексора на струк- турных (а) и функцио- нальных (б, в) схемах 188
В качестве запоминающих элементов в регистрах обычно исполь- зуются триггеры. Триггер — это логическая (переключательная) схема с двумя устойчивыми состояниями, обозначаемыми как О и 1. Состояние триггера Т обычно представляется двумя выход- ными сигналами s и s: в состоянии 0 сигнал s = Ои s = 1 и в со- стоянии 1 сигнал s = 1 и s = 0. Когда состояние триггера отобра- жается парой сигналов $ и s, говорят, что состояние (двоичная переменная) s представляется в парафазном коде. Выход триггера s называется прямым, а выход s — инверсным. Триггер переклю- чается из одного состояния в другое под управлением входных сигналов (сигналов возбуждения), число и воздействие которых на состояние триггера определяются типом триггера. Триггеры разделяются на два класса: синхронные и асинхрон- ные. Синхронный триггер имеет синхронизирующий вход С для подачи сигнала, отмечающего ход реального времени и разрешаю- щего переключение триггера, только в определенные моменты вре- мени. Если синхронизирующий сигнал С = 0, триггер сохраняет свое состояние независимо от значений сигналов на его входах. Триггер переключается в состояние, соответствующее значениям входных сигналов, только в момент поступления сигнала С — 1. Триггер, не имеющий синхронизирующего входа, называется асинхронным. Асинхронный триггер переключается в тот момент когда изменяется значение сигналов на его входе. Состояние триггера изменяется (переключается), когда на вход триггера воздействует сигнал со значением 1. В зависимости от воздействия на состояние триггера входные сигналы обозначаются следующим образом: R — установка триггера в 0 (сброс); S — установка в 1; Т — переключение в противоположное (обратное) состояние (из 0 в 1 и из 1 в 0); J — установка в 1 или противопо- ложное состояние; К — установка в 0 или противоположное со- стояние; D — установка в состояние, соответствующее значе- нию D (D = 0 — в состояние 0, D = 1 — в состояние 1); V — разрешение переключения в состояние, определяемое значением Других входных сигналов. Триггеры могут быть оснащены различ- ными наборами входов, в зависимости от которых выделяют сле- дующие основные типы триггеров: RS-триггеры, Т-триггеры, JK-триггеры, D-триггеры, DV-триггеры. RS-триггер (рис. 7.4, о) переключается под воздействием вход- ных сигналов R, S в соответствии с табл. 7.1. В таблице переходов на пересечении строки и столбца указано состояние, в которое переключается триггер под воздействием набора входных сигна- лов. Из табл. 7.1 видно, что при R = 0; S = 0 триггер сохраняет свое состояние, сигнал S = 1 при R = 0 переключает триггер в состояние 1 и сигнал R — 1 при 5 = 0 — в состояние 0. Сиг- налы 5=1 и /? = 1 переводят триггер в неопределенное состояние, и, следовательно, такая комбинация сигналов недопустима. В син- хронном RS-триггере переключение возможно только при С=1. 189
Т-триггер (рис. 7.4, б) переключается в соответствии с табл. 7.2. Сигнал Т — 1 вызывает переход в противоположное состояние. В синхронном Т-триггере переключение возможно только при С = 1. JK-триггер (рис. 7.4, в) переключается сигналами J и К в со- ответствии с табл. 7.3. При значениях входных сигналов JК = 00; 01; 10 этот триггер функционирует так же, как RS-триггер (вход J аналогичен S, и вход К аналогичен /?), но при одновременном поступлении сигналов J — 1 и К = 1 триггер переключается Рис. 7.4. Обозначения триггеров на функциональных схемах в противоположное состояние, т. е. работает как Т-триггер. Следо- вательно, при замыкании входов J и К между собой JK-триггер превращается в Т-триггер. D-триггер (рис. 7.4, г) переключается под воздействием сиг- нала D в соответствии с табл. 7.4. Сигнал D = 0 переключает триггер в состояние 0 и сигнал 0 = 1 — в состояние 1. Синхро- низирующий сигнал С определяет момент переключения триггера. DV-триггер (рис. 7.4, д) переключается под воздействием сиг- налов D и V в соответствии с табл. 7.5. Сигнал V является разре- шающим: при V = 0 переключение триггера запрещено, а при V = 1 триггер приводится в состояние, равное значению сиг- нала D. Таблица 7.1 Таблица переходов RS-триггера Таблица 7.2 Таблица переходов Т-триггера Таблица 7.3 Таблица переходов J К-триггера Состояние 0 I 0 0 0 1 0 1 1 1 1 0 0 0 1 1 — — Т Состояние 0 1 0 1 0 1 1 0 Состояние 0 1 0 0 0 1 0 1 0 0 1 0 1 1 1 1 1 0 190
в процессе переключения триггера входные сигналы не должны изменять своих значений. Может оказаться, что значения входных сигналов зависят от состояний триггеров. В таком случае в про- цессе переключения триггеров входные сигналы изменяют свои значения, в результате чего триггеры могут находиться в произ- Табл и ца 7.4 Таблица 7.5 Таблица переходов D-триггера Таблица переходов DV-триггера D Состояние VD Состояние 0 1 0 1 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 0 1 1 0 1 0 1 вольных состояниях. Для работы в таких условиях используются двойные триггеры — триггеры типа MS, которые состоят, по край- ней мере, из двух RS- или D-триггеров, определенным образом соединенных между собой [3, 14 ]. Триггер типа MS переключается в состояние, которое характеризуется значениями входных сиг- Рис. 7.5. Регистр (а) и его обозначение на функциональ- ных (б) и структурных (в) схемах налов, существовавшими на момент поступления синхронизирую- щего сигнала, и не зависит от значений входных сигналов в период переключения триггера, определяемый длительностью синхрони- зирующего сигнала. Двойной триггер обозначается на функцио- нальных схемах, как показано на рис. 7.4, е. На рис. 7.5, а приведена функциональная схема регистра RG а синхронных D-триггерах. Слово А1 = ау ... ап загружается 191
в регистр с входных цепей ап ..., ап по сигналу С, разрешаю- щему переключение триггеров в состояния, определяемые значе- ниями сигналов alt ап. Обозначение /i-разрядного регистра на функциональных схемах показано на рис. 7.5, б. Примем, что регистр получает наиме- нование хранимого слова и разряды регистра (запо- Рис. 7.6. Обозначение полей регистра Рис. 7.7. Обозначение ком- бинационной схемы минающие элементы) нумеруются так же, как разряды слова. Так, слово X (1 : п) хранится в регистре X, разряды которого нумеруются от 1 до п. Хранимое в регистре слово представ- ляется на выходной шине, наименование которой, определяемое наименованием передаваемого слова, совпадает с наименованием регистра. На структурных схемах регистр обозначается, как по- казано на рис. 7.5, в, где X — наименование регистра; 1 и п — номера старшего и младшего разрядов. Часть регистра, совпадающая с полем слова, называется под- регистром и может рассматриваться как самостоятельный ре- гистр. В регистр информация может загружаться отдельными по- лями. Порядок подключения к регистру шин, по которым пере- даются поля слов, обозначается на структурных схемах, как по- казано на рис. 7.6. Аналогичным образом выделяются поля слова, хранимого на регистре. 192
Комбинационные схемы. Для вычисления значений слов и булевых значений используются комбинационные схемы, со- стоящие из логических элементов, реализующих булевы функ- ции ТА» V. или универсальных элементов, реализующих функ- цию и’—НЕ (ИЛИ—НЕ). Комбинационную схему, реализующую функцию f над словами ..., Ак с целью вычисления слова или булевой переменной В, будем обозначать на структурных схемах, как показано на рис. 7.7. Комбинационная схема может реализо- вать любую вычислимую функцию /. Наиболее часто комбина- ционные схемы используются для реализации функций / £ |, Д, V> ©> "Н* используемых для вычисления значений слов, и для вычисления значений логических условий на основе следую- щих отношений: =0, <,=,=/= и т. д. В целях увеличения нагляд- ности структурных схем в дополнение к перечисленным функ- циям/ С {И- А» V. •••> =0> •••}> реализуемым соответствую- щими комбинационными схемами, введем фиктивные комбина- ционные схемы с функциями Rk и Lk, обеспечивающие сдвиг слова вправо и влево только на k разрядов. Их обозначение при- ведено на рис. 7.8, а. Как видно из рис. 7.8, б, сдвиг слова А на фиксированное число разрядов производится соответствующей коммутацией цепей без использования логических элементов, т. е. затраты оборудования в схемах R/e и Lk равны нулю. 7.2. Каноническая структура операционного автомата Структура операционного автомата синтезируется в задан- ном структурном базисе исходя из функций, реализация которых возлагается на автомат. Функция автомата определяется множе- ствами слов, микроопераций и логических условий, которые пред- ставляются, например, в форме табл. 6.4—6.6. Синтез канонической структуры. Структуру операционного автомата можно синтезировать непосредственно по функции, за- данной: 1) множеством слов 3 = {«!, ..., sw}, которые могут быть входными, выходными и внутренними; 2) множеством микро- операций Y = {Ут} = {sa : = (sPx, и sa> sPi, ..., 8рл £ 5; 3) множеством логических ., SpA)}, где т = 1, ..., М Sf^ £ 3; 3) множеством логических условий (spx, .... SpA)}, где I = 1, .... L. Структура авто- мата синтезируется следующим образом: 1. Словам Sj, ..., sjV, описанным в качестве внутренних (тип L), ставятся в соответствие регистры sx.....sN с длинами пг, ..., /iiV, равными длинам слов. Если слово s(- разделяется на поля, то в ре- гистре sz выделяются соответствующие подрегистры, используе- мые для хранения разрядов полей. 2. Словам sdi, .... SdH, описанным в качестве входных (тип 1), ставятся в соответствие входные полюсы (входы) dlt ..., dH струк- Урной схемы. Каждый вход dlt ..., dH соединяется с регистром s,'i’ ..., SdH шиной, исходящей из входа. •7 С. А. Майоров, Г. И. Новиков 193
3. Словам sre SrQ, описанным в качестве выходных (тип О), ставятся в соответствие выходные полюсы (выходы) rt, гQ струк- турной схемы. Каждый регистр sfi, srQ соединяется с выхо- дом rlt ..., rQ шиной, исходящей из регистра. 4. Каждой микрооперации ут £ К, описываемой оператором присваивания sa : — срт (sPi, ..., spJ, ставится в соответствие комбинационная схема срт (рис. 7.9, а), входы которой подклю- чаются к регистрам sPi, ..., sPft и выход соединяется управляемой шиной с регистром sa. Управляемая шина отмечается сигналом ут, инициирующим микрооперацию — присваивание слову sa значе- Рис. 7.9. Интерпретация микрооперации (а) и логического усло- вия (б) элементами структурной схемы ния <pm (sPi, ..., spJ. Для выполнения микрооперации передачи sa : = sp не требуется комбинационная схема, вычисляющая зна- чение двоичного выражения. Поэтому структурная реализация микрооперации передачи обеспечивается управляемой шиной, со- единяющей регистр $р с регистром sa и отмеченной соответствую- щим управляющим сигналом. Аналогично, микрооперация уста- новки sa : = const реализуется управляемой шиной, начало ко- торой отмечается константой const и соответствующим управляю- щим сигналом. 5. Каждому логическому условию xt : = (sPi, ..., spJ, Z = = 1, ..., L ставится в соответствие комбинационная схема ф/ (рис. 7.9, б), входы которой соединяются с регистрами sPi, ..., sPa и выход отмечается осведомительным сигналом xt. Если ф; — тривиальная булева функцияДнаПример, Х[ : = sp (р), где р — номер разряда слова sp), логическое условие интерпретируется шиной (цепью), выходящей из разряда р регистра sp. Выход шины представляет значение осведомительного сигнала xt. Структура операционного автомата, полученная путем замены каждого элемента функции (слова, микрооперации, логического условия) соответствующими элементами структурного базиса (ши- нами, регистрами, комбинационными схемами), является осново- полагающей для синтеза других структур и называется канона- 194
ческой структурой. Каноническая структура имеет вид, пред- ставленный на рис. 7.10. Совокупность регистров sx, ..., sN обра- зует память операционного автомата, в которой хранятся исход- ные значения, промежуточные и конечные результаты. Исходные значения загружаются в регистры через входы dlt ..., dH. Конеч- ные результаты выводятся из памяти операционного автомата через выходы гх, .... Совокупность комбинационных схем срх, ..., срЛ1 и связанных с ними управляемых шин, отмеченных сигналами и , ..., Ум, служит для выполнения микроопераций. Значения ло- гических условий вычисляются комбинационными схемами %, ..., грЛ, на выходах которых определены значения осведомительных сигналов xlt ..., %£. Рис. 7.10. Каноническая структура операционного автомата структуры для На рис. 7.11 приведен вариант канонической умножения и деления 16-разрядных чисел с фиксированной за- пятой. Схема (рис. 7.11) построена на основе функций операцион- ного автомата, описанных в табл. 6.4—6.6. Выходные цепи реги- стров А, В, С, СЧ объединены в шину S, с которой сигналы по- ступают на выходы комбинационных схем, реализующих микро- операции и вычисляющих значения логических условий. Пред- полагается, что по шине S значения слов, хранимых на регистрах, передаются в парафазном коде. При этом каждая двоичная пере- менная, хранимая в триггере соответствующего регистра, пред- ставляется как прямым, так и обратным (инверсным) значением. Ио этой причине инверсии “]С (0), ~|А (1 : 15) снимаются с шины, по которой передаются значения слов А, В, С, СЧ. Управляемые шппы уъ ..., у17 подключаются к регистрам А, В, С, СЧ через ультиплексоры, объединяющие несколько шин в одну. В соответствии с моделью (рис. 6.2) операционный автомат раз- Д ляется на три части: 'память S; комбинационную схему Ф, °Т0Рая Реализует функции срх, ..., фм, связанные с выполнением кроопераций Y; комбинационную схему Т, вычисляющую 195
1 СЧ 4 Рис. 7.11. Каноническая структура операционного автомата, реали- зующего умножение и деление чисел 196
значения логических условий X. Каноническую структуру на пне. 7.Ю, 7.11 можно представить в следующем виде (рис. 7.12). Множество микроопераций У разделяется на подмножества Ух — = [S1 : = 04 (S)}, . Yn “ {Sx : “ <PmA (5)}, каждое из кото- рых состоит из совокупности микроопераций, вычисляющих зна- чение одного и того же слова sx, .... sN. Различные множества У t и у не содержат общих микроопераций, и потому комбинацион- ную' схему Ф можно разделить на независимые подсхемы Фх,-..., Рис. 7.12. Операционный автомат как композиция опе- рационных элементов Фдг, реализующие подмножества микроопераций Ух, ..., У N. Под- схемы Ф, ф¥ обслуживают соответствующие регистры sx......sN и в каждом такте времени могут реализовать по одной микроопе- рации ynti £ ..., у £Yn. Аналогичным образом схема Т, используемая для вычисления значений логических условий Х< может быть разделена на подсхемы Фх, ..., Фд,, вычисляющие зна- чения подмножеств логических условий Xlt ..., XN. Схему, состоя- щую из регистра sn и комбинационной части Фп, можно рас- сматривать как элементарный операционный автомат, вычисляю- щий значение одного слова информации и контролирующий его посредством логических условий. Элементарный операционный автомат называется операционным элементом. Таким образом, в общем случае операционный автомат разделяется на совокуп- ность операционных элементов Ех, ..., EN, число которых опре- деляется количеством внутренних слов, обрабатываемых микро- программой. 197
Несколько видоизмененная модель структурной организации операционных автоматов описана в [55]. В этой модели входные слова D =» {dlt .... dH} могут использоваться в качестве аргумен- тов микроопераций, а выходные слова R = {гъ .... rQ} могут опре- деляться как результаты микроопераций. Функционирование операционных автоматов. Операционный автомат функционирует во времени в порядке, определяемом уп- равляющим автоматом. Процесс функционирования разделяется на интервалы времени, называемые тактами. В течение такта выполняются следующие действия: 1) управляющий автомат фор- мирует набор из одного, двух или более сигналов уа, ..., yw £ У; 2) под воздействием управляющих сигналов уа, .... уw в комбина- ционных схемах Ф автомата вычисляются значения двоичных вы- ражений cp,na (S), ..., <ртю (S); 3) соответствующие регистры пере- ключаются в новые состояния, определяемые значениями Фта (S), ..., (S); 4) комбинационные схемы ¥ вычисляют но- вые значения осведомительных сигналов X, соответствующие но- вому состоянию памяти S, т. е. новым значениям слов slt sN. Длительность такта Т определяется структурой схем и быстро- действием логических и запоминающих элементов, используемых в схемах управляющего и операционного автоматов. Таким обра- зом, такт — это промежуток времени между соседними моментами переключения состояния памяти. В течение такта память авто- мата переключается в новое состояние, отличное от предыдущего. Операционный автомат можно рассматривать как самостоя- тельный объект. В таком случае термин «такт» условно применяется только к операционному автомату. Такт операционного автомата Тод — это промежуток времени, необходимый для выполнения заданного набора микроопераций и вычисления значений логиче- ских условий и равный интервалу времени от момента поступле- ния на вход автомата управляющих сигналов до момента выра- ботки значений осведомительных сигналов, соответствующих со- стоянию памяти автомата. Обычно распределение действий во времени производится на основе синхронного принципа. При этом длительность такта Т определяется максимальным значением, необходимым для выпол- нения любой микрооперации и вычисления значения любого ло- гического условия. Ход времени отмечается с помощью синхро- низирующих сигналов, вырабатываемым в ЭВМ генератором син- хронизирующих импульсов, которые следуют с периодом, равным длительности такта Т. Эти сигналы используются для синхрони- зации моментов переключения триггеров. Характеристики операционного автомата. Основные характе- ристики операционного автомата — производительность, быстро- действие и затраты оборудования (стоимость). Производительность операционного автомата определяется количеством микроопераций, выполняемых автоматом за один 198
такт. В одном такте могут выполняться только совместимые микро- операции, фигурирующие в одном операторе микропрограммы, и их число может изменяться от такта к такту. Следовательно, количество микроопераций, выполняемых за один такт, можно рассматривать как дискретную случайную величину. Фактор слу- чайности вносится исходными данными D, в зависимости от зна- чений которых процесс выполнения микропрограммы может раз- виваться по различным путям, определяемым графом микропро- граммы. С учетом этого производительность оценивают либо максимальным значением, равным максимальному числу микро- операций, которое может выполнить автомат в течение такта, либо средним значением. Средняя оценка производительности вычис- ляется следующим образом. Микропрограмма состоит из К опера- торов, каждый из которых содержит mk микроопераций (k — = 1, ..., К), выполняемых совместно за такт времени. При одной реализации микропрограммы каждый оператор выполняется в сред- нем qk раз. Исходя из этих значений среднее число микроопера- ций, выполняемых автоматом в такте, оценивается величиной к । к V = L qkmk £ qk. (7.2) I Средняя производительность V зависит от свойств микропрограммы (числа совместимых микроопераций в операторах и частоты ис- пользования операторов) и структуры автомата, которая может на- лагать ограничения на совместимость микроопераций. Быстродействие операционного автомата характеризуется длительностью такта год автомата. Чем меньше длительность такта, тем выше быстродействие автомата. Быстродействие зависит, в основном, от внутренней структуры комбинационных схем Ф и V и скоростных характеристик логических и запоминающих элементов, используемых в комбинационных схемах и памяти автомата. Затраты оборудования в операционном автомате определяются суммой затрат оборудования в памяти автомата S, комбинацион- ных схемах Ф, реализующих микрооперации, и комбинационных схемах вычисляющих значения логических условий. Важными характеристиками структур являются регулярность и универсальность (многофункциональность). Регулярной называется структура, состоящая из однотипных частей, одинаковым образом связанных между собой. Регуляр- ность структуры может проявляться в использовании одинаковых операционных элементов или в использовании одинаковых схем Для обработки значений в каждом разряде слова. Структура яв- яется максимально регулярной, если все слова обрабатываются Динаковым образом (одним набором микроопераций) и одновре- нно с этим одинаково обрабатываются все разряды слова. Чем лее регулярна структура, тем проще процесс ее производства. 199
Поэтому регуляризация структуры в конечном счете приводит к уменьшению стоимости изделия. Универсальность (многофункциональность) структуры про- является в возможности реализации одной и той же структурой достаточно широкого класса функций. Степень универсальности структуры операционного автомата можно охарактеризовать пре- дельной мощностью множества алгоритмов .... .9/^}, каждый из которых может быть реализован структурой. Если структура операционного автомата универсальна, то реализация любого алгоритма сводится к перенастройке структуры внешними сред- ствами, например, путем программирования. Когда система микро- операций и логических условий полна, максимальная степень универсальности достигается, если любая микрооперация и лю- бое логическое условие могут быть распространены на каждый из регистров автомата. В этом случае мощность класса алгорит- мов, эффективно реализуемых структурой, ограничивается в ос- новном количеством слов (регистров), с которыми оперирует автомат. Определение степени универсальности абсолютным зна- чением — значением мощности W множества алгоритмов — вызы- вает серьезные затруднения. Обычно степень универсальности характеризуют не перечислением возможных алгоритмов, а опи- санием свойств (параметров) класса алгоритмов, реализуемых структурой. Хотя определение абсолютного значения универсаль- ности вызывает трудности, сравнительная оценка универсаль- ности двух структур находится достаточно легко, т. е. всегда можно сказать, какая из двух структур является более универсальной. Чем более универсальна структура, тем шире область ее примене- ния. Увеличение степени универсальности структур позволяет сократить номенклатуру выпускаемых изделий и повысить объем выпуска каждого изделия, что приводит к снижению стоимости производства. Универсальность структур особенно важна для больших интегральных схем, поскольку их разработка требует значительных затрат, которые окупаются только при большом объеме производства. Следовательно, увеличение универсаль- ности структуры приводит к снижению ее стоимости даже в тех случаях, когда универсальность достигается за счет введения в структуру дополнительного оборудования. Оказывается, что регулярность и универсальность структур — взаимосвязанные свойства. Регулярные структуры обычно более универсальны, чем нерегулярные, и увеличение степени универ- сальности может быть достигнуто за счет регуляризации струк- туры. Свойства канонических структур операционных автоматов. Оценим производительность, быстродействие и затраты оборудо- вания в автоматах с канонической структурой. Каноническая структура имеет максимальную производитель- ность по сравнению с другими вариантами структур, реализую- щих один и тот же алгоритм з/. Это объясняется тем, что канониче-
ская структура не вносит ограничений на совместимость микро- операций: все функционально совместимые микрооперации могут выполняться параллельно в одном такте. Поэтому затраты вре- мени на выполнение алгоритма с использованием канонической структуры минимальны по сравнению с другими вариантами струк- тур операционных автоматов. Меньших затрат времени можно постичь, изменив алгоритм выполнения операций в устройстве. Быстродействие различных структур операционных автома- тов, построенных на одной и той же элементной базе, различается незначительно. Но все-таки каноническая структура обладает наивысшим быстродействием (ей присуща наименьшая длитель- ность такта тОА) по сравнению с другими вариантами структур. В большинстве случаев каноническая структура не является минимальной по количеству используемого оборудования, что вызвано следующими причинами: 1) память автомата может быть избыточной в отношении рассматриваемого алгоритма; 2) мно- жество схем Z = {<pj, ..., срм, фъ ..., ф\} может содержать схемы, эквивалентные по реализуемым функциям; 3) множеству схем Z может соответствовать другое множество Z', эквивалентное по своим функциям, но порождающее меньшие затраты оборудова- ния. Указанные причины устраняются следующим образом. Для минимизации памяти автомата разработан ряд формаль- ных методов, позволяющих преобразовать алгоритм таким обра- зом, чтобы минимизировать количество слов, используемых в алго- ритме для представления данных [31, 51 ]. Избыточность комбина- ционных схем Z = (ф15 ..., <Pm, фъ ..., фь} вызвана следующим. В схеме (рис. 7.11) для выполнения микроопераций у3, уп, исполь- зуются два сумматора, эквивалентные с точки зрения реализуе- мых ими функций. Затраты оборудования уменьшатся, если для выполнения двух микроопераций использовать один сумматор. Более того, этот же сумматор можно использовать и для выпол- нения микрооперации счета у1 : С : = С + 1. Таким образом, не- сколько комбинационных схем фа, .... <рш, реализующих одина- ковые функции, можно заменить одной схемой, что позволяет уменьшить количество оборудования в автомате. Наконец, путем глубоких преобразований алгоритма, приводящих к изменению набора микроопераций и логических условий, можно создать на- бор для реализации которого потребуются комбинационные схемы Z', приводящие к меньшим затратам оборудования по сравнению со схемами Z = {<ръ ..., фм, фь ..., ф;,} [23]. Тех- ника глубоких преобразований алгоритмов только начинает раз- рабатываться, поэтому преобразования наборов микроопераций и логических условий с целью изменения времени реализации алго- ритмов и уменьшения затрат оборудования производятся в основ- ам эвристическими методами. 1аким образом, каноническая структура, реализующая задан- Ую функциональную микропрограмму (алгоритм), имеет макси- ально возможную при данной микропрограмме производитель- 201
ность и максимальное быстродействие. Каноническая структура синтезируется прямо по функциональной микропрограмме без ис- пользования каких бы то ни было процедур минимизации затрат оборудования. Поэтому в общем случае каноническая структура является избыточной по количеству используемого оборудования. 7.3. Обеспечение устойчивости функционирования операционных автоматов В функциональных микропрограммах встречаются микроопера- ции, присваивающие слову sa значение, которое зависит от зна- чения того же слова $а. Например, такими являются микроопера- ции Sj : = + s2; sx : = sx + 1; Sj : — LI (sj.O). При реализации подобных микроопераций в схемах могут возникать негативные явления: гонки сигналов и проскок состояний. Рис. 7.13. Явление гонок в автоматах Явление гонок состоит в следующем. В момент поступления управляющего сигнала, инициирующего микрооперацию, в схеме начинается процесс передачи сигналов с выходов регистров через комбинационную схему к входам триггеров регистра, которому присваивается новое значение, вычисляемое комбинационной схе- мой. Под воздействием входных сигналов триггеры регистра пере- ключаются в новые состояния. На рис. 7.13, а изображены пути прохождения сигналов от триггеров Tit Тs регистра sa через ком- бинационную схему к входам этих триггеров, причем выходные сигналы с триггеров Tit Т, через логические элементы могут воз- действовать на значения сигналов возбуждения Dh Dт. е. в об- щем случае D{ = /,• (Тh Tjt ...), D, = /у (Th Tf, ...). Сигналы рас- пространяются по различным цепям и одни могут достигать входов триггеров быстрее, чем другие. Это вызвано, во-первых, тем, что разные элементы имеют неодинаковую задержку, обусловленную разбросом электрических параметров элементов, и, во-вторых, различным числом элементов, через которые проходят сигналы. Если какой-то сигнал первым достигнет входа триггера (выиграет 202
гонки), то соответствующий триггер первым изменит свое состоя- ние и выходной сигнал. Новое значение выходного сигнала по- влияет на значения других сигналов возбуждения, формируемых комбинационной схемой. В результате этого сигнал возбуждения, который должен поступить на какой-то триггер, может изменить свое значение, и триггер, не успевший переключиться в очередное состояние, будет установлен в состояние, отличное от требуемого. Эффект гонок сигналов иллюстрируется рис. 7.13, б. Здесь рас- сматривается 2-разрядный регистр, который может находиться в состояниях 00, 01, 10, 11, определяемых состояниями тригге- ров 7\, Т2- Положим, что на регистре выполняется микроопера- ция счета, увеличивающая код at состояния регистра на 1. Состоя- ние регистра после выполнения микрооперации счета обозначим ам. При нормальном функционировании схемы регистр должен переключаться из состояний at в состояния а/+1 в порядке, опре- деленном на рис. 7.13, б сплошными линиями, т. е. при at = 00 следующее состояние а/+1 = 01, при at = 01 —ам =10 и т. д. Однако из-за гонок сигналов либо триггер 7\, либо триггер Т2 может переключиться первым. Переходы at -> at+l, при которых триггер 7\ переключается первым, обозначены на рис. 7.13, б штриховыми линиями, а переходы, при которых первым переклю- чается триггер Т2 — штрих-пунктирными линиями. Как видно из рис. 7.13, б, при at = 01 из-за гонок регистр может переклю- читься в состояние at+1, равное 11 или 00 и отличное от требуе- мого. Таким образом, из-за различия временных характеристик це- пей, по которым распространяются сигналы, может прекратиться выработка одних сигналов возбуждения под воздействием других, имеющих меньшее время распространения, в результате чего не- которые запоминающие элементы не успевают переключиться в тре- буемые состояния. Такое явление называется гонками сигналов. Результат гонок — искажение функций, выполнение которых воз- ложено на схему. К такому же результату приводит явление проскока состояний. Проскок состояний возникает в том случае, если автомат должен переключаться в состояние ам, отличное от исходного at. Если автомат находится в состоянии at и поступает сигнал, инициирую- щий микрооперацию, т. е. переход в очередное состояние ам, в схеме может развиться последовательность переходов at -* a<+i а/+2 ам, которая закончится лишь в момент сброса в 0 управляющего сигнала. Состояние at+k, в которое перей- дет автомат, зависит от скоростных характеристик элементов и Длительности управляющего сигнала, что противоречит логике Функционирования схемы. Явление, в результате которого автомат течение такта многократно меняет свое состояние, называется проскоком состояний. мен^ВЛеНИЯ ГОнок и проскока состояний могут возникать одновре- но и сколь угодно искажать требуемый порядок функциониро- 203
Рис. 7.14. Временная диаграмма операционного устройства вания автомата, как говорят, нарушать устойчивость функцио- нирования автомата. Для обеспечения устойчивости функционирования автомата можно использовать синхронизацию. При этом регистры строятся на синхронных триггерах, на соответствующие входы которых от генератора синхронизирующих импульсов одновременно подается сигнал, разрешающий переключение триггеров. К моменту поступ- ления синхронизирующего сигнала выработка всех сигналов воз- буждения должна быть закончена. Поэтому момент поступления синхронизирующего сигнала должен отстоять от момента поступ- ления управляющих сигналов на промежуток времени, превыша- ющий максимальную продолжи- тельность переходных процессов в комбинационных схемах. Од- нако синхронизация триггеров не является радикальным средством обеспечения устойчивости из-за того, что синхронизирующий сиг- нал имеет не нулевую длитель- ность. Пока синхронизирующий сигнал равен 1, могут измениться, причем неодновременно, значения сигналов на выходах триггеров, вслед за которыми изменяется значения сигналов возбуждения. Колебания температуры, старение элементов существенно влияют на задержки сигналов в элементах и время переключения тригге- ров. Поэтому при наличии синхронизации возможны гонки и проскок состояний, хотя и с меньшей вероятностью. Эффект гонок и проскока состояний полностью исключается, если в регистрах использовать двойные синхронные триггеры — триггеры типа MS. Двойные триггеры реагируют на значения сиг- налов, существовавшие к моменту начала переключения, и изме- нение входных сигналов в период действия синхронизирующего сигнала не сказывается на состоянии, в которое переключается триггер. Таким образом, в общем случае регистры операционных авто- матов должны строиться на основе синхронных триггеров типа MS. При этом работа операционного устройства во времени органи- зуется в соответствии с рис. 7.14. Для синхронизации работы уп- равляющего автомата служат сигналы Сх, следующие с периодом Т, и для синхронизации операционного автомата — сигналы С2, сле- дующие с таким же периодом и сдвинутые по фазе в отношении сиг- налов Сх. По сигналу С1 управляющий автомат формирует набор управляющих сигналов [ут] достаточно большой длительности. Для этого в пределах такта Т выделяется интервал времени гул, 204
длительность которого определяется быстродействием управляю- щего автомата. Для выполнения микроопераций и вычисления значений логических условий отводится интервал времени тоа, в течение которого в операционном автомате ОА вычисляются значения функций {tpm} и по сигналу С2 передаются в триггеры памяти S, после чего некоторое время тратится на вычисление зна- чений логических условий {<pz}. После того как значения логиче- ских условий определены, т. е. сформированы осведомительные сигналы X, начинается следующий такт Т работы операционного устройства. 7.4. Эквивалентные микрооперации и обобщенные операторы В микропрограммах могут встречаться микрооперации вида Sax : = <₽m (Sa2, • Sa₽) И S₽1 I = <p,„ (Sp,, ..., Spg), ВЫЧИСЛЯЮЩИе значения слов sai, s₽i c использованием одной функции cpm, при- меняемой к различным наборам значений (заа, ..., sap) и (з3а, ..., Spp). Например, микрооперации У1:3,: = Si + s2; у2: s5: = зх -ф з3 -ф 1, (7.3) где ylt у2 — управляющие сигналы,греализуют одну и ту же функ- цию сложения над различными словами. В канонической струк- а)__ S) Рис. 7.15. Реализация эквивалентных микроопераций туре для реализации этих микроопераций необходимы две комби- национные схемы —два сумматора (рис. 7.15, а). Чтобы умень- шить затраты оборудования в операционном автомате, можно использовать только один сумматор (рис. 7.15, 6). В этом случае сумматор подключается к регистрам з2, з3 управляемыми шинами, с помощью которых вход Ах сумматора соединяется с регистром з, 1ли з3. Когда выполняется микрооперация ylt на вход Aj посту- ает значение з2, а при выполнении микрооперации у2 — 205
значение ~js3. Аналогичным образом константа 1 поступает на вход Л2 сумматора только при выполнении микрооперации у2. Таким образом, одна комбинационная схема может использоваться для выполнения нескольких микроопераций, эквивалентных в смысле реализуемых ими функций. За счет этого могут быть уменьшены затраты оборудования в операционном автомате. Использование одной комбинационной схемы для выполне- ния нескольких микроопераций исключает совместимость этих микроопераций. Так, функционально совместим е микроопера- ции (7.3) в структуре (рис. 7.15, а) могут выполняться в одном такте и становятся несовместимыми в структуре (рис. 7.15, б), т. е. мо- гут выполняться только в различных тактах. Если в функциональ- ной микропрограмме микрооперации ylt у2 использовались сов- местно в одной операторной вершине, то при использовании струк- туры (рис. 7.15, б) время выполнения операций увеличится из-за структурных ограничений на совместимость этой пары микро- операций. Таким образом, экономия оборудования может повлечь увеличение времени выполнения операций. Процедура минимизации числа комбинационных схем, исполь- зуемых в операционном автомате для выполнения микроопераций, базируется на понятиях эквивалентности микроопераций и обоб- щенного оператора. Микрооперации sai : = <рт («а2, .... Sap) и s₽1: = cpm (s₽1, ..., s₽?) считаются эквивалентными, когда операторы содержат одну и ту же функцию <рт, т. е. функции в операторах имеют одинако- вые имена. При этом имеется в виду, что в операторе не все места могут быть заняты переменными, т. е. количество аргументов р, q в функциях в общем случае может быть различным. Эквивалент- ность микроопераций означает, что для вычисления двоичных вы- ражений, соответствующих микрооперациям, может использо- ваться одна и та же комбинационная схема. Эквивалентность устанавливается следующим образом. Двоичные выражения Са, * * Са2 * ... * Сар и СР1 * С₽2 * ... * Ср? (где Са, Ср — аргументы, представляемые словами, их инверсиями и констан- тами; * — знаки двоичных операций) называются эквивалент- ными, если одно из двоичных выражений может быть приведено к другому путем: 1) замены слова Са словом Ср или инверсией Д С₽; 2) замены слова Са константой (в том числе и нулем) и наоборот; 3) замены одних констант другими, в том числе и нулевыми; 4) равносильными преобразованиями выражения Са, * Са, * ... * * Сар. Микрооперации с эквивалентными двоичными выраже- ниями называются эквивалентными микрооперациями. Эквива- лентными являются микрооперации: х/i: Sj: == s2 -j- 1; У2 Si = = s2 + s4; (7.4) Уз '• si: — sa + | ss + 1 • 206
Для построения структуры, реализующей совокупность экви- валентных микроопераций уа, уw вводится специальная форма представления таких микроопераций — обобщенный оператор. Обобщенный оператор представляется в виде sv : == Аа, * Аа, * * * Аа , гДе ^ах, •••> —вспомогательные переменные, принимающие различные значения при выполнении микроопера- ЦИЙ уа, •••» Уш- С3/ при при Уа = 1; уь = 1; при остальных случаях. (7.5) что микрооперации Заметим, у.....yw несовместимы и по- тому вспомогательная перемен- ная А, определяется всегда одним из значений, указанным в правой части выражения (7.5). Рис. 7.16. Структура, реализующая обобщенный оператор Например, эквивалентным микрооперациям (7.4) соответствует обобщенный оператор sx: = s2 -|- Ах -ф- А2, (7.6) A — Сцц О в Уш 1 > где s4 при у2 = 1; А = j I s3 при i/3=l; .0 в остальных случаях; при уг= 1; при у8 = И в остальных случаях. 1 1 О 4 = Обобщенному оператору (7.6) соответствует структура (рис. 7.16). Функция, фигурирующая в обобщенном операторе, реализуется комбинационной схемой — в данном случае сумматором. Аргуд менты функции интерпретируются входами комбинационной схемы. При этом вспомогательная переменная Дг — имя шины, по кото- рой на вход комбинационной схемы передается значение операнда. Значение вспомогательной переменной определяется значениями ^ов или констант, для передачи которых необходимы управляе- мые шины, подсоединяемые к шине в общем случае через мульти-- члексор. При выполнении различных микроопераций использу- ются общие средства, в частности одна и та же управляемая шина | может передавать слово при выполнении двух и более микроопера- ций. Такие управляемые шины отмечаются несколькими управляю-\ Щими сигналами. На рис. 7.16 цепь, по которой передается кон- станта 1, отмечена двумя сигналами ylt у3, а шина, связывающая выход сумматора с регистром sx, —тремя сигналами ylt у2, у3. 207
Передача по такой шине происходит, если один из управляющих сигналов имеет значение 1. Так, при выполнении микрооперации Уз открываются шина s3 и шина, связывающая выход сумматора с регистром Sp 7.5. Структурная организация и синтез 1-автоматов Класс 1-автоматов. Определим структуру операционного авто- мата, производительность которого не ниже производительности автомата с канонической структурой, и затраты оборудования минимальны. Требуемая производительность может быть обеспе- чена только в том случае, если синтезируемая структура не будет вносить ограничений на совместимость микроопераций, т. е. будет обеспечивать возможность одновременного выполнения всех функционально совместимых микроопераций. Это условие выпол- няется только в том случае, если каждая комбинационная схема используется для выполнения эквивалентных микроопераций, связанных с вычислением значений одного слова sn, п = 1. М, но не разных слов. Из сказанного следует, что для минимизации затрат оборудования необходимо обобщать комбинационные схемы для выполнения нескольких эквивалентных микроопераций, кото- рые принадлежат одному подмножеству микроопераций Yn — — {s„ : = <pm (S)}, n — 1, ..., N, вычисляющих значения слова sn. Такой подход к минимизации затрат оборудования приводит к структурам вида рис. 7.12, в которых комбинационные схемы Фх, ..., Фд, строятся с учетом эквивалентности микроопераций, принадлежащих соответствующим подмножествам ..., YN. Операционные автоматы, структура которых обеспечивает возмож- ность одновременного выполнения всех функционально совмести- мых микроопераций при использовании минимально возможного числа комбинационных схем, выделяются в особый класс опера- ционных автоматов — класс 1-автоматов. Для 1-автоматов характерно, что каждый из регистров sn, п = 1, ..., N, обслуживается своей комбинационной схемой Ф„, средствами которой реализуются микрооперации, вычисляющие значения слова s„. Следствие этого — максимальная производи- тельность, которая при наличии N комбинационных схем Фх, ..., Фд, может хотя бы в принципе достигать N микроопераций за такт. Синтез 1-автоматов. Синтез сводится к преобразованию задан- ного набора микроопераций Y в совокупность обобщенных опера- торов, которые используются в качестве формы для построения структурной схемы 1-автомата. Процесс синтеза будем иллюстри- ровать на примере автомата для умножения и деления чисел, функции которого заданы табл. 6.4—6.6. Структура 1-автомата синтезируется следующим образом. 1. Множество микроопераций Y — {уг, ..., ум} разбивается на подмножества Ylt .... YN, соответствующие внутренним сло- 208
вам (регистрам) s1( sN. Микрооперация sa : = <pm (s^, Sf5ft) вычисляющая значение слова sa, приписывается подмножеству Ya. В рассматриваемом примере множество микроопераций Y = {у±......... У17), приведенное в табл. 6.5, разбивается на подмножества yb — {ууut i/iej; ^с = {У1, Уз, Уз, Ут, Уз, Уз, У it, У уз, Угг}', ^сч = 1//2» Уз, Уи\; ¥пп~ (f/i2}> связанные с внутренними словами А, В, С, СЧ, ПП. 2. На подмножествах Yn, n = 1, ..., N выделяются классы эквивалентных микроопераций Knl, j = 1, Jn. В рассматриваемом примере подмножество Уд состоит из одной микро- операции. Каждая микрооперация эквивалентна самой себе, поэтому Кд, 1 ~ — {Ую}- В подмножестве У в нет пар эквивалентных микроопераций, поэтому Кв.1={Уь}, Кв,2~ {Уи}, Кв,з= {У1в}- В подмножестве Ус микроопе- рации сложения и счета у3, у7, у17 являются эквивалентными и образуют класс 'Уз Кс, 1 = (У? .Ун С: = С + А (1 : 15) С: = С-f-1 ,С: =С + 11--1 Л(1: 15) + 1 Остальные микрооперации образуют одноэлементные классы Кс, г — {У1}.. Кс. 7 = {щ7). Подмножество Усч не содержит пар эквивалентных микроопе- раций, поэтому Кеч, 1 = {.Уа}, Ксч,з= {Уз}, Ксч,з={Уи}- Для подмно- жества Уцп имеем Кпп,1— {Щг}- 3. Для каждого класса Knj, содержащего не менее двух экви- валентных микроопераций, строится обобщенный оператор. Если класс Kni содержит только одну микрооперацию, то обобщенным оператором для класса Кп1 является сама микрооперация. В рассматриваемом примере единственный класс Кс, 1 содержит несколько микроопераций. Ему соответствует следующий обобщенный оператор: С^С + Дх + Л^ (7.7) где (Л (1 : 15) при уз = 1; (11.~|Л(1 : 15) при уи= 1; Ла = 1 при 1/7=1; 1 при l/u= 1. Десь и в дальнейшем при определении значений вспомогательных переменных Ль Л2)... строка «О в остальных случаях» опускается. 4. Исходя из описания слов, списка обобщенных операторов и логических условий, строится структурная схема 1-автомата. 209
При этом компоненты функции автомата (слова, обобщенные опе- раторы и логические условия) интерпретируются компонентами структурной схемы так же, как при синтезе канонической струк- туры. На основе функций (табл. 6.4, 6.6) строится структура 1-автомата, совпа- дающая с канонической структурой (рис. 7.11) за исключением части, реали- зующей микрооперации Yc- Структура этой части, построенная с учетом опе- ратора (7.7), изображена на рис. 7.17. Рис. 7.17. Фрагмент структуры 1-автомата 7.6. Структурная организация и синтез М-автоматов В структуре 1-автомата могут содержаться эквивалентные по своим функциям комбинационные схемы, используемые для обслу- живания различных регистров. Так, в структуре (рис. 7.11) микрооперации типа сложения у3, у7, yllt связанные с регистром С, и микрооперацию счета у6, связанную с регистром СЧ, можно было бы реализовать одним сумматором и за счет этого уменьшить затраты оборудования в автомате. При заданном алгоритме выпол- нения операций затраты оборудования в комбинационной части автомата можно минимизировать, если каждую комбинационную схему (рт обобщить по отношению ко всем регистрам sx, ..., sN, т. е. использовать каждую комбинационную схему срт для выпол- нения всех эквивалентных микроопераций из множества У- Операционные автоматы, синтезированные на основе принципа обобщения комбинационных схем, используемых для выполнения микроопераций, называются ^-автоматами. 210
Структура и свойства М-автоматов. Принцип обобщения ком- бинационных схем порождает структуры, подобные приведенной на рис. 7.18. В данной структуре для хранения внутренних слов используются регистры sb sN (цепи передачи данных D и вывода результатов R на рис. 7.18 не показаны). Для вычисления любого двоичного выражения cpm (s₽i, ..., sPft) используется одна комбинационная схема Ф, равнодоступная по отношению к реги- страм Sj....sN. Операнды, участвующие в микрооперации, поступают па вход схемы Ф по шинам А1г А2. Для выборки слов на шину используются управляющие сигналы ах, ..., aN а для выборки слов на шину Л2 —сигналы blt ..., bN. Сигнал а Рис. 7.18. Структурная организация М-автоматов инициирует передачу : = s,-, а сигнал bt —передачу А2 : = sy. Схема Ф настраивается на выполнение определенного преобразо- вания Z = срт (Alt Д2) управляющим сигналом <рот, т = 1, ..., К. Вычисленное значение Z может быть занесено в любой регистр .... sN. Загрузка результата Zb регистр sk инициируется управ- ляющим сигналом dk. Чтобы выполнить микрооперацию sk : = — Фт (sz, S/), необходимо подать набор управляющих сигналов (а/, blt <pm, dk), под воздействием которых на вход комбинационной схемы выбираются слова s;, sjt над ними выполняется преобразо- вание <рт и результат загружается в регистр sk. Если выполняется унарная микрооперация, например передача sk : = ~] si( ни один из сигналов bj не вырабатывается и схема Ф реализует операцию инвертирования. При выполнении микрооперации установки s* : = const в автомат должны поступать два управляющих си- гнала: сигнал <рт, инициирующий формирование константы const, и сигнал dk, управляющий загрузкой значения Z в регистр sk. Как видно из рис. 7.18, в каждом такте М-автомат может выпол- нять только одну микрооперацию sk : = cpm (s,-, s;). Следовательно, производительность М-автомата имеет минимальное значение, равное одной микрооперации за такт. Быстродействие М-автомата тличается от быстродействия 1-автомата крайне незначительно, оскольку длительность такта М-автомата увеличивается не более ожиНа 2т ЗЭ СЧет введения в схему мультиплексоров Hj, Аг. Можно идать, что затраты оборудования в М-автомате минимальны, скольку каждая комбинационная схема <pm С Ф используется 211
для выполнения всех эквивалентных микроопераций из мно- жества Y. М-автомат порождает специфический набор управляющих сигналов {a,}, {&,}, {<pm}, {сЦ, посредством которых иницииру- ются действия, приводящие к выполнению микроопераций Уъ Ум- Каждый из указанных управляющих сигналов ини- циирует определенное действие, которое можно рассматривать как Рис. 7.19. Обеспечение устойчивости М-автомата с помощью вспо- могательного регистра микрооперацию. Таким образом, М-автомат порождает новый набор микроопераций {у4± : = s,} U [А2 : = sy} (J [Z : = = Фт Их> ^2)} U [s/e — 2), достаточный для реализации микро- операций функциональной микропрограммы. Обеспечение устойчивости М-автоматов. Устойчивость функ- ционирования автомата может быть обеспечена за счет использова- ния в регистрах $х, ..., sN двойных триггеров. Количество обору- дования в каждом разряде регистра по крайней мере удваивается. Более экономичным является следующее решение. В выходную шину комбинационной схемы устанавливается вспомогательный регистр Z (рис. 7.19). Процесс переключения основных регистров $!, ..., Хд, и вспомогательного регистра Z синхронизируется сигна- лами, временная диаграмма которых приведена на рис. 7.20. Синхронизирующий сигнал Сх воздействует на управляющий автомат, па выходе которого в каждом такте формируется набор 212
управляющих сигналов а(, b/t <pm, dk. В период действия управляю- щего сигнала в операционном автомате выполняются следующие действия: 1) выборка операндов sz, s;- и вычисление значения двоичного выражения (рт (s(, S/); 2) загрузка вычисленного значе- ния в регистр Z, синхронизируемый сигналом С2; 3) передача слова Z в регистр sk-, 4) вычисление значений логических условий X = ¥ (S). На этом такт работы операционного устройства заканчивается. Устойчивая работа автомата обеспечивается парой синхронизирующих сигналов С2, С3, которые принимают значение 1 только в различные моменты времени. Когда С2 = 1, значение Фт (s<> s/) фиксируется на вспомо- гательном регистре Z при неизмен- ных значениях слов s;, s;-, по- скольку переключение регистров sx, . . ., sN запрещено сигналом С3 = 0. Сигнал С3 принимает значение I только после того, как сигнал С2 — 0. Поэтому состоя- ние регистра sk изменяется при фиксированных значениях сигна- лов возбуждения, поступающих с выходов регистра Z, переключе- Рис. 7.20. Диаграмма[работы М-ав- томата с вспомогательным реги- стром ние которого запрещено сигна- лом С2 = 0. Таким образом, цепь обратной^связи от выходов к вхо- дам регистров S разорвана в лю- бой момент времени либо сигналом С3 = 0, либо сигналом С2 = 0, что исключает возможность возникновения гонок и проскока состояний, т. е. обеспечивает устойчивость функционирования операционного автомата. Введение в схему автомата вспомогательного регистра позво- ляет использовать в регистрах памяти вместо двойных триггеров одинарные триггеры, за счет чего уменьшают затраты оборудова- ния, приходящиеся на память автомата. Однако экономия обору- дования приводит к увеличению длительности такта Т, т. е. уменьшению быстродействия устройства. За счет регистра Z длительность такта увеличивается на величину, равную времени переключения регистра Z. Способы вычисления значений логических условий. Логиче- ские условия могут вычисляться таким же образом, как в канони- ческой структуре (рис. 7.10): комбинационные схемы фь ..., Фь подключаются по входам к регистрам sx, ..., sN. В этом случае схемы ф1( ..., фь обеспечивают вычисление значений всех логи- ческих условий X = {jq, ..., xL}, используемых в функциональ- ной микропрограмме. Некоторые логические условия являются эквивалентными в смысле одинаковости присущих им функций ф/ и могут быть Реализованы одной и той же комбинационной схемой. Структура 213
М-автомата хорошо приспособлена для обобщения комбинацион- ных схем с целью вычисления значений нескольких логических условий, поскольку существует регистр Z, на который можно передать любое слово $х, sN или функцию этих слов. Подклю- чение к регистру Z схем Т = {ф,}, формирующих значения логи- ческих условий, позволяет использовать одну схему ф; и, следо- вательно, один осведомительный сигнал для вычисления и пред- ставления значений нескольких эквивалентных логических усло- вий, связанных с различными словами. За счет этого уменьшаются затраты оборудования в операционном автомате и количество осведомительных сигналов. Однако при таком способе формирова- ния осведомительных сигналов в каждом такте вычисляются зна- чения только тех условий, которые зависят от результата текущей микрооперации, и остальные условия могут быть определены только в следующих тактах путем передачи на регистр Z соответ- ствующих слов sx, ..., sN. По этой причине, чтобы выполнить переход по нескольким логическим условиям, связанным с раз- личными словами, в микропрограмму приходится включать допол- нительные операторы, обеспечивающие передачу соответствующих слов на регистр Z. Из-за этого увеличивается время выполнения микропрограммы, т. е. уменьшается быстродействие операцион- ного устройства, и возрастают затраты оборудования в управляю- щем автомате. Синтез М-автоматов. Задача синтеза решается исходя из функции операционного автомата, заданной описанием слов и списками микроопераций и логических условий. Синтез сводится к порождению на основе списка микроопераций Y совокупности операторов, присущих структуре М-автомата: микроопераций передачи Аг : = s,, Л2 : = sjt микроопераций преобразования слов Z : = фт (Лх, Л2), микроопераций загрузки результата sk : — Z. Процедура синтеза разделяется на несколько этапов. Этапы синтеза будем иллюстрировать на примере автомата для умножения и деления чисел, функции которого определены табл. 6.4—6.6. 1. Распределение регистров по шинам. В структуре на рис. 7.18 для передачи операндов используются две шины А1г А2, к которым регистры sx, ..., Sjv подключаются с помощью 2М управляемых шин, инициируемых управляющими сигналами alf ..., а^, blt ..., Можно ожидать, что в некоторых случаях каждый из регистров может быть подключен к одной шине: либо к шине Лх, либо к Л2, т. е. в общем случае минимальное число управляемых шин, используемых для передачи слов на вход комбинационной схемы Ф, лежит в пределах от N до 2N включительно. Когда ис- пользуется 2N шин, автомат оказывается наиболее универсаль- ным и структура его — в максимальной степени регулярной. Для экономии оборудования регистры стремятся подключать к шинам Ль Л2 с помощью минимального числа управляемых шин. Конечно, в результате этого уменьшается степень универсальности и регу- 214
Рис. 7.21. Соответствие между разря- дами слов, передаваемых по шине М-ав- томата лярности структуры автомата. Минимизация числа управляемых щин, используемых для передачи операндов на входы комбина- ционных схем Ф, сводится к разделению множества слов S => » {sv S.v} на два подмножества — (s^, .... sapj и А2 = == |sp »•••» S₽J> удовлетворяющие следующим условиям: 1) если слова* sz, Sj являются операндами одной микрооперации (одновре- менно используются в двоичном выражении), то эти слова должны быть включены в различные подмножества Av, А2, т. е. sz £ Alt S/ £ А2 или Sj С A. si € Аа 2) каждое слово должно содер- жаться хотя бы в одном 3) суммарные затраты обо- рудования в схемах пере- дачи операндов slt . . sA- к входам схем <рх, . . должны быть минимальны. Для решения этой задачи ис- пользуются комбинаторные методы, которые будут рас- смотрены в дальнейшем. Для рассматриваемого примера примем, что слова А, В, С, СЧ, ПП разделяются на следующие подмно- жества: {С}; А2={А, В, С, СЧ, ПП}. (7.8) Это означает, что каждое из слов подключается к шине Аг, а к шине /Ij под- ключается только слово С, которое, как видно из табл. 6.5, участвует в качестве операнда в микрооперациях уа, yit yllt у1в совместно со словами А и В. 2. Определение форматов и значений слов А1Г А2. Обычно принимается следующее соглашение о порядке представления внутренних слов ..., sN вспомогательными словами Alt А2: операнды sa , ..., sap, составляющие множество Д£, совмещаются по младшим разрядам, т. е. младшие разряды слов sa , ..., sap совпадают с младшим разрядом слова Количество разрядов в слове определяется максимальным числом разрядов в слове sa,> .... sa₽, включенным в множество Л;. В рассматриваемом примере в соответствии с (7.8) слово A х совпадает со сло- вом С и должно иметь формат Аг (0 : 16). Соответствие между разрядами вспо- могательного слова А 2 и основных слов А, В, С, СЧ, ПП, описанных в табл. 6.4, представлено на рис. 7.21. 3. Определение операторов, реализуемых М-автоматом. Микро- 1 операции выборки слов на шины, преобразования слов и загрузки Результата в регистры будем называть операторами в отличие от микроопераций у,, ..., ум, используемых в функциональной микропрограмме. Определение операторов сводится к построению табл. 7.6, в которой ука- аны операторы, соответствующие микрооперациям, перечисленным в табл. 6.5. 215
I 216
При этом используются следующие соглашения; 1) слова A 4, Л2 представляют только прямые значения операндов, но не их инверсии: 2) неопределяемое преоб- разование <р,п, реализуемое комбинационной схемой, порождает значение Z — 0: 3) младший разряд слова Z соответствует младшим разрядам слов sx, ..., sN (в данном случае слов А, В, С, СЧ, ПП). Разделение микроопераций на совокуп- ность операторов, соответствующих структуре автомата, выполняется эвристи- чески. При построении операторов необходимо учитывать соответствие между разрядами внутренних слов slt .... sy и вспомогательных слов А 1( Аг, Z, а также минимизировать число операторов, посредством которых описывается процесс выполнения микроопераций Y. С целью унификации операторов изменена форма микрооперации ур двоичная переменная С (15) заменена переменной С (16) и поле В (1 : 15) — полем В (1 : 16). Из этих же соображений микрооперация »17 : С : = В (1 : 15), обеспечивающая передачу слова В со сдвигом на один раз- ряд вправо (рис. 7.21), представлена оператором сдвига Z := R1 (0.В (1 : 16)), эквивалентным микрооперации г/4. Табл. 7.6 содержит в себе список операторов, необходимый для реализации микроопераций Y в М-автомате. В табл. 7.7 перечислены операторы (микро- операции), выполняемые соответствующими подсхемами М-автомата. В таблицу заносятся только попарно различимые операторы, которым ставятся в соответ- ствие управляющие сигналы сц, bi, <рт, d/г. В рассматриваемом примере на шину Aj выбирается только слово С, поэтому отсутствует необходимость в опе- раторе аг : Л4 := С. 4. Кодирование микроопераций наборами управляющих сигна- лов. Микрооперация ут £ Y функциональной микропрограммы выполняется в М-автомате под воздействием набора управляющих сигналов Наборы сигналов определяются на основе табл. 7.6, 7.7 и представляются в виде табл. 7.8, которая используется для построения закодированного графа микропрограммы, необходимого для синтеза управляющего автомата. 5. Определение классов эквивалентных микроопераций. Для минимизации затрат оборудования в комбинационной схеме Ф, реализующей операторы {фт}, множество микроопераций Таблица 7.7 Управляющие сигналы и операторы (микрооперации) М-автомата Выборка операн- дов Преобразование слов Загрузка результата Ъ. J Л2 : — Sy 4>т Z : = <рт (Лг Л2) dk sk = z Ь1 Л2 : = А <Р1 Z : = 1510 di A (1 : 15) : =Z А2 : = В Фг Z: = Лт+ Л2(1 : 15) В (1 : 16) : =Z ®3 Л2 : = С Фз Z : = R1 (Лх (16).Л2 (1 : 16)) C(0) : = Z(0) А2 : = СЧ Фг Z-. = Л1 (О.Л2) d4 C:=Z ф5 Z : = Л2 — 1 + СЧ : — Z Фв Z : = Лх + 1 ПП : = Z (0) (р7 Z : = 100 ... 0 Фе Z: = Л, (1 : 15) Фа Z: = Лт+ 11.И Ла (1 : 15)+ 1 Ф10 Z: = L1 (Л2.0) Фп Z : = L1 (Л2 (1 : 16).-|Лх (0)) •— Ф12 Z : = R1 (0.Л2 (1 : 16)) 217
фз Ф» . Фв Фв (Фз (операторов) {cpm} разбивается на классы микроопераций Ki, ..., ..., Kj, эквивалентных в смысле соответствующих им функций. В рассматриваемом примере микрооперации ф4, ..., ф12 образуют сле- дующие классы эквивалентности: К1={Ф1} = (2: = 151О); Z : = Л| -|- Л2 (1 : 15) 2:=Ла—1 Z : = Л2 + 1 Z : = Лх+ 11.-| Ла (1 : 15) + 1 Z : = R1 (Лх (16). Л2 (1:16))' = Z : = R1 (0. Л2) ; Z : = R1 (0. Л2 (1 : 16)) Kt = ф* Ф12 К4 = {ф7} = {Z: = 100 ... 0}; К, кг /<Р1° Кв = 1 1Ф11 Классы Ki, Кв содержат по одной микрооперации установки. В класс К, объединены микрооперации сложения и счета, которые реализуются путем сло- жения операндов. Микрооперация счета Z := Л2—• 1 также реализуется сло- жением значения Л2 с дополнительным кодом единицы 11 ... 1. В класс Кз вклю- чены микрооперации сдвига вправо, различающиеся в основном только значе- ниями, вводимыми в освобождающийся Т а б л и ц а 7.8 Кодирование микроопераций наборами управляющих сигналов в = (ф8) = {Z : = Л4 (1 : 15)}; Z: = L1 (Л2. 0) Z: = L1 (Л2(1 : 16).и Лх (0)). Микро- операция Набор управляющих сигналов Ь1 “к У1 di Уз — Ф1 de Уз bl ф2 di Ув 62 Фз di Ув 5з Ф4 di Ув bi Фз dt У1 — Фв dt Ув — Фт d3 Уз bl Фз di У1в bi Фз di Уп bl Фв bi У12 — Фт de У1з b3 Ф10 di Уи — — ds У1в — — d'2 У1в bi Фн di Уп bi Ф12 di разряд сдвигаемого слова. Класс К5 содержит микрооперацию передачи. В класс Кл включены микрооперации сдвига слова Л2 влево на один разряд. 6. Построение обобщенных операторов. Для каждого клас- са эквивалентных микроопера- ций Kj строится обобщен- ный оператор. Вспомогатель- ные переменные будем обоз- начать идентификаторами А3, Л4> . . . Классам Ki, ..., Kt соответствуют следующие обобщенные операторы: 1) Z: = 1510; 2) Z : = Л3 + Л4 + Л6; _ (Л4 при ф2, <р, = 1; (Л2 при <р5, <рв = 1; Л2 (1 : 15) при <р2 = 1; 11 ... 1 при фв= 1; .11. “I Ла (1: 15) при ф, = 1; Лв = 1 при фв, ф9 = 1; Л4 = 218
3) z : = R1 (Лв.Л2 (1 : 16)); Ав = At (16) при <p3 = 1; 4) Z: = ЮО ... 0; 5) Z:=A(1 : 15); 6) Z : = LI (A3 (1 : 16).A7); A7 = ~] AL (0) при <pu « 1. При построении обобщенных операторов 3 и 6 слово А 2, участвующее в ми- крооперациях сдвига <р4 и <р10, заменено полем А2 (1 : 16), поскольку при этом содержание ' микроопераций <р4, <р10 и соответственно микроопераций у5, </13 (см табл. 7.6) не изменяется, а обобщенные операторы упрощаются. г ________ fOO...Q------------ lAr(O) — оч- *-------- г (0) X Рис. 7.22. М-автомат, реализующий умножение и деление чисел 7. Построение структурной схемы автомата. На основе описа- ния слов, операторов и списка логических условий строится структурная схема М-автомата. При этом слова, операторы и логи- ческие условия интерпретируются элементами структурного базиса (регистрами, шинами и комбинационными схемами) так же, как при синтезе канонической структуры. Структура М-автомата, предназначенного для умножения и деления чисел, синтезируется на основе описания слов, представленного в табл. 6.4, списка операторов (табл. 7.7), обеспечивающих выборку операндов и загрузку результатов, вышеприведенных обобщенных операторов и списка логических условий (табл. 6.6). Структурная схема ^автомата приведена на рис. 7.22. В данном примере выходная 219
шина регистра С образуют шину Ау М-автомата. Выходы регистров А, В, С, СЧ через мультиплексор подсоединены к шине Аг. Любой вход сумматора + является управляемой шиной, в связи с чем не нулевое значение на выходе сумматора возможно только в момент выполнения микроопераций <р2, (р6, <рв, <р9. Поэтому выход сумма- тора соединяется с входом вспомогательного регистра Z неуправ- ляемой шиной. Поскольку к шине 4Х подключен только регистр С, значение —| Лх (0), используемое при выполнении микрооперации сдвига L1, снимается непосредственно с выхода регистра С без использования инвертора. Рис. 7.23. Структура М-автомата с расширителями комбинацион- ной части Расширители комбинационной части автомата. Из приведен- ного примера видно, что длину регистров, используемых для хра- нения операндов, промежуточных значений и результатов, при- ходится увеличивать на один разряд, который необходим для хранения двоичного значения, получаемого в результате промежу- точных действий, при сдвиге, сложении или для последующего округления. Из-за этого увеличивается число микроопераций, посредством которых реализуется алгоритм в М-автомате, услож- няется структура автомата и уменьшается степень ее регуляр- ности. Чтобы исключить эти негативные явления, используется следующий прием. Комбинационная часть автомата Ф снабжается одноразрядными регистрами s0, sp(p = N + 1), подключаемыми по схеме (рис. 7,23). Когда при выполнении микрооперации над «-разрядными операн- дами получается (« + 1)-разрядный результат, то дополнительный старший разряд результата заносят в регистр s0 и, аналогично, дополнительный младший разряд — в регистр sp. Значения s0 и sp могут использоваться в качестве операндов в следующих микро- операциях, а также в качестве логических условий [х/+1, Хщ- Расширители s0, sp используются следующим образом. Положим, что необходимо выполнить сдвиг слов sx и s2 на один разряд вправо с передачей младшего разряда слова sx в старший разряд слова s2. Эти действия реализуются двумя последовательно выполняемыми микрооперациями: sx.sp : = 0.sx; s2 : = R1 (sp.s2), где sx.sp —' 220
составное (п+3)'РазРяДНое слово. В результате выполнения первой микрооперации переменная sp примет значение n-го разряда слова а слово sx будет составлено из нуля и значений разрядов 1, ... х’ п—1. Перенос, появляющийся при сложении «-разрядных слов, может быть зафиксирован в регистре $0 с помощью микроопера- ции s0.Si : = «1 + s2- В дальнейшем значение su может быть вве- дено в слово S1 путем сдвига вправо на один разряд, причем спадающий при сдвиге младший разряд можно сохранить в ре- гистре sp. В подавляющем большинстве случаев применение расшири- телей благотворно влияет на свойства М-автомата. Поэтому при использовании М-автоматов список микроопераций, полученный из функциональной микропрограммы, модифицируется с учетом того, что дополнительные разряды слов представляются значе- ниями s0 и sp. Так микрооперации (табл. 6.5), используемые для умножения и деления чисел, преобразуются к виду, представлен- ному в табл. 7.9. Напомним, что микрооперации у1г ...,у3 исполь- зуются при умножении, а микрооперации у3, у6, ..., у17—при Таблица 7.9 Микрооперации, ориентированные на использование расширителей s0, sP Ущ Микрооперация Ут Микрооперация У1 С : = 0 Ую Л (1 : 15) : = В (1 : 15) Уг СЧ : = 1510 Уп s0.C • == “F Уз s0.C : = s0.C + А (1 : 15) + И.-] Л (1 : 15) + 1 Уз В (1 : 15) : = R1 (О.В (1 : 15)) У12 ПП : = 1 Уь C.sp : = О.С У1з s0.C : = С.0 Уз СЧ : = СЧ — 1 У14 СЧ : = 0 Уз С : = С + 1 У1в В (1 : 15) : = 0 Уь С (0) : = 1 У1в В (1 : 15).sp : = Уь С : = А (1 : 15) = В (2 : 15).Sp.~l s0 Уп С : = В (1 : 15) делении. При наличии расширителей слова А, В, С, представляю- щие значения операндов, промежуточных и конечных результатов, изображаются в едином 16-разрядном формате. Дополнительный разряд в слове С вводится за счет расширителя $0, значения кото- рому присваиваются в микрооперациях у3, уп, у13. Последняя является микрооперацией сдвига влево на один разряд. При сдвиге Двоичная переменная s0 принимает значение старшего разряда слова С. В микрооперации у3 (сдвиге слова С вправо на один раз- ряд), используемой при умножении, для хранения 16-го разряда произведения используется двоичная переменная sp, по значению которой производится округление произведения. Аналогично, для хранения 16-го разряда частного, формируемого микрооперацией 221
сдвига z/ie на один разряд влево, используется переменная $ которой присваивается значение инверсии знака остатка s' Табл. 7.9 используется в качестве исходных данных для определе- ния набора операторов, реализуемых М-автоматом. кропрограммы ум- ножения, ориенти- рованный на управ- ление М-автоматом Когда в микропрограмме осуществляются сдвиги на т разрядов и передача т-разрядных значений между сдвигаемыми словами, в ка- честве расширителей s0, sp используются m-разрядные регистры. Преобразование закодированного графа мик- ропрограммы, связанного с М-автоматом. М-ав- томат в каждом такте реализует только одну микрооперацию, инициируемую не одним уп- равляющим сигналом ут, а набором сигналов (а;, bj, <pm, dlt). По этой причине закодиро- ванный граф микропрограммы, определяющий функцию управляющего автомата, должен быть преобразован следующим образом. Во- первых, каждая операторная вершина, содер- жащая q функционально совместимых микро- операций ут, ..., ymq, должна быть заменена последовательностью из q операторных вер- шин, содержащих микрооперации ут^ ..., y,nq. Во-вторых, каждый символ ут £ Y должен быть заменен соответствующим набором упра- вляющих сигналов (a,, bj, <pm, rfA). На рис. 7.24 приведен граф микропрограммы умножения, эквивалентный графу на рис. 6.8, а. Наборы управляющих сигналов, инициирующих М-автомат, выбираются из табл. 7.8. 7.7. Структурная организация и синтез 1М-автоматов Класс IM-автоматов. Структурная орга- низация 1-автоматов базируется на принципе закрепления комбинационных схем, используе- мых для выполнения микроопераций, за каж- дым из регистров Sj, ..., sN. За счет этого все функционально совместимые микрооперации могут выполняться параллельно в одном такте. Структурная организация М-автоматов базируется на обобщении комбинационных схем по отношению ко всем регистрам, за счет чего уменьшаются затраты оборудования в автомате. Эти два класса автоматов обладают диаметрально противоположными свойствами: 1-автоматам присуща максимальная производитель- ность при наибольших затратах оборудования, а М-автоматам — минимальная производительность при наименьших затратах обо- 222
„упования. Следует ожидать, что между этими двумя классами структур операционных автоматов лежат варианты структур, обладающие промежуточными свойствами: достаточно высокой производительностью при умеренных затратах оборудования. Эти соображения иллюстрируются рис. 7.25. Ось абсцисс представляет степень обобщения комбинационных схем между регистрами. Значение К = 0 соответствует 1-автомату, а значение К = 1 — М-автомату, которому свойственно максимальное обобщение схем, используемых для выполнения микроопераций и, возможно, для вычисления значений логических условий. Операционные авто- маты, структурная организация которых характеризуется сте- пенью обобществления комби- национных схем 0 < К < 1, выделяются в особый класс ав- томатов —класс 1М-автоматов. IM-автоматами называются операционные автоматы, струк- турная организация которых вносит ограничения на совме- стимость микроопераций и од- новременно с этим обеспечивает выполнение за такт более одной микрооперации функциональ- ной микропрограммы. IM-авто- маты базируются на общно- сти некоторых комбинационных 1М~ автопаты Рис. 7.25.~ИзменениеХхарактеристик операционных автоматов в зависимости от степени обобщения комбинацион- ных схем схем, реализующих микрооперации, и, возможно, вычисляющих значения логических условий, для обслуживания нескольких регистров. Однако степень обобщения схем не столь высока, как в М-автоматах, и позволяет в одном такте выполнять более сложные действия, чем sa : = *se или sa: = sB * sv, типичные для М-автоматов. Структуры IM-автоматов могут порождаться двумя способами: использованием для выполнения микроопераций параллельных и последовательных комбинационных схем. Первый способ при- водит к структурам, называемым IM-автоматами с параллельной комбинационной частью, а второй — к ltA-автоматам с последо- вательной комбинационной частью. IM-автоматы с параллельной комбинационной частью. Вариант структуры IM-автомата приведен на рис. 7.26. Для хранения слов используются регистры sx, sN с длинами, равными длинам соответствующих слов. Для вычисления двоичных выражений, применяемых в микрооперациях, служат комбинационные схемы и Ф2, реализующие функции \ft] и {gm} соответственно. В дан- ном^варианте структуры схема Фг выполняет бинарные операции 1 ~ ft Их. Да) —сложение, конъюнкцию, дизъюнкцию, отрица- >ие равнозначности—над вспомогательными переменными Дх, 223
А2, значения которых поступают из регистров s,, Sj, выделяемых управляющими сигналами ait bj. Схема Ф2 реализует унарные операции Z2 — gm (Л3) — передачу, инвертирование, сдвиг, фор- мирование констант и т. д. — над вспомогательной переменной А3, значение которой поступает из регистра sk, выделяемого управ- ляющим сигналом ск. Результаты Zlt Z2 загружаются в регистры sp, sr, определяемые управляющими сигналами dp, ег. В одном такте автомат может выполнять две микрооперации sp : = ft (s sj)’, sr : = gm (sk), инициируемые набором управляющих сигналов Рис. 7.26. Структура IM-автомата с параллельной комбинационной частью (ait bj, ск, fh gm, dp, er), которым соответствуют следующие опера- ции, реализуемые схемами 1М-автомата: ai: Ак: — S/-, fj: Zx: — /z (Дь А2); dp: sp: — Zx; Z>/. Л2 • = 8/, g/n : Z2: = gm (Д3); er: sr'. = Z2. ck: A3: = sk- Максимальная производительность IM-автомата с В параллель- ными комбинационными схемами Ф1( ..., Фв, 1 < В < N равна В микрооперациям за такт и увеличивается с увеличением числа комбинационных схем. Следовательно, количество комбинацион- ных схем Фп ..., Фв определяется требованиями к быстродей- ствию операционного устройства — ограничением на время выпол- нения операций. IM-автомат можно рассматривать как композицию из В М-авто- матов, имеющих общую память s1( ..., sw. Исходя из этого синтез IM-автомата с параллельной комбинационной частью сводится к разбиению множества микроопераций Y = [уг, ум} на В подмножеств Ylt ..., YB и синтезу В М-автоматов, реализующих указанные подмножества микроопераций. IM-автоматы с последовательной комбинационной частью. Прин- цип последовательной организации комбинационной части опера- ционного автомата приводит к структурам, показанным на рис. 7.27. В данном случае комбинационная часть состоит из 224
грех схем Ф1( Ф2, Ф3. реализующих операции из множеств {[к], {g/l> соответственно. Операции распространяются на пару слов sit Sj, которые выбираются на входы Ах, А2 комбинационной части под воздействием управляющих сигналов а(, bj, инициирую- щих передачи ; = s,-; А2 : = st. Комбинационные схемы Фь ф21 Ф3 настраиваются на выполнение требуемых микроопераций управляющими сигналами fk, gh hm, которые инициируют следую- щие преобразования: Ая : --- fk (А3); Л4 : = gt (Ль Л2); Z : = = h,n (Л4), где Л3, Л 4, Z —вспомогательные переменные. Запись результата Z в память автомата инициируется управляющим Рис. 7.27. Структура IM-автомата с последовательной комбинацион- ной частью сигналом dn: sn : = Z. Таким образом, совокупность микроопера- ций fk, gi, hm над словами st, Sj с целью вычисления слова sn ини- циируется набором управляющих сигналов (а;, b/t fk, gh hm, dn), под воздействием которых автомат за один такт реализует следую- щее преобразование: s„: = /im(gz(sz, f*(s/))), (7.9) эквивалентное трем последовательно выполняемым микроопера- циям fk, glt htn. За счет этого максимальная производительность IM-автомата со структурой на рис. 7.27 в три раза превышает производительность М-автомата. Чтобы обеспечить возможность выполнения микроопераций fk, gi, hm в любом сочетании, каждая из схем Фъ Ф2, Ф3 должна реализовать микрооперации передачи слов: А3 : = А2; А4 : = Ах; : = А3; Z : = А4. За счет этого комбинационная часть кроме преобразования (7.9) может выполнять преобразования следую- щего вида: Z : = А4; Z : = А3; Z : = Д (Л2); Z : = gl (Alf А2); z : - h,n И1); z : = gt (Aj, fk (A2)) и t. Д. При использовании IM-автоматов в качестве операционных автоматов процессоров комбинационные схемы Фх, Ф2, Ф3 обычно реализуют следующие функции. Схема Ф4 используется для формирования констант, полей и инверсий слов и называется Ц С. А. Майоров, Г. И. Новиков 225
формирователем кодов. Для формирователя кодов типичен следую- щий набор микроопераций: /о ’• А3: — А2‘, /4: Л3: = 0. Ла (1 : п); А:Л3: = 1; Д : Л3: = 1 ,Ла (1 : п); fa: Л3: == 1510; /в: Л3: =1.—| Л.,(1 : п); f3: Л3: = 1010; /7: Л3: = Ла(0 :7).ОО.. .0 и т. д. Микрооперация /0 обеспечивает передачу слова Ла без преобразования. По сигналам Д, /2, /3 на выходе формирователя образуются значения необходимых констант. Микрооперация Д служит для передачи цифровых разрядов слова Ла (модуля опе- ранда), микрооперация Д —для передачи слова с обратным зна- ком. Микрооперация Д формирует обратный код слова Л2, а микро- операция Д выделяет первый байт операнда. Схема Фа исполь- зуется для выполнения бинарных операций +, Л> V» ©> основной из которых является сложение. Поэтому схему Ф2 часто называют сумматором и возлагают на нее выполнение микроопераций следующего вида: go At: = Л4; йз: Л4: = Л1 © Л3; £1: Л4: = Л3; £4: Л4: = Лх Д Л3; £2: Л4: = Л4 Л3; g3: Л4: = Л4 V Л3, где g0, £4 — микрооперации передачи слов с входа на выход сум- матора. Комбинационная схема Ф3 используется для выполнения микроопераций сдвига и называется сдвигателем. Сдвигатель реали- зует микрооперации следующего вида: /г0: Z: = Л4; h3: Z: = R1 (Л4 (п).Л4); ht-.Z: = R1 (О.Л4); /i4:Z: = Ll (Л4.Л4(0)); h2:Z: = L1 (Л4.0); hb: Z: = R2(00. Л4), где h0—микрооперация передачи и /г3, ^—микрооперации циклического сдвига. Различным значениям управляющих сигна- лов gh fl{, hm соответствуют различные преобразования. Например, (Д, £г> й0) — Z: = Л4 + 1; (Д. £2. /i0) —2: = AX+1.“1Ла(1 :п); (Д, £ь М — Z : = 1510; (Д, £2, ft1)-Z: = Rl(0.(A1 + A2(l:n))). Как и в М-автомате, в комбинационной части IM-автомата могут использоваться расширители для хранения переноса из старшего разряда сумматора и разрядов, спадающих при сдвиге слова Л4. Синтез IM-автомата с последовательной комбинационной частью производится на основе функциональной микропрограммы путем представления последовательностей микроопераций уа , ..., уаг б С У в форме выражений (7.9). Для этого микропрограмма разде- 226
ляется йа линейные участки вида (рис. 7.28), состоящие из последо- вательности операторов Ох, ..., О,. Линейные участки классифи- цируются по рангам г = 1, ..., R. К рангу г относится участок, состоящий из г операторов Olt ..., Ог. В результате функция операционного автомата представляется множествами Llt ..., L& линейных участков (4 <4 .. оа; 1 О₽1 <4 • о₽г 2 Lr = , г= 1, . (7.Ю) OfOj О(О2 • • 0<лг 1г Затем определяется множество выражений, порождаемых линей- ными участками Lr..... Линейным участкам первого ранга L} соответствуют микрооперации уа , ..., yak g Y. Выражения, относя- щиеся к линейному участку 0v , ... ..., ОУг ранга г = 2. R, находятся следующим образом. Среди микро- операций, входящих в состав опера- торов линейного участка, выделя- ются микрооперации yb , ...,ybl, свя- занные с вычислением одного и того же слова sn. Путем последователь- ных подстановок выражений уЬ1 —> —4 Уь2 —♦ ... —► ybl формируется мик- рооперация sn : = q>m (sin, . . ., sim), которая эквивалентна последователь- ности микроопераций уь , . . ., ybl. Микрооперации уь . . ., ybl исклю- чаются из линейного участка, и про- цесс порождения выражений вида (7.9) повторяется для оставшихся ми- кроопераций линейного участка. На- пример, линейный участок (рис. 7.28) порождает следующие выражения: Рис. 7.28. Линейный участок функциональной микропрограм- мы М = sx: = L1 ((~|si + s2).O) s3 . = L1 (sg. 0) s4 : = s4 1 (7.H) первое из которых эквивалентно последовательности трех микро- операций ylt у3> Если использовать М-автомат, то участок мик- ропрограммы (рис. 7.28) будет выполняться за пять тактов. Если перационный автомат будет построен по выражениям (7.11), то я выполнения этого участка потребуется три такта. Множество 227
выражений, порождаемых линейными участками Lr ранга г, определяется путем объединения выражений, порождаемых от- дельными линейными участками, h Мг = и М1Г. Множество выражений, порождаемых функциональной микро- программой, R М = U Мг. г=1 Множество М содержит все микрооперации из набора Y, которые не покрыты выражениями, полученными из линейных участков, и выражения, сформированные путем объединения микроопераций, последовательно выполняемых на линейных участках микро- программы. Множество М можно рассматривать как множество микроопе- раций, реализация которых возлагается на операционный автомат. Применением процедуры синтеза М-автомата к множеству микро- операций М определяется набор операторов Лх : = s,; А2 : = sf, Л3: = fk (Л2); Л4 : = g, (Л1( Л3); Z : = hm (Л4); sn : = Z, реали- зуемых схемами выборки операндов Лх, Л2, комбинационной частью и схемой записи результата Z в регистры sx, ..., sN. По набору операторов строится структурная схема 1М-автомата. Количество ступеней в комбинационной части автомата определя- ется максимальным числом действий в двоичных выражениях М. Так, в (7.11) наиболее сложным является первое выражение, составленное из трех действий: инвертирования, сложения и сдвига. Область применения 1М-автоматов с параллельной и последо- вательной комбинационной частью. Структура IM-автоматов с па- раллельной комбинационной частью хорошо приспособлена для реализации микропрограмм, в которых большое число операторов содержат несколько совместимых микропераций и линейные участки не содержат микроопераций, связанных с вычислением одного слова. В этом случае множество микроопераций Y разде- ляется на два, три или более подмножества, реализуемые схемами Фх, ..., Фл и в каждом такте автомат обеспечивает совместное выполнение до К микроопераций. IM-автоматы с шараллелънбй комбинационной частью целесо- образно применять для реализации микропрограмм, в которых присутствуют многократно выполняемые последовательности микроопераций, обеспечивающие вычисление одного слова sn £ S. Такие последовательности наиболее легко выявляются на линейных участках микропрограммы. Однако с целью увеличе- ния производительности автомата можно возлагать на комбина- ционную часть вычисление условных выражений, значение кото- рых зависит от промежуточных результатов 228
7 8. Использование запоминающих устройств в памяти автомата и класс S-автоматов В некоторых операционных устройствах операции выполняются над большим числом внутренних слов, от десятков до сотен. Примерами таких устройств являются мультиплексные каналы, процессоры со встроенным каналом ввода—вывода, специализи- рованные процессоры ввода—вывода и т. д. Для уменьшения стои- мости таких устройств регистровая память операционного авто- мата заменяется запоминающим устройством (ЗУ). ЗУ содержит схему адресации, обеспечивающую в каждый момент времени доступ только к одной ячейке ЗУ, т. е. код- ному слову информации. Этот фактор накладывает отпечаток на структур- ную организацию операционного ав- томата. Операционный автомат, па- мять которого состоит из запомина- ющего устройства, называется S-ав- томатом. Структура S-автомата. Типичная структура S-автомата изображена на рис. 7.29. ЗУ обеспечивает хра- нение 2а /i-разрядных слов с адре- сами 0, 1, . . ., 2“ — 1. Обращение к ЗУ инициируется сигналами чте- ния ЧТ: S : = ЗУ [А ] и записи ЗП: ЗУ 1А ] : — Z, где А — адрес, индентифицирующий читаемое или Рис. 7.29. Типичная структу- ра S-автомата записываемое слово. Адрес генерируется управляющим автоматом в момент каждого обращения к ЗУ. Для хранения операндов, уча- ствующих в микрооперации, используются регистры Pj, Р2. Задан- ная операция <рт реализуется комбинационной схемой Ф, вычисля- ющей значение слова Z — ц>1П (Рг, Р3). Значение Z загружается в ЗУ по заданному адресу А—А3. Такт Т автомата разделяется на последовательность действий: 1) чтение из ЗУ первого операнда Pi : = ЗУ [АД, заданного адресом Ах; 2) чтение из ЗУ второго операнда Р2 : = ЗУ [А2 ]; 3) выполнение операции Z : — <рт (Plf инициируемой управляющим сигналом срт; 4) запись резуль- тата ЗУ [Д3] ; = Z. Таким образом, в каждом такте автомат реализует микрооперацию 8да : = <рт (кд,, 8д2), где 8д — слово, хранимое в ячейке А ЗУ. Обычно комбинационная часть S-автомата строится по схеме М-автомата, что обеспечивает реализацию одной микрооперации за такт. Быстродействие S-автомата определяется в основном ыстродействием ЗУ—длительностью цикла обращения к ЗУ. общем случае быстродействие S-автомата ниже быстродействия автоматов с регистровой памятью, поскольку регистровая память 229
Рис. 7.30. Вариант структуры S-автомата обеспечивает одновременную выборку всех операндов и время выборки слова из регистра меньше длительности цикла ЗУ. В зависимости от способа построения комбинационной части Ф, выполняющей набор микроопераций, S-автомат синтезируется как I-, М- или 1М-автомат. Способы повышения быстродействия S-автоматов. Быстро- действие S-автомата может быть повышено следующими способами: 1) загрузкой результата микроопе- рации Z в регистры Рх, Л2 с целью его использования в качестве опе- ранда в следующей микрооперации; 2) расширением регистровой памяти автомата за счет дополнительных ре- гистров Р3, Piy... Наиболее простой вариант струк- туры, обеспечивающий использова- ние результата Z в качестве операнда в следующей микрооперации, приве- ден на рис. 7.30. Автомат реализует микрооперации следующего вида: Л : = <р,п (ЗУ [АДЗУ [Ла]); Рх : = = ЗУ [AJ : = Vm(Plt ЗУ [Аа]). В микрооперациях первого типа оба операнда выбираются из ЗУ, и ре- зультат операции <рт загружается в регистр Рг. В микрооперациях вто- рого типа в качестве операнда ис- пользуется слово Рг и результат опе- рации записывается в регистр Рх и ячейку ЗУ. В этом слу- чае в каждом такте выполняются два обращения к ЗУ, в резуль- тате чего уменьшается длительность такта. Второй способ увеличения быстродействия S-автомата сводится к введению дополнительных регистров Р3, Р^,... Каждый дополни- тельный регистр уменьшает интенсивность потока обращений к ЗУ, поскольку увеличивается вероятность того, что операнд хранится в регистрах Рх, .... Рк и результат микроопераций может быть записан в соответствующий регистр. Большой эффект дает введение в автомат регистров (расширителей комбинационной части), используемых для хранения значений переносов и разря- дов, спадающих при сдвиге слова.
Глава 8 ОПЕРАЦИОННЫЕ ЭЛЕМЕНТЫ 8.1. Операционные элементы комбинационного типа Операционный элемент комбинационного типа служит для выполнения совокупности микроопераций \у,п : С : = срт (Лх, ..., /J}, вычисляющих слово информации С как функцию <рт слов Лр '•••> Ак, причем С [Лх, .... Ak], или определения значений совокупности логических условий [х; : = ф\ (Лх, ..., Лй)}. В структурном отношении операционный элемент указанного типа — комбинационная схема, на входы которой поступают значения слов Лх, .... Ак и управляющие сигналы {ут}, а выходы представляют разряды слова С или значения осведомительных сигналов {%/). Комбинационные схемы могут строиться в базисе булевых элементов, реализующих функции Д, V, ~I» на элемен- тах И—НЕ (ИЛИ—НЕ) универсального базиса или элементах типа И—ИЛИ—НЕ. В настоящее время наиболее широко исполь- зуются элементы универсального базиса И—НЕ (ИЛИ—НЕ). В зависимости от типа реализуемых функций {ут : С : = = Фт (Лх, •••> ЛА)} и [х, : = фх (Лх, ..., ЛА)} выделяются опе- рационные элементы следующих типов: управляемые шины; мультиплексоры; формирователи констант, присваивающие слову значения определенных констант; формирователи кодов, обеспечи- вающие выделение полей слов Лх, ..., Ak и формирование обрат- ных кодов слов и их полей; сдвигатели, реализующие микроопера- ции сдвига; сумматоры; счетчики; схемы сравнения на равенство, на больше—меньше и т. д. Для преобразования кодов исполь- зуются специальные операционные элементы: дешифраторы и шифраторы. Канонический метод синтеза комбинационных схем. В основе методов синтеза операционных элементов лежит канонический метод синтеза комбинационных схем [48, 60], сводящийся к сле- дующему. Функция операционного элемента Ф = \ут : С : = = Ф« (Лх, .... ЛА)} или Т = {xt : = ф, (Лх, ..., Л*)} представ- ляется в табличной форме —в виде таблицы истинности. Таблица истинности устанавливает соответствие между всевозможными двоичными наборами ехе2 ... ер, где равно 0 или 1, представляю- щими значения аргументов Лх, ..., Ak, и двоичными наборами ^е2 ••• eq, представляющими соответствующие значения функции Ф или т, По таблице истинности строятся нормальные формы булевых функций: сх — ^1(йх, . . . . , ар); (8.1) с? — (ах, . . . , ар), 231
где Cj, .... cq и ax..ap — двоичные переменные, являющиеся значениями разрядов слова С и слов Ах, ..., Ак соответственно; Х1( 7.q—булевы функции. Булевы функции обычно записы- ваются в канонической дизьюнктивной форме — в виде дизъюнк- ции конституент единицы: Таблица 8.1 Функция С = А + В (схс2с3 — аха2 + fei&2) Табличная форма функции С = А 4- В Таблица истин- ности А в С aiOgbibi CiCtCa 0 0 0 0000 0 0 0 0 1 1 0 0 0 1 0 0 1 0 2 2 0 0 10 0 1 0 0 3 3 0 0 11 0 1 1 1 0 1 0 10 0 0 0 1 1 1 2 0 10 1 0 1 0 1 2 3 0 110 0 1 1 1 3 4 0 111 1 0 0 2 0 2 10 0 0 0 1 0 2 1 3 10 0 1 0 1 1 2 2 4 10 10 1 0 0 2 3 5 10 11 1 0 1 3 0 3 110 0 0 1 1 3 1 4 110 1 1 0 0 3 2 5 1110 1 0 1 3 3 6 1111 1 1 0 с,- = V (аха2 . . . ap)h i = 1.п. (8.2) / Конституента единицы ах, а2 ... ар — это конъюнктивный терм, принимающий значение 1 на наборе ехе2 ... ер, которому соответ- ствует значение функции сг=1. Буквы at в терме аха2 . . . ар определяются следующим образом: а,- = а,-, если в) = 1, и а- = ajt если в) — 0. Так, набо- ру = 1010 соот- ветствует конституента аха2а3ах = аха2а3ах, прини- мающая значение 1, толь- ко если аха2а3ах = 1010. В (8.2) знаком дизъюнк- ции объединяются все конституенты j, соответ- ствующие наборам значе- ний переменных ах,а2, ..., ар, на которых функция сг = 1. С целью уменьше- ния затрат оборудования в комбинационной схеме производится минимиза- ция системы булевых функций (8.2). Минимизация обычно вы- полняется в два этапа. Сначала по канонической дизъюнктивной форме системы булевых функций (8.2) строится минимальная форма. Для этого используются карты Карно, метод Квайна— Мак-Класки, алгоритм Рота и т. д. [48]. Затем по минимальной форме находится скобочная форма, для чего используются методы декомпозиции булевых функций [48]. Если схема строится из элементов специфичного базиса, например из элементов И—НЕ, используются специальные приемы преобразования булевых функ- ций, позволяющие минимизировать затраты оборудования в схе- мах с учетом специфики функций, реализуемых логическими элементами. Минимальные скобочные представления булевых функций используются в качестве формы для построения комби- национной схемы. Канонический метод синтеза комбинационных схем проиллюстрируем на следующем простом примере. Пусть требуется синтезировать схему операцион- 232
лого элемента, вычисляющую значение суммы С = А Д- Д двухразрядных двоичных слов А — «1Яа и В = 6х62. Слагаемые могут принимать значения О, I 2, 3 и максимальное значение суммы равно 6. Поэтому значение суммы должно представляться 3-разрядным словом С — схс^:3. Табличная форма функции (j А + В и соответствующая ей таблица истинности представлены в табл. 8.1. По таблице истинности строятся следующие канонические дизъюнктивные формы булевых функций с(- = Д (аъ а2, bit b2), i = 1,2,3; Ci — aia2bib2 \/ <ZiCZ2*i*2 V ДЧ^2*1*2 V V 0x02*1*2 V OlO2*!*2 V aia2bib2, с2 — aia3bib2 \/ aia2bib2 V ... V «102*1*2; c3 = aia^ib2 V aia2bib3 V ... V aia2bj>2- Эти функции вычисляются совместно и образуют систему булевых функций. Для минимизации булевых функций воспользуемся картами Карно (рис. 8.1), по которым находятся следующие минимальные формы функций: ’ Ci = aia2b2 V o2*i*2 V «1*1; c2 — aipib2 V ОхОа*! V oia2*i V aLbib2 V aLa2bib2 V aia26i*2; (8.3) . c3 = a2b2 V a2b2. Исходя из (8.3), построим скобочные формы функций Cj, с2, с3. Функциям cj и с2 соответствуют следующие скобочные формы: Ci = a2b2 (ах V *х) V Ох&х; с2 = albl (а2 V *2) V Ох*х (о2 V *2) V а2&2 (ох*х V«i*i) = = (а2 V *2) (ох*х V 0x61) V а2*2 (охРх V 0x61). Поскольку 0161 V 0161 = 0161 V 0161, то вводя вспомогательную переменную ?i = Oi6j V «161, получаем с2 = Zi (а2 V *i) V zio262. Обозначая общий для функций cit с2 терм а262 буквой г2, окончательно имеем; Zi = at6i V Oi*i! z2 — a2b2\ Ci = z2 (ax V *1) V 0161; c2 = Zi (a2 V 60 V ZjZ2; Og — o262 \/ a2b2. (8.4) По скобочным формам (8.4) построена схема (рис. 8.2), реализующая функ Чию cic.ca = ajOj 6t62. При этом предполагается, что входные переменные “Т’ a2' *i. 62 представляются только прямыми значениями, но не инверсиями, итметим, что порядок соединения элементов в схеме определяется порядком вы- олнения операций в булевых функциях (8.4), которые по этой причине можно рассматривать как форму, предопределяющую конфигурацию схемы. Синтез комбинационных схем в базисе И—НЕ. Булевы функции ° ычно строятся в базисе булевых операций Д, \/> Iй минималь- ные, в том числе и скобочные формы функций, представляются 233
Рис. 8.1. Карты Карно для функ- ции с^гСз = аха2 +
6 терминах ЭТИХ Жё операций. Если для построения схемы исполь- зуются элементы универсального базиса, реализующие операцию И—НЕ, необходимо булевы функции перевести в базис И—НЕ — представить функции в виде композиции операций а1а2 ... ak, где обычно k > 2. Перевод операций —|, Л» Vе базис элементов I4—HE, реализующих функцию с = ab, выполняется по следую- щим формулам: _ _____ с = а — аа\ с = ab = ab = abab (8.5) c = a\/b = ab — aabb. Схемы, осуществляющие указанные операции на основе элементов И—НЕ, изображены на рис. 8.3. Из последнего выражения видно, Рис. 8.3. Реализация отрицания (а), конъюнкции (б) и дизъюнкции (в) на эле- ментах И—НЕ что выполнение операции И—НЕ над инверсиями переменных рав- носильно операции \/ над прямыми значениями этих же перемен- ных. Поэтому, если функция задана в дизъюнктивной нормальной форме, например с = V °1а2аз V а1а2аз> (8-6) то схема в базисе И—НЕ легко строится по исходной форме функ- ции с использованием следующего правила: инверсии a%, а3 вычисляются в виде рис. 8.3; конъюнктивные термы ага3а3, а1а2а3, ауа2а3 вычисляются элементами И—НЕ, на выходах которых будут определены инверсии конъюнкций аха2а3, ага3а3, аха3а3, дизъюнк- ция термов вычисляется элементом И—НЕ, на входы которого поступают инверсии конъюнктивных термов. Схема, построенная по этому правилу на основе функции (8.6), представлена на рис. 8.4, а. Однако, как показывает опыт, простая интерпретация мини- мальных форм булевых функций структурными компонентами, показанными на рис. 8.3, обычно не приводит к минимальным схемам. Чтобы минимизировать затраты оборудования в схеме, необходимо минимизировать число инверсий над входными пере- менными. Для этого используется следующее правило: ab у ab = abb V aba, (8.7) 235
позволяющее выражение 0 двумя инверсиями а, b привести к выра- жению с единственной инверсией ab. С использованием этого правила дизъюнктивная нормальная форма (8.6) преобразуется следующим образом: с = (ахам3 V а1а2«з) V (°1а2аз V а1а2аз) V («1«2«з V а1«2«з) = = («ia.2a2o8 V \/ (аха3а.га3 \Ja^ayixa^ \/ \/ (uM.jita3 V == (а|я2я.,а3 V ага./1ха^ V V (ахамха3 \J V («ia3a2n3 V алуа^) = == а1а.,а3а.,а3 \/ а^ам^а^з V \J a^a-ja^ V По выражению (8.8) построена схема (рис. 8.4, б), содержащая на два элемента меньше, чем эквивалентная ей схема на рис. 8.4, а. Таким образом, при синтезе схем в базисе И—НЕ минимизация булевых функций проводится следующим образом: 1) строятся минимальные дизъюнктивные формы булевых функций; 2) мини- мизируется число инверсий входных переменных на основе правила (8.7); 3) дизъюнктивные формы переводятся в базис И—НЕ на основе соотношений (8.5). Дополнительно отметим, что сокращение числа инверсий возможно, если инверсии имеют вид ab, но не ab. Методика синтеза операционных элементов комбинационного типа. Типичный операционный элемент реализует функцию от большого числа переменных, в связи с чем таблица истинности, представляющая функцию элемента, в ее традиционной форме оказывается чрезмерно громоздкой. Поэтому при синтезе комби- национных схем операционных элементов функция схемы пред- ставляется в виде табл. 8.2. Таблица состоит из т строк, соответ- ствующих микрооперациям ylt ..., ут и п столбцов, соответствую- щих разрядам 1, ..., п слова С — ... си, формируемого на выходе операционного элемента. На пересечении t-й строки и /-го 236
“Таблица 8.2 функция операционного элемента комбинационною тийа Управ- ляющий сигнал Микрооперация Выходные переменные Cl . . . сп У1 У1 Ут 1 33^ э-э- • &• II и ; и CJ -ci Л1 г21 Zmi г1» г23 г1П г2П гтп столбца указывается значение z(/-, которое должно присваиваться переменной с;- при выполнении микрооперации z/z. Значения zZ/- определяются результатами микроопераций уь т. е. значениями функций ф,:, детализируемых в отношении разряда / выходного слова С. Значение zi;- может быть константой (0 или 1) или перемен- ной, представляющей разряд at входного слова Ak или функцию 2ц = Хц (at_g, ah al+h), g, h = 0, 1, 2,... от значений at_g, ah ..., a[+h одной, двух или более входных переменных — разрядов входных слов. Примеры такого рода таблиц будут приведены в последующих параграфах. Функция комбинационной схемы определяется по табл. 8.2 в виде системы булевых функций следующего вида: Ci^X/ypib j = (8.9) i=i Поскольку микрооперации ylt ..., у,п несовместимы, то в любой момент времени только один из управляющих сигналов yt = 1, а остальные сигналы в это время имеют нулевые значения. Поэтому функция (8.8) обеспечивает присваивание переменной с,- значения 2ц, выделяемого сигналом yL = 1. Если все yt — 0, то С/ = 0. Для синтеза комбинационной схемы система булевых функций (8.8) минимизируется традиционными методами и по минимальным формам булевых функций строится комбинационная схема. Характеристики комбинационных схем. Основные характери- стики комбинационных схем — сложность и быстродействие. Сложность схемы оценивается количеством оборудования, состав- ляющего схему. При разработке схем на основе конкретной эле- ментной базы количество оборудования обычно измеряется числом корпусов (модулей), используемых в схеме. В теоретических разработках ориентируются на произвольную элементную базу и поэтому для оценки затрат оборудования используется оценка сложности схем по Квайну. Сложность (цена) схемы по Квайну определяется суммарным числом входов логических элементов в составе схемы. При такой оценке единица сложности, т. е. единица оборудования —один вход логического элемента. При 237
этом цена инверсного входа обычно принимается равной двум, Так, сложность схемы на рис. 8.2 — 30 единиц по Квайну, с лож- ность схемы на рис. 8.4, а — 18 единиц и сложность схемы на рис. 8.4, б — 15 единиц. Поэтому первая схема считается наиболее сложной, а последняя — наиболее простой. Такой подход к оценке сложности схем является результативным по следующим причи- нам. Во-первых, сложность схемы легко вычисляется по булевым функциям, на основе которых строится схема: сложность схемы равна сумме числа букв в дизъюнктивной нормальной форме, причем букве со знаком отрицания соответствует цена два, и числа знаков дизъюнкции, увеличенного на единицу для каждого дизъ- юнктивного выражения. Во-вторых, все классические методы мини- мизации булевых функций обеспечивают минимальность схемы именно в смысле цены схемы по Квайну. И наконец, практика показывает, что схема, минимальная в смысле цены по Квайну, обычно реализуется наименьшим числом конструктивных элемен- тов — корпусов. Только в редких случаях схема, минимальная по Квайну, может потребовать для своей реализации большего числа элементов, чем схема с большой ценой по Квайну, и такая ситуация возможна только тогда, когда цены схем отличаются незначитель- но — на несколько единиц. Быстродействие схемы оценивается максимальной задержкой сигнала при прохождении его от входа схемы к выходу, т. е. определяется промежутком времени от момента поступления вход- ных сигналов до момента установления соответствующих значений выходных сигналов. Задержка сигнала кратна числу элементов, через которые проходит сигнал от входа к выходу схемы. Поэтому быстродействие схемы характеризуется значением kx, где х — задержка сигнала на одном логическом элементе. Значение k определяется количеством уровней комбинационной схемы, кото- рое рассчитывается следующим образом. Входам комбинационной схемы присваивается уровень 0. Элементы, связанные только с входами схемы, относятся к уровню 1. Элемент относится к уровню k, если он связан по входам с элементами уровней k — 1, k —2, ..., 0. Максимальный уровень элементов определяет коли- чество уровней комбинационной схемы. Так, схема на рис. 8.4, а является 3-уровневой и задержка сигнала в ней равна Зт, а схема на рис. 8.2 — 4-уровневой (элементы на схеме отмечены номерами уровней 1, ..., 4) и задержка сигнала в схеме составляет 4т. Любая булева функция может быть представлена в дизъюнктивной нормальной форме, которой соответствует 2-уровневая комбина- ционная схема, т. е. быстродействие любой комбинационной схемы можно довести до 2т. Минимизация булевых функций с целью уменьшения сложности схем обычно приводит к необхо- димости представления функций в скобочной форме, которой соот- ветствуют схемы с числом уровней k > 2. Следовательно, умень- шение затрат оборудования в комбинационных схемах приводит в общем случае к снижению быстродействия схем, 238
8.2. Формирователи кодов и сдвигатели Формирователи кодов. Формирователи кодов служат для гене- рации констант, выделения полей слов и получения обратных кодов слова и полей. Функция формирователя кодов, реализую- щего типичный набор микроопераций, приведена в табл. 8.3. Формирователь реализует микрооперации с целью вычисления слова С (0 : 4) = СоСу^Л. В качестве аргумента микрооперации Таблица 8.3 Функция формирователя кодов Управ- ляющий сигнал Микрооперация Выходные переменные Со Ci С2 Сз с< У1 С : = 1 0 0 0 0 1 У-1 С : = 1010 0 1 0 1 0 Уз С : = 1111 0 1 1 1 1 У* С : = 11111 1 1 1 1 1 Уз С : = А а0 «1 #2 аз а4 Уз С : = А (1 : 4) 0 ^2 а.ч «д У1 С : = 1.1 А (1 : 4) 1 “1 в» Уз С : = А (0).0000 а0 0 0 0 0 используется слово А (0 : 4) = а0а1а2а3а4. Следуя методике, опи- санной в п. 8.1, функция формирователя представлена в форме табл. 8.2. Значения переменных с0, ..., с4 —разрядов слова С — определены исходя из содержания микроопераций ylt ..., у6. Так, микрооперация установки уг порождает значение С = 00001, поэтому разряды с0, ..., с4 слова С должны быть равны с0 = 0; с4 = 0; са = 0; с3 = 0; с4 = 1. Аналогичным образом определены значения с0, ..., с4, формируемые остальными микрооперациями. Применяя (8.9) к табл. 8.3, получаем следующую систему булевых Функций: со — У1 V УЛ \/ У1 V УЛ* q = уа V Уз V Уд V ул V ул V у7«ь = Ук V у* V ул V ул V ул Сз = Уг\/ УзУ УьУ У5«з V УЛ V УЛ ct = yi\/ Уз V Уд V УЛ V УЛ V УЛ- 239
Эти функции построены с учетом следующих соотношений булевой алгебры: уД = yt\ X \J у fl = X. Минимизируя эту систему функций, получаем: zi = у3 V «/4; z2 = Уз V Уъ со — Уь\/у-1\/ (у6 V Уз) а»-, с1 = Уз\/ Zi V V Z/7«i; с2 = Zi. V z2a2 V г/,а2; (8.10) С3 -"ft V г1 V г2а3 V У1а3> Ct = У1 V г1 V Z2«4 V УЛ’ гдег^ z2—вспомогательные переменные. Функциям (8.10) соответст- вует комбинационная схема рис. 8.5 с ценой по Квайну 46 единиц и задержкой сигналов 4т. При этом цена инверсного входа полагалась равной двум и задержка сигнала на инверсном входе — равной т. Сдвигатели. Сдвигатели служат для выполнения микроопера- ций сдвига. Типичный набор микроопераций, реализуемых сдви- гателем, приведен в табл. 8.4. В данном примере сдвигатель реализует микрооперации сдвига над словом А (0 : 4) = а^а^аза^ с целью вычисления слова С (0 : 4) = Значения пере- менных с0, ..., с4 определены в соответствующих столбцах табл. 8.4 исходя из содержания микроопераций уе, ..., у12. Из табл. 8.4 следует, что сдвигатель должен реализовать следующую систему булевых функций: со — Уюа1 V УгЛ V У12,аъ ci ~ Уза!—1 V f/ioa/+i V Упа/—1 V У12а/+1< I — 1,2, 3; = УЛ V упа3 \/ у12а0, которой соответствует минимальная форма zj = Уз V f/п; Z2 = l/Ю V Z/l’i cu = ZM^ V У\.Л (8.11) Cj = z1a/_1 V z2a/+i, /=1,2, 3; Q — Zi<23 V i/iaOo, Таблица 8.4 Функция сдвигателя Управ- ляющий сигнал Микрооперация Выходные переменные Со С1 с, Сз С* Уз С : = R1 (0.Л) 0 йо а1 0-2 ая У io С : = L1 (Л.0) а1 0-2 ^3 Ц4 0 Уп С : = R1 (Л (4).Л) «4 «1 «2 Оз У12 С : = L1 (А.А (0)) а1 0-2 аз Ц4 а» 240
где zlt z2— вспомогательные переменные. По функциям (8.11) построена комбинационная схема (рис. 8.6) с ценой по Квайну 34 единицы и быстродействием Зт, причем задержка, отсчитываемая от момента поступления на вход схемы значения А, составляет 2т. 8.3. Комбинационные сумматоры Комбинационный сумматор — это операционный элемент, реализующий микрооперацию сложения С : = А + В. Обычно слагаемые А, В и результат С представляются словами с одинако- вым числом разрядов п и функция сумматора определяется в 241
следующем виде: q-C = А + В + Р, где q и р — одноразрядные переменные, соответствующие переносу из старшего разряда в младший разряд сумматора. Сумматор с последовательным переносом. Сложение двух «-разрядных чисел А = ... ап и В = fej ... bn с целью опре- деления значения суммы С = ... сп в соответствии с правилами двоичной арифметики сводится к вычислению поразрядных сумм qfit = at -f- bt + pi, i == n, n — 1,..., 1, (8.12) Табл ица 8.5 Функция одноразрядного двоичного сумматора Входы pab Выходы qc ООО 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 где q^i — двухразрядное двоичное число; qt — перенос, выраба- тываемый в разряде i и поступающий в следующий разряд (t — 1); pi — перенос из предыдущего млад- шего разряда (pz = qi+1, рп = р). Элемент, реализующий функцию (8.12), называется одноразрядным двоичным сумматором. Схема одно- разрядного двоичного сумматора син- тезируется следующим образом. Функция (8.12) сумматора предста- вляется в табличной форме (табл. 8.5), которой соответствует следующая система булевых функций: q = pab V pab \/ pab \/ pab', ) с = pab V pab V pab \/pab. \ Минимальная дизъюнктивная форма функций q = ab V pa \/ pb' __ 1 (8 13) c = pab V pab V pab V Pa^- / Этим функциям соответствует двухуровневая комбинационная схема с ценой 25 единиц и временем задержки 2т. Цену сумматора можно снизить, если систему функций (8.13) представить в скобоч- ной форме. При использовании булевого базиса минимальная цена схемы достигается, если значение суммы с представить в виде функции с = X (р, a, b, q), которая строится следующим образом. Из табл. 8.5 видно, что с = q на всех наборах pab, кроме двух: ООО и 111. Поэтому значение с целесообразно определять как инверсию значения q, поскольку последнее, как видно из (8.13). вычисляется довольно просто. Поскольку с на наборе ООО должно иметь значение 0, то функцию % необходимо представить в следу*0' щем виде: с = q (р V а V Ь)... Дизъюнктивный терм (р \/ а V W принимает значение 1 на всех наборах, кроме ООО. Поэтому Ук^' занная функция будет иметь значения 1 на наборах 001, 010 и 100- Из табл. 8.5 видно, что переменная с имеет значение 1 на набор6 242
Ill которому соответствует конституента единицы pab. С учетом эТОго окончательно имеем: q = ab V Р (а V Ь); 1 с = (р V а V b) V РаЬ> По выражениям (8.14) построена схема (рис. 8.7, а) с ценой 17 единиц и временем задержки сигнала переноса 2т (цепь переноса выделена штриховой линией). В 114, 351 приведено большое число вариантов построения одноразрядных сумматоров. Так, при Рис. 8.7. Одноразрядные двоичные сумматоры использовании элементов И—НЕ схеме (рис. 8.7, б), реализующей сумматор обычно строится по следующую систему функций: = air, z2 = zL\/ ab- c = z2p\/ z2p; q = zL V ab. В этом случае разряды а и b слагаемых представляются в пара- фазном коде парами сигналов а, а и Ь, Ь. Цена такого сумматора по Квайну составляет 20 единиц и задержка переноса — 2т. Одноразрядный двоичный сумматор на функциональных схемах обозначается, как показано на рис. 8.8, а, а на структурных схемах, как показано на рис. 8.8, б. Комбинационный «-разрядный сумматор строится из однораз- рядных сумматоров по схеме (рис. 8.9), где q, р — переменные, представляющие значения переноса из старшего в младший разряд сумматора. В этом сумматоре сигналы переноса распространяются последовательно от младшего разряда до старшего, в связи с чем сумматор называется сумматором с последовательным переносом. Длительность сложения в таком сумматоре определяется суммой 243
времени распространения переноса через п разрядов и временя формирования значения суммы по окончании выработки переносов тсл = + тс. (8.15) где L — максимальная длина переноса, определяемая предельным числом соседних разрядов, через которые проходит перенос; тп — задержка переноса в одном разряде сумматора; тс — время Рис. 8.8. Обозначение одноразрядных двоичных сум- маторов на функциональных (а) и структурных (б) схемах выработки суммы. Для схемы на рис. 8.7, а тп = 2т и тс = Зт. В сумматоре с последовательным переносом (рис. 8.9) максималь- ная длина переноса L = п. Поскольку фактическая длина пере- носа в схеме на рис. 8.9 не определяется, для сложения должен выделяться промежуток времени, равный максимальному значе- нию тс — лтп + тс. При п = 30 и т = 20 нс время сложения в по- Рис. 8.9. Комбинационный сумматор с последовательным переносом следователыюм сумматоре будет составлять тсл = 32 X 40 + 4~ 60 = 1340 нс = 1,34 мкс. Асинхронный сумматор. Случай сложения с наличием перено- сов между всеми разрядами сумматора крайне маловероятен. В [3, 12] доказано, что средняя длина самого длинного переноса, охватывающего группу соседних разрядов, не превышает Аср = log2 п. При этом предполагается, что слагаемые А и В распре- делены равномерно в диапазоне значений [0, 2п — 1 ]. Так, в 32- разрядном сумматоре переносы проходят в среднем через Lcp 244
Рис. 8.10. Ждущая вершина, реагиру- ющая на сигнал с асинхронного сум- матора _ ]og2 32 = 5 двоичных разрядов. Если в сумматор встроить хему, определяющую момент окончания сложения, то длитель- сть 'такта сложения уменьшается в n/log2 п раз (при п = 32 — ппимерно в 6 раз). Сумматор, в котором вырабатывается сигнал об окончании сложения, называется асинхронным сумматором. При использовании асинхронного сумматора в микропрограмме после каждой микрооперации сложения должна стоять условная вершина (рис. 8.10), обеспечивающая задержку процесса вычисле- ний Д° поступления сигнала Z = 1, отмечающего момент оконча- ния сложения в сумматоре. Такая условная вершина называется ждущей. Определим способ выработки сигнала Z, отмечающего момент окончания сложения. Сложение заканчивается, если в каждом из п разрядов сумматора закончена выработка пере- носов. Поэтому сигнал Z должен определяться как конъюнкция Z = zrz2 ... zn сигналов zlt z2, .... zn, отмечающих момент окончания вы- работки переносов в разрядах 1, 2, ..., п. Сиг- нал Z; должен принять значение 1, если в раз- ряде i выработан сигнал переноса 1 или опре- делено, что переноса не будет. Сигнал пере- носа на выходе одноразрядного сумматора, как и ранее, обозначим символом q, а сигнал об отсутствии переноса — символом г. Аналогич- но, сигнал переноса и сигнал об отсутствии переноса на входе сумматора обозначим символами р и s. В соответстви с (8.14) значение переноса определяется функцией q = ab у р(а V b). (8.16) Обратим внимание, что сигнал q принимает значение 1 в следующих двух случаях: при а = 1 и Ь = 1 в момент поступления значений слагаемых; при а — 1, b = 0 или а = 0, b = 1 только после того, как на вход сумматора поступит перенос из следующего младшего разряда р = 1. Таким образом, сигнал q = 1 отмечает момент выработки переноса в разряде сумматора. Сигнал об отсутствии переноса определяется выражением г = q = ab V р (а V b) = ab \/ р (a \/Ь). Значение р представляется сигналом s об отсутствии переноса на ВХоДе сумматора, поэтому г = ab \/ s(a \Jb). (8.17) Сигнал г принимает значение 1, если разряды а, b слагаемых ^повременно равны нулю. Если а — 0, b = 1 или а = 1, b = 0, па-'СПГНаЛ Г пРимет значение 1 только тогда, когда на вход одно- зрядного сумматора из следующего младшего разряда поступит 245
Сигнал об отсутствии переноса® = 1. Таким образом, сигнал г = | отмечает, что перепое в данном разряде не будет выработан. Этот сигнал при а — b = 0 формируется в момент поступления слагае- мых, а в противном слу- чае — с задержкой, оп- ределяемой временем распространения сигна- ла s через группу млад- ших разрядов сумма- тора. Выражения (8.16), (8.17) и (8.14) приводят к схеме одноразрядного асинхронного суммато- ра, изображенной на рис. 8.11. Асинхронный п-раз- рядный сумматор стро- ится как композиция од- норазрядных асинхрон- ных сумматоров по схе- ме на рис. 8.12. Сигна- Рис. 8.11. Одноразрядный асинхронный сумма- лы переноса 7n, qn_i, .... тор 71 и отсутствия пере- носа гп, гп_ъ .... Гх вы- рабатываются независимыми подсхемами (рис. 8.11) и распрост- раняются последовательно через разряды сумматора с задерж- кой тп = 2т на одном разряде. Сигналы zz = 7, V г(- отмечают момент'окончания обработки переносов в разрядах i = 1, •••’ п и сигнал Z — момент окончания сложения. Сумматор с параллельным переносом. Время сложения буде минимально, если значение переноса в каждом разряде форми- ровать по значениям всех младших разрядов слагаемых, т. е- 246
л з использования переноса из младшего разряда. Сумматор, котором значения переносов формируются только по значениям младших разрядов слагаемых, называется сумматором с парал- лельным переносом. Такой сумматор строится следующим образом, функцию (8.16) можно представить в виде 7< = «, V 7,-+iPn (8.18) где^-, qi+i — перенос из разрядов i, i + 1 (qn+1 = р); az = — условие возникновения переноса в разряде i; = at \j bt — условие прохождения переноса qi+1 через разряд i. Основываясь на (8.18) и (8.14), функция «-разрядного сумматора описывается в следующем виде: Чп+1 = Р' 7« = an V <7„+1Р„; qn^.i = an—i V<7„P„_i: qi = ai V 72P1; Здесь значения qit ct определяются последовательно от младших разрядов к старшим, как в сумматоре с последовательным пере- носом. Подставляя функцию qn в qn_lt затем вновь образованную функцию qn_r в qn_2 и т. д., получаем следующее представление функции сумматора: qn = ап V Р$п, Рп-1 = V (% V рР„) Р„-! = = «„_! VanPn_i Х/рРД-ь 7,1-2 — а„-2 V (ап-1 V “Л-1 V = = “„-2 V ,_2 V аД-А-2 V рРЛ-А_2; <8' 19> 7» — аг V V азРаР1 V • • • V Vа РП_1Р„_2...Р1\/РРД_1 •••₽!; С. = 7£(Р,У ql+i) V«a+i, » = 1.....Il- Функции (8.19) порождают схему формирования переносов в сумматоре с п = 4 разрядами, приведенную на рис. 8.13. Штрихо- выми линиями выделены подсхемы, относящиеся к разрядам 1—4 сумматора. Как видно из рис. 8.13, сигналы переноса во всех Разрядах формируются параллельно с задержкой тп = Зт от мо- мента поступления слагаемых А, В и переноса/? в младший разряд 247
Рис. 8.13. Формирование переносов в 4-разряд- ном параллельном сумматоре 248
ммы. В соответствии с (8.19) значения разрядов суммы с,- вы- числяются с задержкой Зт от момента выработки значений пере- носов <71, •••, <7л- Таким образом, сумма q.C — А + В + р вы- числяется на сумматоре за время тсл = 6т, которое не зависит от числа разрядов п. Сложность схемы //-разрядного сумматора с параллельным переносом оценивается следующим образом. Пронумеруем раз- ряды сумматора от младшего к старшему, так что 1 и п — номера младшего и старшего разряда соответственно. В таком случае цена по Квайну схемы переноса в разряде i = 1, .... п равна 5; = 4 + (<+l)+f (/+l) = 4+(i+l) + 4£I’(t' + 3)’ /=1 i=i где первое слагаемое определяет цену подсхемы формирования значений ait р,; второе слагаемое — цену элемента ИЛИ, на вы- ходе которого определено значение qp, третье слагаемое — цену i элементов И, выходы которых подключены к входам элемента ИЛИ. Цена схемы переносов в «-разрядном сумматоре п п ] п S='£sl = 4n+ (i+l) + ~ S»'(» + 3) = 1=1 1=1 1=1 = ~(пя + 9«2 + 38«). • Отсюда видно, что затраты оборудования на выработку пере- носов возрастают пропорционально кубу длины сумматора п и при больших значениях п оказываются очень значительными: при п = 16 цена сумматора составляет 1168 единиц, а при п — = 32 — 7200 единиц оборудования по Квайну. Сумматоры с параллельно-последовательным переносом. Сум- маторы с последовательным и параллельным переносом обладают диаметрально противоположными характеристиками: организа- ция переносов по последовательной схеме приводит к минимуму затрат оборудования при максимальных затратах времени на сложение, а схема параллельной выработки переносов позволяет минимизировать затраты времени за счет больших затрат оборудо- вания. Промежуточные значения характеристик сумматоров — Достаточно высокое быстродействие при умеренных затратах оборудования — обеспечиваются за счет параллельно-последова- тельной выработки переносов. При этом «-разрядный сумматор Разделяется на k = п/т частей — m-разрядных сумматоров с па- раллельным переносом (рис. 8.14). Переносы в сумматорах CMlt > CMk вырабатываются параллельно, и перенос, поступающий на вход/«-разрядного сумматора, передается через сумматор с за- держкой тп = 2т (рис. 8.13). Поэтому максимальная длина пере- носа составляет L = k и время сложения — тсл = /етп + тс, где с время выработки суммы, исчисляемое от момента окончания 249
выработки переносов. Таким образом, принцип параллельно- последовательной выработки переноса позволяет уменьшить за- траты времени на формирование переносов в tn раз по сравнению с последовательным способом организации переносов. При этом затраты оборудования увеличиваются в (т2 + 9т + 38)/48 раз. Так, при т = 4 время сложения уменьшается в 4 раза, а затраты оборудования увеличиваются примерно в 2,9 раза. Рис. 8.14. Последовательно-параллельный сумматор Выполнение операции сложения «-разрядных двоичных чисел с помощью ft-разрядных сумматоров равносильно переходу к 2т-ичной системе счисления, в которой каждая из ft цифр числа представляется m-разрядным двоичным кодом. При этом каждый сумматор с параллельным переносом обеспечивает сложение двух 2т-ичных цифр и формирует перенос в следующий разряд 2т-ич- ного сумматора. Кроме перечисленных способов ускорения сложения, суще- ствует большое число других способов, которые подробно рас- смотрены в [35, 75]. 8.4. Комбинационные счетчики Комбинационный счетчик — это операционный элемент, реали- зующий микрооперацию счета С: — А + 1 или С: = А — 1 или обе указанные микрооперации. Счетчик, реализующий микро- операцию С: — А + 1, называется суммирующим, микроопера- цию С: = А — 1 — вычитающим и обе микрооперации — ре- версивным. Суммирующий счетчик. Микрооперация счета С: = А + 1» где А — аг ... ап и С = щ ... сп — «-разрядные двоичные числа, в соответствии с правилами двоичной арифметики выполняется следующим образом: = °, + Pz, i =1,...,«, (8-2°) где а;, сг — i-e разряды чисел А и С; ph р^г — значения пере- носов соответственно в i-й и из i-ro разряда счетчика, причем рп = 1. Таким образом, выполнение микрооперации счета сво- дится к сложению в каждом разряде i = «, « — 1, ..., 1 двоичных 250
ачений a,, Pi с целью вычисления 2-разрядного значения , зновый разряд которого pt_x определяет значение 0 или 1 пере- ча в следующий разряд, а второй разряд с, — значение i-ro разряда результата. в Чтобы построить схему суммирующего счетчика, функция /8 20) представляется в виде табл. 8.6, которая является таблицей истинности функций Pi_lt Ci, зависящих от аргументов a,-, ph Табл. 8.6 соответствуют ющие булевы функции: следу- (8.21) 1. По- Pi-i-aiPp ~а,р: V <W. Ро Рис. 8.15. Суммирующий комбина- ционный счетчик с. где i = «, » — 1, . . . скольку перенос в младший Таблица 8.6 Функция одноразрядного суммирующего счетчика aipi Pi-lci 0 0 0 1 1 0 1 1 0 0 0 1 0 1 1 0 разряд рп — 1, функции (8.21) для младшего разряда i = п имеют следующий вид: р , = о ; с = а . (8.22) Г п—1 П П П v 7 По выражениям (8.21), (8.22) построена схема 4-разрядного счетчика, приведенная на рис. 8.15. Сигнал переноса р3, формиру- емый в младшем разряде счетчика, распространяется по цепи переносов, состоящей из последовательно включенных элемен- тов ИЗ, И2, И1. Перенос р0 из старшего разряда счетчика можно Рассматривать как значение старшего разряда слова С и микро- операцию счета представлять в следующем виде: р0.С: = А + 1, гДе р0.с — составное слово. Длительность микрооперации счета, отсчитываемая от момента поступления на вход счетчика слова А, определяется временем формирования значений переносов, кото- рое не превышает (п — 1) т, и временем формирования значения С, составляющим 2т от момента окончания выработки переносов. 251
Поэтому длительность микрооперации счета тсч = (п —1) т + т = пх и увеличивается с увеличением длины счетчика. Вычитающий счетчик. Счетчик, реализующий микрооперацию С: — А — 1, синтезируется аналогично суммирующему счетчику. В соответствии с правилами двоичной арифметики выполнение микрооперации С: = А — 1 где C=cj ... сп и A=at ... an~L /i-разрядные двоичные числа, сводится к последовательности действий следующего вида: = 1(8-23) I = II, п — 1,. . ., 1. j v > Рис. 8.16. Вычитающий комбина- ционный счетчик Здесь 7; — заем из i-ro разря- да; g,.! — заем из следующего Таблица 8.7 Функция одноразрядного вычитающего счетчика ai4i 4i-ici 0 0 1 1 0 0 1 0 1 0 1 1 0 0 0 (i — 1)-го разряда. Функция (8.23) реализуется t-м разрядом счетчика, который по значениям a,, qt вычисляет значение за- ема из следующего разряда и значение разряда с,- выход- ного слова. Таблица истинности, соответствующая функции (8.23), представлена в табл. 8.7, по которой определяются булевы функ- ции, реализуемые одноразрядным вычитающим счетчиком: <?;_! = a.qr _ _ | (8.24) ct = afli V V J где i — it, n — 1, .... 1. Поскольку заем qn из младшего разряда п всегда равен 1, функция (8.24) для i = п принимает следующий вид: q — а ; с —a —q (8.25) Функции (8.24), (8.25) являются минимальными и для случая п = 4 порождают схему счетчика, приведенную на рис. 8.16. Сиг- нал у0 представляет значение заема, формируемого в старшеМ разряде счетчика. Передача заемов между разрядами счетчика организуется по цепи, состоящей из элементов ИЗ, И2, И1. Быстро" 252
йствие счетчика (рис. 8.16) совпадает с быстродействием сум- миоующего счетчика (рис. 8.15). реверсивный счетчик. Реверсивный счетчик реализует микро- операции С: = А + 1 и С: = А — 1, инициируемые управля- ющими сигналами z/j и у2 соответственно. Функция i-ro разряда счетчика при выполнении микро- операции ух находится по табл. 8.6 и (8.21), а при выполнении ми- крооперации у2 — по табл. 8.7 и (8 24). Булевы выражения, опре- деляющие функцию i-го разряда реверсивного счетчика, можно сконструировать следующим обра- зом. Из табл. 8.6, 8.7 следует, что значения переносов и заемов описываются выражениями Уп — У1> Рп = У'2' A Zj “J a,t Z4 у,- Уг~ Pt Ч, -----Cj — ------<7 Рис. 8.17. Реверсивный комбина- ционный счетчик . ------------------------ (8.26) (8.27) 1, если перенос разряда. z0 Р{—1 ~ aiPf, ‘fi-l ~~ aiPi i = П,. . 1. Из (8.21), (8.24) видно, что зна- чения Ci определяются одинако- выми по форме выражениями. Поэтому можно ввести вспомога- тельную переменную Zi = Pt V Уь принимающую значение в разряде i поступает или заем из младшего Микрооперации у±, у2 несовмести- мы, поэтому при выполнении ми- крооперации уг : С : = А 4- 1 уп- равляющий сигнал у2 = 0 и зна- чения ^,=0; Zi=Pi- Аналогично, при выполнении микрооперации у2 сигнал z/!=0 и значения р;=0; С учетом этого выражение Ci — aLZi \/ aiZi (8.28) эквивалентно соответствующим выражениям в (8.21), (8.24). Для младшего разряда i = п в соответствии с (8.26) zn — yt V V у2 и в момент выполнения микрооперации счета zn = 1. По- этому выражение (8.28) упрощается до с„ = а„. (8.29) По выражениям (8.26)—(8.29) построена схема 4-разрядного реверсивного счетчика (рис. 8.17). Задержка сигнала переноса 253 : C: = A — 1 управляющий
(заема) в одном разряде равна задержке сигнала на одном эле- менте т, поэтому время формирования переносов в «-разрядном счетчике составляет пх. Значение с, вырабатывается по окончании формирования переноса (заема) с задержкой Зт. Поскольку вы- работка сигнала переноса гп перекрывается во времени с формиро. ванием значения clt длительность микрооперации счета составляет тсч == (и — 1) т + Зт = (п + 2) т. Для повышения быстродействия счетчиков используются такие же способы, как и для сумматоров: параллельная и параллельно- последовательная организация переносов. 8.5. Вычисление значений логических условий Значение логического условия <р, (sa, ..., sm), где <р/ — булева функция; sa, ..., sw — слова, поля или разряды слов, вычисляется комбинационной схемой, на вход которой поступают сигналы, представляющие значения разрядов слов sa, ..., sQ, а на выходе Рис. 8.18. Вычисление значений ло- гических условий должна принимать значение 1. формируется осведомительный си- гнал xt. Наиболее часто логиче- ские условия имеют следующий вид: А * К, А * В, где А, В — «-разрядные слова; К — констан- та; * — операция отношения =, =h, <, >, > или С. Схемы, вы- числяющие значения таких логи- ческих условий, синтезируются следующим образом. Схемы сравнения слов с кон- стантами. Пусть А = at ... ап — «-разрядное слово и K=kY ... kn — константа. Функция схемы, вы- числяющей значение xL логиче- ского условия А — К, синтези- руется следующим образом. Кон- станта К Определяет единствен- ный двоичный набор, на кото- ром функция X/ = ф, (аь .. ., ап) Поэтому функция ф/ должна пред- ставляться конституентной единицы (8.30) (8.31) XI ’ Фг» где а — I а<> еели = О’ ( а,-, если kt = 1. Например, логическим условиям хх : = (А = 0); х2 : = (А = = 1010); х3 : = (А=1111), где Д= aL ... ait соответствуют следующие булевы функции: хх = а1а2а3а4; х2 = щагазЩ; х3 = 01020304, 254
на основе которых построена схема (рис. 8.18), формирующая частности значения осведомительных сигналов хп х2, х3. В этой схеме слово А снимается с выходов 4-разрядного регистра А. Логическому условию A =р К соответствует булева функция, принимающая значение xz = 0 на двоичном наборе Д = kY ... kn и значение xz — 1 на всех остальных наборах. Такая функция должна содержать единственную конституенту нуля, соответству- ющую набору К, x^aiV^V ..«Van, (8.32) где ~ | аь если /?г = 0; at= - , , ( at, если kL = 1. Рис. 8.19. Булева функция, со- ответствующая логическому ус- ловию <3 1010 Например, логическим условиям х4 : = И =£ 0) и х5 : = (Д + 1100) соответствуют следующие булевы функции: Х4 = V «2 V а3 V aV х5 = V a2 V йз V a4. Логическому условию А < К, принимающему значение X/= 1, если А < К., и значение X/ = 0, если ., а„), принимающая значение 1 на каж- Д и значение 0 на всех остальных наборах Эту функцию можно представить дизъ- единицы, соответствующих наборам 0, A > К, соответствует бу- лева функция <рг (аь . дом из наборов 0, 1, ... Д, К + 1, .... 2"— 1. юнкцией конституент 1....Д- 1: К-1----- *z= V (aiOa-.-ank, А=0 (8.33) где буквы а,- определяются (8.31). Например, логическому усло- вию хв : = (Д <1010), где А = ... а4, соответствует булева функция, представленная на рис. 8.19 в виде карты Карно. Мини- мальная форма этой функции — хе = at V а2а3, которая реали- зуется на рис. 8.18 подсхемой, выделенной штриховыми линиями. Аналогичным образом синтезируются схемы, вычисляющие логи- ческие условия вида А < К.', А > Д; А > К- Схемы сравнения на равенство. Логическое условие А = В, где А — а1 ... ап; В = Ьг ... Ьп — «-разрядные слова, вычисляется комбинационной схемой, называемой схемой сравнения (на ра- венство). Схема сравнения синтезируется следующим образом. Значения Д и В равны, если одновременно равны их одноименные Разряды ait bh i = 1, .... п. Из таблицы истинности (табл. 8.8), 255
Таблица 8.8 Значение признака равенства Г/ и неравенства переменных а,-, 6, aibi rl «1 0 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 где г, — признак равенства значе- ний at и bi следует, что rh опреде- ляется следующей булевой функ- цией: г, = atb, V a,bi, i = 1,..., п. (8.34) Признак равенства двух «-разряд- ных слов вычисляется как конъ- юнкция /? = г1г3...г„. (8.35) По выражениям (8.34), (8.35) построена схема сравнения 3-раз- рядных слов А и В (рис. 8.20). Если значения слов представляются в парафазном коде, цена «-разрядной схемы сравнения составляет 7« единиц по Квайну. Время сравнения, определяемое проме- жутком от момента поступления слов А, В до момента выра- ботки значения осведомительного сигнала R, составляет тср=3т, где т — задержка сигнала на одном логическом элементе. Схема, вычисляющая зна- чение логического условия А В, строится аналогич- ным образом. Из табл. 8.8 следует, что значение приз- нака неравенства одно- именных разрядов alt bt слов А, В определяется булевой функцией qi^aibiX/afii, i =!,...,«. (8.36) Слова А и В не равны, если хотя бы в одном разряде qt— = 1. Следовательно, признак неравенства двух «-разряд- ных слов Q = (8-37) Рис. 8.20. Сравнение слов А и В на ра- венство Функции (8.36), (8.37) определяют структуру схемы отрицания неравнозначности, сигнал Q на выходе которой представляет значение логического условия А £ В. Схемы сравнения на больше—меньше. Вычисление значения логического условия А > В, где А = аг ... ап и В = ... Ьп «-разрядные слова, называется сравнением слов на больше — меньше. Значение отношения А > В можно вычислять с помощью сумматора путем определения знака разности В — А = В + 256
4- 1, где (“И + 1) — дополнительный код значения А, используемый для замены операции вычитания на сло'жёние. В соответствии с правилами машинной арифметики [43] разность (g __ Д) < 0, если перенос из старшего разряда суммы В 4- ~И 4* 1 отсутствует, и разность (В — Л) > 0, если формируется пере- нос из старшего разряда суммы. Следовательно, отсутствие пере- носа свидетельствует об истинности отношения А > В, а наличие переноса — о ложности этого отношения. Если для вычисления Рис. 8.21. Сравнение слов на больше—меньше отношения А > В должна использоваться специальная схема (нет необходимости в использовании сумматора), то для сравнения на больше — меньше используется п подсхем формирования переносов, выделенных на рис. 8.7 штрихпунктирной линией. Такие подсхемы П объединяются в схему сравнения на больше — меньше в соответствии с рис. 8.21. На вход схемы подается обрат- ный код акаг ... а„ слова А и прямой код ... Ьп слова В. Для получения дополнительного кода перенос в младший разряд pn = 1. Перенос из старшего разряда qt определяет значение отношений А > В: если qv = 0, то А > В, т. е. отношение истинно; если qt = 1, то А < В, т. е. отношение ложно. Из рис. 8.7 видно, что цена одной схемы П составляет 8 единиц по Квайну и за- держка сигнала переноса pt — 2т. Следовательно, цена схемы сравнения n-разрядных слов равна 8п единиц и время сравне- ния — тср = 2мт 4- т = (2n -f- 1) т. 8-6. Дешифраторы, шифраторы и преобразователи кодов В операционных устройствах могут использоваться схемы, обеспечивающие перекодирование значений. Так, наряду с тра- диционными позиционными кодами ... ап, определяющими значение г = а12'*-1 4- а.>2"-2 4- ... 4-+ ап29, исполь- зуются унитарный и другие специальные коды. Унитарный код c<fii ... cM_t состоит из М двоичных переменных, из которых в каждый момент времени только одна переменная сг — 1, а осталь- ные св, ..., сг_!, сг+1, .... См-i = 0. Унитарный код, в ко- тором сг = 1, определяет значение г = 0, 1, ..., М — 1. Для преобразования кодов используются следующие операционные элементы: дешифраторы, шифраторы и преобразователи кодой, С. А. Майоров, Г. И. Новаков 257
Дешифраторы. Дешифратор — это операционный элемент ком- бинационного типа, преобразующий «-разрядный двоичный позц. циопный код в 2г‘-разрядный унитарный код. Функция «-разряд- ного дешифратора двоичного кода А = ах ... а„ представлена в табл. 8.9. Каждому значению 0, 1, ... 2" — 1 кода ... ап соответствует зна- чение Cq К Cj 1, ..., Cg/i________________________j == 1 уни- тарного кода, причем если ct= 1, то остальные значения с, = 0, j I. Функ- ция дешифратора в булевой форме описывается системой булевых выра- жений следующего вида: с, = й1о!...ол, 1 = 0, l,,..,2n —1, (8.38) где буквы а, определяются в соответст- вии с (8.31). Каждая функция (8.38) содержит единственную конституенту единицы, соответствующую двоичному набору, на котором с, = 1. Например, 4-разрядный дешифратор, преобразу- Рис. 8.22. Одноступенча- тый 4-разрядный дешиф- ратор Таблица 8.9 Функция дешифратора “Л ап-1ап 0 0. ..00 с1) 0 0. ..01 С1 0 0. ..10 С2 0 0. ..11 сз 1 1. ..10 сгп-2 1 1. ..11 С2П-1 ющий код А = аг .. . :4 в 16-разрядный унитарный Со ••• Сю, реализует следующие функции: с0 = aia2a3O4; с4 = с* — aia2a&4\ с42 — ащсме, Ci = aia2a3a4-, с$ = aia2a3a4-, с9 — а4а2аза4-, = aia2a3a4-, с2 = aia2a3a4-, сЁ — а^аусц’, сю — aia2asa4; с44 = aia2a3a4-, с3 — а\а2аза4-, с2 — сц — а4а2аза4; Сю = а4а2а^а4, по которым построена схема на рис. 8.22, состоящая из довых элементов И. 258 код С =s (8.39) 16 4-вхо-
Дешифратор, реализующий функции (8.38) посредством 2" „-входовых элементов И, называется одноступенчатым. Время дешифрирования кода в одноступенчатом дешифраторе равно ч и затраты оборудования составляют = м2" (8.40) единиц по Квайну. Величины затрат оборудования при различ- ных п приведены в табл. 8.10. функции (8.39) содержат общие термы. Так, терм исполь- зуется в функциях с0, съ с2, с3, а терм а3а4 — в функциях с0, с4, Таблица 8.10 Затраты оборудования в дешифраторах (в единицах по Квайну) Число разрядов п Число выходов М Количество ступеней 1 2 3 2 4 8 3 8 24 — 4 16 64 48 — 5 32 160 96 — 6 64 384 176 — 7 128 896 344 328 8 256 2048 640 608 9 512 4608 1248 1168 10 1024 10240 2368 2240 с8, с12. Поэтому для уменьшения затрат оборудования в дешифра- торе необходимо произвести декомпозицию функций (8.39), а для общего случая — декомпозицию функций (8.38). Декомпозицию можно выполнить следующим образом. Каждую функцию с( = = «1Я2 ... ап, где а, — буква а, или alt можно представить в виде конъюнкции двух термов с( = (а~а2.. .ak) (ак+1ак+2.. .а„), (8.41) где k делит код at ... ап на две примерно равные части: k = п!2 — при четном п и k = (п + 1)/2 — при нечетном п. Основываясь на (8-41), значения с, вычисляются в следующем виде: ct = gihm, где gi = ata2 ... ак и hm = a*+ia*+2 ••• ап — конъюнктивные термы. За счет того, что значения термов gt, hm используются в разных функциях с,, и достигается экономия оборудования. Например, дешифрирование 4-разрядного кода А — ука- занным способом производится следующим образом. Код А раз- 9* 259
деляется на две части /11 — ata2, А2 = а3а4, которым соответ- ствуют термы: go = 01021 gl = «1021 g2 = 01021 gs — а1а21 h0 = o3o4; hi — O3O4; . - (8-42) ft2 = Азщ; Л3 = С использованием термов gh hm функции (8.39) представляются так: С0 ~ g(/ll>i Ci = gl^Ol CS ~ g-J^Oi c12 = Ci = gjh; c6 = g^i, cB = ga/if, c13 = g3h4‘ c2— gohi'i ce = g4h2, clu = g2h2\ Си = g3h2, C3 = &Лз1 C7 == gl^S’ £11 — gz^A £15 == gJh- По функциям (8.42), (8.43) построена схема дешифратора, при- веденная на рис. 8.23. Данная комбинационная схема является двухступенчатой. Первая ступень состоит из элементов И1 — И9, а вторая — из элементов И9 — И24. В связи с этим дешифратор н аз ы ваетс я двухст у пен чатым. Задержка сигналов в двухступенчатом дешифраторе равна 2т и характеризует быстродействие дешифратора. Затраты обору- дования в дешифраторе .$2 = Si + S2, где 52 — затраты оборудо- вания в первой ступени дешифратора, которые равны Л г»л/2 . I ол/2 _ -п-2 + “о“ 2 = п2 при четном п, S1 4Ь £. 2 = 1 t 1 . П + 1 n(n-H)/2 . П— 1 о(л—1)/2 ~ -- 2 2 Н---------2— 2 при нечетном и, Зг — затраты оборудования во второй ступени дешифратора, составляющие S? = 2-2” = 2"+1 единиц по Квайну. В табл. 8.10 для различных п приведены значения затрат оборудования в двух- ступенчатом дешифраторе. Из таблицы видно, что использование двухступенчатой схемы дешифрирования приводит к значитель- ной экономии оборудования особенно при больших п. При большей длине термов gz, hm их значения целесообразно вычислять также по многоступенчатой схеме. Такой способ вы- числения значений функций (8.38) приводит к многоступенчатым дешифраторам. При построении многоступенчатого дешифратора «-разрядный код А = а4а2... ап разделяется на две примерно одинаковые части = а4 ... ak и А2 = ak+l ... ап, каждая из которых, в свою очередь, разделяется на две части, и так до тех пор, пока длина части не будет составлять два-три разряда,. Пример разделения 12- и 13-разрядного кода А на части приведен на рис. 8.24. На рис. 8.24, а определена структура трехступен- чатого 12-разрядного дешифратора. Первая ступень состоит из 260
Рис. 8.23. Двухступенчатый 4-разрядный дешифратор а) Рис. 8.24. Структура многоступенчатых дешифраторов 261
3-разрядных дешифраторов DC1 — DC4, на выходе каждого из которых определены значения 8 термов от переменных (а,, аг, а8), (а1в, fin, о,,) соответственно. Следующая ступень дешифри- рования состоит из 128 двухвходовых элементов И, объединенных на рис. 8.24, а в две 64-элементные группы. Третья ступень со- держит 4096 двухвходовых элементов 14, на выходах которых определено значение 4096-разрядного унитарного кода С. Затраты оборудования в данном варианте 12-разрядного дешифратора составляют S3 = 4-8-3 + 2-64-2 + 4096-2 = 8544 единиц по Квайну. Одноступенчатая реализация этого дешифратора потре- бовала бы Sj = 12-212 = 49 152 единицы оборудования. Затраты оборудования в трехступенчатых де- шифраторах приведены в табл. 8.10. Структура четырехступенчатого 13-раз- рядного дешифратора изображена на рис. 8.24, б. Здесь в первой ступени используются 2- и 3-разрядные деши- фраторы DC1 — DC5. Блоки, обозна- ченные & Д', состоят из К двухвходовых элементов И. В некоторых применениях функция дешифратора ограничивается выделе- нием только т < 2Л входных наборов (выходных переменных) из общего чис- ла наборов М — 2п. При этом пред- входных наборов либо не существуют, сигналов на этих наборах безразлично. Рис. 8.25. Обозначение де- шифратора на функциональ- ных схемах полагается, что М — т либо значение выходных Дешифраторы с числом выходов т < 2" называются неполными. Синтез схемы неполных дешифраторов изложен в [46]. На функциональных схемах дешифраторы изображаются в со- ответствии с рис. 8.25. Шифраторы. Шифратор — операционный элемент комбина- ционного типа, предназначенный для преобразования унитарного кода в иной код, например в двоичный позиционный код. Таким образом, шифратор реализует преобразование, обратное функции дешифратора: по сигналу с{ = 1, i = 0, 1, ..., М — 1, иа выходе шифратора генерируется определенный набор а, ... ап — (е, ... £«);. где в, — нуль или единица (см. табл. 8.9). С учетом этого функция шифратора задается в виде табл. 8.11, в которой каждому раз- ряду сг унитарного кода ставится в соответствие «-разрядный набор ех ... еп (в данном случае 16-разрядный унитарный код преобразуется в 4-разрядный двоичный позиционный код аА ... ап)- Функции шифратора в булевой форме строятся по табл. 8.П в следующем виде: а ,= \Jch /= (8.44) е,=1 где а,- — /-й разряд выходного кода А = а, ... ап. Знаком дизъ- юнкции объединяются все переменные eh которым соответствуют 262
наборы ег ... еп со значением е,- — 1 в разряде /. Так, функции шифратора 4-разрядного двоичного кода (табл. 8.11) описываются следующими выражениями: Я4 = Cg V С9 V С10 V Сц V с12 V С13 V с14 V С15> а2 — С4 \/ Са V Св V С7 V С12 \7 С13 V С14 V С1б‘> у ^5. я3 = с2 V сз V ce V с7 V сю V Си V С14 \/ Ci5; Я4 = Cl V Сз V С5 V С7 V С9 V Сц V С13 V с15- Полученным функциям соответствует одноуровневая комбина- ционная схема, изображенная на рис. 8.26. На этом рисунке раз- ряды сх...... с15 унитарного кода С обозначены номерами 1..... 15. Затраты оборудова- ния в шифраторе «-разрядного двоичного кода, построенного Рис. 8.26. Шифратор 4-разрядного двоичного кода Таблица 8.11 Функция шифратора i ata2asa4 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0000 0 0 0 1 0 0 10 0 0 11 0 10 0 0 10 1 0 110 0 111 10 0 0 10 0 1 10 10 10 11 110 0 110 1 1110 1111 по одноуровневой схеме, составляют п2п единиц по Квайну. ремя формирования кода равно т. Затраты оборудования можно уменьшить путем минимизации системы булевых функций (8.44), Для чего используется специальная процедура декомпозиции хем из однотипных элементов [6]. Применение этой проце- дуры к функциям (8.45) приводит к следующей форме предста- вления этих функций: г1 — с1а \/ с13 \/ см у Сц. г2 = с3 у/ с7 V сц у С15; °i = c8 Vc9 VQoVcuVzi; Я2 == С4 \/ С8 Cg \/ С7 Z1J Яз= с2 у/ Cig \/ Гц \/ г2; Я4 = Ci \/ с8 V с» V С13 V ^2> (8.46) 263
где ?j, z2 — вспомогательные переменные. Цена по Квайну схемы, построенной по функциям (8.46), составляет 28 единиц, что на четыре единицы меньше цены одноуровневой схемы (рис. 8.26), построенной по (8.45). Экономия оборудования приводит к умень- шению быстродействия шифра- тора до 2т. На функциональных схемах шифраторы обозначаются в со- ответствии с рис. 8.27. Преобразователи кодов. Пре- образование m-разрядного кода А = at ... ат в n-разрядный код С=с, ... сп, из которых ни один Рис. 8.27. Обозначение шифратора на функциональных схемах Таблица 8.12 Функция преобразования кода Грея Деся- тичное значение Код Грея 01^2^8^4 Двоичный КОД С1С2С8^4 0 0000 0000 1 0001 0001 2 ООН 0010 3 0010 ООП 4 оно 0100 5 0111 0101 6 0101 оно 7 0100 0111 8 1100 1000 9 1101 1001 10 1111 1010 11 1110 юн 12 1010 1100 13 1011 1101 14 1001 1110 15 1000 1111 не является унитарным, выполняется следующим образом. Функ- ция преобразователя описывается в виде таблицы, в которой каж- дому из 2Ш значений кода А ставится в соответствие /г-разрядное значение кода С. Так, в табл. 8.12 определена функция преобра- зователя кода Грея А = аг ... а4 в двоичный код С = q ... с4. В данном случае, поскольку т = п, преобразование кода Л в С можно выполнить на основе традиционного дешифратора и шифра- тора, включаемых по схеме на рис. 8.28. Дешифратор DC исполь- зуется для формирования сигналов Ьо = о1а2а3а4, Ьх = аха2а3а4, Ь16 = а4а2а3а4, представляющих значения конституент еди- ницы, т. е. принимающих значение 1 на наборах 0000, 0001, .... 1111 соответственно. Так, когда на вход дешифратора поступает набор а2а2а3а4 — 1100, представляющий значение 12, на выходе формируется сигнал b12 = 1. Шестнадцать наборов двоичного кода С = qc2c3c4 формируются на выходе шифратора CD. При этом выходные наборы генерируются сигналами bh которые подключаются к входам шифратора в соответствии со зна- чениями наборов ах ... а4 и сг ... с4, указанными в строках табл. 8.11. 264
8.7. Комбинационные схемы на программируемых логических матрицах Одним из наиболее перспективных способов реализации схем ЭВМ является использование технологии больших интегральных схем (БИС), позволяющее существенно повысить надежность, а также уменьшить стоимость, габариты и массу схем. Стоимость БИС в большой, степени зависит от серийности производства, а последняя — от степени универсальности БИС, определяемой мощностью множества функций, которые могут быть реализованы схемой с фиксированной структурой. Для реализации различных систем булевых функций, т. е. для построения различных комбина- ционных схем на основе БИС, используются специальные регуляр- ные структуры — программируемые логические матрицы (ПЛМ). Принцип построения ПЛМ. В основе построения ПЛМ лежит следующий принцип вычисления значений булевых функций. Систему булевых функций (8.1) можно представить в виде табл. 8.13, в первом столбце которой указаны кубы [48], опре- деляющие значения аргументов alt ..., а6, при которых хотя бы одна из функций clt .... с4 имеет значение 1. Значение X, указы- ваемое в кубах, является несущественным, т. е. а, = X означает, что at = 0 или а, = 1. Кубу е4е2 ... ет, где е, С [О, 1, X], соот- ветствует терм г1==~аСа2...ат, (8.47) 265 \
где alt если = 0; at, если e( = 1; пусто, если е, = X. (8.48) Терм Zj принимает значение 1, если переменные ...ат имеют значения elf ет, причем = X означает, что значение терма не зависит от значения переменной е(. Так, кубам, перечисленным в первом столбце табл. 8.13, соответствуют следующие термы: Т а б л и ц а 8.13 Табличное представление системы булевык функций гх = ^2 = Аргументы Кубы (термы) Функции с’1С8г8с4 23 = aiUia3Qici^', z^a^a.^ (8 49) г-, = й1Д2а3о4а5; гв — 27 == 2g = Значения функций ck, k— = 1, ,.п вычисляются как 0 1X11 1 X I 0 X 10 0 10 0 0 1 X X 10 10 1 X 0 0 1 0 0 110 0 0 110 1 г1 г2 г» г4 г5 гв «в 10 10 110 0 0 10 0 0 110 0 0 0 1 10 11 0 10 1 0 10 0 дизъюнкции термов 2/, соот- ветствующих кубам (наборам значений переменных а1к ..., ат), на которых функция ск принимает значение 1, = \Л(з\Л««\/гш== Vs,, k = l,...,n, (8.50) где га, г₽, ..., ги £ {г^ .... Zj}. Так, табл. 8.13 соответствует следующая система булевых функций: Ci = zt V V гв; сг = z2 V 23 V z4 V г7 V ?8; ,а ... , , . , (8.Ы) Сз = 21 V Zi V 26; Ci = Z5 V гв V г7, где термы гь ..., г7 определяются (8.49). Из сказанного следует, что для вычисления значений п булевых функций Cj, .... с„ от т аргументов аъ ..., а,п необходимо рас- полагать: 1) парафазными значениями ah at аргументов; 2) сово- купностью элементов И для вычисления значений термов (8.47); 3) совокупностью элементов ИЛИ для вычисления значений, определяемых выражениями (8.50). Указанные средства объеди- няются в структуру (рис. 8.29), называемую ПЛМ. В простейшем случае ПЛМ состоит из трех частей: 1) буфера Б, формирующего парафазные значения аъ ..., ат, ат входных переменных 266
2) матрицы иначе называемой И-матрицей, на вы- ходе которой формируются значения термов гь г/ 3) матрицы , иначе называемой ИЛИ-матрицей, на выходе которой форми- руются сигналы, представляющие значения выходных перемен- ных clt .... сп. Матрица Мг содержит 2m входных цепей (горизон- тальные линии) и J m-входовых элементов И, каждый из входов которых (вертикальные линии) может соединяться с входной цепью Рис. 8.29. Программируемая логическая матрица в точках, обозначенных крестиком. Аналогично строится ма- трица Л12, в которой крестиками обозначены возможные соедине- ния входных цепей матрицы с входами п J-входовых элементов ИЛИ. Структуру ПЛМ удобно изображать в виде, представленном на рис. 8.00. Здесь горизонтальные линии матрицы соответ- ствуют элементам И, к которым могут подключаться входные цепи аг, alt а5, аь. В матрице М2 горизонтальные линии соот- ветствуют выходам элементов И, а вертикальные линии—эле- ментам ИЛИ, к входам каждого из которых может подключаться любая из цепей гь z8. Соединения между цепями матриц обозначены точками. ПЛМ изготавливаются с полным набором электрических эле- ментов, обеспечивающих однонаправленную передачу сигнала: в матрице Мх — из любой вертикальной цепи в горизонтальную, 267
а в матрице Мг — из любой горизонтальной цепи в вертикаль- ную. Такого рода соединения обеспечиваются за счет диодов или транзисторов. Информация в ПЛМ заносится путем установления соединений между горизонтальными и вертикальными цепями матриц. Этот процесс называется программированием матриц. По способу программирования различают ПЛМ с масочным и электрическим программированием, а также репрограммируемые ПЛМ. В ПЛМ первого типа информация заносится путем под- ключения диодов или транзисторов к цепям матриц, для чего С/ сг Cj Ci, Рис. 8.30. Условное изображение ПЛМ производится металлизация соответствующих участков матриц, выполняемая через маску (шаблон). В ПЛМ с электрическим программированием необходимая информация записывается спе- циальным оборудованием, которое обеспечивает выжигание пере- мычки или установление соединения путем подачи токового им- пульса большой амплитуды (20—200 мА) в соответствующую цепь матрицы. Репрограммируемые ПЛМ позволяют многократно перезаписывать информацию. При этом стирание информации осуществляется, например, ультрафиолетовым облучением, а за- пись — электрическим током на специальном оборудовании. На рис. 8.30 точками обозначены соединения, посредством кото- рых реализуется система булевых функций, приведенная в тйбл. 8.13 и определяемая выражениями (8.51), (8.49). Сопоста- вляя рис. 8.30 и табл. 8.13, можно видеть, что схема соединений легко строится прямо по таблице. Сначала программируется матрица Л1Р При этом термам г1( ..., г8 ставятся в соответствие цепи /, ..., 8. Если координата et куба г, равна 0, то вертикальная цепь а( соединяется с горизонтальной цепью /; если е{ — 1, то соединяются цепи а( и /; если et = X, то соединение цепей ait at и j не производится. Одновременное подключение цепей а,, 268
а к одной и той же цепи / недопустимо. Матрица М2 программи- руется следующим образом. Цепь С] соединяется только с теми цепями 1, .... 8, которым соответствуют термы г1( ..., г8, порожда- ющие единичные значения функции с,-. Такой подход к програм- мированию матриц сводится к простому переносу таблицы истин- ности (табл. 8.13 или 8.1) на матричную структуру (рис. 8.30). Таким образом, ПЛМ представляет собой универсальную структуру, которая путем программирования может быть при- способлена для реализации функций следующего класса. ПЛМ с т входами, J межматричными цепями и п выходами может реа- лизовать любую систему, содержащую не более п функций не более чем от т переменных, если система функций может быть определена не более чем через J различных конъюнктивных термов. Минимизация ПЛМ. Затраты оборудования в ПЛМ принято определять площадью полупроводникового кристалла, занима- емой схемой ПЛМ. Эта площадь (рис. 8.30), примерно равна 2mJ + nJ = J (2т + м), где rnnn — количество входных и вы- ходных переменных, a J — число термов, используемых для пред- ставления системы булевых функций. Следовательно, минимиза- ция затрат оборудования в ПЛМ со структурой, показанной на рис. 8.30, сводится к минимизации числа термов J. Класси- ческие методы минимизации, подробно изложенные в [48], при- водят к функциям, минимальным по Квайну, т. е. содержащим минимальнее число букв и одновременно минимальное число букв плюс число конъюнктивных термов. Поэтому указанные ме- тоды ограниченно пригодны для минимизации затрат оборудова- ния в ПЛМ. В настоящее время для этих целей используются весьма трудоемкие процедуры минимизации булевых функций, которые в общем случае сводятся к следующему. Для системы из п булевых функций от т переменных строятся всевозможные варианты представления булевых функций как прямыми, так и обратными значениями переменных, а также варианты группи- рования переменных. Обычно число таких вариантов т/2—1 К = 2n (zn — 1) П (m-2i-l). (8.52) <=i С использованием классических методов минимизации систс^ булевых функций для каждого варианта находится мини? мальная форма. Среди таким образом полученных форм выделяется та, которая содержит минимальное число термов, и на ее основу строится схема ПЛМ. Таким образом, процесс минимизации ПЛ^ усложняется примерно в К раз по сравнению с минимизацией Функций комбинационных схем с произвольной структурой^ Из (8.52) видно, что с ростом значений т и п число вариантов минимизации быстро возрастает. Так, для минимизации ПЛМ, реализующей четыре функции от десяти переменных, необходимо 269 I
15 120 раз минимизировать эквивалентные системы булевых функций. В связи с этим актуальной является задача разработки более экономичных процедур минимизации систем булевых функ- ций по критерию минимума числа термов. 8.8. Операционные элементы накапливающего типа Структура и функционирование. Операционный элемент на- капливающего типа состоит из регистра, предназначенного для хранения результата микрооперации, и комбинационной схемы, обеспечивающей выполнение заданного набора микроопераций и вычисление значений набора логических условий. Структура операционного элемента изображена на рис. 8.31. Регистр S служит для хранения n-разрядного слова S (1 : п), значение кото- Рис. 8.31. Структура операционного эле- мента накапливающего типа Рис. 8.32. Временная диаграмма операционного элемента накап- ливающего типа рого определено на выходной шине регистра. Для выполнения микроопераций (z/J используется комбинационная схема Ф, на выходе которой формируются сигналы возбуждения, функци- онально зависящие от значений слов Л1( ..., Ak, представляющих аргументы микроопераций. В некоторых операционных элементах слово S, хранимое на регистре, может использоваться в качестве аргумента микрооперации. В этих случаях выход регистра соеди- няется с входом комбинационной схемы Ф (штриховая линия на рис. 8.31). Для вычисления значений логических условий слу- жит комбинационная схема ¥, на выходе которой формируются значения осведомительных сигналов {х;}. Обычно операционные элементы накапливающего типа строятся на схемах с синхрони- зацией. При этом момент переключения регистра S в очередное состояние определяется синхронизирующим сигналом, например сигналом с2, поступающим на соответствующие входы триггеров регистра. Временная диаграмма операционного элемента изобра- жена на рис. 8.32. Операционный элемент инициируется упра- вляющим сигналом yt длительностью Т, равной длительности такта. Такт Т разделяется на три микротакта тх, т2, т3. В микро- такте тх в схеме Ф вычисляются значения сигналов возбуждения q>z (Ль ...» ЛД соответствующие микрооперации «/,. Длительность 270
микротакта определяется быстродействием схемы Ф, т. е. бы- стродействием логических элементов и числом уровней в схеме. В микротакте т2 выполняется переключение регистра S. Этот процесс синхронизируется сигналом с2. Микротакт т3 выделяется для вычисления значений логических условий {х, = (S)), и длительность этого микротакта зависит от быстродействия ком- бинационной схемы Т. При использовании синхронной логики длительности микротактов и т3 определяются максимальной длительностью микрооперации и максимальным временем вы- числения логического условия соответственно. Разнообразие операционных элементов определяется разно- образием наборов микроопераций, выполнение которых воз- лагается на элементы. Наиболее широко используются элементы следующих типов: сдвигающие регистры, накапливающие сум- маторы и счетчики. Сдвигающие регистры обеспечивают сдвиг хранимого на регистре слова на заданное число разрядов. На- капливающие сумматоры служат для выполнения микроопераций вида S : = S -j- А, а счетчики — микроопераций S : = S + 1, S : = S — 1, в которых предыдущий результат используется в качестве операнда в следующей микрооперации. Синтез операционных элементов накапливающего типа. Синтез схемы операционного элемента сводится к выбору типа триггеров и синтезу комбинационных схем Ф и Т. В регистрах наиболее широко используются RS-, JK- и DV-триггеры. В тех случаях^ когда слово, хранимое на регистре, используется в микроопера- циях в качестве операнда и результата одновременно, для обеспе- чения устойчивости функционирования операционного элемента применяются двойные триггеры (триггеры типа MS). Синтез комбинационных схем производится традиционными методами, описанными в п. 8.1. При этом функция комбинационной схемы Ф, формирующей сигналы возбуждения, представляется в виде табл. 8.2, в которой выходным переменным сь ..., сп соответствуют» сигналы возбуждения: сигналы Rlt Slt ..., Rn, Sn—для регистра на RS-триггерах; сигналы Jlt ..., Jп, Rn—для регистра на JK-триггерах; сигналы Dlt Vlt .... Dn, Vn—для регистра на DV-триггерах. Схема Чг, вычисляющая значения логических условий, синтезируется по правилам, описанным в п. 8.5. В качестве примера рассмотрим синтез схемы 4-разрядного операционного элемента, реализующего микрооперации у2.yt (табл. 8.14) над словами S = SjSjSaSj, А = ajC2a3a4 и В — b1b2b3bi. Регистр будем строить на двойч ных DV-триггерах, имеющих три входа: 1) логический вход D, по которому триггер переключается в состояние, равное значению сигнала на этом входе; 2) управляющий вход V, на который должен поступать сигнал 1, разрешающий переключение триггера: 3) синхронизирующий вход С. Значения сигналов возз Суждения, представленных в табл. 8.14, определяются следующим образом. При выполнении микрооперации установки z/j : S := О на все входы £>j.£>4 должен поступать сигнал 0 и одновременно с этим необходимо разрешить пере-, ключение всех четырех триггеров, для чего на входы Vi, .... V4 должен постуз пать сигнал 1. В микрооперациях передачи у2 : S := А и у3 : S i= В на входы .... £>4 должны поступать сигналы а2, ..., и bt, .... 64 соответственно 271
Т а б;л и ц а 8.14 Функции схемы Ф операционного элемента накапливающего типа «1 Микрооперации Сигналы возбуждения D, V, D, V, О, и, о< У4 Уз S = 0 0 1 0 1 0 1 0 1 Уз S = А «1 1 аз 1 а3 1 а4 1 Уз S = В Ь1 1 Ь-i 1 Ь3 1 Ьз 1 Уз S = R 1 (0.S) 0 1 si 1 si 1 $3 1 Уз S = LI (S.0) «2 1 s3 1 S4 1 0 1 Уз S = S+ 1 21 1 г2 1 *3 1 1 а на все управляющие входы 1'1...... И4— сигналы 1. Аналогичным образом определены значения сигналов возбуждения, соответствующие микрооперациям Сдвига yit уъ. При выполнении микрооперации счета у6 входам Dt, .... О4 при- сваиваются значения вспомогательных переменных, которые в соответствии с (8.21), (8.22) определяются следующим образом: г4 = s4; Рз = «4; (8.53) z( = siPi V SiPP, . Pi-i = SiPi, i = 3, 2, 1, где pi — перенос в i-й разряд, формируемый в (1 + 1)-м разряде счетчика. Значения сигналов возбуждения определяются функциями возбуждения, которые имеют следующий вид:, М ф/=; V yJmf, /=1.............П. (8.54) т=1 Здесь ф/ — сигнал возбуждения, значение которого определяется /-м столбцом табл. 8.14; знак дизъюнкции объединяет термы соответствующие микро- операциям у4.....ум\ trnf — значение сигнала возбуждения, указанное на пересечении т-й строки и /-го столбца табл. 8.14. Для рассматриваемого примера (табл. 8.14) функции возбуждения записы- ваются так: : £>1 = у flt V y3bi V y3s2 V yezt; D1 = У A V y3b( V yfli.i V y5si+1 V yflt, i = 2, 3; Dt = У-flt V У»Ь» V УАз v У flt, . = Уз V Уг\/ Уз Уз\/ Уз\/ Уз, ,4, где it....г4 определяются (8.53). Для минимизации затрат оборудования си- стема булевых функций (8.55) должна быть минимизирована. Для (8.55) имеем,' Di — у At V Узь1 V у а V Di = yfli v y3bt V yfli-t V J/5S(+1 V уflt, I = 2,3; Dt = у flt \z y3bt V У fl» У У flt, (8.56) = Уз V Уз V у» V Уз V у» V Уз> = / = 1......4, где Wf—новая вспомогательная переменная, 272
По функциям (8 56), (8.53) построена схема, приведенная на рнс. 8.33-. Управляющие сигналы ........у, и входные слова А и В поступают по шинам Y, д и В соответственно. Сигналы Sj......s4, поступающие с выходов триггеров / 4, определяют слово S, значение которого передается в парафазном коде Изоб*ИНе ^Ля С0КРаш.ения рисунка разряды 2 и 3 операционного элемента кл,о0раже,,ы В ииде одного разряда, которому присвоен номер i = 2, 3. Пере- постГИе тРигге₽ов синхронизируется управляющим сигналом с2, который цион ПаВТ 8 момент времени, определяемый по рис. 8.32. В каждом такте опера- делс 8ЫИ элемент может выполнять только одну микрооперацию ут £ И. Под воз- иабог>ВИеМ УпРаалЯ1°Щего сигнала ут в комбинационной части формируется Р сигналов возбуждения ..........и сигнал ITi, под воздействием которых 273
триггеры переключаются в очередное состояние, определяемое управляющие сигналом ут и значением слова А, В или S. Так, при поступлении сигнала у инициирующего микрооперацию установки S := 0, сигнал W; = 1 и все £>, = (}’ в результате чего в момент поступления синхронизирующего сигнала с2 BCg триггеры переключаются в состояние 0. Использование логических функций триггеров. Для минимиза- ции затрат оборудования в комбинационной части операционного элемента необходимо учитывать возможность реализации триг- герами логических функций. Логические функции триггеров определяются следующим образом. Пусть s — переменная, пред- ставляющая состояние триггера, и R, S, J, К, D, V — переменные, значения которых соответствуют значениям входных сигналов. Из табл. 7.1 следует, что RS-триггер реализует следующую функцию: s: = sRS V V = sS \/ sR. (8.57) При построении последнего выражения учитывается, что набор RS = 11 является недопустимым, поэтому sRS = sRS V sRS = = sS. Аналогичным образом по табл. 7.2 находится функция Т-триггера s:=~sT\/sf. (8.58) Из (8.58) видно, что Т-триггер реализует функцию отрицания равнозначности в отношении переменных s, Т. Из табл. 7.3 следует функция JK-триггера s: = sJR \/sJK \/sJK X/sJR = sJ V sK. (8.59)' Функция D-триггера (табл. 7.4) тривиальна: s — D. Функция DV-триггера, определяемая по табл. 7.5, имеет следующий вид: s: = sVD V V sVD V sVD = VD V sK (8.60) При использовании двойных триггеров входы триггера могут соединяться с его выходами, за счет чего можно модифицировать функции, реализуемые триггерами. Так, вход DDV-триггера можно подключить к инверсному выходу s, в результате чего входной сигнал D = s и функция (8.60) принимает следующий вид: s:=sRVsV (8.61) Сопоставляя полученное выражение с (8.58), можно видеть, что в данном случае вход V DV-триггера играет роль счетного входа (входа Т), а триггер реализует функцию отрицания равнознач- ности в отношении переменных з и V. Логические функции триггера используются, например, сле- дующим образом. Если на вход J подавать значение переменной а (J — а и К = 0), то в соответствии с (8.59) JK-триггер в отноше- нии переменных s и а реализует функцию s : = sa V s = а V s> 274
т е. вычисляют дизъюнкцию переменных а и s. Если обратное значение а переменной а подавать на вход /< (J — О, К = а), т0 функция (8.59) принимает вид s : = sa и триггер вычисляет конъюнкцию переменных s и а. Если значение а одновременно подавать на входы J и К (J = а, К = а), то функция (8.59) при- нимает вид s : = sa V sa и триггер реализует функцию отрицания равнозначности. Аналогичные рассуждения можно проводить в от- ношении триггеров других типов. Таким образом, различные спо- собы подключения цепей, по которым поступают значения пере- менных, к входам триггеров позволяют реализовать определенные Функции за счет логических возможностей триггеров, в результате его достигается экономия оборудования в комбинационной части операционного элемента. В рассматриваемом примере (табл. 8.14, рис. 8.33) логические зможности DV-триггера можно использовать следующим обра- ом. При соединении входа D с инверсным выходом s триггер Реализует функцию (8.61), совпадающую с функцией г( в (8.53). Х°ДЯ из этого. функцию г, можно выполнять на триггере, что волит исключить из схемы на рис. 8.33 элемент, вычисляющий 275
значение г(. Эти соображения положены в основу схемы пестро- ения разряда операционного элемента, приведенной на рис. 8.34 В данном варианте схемы при выполнении микрооперации счета у\ выход s, триггера подключается к входу Dt через элемент И управляемый сигналом ул, в результате чего при уе = 1 Dt = sf. Сигнал переноса pt через элемент ИЛИ поступает на вход V и сиг- нал возбуждения V, определяется следующим образом: == = W1 V pit где W! = У! V у2 V ••• V </5- Когда микрооперация уе не выполняется (у6 = 0), нулевое значение всех сигналов пере- носа р, обеспечивается путем клапанирования цепочки элементов И1, через которую осуществляются переносы, сигналом ув, посту- пающим на вход первого элемента цепочки. Данный вариант выполнения микрооперации счета экономичнее варианта на рис. 8.33 на два 2-входовых элемента И в расчете на каждый разряд операционного элемента. 8.9, Сдвигающие регистры . Сдвигающие регистры служат для хранения слова информации и выполнения над ним одной или нескольких микроопераций сдвига. Если на регистре реализован сдвиг слова влево и вправо, сдвигающий регистр называется реверсивным. Сдвиг слова S = Sj ... sn, например, на один разряд влево сво- дится к совокупности передач : = s2, s2 : = sg, ..., st : = si+1, .... sn_! : = sn, sn — 0. Эти передачи можно выполнить совместно за один такт только в том случае, если в течение такта обеспечить однократное переключение каждого из триггеров в состояние, определенное на момент начала микрооперации, т. е. к моменту поступления управляющего сигнала. В противном случае триг- гер Th хранящий значение sh переключится в состояние sj+1, затем — в состояние si+2, поскольку одновременно с передачей s< ' = si+i выполняется передача s1+1 : = si+2, затем — в со- стояние sf+s и т. д. В такой ситуации конечное состояние регистра определяется длительностью управляющего сигнала, т. е. схема теряет устойчивость. Для обеспечения устойчивости сдвигающие регистры строятся на двойных триггерах. При использовании DV-триггеров 4-раэряд- ный регистр, реализующий микрооперацию сдвига вправо i/i : 5 : = R1 (a.S), где а — двоичная переменная, строится по схеме на рис. 8.35. В момент поступления управляющего сиг- нала i/i разрешается переключение всех триггеров регистра в со- стояние, определяемое значением сигнала на входе D. Триггеры переключаются в очередное состояние в момент поступления син- хронизирующего сигнала с2, причем каждый триггер переклю- чается в состояние, которое определяется значением сигнала D, существовавшим к моменту поступления сигнала с2. Повторное переключение триггера возможно только при поступлении следу- 276
ющего сигнала с2, т. е. только в другом такте. Этим обеспечивается устойчивость работы сдвигающего регистра. ' При использовании RS-триггеров устойчивость обеспечивается следующим образом (рис. 8.36). Для хранения слова информации используется регистр, состоящий из триггеров Tl, Т2, ТЗ. Чтобы организовать сдвиг слова, к ним подключаются вспомогательные Рис. 8.35. Сдвигающий регистр на DV-триггерах триггеры Т4, Т5, Тб, обеспечивающие хранение слова в процессе выполнения сдвига. Переключение триггеров синхронизируется парой сигналов сх, с2, последовательно вырабатываемых генерато- ром в течение каждого такта времени. Элементы И1, И2 исполь- зуются для управления микрооперацией сдвига. При поступлении управляющего сигнала ylt длительность которого равна такту, на выходе элемента И2 формируется сигнал, разрешающий пере- ключение вспомогательных триггеров. Как видно из рис. 8.36, триггеры Т4, Т5, Тб в этот момент переключаются в состояния, соответствующие состояниям триггеров Tl, Т2, ТЗ, в результате него слово SjS^Sg запоминается на вспомогательных триггерах. о окончании сигнала сг поступает сигнал с2, который разрешает ереключение основных триггеров Tl, Т2, ТЗ. Последние уста- авливаются в состояния a, sL, s2 соответственно. Поскольку в 277
момент поступления сигнала с2 = 1 переключение триггеров Т4 Т5, Тб запрещено, проскок состояний невозможен и регистр рабо- тает устойчиво. Нетрудно видеть, что в рассматриваемой схеме устойчивость функционирования достигается за счет использова- ния двойной памяти (см. п. 7.3). В сдвигающем регистре, в частности в регистре на рис. 8.33 выделяются вход а и выход Ь, называемые последовательными Рис. 8.37. Реверсивные сдвигающие регистры входом и выходом. Если многократно выполнять сдвиг, то на вы- ходе b будут последовательно представлены значения разрядов слова s3, &2, $х. Аналогично, через вход а в регистр можно последо- вательно, разряд за разрядом ввести слово ага.2а3. При этом в пер- вом такте на вход а должно подаваться значение а3, затем — зна- чение а2 и а1. После трех тактов регистр будет установлен в со- стояние SjS2s3 = Если последовательный вход соединить с последовательным выходом (а = Ь, а = Ь), то совпадающие справа разряды будут поочередно поступать в освободившийся 278
при сдвиге первый разряд и регистр будет реализовывать микро- операцию циклического сдвига, причем через каждые три такта регистр будет возвращаться в исходное состояние. реверсивный сдвигающий регистр, реализующий, например, две микрооперации сдвига у± : 5 : = R1 (a.S) и уг : S : = LI (S.b), где а и b — двоичные переменные, строится на DV-триггерах по схеме, представленной на рис. 8.37, а. Сигнал у1г воздействуя на элементы И, коммутирует цепи а — slt st — s2, s2 — s3, посред- ством которых реализуется сдвиг вправо с введением в освобо- ждающийся разряд значения а. Сигнал у2 коммутирует цепи ___sg, s3 — s2, s2 — slt обеспечивающие сдвиг влево. Состояние регистра изменяется в момент поступления синхронизирующего сигнала с2. При использовании RS-триггеров сдвигающий регистр строится по схеме, представленной на рис. 8.37, б. Триггеры Т1 — ТЗ являются основными, а триггеры Т4 — Тб — вспомога- тельными. Элементы ИЛИ1, И2, ИЗ служат для управления по- рядком выполнения микроопераций сдвига: элемент И2 обеспе- чивает передачу синхронизирующего сигнала сх на входы вспомо- гательных триггеров, а элемент ИЗ — передачу сигнала с2 на входы основных триггеров. Управляющие сигналы у{ и уг комму- тируют цепи сдвига вправо и влево так же, как и в регистре на D-триггерах. Выходы end являются последовательными выходами сдвигающего регистра, через которые разряды слова могут пере- даваться на последовательные входы других регистров. 8.10. Накапливающие счетчики Нскапливающий счетчик — это операционный элемент, обеспе- чивающий хранение слова информации и выполнение над ним микроопераций счета, изменяющих значение слова на единицу. Накапливающие счетчики, как и комбинационные, подразде- ляются на суммирующие, вычитающие и реверсивные. Существуют счетчики, схемная организация которых предполагает использо- вание синхронизирующих сигналов, а также счетчики, работа- ющие без использования синхронизирующих сигналов. Первые называются синхронными, вторые — асинхронными. Дополни- тельна отметим, что термин «счетчик», не сопровождаемый при- лагательным «комбинационный», используется для обозначения накапливающих счетчиков. Синхронные счетчики. При поступлении сигнала уъ иниции- рующего микрооперацию счета S : = S 4~ 1, состояние счетчика, определяемое значением S, должно измениться на единицу. При этом значение младшего разряда изменяется на обратное: из 0 в * или из 1 в 0. Если этот разряд находился в состоянии 1, то в следующий старший разряд должен поступать сигнал переноса, переключающий старший разряд в очередное состояние. При этом состояние старшего разряда изменяется на обратное. Процесс переключения разрядов счетчика аналогичным образом распро- 279
страняется на последующие старшие разряды i, i — 1, ]. Таким образом, сигнал переноса pt в i-й разряд счетчика должен формироваться в младшем разряде i + 1, если разряд находится в состоянии s/+1 — 1 и в разряд поступает сигнал переноса р/+1 = 1 из соседнего младшего разряда, т. е. значение pt опре- деляется как значение конъюнкции = si+ipi+1. Для младшего разряда счетчика рп+1 — 1. На основе описанного правила выполнения переносов построен Счетчик, схема которого приведена на рис. 8.38, а. Для обеспече- ния устойчивости функционирования счетчик строится по схеме с двойной памятью: на время переключения основных триггеров Т1 — ТЗ состояние счетчика s^Sg запоминается на вспомогатель- ных триггерах Т4 — Тб, которые переключаются в момент посту- пления синхронизирующего сигнала q, Основные триггеры пере- ключаются по сигналу сг. При этом сигнал переноса р3 распростра^- няется между разрядами счетчика по цепи переноса, состоящей из элементов И. Время выполнения микрооперации счета тсч =“ 280
= тг + (n — 1) т 4- тт, где Tj — время переключения вспомога- тельных триггеров, определяемое минимально допустимой дли- тельностью синхронизирующего сигнала > тт; (п — 1) т — время распространения сигнала переноса через (п — 1) элемент И; т — время переключения триггера. Для уменьшения длительности микрооперации счета, т. е. для увеличения быстродействия счетчика, переносы, как и в комби- национных счетчиках, могут вырабатываться параллельным спо- собом (рис. 8.38, б). При этом значение переноса в i-й разряд счетчика определяется выражением р, = si+1s/+2 ... snylt где si+i) •••, sn — состояние младших разрядов счетчика; уг— упра- вляющий сигнал. При параллельной выработке переносов дли- тельность микрооперации счета тс, = 4 т 4 тТ1 где т — время формирования переносов, определяемое задержкой сигнала на одном логическом элементе, и не зависит от числа разрядов п. Вычитающие счетчики строятся аналогичным образом. Сигнал заема qt из разряда i = п — 1, п — 2, ..., 1 должен формиро- ваться всякий раз, когда в разряд (i — 1) поступает сигнал заема Qi.i и состояние разряда = 0, т. е. значение заема опре- деляется как конъюнкция qt = Отсюда следует, что в вычитающем счетчике входы элементов И, стоящих в цепи пере- носа (рис. 8.38, б) должны подключаться к инверсным выходам s{ вспомогательных триггеров Т4 — Тб. В реверсивных счетчиках входы элементов И должны комму- тироваться с прямыми выходами s( триггеров при выполнении микрооперации уг : 5 : = S 4- 1 и с инверсными выходами st пРи выполнении микрооперации yt : S : = S — 1. Эти действия реализуются схемой, показанной на рис. 8.39. Здесь цепь пере- носов составлена из элементов И1, а цепь заемов — из элемен- тов И2. 281
Уг-----------------------Рз Асинхронные счетчики. Асинхронные счетчики можно строить на основе схем синхронных счетчиков (рис. 8.38, 8.39). При этом сигнал переноса в младший разряд ра (рис. 8.38, а) формируется по сигналу ylt а сигнал с2 — как инверсия сигнала yt. Схема асинхронного управления счетчиками (рис. 8.38, 8.39) приведена на рис. 8.40. При отсутствии управляющего сигнала у± на выходе инвертора формируется сигнал который поступает на синхронизирующие входы вспомогательных триггеров Т4—Тб и обеспечивает их переключение в со- стояния, совпадающие с состояниями ос- новных триггеров Т1 — ТЗ. В момент поступления сигнала уг = 1 переключе- ние вспомогательных триггеров запре- щается сигналом q = ^!=0 и основные триггеры начинают пе- реключаться в очередное состояние S+1. Таким образом, функ- цию синхронизирующего сигнала с± выполняет интервал между сигналами ylt а функцию сигнала с2 — сам управляющий сиг- нал у±. Классический пример асинхронного суммирующего счетчика приведен на рис. 8.41, а. В этом счетчике используются двойные Рис. 8.40. Асинхронное управление счетчиком Рис. 8.41. Асинхронные суммирующие счетчики Т-триггеры, вход каждого из которых подключается к инверсному выходу триггера соседнего младшего разряда. Каждый из триг- геров переключается в очередное состояние, когда сигнал на его входе изменяется из 0 в 1, что соответствует моменту переклю- чения триггера в младшем разряде из 1 в 0. Временная диаграмма счетчика изображена на рис. 8.42. В моменты автоматного вре- мени 1, 2, 3. .... 7 счетчик под воздействием сигнала пере- 282
Рис. 8.42. Временная диаграмма асинхронного суммирующего счет- чика ключается из начального состояния ООО в состояние 001, 010, 011, ...» Hl- По приходе очередного восьмого сигнала ух счетчик нз состояния 111 переключается в нулевое состояние 000, по- скольку сигнал переноса, формируемый в старшем разряде, теряется из-за ограниченности числа разрядов в счетчике. Схема асинхронного счетчика, аналогичная счетчику на рис. 8.41, а, изображена на рис. 8.41, б. В рассматриваемых счетчиках перенос выполняется последовательно: после переключения триггера млад- шего разряда из 1 в 0 переключается следующий триггер и т. д. Время распространения переноса равно длительности микроопе- рации счета и составляет тсч = птт, где тт — время переключения триггера; п — количество разря- дов в счетчике. По этой причине счетчики рассматриваемого типа называются счетчиками с по- следовательным переносом. В от- личие от них счетчики, изобра- женные на рис. 8.38, а и 8.39, на- зываются счетчиками со сквозным переносом. В этих счетчиках пере- нос распространяется от разряда к разряду одновременно с про- цессом переключения триггеров, так что процесс распростране- ния переносов опережает во вре- мени процесс переключения триг- геров. Асинхронные вычитающие счетчики строятся аналогично сум- мирующим счетчикам. В вычитающих счетчиках сигнал заема должен формироваться в момент переключения триггера из со- стояния 0 в состояние 1. Поскольку Т-триггер в схеме на рис. 8.41, а переключается при изменении сигнала на его входе из 0 в 1, то для выполнения микрооперации S : = S — 1 входы триггеров должны подключаться к прямым выходам триггеров младшего разряда, т. е. к выходам s2, s3, ..., sn n-разрядного счет- чика. Аналогично, схема на рис. 8.41, б преобразуется в схему вычитающего счетчика, если входы разрядов alt blt а2, b2 под- ключить к выходам s2, s2, s3, s3 соответственно. В асинхронных счетчиках с последовательным переносом усложняется процесс установки счетчика в начальное состояние. При поступлении управляющего сигнала yh инициирующего микрооперацию установки, начинается процесс переключения триггеров, сигналы на выходе которых воздействуют на состояния следующих триггеров счетчика. Поэтому для установки счетчика в заданное состояние необходимо, чтобы длительность управля- ющего сигнала yL превышала максимальную длительность пере- ходного процесса в счетчике, которая равна тсч = пт,. 283
8.Н. Накапливающие сумматоры Накапливающий сумматор служит для хранения слова ин- формации и выполнения микрооперации сложения q.S : = S + + Д + р, где q — перенос из старшего разряда суммы, значение которого можно рассматривать как (п + 1)-й разряд суммы; р — двоичная переменная, имеющая смысл переноса в младший разряд суммы. В накапливающем сумматоре после выполнения микрооперации сложения значение слова S увеличивается на Рис. 8.43. Накапливающий сумматор величину второго слагаемого (Д + р). Для установки сумматора в начальное состояние в его схему вводятся цепи, обеспечивающие реализацию микрооперации установки S : = 0. Накапливающий сумматор может строиться по схеме, при- веденной на рис. 8.43. В этом случае комбинационный сумматор, составленный из одноразрядных сумматоров SM1 — SM3, сопря- гается с регистром на двойных триггерах (в данном случае на DV-триггерах). Значение переноса р в разряд сумматора форми- руется на выходе q предыдущего разряда (см. п. 8.3). Управля- ющий сигнал ylt инициирующий микрооперацию сложения q. .S : = S + А + р, разрешает по входу V переключение триг- геров, и в момент поступления синхронизирующего сигнала с2 триггеры регистра переключаются в новые состояния, определя- емые значениями на выходах комбинационного сумматора. Сиг- 284
нал сг должен поступать не ранее, чем закончится переходный процесс в комбинационном сумматоре, длительность которого определяется временем выполнения сложения тсл = Лтн 4- тс, где L — максимальная длина переноса, равная количеству раз- рядов п при использовании сумматора с последовательным пере- носом; тп — задержка переноса в одном разряде сумматора; Т(> — время формирования значения суммы в одном разряде, отсчитываемое от момента окончания выработки переносов. Затраты оборудования в накапливающем сумматоре значи- тельно уменьшаются, если использовать логические возможности триггеров регистра. Когда регистр строится на Т-, JK- или DV-триггерах, в которых реализуется счетный вход, возможности счетного входа могут использоваться для сложения разрядов sit а1 слагаемых S, А и прибавления к полученной сумме значения переноса pt. Большое число вариантов построения накаплива- ющих сумматоров приведено в [35, 74].
Глава 9 УПРАВЛЯЮЩИЕ АВТОМАТЫ С ЖЕСТКОЙ ЛОГИКОЙ 9.1. Интерпретация микропрограммы автоматом с памятью Для формирования последовательности управляющих сигна- лов Y, соответствующей последовательности осведомительных сигналов X, можно использовать последовательную схему (автомат с памятью). При этом множество входных сигналов X ~ = {х1( ..., xL] автомата определяется множеством логических условий — осведомительных сигналов, множество выходных сигналов Y — \уг, ..., ум\ — множеством управляющих сигна- лов, используемых для возбуждения микроопераций уъ ..., ум, и закон функционирования автомата, задающий порядок преобра- зования входной последовательности X (0), X (1), ..., X (/) в вы- ходную последовательность Y (0), Y (1), ..., Y (/), предопреде- ляется микропрограммой. Для определения закона функционирования автомата, интер- претирующего алгоритм (в частности, микропрограмму), вос- пользуемся методами, предлагаемыми в [61. Определение закона функционирования автомата Мили. Пусть микропрограмма задана в виде закодированного графа (рис. 9.1, а) и для'ее интерпретации используется автомат Мили с законом функционирования: A(Z4-1) = 6[A(/), X (/)!;) У(0 = Х[А(0, Х(01, | где А = (аъ ..., a,v} — множество состояний автомата; t = 0, 1, 2, ...; А (0) = ах — начальное состояние автомата. Микропро- грамма оперирует с четырьмя логическими условиями X = = [хь .... х4) и пятью микрооперациями Y = {^/х, .... г/5). По- этому автомат, реализующий эту микропрограмму, должен иметь четыре входа х1( .... х4 и пять выходов у4, . . ., у5. Необ- ходимый набор состояний автомата определяется путем от- метки графа микропрограммы, которая производится в следу- ющем порядке: 1) символом аА отмечается вход первой вершины, следующей за начальной, а также вход конечной вершины; 2) входы вершин, следующих за операторными вершинами, отмечаются символами а2, а3, ...; 3) входы двух различных вершин, за исключением конечной, не могут быть отмечены одинаковыми символами; 4) вход вершины может отмечаться только одним символом. 286
Пример отметки графа микропрограммы состояниями аъ ... а6 автомата приведен на рис. 9.1, а. Предполагается, что в начальном состоянии аг автомат формирует нулевые значения на всех выходах у1г ..., уъ. По окончании работы автомат возвра- щается в это же состояние. Рис. 9.1. Граф микропрограммы и соответствующий ей граф автомата Мили Переход по графу микропрограммы из отметки а, в отметку а. в направлении дуг графа определяет путь . . . Х^Уа . . . (9-1) где х — х, если путь проходит через выход условной вершины, отмеченный значением 1, и х = х, если путь проходит через вы- од, отмеченный значением 0; уа, уш— множество микро- раций, указанное в единственной операторной вершине, через торую проходит данный путь. Например, на графе рис. 9.1, а з отметки а2 в отметку а2 можно перейти двумя путями: аххАугу2а2
и а из отметки аг в а4 — по единственному пути alx2x!lylyiai. Путь, не проходящий через условные вершины содержит пустое множество логических условий а(уауь ... ’ Некоторые пути, ведущие к отметке ах — конечной вершине графа^ могут содержать пустое множество микроопераций а~ха . . . х^. (9.2) Очевидно, что все множество путей вида (9.1) или (9.2) опреде- ляет множество переходов между состояниями а, и а, автомата Мили. Если состояниям ах, .... aN поставить в соответствие вершины графа, а путям (9.1) и (9.2) —дуги, направленные из вершины а( в вершину а, и отмеченные наборами ха ... xjya ... yw значений входных и выходных сигналов, то полученный граф будет опре- делять закон функционирования автомата Мили. Так, граф микро- программы, (рис. 9.1, а) порождает автомат Мили с законом функ- ционирования (рис. 9.1, б). Заметим, что дуги на графе автомата отмечаются только теми входными сигналами X, которые опре- деляют возможность перехода из состояния а, в состояние ajt и теми выходными сигналами Y, которые в данной ситуации при- нимают значение 1. При этом предполагается, что все остальные выходные сигналы имеют нулевое значение. Когда автомат не работает (микропрограмма не выполняется), он находится в начальном состоянии а,. При запуске (иницииро- вании микропрограммы) автомат сохраняет состояние at в течение одного такта, за время которого выполняются микрооперации, соответствующие текущим значениям входных сигналов X. По окончании первого такта автомат переключается в очередное состояние а,, предписанное законом функционирования, и в опе- рационном автомате начинает выполняться следующий набор микроопераций. Момент окончания микропрограммы отмечается возвратом автомата в начальное состояние ах. Для запуска автомата используется специальный сигнал В, который относится к группе входных сигналов и имеет длитель- ность, равную такту. Чтобы исключить возможность появления выходных сигналов Y в моменты, когда автомат находится в со- стоянии «! и не работает, дугам, исходящим из вершины а1( до- полнительно приписывается запускающий сигнал В (рис. 9.1, б), только при единичном значении которого выходным сигналам 1 присваивается значение 1 и становится возможным переход ав- томата в следующее состояние. При В = 0 автомат сохраняет начальное состояние и все выходные сигналы имеют нулевые значения. Введение сигнала В в закон функционирования автомата соответствует включению ждущей вершины В в граф микро- программы (рис. 9.1, в), с помощью которой отмечается тот факт, что выполнение микропрограммы начинается только при В =? 1- Автомат Мили может интерпретировать микропрограмму кор- ректно только в том случае, если для всех переходов вида (9.1) 288
выполняется условие независимости логических условий ха, ..., ха от результатов выполнения микроопераций уа, уш. Условие независимости нарушается, если на некотором пере- ходе п,ха х<лУа наблюдается функциональная зависи- мость хр = f (yk). В таком случае выполнение микрооперации yk может привести к изменению значения условия хр, и автомат, реагируя на новый набор входных сигналов, сформирует набор выходных сигналов, не соответствующий микропрограмме. Во из- бежание этого отрицательного эффекта необходимо проанализи- ровать все переходы, имеющие место в автомате, выявить входные Рис. 9.2. Способ введения дополнительных состояний сигналы хр, ха, ..., х^, которые зависят от микроопераций, поро- ждаемых ими, и структурными средствами исключить влияние этих сигналов на процесс выполнения микроопераций. Для этой цели можно использовать следующие способы: 1) запоминание значений сигналов хр, ..., Хф на промежуток времени, равный длительности такта; 2) введение в автомат дополнительных состоя- ний; 3) реализация автомата по схеме Мура. Запоминание сигналов хр, ..., х^ производится на триггерах, которые переключаются в состояния хр, ..., Хф в конце такта, одновременно с переключением автомата в новое состояние. Порядок введения дополнительных состояний иллюстрируется рис. 9.2, а. Предполагается, что хр = ср (уа, уь), т. е. условие независимости для данного фрагмента микропрограммы нару- шается. Как видно из рис. 9.2, б, дополнительные состояния ак и az исключают возможность переключения сигналов уа и уь при изменении значения хр. Введение дополнительных состояний приводит к дополнительным затратам оборудования и увеличивает время выполнения микропрограммы. Реализация последнего спо- соба рассматривается ниже. Определение закона функционирования автомата Мура. Любую микропрограмму можно интерпретировать как автомат Мура, которому свойственен следующий закон функционирования: А (/+!) = 6 [Л (0, *(/)]; У(/) = Х[Л(0], Ю С. А. Майоров, Г. И. Новиков 289
где t = О, 1, А (0) = ал —начальное состояние автомата. Поскольку в автомате Мура выходные сигналы связаны только с состояниями автомата, то каждой операторной вершине графа микропрограммы следует поставить в соответствие одно из состоя- ний <з2, а3, ... Исходя из этого, можно сформулировать следующее правило отметки состояний автомата па графе микропрограммы: Рис. 9.3. Граф автомата Мура, ин- терпретирующего микропрограмму рис. 9.1, а 1) символом отмечаются начальная и конечная верши- ны микропрограммы; 2) каждая операторная вер- шина отмечается единственным символом а2, а3, ...; 3) две различные оператор- ные вершины не могут быть от- мечены одинаковыми симво- лами. На графе микропрограммы (рис. 9.1, а) символы состояний а1г ..., а8 обозначены цифрами 1, 2, .... 8 в кружках при со- ответствующих вершинах. Граф микропрограммы оп- ределяет множество путей вида а~ха . . . хшаг (9.3) где а, и а, — отметки начала и конца пути; х = х, если путь проходит через выход условной вершины, отмеченный значени- ем 1, и х=х, если путь проходит через выход, отмеченный значе- нием 0. Так, на графе (рис. 9Л, а) существуют следующие пути между отметками 1, 2, ..., 8: арс^', ар^ар, а2х2ар, а3х2ар, а2х2х3ар, ... Поскольку символы Gj, а2, ... рассматриваются как состояния ав- томата, то все множество путей между отметками на графе микро- программы определяет множество переходов среди состояний автомата. Обозначая состояния автомата ..., aN вершинами, приписывая этим вершинам связанные с ними наборы выходных си- гналов уа, ...,yw и соединяя вершины дугами, соответствующими пу- тям (9.3), можно построить граф автомата Мура, интерпретирующий заданную микропрограмму. Так, микропрограмме на рис. 9.1, а соответствует граф автомата Мура, показанный на рис. 9.3. Начальным состоянием автомата является состояние ах. Ини- циирование микропрограммы сводится к запуску автомата пода- чей сигнала В на выделенный для этой цели вход автомата. По- скольку переход автомата из начального состояния ау в следу- ющее состояние возможен только при наличии сигнала В = Ь 290
все дуги графа автомата, исходящие из вершины alt должны быть отмечены сигналом В (рис. 9.3). В отличие от автомата Мили со- стояния в автомате Мура должны переключаться в начале такта. Конец выполнения микропрограммы отмечается переходом ав- томата в начальное состояние ах. Поскольку к моменту перехода запускающий сигнал В принимает значение 0, автомат пребывает в состоянии а1 до поступления очередного сигнала В = 1. В общем случае автомат Мура имеет большее число состояний, чем автомат Мили,” реализующий ту же микропрограмму. Так, для реализации микропрограммы на рис. 9.1, я автоматом Мили требуется шесть состояний, а автоматом Мура — восемь. Разница в числе состояний влияет на количество оборудования в автомате. Обычно использование автомата Мили приводит к экономии обо- рудования по сравнению с эквивалентным ему автоматом Мура. Ввиду этого для управляющего автомата предпочтительной яв- ляется схема Мили. Исключением является случай реализации мик- ропрограммы с большим числом переходов, на которых не выпол- няется условие независимости входных и выходных сигналов. Списки переходов автомата. Управляющие автоматы ЭВМ имеют обычно несколько десятков состояний, в результате чего графы, описывающие закон функционирования автоматов, теряют свою наглядность. К тому же для этого класса автоматов характерны большая номенклатура набора входных сигналов и малая степень связности состояний (для каждого состояния перехода существуют в среднем три—пять других состояний), в результате чего таб- лицы переходов и выходов оказываются весьма громоздкими, но почти не заполненными. Закон функционирования управляющего автомата можно опи- сать в виде списка переходов автомата. Так, закон функциониро- вания автомата (рис. 9.1, б) представляется табл. 9.1, правила Таблица 9.1 Таблица переходов автомата Мили Исходное состояние Входной набор Выходной набор Следующее состояние Вхх У1У2 #2 Вхх Уг #2 *2 Уз а3 о2 х2х3 yt “ъ 1/1У4 *2*3 У1У* *2*3 У4 а а Х2 Уз «1 — УзУз «6 — “в х4 Уг «1 10* 291
Таблица 9.2 Таблица переходов автомата Мура Исходное состояние Выходной набор Входной набор Следующее состояние — 5*1 а2 01 — Вл-! as У\Уг *2*3 а» аг — *2 «4 — *2*3 ав — *2*3 ав аз Уг _*а а* — *2*3 as at Уз — а5 аь У4. — а- УзУз *2 а» и6 — х2*з ав УзУь *4 ai о. — *4 аа ав Уг — «1 построения которой очевидны, а закон функционирования автомата (рис. 9.3) —табл. 9.2. Списки переходов позволяют компактно и наглядно изобра- жать закон функционирования автоматов. В некоторых применениях более удобными оказываются обрат- ные списки переходов, в которых первый столбец таблицы пред- ставляет следующее состояние автомата и последний столбец — предыдущее состояние, из которого возможен переход в заданное состояние. 9.2. Принципы структурной организации автоматов Управляющие автоматы с жесткой логикой строятся на базе логических и запоминающих элементов, которые объединяются в логическую схему, функционирующую в соответствии с задан- ным законом. Организация памяти и выделение состояний автомата. Состоя- ние автомата определяется состоянием его памяти. Память управ- ляющих автоматов строится на триггерах, и состояние памяти 292
характеризуется двоичным набором е1г еп, где et равно 0 или 1, отображающим состояние триггеров 1, 2, .... п. Двоичный набор ер •••, еп называется кодом состояния автомата. При использо- вании различных способов кодирования для представления N состояний автомата требуется log2 N < п < N триггеров. Если п log2 N, то состояния автомата кодируются двоичным по- зиционным кодом минимальной длины. При п — N состояния ав- томата представляются в унитарном коде, имеющем максимальную длину. В качестве элементов памяти могут применяться как триг- геры с раздельными, так и со счетными входами. Каждому состоянию автомата должен ставиться в соответ- ствие код, отличный от кодов всех других состояний. Для автомата с N состояниями и памятью, содержащей п триггеров, можно различать 2П!/(2П—N)\n\ способов кодирования состояний. Число возможных способов кодирования очень велико. Так, при N = 16 и п = 4 число способов кодирования состояний автомата приближается к 1012. Если п < N, то состояния автомата выделяются путем де- шифрирования кода рх, ..., рп, характеризующего состояние п элементов памяти автомата. Пример схемы выделения состояний ах, ..., а1в, кодируемых посредством 4-разрядного двоичного по- зиционного кода, приведен на рис. 9.4. В данном случае исполь- зуется двухступенчатый дешифратор с ценой С = 48 и временем задержки сигнала D = 2т. Сигналы ах, а1в отмечают соответ- ствующие состояния автомата и принимают единичные значения, если триггеры памяти находятся в состояниях PiP2p3p4 = 0000, 0001, 0010, ..., 1111 соответственно. В любой момент времени только один сигнал at принимает значение 1, в то время как зна- чения остальных сигналов ах, ..., ах_г, ам, ..., aN равны 0. При включении ЭВМ под напряжение триггеры автомата уста- навливаются в произвольные состояния. Для приведения автомата в начальное состояние используется специальный сигнал началь- ной установки U, который формируется при подготовке ЭВМ к работе. На рис. 9.4 сигнал U переключает память автомата в на- чальное состояние ах = 0000. Синхронизация автоматов. Управляющий автомат задает поря- док распределения управляющих сигналов ух, ..., yN во времени, очередность следования которых однозначно определяется зако- ном функционирования автомата. Управляющие сигналы должны иметь длительность (период следования), достаточную для выпол- нения соответствующих действий в операционном автомате. Для обеспечения требуемой длительности управляющих сигналов используется способ синхронизации работы автомата. Пусть управляющий автомат переключился в состояние ах. Спустя промежуток времени х'у в комбинационной части автомата будет сформирован набор сигналов уа, ..., yw, соответствующий состоянию ах и текущим значениям входных сигналов хх, ..., xL. Сигналы ух, ..., ум возбуждают в операционном автомате соответ- 293
ствующие микрооперации с длительностями Гц .... tm, в резуль- тате выполнения которых изменяется состояние операционного автомата, и за время тх формируется новый набор осведоми- тельных сигналов .... xL. Очевидно, что управляющие сигналы уа, •••> Ум должны иметь длительность, не меньшую длитель- ности самой продолжительной микрооперации из числа реали- зуемых в данном такте, т. е. т0 = max (та. тш) + тх. Только Рис. 9.4. Выделение состояний автомата спустя промежуток времени т0 автомат можно переключить в следующее состояние а,, переход в которое породит следующий набор управляющих сигналов. Для переключения операционного автомата в следующее состояние должен быть сформирован набор сигналов возбуждения и триггеры переключены в новое состояние, для чего необходим промежуток времени т^. Таким образом, такт работы управляющего автомата, определяющий время пре- бывания автомата в одном состоянии а1( равен Т — ху + Тоа. где ху = х'у + х'у — затраты времени на управление, зависящие от длительности переходных процессов в автомате; Тол •— интер- вал времени, необходимый для выполнения микроопераций И вычисления значений логических условий в операционном ав- томате. 2S4
Требуемая длительность тактов обеспечивается за счет синхро- низации моментов переключения элементов памяти по сигналам, формируемым генератором синхронизирующих импульсов, в ре- зультате чего управляющие автоматы ЭВМ относятся к классу синхронных автоматов. В синхронном автомате длительность тактов может быть постоянной или переменной. При постоянной длительности такта для выполнения любой микрооперации отводится постоянный промежуток времени т0 = тах(т1, . . .,тЛ4) + тх и длительность такта Т = ту + т0. Синхронизация автомата производится' по схеме на рис. 9.5 синхронизирующими импульсами С, следующими с периодом Т. Сигнал возбуждения Z воздействует на память автомата только в момент поступления импульса С. Поскольку микрооперации у1( . . ., ум обычно вы- полняются за промежуток времени, меньший длительности самой продол- жительной микрооперации, то из-за постоянства такта возникают потери Рис. 9.5. Синхронизация ав- томата (№7 — комбинацион- ная часть; П— память) времени s о = £ (О’шах — fy)> Л=1 где ЦПК1Х = шах (ту, ..., tm) — максимальная длительность микро- операции; = max (ta, ..., Тда) —фактическая продолжитель- ность микроопераций уа, ..., yw, выполняемых в такте t, и сумми- рование охватывает все S тактов работы автомата. В течение времени <!' простаивает как операционный автомат, так и управ- ляющий автомат. Формирование сигналов возбуждения и выходных сигналов. Переключение автомата из состояния а; в состояние а, произ- водится путем изменения состояний запоминающих элементов, переключаемых сигналами возбуждения. Пусть в качестве элементов памяти используются триггеры с раздельными входами. Для установки триггера Tk, k = 1, ..., п, в единичное состояние используется сигнал возбуждения Sk, и для установки триггера в нулевое состояние — сигнал Rk. Вели состояниям at и присвоены коды а(- = 001 и а, — 100 и переход (az, ay) производится по входному сигналу х = 1, то при х = 1 должен вырабатываться сигнал Sx, переключающий триггер 7\ в единичное состояние, и сигнал R3, переключающий триггер Т3 в нулевое состояние. На данном переходе триггер Т2 сохраняет свое состояние. Сигналы возбуждения Sr и R3 отмечены На графе рис. 9.6, а. Очевидно, что сигналы Sx и R3 должны вы- рабатываться, если автомат находился в состоянии а( и входной 295
сигнал х = 1, т. е. Sr = R3 = арс. Поскольку at = Р1.ргр3, То Sx = /?3 = Р!р2р3х. В синхронном автомате сигналы возбуждения должны вырабатываться только в момент поступления синхрони- зирующего сигнала с. Элементы схемы, соответствующие пере- ходу (a,, а,) приведены на рис. 9.6, б. Выходной сигнал у =, = X (я, х) в данном случае отождествляется с сигналом возбу- ждения и определяется функцией выхода у — аре — р^рре. Рис. 9.6. Формирование сигналов возбуждения и вы- ходных сигналов в автомате Мили Переключение триггеров в запоминающей части автомата Мура производится аналогично переключению триггеров в ав- томате Мили. Поскольку выходные сигналы в автомате Мура отождествляются с состояниями автомата и не зависят от входных сигналов, то аргументами функций выходов являются переменные, соответствующие состояниям запоминающего элемента. Принцип выработки сигналов возбуждения и выходных сигналов на пере- ходе (рис. 9.7, а) представлен для автомата Мура на рис. 9.7, б. На данном переходе сигналы возбуждения Rx и S3 определяются как функции Ri = S3 = ape = ргр^р3х и выходные сигналы £/ и у, отождествляются с состояниями автомата fl(- и ар Уi = ае ~~ = PlPlPsi У1 ai Р1РгР3- , Устойчивость переходов в схемах (рис. 9.6 и 9.7) может быть обеспечена только в том случае, если длительность синхронизи- 296
[ изменения сигналов , если wc < (Зт + тт), где т и тт — логическом элементе и триггере. В против- пующего сигнала с будет меньше времени в цепи обратной связи, т. е. если wc < (Зд задержки сигнала на Рис. 9.7. Формирование сигналов возбуждения и выходных сигналов в автомате Мура ном случае изменение состояний триггеров может привести к вы- работке сигналов возбуждения в других цепях автомата, что, в свою очередь, приводит к вторичному переключению триггеров запоминающей части. 9-3. Эффект гонок в автоматах Переключение автомата в следующее состояние производится сигналами возбуждения, вырабатываемыми в комбинационной части автомата и поступающими на входы триггеров запомина- ющей части. Значения сигналов возбуждения зависят от значений входных сигналов и от состояния автомата, т. е. от состояний триггеров запоминающей части. Сигналы возбуждения вырабаты- ваются в различных цепях комбинационной схемы. Эти цепи, возможно не идентичные по количеству используемых в них логических элементов, характеризуются различным временем задержки сигнала. В результате разброса временных характери- стик цепей сигналы возбуждения поступают на входы триггеров 297
с некоторым разбросом во времени. К тому же триггеры имеют различное время переключения. Из-за различия во временных характеристиках триггеры изменяют своп состояния неодповре. менно. Если при переходе автомата из состояния at в состояние а- несколько триггеров должны изменить свое состояние, то из-за различия в моментах переключения триггеров между триггерами могут начаться «гонки» («состязания»). Тот триггер, который выиграет гонки, т. е. изменит свое состояние раньше, чем другие элементы, может при определенных условиях через цепь обратной связи изменить сигналы на входах остальных триггеров раньше, Рис. 9.8. Переходы в автомате чем триггеры изменят свое состояние. В результате гонок триг- геры могут перейти в состояние, не соответствующее закону функ- ционирования автомата. Таким образом, гонки между сигналами в автомате могут приводить к неправильным переходам. Наличие гонок в автомате связано со структурными особен- ностями схем, вырабатывающих сигналы возбуждения, зависит от вида используемых сигналов и от способа кодирования состоя- ний в автомате. Пусть в автомате по сигналу х выполняется переход (а,-, а;). Состояния ср и ср автомата кодируются, например, следующим образом: ср = 1001, а,- = ООН. На данном переходе под действием сигналов возбуждения должны переключиться два запоминающих элемента 7\ и Т3 (рис. 9.8, а). Предположим, что сигналы воз- буждения определяются в виде = PiPtfpppc, S3 = р^рзРзРь*- Из-за разброса временных параметров сигналов и различия во времени переключения триггеров 7\ и Тг автомат может пере- ключаться в промежуточные состояния (рис. 9.8, б). Так, если момент переключения триггера опережает момент переключе- ния триггера Т3, то автомат переключается в состояние 0001; если момент переключения триггера Т3 опережает момент переклю- чения триггера то автомат переключается в состояние 1011- В рассматриваемом случае, если триггер 7\ выигрывает гонки, 298
т0 в цепь обратной связи поступает сигнал pt — 0 и сигнал $3 принимает нулевое значение, исключая тем самым возможность переключения триггера Т3. Таким образом, в результате гонок автомат переключается в устойчивое состояние 0001, не соответ- ствующее закону функционирования. Гонки, приводящие автомат в устойчивые состояния, не соот- ветствующие закону функционирования, называются крити- ческими. Гонки в автомате связаны с разбросом во временных параме- трах сигналов, проходящих через логические и запоминающие элементы, и имеют место в любой реальной логической схеме. Для обеспечения заданного закона функционирования автомата необходимо исключить возможность появления критических го- нок. Например, если на переходе (рис. 9.8, а) сигналы возбужде- ния определяются в следующей форме: = p2ptx, S3 = р2р^х, то независимо от последовательности переключения триггеров 7\, Т3 сигналы и S3 имеют постоянное значение. В этом случае автомат непременно переключается в состояние а, (рис. 9.8, в), поскольку гонки не являются критическими. Критические гонки в схеме могут исключаться различными способами. В схемах (рис. 9.6 и 9.7) гонки устраняются путем ограничения длительности сигнала, поступающего в цепь синхронизации. Данный способ устранения гонок называется способом импульс- ной синхронизации. Если длительность сигнала с удовлетворяет условию ®с < тт, то в момент переключения триггеров сигналы возбуждения определены значениями, соответствующими состоя- нию автомата на момент начала перехода. Естественно, что такой способ устранения гонок приемлем только в том случае, если эле- менты памяти могут переключаться под действием импульсов с длительностью сос. Гонки в автомате могут устраняться путем разделения во времени процесса выработки сигналов возбуждения и процесса переключения состояний. Такого рода разделение достигается использованием двухступенчатой (двойной) памяти. Двойная память реализуется по схеме, приведенной на рис. 9.9. При исполь- зовании двойной памяти синхронизация автомата производится с помощью двух последовательностей синхронизирующих импуль- сов с и с. Первая ступень памяти состоит из триггеров Т\, Т2, Т'з, связанных с комбинационной частью автомата, и называется памятью возбуждений. Вторая ступень состоит из триггеров Tlt ^2. Т3, с выходов которых снимаются сигналы обратной связи, определяющие текущее состояние автомата. По сигналу с в комби- национной части автомата вырабатываются сигналы возбуждения $ и R, которые устанавливают триггеры Т\, Т2, Т3 памяти воз- буждений в состояние, соответствующее следующему состоянию автомата. Поскольку с = 0, то переключение триггеров Т\, Т2, Т>
памяти возбуждений не изменяет значений сигналов в цепи об- ратной связи. Переключение автомата в следующее состояние про- исходит по сигналу с = 1. При этом с = 0 и сигналы возбуждения принимают нулевые значения, благодаря чему исключается воз- можность переключения триггеров памяти возбуждений при пере- ключении сигналов в цепи обратной связи. По сигналу с = 1 триггеры 7\, Т2, Т3 устанавливаются в состояние, соответству- ет. Pj Рис. 9.9. Организация двойной памяти ющее состоянию триггеров Т\, Т3, Т3, в результате чего автомат переключается в очередное состояние. Гонки между сигналами с выходов триггеров 7\, Т2, Т3 прекращаются на входах триггеров Т1, Т3, Т3, переключение которых запрещено сигналом с = 0. Устранение гонок за счет двойной памяти значительно увели- чивает затраты времени на управление, поскольку переключение автомата в следующее состояние требует последовательного пере- ключения двух триггеров, для чего необходим промежуток вре- мени, не меньший (2тт + т). Наряду с аппаратурными способами для устранения гонок могут использоваться специальные методы кодирования состоя- ний автомата. Естественно, что гонки в автомате исключаются, если при любых переходах изменяется состояние только одного элемента памяти. Способ кодирования состояний, при котором соседние состояния автомата различаются состоянием только одного эле- 300
мента памяти, называется соседним кодированием. Пример авто- мата с соседним кодированием состояний приведен на рис. 9.10. На каждом переходе в автомате вырабатывается только один сигнал возбуждения. Если на переходе переключается k-и эле- мент памяти, то сигнал возбуждения Zk определяется в следу- ющем виде: Zk = ... р^^Рм ... рп, где pt равно pt или При этом значение сигнала возбуждения не зависит от состояния переключаемого элемента р;. Для некоторых автоматов соседнее кодирование оказывается невозможным. На- пример, соседнее кодирование невозможно, если граф автомата содержит циклы с не- четным числом входящих в цикл 'состояний. Для использования соседнего кодирования можно преобразовать закон функционирова- ния автомата введением пустых состояний, т. е. состояний, для которых выходной сиг- нал отсутствует. Один из возможных алго- ритмов соседнего кодирования состояний изложен в [6]. При введении пустых со- стояний увеличивается время выполнения операций, осуществляемых под управлением автомата. Для исключения гонок могут использо- ваться" специальные методы противогоноч- ного кодирования состояний автомата [6]. Противогоночное кодирование основывается на следующем положении. Пусть требуется исключить критические гонки на переходе (а, Ь), связанном со входным сигналом хг. Из закона функционирования автомата можно определить множество переходов (сь dj), ..., (сЛ, dk), di b, для которых обеспечена возможность выполнения, как и для перехода (а, Ь). Переход (cz, dz) в автомате может выполняться, как и переход (а, Ь), если терм из входных сиг- налов, связанный с переходом (с;, dz), может принимать единичное значение в том случае, если хк = 1. Отсутствие критических го- нок на переходе (а, Ь) может быть обеспечено, если в кодах состоя- ний а, b существует, по крайней мере, одна переменная, прини- мающая одно значение в кодах а и b и противоположное значение в кодах с,-, dit i = 1, ..., k. Например, если состояния а, b и cit dt закодированы следующим образом: а =10110; сг = 00101; с.2 = 01001; Ь= 10101; d1 = 01101; d2 = 01011, ОООГ^ 001 ач 011 а? 010. as Ш 70f W /00, ДО Рис. 9.10. Граф, допус- кающий соседнее ко- дирование то переменная pt принимает единичное значение на переходе («, Ь) и нулевые значения па остальных переходах. В этом случае 301
говорят, что переход (а, Ь) развязан по переменной рг. Поскольку переход (с,-, d,) выделен по отношению к другим возможным пере- ходам (а, Ь) единичным значением переменной ръ то сигналы возбуждения на данном переходе могут определяться функцией PjXp В этом случае значение сигнала возбуждения не зависит от переменных, значение которых изменяется па данном пере- ходе. Для исключения критических гонок необходимо, чтобы все- возможные переходы в автомате были взаимно развязаны. Таким образом, для того чтобы гонки в автомате отсутствовали, необ- ходимо и достаточно, чтобы в кодах состояний а, b и с, d, соответ- ствующих переходам (а, Ь) и (с, d), d b, для которых входные сигналы могут одновременно принимать единичное значение, существовала, по крайней мерз, однаТпеременная, принимающая одно значение на переходе (а, Ь) и противоположное значение на переходе (с, d). При этом предполагается, что сигналы возбужде- ния, вырабатываемые на переходе (а, Ь), зависят только от тех переменных, по которым развязан переход (а, Ь) от остальных переходов, возможных на данном такте работы автомата. В процессе противогоночного кодирования состояний автомата для развязывания переходов в коды состояний могут вводиться дополнительные переменные, которым присваиваются значения, обеспечивающие развязывание переходов. В результате этого количество запоминающих элементов в автомате с N состояниями может превышать значение log2 N. Если в автомате не используется способ соседнего и противо- гоночного кодирований состояний, то в общем случае коды со- стояний могут выбираться произвольно. При произвольном коди- ровании состояний для устранения гонок как в автоматах Мили, так и в автоматах Мура может использоваться способ импульсной синхронизации сигналов возбуждения или схема двойной памяти. 9.4. Канонические методы структурного синтеза автоматов Полученный из графа микропрограммы закон функциониро- вания автомата реализуется схемой, процесс синтеза которой называется структурным синтезом. Процесс структурного син- теза автомата разделяется на следующие этапы: 1) выбор типа за^- поминающих и логических элементов; 2) кодирование состояний автомата; 3) синтез комбинационной схемы, формирующей сигналы возбуждения и выходные сигналы. В. М. Глушковым разработан общий конструктивный прием, называемый каноническим методом структурного синтеза автомата. Этот метод позволяет свести за- дачу синтеза автомата к задаче синтеза комбинационной схемы путем построения системы булевых функций, выражающих за- висимость выходных сигналов и сигналов возбуждения от входных 302
сигналов и состояний автомата. Полученные булевы функции минимизируются и используются в качестве формы для построе- ния схемы комбинационной части автомата. Функция комбинационной части автомата Мили определяется канонической системой булевых функций, дизъюнктивные нор- мальные формы которых имеют следующий вид: zk = V а~хах^ . . .~хш, k = 1, . . tv, (а ;,а,) 1 . . . (9.4) У1 = \/ а,хахр . . . хю, /= 1,.. . ., М, где п и М — число сигналов возбуждения и выходных сигналов автомата соответственно. Функции возбуждения Z (а, х) опреде- ляют значения сигналов возбуждения zn z2, .... гп на всем мно- жестве переходов (az, ay): а~хах$ . . . хыуауь . . . ywaj. (9.5) Терм aLxa ... ха включается в выражение Zk, если сигнал воз- буждения на переходе (9.5) должен принимать значение 1. Функ- ция выходов у (а, х) определяет значения выходных сигналов Уъ Уг< •••> Ум на всем множестве переходов (9.5). Терм a;xa ... хш включается в выражение yh если yt £ {уа, .... уш}. Включение терма в выражение yt означает, что на переходе (9.5) сигнал yt примет значение 1. Функция комбинационной части автомата Мура определяется канонической системой булевых функций, дизъюнктивные нор- мальные формы которых имеют следующий вид: zk = V a(xa . . . хш, /г = 1, .... п; у, = V аь I = 1, .. М. 1=1 (9.6) Функции возбуждения Z (а, х) автомата Мура строятся ана- логично функциям (9.4). Функции выходов у (а) строятся как дизъюнкции состояний а;, с которыми связан выходной сигнал у t. Терм aL = ah если в состоянии вырабатывается выходной сиг- нал ylt в противном случае — а(- = 0. В дальнейшем мы будем ориентироваться на систему элементов булевого базиса и в качестве запоминающего элемента использо- вать триггеры с раздельными или счетными входами. Для устра- нения гонок будем использовать наиболее простой способ — им- пульсную синхронизацию, предполагая, что длительность сигнала возбуждения меньше времени переключения триггера. В таком 303
R{ Rz Рис. 9.11. Граф автомата Мили, отмеченный сигналами возбуждения случае состояния автомата можно кодировать произвольным образом, в частности кодами минимальной длины. Синтез автомата Мили на триггерах с раздельными входами. Автомат с законом функционирования на рис. 9.11 имеет четыре состояния, для кодирования которых необходимо п = log2 4=2 триггера Тх и Т2. Закодируем состояния авто- мата следующим образом: ах — 00; оа = 01; а3 = 10; а4 = 11. Для построения функций возбу- ждения и выходов используется струк- турная таблица автомата (табл. 9.3), которая отчасти повторяет таблицу пе- реходов, но содержит коды состояний и перечень сигналов возбуждения, фор- мируемых на переходе (а;, а,). В столб- це сигналов возбуждения указывается сигнал Sk, если триггер Tk на пере- ходе (а;, а,) переключается из состоя- ния 0 в состояние 1, и сигнал Rk, если триггер переключается из состоя- ния 1 в состояние 0. На основе табл. 9.3 строится кано- ническая система функций выходов и возбуждения (9.10): Z/i = ахВхх V a3*i; Уг = ахВххх2 V о2х2; Уз = ахВххх2 V а2х2; У 4 = й3-^1^3 V а4*3’ _ _ S’i = ахВххх2 V a1Bx1x2 V а2х2 \/ а2х2; Ri = ВДЛ V V атАз V а4х3; S2 = ахВхх V R., = а2х2 V а2х2 V V Минимизируя систему булевых функций (9.7), Zi = ахВхх V а2\ Sx = y2\/ у3, z2 = а3хх V а4; Rx = z2; ух = (ахВ V а3) хъ S2 = ух, у2 = zxx2\ R, = a2\/ а4, Уз = У 4 — z3x3; получаем: (9.8) 304
Таблица 9.3 Структурная таблица автомата Мили (рис. 9.11) Пере- ходы Исход- ное со- стояние Код исходно- го со- стояния Следую- щее со- стояние Код следую- щего со- стояния Входной набор Выходной набор Сигналы возбуж- дения 1 а2 01 Вхх У1 S2 2 а1 00 а3 10 Вххх2 У2 Sj 3 а3 10 Вхгх2 Уз Si 4 01 а3 10 х2 Уз Si/?2 5 а2 а3 10 Х2 Уз Si R3 6 01 00 XjX3 — Ri 7 8 а3 10 -4 « <3 Q 00 11 ^1 У4 У1 & 9 11 а1 00 х3 ₽i Ri 10 аА «1 00 Х3 У1. R1R2 где Zj, z2 — промежуточные переменные. Подставляя в (9.8) выражения состояний автомата через состояния plt р2 триггеров памяти а1 = Р1р2< а2 = PiPv аз = Р1Р2< = pYp2 (9.9) и минимизируя новые выражения, получаем: Zi = 'piPj.Bxi V Р1Р2 = PlJBxI V р2); z2 = РШ1 V P1P2 = PiOW P2); Pl = (P1P2B V P1P2)*1 = p2(B\J pt)Xp У2 = ZtX2; Z/3 = Zi*2; (9,10) i/4 = z2x3; St = У2 V Уз< Ri = z2; S2 = t/ii R2 = P1P2 V P1P2 = P2‘ Используя функции (9.10) в качестве формы для построения комбинационной схемы, синтезируем схему автомата (рис. 9.12). На данной схеме не обозначена цепь начальной установки автомата. Считая, что цена триггера с раздельными входами,равна восьми, синтезированная схема имеет цену Сх = 39. Число уровней 305
в комбинационной части автомата равно четырем, и затраты вре- мени на формирование управляющих сигналов определяются значением ху — 4т + тт + Зт = Ют. Синтез автомата Мили на триггерах со счетным входом. В ка- честве элементов памяти автомата с законом функционирования на рис. 9.11 будем использовать триггеры со счетным входом. Рис. 9.12. Автомат Мили на триггерах с раздельными входами Сигнал возбуждения должен подаваться на счетный вход триггера всякий раз, когда триггер должен быть переключен из состояния О в 1 или из состояния 1 в 0. В таком случае для обеспечения пере- ходов, заданных табл. 9.3, должны формироваться сигналы воз- буждения, указанные в табл. 9.4. Функции выходов автомата, построенного на триггерах со счетным входом, совпадают с функциями (9.7), а функции воз- буждения определяются по табл. 9.4 и табл. 9.3: Л = V с^Вх^ V а2х2 \/ v а2х2 V a3xtx3 V V Т2 = а2х2 V а2х2 V V аЛ V аЛ- (9.11) Минимизируем систему булевых функций (9.11): Т! = ахВхг V V a3-*i V «4‘- Т2 = а2 V а3ху У/ «4- 306
Таблица 9.4 Сигналы возбуждения триггеров со счетным входом, функционирующих в соответствии с табл. 9,3 Номер перехода 1 2 3 4 Б 6 7 8 9 10 Сигналы воз- буждения 7» Л Л т\т, TjTt Тх Т1 Т2 Т\Т2 Подставляя в данные выражения коды состояний (9.9) и минимизи- руя новые выражения, получаем: Л = PiP-zBxi. V Р1Р2 \/Р1Р-2Х1 V PiPi = = хх (В V Pi) V р2; (9.12) . Т2 = PlPi V Р1Р2*1 V PlPi = Р1Х1 V р2- Используя выражения для функций выходов, содержащиеся в (9.10), и функций возбуждения (9.12), функцию комбинационной части автомата можно описать следующим образом: = ~Pi (Bxi V р2); г3 = В V а; Ух = рл; У 2 = гхх2; Уз — 2xx2; Pi = ^Pi (*1 V р2); Т 1 = xxz2 V р2; Л = РЛ V Ра- На основе системы булевых функций построена схема (рис. 9.13). Если цена триггера со счетным входом равна 10, то данная схема имеет цену С2 = 48. Синтез автомата Мура на D-триггерах. Рассмотрим пример синтеза автомата Мура с законом функционирования (рис. 9.14) эквивалентным закону функционирования автомата Мили (рис. 9.11). Автомат имеет шесть состояний, которые можно закодировать следующими трехразрядными кодами: ах = 000; а3 = 010; а5=100; а2 = 001; а4 = 011; а6=101. Наборы НО и 111, не применяемые для кодирования состояний, являются несущественными и могут быть использованы для мини- мизации функций дешифрирования, устанавливающих зависимость состояний автомата от состояний рх, р2, р3 триггеров памяти. Минимизация функций дешифрирования кода рх, р2, р3 выполнена на карте Карно (рис. 9.15), из которой следует: <к = Р1РйРз> а3 = р~р3, а3 = р^р3,\ (9 а2 = Р1Р2Рз‘> = р2р3, а6 = р2р3. j 307
Рис. 9.14. Граф автомата Мура, эквивалентного автомату на рис. 9.11 Рис. 9.15. Дешифрование со- стояний автомата 308
Таблица 9.5 Структурная таблица автомата Мура (рис. 9.14) Номер пер хо- да Исход- ное со- стояние Код исходно- го со- стояния Следую- щее со- .стояние Код следую- щего со- стояния Входной набор Выходной набор Сигналы возбуж- дения 1 а2 0 0 1 Вх2 D3 2 «1 ООО а3 X 1 0 B*!*2 — d2 3 at X 1 1 SXjXj £>2^3 4 5 а2 0 0 1 аз at X 1 0 X 1 1 И 5ч 1 Ь5 yt D2 d2d3 6 а3 1 X 0 *1 Dr 7 аз X 1 0 аб 1 X 1 *1*3 Уг D1D3 8 «1 ООО *1*3 — 9 ав 1 X 0 *1 Я1 10 at X 1 1 1 X 1 *1*3 Уз 11 «1 ООО *1*3 — 12 ав 1 X 1 DtD3 13 аъ 1 X 0 «1 ООО *3 У1 14 ав 1 X 1 «1 ООО — Vt — В качестве элементов памяти будем использовать D-триггеры, которые переключаются в состояние 1, если сигнал возбуждения D = 1, и в состояние 0, если D — 0. Следовательно, сигнал воз- буждения = 1 должен формироваться всякий раз, когда при переходе в следующее состояние триггер Тг должен находиться в состоянии 1. Структурная таблица автомата Мура, соответ- ствующая графу (рис. 9.15), состояния которого кодируются на- борами (9.13), представлена табл. 9.5. Каноническая система бу- левых функций, соответствующая (9.6) и табл. 9.5, имеет сле- дующий вид: У1 = о2 V а5; С Уг = Osi] Уз = a.i, Hi = oe; £>! = «3%! V a3*i*3 V atXx V Wa V D2 = ajBxJc2 V с^Вх^ V а2х2 V а2х2, D3 = ayBxr V atBxtx2 \J а2х2 V л3*Л V ^*1*3 V аЛ- . 309
Минимизируя данную систему булевых функций, получаем: /Л = а2 V «о! У 2 — а3< Уз = at; У^а&\ (9.14) Di = (а3 V а4) хх V (а3 V «4 V «з) *з’. D, = aLBXi V а2; . D3 = atB (лх V *2) V а2хг V ((°з W)*! V «5) хз- Функции (9.13) и (9.14) порождают схему автомата Мура, изображенную на рис. 9.16. Если цена D-триггера равна 18, то цена данной схемы составляет С = 103 и значительно пре- восходит цену ранее синтезированных схем.
Глава 10 УПРАВЛЯЮЩИЕ АВТОМАТЫ С ПРОГРАММИРУЕМОЙ ЛОГИКОЙ 10.1. Принцип управления по хранимой микропрограмме Г Функция управляющего автомата определяется: 1) множеством входных (осведомительных) сигналов X = отобра- жающих состояние операционного автомата; 2) множеством вы- ходных (управляющих) сигналов Y = {у1г .... г/л1}, иницииру- ющих микрооперации, реализуемые операционным автоматом; 3) закодированным графом микропрограммы, задающим порядок следования управляющих сигналов Y в зависимости от значений осведомительных сигналов X. Функционирование управляющего автомата сводится к генерированию последовательности управля- ющих сигналов Y, предписанной микропрограммой и соответ- ствующей последовательности осведомительных сигналов X. Микрокоманды. Управляющий автомат может быть построен на основе принципа программного управления, использующего операционно-адресную структуру управляющих слов. Управ- ляющее слово определяет порядок функционирования устройства в течение одного такта и называется микрокомандой. Совокупность микрокоманд образует массив МКЮ : Р], отдельные микро- команды в котором выделяются посредством адреса, равного номеру 0, 1, ..., Р элемента массива МК. Микрокоманда содержит информацию о микрооперациях, которые должны выполняться в данном такте работы устройства, и (или) информацию об адресе следующей микрокоманды. Определим простейшую структуру управляющих слов, доста- точную для представления микрокоманд. Пусть множество Y содержит М микроопераций, которым при- своим номера 1, 2, ..., М. Номера микроопераций будем кодировать ш-разрядными двоичными числами, где т > log2 (Л1 + 2). Коды микроопераций указываются в операционной части микрокоманды. Поле Y определяет номер микроопераций,возбуждаемых микро- командой. Если Y = 0, то поле Y является пустым и не воз- буждает ни одной микрооперации. Для определения адреса следующей микрокоманды восполь- зуемся способом принудительной адресации. Принудительная адресация микрокоманд состоит в том, что в каждой микрокоманде указываются всевЬзможные адреса следующих микрокоманд. Адрес следующей микрокоманды может задаваться безусловно, т. е. независимо от значений осведомительных сигналов, или вы- бираться по условию, определяемому текущими значениями осве- домительных сигналов. Примем, что в каждой микрокоманде можно задавать значение только одного условия из множества X. 311
АЧ , X 7 у 7 V Л/ . 7 4 у Рис. 10.1. Структура микрокоманды Тогда адресная часть (АЧ) микрокоманды будет иметь структуру, изображенную на рис. 10.1. Поле X определяет номер 1, ..., L осведомительного сигнала ..., xL, значение которого анализи- руется микрокомандой. Если X = i 0, то адрес следующей микрокоманды определяется в зависимости от значения xit при Xi — 0 следующей выполняется микрокоманда с адресом Ао, при Xi — 1 — микрокоманда с адресом At. Если X = 0, то адрес следующей микрокоманды равен Ао. Длина адресов Ао и Aj зависит от количества микрокоманд, составляющих микропро- грамму. Если микропрограмма содержит не более р микрокоманд, то р > log2 Р. Постоянные запоминающие устройства (ПЗУ). Для хранения микропрограмм используются ПЗУ, принцип структурной орга- низации которых изображен на рис. 10.2. ПЗУ разде- ляется на две части: 34 — запоминающую и АЧ — ад- ресную. Запоминающая часть состоит из ячеек, которым присвоены адреса 0, 1, ..., Р— 1. Ячейка ПЗУ обеспе- чивает хранение й-разряд- ного слова информации, представляющего обычно одну микро- команду. Информация в ячейку заносится на стадии изготовле- ния ПЗУ и не может быть изменена иначе как путем механиче- ского вмешательства. Адресная часть состоит из дешифратора ад- реса, посредством которого/i-разрядный двоичный адрес А (1 : п) преобразуется в сигнал, опрашивающий ячейку А запомина- ющей части. Обращение к ПЗУ выполняется путем передачи адреса А на адресную шину и посылки управляющего сигнала ЧТ, иницииру- ющего процесс чтения слова информации. В результате этого на выходной шине С формируется слово С : = ПЗУ [А ], равное кон- станте, хранимой в ячейке А ПЗУ. Принцип построения запоминающей части ПЗУ иллюстри- руется рис. 10.3. Запоминающая часть состоит из адресных цепей а0, аъ по которым поступают сигналы с дешифратора адреса ДША, и информационных цепей clt с2, .... Q, с которых снимается код слова С. Адресные и информационные цепи образуют сетку, в узлах которой размещаются элементы, передающие сигналы с цепи а, в цепь с,-. Если /-й разряд слова с адресом i должен со- держать единицу, то цепь а, соединяется с цепью с;-. Код нуля формируется при отсутствии соединения между указанными цепями. На рис. 10.3 соединение между цепями обозначается чертой, «направляющей» сигнал а,- в цепь с,-. В части ПЗУ, изо- браженной на рис. 10.3, сигналы о0, alt а2..., опрашивающие ячейки с адресами 0, 1, 2, ..., формируют коды С = 10110, 11101, 00011, ... '«osm
Элементы, используемые в запоминающей части ПЗУ, должны передавать сигнал только в одном направлении, т. е. иметь нену- левую проводимость в направлении (с;, а,) и нулевую проводи- мость в направлении (с;-, а,). В запоминающей части наиболее часто используются элементы трансформаторного типа. В этом случае занесение информации сводится к разводке цепей at по тем Рис. 10.2. Структура ПЗУ сердечникам, с которых дол- жен считываться сигнал 1. В качестве запоминающих элементов в ПЗУ могут ис- пользоваться также диоды и транзисторы. Структура и функциониро- вание управляющего авто- Рис. 10.3. Хранение информа- ции в ПЗУ мата. Пусть микрокоманды имеют структуру, изображенную на рис. 10.1, причем для кодирования микроопераций выделяется единственное поле Y. В таком случае управляющий автомат строится по схеме, представленной на рис. 10.4. Для хранения мик- рокоманд используется ПЗУ емкостью (Р+1) ^-разрядных слов. Управляющий сигнал ЧТ инициирует операцию чтения слова МК : = ПЗУ [А], в результате выполнения которой из ячейки А ПЗУ на регистр МК заносится микрокоманда. Выбранная из ПЗУ микрокоманда обрабатывается следующим образом. Поле Y дешифрируется, и выходной сигнал с дешифратора у; поступает в качестве управляющего сигнала в операционный автомат, воз- буждая в нем заданную микрооперацию. При назначенной струк- туре микрокоманды в каждом такте может выполняться не более одной микрооперации. После выполнения микрооперации осуще- ствляется переход к следующей микрокоманде, адрес которой определяется полем АО или А 1 в зависимости от значения поля X и логических условий х1( ..., xL, формируемых в операционном автомате. Если X + 0, то адрес А назначается равным ДО или А1 в зависимости от значения хх, выделенного полем X : А = АО, если хх = 0; А = А1, если хх = 1- Условно считается, что логи- 313
ческое условие х0 тождественно равно 0. Поэтому при X = 0 адрес А = АО. Это правило вычисления адреса следующей микро- команды реализуется схемой, состоящей из дешифратора ДШХ, подсхемы И—ИЛИ и элемента НЕ, на выходе которых форми- руются управляющие сигналы а0 и аг. Последние инициируют передачи А : = Л0 и А : = А1 соответственно. Таким образом, Рис. 10.4. Структура управляющего автомата с принудительной адре- сацией — к концу такта на адресной шине А будет сформирован адрес следующей микрокоманды, выбираемой из ПЗУ в очередном такте. Перед началом работы управляющего автомата регистр микро- команды МК устанавливается в нулевое состояние, в результате чего адрес Л = 0 и первой будет выбрана микрокоманда, храни- мая в нулевой ячейке ПЗУ. Запуск автомата производится сигна- лом В, который переключает триггер Т в состояние 1, в результате чего синхронизирующий сигнал с поступает на управляющий вход ЧТ, возбуждая в каждом такте процесс чтения микрокоманды из ПЗУ. В последнем такте реализации микропрограммы триггер Т должен быть переключен в состояние 0. Для этого в системе микроопераций вводится дополнительная микрооперация Ум+к которая интерпретируется в виде сигнала F, останавливающего работу управляющего автомата. 314
10.2. Кодирование микроопераций Микрооперации из множества Y = {гл, у2, .... г/лт) возбу- ждаются микрокомандой, в которой указываются наименования (коды) микроопераций, выполняемых устройством совместно в те- чение такта. Для кодирования совместно выполняемых микроопе- раций в микрокоманде выделяются операционные поля Yr, Y2,... ..., YH, количество которых определяет предельное число совместно выполняемых микроопераций. В общем случае поле Yt может возбуждать некоторое подмножество микроопераций Yt = {уа, tjf.,- •••> Уи>] € Для кодирования которых используется т( = = log2 (Mi + 1) двоичных разрядов,* причем У£ = 0 является признаком пустоты поля. Сумма Мо = пц + /и2 +• —F /«// опре- • деляет длину операционной части микрокоманды. Длина операционной части 7И0 микрокоманды влияет на коли- чество оборудования в управляющем автомате и быстродействие операционного устройства. В частности, уменьшение длины 7И0 приводит к сокращению разрядности ПЗУ, вследствие чего умень- шается стоимость последнего. Если следовать критерию экономии оборудования, то целесообразно по возможности уменьшать длину операционной части микрокоманды. Распределение микроопераций по полям микрокоманды. Пусть автомат управляет микрооперациями Y =F{(/1, у2, .... Ум}, отно- шение’"между’гкоторыми задано матрицей совместимости: 0 S12 . . . 51Д1 s2i 0 ... s2M S = [s£/] = ,SM1 SM2 . • • 0 _ Элемент s£;- характеризует совместимость микроопераций yt и z// : — 0, если микрооперации несовместимы; s£;=l, если они совместимы. Матрица S является булевой и симметричной(5£/=з;£). Положим, что для кодирования микроопераций используется Н операционных полей Ylt Y2, ..., YH. Чтобы возбудить микроопера- цию yit достаточно приписать ее одному операционному полю У£. Стремясь к минимизации длин операционной части микрокоманды, можно потребовать, чтобы число операционных полей Ylt Y2, ... ..., Y/f было минимальным и каждая микрооперация yt была при- писана единственному полю, т. е. Г/АУ/ = 0 (М=1.2...........Я; »>/). (Ю.1) Очевидно, что в одном поле могут размещаться только не- совместимые микрооперации, т. е. если У/ = {уа, у^, ..., уа], то ski = 0 для всех k, I = а, р, .... <о. Подмножества Уь У2, .... Yн должны отвечать требованию полноты \JY. = Y, (10.2) /=1 315
из которого следует, что каждая микрооперация yL должна быть включена хотя бы в одно поле У/. Таким образом, задача распре- деления микроопераций Y, для которых определены отношения совместимости, сводится к определению минимального числа подмножеств Уъ У2, .... УнсУ, каждое из которых содержит только несовместимые микрооперации и удовлетворяет условиям (10.1) и (10.2). Рассмотрим один из способов решения данной задачи, назы- ваемый методом прямого включения. Процесс распределения микроопераций У = {ylt у2, .... ум] по подмножествам Уъ У2, ... будем разделять на М шагов. На каж- дом шаге для очередной микрооперации отыскивается подмно- жество Yj, в которое можно включить микрооперацию yt. Микро- операция включается в подмножество Y,, если она несовместима ни с одной микрооперацией этого подмножества. Если среди под- множеств Уп У2, ..., Yk такое подмножество отсутствует, то для микрооперации назначается новое подмножество УА+1, в которое включается yt. Состояние процесса на каждом шагу будем харак- теризовать матрицей включения Гц Г12 . . . TtAf П Г21 Г22 • • Г2М _rkl rk2 • • rkM- Элемент г/; равен 1, если г/г £ и равен 0 в противном случае. Теперь условие включения микрооперации у; в подмножество У; можно сформулировать следующим образом: микрооперация уг включается в подмножество У/, если i-я строка матрицы S не пересекается с /-й строкой Rj матрицы R, т. е. если st f] R, = 0. Для иллюстрации метода прямого включения рассмотрим при- мер распределения микроопераций У = {ylt у2, ..., г/10}, отноше- ние совместимости которых задано матрицей 1 2 3 4 5 6 7 8 9 10 "0 1 0 0 0 0 0 0 0 0‘ 1 1 0 0 1 0 0 0 0 1 1 2 0 0 0 0 0 0 0 0 0 0 3 0 1 0 0 1 1 0 0 1 0 4 s = 0 0 0 1 0 1 0 0 0 0 5 0 0 0 1 1 0 0 1 0 1 6 0 0 0 0 0 0 0 1 1 0 7 0 0 0 0 0 1 1 0 0 0 8 0 1 0 1 0 0 1 0 0 1 9 .0 1 0 0 0 1 0 0 1 0_ 10 316
Шаг 1. Множество {KJ пусто. Для микрооперации у, назна- чаем подмножество Уг: 123456789 10 7? = [1 00000000 0] 1 Шаг 2. Поскольку s2 f] /?] = у4, для микрооперации у2 назна- чается новое подмножество Уг: 123456789 10 Г1 00000 000 01 1 ~ 0 10000000 0J 2 Шаг 3. Поскольку s3 fl = 0, микрооперация у3 включается в подмножество У±: 123456789 10 ^Г! 0 1 0 0 0 000 01 1 ~ 0 100 00000 0J 2 Шаг 4. Поскольку s4 fl Rr = 0, микрооперация у4 включается в подмножество У4: 1 2 3 4 5 6]7 [8 9 10 _ Г1 о 1 100000 01 1 ~ [о 1 0000000 о] 2 Шаг 5. Поскольку s5 f) = у4 и s5 ("| /?2 = 0, микроопе- рация у5 включается в подмножество Уг: 123456789 10 Г1 0 1 1 00000 01 1 “ [о 1 00 1 0000 о] 2 Шаг 6. Поскольку se операции ув назначается fl Д1 = iji и se П Я2 = у5, для новое подмножество У3: микро- L0 23456789 10 0 1 1 0 0 0 0 0 01 1 1001000002 0000 1 0 0 0 0J 3 Продолжая процесс, после шага 10 получаем 1 1 /?= 0 1234 5 6789 10 1 0 0 1 1 1 0 0 0 0 R = L° 0 0 0 1 0 0 1 10 0 10 0 0 10 0 10 1 2 3 317
Этому соответствует следующее распределение микроопераций: Л=|«/1. Уз, У1, У1, Уш}', У-з=\Уг, Уз, Уз}', Уз = }УЙ, Ув}. Для кодирования микроопераций требуется L — 3 + 2 + + 2 = 7 двоичных разрядов, причем код Y j — 0 используется в качестве признака пустоты поля. Распределение микроопераций Y по полям К1( У2, YH следует считать оптимальным, если оно минимизирует суммарную длину полей н где nij — количество микроопераций, включенных в поле Y,-. Метод прямого включения дает в большинстве случаев неопти- мальное решение, которое только в редких случаях можно при- знать удовлетворительным. Оптимальное распределение микроопераций по операционным полям строится на основе метода нахождения максимальных совместимых подмножеств, разработанного А. Д. Закревским [32]. Для задачи распределения микроопераций исходной является матрица совместимости S, которая может формироваться на основе различных предпосылок. Матрица S может составляться исходя из функциональных свойств микроопераций с учетом структурных ограничений на совместимость, налагаемых операционным автома- том. В этом случае признаки совместимости устанавливаются между каждой парой микроопераций yh у, £ Y. При этом пред- полагается, что может возникнуть необходимость в совместном использовании любой пары микроопераций yt и уг Другой подход к формированию матрицы S основывается на анализе микро- программ, в операторах которых перечисляются микроопе- рации, используемые совместно. В матрице совместимости эле- менту s;/- присваивается значение 1 только в том случае, когда микрооперации у, и у, используются в одном операторе. В результате этого совместимые микрооперации у, и у,, но не используемые совместно в микропрограмме, отмечаются призна- ком несовместимости s,;- = 0. Такой подход приводит к уменьше- нию количества единиц в матрице S, в результате чего большее число микроопераций рассматривается в качестве несовместимых и объединяется в одно операционное поле. Следовательно, фор- мирование матрицы S на основе списка микрокоманд позволяет сократить длину операционной части микрокоманды, но при этом теряется «универсальность» микрокоманды, поскольку изменения, вносимые в микропрограмму, могут породить новые функцио- нальные операторы, реализуемые за несколько тактов. Если матрица S формируется на основе функциональных свойств микро- операций, то любой новый функциональный оператор микропро- граммы реализуется за один такт. 318
Количество операционных полей. Если операционный автомат строится на основе принципа обобщения микроопераций, то количество операционных полей равно числу групп несовмести- мых микроопераций. Так, для управления IM-автоматом (рис. 7.27) необходимы микрокоманды с шестью операционными полями X, У, Н, F, G, Z (рис. 10.5). В полях указываются двоичные номера микроопераций, принадлежащих наборам {aj, {&J, {Лот}, {fk}, {gz)> и возбуждаемых в одном такте. Каждое операционное поле дешифрируется, и сигналы, формируемые на выходах де- шифраторов, поступают в операционный автомат в качестве управ- ляющих сигналов. Если операционный автомат строится на основе принципа закрепления микроопераций и допускает совместное выполнение до Н микроопераций, то число операционных полей в микрокоманде можно X 1 3 Y f 3 н 1 3 F f 3 Z { 3 Рис. 10.5. Операционная часть микрокоман- ды, управляющей автоматом с общими ми- крооперациями принимать равным К = 1, 2, ..., И. Если К = 1, то операционная часть мик- рокоманды имеет мини- мальную длину, но в каждом такте реализуется только одна микрооперация, в результате чего функциональный оператор микропрограммы, состоящий из k совместимых микроопераций выполняется за k тактов. При К = Н любой функциональный оператор выполняется за один такт, но операционное поле имеет максимальную длину, что увеличивает стоимость ПЗУ. Таким об- разом, уменьшение количества операционных полей позволяет экономить оборудование в управляющем автомате, но одновре- менно уменьшает быстродействие операционного устройства. Кодирование наборов микроопераций. Управляющие сигналы К {У1> Уг> • ••, Ум} можно формировать в автомате следующим образом. Пусть автомат генерирует М различных микрокоманд k — = (fej, kz, .... £л.), состоящих из наборов kL = {уа, y{i, ..., уш) со- вместимых микроопераций. Микрокоманды и различаются наборами Ьходящих в них микроопераций. Состав наборов можно описать булевой матрицей К = kl2 . . . klM «21 ^22 • • • ^2М (10.3) km kN2 . . . kNM i-я строка которой описывает набор и элементы принимают следующие значения: кц — 1, если у, £ kit и = 0 в противном случае. Номера наборов klt ..., kN закодируем «-разрядными двоич- ными позиционными кодами К, которые будут представляться 319
в операционной части управляющего слова автомата. В таком слу- чае управляющие сигналы Y можно формировать по схеме на рис. 10.6. Микрокоманда, выбранная из ПЗУ автомата, поступает на регистр микрокоманды МК. Для преобразования множества кодов наборов К в множество управляющих сигналов Y исполь- зуется ПЗУ емкостью N М-разрядных слов. Слова К [1], К [2],... ..., К [У ] представляют значения строк 1, 2, ..., У матрицы (10.3). Код набора К рассматривается в качестве адреса А К ячейки ПЗУ. При поступлении управляющего сигнала ЧТ К в ПЗУ К инициируется операция чтения Y : = ПЗУК [ЛК ], в результате Рис. 10.6. Преобразование кодов микрокоманд с по- мощью дополнительного ПЗУ чего на регистр микроопераций выби- рается слово. Набор единиц в разря- дах а, р, . . ., со слова Y порождает набор управляющих сигналов уа, . . ., уа, возбуждающих соответству- ющие микрооперации. Целесообразность использования указанного способа формирования уп- равляющих сигналов определяется за- тратами оборудования и времени в схе- ме (рис. 10.6). Затраты оборудования, необходи- мого для формирования сигналов Y, за- висят от класса микропрограмм,реали- зуемых автоматом. Пусть микропро- грамма состоит из Р микрокоманд. Для кодирования в микрокоманде наборов микроопераций требуется не менее n = log2 У разрядов, где М — число различных наборов. Если для кодирования наборов микроопераций используется способ рас- пределения микроопераций Y по полям Ylt Y2, ..., Yн, то, исполь- зуя предположение о равномерном распределении микроопера- ций по полям, можно считать, что длина операционной части ми- крокоманды будет не меньше т = Н log2 (М!Н\ Длина микро- команды уменьшается, если п < т, т. е. если (М1Н)Н > У. Пусть k — длина адресной части. Тогда в результате уменьше- ния длины операционной части микрокоманды стоимость С (Р, k + т) основного ПЗУ емкостью Р (k + /?/)-разрядных слов уменьшается до С (Р, k + п). Использование способа кодирования наборов микроопераций требует введения в состав автомата дополнительного ПЗУ, ем- костью У М-разрядных слов с ценой С (У, Л4). Если исходить из критерия экономии оборудования, то способ кодирования на- боров микроопераций целесообразен, если С(РД + /п)-С(Р,& + п)>С(М, М). (Ю.4 Когда разрядность ПЗУ имеет порядок 101—102, стои- мость ПЗУ примерно пропорциональна разрядности. С уче- 320
том этого формулу (10.4) можно представить в следующем виде: Способ кодирования наборов микроопераций приводит к уве- личению длительности такта на время, необходимое для чтения слова из дополнительного ПЗУ. Затраты времени на формиро- вание управляющих сигналов определяются в основном вре- менем обращения к ПЗУ, поэтому можно считать, что схема (рис. 10.6) увеличивает время формирования управляющих сиг- налов примерно в два раза. 10.3. Адресация микрокоманд В автоматах с программируемой логикой микрокоманды вы- деляются своими адресами, определяющими номера ячеек ПЗУ, в которых размещаются адресуемые микрокоманды. Способ адре- сации микрокоманд задает правило определения адреса следу- ющей микрокоманды. Используются два основных способа адре- сации: принудительная и естественная адресация. Принудительная адресация микрокоманд. Принудительная ад- ресация сводится к указанию в каждой микрокоманде адреса сле- дующей микрокоманды. Этот способ реализован в управляющем автомате (рис. 10.4), который работает с микрокомандами (рис. 10.1). Адрес следующей микрокоманды определяется в зави- симости от кода X и значения хх либо полем До, либо полем Ах. С целью сокращения длины микрокоманды для формирова- ния адреса следующей микрокоманды отводится единственное поле А. Если поле X = 0, то значение А, безусловно, опреде- ляет адрес следующей микрокоманды. Если X 0, то адрес следующей микрокоманды равен (Д + хх), где хх — значение логического условия с номером X. В результате этого реализуется условный переход: если хх = 0, то к микрокоманде с адресом А; если хх = 1, то к микрокоманде с адресом (Д + 1). Указанный порядок формирования адреса реализуется схемой на рис. 10.7. Исполнительный адрес Д1 = А + хх формируется счетчиком КСЧ комбинационного типа. Сокращение длины слова ПЗУ на р двоичных разрядов снижает стоимость ПЗУ на (p/k) С (Р, k), где С (Р, k) — стоимость ПЗУ емкостью Р ^-разрядных слов’ Если стоимость р-разрядного комбинационного счетчика равна S (р), то схема на рис. 10.7 приводит к экономии оборудования по сравнению со схемой на рис. 10.4, когда -£-C(P,*)>S(p). Введение счетчика в схему уменьшает быстродействие автомата, поскольку длительность такта должна быть увеличена на время выполнения микрооперации счета в р-разрядном счетчике. И С. А. Майоров, Г. И. Новиков 321
Естественная адресация микрокоманд. При естественной адре- сации адрес следующей микрокоманды принимается равным увеличенному на единицу адресу предыдущей микрокоманды, т. е. если А — адрес выполняемой микрокоманды, то следующая микрокоманда выбирается из ячейки с адресом (А + 1). При есте- ственной адресации отпадает необходимость во введении адрес- ного поля в каждую микрокоманду. Если микрокоманды сле- дуют в естественном порядке, то процесс адресации реализуется *1*2 *1. Рис. Ю.7. Формирование адреса микрокоманды с по- мощью дополнительного счетчика счетчиком адреса микрокоманды, состояние которого увеличи- вается на единицу после чтения очередной микрокоманды. Следо- вательно, микрокоманды, которые задают функциональные преоб- разования, состоящие из набора микроопераций, могут содержать только операционную часть, представляемую полями Y\, У2, .... Yц. После выполнения микрокоманды с адресом А может воз- никнуть необходимость в переходе к микрокоманде с адресом В 4= А + I. Переход может быть безусловным или зависеть от текущего значения хх. Условные переходы реализуются сле- дующим образом: если хх = 0, то выполняется следующая микро- команда с адресом (А + I); если хх = 1, то следующей выпол- няется микрокоманда с адресом В. Для реализации условных переходов в микрокоманду вводится адресная часть, состоящая из полей X и В. При естественной адресации обычно используются микро- команды двух типов: операционные и управляющие. Операцион- 322
ная микрокоманда задает набор микроопераций Y\, К, Y/t и неявно полагает адрес следующей микрокоманды равным (А + !)• Управляющие микрокоманды используются для измене- ния естественного порядка следования микрокоманд, что сводится к выполнению безусловных и условных переходов. Уп- равляющая микрокоманда содержит поле X, определя- ющее номер логического ус- ловия, и поле В, определя- ющее адрес следующей мик- рокоманды. Если Х=0, то ад- рес следующей микрокоман- ды безусловно равен В. Для управляющей (б) микрокоманд выделения операционных и управляющих микрокоманд в управляющем слове вводится одно- разрядное поле признака Р, определяющего тип микрокоманды: если Р — 0, то микрокоманда является операционной; если Р = = 1 —управляющей. Возможная структура управляющих слов, построенных по указанному способу, изображена на рис. 10.8. Признак Р размещается в первом разряде управляющего слова. Автомат, работающий с микрокомандами (рис. 10.8), строится по схеме на рис. 10.9. Дешифраторы ДШ1, ДШ2, ДШЗ, на выходе которых формируются управляющие сигналы ylt у2, •••> Ум- 11* 323
стробируются сигналом Р, принимающим значение 1 при выпол- нении операционной микрокоманды. Дешифратор ДШХ строби- руется сигналом Р = МК (1), который равен 1 при обработке управляющей микрокоманды. Адрес микрокоманды хранится и преобразуется на счетчике адреса СЧА, с которым связаны микрооперации гх: СЧА : = СЧА + 1 и г2: СЧА:= В. Функцио- нирование автомата разделяется на последовательность микро- тактов, в течение которых выполняются действия, определяемые микропрограммой на рис. 10.10. Если МК (1) — 0, то выполняется Рис. 10.10. Алгоритм функционирования авто- мата операционная микрокоманда. При этом совместно с микроопера- цией СЧА : = СЧА + 1 выполняются микрооперации Y2, У3, заданные в соответствующих полях микрокоманды. За счет этого процесс формирования адреса следующей микрокоманды совме- щается с выполнением микроопераций в операционном автомате. При использовании двух типов микрокоманд увеличиваются затраты времени на реализацию микропрограмм, поскольку такты времени отводятся не только для выполнения функциональных операторов, но и для операторов перехода. Для уменьшения затр ат времени в одном управляющем слове совмещаются опера- ционная и адресная микрокоманды. При этом последователь- ность из функционального оператора и оператора перехода вы- полняется за один такт, но при выполнении последовательности из двух функциональных операторов не используется адресная часть, по крайней мере, в одной микрокоманде. В случае выполне- ния последовательности операторов перехода не используется операционная часть большинства микрокоманд. Таким образом, стремление повысить производительность управляющего автомата приводит к непроизводительному использованию емкости ПЗУ, в результате чего увеличиваются затраты оборудования на реа- лизацию микропрограммы. 324
Сегментация ПЗУ. Для уменьшения длины адресной части микрокоманды используется способ сегментации. ПЗУ разде- ляется на сегменты, состоящие из 2(/ соседних ячеек. При этом адрес ячейки ПЗУ разделяется на два поля 1 Р S А I 1 г I <7| Поле S определяет адрес сегмента и поле А — адрес ячейки в сегменте S. Таким образом, ячейки 0, 1, ..., 2" —1 образуют сегмент 0, ячейки 2?, 2* + 1, ..., 2'?+1 — 1 —сегмент 1 и т. д. Адресация микрокоманд выполняется следующим образом. Специальной микрокомандой устанавливается адрес сегмента S. В последующих микрокомандах указывается адрес ячейки А в сегменте. Поскольку адрес А является лишь частью полного р-разрядного адреса ячейки ПЗУ, то адресная часть микрокоманды сокращается на k (р — q) разрядов, где k — количество адресов в микрокоманде. В случае принудительной адресации обработка сегментиро- ванных адресов реализуется схемой на рис. 10.11, а. По ана- логии с микрокомандами на рис. 10.1 адресная часть микрокоманды разделена на поле X, Ао и Для хранения адреса сегмента в схеме (рис. 10.11, а) используется регистр S. Допустим, что код X = И ... 1 используется в качестве признака $ перехода к дру- гому сегменту. Если S = 1, то микрокоманда МК изменяет стар- шие г разрядов адреса, определяющие адрес сегмента. Если s = 0, то микрокоманда изменяет только младшие q разрядов адреса, определяющие адрес ячейки в сегменте s. Порядок вычисления адреса А следующей микрокоманды описан фрагментом микро- программы (рис. 10.11, б). В случае естественной адресации обработка сегментированных адресов реализуется по схеме на рис. 10.11, в. В управляющей микрокоманде (Р = 1) выделены три поля: S —одноразрядный признак изменения сегмента; X — номер логического условия; А — адрес ячейки сегмента. В данном варианте принято, что адрес сегмента размещается в поле X. Микрокоманда обрабаты- вается в схеме (рис. 10.11, б) в порядке, определяемом рис. 10.11, г. При сегментации ПЗУ уменьшается длина основных микро- команд, но одновременно с этим в микропрограмму включаются дополнительные микрокоманды, необходимые для передачи управ- ления между сегментами. Величина экономии памяти, исполь- зуемой для хранения основных микрокоманд, и емкость памяти, потребляемая дополнительными микрокомандами, зависят от размера сегмента. Сегментация ПЗУ позволяет экономить оборудование, но из-за введения в микропрограмму дополнительных микрокоманд уве- личивается время выполнения микропрограмм. Если микропро- 325
грамма выполняется в среднем за t тактов, то при сегментации время выполнения микропрограмм увеличивается в среднем до (1 + Q) t тактов, где Q — вероятность появления дополнительной микрокоманды. Рис. 10.11. Обработка сегментированных адресов при принудитель- ной (а, б) и естественной (в, г) адресации Путем рационального (непроизвольного) размещения микро- программы по сегментам можно уменьшить число переходов между сегментами. В результате этого уменьшается емкость ПЗУ и затраты времени на выполнение микропрограммы. Формирование адресов микрокоманд. Переходы между функ- циональными операторами микропрограммы могут зависеть от значений нескольких логических условий. Например, в микро- программе (рис. 10.12) направление перехода от оператора {у2, Уз} зависит от значений логических условий хх и х2, и преемником 326
микрокоманды, возбуждающей микрооперации у2, у3, является одна из четырех микрокоманд. Если в микрокоманде выделяется единственное поле X и определяются два возможных адреса А„ и Aj_ следующей микрокоманды, то при программировании пере- ходов каждая условная вершина графа микропрограммы интер- претируется отдельной микрокомандой. Переход, зависящий от k логических условий реализуется за k тактов, из которых только Рис. 10.12. Пример закодированного графа микропрограммы первый такт может быть связан с выполнением микроопераций, в то время как остальные такты не могут быть использованы для управления микрооперациями. Таким образом, применение микро- команд, порождающих только два возможных направления пере- хода, приводит к большим затратам времени на реализацию ми- кропрограмм со значительным числом условных вершин. Если в автомате используются микрокоманды только одного типа (со структурой, изображенной на рис. 10.1), то операционная часть во многих микрокомандах оказывается пустой, что свидетель- ствует о неэффективном использовании информационной емкости отдельных управляющих слов и ПЗУ в целом. При использовании способа принудительной адресации для сокращения числа адресов в микрокоманде и затрат времени на 327
реализацию сложных переходов применяется метод формирова- ния адресов микрокоманд. Этот метод реализован, в частности в ЭВМ серии IBM/360 118]. Рис. 10.13. Формирование адресов микрокоманд Адреса микрокоманд формируются схемой рис. 10.13. В дан- ном случае адрес представляется в микрокоманде МК 11-разряд- ным кодом и разделяется на поля D, С, В и А. Поле D определяет адрес сегмента, состоящего из 64 соседних ячеек ПЗУ. Адрес 328
ячейки в сегменте D представляется составным словом С. В. А, поле С которого указывает адрес одной из 16 зон сегмента, со- стоящей из 4 соседних ячеек. Адрес ячейки в зоне С задан 2-раз- рядным кодом В. А. Из множеств логических условий X выде- ляются т = 2k — 1 4-р разрядных набора Хх = х^х^, Х2 — = х5хвх,х8, ..., Хт = хК_3хК_2хК_1хК. Остальные логические усло- вия Z = {zv z2, zL} рассматриваются как самостоятельные единицы. Условия, значение которых проверяется микрокоман- дой для формирования адреса следующей микрокоманды, выде- ляются полями у, р и а. Поле у определяет номер набора Xv и поля р и а — номера условий из множества Z. Если поле а, р или у является пустым (содержит код 0), то адрес следующей микрокоманды формируется независимо от условий, связанных с соответствующим полем. Если а, р, у равны 0, то адрес следу- ющей микрокоманды является безусловным АДР : = D. С. В. А. В противном случае адрес формируется в зависимости от теку- щих значений логических условий АДР : = D. Ху. zp. za, в ре- зультате чего зона в сегменте D определяется значением набора логических условий Xv и одна из 4-х ячеек зоны —значениями Zg и га. Таким образом, поля а, р, у определяют наименования ло- гических условий, значения которых порождают 64 возможных адреса следующей микрокоманды, принадлежащей сегменту D, т. е. определяют 64 различных направления перехода. Если у = 0 и р =/= 0, а =В 0, то микрокоманда порождает четыре направления перехода. Выбор направления перехода происходит в зависимости от значений 1, 2, 4, 5 или 6 логических условий. Метод формирования адресов микрокоманд является доста- точно гибким при организации сложных переходов, направление которых зависит от значений нескольких логических условий. Поскольку одна микрокоманда порождает большое число направ- лений перехода, сокращаются затраты времени на реализацию микропрограмм. Однако рассматриваемый метод налагает жесткие ограничения на порядок размещения микрокоманд в ПЗУ: ми- крокоманда должна размещаться в той ячейке сегмента, адрес которой совпадает со значением набора логических условий, вызывающим переход к данной микрокоманде. Это требование значительно усложняет процесс составления микропрограмм, порождая необходимость в использовании сложных алгоритмов распределения микрокоманд в адресном поле ПЗУ. 10.4. Структурные методы повышения быстродействия автоматов Быстродействие автомата характеризуется временем, затра- чиваемым на формирование одного набора управляющих сигна- лов. Это время слагается из трех составляющих: 1) времени фор- мирования адреса следующей микрокоманды; 2) времени обраще- ния к ПЗУ; 3) времени дешифрирования операционной части 329
микрокоманды. Основная доля времени приходится на чтение микрокоманд из ПЗУ, поэтому ощутимое увеличение быстро- действия автомата может достигаться либо за счет уменьшения времени обращения к ПЗУ, либо за счет сокращения числа обра- щений, выполняемых в процессе функционирования автомата. Уменьшение времени обращения к ПЗУ достигается при исполь- зовании в ПЗУ более быстродействующих элементов. При фикси- рованном быстродействии ПЗУ быстродействие автомата можно повысить за счет использования специальных структурных ре- шений. Параллельная выборка микрокоманд. Длину слова ПЗУ можно назначить равной суммарной длине К микрокоманд. В таком слу- чае за одно обращение к ПЗУ выбирается слово, содержащее К микрокоманд, которые будут обрабатываться последовательно в порядке, диктуемом микропрограммой. Очевидно, что из выбранных микрокоманд реализуется в среднем 1 < N < К. микрокоманд, в результате чего затраты времени на выборку из ПЗУ одной микрокоманды уменьшаются в N раз, т. е. эффектив- ное быстродействие ПЗУ увеличивается в N раз. Автоматы, одно слово которых содержит несколько микро- команд, называются автоматами с параллельной выборкой микро- команд. Параллельная выборка используется исключительно в целях увеличения быстродействия. В качестве примера организации параллельной выборки микро- команд рассмотрим автомат, в котором применяются способ есте- ственной адресации и микрокоманды двух типов: операционные и управляющие. Тип микрокоманды кодируется ее старшим раз- рядом: операционные микрокоманды отмечаются значением О и управляющие — значением 1. Схема автомата со словами, представляющими четыре микрокоманды, изображена на рис. 10.14 и порядок его функционирования—на рис. 10.15. Адресация микрокоманд обеспечивается с помощью счетчика адреса СЧА, десять старших разрядов которого определяют адрес слова в ПЗУ и два младших разряда — адрес микрокоманды в данном слове. Работа автомата начинается с чтения слова, адрес которого задан полем СЧА (1 : 10). Слово, выбираемое из ПЗУ, заносится на регистр управляющего слова УС. Одновременно с этим адрес выбранного слова запоминается на регистре С (10). Управляющее слово УС разделяется на четыре сегмента МКО, ..., МК.З, каждый из которых представляет одну микрокоманду. Состояние СЧА (11 : 12), определяющее адрес микрокоманды в слове, дешифри- руется, и соответствующий сегмент управляющего слова поступает на входы декодирующих цепей автомата. Выполнение микрокоманды сводится к возбуждению микро- операций, указанных в операционных полях Ylt У2, ..., YH ми- крокоманды, и (или) изменению состояния счетчика СЧА, в ре- зультате чего на счетчике будет сформирован адрес следующей микрокоманды. Следующая микрокоманда может принадлежать 330
ранее выбранному слову УС или любому другому слову из числа хранимых в ПЗУ. Эти ситуации разделяются путем сравнения на равенство адреса С слова УС и адреса следующего УС, представ- ляемого в СЧА (1 : 10). Равенство адресов С = СЧА (1 : 10) свидетельствует о том, что следующая микрокоманда содержится в слове УС, и выборка микрокоманды производится путем пере- дачи слова МКО, МК1, МК2 или МКЗ в шину МК без обращения к ПЗУ. В противном случае из ПЗУ выбирается новое управляющее слово УС. \УС:-ПЗУ^Ч^\ [т-=мк1\ \мк^мкг\ \мк-=мЦ I I г у—J ТГ.'—Г 'адм t__ 1 Х*0 | конец | Рис. 10.14. Управляющий автомат с параллельной выборкой микро- команд —т— у Рис. 10.15. Микропрограмма обработки параллельно выбираемых микрокоманд Функционирование автомата продолжается до получения мик- рокоманды, которая содержит микрооперацию F, прекращающую работу автомата. Эффективность параллельной выборки микрокоманд можно характеризовать числом обращений k к ПЗУ, необходимым для реализации одной микрокоманды. Очевидно, что число обраще- ний k не может быть больше 1, поскольку в каждом выбранном слове реализуется хотя бы одна микрокоманда. Наличие в микро- программе циклов, которые охватывают микрокоманды, разме- щенные в одном управляющем слове, создает возможность полу- чения мгновенных значений k < \/К, где К —количество парал- лельно выбираемых микрокоманд. Опережающая выборка микрокоманд. Такт Т работы операцион- ного устройства определяется (рис. 10.16, а) суммой времени Ту, затрачиваемого на формирование адреса тл и выборку микро- команды тв, и времени То работы операционного автомата, которое 331
слагается из времени выполнения микроопераций тг и вычисле- ния логических условии тх. С целью уменьшения длительности такта можно начинать вы- борку следующей микрокоманды еще до момента окончания микро- операций (рис. 10.16, б), т. е. выбирать микрокоманды с опере- жением во времени. В результате этого процесс выборки следу- Рис. 10.16. Диаграмма функционирования операцион- ного устройства ющей микрокоманды совмещается с процессом реализации пре- дыдущей микрокоманды в операционном автомате и такт работы устройства будет равен Т = шах (Ту, То), причем Т < Ту + То. Адрес следующей микрокоманды назначается только предположи- тельно, поскольку он может зависеть от значений логических условий, перевычисляемых выполняемой микрокомандой. При использовании способа принудительной адресации, когда в микро- команде указываются два возможных адреса Ао и следующей микрокоманды, можно априорно положить, что адрес следующей микрокоманды равен Ао. 10.5. Сравнение характеристик управляющих автоматов с жесткой и программируемой логикой Одна и та же микропрограмма может быть реализована авто- матом как с жесткой, так и с программируемой логикой. Различие в принципах организации управляющих автоматов порождает различие в затратах оборудования, необходимого для реализации одних и тех же функций, т. е. в стоимости автоматов. Количество оборудования в автомате зависит в первую очередь от слож- ности микропрограммы, интерпретируемой автоматом. В первом приближении степень сложности микропрограммы можно характе- ризовать суммарным числом операторных и условных вершин. Качественный характер зависимости количества оборудования С в автомате от сложности S интерпретируемой микропрограммы иллюстрируется рис. 10.17. Количество оборудования в автомате с жесткой логикой возрастает почти пропорционально слож- ности микропрограммы. Для автоматов с программируемой логи- кой типичны большие удельные затраты оборудования AC/AS 332
при реализации относительно несложных микропрограмм. При реализации сложных микропрограмм удельные затраты оборудо- вания уменьшаются. Из рис. 10.17 следует, что в области малых значений 0 < S < So более экономичными являются автоматы с жесткой логикой (/) и в области больших значений S > So — автоматы с программируемой логикой (2). Обычно значе- ние So лежит в пределах 150 —250 вершин графа микропро- граммы. Автоматы с жесткой логикой имеют более высокое быстродей- ствие, чем автоматы с программируемой логикой. Если тж —за- траты времени на формирование упра- вляющих сигналов (сумма времени формирования сигналов возбуждения, переключения состояния памяти авто- мата и формирования управляющих сигналов), то затраты времени на фор- мирование управляющих сигналов в ав- томатах с программируемой логикой равны тп «=> тж + Епзу, где Tn3V — длительность цикла ПЗУ. Таким об- разом, при использовании автомата с программируемой логикой длитель- личества оборудования в ав- ность такта работы устройства уве- томате от сложности микро- личивается на ТПзу, т. е. на 0,4— программы 1,0 мкс. Потери времени можно умень- шить в несколько раз за счет использования параллельной вы- борки микрокоманд и совмещения процесса выборки следующей микрокоманды с выполнением предыдущей. Управляющие автоматы с жесткой и программируемой логи- кой отличаются по степени гибкости, определяющей возможность внесения изменений в закон функционирования автомата при из- менении микропрограммы. Необходимость в изменении микропро- граммы весьма часто возникает в процессе проектирования ЭВМ из-за имеющихся в микропрограмме ошибок. Изменение микро- программы приводит к необходимости перестройки структуры автомата, которая может затронуть большинство элементов и це- пей, т. е. в большей степени или полностью изменить конфигура- цию автомата. Программируемая логика позволяет решить за- дачу перестройки относительно просто — путем введения в ПЗУ дополнительных микрокоманд и изменения кодов отдельных микрокоманд. Таким образом, можно считать, что гибкостью обладают только автоматы с программируемой логикой. Ряд дополнительных соображений об областях примене- ния автоматов с жесткой и программируемой логикой выска- зан в [68].
Глава 11 OPi[ АНИЗАЦИЯ МАШИННОЙ ПАМЯТИ 11.1. Запоминающие устройства Память ЭВМ строится из двоичных запоминающих элементов (ЗЭ), каждый из которых обеспечивает хранение бита информа- ции. В функциональном и структурном отношении запоминающие элементы разделяются на ячейки. Ячейки памяти — это фиксиро- ванная совокупность запоминающих элементов, обращение к ко- торым при записи и чтении информации производится одновре- менно. Совокупность бит информации, хранимых в одной ячейке, называется словом памяти. Слово памяти может не совпадать с машинным словом, являющимся основной информационной еди- ницей. Так, при длине машинного слова в 32 двоичных разряда слово памяти может иметь длину 16 бит или 64 бита. В первом случае машинное слово размещается в двух ячейках памяти, а во втором — в одной ячейке хранится два слова информации. Обычно используется принцип адресного доступа к информа- ции, хранимой в памяти. При этом ячейки памяти идентифици- руются номерами 0, 1, 2, ..., Е — 1, называемыми адресами ячеек. Адрес ячейки определяет физический адрес слова, хранимого в этой ячейке. Доступ к определенной ячейке организуется по адресу, который обрабатывается схемой селекции, выбирающей одну ячейку из множества ячеек памяти. Совокупность ячеек, объединенных схемой селекции, обеспечивающей в каждый мо- мент времени обмен информацией только с одной ячейкой, назы- вается запоминающим устройством (ЗУ). Совокупность ЗУ, объ- единенных в одну систему, управляемую процессором, называется памятью ЭВМ. ЗУ состоит из двух частей: запоминающей части (34) и устрой- ства управления (УУ). 34 представляет собой совокупность ячеек, каждая из которых является местом для хранения одного слова (символа) информации. УУ обеспечивает дешифрацию адресов и управление процессом записи и чтения информации при обра- щении к ячейке с заданным адресом. УУ строится на базе логи- ческих элементов и содержит формирователи и усилители сигна- лов, необходимые для возбуждения элементов 34. Для хранения информации используются элементы различной физической природы — различные носители информации. Наи- более широкое применение в ЗУ нашли элементы (носители) сле- дующих типов: 1) полупроводниковые элементы; 2) пленочные эле- менты; 3) ферритовые сердечники; 4) магнитные барабаны; 5) маг- нитные диски; 6) магнитные лепты. Тип элемента определяет 334
тип ЗУ, в связи с чем выделяют полупроводниковые ЗУ, пленоч- ные ЗУ и т. д. Запоминающие элементы каждого типа обусловли- вают диапазон характеристик ЗУ, построенных на этих элемен- тах, и, следовательно, область применения ЗУ. Характеристики типичных ЗУ приведены в табл. 11.1. Таблица 11.1 Характеристики запоминающих устройств Тип ЗУ Емкость, байт Среднее время доступа, с Цикл ЗУ, мкс Удель- ная сто- имость, ед. сто- имости/ байт Удель- ная сто- имость сменного носителя инфор- мации ед. сто- имости/ байт Сверхбыстродействую- щие полупроводниковые 1-Ю3 0 0,02— 0,1 10я—1 о4 — Сверхбыстродействую- щие пленочные 10я— 3-104 0 0,1—0,3 5-102— 103 — Быстродействующие ферритовые 10»—10s 0 0,8—2,0 5-101— 2-102 — Ферритовые большой емкости 105—10е 0 5—12 10—30 — Магнитные барабаны 106—10’ 0,01 — 0,05 100— 800 * 3—5 — Магнитные диски 5- 10е— 10е 0,02— 0,2 60—125 * 0,1—1,0 2- IO'3 Магнитные ленты * Скорость передачи hikJ 107—108 ормации, к 0,5—2 байт/с. 40—80 * 0,1—0,8 5-Ю-5 Сверхбыстродействующие ЗУ. Сверхбыстродействующие ЗУ строятся на полупроводниковых элементах или магнитных плен- ках, что позволяет записывать и читать информацию со скоростью, близкой к скорости переключения логических элементов ЭВМ. При использовании элементов одного типа ЗУ меньшей емкости имеет более высокое быстродействие, чем ЗУ большей емкости. Типичная зависимость удельной стоимости хранения бита инфор- мации С (ед. стоимости!бит') от емкости Е (кбит) ЗУ с циклом 200 нс приведена на рис. 11.1. Успехи, достигнутые в последнее время в области микроэлек- троники, создали основу для увеличения емкости полупроводни- ковых ЗУ до 104—106 байт и снижения удельной стоимости до величин порядка 102 ед. стоимости/байт. В результате этого полупроводниковые ЗУ становятся более рентабельными, чем фер- ритовые. Вероятно, полупроводниковые ЗУ займут основное место в памяти машин четвертого поколения. 335
Ферритовые ЗУ. В ферритовых ЗУ в качестве запоминающих элементов используются ферритовые сердечники диаметром 0,5 •— 2 мм, магнитное состояние которых изменяется под действием элек- трических сигналов. На ферритовых сердечниках строятся ЗУ различной емкости (от десятков до миллионов байт) с циклом от 0,5 мкс и более. ЗУ большей емкости имеют, как правило, более низкое быстродействие, но меньшую удельную стоимость. Типич- ная зависимость удельной стои- мости С от емкости Е (кслов) приведена на рис. 11.2. Рис. 11.1. Зависимость удельной стоимости от ем- кости для сверхбыстро- действующих ЗУ (/, 2 — пленочные ЗУ; 3,4— по- лупроводниковые ЗУ на 64 и 32 разряда) Рис. 11.2. Зависимость удель- ной стоимости от емкости фер- ритового ЗУ (1 — ЗУ на 8 раз- рядов, 2 — ЗУ на 64 разряда) При считывании информации с ферритового сердечника она разрушается. В связи с этим цикл работы ферритового ЗУ разде- ляется на два подцикла. При чтении информации в первом под- цикле производится обращение к заданной ячейке и выборка за- писанного в ней слова, во втором подцикле производится восста- новление разрушенной информации путем перезаписи выбранного слова в ту же ячейку. При записи информации первый подцикл используется для затирания информации, записанной в эту ячейку ранее, а второй подцикл — для записи заданного слова. Длитель- ность первого подцикла (цикла чтения) составляет 0,5—0,6 от цикла обращения к ЗУ. Таким образом, слово оказывается выбран- ным па регистр ЗУ ранее, чем закончится цикл обращения к ЗУ. Над выбранным словом можно производить операции, не дожи- даясь момента окончания работы ЗУ, но не допуская повторного обращения к ЗУ раньше, чем закончится полный цикл. Использование указанного эффекта может повысить быстро- действие процессора. Для синхронизации работы процессора и ЗУ в последнем формируется двухразрядный код Z = zrz2 занятости ЗУ, поступающий по двухпроводной шине Z. Сигнал гг принимает 336
значение 1 в начале цикла ЗУ и значение 0 по окончании цикла. Сигнал z2 отмечает занятость регистра ЗУ: z2 = 0, если регистр свободен, и z2 — 1, если регистр занят. При чтении сигнал z2 при- нимает значение 1 в тот момент, когда слово, выбранное из задан- ной ячейки, поступает на регистр ЗУ, т. е. в момент окончания первого подцикла. Сигнал z2 переключается в 0 в момент опроса регистра. При записи сигнал z2 переключается одновременно с сигналом zx. Магнитные барабаны. ЗУ на магнитном барабане строятся по конструктивной схеме на рис. 11.3, а. Барабан 1 изготовлен из Рис. 11.3. Магнитный барабан (а) и размещение информации при последова- тельном (б) и последовательно-параллельном (в) способе записи немагнитного материала, на внешнюю поверхность которого на- носится тонкий слой магнитотвердого материала. Барабан вра- щается от электродвигателя 2 с постоянной скоростью, обычно равной от 33 до 100 об/с. Вдоль образующей барабана устанавли- вается блок магнитных головок 3. Часть поверхности барабана, проходящая под одной магнитной головкой, называется дорожкой. Дорожки 4 являются местом для записи информации. Емкость барабана определяется произведением количества ин- формации, хранимой на одной дорожке, и числа дорожек. Коли- чество информации, хранимой на одной дорожке, зависит от плот- ности записи информации и длины дорожки. Плотность записи характеризуется числом бит информации, размещаемых на 1 мм дорожки. Эта величина зависит от качества системы магнитная головка — магнитное покрытие и обычно равна 20—50 бит/мм. Длина дорожки определяется диаметром барабана. Характе- ристики магнитных барабанов, выпускаемых фирмой IBM для применения в универсальных ЭВМ, приведены в табл. 11.2. Информация на магнитном барабане может записываться по- следовательным, последовательно-параллельным или параллель- ным способом. При последовательном способе байты 5 информа- ции, адресуемые номерами 0, 1, 2, ..., Е — 1, размещаются вдоль дорожек 0, 1, .... D. При записи и чтении информация в каждый 337
Таблица 11.2 Характеристики магнитных барабанов Мо- дель Коли- чество доро- жек Емкость дорожки, байт Способ размещения информации Емкость барабана, млн. байт. Частота враще- ния, с"1 Среднее время доступа, мс Скорость передачи инфор- мации , кбайт/с 2301 200 20 483 Последова- тельный 4,09 57 8,6 304 2303 800 4 892 Последова- тельно-па- раллельный (по 4 бита) 3,9 57 8,6 1200 момент времени передается только через одну головку в последо- вательном коде. При последовательно-параллельном способе байт размещается вдоль образующей барабана на группе дорожек 0—7, 8—15 и т. д. (рис. 11,3, в) и обмен информацией ведется с группой из восьми дорожек. При параллельном способе вдоль образующей записывается слово информации, состоящее из нескольких байт. Каждому способу размещения информации свойственны опреде- ленные затраты оборудования и времени, необходимого для записи — чтения информации. При последовательном способе для записи — чтения достаточно иметь один усилитель, который по- следовательно обслуживает все дорожки. Число усилителей воз- растает в восемь и более раз при последовательно-параллельном и параллельном способах размещения информации, в результате чего увеличивается удельная стоимость хранения информации на барабане. Очевидно, что затраты времени на запись — чтение информации максимальны при последовательном способе разме- щения и уменьшаются с увеличением степени параллелизма в записи информации, в результате чего увеличивается быстро- действие ЗУ. В универсальных ЭВМ обычно используется после- довательный способ размещения информации как наиболее эко- номичный. Доступ к информации, хранимой па магнитном барабане, про- изводится с помощью адресов. Обычно наименьшей адресуемой еди- ницей информации является байт. При последовательном способе размещения информации адрес имеет следующую структуру: D В 1 k I I Здесь D — адрес дорожки; В — адрес байта, размещаемого на дорожке D. Указанный формат обеспечивает адресацию 2k+l еди- ниц информации. Адреса обрабатываются устройством управле- ния барабаном в следующем порядке: 1) поле D дешифрируется с целью подключения заданной дорожки к каналу записи—чте- ния; 2) устройство ожидает момента подхода байта В под зазор 338
магнитной головки; 3) с момента подхода байта В начинается пере- дача (запись—чтение) последовательности байтов В, В + 1, .... В + N — 1. В процессе передачи может возникнуть необходи- мость перехода с дорожки D на дорожку D + 1, Ь + 2 и т. д. Время доступа к магнитному барабану определяется суммой /д = ta + to, где tK — время коммутации магнитных головок и t0— время ожидания начала обмена. Время to является случай- ной величиной, зависящей от положения барабана в момент обра- щения к нему. Величина /о распределена в интервале [0, 1/<о J, где и — частота вращения барабана, исчисляемая числом оборо- тов в секунду. Обычно считается, что значение t0 равномерно распределено в указанном интервале и среднее время доступа к ЗУ /д = tK + l/2w. При о> = 50 с-1 имеем tn — 0,01 с. Магнитные диски. ЗУ на магнитных дисках строится по кон- структивной схеме на рис. 11.4. ЗУ состоит из пакета дисков 1, на поверхность которых нанесен слой магнитотвердого материала. Обычно пакет состоит из 6—25 дисков. Пакет вращается от электро- двигателя 2 с постоянной частотой вращения ©, равной 33—50 с-1. Запись и чтение информации производятся через магнитные го- ловки 3, которые связаны с механизмом доступа 4. Отдельная маг- нитная головка обслуживает совокупность дорожек 5, располо- женных на одной стороне диска. Число таких дорожек обычно равно 200—500. Механизм доступа обеспечивает перемещение магнитных головок между дорожками. При этом все магнитные головки устанавливаются на одноименные дорожки дисков. Сово- купность дорожек, связанных с магнитными головками при фикси- рованном положении механизма доступа, называется цилиндром. Число цилиндров 6 равно числу дорожек на поверхности магнит- ного диска, а количество дорожек на цилиндре — количеству магнитных головок. Характеристики некоторых магнитных дисков, выпускаемых фирмой IBM, приведены в табл. 11.3. Таблица 11.3 Характеристики магнитных дисков Модель Количество ра- бочих поверх- ностей Количество ра- бочих дорожек на каждой по- верхности Емкость дорож- ки. байт Емкость ЗУ, млн. байт Количество ме- ханизмов до- ступа Частота враще- ния дисков, с-1 Скорость пере- дачи информа- ции, кбайт/с 2311 10 200 3625 7,25 1 40 156 (сменные диски) 2314 20 200 7294 29,17 1 40 312 (сменные диски) 2302 46 492 4984 112,79 2 33 156 339
Информация па дисках размещается последовательно. Адрес единицы информации (обычно байта) имеет следующую структуру; АВС Здесь А — адрес цилиндра; В — адрес дорожки в цилиндре; С — адрес единицы информации в пределах дорожки В. Адреса обрабатываются устройством управления дисками. Рис. 11.4. Запоминающее [устройство на магнитных дисках Время обращения к диску является суммой четырех со- ставляющих: времени переме- щения механизма доступа, вре- мени коммутации головки, за- держки от вращения носителя и времени передачи данных. Рис. 11.5. Зависимость времени пе- ремещения механизма доступа (в мс) дисков 2311 от числа пересекаемых дорожек Время перемещения механизма доступа к цилиндру, содержа- щему требуемую информацию, является функцией от числа ци- линдров, через которые необходимо переместить механизм. Если механизм уже находится на заданном цилиндре, это время равно нулю. Максимальное время доступа соответствует случаю, когда механизм перемещается между двумя крайними дорожками диска. Время перемещения tn механизмов доступа в зависимости от числа пересекаемых дорожек в магнитных дисках моделей 2311 и 2302 (табл. 11.3) приведено на рис. 11.5 и 11.6. В дисках 2311 минимальное время доступа, соответствующее перемещению на один цилиндр, равно 25 мс, максимальное время — 135 мс и сред- нее — 75 мс. В модели 2302 имеющиеся 500 цилиндров (492 рабо- чих и 8 запасных) разбиты на две зоны по 250 цилиндров. Внешние и внутренние зоны цилиндров обслуживаются двумя механизмами доступа, снабженными независимыми приводами. Каждая зона разделяется на группы по 60, 40, 60, 40 и 50 цилиндров (рис. 11.6). Каждая группа делится на области из 10 соседних цилиндров. Время перемещения в пределах одной области равно 5 мс, между цилиндрами различных областей одной группы — 120 мс и между 340
различными группами — 180 мс. Так, перемещение между ци- линдрами 80 и 62 происходит за 120 мс, а перемещение между ци- линдрами 172 и 178— за 50 мс. Время коммутации головки незначительно, поскольку выпол- няется посредством переключения электронных схем. Задержка от вращения носителя равна времени, необходимому для того, □ по мс □ Wmc Рис. 11.6. Время перемещения механизма доступа дисков 2302 от дорожки D, до £>., (символ X соответствует любой цифре 0, 1, 2................................9) чтобы участок дорожки, с которым производится обмен информа- цией, подошел под магнитную головку. Это время определяется скоростью вращения дисков и лежит в пределах 0 < /0 < Средняя задержка обычно принимается равной половине времени оборота носителя Го = l/2w. Время на передачу данных зависит от скорости передачи информации, которая является функцией плот- ности записи информации и скорости вращения носителя, и коли- чества передаваемой информации. ЗУ на магнитных барабанах и дисках позволяют обращаться к любой области данных и называются ЗУ с прямым доступом. Магнитные ленты. ЗУ на магнитной ленте состоит из ленто- протяжного механизма (ЛПМ) и устройства управления. ЛПМ строится по конструктивной схеме на рис. 11.7. Наиболее широко 341
матизированный следящий используется магнитная лента шириной 12,7 мм в кассетах, со- держащих 750 м ленты. Лента 1 приводится в движение стартстоп- ным механизмом, состоящим из ведущих роликов 2 и тормоза 3. Контакт ленты с ведущими роликами и торможение осуществ- ляются пневматическим способом. За счет контакта с правым или левым роликом лента может переме- щаться в прямом или обратном на- правлении (в конец или начало лен- ты). Скорость движения ленты обыч- но составляет 2 м/с. Остановка ленты производится путем активного тор- можения. Время разгона и остановки ленты лежит в пределах 5—10 мс. Запись и считывание информации осуществляются блоком магнитных головок 4. При движении лента пе- рематывается между кассетами 5. Для согласования динамики быстро- действующего стартстопного узла и инерционных кассет имеется авто- привод, управление которым произ- водится путем контроля величины петель магнитной ленты. Для исключения выпадения ленты из кассет к концевым отрезкам ленты приклеиваются маркеры начала и конца ленты. В каче- стве маркеров используются кусочки фольги, на которые реа- гируют фотодатчики 6. Сигнал с датчиков начала и конца ленты приостанавливает движение. Рис. 11.8. Размещение информации па магнит- ной ленте (I — номера дорожек, II — разряды байта, III — стартстопный промежуток; п— 1, п, п + 1 — номера записей) Информация на магнитной ленте может размещаться в соответ- ствии с рис. 11.8. В данном случае лента содержит 10 дорожек. Дорожки 1—4 и 6—10 используются для записи разрядов 1 — 8 байта. Дорожка 5 служит для размещения синхронизирующих сигналов, которые отмечают позиции ленты, содержащие код байта. На дорожку 6 записывается признак четности кода байта К, используемый для контроля правильности хранимой на ленте информации. Плотность записи информации обычно составляет 342
от 16 до 64 бит/мм. Совокупность символов, записанных за одно обращение к магнитной лепте, называется записью. Местополо- жение записи на ленте определяется ее порядковым номером, от- считываемым от начала ленты. Записи разделяются стартстоп- ными промежутками, величина которых достаточна для остановки и последующего разгона ленты. Ясно, что емкость ленты зависит от ее длины, плотности записи информации и размера записи. Записи могут читаться в любом порядке, но с точки зрения затрат времени наиболее выгодно считывать информацию в порядке ее размещения на ленте. Запись информации производится только на участок ленты, следующий за предыдущей записью. Исключе- ние составляет первая и последняя запись, которые могут пере- записываться произвольное число раз. В связи с указанным поряд- ком обращения к информации, хранимой на магнитной ленте, ЗУ такого типа называются ЗУ с последовательным доступом. 11.2. Функции устройств управления внешними ЗУ Магнитные барабаны, диски и ленты подсоединяются к устрой- ствам управления (УУ), которое, в свою очередь, подключается к КВВ, управляющему процессом передачи информации между ОП и ВЗУ. В пределах УУ реализуются все действия по записи, поиску и чтению информации, хранимой в ЗУ, в связи с чем УУ однозначно определяет операционные возможности внешнего ЗУ. УУ выполняет следующие основные функции: 1) поиск данных в ЗУ путем перемещения механизма доступа или носителя ин- формации; 2) передачу данных между ЗУ и КВВ; 3) контроль кор- ректности данных; 4) формирование информации о текущем со- стоянии ЗУ. Порядок выполнения указанных функций зависит в первую очередь от формата, в котором информация хранится в ЗУ. Различие в порядке функционирования внешних ЗУ с пря- мым и последовательным доступом порождает различие в принци- пах функциональной и структурной организации обслуживающих их УУ. В наибольшей степени это различие связано с особен- ностями форматов записи данных. Формат дорожки ЗУ с прямым доступом. Во всех ЗУ с прямым доступом информация записывается в одном формате, предписан- ном УУ и согласованном с операционной системой, организующей обмен информацией между программами и ВЗУ. Элементарной областью хранения информации является дорожка ЗУ. Устанав- ливая порядок использования емкости дорожки для хранения ин- формации, тем самым определяем формат дорожки, т. е. форму представления информации в ЗУ. Каждая дорожка содержит опре- деленную вспомогательную информацию (адреса и длины записей) и основную информацию — данные, которые в ЗУ системы IBM/360 размещаются в соответствии с рис. 11.9. На различных дорожках ЗУ могут использоваться различные форматы. 343
Носитель информации (барабан или диск) имеет специальную физическую отметку — маркер начала дорожки. Сигнал, форми- руемый маркером, извещает УУ о начале прохождения дорожек под магнитными головками. На рис. 11.9 маркер начала обозна- чен символом V. Отдельные поля формата разделяются между собой промежут- ками П. Во время прохождения промежутков под головками в УУ выполняются некоторые действия, продолжительность которых определяет выбор длины промежутка. Промежутки между полями могут иметь разную длину. Дорожка начинается полем СА, в котором указывается соб- ственный (физический) адрес дорожки и ее состояние. Поле СА а) Рр____ ______________________________ w ПГМ4~5“~1 П | Д f $ 2, io ( 1 __ V7^]/7| С |/7 [ Д \П\Л\П| С |>7| 7л |/7| Л I Л | Рис. II.9. Форматы дорожек ЗУ с прямым доступом: а— счетчик—дан- ные; б— счетчик—ключ—данные имеет длину 7 байт и содержит следующую информацию. Фла- жок Ф — байт, определяющий состояние дорожки (исправная или дефектная) и ее использование (рабочая или запасная). Поле Ц — двухбайтный номер цилиндра, к которому относится дорожка. Хотя магнитный барабан физически является одним цилиндром, для удобства адресации множество его дорожек разделяется на цилиндры, содержащие, например, 10 соседних дорожек. Поле Г — двухбайтный номер головки, т. е. адрес дорожки в цилиндре. Код Ц. Г определяет адрес дорожки ЗУ. Два байта К исполь- зуются для контроля поля СА. Значение К равно сумме, получае- мой путем сложения полей Ф, Ц и Г с пересылкой переносов из 16-го разряда суммы в ее младший разряд (циклическое сложение по модулю 218). Поле К формируется при записи СА. В процессе чтения СА вычисляется значение циклической суммы, которое сравнивается с кодом R. Совпадение сумм с большой достовер- ностью свидетельствует о безошибочности считанной информации. За адресом СА размещаются записи R„, R}, ..., Rn. Информа- ция, относящаяся к одной записи, считывается и обрабатывается целиком. Запись Ro содержит информацию о дорожке. Эта инфор- мация формируется и используется системой программирования, в частности подсистемой управления данными. Содержание записи Ro будет конкретизировано ниже. Вслед за записью Ro на одной дорожке может размещаться одна или несколько записей данных /?1, ..., Rn. Каждая запись данных начинается с маркера 344
адреса А. Поле А — это двухбайтная область, которую порождает УУ, когда запись записывается. Код А позволяет УУ определять место начала записи при ее чтении. Записи данных .... Rn могут представляться в двух фор- матах: счетчик—данные (СД) и счетчик—ключ—данные (СКД). Записи формата СД (рис. 11.9, а) состоят из маркера адреса, поля счетчика и поля данных. Счетчик имеет длину 11 байт и со- стоит из следующих полей. Поля Ф, Ц и Г определяют флажок, адрес цилиндра и головки обычно так же, как в поле СА. Затем следует байт 3, определяющий номер записи в дорожке. В первой записи 3 = 1, во второй 3 = 2 и так далее до предельно допусти- мого значения 255. Поле ДК состоит из одного байта и определяет длину ключа. Записи формата СД идентифицируются нулевым значением поля ДК. Поле ДД является двухбайтным и указывает длину данных в байтах, которая может принимать значения от О до 65 535 включительно. Область счетчика завершается двухбайт- ным полем К, которое содержит код циклической суммы, исполь- зуемый для контроля корректности информации, записанной в дан- ной области. Поле данных состоит из последовательности байт основной информации, для хранения которой и предназначается ЗУ, и двух байт с кодом циклической суммы. Данные, представляемые в формате СД, идентифицируются номерами цилиндра, головки и записи, рассматриваемыми сов- местно в качестве адреса записи. Этот адрес определяет место- положение данных в ЗУ. Формат СКД (рис. 11.9, б) состоит из маркера адреса А, от- мечающего начало записи, области счетчика, области ключа и области данных. Принадлежность записи к формату СКД отме- чается ненулевым значением поля длины ключа ДК. Область ключа может содержать от 1 до 255 байт. Ключ идентифицирует следующие за ним данные. В качестве ключа может выступать шифр детали, табельный номер работника, номер банковского счета и т. п. Наличие ключа позволяет достаточно быстро найти местоположение требуемой записи. В большинстве случаев записи сопровождаются ключами. Из-за нарушения качества покрытия может возникнуть необ- ходимость в замене дефектной дорожки на резервную. Информация об этом содержится в записи До, состоящей из области счетчика и десятибайтной области данных. Счетчик имеет унифицированную структуру, а в восьми первых байтах области данных приводится информация о дорожке, заменяющей данную дорожку или за- меняемой данной дорожкой. Два последних байта в области дан- ных содержат код циклической суммы. Система программирова- ния организует такую замену автоматически и заносит перекрест- ные ссылки в записи /?0 соответствующих дорожек. Команды, реализуемые ЗУ с прямым доступом. Управление работой ЗУ производится командами, которые воспринимаются ка- налом и передаются для исполнения в УУ соответствующего ЗУ. 345
Команды разделяются на четыре группы: 1) управления; 2) записи; 3) чтения; 4) проверки состояния ЗУ. Команды управления обеспечивают поиск местоположения дан- ных в ЗУ. Команда ИСКАТЬ ДОРОЖКУ приводит к перемещению механизма доступа и (или) избирает указанную головку. В ре- зультате выполнения этой команды ЗУ подготавливается для за- записи—чтения данных. В большинстве случаев возникает не- обходимость в поиске данных, для которых известен идентифика- тор, собственный адрес или ключ. При этом команду поиска со- провождает аргумент поиска, в качестве которого может высту- пать идентификатор, ключ данных или ключ и данные совместно. УУ выполняет следующие команды поиска: ИСКАТЬ ПО РАВ- НОМУ СОБСТВЕННОМУ АДРЕСУ; ИСКАТЬ ПО РАВНОМУ АРГУМЕНТУ; ИСКАТЬ ПО БОЛЬШЕМУ АРГУМЕНТУ; ИСКАТЬ ПО БОЛЬШЕМУ ИЛИ РАВНОМУ АРГУМЕНТУ. Команда поиска вызывает сравнение аргумента, хранимого в ОП, с соответствующей информацией, считываемой с дорожек ЗУ. Так, при поиске по равному идентификатору последовательно про- сматриваются области счетчиков с целью поиска местоположения записи с заданным идентификатором (номером цилиндра, головки и записи). Поиск может быть распространен на одну дорожку или продолжен на последующие дорожки цилиндра. Команды поиска не вызывают передачу информации, но за ними следуют команды записи и чтения, инициирующие передачу. Команды записи вызывают передачу данных из ОП в ВЗУ. При записи УУ порождает байты циклического контроля, которые приписываются к соответствующим областям дорожки. Дорожка как информационная единица создается путем выполнения двух команд: ЗАПИСАТЬ СОБСТВЕННЫЙ АДРЕС; ПИСАТЬ ЗАПИСЬ, ОПИСЫВАЮЩУЮ ДОРОЖКУ. При выполнении этих команд в области СА и Ro заносится служебная информация, полу- чаемая из ОП. Только байт флажка и байты циклического кода порождаются самим УУ. После выполнения этих команд осталь- ная часть дорожки стирается и дорожка становится пригодной для приема других записей. Первый раз запись организуется командой ЗАПИСАТЬ СЧЕТ- ЧИК, КЛЮЧ И ДАННЫЕ. При этом УУ записывает маркер адреса А и переписывает в области счетчика, ключа и данных информацию, хранимую в заданной области оперативной памяти. Область ключа записывается только в том случае, если длина ключа ДК не равна нулю. Для обновления записей служат команды ЗАПИСАТЬ КЛЮЧ И ДАННЫЕ и ЗАПИСАТЬ ДАННЫЕ. Первая команда должна следовать за командой поиска ИСКАТЬ ПО РАВНОМУ ИДЕН- ТИФИКАТОРУ. Вторая команда должна следовать за командой ИСКАТЬ ПО РАВНОМУ ИДЕНТИФИКАТОРУ либо за командой ИСКАТЬ ПО РАВНОМУ КЛЮЧУ. В этом случае поиск и запись выполняются не более чем за один оборот носителя. 346
Команды чтения вызывают передачу информации из данной области носителя в ОП или проверку корректности ранее записан- ной информации. Байты циклического контроля употребляются только для проверки корректности информации и в ОП не пере- даются. Используется следующий набор команд чтения: Читать собственный адрес—передает пять байтов из области СА; Читать запись, описывающую дорожку — передает область счетчика и данные из записи 7?0; Читать счетчик — передает восемь байт области счетчика (без флажка и байт циклического контроля), идущего за ближайшим встречным маркером адреса; Читать счетчик, ключ и данные — полностью передает запись, идущую вслед за ближайшим встречным маркером адреса; Читать данные — следует за командой поиска и передает об- ласть данных из записи, отвечающей аргументу поиска; Читать ключ и данные — выполняется аналогично предыдущей команде, но чтение начинается с передачи области ключа. Для контроля корректности записанной информации исполь- зуются вышеуказанные команды чтения, которые в этом случае сопровождаются признаком блокировки передачи информации в ОП. При чтении в таком режиме УУ вычисляет циклический код для каждой считываемой области и сравнивает его с ранее запи- санным кодом. Совпадение кодов свидетельствует об отсутствии искажений в записанной информации. Необходимая последовательность команд поиска, записи и чтения генерируется программами системы управления данными по запросам на ввод—вывод информации, формируемым рабочими программами. Функции У У запоминающих устройств с последовательным доступом. ЗУ на магнитной ленте — типичный пример устройства с последовательным доступом. В результате больших затрат вре- мени на прогон магнитной ленты исключается возможность поиска информации в произвольном порядке и приходится ориентиро- ваться на последовательный доступ, когда информация записы- вается (читается) в область, следующую за предшествующей записью. Обычно УУ магнитной лентой реализует набор команд, обеспе- чивающих запись блока, запись блока со скачком, чтение блока, пропуск блока, возврат на блок, перемотку ленты и разгрузку ленты. Запись на магнитную ленту производится с того места, где находятся магнитные головки. По команде лента начинает пере- мещаться и через 5—10 мс, когда установится скорость движения ленты, начинается передача информации из ОП на ленту. Информация записывается посимвольно. Совокупность симво- лов, записанных на ленту одной командой, образует блок (зону) информации. Каждый записанный символ автоматически читается в целях проверки корректности записываемой информации. 347
Контроль производится обычно по признаку нечетности числа еди- ниц в символе. Если обнаруживается ошибка в записи, то запись прекращается и лента возвращается в начало блока. Процессор из- вещается об этой ситуации путем посылки сигнала прерывания СБОЙ ВНЕШНЕГО УСТРОЙСТВА. Чаще всего сбой при записи возникает из-за локального дефекта магнитной ленты. Для про- пуска дефектного участка используется команда записи блока со скачком. Запись со скачком выполняется так же, как и запись блока, но перед началом записи пропускается дополнительный участок ленты длиной, равной величине двух-трех стартстопных промежутков, в результате чего блок размещается на другом участке магнитной ленты. Повторный сбой при записи вызывает аналогичную процедуру сдвига блока. Отметим, что новую информацию можно записать только вслед за последним записанным блоком. Корректировать блок, распо- ложенный между ранее записанными блоками, нельзя, так как при этом нарушается информация, следующая за корректируе- мым блоком. Первый блок обычно содержит описание информа- ции, хранимой на ленте, в результате чего может возникать не- обходимость в перезаписи этого блока после того, как записана вся информация. Для обеспечения перезаписи второй блок запи- сывается со скачком. Команда чтения вызывает считывание информации из ближай- шего блока. В процессе чтения контролируется корректность ин- формации с использованием, например, признака нечетности. При обнаружении ошибки формируется сигнал прерывания, который обрабатывается супервизором. Реагируя на этот сигнал, супер- визор может повторить команду чтения. Если ошибка носит ста- бильный характер, то супервизор посылает оператору соответ- ствующее извещение. Для увеличения производительности ЗУ на магнитной ленте в некоторых устройствах реализуется команда ЧИТАТЬ В ОБ- РАТНОМ НАПРАВЛЕНИИ. Реализация этой команды позволяет прочесть информацию при движении ленты в обратном направле- нии, т. е. при перемещении ее из конца в начало. Остальные команды относятся к группе команд управления. Возврат на блок и пропуск блока только перемещают магнитную ленту вперед и назад на один блок. Эти команды используются в процессе поиска информации, хранимой на ленте. По команде перемотки магнитная лента перемещается до маркера начала, в результате чего магнитные головки устанавливаются перед пер- вым блоком. Команда разгрузки вызывает полную перемотку ленты на подающую кассету и исполняется перед тем, как необ- ходимо снять ленту. Одно УУ может обслуживать четыре—восемь лентопротяжных механизмов (ЛПМ). При этом одновременно с выполнением команд управления на одном или нескольких ЛПМ может выполняться команда записи или чтения на другом ЛПМ. 348
11.3. Концепция многоуровневой памяти память приемлемо» стоимости Рис. 11.10. Структура памяти универсаль- ной ЭВМ Для увеличения эффективности ЭВМ необходимо уменьшать стоимость и увеличивать быстродействие и емкость памяти. По- скольку невозможно сочетать эти три характеристики в одном ЗУ, приходится находить компромиссное решение, используя для организации памяти комплекс из нескольких разнотипных ЗУ. За счет этого удается построить с необходимой емкостью и быстродействием. Память универсальных ЭВМ строится по схеме, приведенной на рис. 11.10, и в структурном отноше- нии разделяется на два уровня: оперативную па- мять (ОП) и внешнюю па- мять (ВП). Информация (програм- мы и данные), обрабаты- ваемая процессором в те- кущий момент времени, хранится в ОП, которая обычно состоит из несколь- ких быстродействующих ферритовых ЗУ. Цикл об- ращения к ЗУ оператив- ной памяти обычно соста- вляет 0,75—5 мкс. Малые ЭВМ снабжаются ОП емкостью^ порядка 16— 32 кбайт, средние — 32— 128 кбайт и большие ЭВМ имеют ОП емкостью 512— 1024 кбайт. Во многих случаях быстродействие ОП оказывается недоста- точным для обеспечения требуемой скорости работы процессора. Тогда между процессором и ОП ставится буферное ЗУ (БЗУ), иначе называемое сверхоперативным ЗУ. БЗУ имеет относительно небольшую емкость, равную 32—512 словам, но высокое быстро- действие. В качестве буферных обычно используются пленочные или полупроводниковые ЗУ с циклом обращения 100—500 нс. В БЗУ хранятся слова информации, наиболее интенсивно исполь- зуемые процессором при решении задач. При этом значительная часть обращений процессора к ОП обслуживается БЗУ, в резуль- тате чего суммарная производительность буферного и оператив- ного ЗУ оказывается достаточной для обеспечения работы процес- сора. 349
Информация, размещаемая в ОП, может обеспечить непрерыв- ную работу процессора в течение небольшого промежутка времени, не превышающего нескольких секунд. По истечении этого времени возникает необходимость загрузки в ОП новых порций инфор- мации, затребованных программами, и, следовательно, вывода из памяти части информации, на место которой будет вводиться но- вая информация. Для хранения основной доли информации, с ко- торой оперирует ЭВМ, используются ЗУ большой емкости, струк- турно входящие в состав внешней памяти ЭВМ. ВП состоит из совокупности ВЗУ (рис. 11.10), в качестве которых используются ферритовые ЗУ большей емкости с циклом обращения 5—12 мкс, а наиболее часто — магнитные барабаны МБ, диски МД и ленты МЛ. Ферритовые ЗУ, МБ и МД относятся к быстродействующим ВЗУ, а МЛ — к медленнодействующим ВЗУ. Заметим, что про- цессор не имеет прямого доступа к информации, хранимой в ВП. Эта информация становится доступной процессору только после выполнения операции ввода—вывода, вызывающей передачу ин- формации в ОП. В памяти ЭВМ хранится информация, имеющая отношение к задачам, обрабатываемым ЭВМ на данном отрезке времени. Прочие программы и данные размещаются на сменных носителях (сменных магнитных дисках и лентах), совокупность которых обра- зует архив ЭВМ. t Когда операционная система инициирует очередную задачу, оператору посылается совокупность приказов на установку не- обходимых носителей в заданные ЗУ. Эти приказы исполняются обслуживающим персоналом ЭВМ вручную. ВЗУ подключаются к ОП посредством КВВ. На рис. 11.10 вы- делены три канала /</, К‘2 и КЗ. Каналы выполняют операции ввода—вывода, инициируемые процессором. Отдельная операция вызывает передачу информации между двумя заданными обла- стями памяти: областью ОП и областью ВЗУ. Обычно к одному каналу подключается несколько ВЗУ. Команды управления, вы- зывающие перемещение механизма доступа или носителя, могут выполняться параллельно на нескольких ЗУ. Во время передачи информации любое ВЗУ монополизирует канал, в результате чего доступ к остальным ЗУ, подключенным к этому же каналу, в это время становится невозможным. Если используются М каналов, то в памяти ЦВМ могут одновременно развиваться М процессов об- мена информацией между ОП и ВЗУ. Таким образом, т ВЗУ, подключенных к одному каналу, можно рассматривать как одно ЗУ, имеющее m-кратную емкость и в т раз меньшее время доступа. При наличии М каналов затраты времени на передачу информа- ции уменьшаются примерно в М раз. Точные оценки производи- тельности М-канальной системы могут быть получены методами теории массового обслуживания. Обмен информацией между ЗУ ЭВМ организуется системой управления данными, являющейся частью операционной системы 350
Запросы на передачу информации возникают в операционной .системе в момент инициирования задач и в программах, описываю- щих алгоритмы решения задач. Запросы поступают в систему уп- равления данными, которая планирует порядок их выполнения и формирует совокупность команд ввода—вывода, обеспечивающих поиск и передачу затребованной информации. Команды ввода— вывода исполняются КВВ и УУ соответствующих ЗУ. Порядок использова- ния ЗУ в процессе реше- ния задачи планируется программистом при соста- влении программы, а ме- сто хранения информа- ции конкретизируется су- первизором памяти, рас- пределяющим рессурсы памяти между зада- чами. В зависимости от по- рядка использования ВЗУ в процессе решения за- дач, т. е. в функциональ- ном отношении, память может разделяться более чем на два уровня. Па- мять будет двухуровневой в функциональном отноше- нии, если при решении задач для хранения каж- дого набора данных ис- пользуется только одно ВЗУ, что исключает необ- Рис. 11.11. Потоки информации в много- уровневой памяти ходимость передислокации информации ВЗУ. Пример распределения потоков информации в двухуровневой памяти приведен на рис. 11.11, а. Данные читаются в ОП с ленты МЛ1 и результаты обработки записываются на ленту МЛ2. Для хра- нения других наборов данных используется диск МД. В этом слу- чае ОП относится к первому уровню, а ВЗУ МЛ1, МЛ2 и МД — ко второму. В памяти выделяются три и более уровня, если в про- цессе решения задач имеет место передислокация данных между различными ВЗУ. Так, ЗУ могут использоваться по схеме на рис. 11.11, б, соответствующей трехуровневой памяти. Перед на- чалом решения задачи данные, хранимые на ленте МД11, пере- носятся на диск МД. Обработка данных проходит с использова- нием ресурсов МД, после чего результаты выводятся из МД на ленту МЛ2. В этом случае ЗУ на магнитных лентах МЛ1 и МЛ2 351
образуют третий уровень памяти. Из рис. 11.10 ясно, что ВЗУ могут взаимодействовать друг с другом только через ОП. Взаимодействие ЗУ при трехуровневой организации памяти можно представить менее подробной схемой на рис. 11.11, в. Та- кой способ функциональной организации памяти позволяет зна- чительно уменьшить время решения задач, если обращение к сег- ментам данных происходит многократно, что требует пересылки данных из медленнодействующих ВЗУ в быстродействующие. 11.4. Организация оперативной памяти Функцией оперативной памяти является хранение слов инфор- мации, каждое из которых в равной мере доступно процессору и другим устройствам ЭВМ, связанным с ОП. Равнодоступность слов достигается путем присваивания адреса каждой ячейке ОП и обеспечения возможности доступа к информации при любом порядке поступления адресов. В структурном отношении ОП со- стоит из комплекса быстродействующих ЗУ, охваченных общей схемой управления. В простейшем случае ОП содержит единствен- ное ЗУ. Многоблочная оперативная память. Емкость быстродействую- щих ферритовых ЗУ, выпускаемых промышленностью, обычно лежит в пределах 16—64 кслов. Такое ограничение на емкость от- дельного ЗУ связано со следующими обстоятельствами. Во-пер- вых, как отмечалось в п. 11.1, быстродействие ЗУ уменьшается с ростом емкости, что приводит к необходимости ограничивать емкость для уменьшения длительности цикла ЗУ. Во-вторых, тех- нологический разброс параметров ферритовых сердечников при- водит к появлению помех при считывании информации, величина которых быстро возрастает с увеличением емкости ЗУ, что также ограничивает предельную величину емкости ЗУ. В-третьих, чтобы обеспечить приспосабливаемость ЭВМ к конкретным потреб- ностям пользователей, применяется принцип модульного по- строения. При применении этого принципа к ОП используются модули (блоки) емкостью, например, 32 или 64 кслов и строится на их основе ОП любой большей емкости. Таким образом, в общем случае память заданной емкости состоит из нескольких ЗУ, т. е. является многоблочной. Адреса ячеек многоблочной оперативной памяти имеют сле- дующую структуру: 1 т В С 1 k 1 I (Н.1) Здесь В — /г-разрядный адрес блока; С — /-разрядный адрес ячейки в блоке В, а также предполагается, что все блоки имеют одинаковую емкость, равную двум словам. 352
Многоблочная ОП строится по схеме рис. 11.12. В данном случае интерфейс памяти состоит из шины адреса ША, по которой передается слово со структурой (11.1), шины управления ШУ, шин чтения и записи ШЧТ и ШЗП и шины идентификации ШИ, по которой передается один или два сигнала, отмечающих период занятости соответствующего ЗУ. Поле адреса ША (1 : k) дешиф- рируется с целью выработки сигнала, подключающего шину ШУ к заданному блоку. Предполагается, что по сигналу записи ЗП или чтения ЧТ одно ЗУ принимает адрес ША (k 4- 1 : tn) и, воз- Рис. 11.12. Структура многоблочной оперативной памяти можно, слово ШЗП, после чего выполняется цикл записи или чте- ния под управлением автономного устройства управления, встро- енного в каждый блок ЗУ. В функциональном отношении У-блочная ОП может рассматри- ваться как одно ЗУ с емкостью, равной сумме емкостей блоков, и быстродействием, примерно равным быстродействию отдельного блока. Оперативная память с многоканальным доступом. Из рис. 11.10 видно, что ресурсы ОП используются несколькими устройствами — процессором и КВВ. Эти устройства функционируют одновременно и независимо друг от друга, генерируя обращение к памяти с целью записи и чтения слов информации. Поскольку в каждый момент времени память может обслуживать только одно обращение, т. е. только одно устройство, возникает задача распределения ресур- сов памяти между несколькими устройствами. Память, ресурсы которой распределяются между несколькими потребителями (ка- налами), называется памятью с многоканальным доступом. Правило выбора канала, которому будет предоставлено обслу- живание, определяется дисциплиной обслуживания. Наиболее 12 С. А. Майоров. Г. И. Новиков 353
(11.2) (11.3) естественной является дисциплина обслуживания в порядке по- ступления запросов, при которой первым обслуживается запрос, поступивший раньше других запросов. Конфликтная ситуация, возникающая при одновременном поступлении запросов от не- скольких каналов, разрешается путем присваивания каналам раз- личных приоритетов. Приоритет задается числом. Меньшее зна- чение числа соответствует более высокому приоритету, т. е. боль- шему праву на предоставление обслуживания. Описанная дис- циплина обслуживания называется обслуживанием с относитель- ными приоритетами. Обозначим сигналы запросов к памяти от каналов 1, ..., М переменными Х1( ..., 'Кт и сигналы, разрешающие соответствую- щим каналам доступ к памяти, переменными рх, ..., рм. Сигнал рк может принять единичное значение, если одновременно выпол- няются следующие три условия: 1) имеется запрос к памяти от канала; 2) отсутствуют запросы Хх, ..., от каналов с более высокими приоритетами; 3) не начато обслуживание каналов k + 1, ..., М, т. е. отсутствуют сигналы рк+1, ..., рм. Таким об- разом, переменные рк являются следующими функциями других переменных: Pk = • ’^k-i^kPk+i' • • Р м‘ В случае четырех каналов доступа к ОП имеем: Pi — ^РгРзРь Рз — ^Д.Аз^; Рз= ^i^zPaPv Pi ~ . Принцип построения памяти с многоканальным доступом ил- люстрируется рис. 11.13. Совокупность цепей, составляющих ин- терфейс ОП, поступает с каналов К 1; Л2> А3 и от процессора К4. Каналы генерируют запросы кк, принимающие значение 1 в мо- мент обращения к памяти с целью записи или чтения слова инфор- мации. Эти сигналы обрабатываются схемой анализа приоритетов (САП), реализующей систему функций (11.3). В любой момент вре- мени только один сигнал рк может принять значение 1. Этот сиг- нал подключает один канал к ОП. Канал будет связан с памятью до тех пор, пока \к — 1, т. е. до конца обслуживания, соответству- ющего моменту окончания цикла записи—чтения. В этот период все остальные запросы ожидают момента окончания обслужива- ния, после которого схема выберет на обслуживание очередной запрос с наивысшим приоритетом. Приоритеты распределяются следующим образом. Низший приоритет присваивается процессору, более высокие — каналам ввода—вывода, причем каналу с большим быстродействием при- сваивается больший приоритет. Такое распределение приоритетов между процессором и каналом объясняется тем, что каналы, к ко- торым подключены ВЗУ, не могут долго ждать — большое время ожидания приводит к потере информации, записываемой или счи- 354
тываемой с непрерывно движущегося носителя. Процессор может ожидать обслуживания сколько угодно долго, в результате этого лишь уменьшается его быстродействие. Указанное распределение приоритетов приводит к тому, что процессор работает в режиме приостановок: в моменты обмена информацией между внешним устройством и ОП процессор простаивает. В результате этого быстродействие процессора зависит от интенсивности потока ин- формации между ОП и внешними устройствами и уменьшается с ро- стом интенсивности потока. Оперативная память с расслоением обращений. Многоблоч- ную ОП можно построить таким образом, чтобы блоки функцио- нировали параллельно во времени, в результате чего в памяти будут выполняться одновременно несколько действий записи- чтения, инициируемых процессором и каналами ввода—вывода. В М-блочной памяти такого типа обращение к блокам ЗУ0, ЗУ!.. •ЗУЛ-1 приводит к записи—чтению N слов примерно за один цикл, что влечет увеличение производительности памяти в N раз. Много- блочная ОП, в которой допускается совместное выполнение не- скольких обращений к разным блокам, называется памятью с рас- слоением обращений. М-блочная память с расслоением обращений и 7И-канальным доступом функционирует во времени следующим образом. 12* 355
1. Путем анализа приоритетов каналов и состояний блоков па- мяти выделяется канал К с наивысшим приоритетом, обращаю- щийся к блоку В, свободному в данный момент времени. 2. Информация с шин канала К. передается в блок памяти В, который начинает выполнять операцию записи или чтения слова с заданным адресом. Если канал К инициирует запись слова, то после приема адреса и слова блок В посылает в канал сигнал об окончании обслуживания, не дожидаясь окончания цикла записи. Блок В считается занятым в течение всего цикла записи. Если канал К инициирует операцию чтения слова, то после передачи адреса слова в ЗУ память прекращает связь с данным каналом и переходит к следующему действию. 3. Путем анализа состояний блоков памяти выделяется блок В, закончивший операцию чтения и хранящий выбранное слово на своем выходном регистре. Определяется канал К, инициировав- ший операцию чтения в блоке В. Слово из блока В передается в канал Л, после чего блок В считается свободным. Если такие блоки отсутствуют, память начинает выполнять действие 1. . Указанные действия реализуются устройством управления опе- ративной памятью, которое содержит схемы, анализирующие при- оритеты запросов и состояния блоков, и схемы коммутации шин каналов и блоков. Совмещение работы блоков во времени становится возможным, если последующие обращения к памяти адресованы к блокам, не занятым обслуживанием предшествующих запросов, другими сло- вами, если последовательность обращений будет расслоена между блоками. Степень расслоения обращений характеризуется коэф- фициентом расслоения, равным среднему числу обращений к па- мяти, которые могут быть приняты на обслуживание одновре- менно. Коэффициент расслоения имеет максимальное значение, равное N, если последовательность обращений адресуется к бло- кам в следующем порядке: О, 1...N — 1,0,1...,#- 1,0, 1,... Коэффициент расслоения принимает минимальное значение, равное 1, если все обращения адресуются к одному блоку. Следо- вательно, для увеличения производительности памяти необходимо распределить информацию по блокам таким образом, чтобы обра- щения к ОП со стороны процессора и КВВ были в максимальной степени расслоены. Эта задача может решаться следующими двумя способами. Процессор генерирует последовательность обращений к ОП, состоящую из чтения команды, чтения операндов и записи резуль- татов. Для расслоения обращений программную информацию можно разместить в блоке 0, а данные — в блоках 1, 2 и 3. Та- ким же образом можно распределить по блокам вводимую—вы- водимую информацию, добиваясь, например, того, чтобы в про- цессе ввода—вывода информации из блока В процессор минималь- 356
ное число раз обращался к этому блоку и чтобы параллельно ра- ботающие КВВ обращались к разным блокам ОП. Такой способ расслоения обращений порождает дополнительные ограничения на процесс распределения памяти, выполнение которых в вычисли- тельных системах вызывает значительные трудности. В связи с этим данный способ расслоения обращений используется только в специализированных системах, реализующих четко установлен- ный список алгоритмов, которые могут быть тщательно проанали- зированы с целью оптимального распределения информации по блокам памяти. В универсальных ЭВМ, ориентированных на решении произ- вольного класса задач, наиболее широко используется способ рас- слоения обращений за счет расслоения адресов. Этот способ основы- вается на следующих предположениях. Процессор обращается к командам, адреса которых последовательно принимают следую- щие значения: а, а + 1, а + 2,..., а + /а, 0, 0 + 1,• •., 0 ~Ь V ~Ь !»•••• т. е. при чтении команд наиболее вероятен случай, когда следую- щая команда выбирается из ячейки с адресом, на единицу боль- шим адреса предыдущей команды. Аналогичная последователь- ность адресов генерируется процессором при чтении и записи слов данных. КВВ передают информацию сегментами, слова ко- торых размещаются в последовательности ячеек с адресами б, 6+1, .... 6 + I. Сказанное позволяет предположить, что типич- ным случаем распределения адресов обращений к памяти яв- ляются последовательности вида а, а + 1, а + 2, ... Из этого следует, что расслоение обращений возможно, если ячейки с адре- сами а, а + 1, а + 2, ... будут размещены в блоках 0, 1,2, ... Такое распределение ячеек по блокам обеспечивается за счет ис- пользования адресов вида 1 т С В 1 /1 k (U.4) Здесь В — /г-разрядный адрес блока; С — /-разрядный адрес ячейки в блоке В. Полезно этот формат адреса сопоставить с фор- матом (11.1). При указанном способе адресации 4-блочной памяти адреса 0, 4, 8, ... относятся к блоку 0, адреса 1, 5, 9, ... — к блоку 1, адреса 2, 6, 10, ... — к блоку 2 и адреса 3, 7, 11, ... — к блоку 3. В результате этого последовательность обращений к ад- ресам 0, 1, 2, 3, 4, 5, ... будет расслоена между блоками 0, 1, 2, 3, 0, 1, ... Значение коэффициента расслоения и, следовательно, степень увеличения производительности ОП зависит от класса решаемых машиной задач, порождающего определенный характер распре- деления адресов в последовательных обращениях к памяти. Для 357
универсальных ЭВМ коэффициенты расслоения при использова- нии 2-, 4- и 8-блочной памяти обычно лежат в пределах 1,2—1,3; 1,7—2,2 и 3,4—4,2 соответственно. 11.5. Буферные (сверхоперативны^ устройства запоминающие Для уменьшения затрат времени на чтение и запись операндов между процессором и ОП ставится быстродействующее ЗУ неболь- шой емкости, в котором размещаются слова, наиболее интенсивно используемые на текущем этапе решения задачи. Такого рода ЗУ называются буферными или сверхоперативными. Если То и 7\ — длительность цикла оперативного и буферного ЗУ соответственно и ©бращения к буферному ЗУ происходят с вероятностью plt то Рис. 11.14. Характеристики бу- Рис. 11.15. Схемы включения буферного ЗУ ферного ЗУ Разделив обе части выражения (11.5) на То и обозначив т]=Т/Т0; Ц1=Т1//Т0> получим П = 1 — РД1 — П1)- (U.6) Здесь ц — относительное время обращения к буферизованной па- мяти, исчисляемое в долях цикла То; hi — относительное быстро- действие буферного ЗУ. Зависимость i] = / (plt hi) приведена на рис. 11.14. Обычно быстродействие буферного ЗУ в 4—10 раз больше быстродействия оперативной памяти, т. е. hi = 0,1-<-0,25. Принцип включения буферного ЗУ (БЗУ) между АУ и ОП ил- люстрируется рис. 11.15. Для выборки операнда, отсутствующего в БЗУ, производится обращение к ОП и операнд по цепи 1 пере- дается в А У и БЗУ. Запись операнда в БЗУ производится в пред- положении, что этот операнд может потребоваться на последую- щем этапе вычислений. Если операнд размещается в БЗУ, то он выбирается по цепи 2. Результаты арифметических операций по- сылаются в БЗУ по цепи 3. БЗУ разгружается по мере надобности путем пересылки хранимых в нем слов в 0/7. Для разгрузки БЗУ служит цепь 4. Уменьшение числа обращений к ОП происходит 358
за счет повторных обращений к операндам и результатам, ранее загруженным в БЗУ. Количество обращений к БЗУ зависит от емкости БЗУ, класса решаемых задач и способа организации БЗУ. БЗУ классифицируются в зависимости от способа доступа к хранимой в них информации, который определяется принципом адресации ячеек ЗУ. Наиболее широко используются ЗУ с пря- мой, магазинной и ассоциативной адресацией информации. Буферные ЗУ с прямой адресацией. ЗУ с прямой адресацией (рис. 11.16, а) состоит из совокупности регистров Р [0], ... ...,Р[Л1], связанных с входной X и выходной Y шинами, по которым передаются «-разрядные слова. Адрес регистра, к которому произ- водится обращение с целью записи или чтения информации, по- ступает по шине А БЗУ. Дешифратор адреса ДША формирует управляющие сигналы 0, 1, ... Л4, подключающие регистр с задан- ным адресом к шинам БЗУ. БЗУ подключается к АУ и ОП по схеме на рис. 11.16, б. В дан- ном случае для передачи информации между устройствами ис- пользуется «-разрядная магистраль, позволяющая выполнять лю- бые микрооперации передачи между регистрами Р, РБЗУ и РОП. Управление передачами производится по командам. В рассматри- ваемой схеме команды содержат два адреса. Адрес А1 определяет регистр БЗУ. Поле А2 команды используется для представления адреса ОП, но может содержать адрес БЗУ. Назначение адреса А2 определяется признаком, включенным в поле кода операции ДОП. Обмен информацией между АУ, БЗУ и ОП программируется 359
командами, инициирующими посылочные и арифметические опе- рации. Команды вызывают следующие действия: Наименование операции ЗАГРУЗИТЬ ЗАПИСАТЬ АО1 АО2 АОЗ Операция ОП |Л2]-> БЗУ {А 1]; БЗУ [А1]-^ ОП [Л2]; БЗУ [А 1]* БЗУ [А2] —БЗУ |Л1]; БЗУ |А1 ] * ОП [А2] -> БЗУ [А 1 ]; БЗУ [А1]*ОП [Л2] -»ОП [А2]. Обмен информацией между БЗУ и ОП выполняется посылоч- ными операциями ЗАГРУЗИТЬ и ЗАПИСАТЬ. В данном случае определены три модификации арифметических операций АО, ини- циирующие в АУ заданную операцию и отличающиеся порядком использования адресов. БЗУ с прямой адресацией обычно имеют емкость 16 слов и в редких случаях — 32—64 слова. Порядок использования ем- кости БЗУ определяется в процессе разработки системы програм- мирования ЭВМ, т. е. является компетенцией программистов. Естественно, что в БЗУ должна загружаться наиболее интенсивно используемая информация. В ЭВМ третьего поколения БЗУ с пря- мой адресацией применяется в первую очередь для хранения ба-, эовых адресов и индексов, которые многократно используются при обработке команд и, кроме того, часто модифицируются путем выполнения над ними арифметических операций. Свободная часть ЗУ используется для размещения данных, относящихся к решае- мым задачам. При программировании задач обычно отсутствует априорная информация о частоте использования данных в про- цессе счета, что ограничивает возможность оптимальной загрузки БЗУ. Особую сложность этот вопрос приобретает при автоматиче- ском программировании, когда машинные программы составляются на основе алгоритмов, записанных в терминах процедурно-ориен- тированных языков. В связи с этим работу с БЗУ можно эффек- тивно запрограммировать только на уровне стандартных про- грамм, реализующих достаточно элементарные процедуры вы- числения функций, преобразования чисел и т. п. Таким образом, функции БЗУ с прямой адресацией обычно ограничиваются хра- нением модификаторов адресов и операндов, относящихся к стан- дартным программам системы математического обеспечения ЭВМ, в результате чего БЗУ используется в процессе счета недоста- точно интенсивно и увеличивает производительность процессора не более чем на 15—20%. Обычно БЗУ с прямой адресацией встраивается в процессор и рассматривается как внутренняя память самого процессора. Запоминающие устройства с магазинной адресацией. Неко- торый автоматизм в процессе планирования работы БЗУ можно 360.
Рис. 11.17. ЗУ с магазинной адресацией ЗУ в порядке А, В, С, то внести путем магазинной адресации ячеек ЗУ. Для магазинной адресации ЗУ (рис. 11.16, а) используется счетчик адреса СЧА (рис. 11.17). Перед началом работы СЧА устанавливается в со- стояние 0 и память считается пустой. Примем, что состояние СЧА определяет адрес первой свободной ячейки. Слово загружается в ЗУ с входной шины X в момент поступления сигнала записи ЗПМ. По сигналу ЗПМ слово X записывается на регистр Р [СУА1, номер которого определяется текущим состоянием счетчика адреса, после чего с задержкой, достаточной для вы- полнения микрооперации передачи Р [СУА ]: = X, состояние счет- чика увеличивается на единицу. Та- ким образом, при последовательной загрузке слова А, В и С размеща- ются в регистрах с адресами Р [S ], Р IS + 11 и Р [S + 2), где S — со- стояние счетчика на момент начала загрузки. Операция чтения слова из ЗУ инициируется сигналом ЧТМ, при поступлении которого состояние счетчика уменьшается на единицу, после чего на выходную шину Y поступает слово, записанное в ЗУ последним. Если слова загружались в они могут быть прочитаны только в обратном порядке С, В, А. Принцип магазинной адресации оказывается весьма удобным при вычислении арифметических и булевых выражений. В этом случае исходные значения загружаются в ЗУ из ОП. Все проме- жуточные результаты и конечный результат автоматически засы- лаются в ЗУ. Вычисление выражения заканчивается записью результата в ОП. следующий список Команда ЗАГРУЗИТЬ А АО ЗАПИСАТЬ А ПОВТОРИТЬ Для работы с магазинным ЗУ используется команд: Операция . ОП [А] -> ЗУ [С7А]; ЗУ [СЧА - 2] * ЗУ [СЧА - 1 ] -> ЗУ [СЧА - 2]! ЗУ [СЧА — 1]->0П [А]; ЗУ[СЧА-1] — ЗУ [С7А]; ЗУ [СЧА — 2]—> ЗУ [СЧА — 1]; ЗУ[СУА- 1] — ЗУ[СЧА — 2]. ПЕРЕСТАВИТЬ В описании операций значение счетчика указывается на мо- мент начала операции. По команде ЗАГРУЗИТЬ слово из ячейки А оперативной памяти передается в очередную свободную ячейку магазинного ЗУ. Команда АО является безадресной (0-адресной) и содержит только код операции. По команде ЗАПИСАТЬ в ячей- ку А оперативной памяти посылается слово, хранимое в последней занятой ячейке ЗУ. Команда ПОВТОРИТЬ заводит копию слова 361
и используется для возведения в целую степень. Команда ПЕ- РЕСТАВИТЬ вызывает перестановку двух последних слов, бла- годаря чему упрощается выполнение операций вычитания и деле- ния, не обладающих коммутативностью. Программирование выражений осуществляется в два этапа. На первом этапе исходная запись выражения преобразуется в бес- скобочную форму (обратную польскую запись). В этой записи по- рядок следования операндов и знаков операций строго соответ- ствуют порядку выполнения действий с магазинным ЗУ. На вто- ром этапе каждому символу бесскобочной формы ставится в соот- ветствие одна из трех первых команд. Например, арифметиче- скому выражению У: ~AxBx((C + D)/(ExF + H)-K) соответствует следующая бесскобочная форма: YABxCD + EFxH X—. По этому представлению выражения построена программа, приведенная в табл. 11.4. Переменные а, Ь, ..., у обозначают адреса ячеек ОП, в которых хранятся значения А, В, .... Y соответ- ственно. Символ * отмечает состояние счетчика адреса на момент окончания операции. Из приведенной программы видно, что коли- чество обращений к ОП равно числу переменных в арифметиче- Таблица 11.4 Вычисление арифметического выражения Команда Содержание ячеек ЗУ с адресами 0 1 2 3 4 ЗАГРУЗИТЬ а А * ЗАГРУЗИТЬ Ь А в * УМНОЖИТЬ АВ * ЗАГРУЗИТЬ с АВ с * ЗАГРУЗИТЬ d АВ с D * СЛОЖИТЬ АВ с+ D * ЗАГРУЗИТЬ е АВ С+ D Е * ЗАГРУЗИТЬ / АВ С+ D Е F * УМНОЖИТЬ АВ С+ D EF * ЗАГРУЗИТЬ h АВ С+ D EF н * СЛОЖИТЬ АВ C+D EF+ Н * РАЗДЕЛИТЬ АВ (C+D)!FF+H) * ЗАГРУЗИТЬ k АВ (C+D)/(EF+H) к * ВЫЧЕСТЬ АВ (C-YD)/(EF+H)—K * УМНОЖИТЬ Y * ЗАПИСАТЬ у * 362
ском выражении. Все промежуточные результаты автоматически сохраняются в ЗУ, благодаря чему исключается необходимость в засылке их в ОП и в последующей выборке этих значений. За счет этого уменьшаются затраты времени на вычисление выра- жений, т. е. увеличивается быстродействие ЭВМ. Выше было отмечено, что принцип магазинной адресации по- рождает О-адресные команды, состоящие только из кода опера- ции. Малая длина таких команд позволяет размещать в одном слове памяти сразу несколько команд. Этот фактор также при- водит к уменьшению числа обращений к ОП при выборке про- граммной информации и, следовательно, увеличивает быстро- действие ЭВМ. Поскольку принцип магазинной адресации приводит к эконо- мии времени только при вычислении достаточно сложных выра- жений, то он находит применение в ЭВМ, ориентированных на ре- шение научных и технических задач. Если процент арифметиче- ских и логических операций невелик и в задачах фигурируют в основном короткие выражения, при вычислении которых от- сутствует необходимость в хранении большого числа промежуточ- ных значений, то использование ЗУ с магазинной адресацией дает очень небольшой эффект. Буферные ЗУ с ассоциативной адресацией. В ходе вычисли- тельного процесса программа последовательно активизирует слова, хранимые в соответствующих ячейках ОП. Активизация прояв- ляется в том, что с некоторого момента программа начинает ра- ботать с этим словом. Спустя некоторое время программа пере- стает обращаться к этому слову, т. е. теряет свою активность. В течение интервала времени лишь часть слов, из числа хра- нимых в ОП, является активной, и для повышения быстродей- ствия ЭВМ целесообразно именно эти слова переместить в быстро- действующую буферную память. Такое перемещение удобно трак- товать как подмену активных ячеек ОП ячейками БЗУ. Под- мена ячейки сводится к передаче слова из ячейки ОП в ячейку БЗУ с тем, чтобы последующие обращения к этому слову обслу- живались БЗУ, но не ОП. Важно заметить, что любая ячейка БЗУ может подменять любую ячейку А оперативной памяти. Тот факт, что ячейка а подменяет А, должен отмечаться присваиванием ячейке а нового адреса А. Тогда последующие обращения к ячей- ке А будут обслуживаться уже ячейкой а. Описанная процедура подмены удобно реализуется с помощью ассоциативного ЗУ. Ассоциативное ЗУ (АЗУ) включается в качестве буфера в соот- ветствии со схемой на рис. 11.18. АЗУ состоит из (М + 1) ячейки, которым присвоены адреса 0, 1, М. АЗУ разделяются на три части: адресное поле АП, рабочее поле РП и управляющее поле УП. В АП хранятся адреса А [0], ... А [Л4 ] слов Р 10], ... ..., Р [Л1 ], размещаемых в РП. В процессе обслуживания память, состоящая из АЗУ и ОП, выполняет следующие операции: 1) чтение слова с адресом А; 363
2) запись слова по адресу А. Операции инициируются управляю- щими сигналами ЧТ и ЗП и выполняются в соответствии с микро- программой (рис. 11.19). Выполнение операции начинается с про- верки наличия в АЗУ слова с адресом А, который поступает с шины А в адресное поле АЗУ (рис. 11.18). В адресном поле знаг чение А сопоставляется с адресами А [0], ..., А 1Л4 ]. Если не- которой ячейке а АЗУ присвоен адрес А [а] = А, то ячейка а подменяет ячейку А оперативной памяти. Наличие в АЗУ слова с адресом А отмечается осведомительным сигналом А £ АП. В АП определяется адрес а ячейки АЗУ, к которой происходит Рис. 11.18. Схема включения ассоциативного ЗУ в ка- честве буфера обращение с целью: записи или чтения слова Р, хранимого на итоговом регистре РАУ. При записи выполняется передача Р [а] : = Р и при чтении Р : = Р 1а] (рис. 11.19). Если слово с адресом А отсутствует в АЗУ, то сигнал А £АП имеет нулевое значение. В этой ситуации необходимо освободить одну ячейку АЗУ для размещения в ней нового слова, активизируемого в дан- ный момент времени. Освобождение некоторой ячейки а АЗУ вы- полняется путем передачи слова Р [у 1 в ячейку А [а 1 ОП. При записи результата слово Р помещается в ячейку у АЗУ. При этом выполняются передачи А ]у]: = А и Р [у ] : = Р. При чтении операнда производится обращение к ячейке А ОП. Выбранное слово передается на регистр Р и загружается в ячейку у АЗУ. Адрес у назначается управляющим полем АЗУ. Таким образом, в АЗУ должны выполняться следующие дей- ствия: 1) хранение адресов А [0], ..., А [Л1 ] и слов Р 10], ... ..., Р [М ]; 2) сравнение адреса А с адресами А [0], ..., А [М] с с целью определения ячейки а, содержащей слово с адресом А [а] = А; 3) формирование сигнала А £ АП, отмечающего на- личие в АЗУ слова с адресом А; 4) определение адреса у ячейки, из которой с целью разгрузки АЗУ может быть удалено слово; 5) передачи А |у] : = А; Р [р ] : = X; Y : = Р ](3 ]; А : = = А [у], где Р = а или у; X и V —входная и выходная шины АЗУ. 364
Указанные функции реализуются схемой на рис. 11.20. При построении данной схемы предполагается, что (М 4- 1) < k < п, По этой причине управляющие сигналы, возбуждающие микро* операции передачи между регистрами А [§], Р [0] и шинами А, X, Y, воздействуют на цепи а и у. Управляющее поле УП в любой момент времени присваивает единичное значение только одному сигналу у0, ..Ум- Если yt = 1, то удалению в ОП подлежит слово, хранимое в ячейке АЗУ. Значение сигнала А £ АП опреде- ляется выражением а0 \/ V «1 V ••• V ам- Управляющее поле на- значает кандидата на уда- ление из АЗУ. Очевидно, что оптимальная стратегия удаления должна состоять в следующем: удалению подлежит слово, которое будет использоваться про- граммой позже, чем лю- бое другое слово из числа хранимых в АЗУ. По- скольку априорная инфор- мация об использовании слов в будущем отсутству- ет, то данная стратегия может только него эталона, с которым сопоставляются рабочие стратегии. В. М. Брябрин показал [13], что слож- ные стратегии, для реали- зации которых требуется значительное количество оборудования, не дают серьезного выигрыша в быстродействии по сравнению с простейшими стратегиями, например удалением наугад. Наиболее просто реализуется стратегия удаления слов наугад, т. е. случайный выбор, распространяющийся с одинаковой веро- ятностью 1/(Л4 + 1) на каждое слово 0, 1, ..., М независимо от интенсивности его использования. Реализация этой стратегии детерминированным способом сводится к последовательному уда- лению слов из ячеек 0, 1, .... М АЗУ и выполняется с помощью сдвигающего регистра (рис. 11.21, а). Перед началом работы ЭВМ на регистр УП заносится унитарный код 10 ... 0, и сигнал у0 принимает значение 1. После удаления из АЗУ очередного слова в УП посылается сигнал ПУ (признак удаления), по которому Рис. 11.19. Микропрограмма обращения к па« мяти, содержащей ассоциативное ЗУ (АЗУ) рассматриваться в качестве идеаль- 365
выполняется микрооперация циклического сдвига вправо. В этом случае единица из разряда у УП переходит в разряд у + 1, чем назначается новый кандидат на удаление, причем единица из раз- ряда М передается в разряд 0. Таким образом, каждое слово пре- бывает в АЗУ в течение (1 -Т М) периода, длительность которого определяется средним промежутком времени между моментами удаления слов. Очевидно, что удаление наугад часто приводит к промахам: может быть удалено активное слово и сохранено в АЗУ слово, потерявшее активность. В результате промахов воз- растает интенсивность обращений к ОП и, следовательно, умень- шается производительность процессора. Рис. 11.20. Структура АЗУ В ряде случаев целесообразно применять более качественную стратегию: удалению подлежит слово, к которому не было ни одного обращения в течение некоторого промежутка времени. Эта стратегия реализуется схемой на рис. 11.21, б. Активность слов 0, 1, .... М отмечается соответствующими разрядами ре- гистра Т: если tt = 0, то слово i считается неактивным, если /, = 1, то слово активно. В начале работы регистр Т приводится в нулевое состояние. При обращении к i-й ячейке АЗУ форми- руется сигнал 6,, который устанавливает в состояние 1. Обра- щение к ячейке может происходить в следующих случаях: 1) при загрузке слова в ячейку i АЗУ; 2) при чтении слова i; 3) при записи слова I. В каждом из этих случаев 6( = 1. Таким образом, если в течение некоторого времени к ячейкам i, /', .... I произошло хотя бы одно обращение, то разряды i, /, ..., I регистра будут при- ведены в состояние 1, а остальные разряды хранят значение 0. Кандидаты на удаление отмечаются разрядами с нулевыми состоя- ниями. Если окажется, что все tt — 1, то формируется сигнал G = = /0, ^i> ...» 1м> переключающий все триггеры в состояние 0. Среди слов, являющихся кандидатами на удаление, единственное 366
слово выделяется избирательной схемой ИС. Эта схема среди множества слов, отмеченных сигналами = 0, выбирает слово с наименьшим номером. Конечно, более корректным был бы слу- чайный выбор слова среди кандидатов на удаление, но такое пра- вило выбора значительно усложняет избирательную схему. Рис. 11.21. Способы по- строения управляющего поля АЗУ Быстродействие ОП с буферным АЗУ будем характеризовать отношением т] = бу/бу, где бу и б0 — затраты времени на обра- щение к памяти при наличии и отсутствии буфера. Пусть за время t выполняется N обращений к памяти. Из микропрограммы (рис. 11.19) видно, что обращение к памяти обслуживается одним из трех способов: 1) простым обращением к АЗУ; 2) сложным обра- щением с целью записи слова, когда выполняется обращение к ОП и затем к АЗУ; 3) сложным обращением с целью чтения слова, когда выполняются два обращения к ОП и затем обращение 367
к АЗУ. Пусть за время t выполняется Nn простых обращений, /V® сложных обращений с целью записи и № сложных обращений с целью чтения. Очевидно, что Если То и Тх —длительность циклов обращения к ОП и АЗУ соответственно, то при отсутствии буфера N обращений выпол- няется за время Фо — NT0, и при наличии буфера — за время m + (То 4- Tl) № + (2То + ТО №. Откуда получим „ - А _ Ll । ( 1 । \ Л . ( о i 5L 51 То N + \1 + Го М + Та ) N ’ Обозначим: А = N„/N-, В = NI/N-, С = N'/N. (П.7) При t -+ оо значения ?А, В и С определяют вероятности каждого из трех способов обращения к памяти, причем А — 1 — (S + С). Рис. 11.22. Зависимость параме- тра е от емкости АЗУ Обозначая через то = Тх1Та от- ношение длительностей циклов АЗУ и ОП, выражение (11.7) мож- но представить в следующем виде: Т]=т]1/1 + (1 + т|1) 71 4~ (2 4~ ЛО = = Л1 + (71 4~ 2С) = "Hi + в, (И.8) где е = В 4- 2С. Коэффициент в зависит от способа использова- ния АЗУ, в частности от способа назначения слов на удаление, и от продолжительности пребывания слов в АЗУ, которая зависит от емкости АЗУ. Коэффициент 8 можно рассматривать как органи- зационный параметр АЗУ. Зависимость е — f (Е), где Е—ем- кость АЗУ, определенная методом статистического моделирова- ния, изображена на рис. 11.22. Кривая соответствует АЗУ, функ- ционирующему по микропрограмме (рис. 11.19), когда занесение в АЗУ производится как при записи, так и чтении слова. Кривая /2 определяет значение параметра 8, если в АЗУ помещаются только результаты операций. Из рис. 11.22 следует, что наиболее выгодно использовать АЗУ емкостью Е — 16-?-32 слова. При этом коэффи- циент е принимает значение 0,3—0,08. Аналитические оценки эффективности буферных АЗУ при- ведены в [131. SG8
11.6. Организация виртуальной памяти Для размещения информации, относящейся к решаемой задаче, отводится ограниченная область ОП, размер которой при одно- программном режиме работы равен емкости ОП, а при мультипро- граммном режиме составляет 1/4—1/32 от этой емкости. В зависи- мости от количества информации, составляющей задачу, и вели- чины области ОП, отводимой для ее размещения, задача может размещаться в ОП одним из следующих способов: 1) полное раз- мещение программы и данных; 2) полное размещение программы и частичное —данных; 3) частичное размещение программы и полное —данных; 4) частичное размещение программы и дан- ных. Первая ситуация возможна только для коротких задач и встречается достаточно редко.Типичной является ситуация, когда только часть информации размещается в ОП, а остальная инфор- мация хранится на ВЗУ. Таким образом, программист имеет дело с многоуровневой памятью и, планируя процесс решения за- дачи, включает в программу операции, вызывающие обмен инфор- мацией между уровнями памяти. Эти операторы интерпретируются системой управления данными, которая генерирует необходимые последовательности команд ввода—вывода. Даже при наличии систем автоматизации программирования и хорошо организованных систем управления данными программи- рование задач, использующих многоуровневую память, отли- чается сложностью и требует от исполнителей высокой квалифи- кации. Тем более сложными являются процедуры обмена информа- цией между уровнями памяти, необходимые для организации муль- типрограммной работы ЭВМ, особенно в режиме разделения вре- мени. Требование сокращения сроков программирования задач не позволяет программистам тщательно спланировать распределе- ние информации по уровням памяти, что приводит к увеличению затрат машинного времени на решение задач. К тому же априор- ная информация о частоте использования сегментов программы и данных в процессе счета является крайне приближенной и из-за многообразия путей на вычислительном процессе с трудом под- дается уточнению. В связи с этим всякое априорное планирование обмена информацией в многоуровневой памяти, которым зани- мается программист, не может быть оптимальным для любой реа- лизации задачи и, следовательно, не способствует снижению за- трат на решение задач. Указанная ситуация является терпимой при эксплуатации ма- лых и средних ЭВМ, поскольку издержки из-за неоптимальности процессов обмена информацией в памяти имеют небольшие по абсолютной величине значения. Для больших ЭВМ эти издержки становятся значительными, что приводит к необходимости автома- тизации работы с многоуровневой памятью. 369
Концепция виртуальной памяти. Автоматическое (не преду- сматриваемое программой) планирование передач информации в многоуровневой памяти основывается на построении виртуаль- ной (фиктивной, кажущейся) одноуровневой памяти. При этом местом хранения информации является совокупность оператив- ных и внешних ЗУ с суммарной емкостью Е, достаточной для хра- нения слов с адресами 0, !,...,£ — 1. Совокупность адресов О, !,...,£ — 1, посредством которых нумеруются слова инфор- мации, рассматривается в функциональном отношении как вир- туальная память. В терминах виртуальных адресов 0, 1, Е — 1 программируется процесс решения задачи. При этом команды ссылаются на виртуальные адреса в предположении, что слово, идентифицированное любым виртуальным адре- сом, является доступным для процессора. Таким образом, для программиста создается одноуровневая память емкостью Е слов. Предположение о равнодоступности Е слов информации должно быть физически реализовано путем встраивания в ЭВМ средств, обеспечивающих, во-первых, преобразование виртуальных адре- сов в адреса ячеек, в которых хранятся виртуально адресуемые слова, и, во-вторых, передачу слов информации в ОП, если адре- суемое слово на момент обращения к нему размещается вне ОП. Таким образом, в физическом отношении виртуальная память — это совокупность оперативных и внешних ЗУ, охваченных сред- ствами преобразования виртуальных адресов в физические адреса ячеек и средствами, автоматизирующими перемещение информа- ции между устройствами памяти. Процессы преобразования адресов и перемещения информа- ции наиболее просто реализуются при страничной адресации па- мяти. Метод страничной адресации состоит в следующем. Мно- жество адресов (слов, ячеек) разделяется на сегменты, состоящие из 2А соседних адресов и называемые страницами. Так, адреса О, 1, .... 2k — 1 относятся к странице 0, адреса 2к, 2* + 1, ... ..., 2'2к — 1 — к странице 1 и т. д. В результате этого адрес рассма- тривается как совокупность двух полей 1 т Р А 1 /1 k (11.9) Здесь Р — адрес страницы; А —адрес слова (ячейки) в странице Р. Применительно к виртуальной памяти выделяются два типа адресов: виртуальные и физические. Виртуальный адрес—это адрес, которым идентифицируется некоторое слово в про- грамме. Виртуальный адрес имеет структуру (11.9). Физический адрес — это адрес ячейки памяти. Физические адреса имеют структуру, сов- 370
падающую с (11.9), по поля адреса идентифицируются следующим образом: 1 т S А 1 /1 k Здесь S —адрес сегмента, состоящего из 2к соседних ячеек; Л — адрес ячейки в сегменте S. Таким образом, страница есть сово- купность из 2* слов информации, а сегмент — совокупность из 2к ячеек, являющихся местом хранения страницы. Чаще всего страницы имеют размер 512—1024 слова, но в некоторых случаях возникает необходимость в использовании страниц размером 32— 128 слов. В процессе решения задачи страницы перемещаются между оперативной и внешней памятью. Если вычислительный процесс распределяется на страницу Р, то она вызывается в ОП. Когда надобность в информации, заключенной в странице Р, отпадает, она удаляется из ОП в ВП, освобождая место для других страниц. В результате перемещения страница Р может быть помещена в лю- бой сегмент памяти. Текущее состояние памяти ЭВМ характеризуется таблицей страниц, структура которой приведена в табл. 11.5. Отдельной странице Р = 0, 1, ..., М соответствует одна строка таблицы, в которой указываются параметры, характеризующие страницу Р. Значение Sp определяет адрес сегмента SP = 0, 1, ..., М, в ко- тором размещается страница Р, иначе говоря, физический адрес страницы Р. Бит dP называется признаком доступности стра- ницы Р. Если страница Р размещается в ОП, то dp = 1, поскольку эта страница доступна для процессора. Если страница Р хра- нится в ВЗУ, то бит доступности равен 0. Параметры Тр и Фр Таблица 11.5 Пример таблицы страниц Sv d0 To Фо Sj di Л 01 . . . . . . SP dp tp Op . .• . . . . ft. £ TM 37 1
характеризуют степень активности страницы в процессе вычисле- ний. Смысл этих параметров будет определен ниже. Таблица страниц размещается в ОП и в любое время доступна процес- сору. Порядок использования таблицы страниц иллюстрируется рис. 11.23. В данном случае виртуальная память имеет емкость 576 страниц, которые могут размещаться в 64 сегментах ОП и на магнитных дисках МД1 и МД2 емкостью по 256 страниц. Каждой странице 0, 1, .... 576 соответствует сегмент, адрес которого опре- Рис. 11.23. Соответствие между страницами и сег- ментами делен в таблице страниц, и, следовательно, каждому слову при- своен свой физический адрес. Естественно, что любое перемещение страницы сопровождается корректировкой ее физического адреса в таблице страниц. Способы преобразования виртуальных адресов. Команды и слова данных идентифицируются в программе своими виртуаль- ными адресами. Для обращения к слову необходимо преобразовать виртуальный адрес в физический, для чего в процессор встраи- вается схема преобразования адресов. Наиболее простая схема преобразования адресов изображена на рис. 11.24. Виртуальный адрес В А слова определяется путем обработки относительного адреса, указанного в команде. Для нахождения адреса ячейки, в которой хранится слово, произво- дится обращение к ячейке (В + Р) оперативной памяти, где В — фиксированный базовый адрес таблицы страниц, и выбираются значения sp и dp, описывающие страницу Р. Если dp = 0, то в дан- ный момент времени страница Р недопустима для обработки. По этой причине работа процессора прерывается через систему преры- вания и управление передается средствам перемещения страниц. 372
Если dp = 1, то s : = sp и производится обращение к ячейке $.Д оперативной памяти. Указанный способ преобразования адресов требует для своей реализации незначительного количества оборудования, но при- водит к увеличению затрат времени на обработку команд. Действи- тельно, каждое обращение к слову требует дополнительного обра- щения к памяти с целью выборки информации из таблицы страниц, в результате чего быстродействие ЭВМ уменьшается примерно в два раза. Затраты времени на преобразование адресов мож- но снизить, если использовать для хранения таблицы страниц отдельное ЗУ, которое при ма- лой емкости будет иметь высо- кое быстродействие, в три — восемь раз больше быстродей- ствия ОП. Если количество страниц, отводимых задаче в ОП, неве- лико (порядка 8—32), то для хранения описаний страниц, размещаемых в ОП, может ис- пользоваться система регист- ров (рис. 11.25). Регистры Ро>... . . ., Рм приписаны сегментам О, ..., М оперативной памяти. Рис. 11.24. Преобразование виртуаль- ных адресов путем обращения к таб- лице страниц Перед началом решения задачи в регистры загружаются адреса страниц Ро, .... Рм, размещен- ных в сегментах 0, ..., М опе- ративной памяти. Виртуальный адрес ВА определяет страни- цу Р. Адрес страницы поступает на схемы сравнения СР, в ко- торых он сопоставляется с адресами Ро, ..., Рм страниц, храни- мых в ОП. Если Р = Ps, то на выходе схемы сравнения форми- руется сигнал as. Множество сигналов а0, .... ам, представляю- щих адреса 0, ..., М блоков в унитарном коде, преобразуется в двоичной позиционный код S, на основе которого формируется физический адрес S.A слова. Если число сегментов, отводимых задаче в ОП, достаточно ве- лико, то схема преобразования виртуальных адресов строится на основе АЗУ (рис. 11.26). В ячейках а = 0, 1, .... т АЗУ раз- мещаются описания страниц Ро, Plt .... Рт, хранимых в ОП. Виртуальные адреса Р9, .... Рт размещены в адресном поле АП. В рабочем поле РП представлены физические адреса So, .... Sm этих страниц, причем все Sa £ ОП. Управляющее поле УП со- стоит из признаков занятости г0, ..., гт ячеек 0....т АЗУ и признаков активности t0, ..., tm этих ячеек. Бит za = 0, если ячейка а АЗУ свободна (не содержит описания страницы), 373
и za = 1, если описание некоторой страницы загружено в ячейку а. Смысл признаков t0 описан в п. 11.5. По-прежнему предполагается, что таблица страниц хранится в ОП. Преобразование виртуаль- ного адреса В А в физический адрес ФА выполняется в соответствии с микропрограммой рис. 11.27. Преобразование начинается с про- верки наличия в АЗУ описания страницы Р. Если Р £ АП, то преобразование сводится к выборке физического адреса Sa из ячейки а АЗУ, в которой размещается Ра = Р. В противном случае местоположение страницы Р определяется обращением к таблице страниц, из которой выбирается физический адрес и признак доступности dP страницы Р. Если dP — 1, то стра- ница Р доступна и ее описание заносится в ячейку у АЗУ, вы- деляемую управляющим полем УП. Ячейка у назначается из числа свободных ячеек, отмеченных признаками zy = 0, а когда все ячейки заняты, — из числа ячеек с признаком активности tv = 0. Заметим, что в данном случае информация, хранимая в ячейке у, просто затирается описанием страницы, поскольку копия уничто- женного в АЗУ описания имеется в таблице страниц. Емкость АЗУ выбирается исходя из предельно допустимой вероятности обра- щения к таблице страниц и зависит от количества страниц, отво- димых задаче в ОП. Вероятность обращения к таблице страниц уменьшается с увеличением емкости АЗУ и возрастает при уве- личении числа страниц, принадлежащих обрабатываемой задаче. Обычно АЗУ обслуживает не менее 90% обращений к таблице стра- ниц, и, следовательно, затраты времени на преобразование вирту- альных адресов определяются быстродействием АЗУ. Процедура передачи страниц в виртуальной памяти. При ча- стичном размещении информации, относящейся к решаемой за- даче, программа может обратиться к странице, находящейся во внешней памяти. Эта ситуация выявляется схемой преобразова- ния виртуальных адресов, которая формирует сигнал прерыва- 374
ния, в результате чего выполнение программы прерывается и управление передается супервизору, который инициирует про- грамму передачи страниц. Будем предполагать, что в ОП имеется свободный сегмент So, предназначенный для размещения очеред- ной страницы Р, затребованной процессором. Передача страницы Р в ОП сводится к выполнению следующих действий. 1. Обращением к таблице страниц определяется адрес сег- мента SP, в котором размещается страница Р. Код SP декодируется с целью определения адреса Y внешнего ЗУ и идентификатора записи Z (адресов цилиндра и дорожки и номера записи), соответствующих сег- менту SP. Рис. 11.27. Микропрограмма преобразования виртуаль- ных адресов с использова- нием АЗУ Рис. 11.26. Преобразование виртуальных адре- сов с использованием АЗУ 2. Супервизор генерирует совокупность команд, предписываю- щих передачу записи Z из внешнего устройства Y в сегмент Sc. 3. КВВ и устройство Y исполняют заданную программу чте- ния, в результате чего страница Р перемещается в сегмент Sc ОП. 4. В простейших системах сегмент SP, из которого считана страница, рассматривается как свободный и заносится в список свободных сегментов ВП. 5. Корректируется таблица страниц: SP : = Sc и dP : = 1. 6. С целью разгрузки ОП отыскивается страница Руд С ОП, подлежащая удалению из ОП, и определяется сегмент 5УД С ОП, в котором она размещается. 7. Путем анализа списка свободных сегментов ВП выделяется сегмент Звн. 8. Супервизор генерирует совокупность команд, предписываю- щих передачу информации из сегмента 5уд в устройство Y, яв- ляющееся местом хранения сегмента SBH. 9. Сегмент SBH исключается из списка свободных сегментов внешней памяти. 375
Пм Рис. 11.28. Порядок прохождения заявок на передачу страниц 10. КВВ и ВЗУ У исполняют заданную программу записи, в результате чего страница из сегмента 5уд перемещается в сег- мент S,.H. 11. Корректируется таблица страниц: : = SBH и d,: = 0, где i = Рул. 12. Сегмент 5уд ОП считается свободным и Sc: = 5уд. Перечисленные действия, кроме 6 и 7, программируются оче- видным образом. Поскольку системы с виртуальной памятью ра- ботают в мультипрограммном режиме, то образуются очереди заявок, которые взаимодействуют между собой по схеме на рис. 11.28. Заявки генерируются системой процессор —оператив- ная память (П—ОП) и обслу- живаются каналами Kj,... ..., Км, к которым подсоеди- няются ВЗУ, охваченные си- стемой виртуальной адреса- ции. В очереди Оп находится задач, готовых к обработ- ке. Для этих задач в ОП, имеется необходимая инфор- мация, и задачи ожидают момента освобождения процессора (П). Одна задача из очереди Оп находится в состоянии счета, т. е. обрабатывается процессором. Если эта задача прерывается из-за отсутствия информации в ОП, то генерируется заявка на передачу страницы и задача становится в очередь О, к одному из каналов К,-. После загрузки в ОП страницы, затребованной программой, эта программа становится в очередь О„. Таким образом, процедура передачи страниц между ЗУ вир- туальной памяти расчленяется на три процесса: 1) формирование заявок на вызов страниц из ВЗУ в ОП; 2) корректировка таблицы страниц и постановка задач в оче- редь к процессору после обслуживания каналом очередной за- явки; 3) удаление страниц из ОП с целью освобождения сегментов для вызываемых страниц. Каждый из этих процессоров реализуется программой, со- ставляющей часть супервизора памяти. Программы передачи стра- ниц взаимодействуют с супервизором ввода—вывода, который обрабатывает заявки из очередей Olt .... Ом и на основе этой ин- формации управляет работой КВВ. Назначение страниц для удаления из оперативной памяти. Идеальная стратегия назначения страницы на удаление состоит в следующем: удалению из ОП подлежит страница, обращение к которой произойдет позже, чем к любой другой странице. Эта стратегия предполагает наличие сведений о порядке использова- ния страниц информации в будущем, что возможно только в редких случаях. В типичном случае мы не располагаем априорными све- 376
дениями и, следовательно, должны планировать вывод страниц из ОП, основываясь на сведениях о поведении страниц в прошлом и аппроксимируя эти сведения на последующие моменты времени. Качество любой реальной стратегии можно характеризовать веро- ятностью правильного выбора, т. е. такого выбора, который вытекает из идеальной стратегии. Низкое качество рабочей стра- тегии проявляется в частых промахах при удалении страниц, в результате чего возрастает интенсивность потока информации между ОП и ВП и падает производительность ЭВМ. Наиболее широко используются следующие стратегии назна- чения страниц на удаление, которые перечисляются в порядке возрастания их качества. 1. Удаление по времени пребывания в оперативной памяти. Удаляется страница, которая была загружена в ОП раньше, чем все остальные страницы. Очевидна некорректность такого выбора! может быть удалена страница, которая наиболее интенсивно и даже постоянно используется в процессе решения задачи. 2. Удаление по признаку неиспользования. Удаляется стра- ница, к которой не было ни одного обращения в течение задан- ного интервала времени. Если таких страниц несколько, то кан- дидат на удаление выбирается среди них по времени пребыва- ния в ОП. Признаки неиспользования или активности страниц вырабатываются следующим образом. Каждому сегменту ОП, при- надлежащему задаче, ставится в соответствие триггер активности, который устанавливается в состояние 1, если происходит обраще* вие к сегменту. В момент переключения всех триггеров в состоя- ние 1 производится повторная установка регистра в состояние 0. Если на момент выбора страницы для удаления некоторый триг- гер находится в состоянии 0, то страница, хранимая в соответству- ющем сегменте, считается неиспользуемой. Заметим, что сам при- знак неиспользования не является абсолютно достоверным, из-за чего могут иметь место промахи, но менее серьезные, чем при ис- пользовании стратегии 2. 3. Удаление по времени неиспользования. Удаляется страница, последнее обращение к которой произошло раньше, чем к любой другой странице. Если несколько страниц характеризуется оди- наковым временем неиспользования, то удаляется страница с мень- шим виртуальным адресом. Последнее условие выбора основы- вается на тенденции распространения вычислительного процесса от начала в конец программы, т. е. от страниц с меньшими адре- сами к страницам с большими адресами. Для применения ука- занной стратегии необходимо вычислять значения Т t, Т.г, ..., Тт, характеризующие времена неиспользования страниц, размещен- ных в ОП. Времена неиспользования вычисляются по признакам неиспользования, которые соответствуют состояниям триггеров, фиксирующих обращения к сегментам ОП. Для наблюдения от- водятся интервалы времени, в течение которых процессор выпол- няет R команд. В начале интервала триггеры устанавливаются 377
в состояние 0. После выполнения /? команд происходит прерыва- ние, и управление передается программе начисления времени не- использования. Программа считывает состояния триггеров. Если триггер S находился в состоянии 1, странице Р, хранимой в сег- менте S, присваивается значение ТР — 0; если триггер находился в состоянии 0, то время неиспользования увеличивается на еди- ницу Тр : = ТР + 1. Данная стратегия качественнее стратегии 2, но все-таки она далека от идеальной. Для вычислительных процессов характерен циклический характер развития действий, порождающий перио- дичность использования страниц. Если страница не использовалась доста- точно долго, то она воз- можно исчерпала период своего неиспользования и будет активизирована в ближайшем будущем. 4. Удаление по вероят- ности использования. Если задача решается за вре- мя Т и при этом страни- ца Р активна в течение времени ТР то говорят, что эта страница исполь- зуется с вероятностью qp = Тр/Т. Принимается Таблица 11.6 Упорядочивание страниц в соответствии с вероятностями их использования Время Признаки актив- ности страниц 1. 2, 3, 4, 5, 6 Список страниц 0 0 0 0 0 0 0 1, 2, 3, 4, 5, 6 1 1 10 10 0 1, 2, 4, 3, 5, 6 2 10 110 0 1, 4, 3, 2, 5, 6 3 0 10 0 10 2, 5, 1, 4, 3, 6 4 1110 10 2, 5, 1, 3, 4, 6 5 10 0 10 1 1, 4, 6, 2, 5, 3 6 110 10 0 1, 4, 2, 6, 5, 3 7 10 10 10 1, 3, 5, 4, 2, 6 следующая стратегия удалений: удаляется страница Р, име- ющая наименьшую вероятность использования. Вероятности qp учитываются следующим приближенным способом. С использо- ванием триггеров устанавливается активность страниц за время выполнения R команд. Все активные страницы перемещаются в начало списка страниц, хранимых в ОП. Процесс пере- упорядочивания списка иллюстрируется табл. 11.6. Можно показать, что в результате многократной пересортировки страницы будут следовать в списке в порядке убывания вероят- ностей их использования. Удалению подлежит страница замы- кающая список. Так, на момент времени 4 должна удаляться стра- ница 6, а на момент 5 — страница 3. Данная стратегия имеет удовлетворительное качество, но на процесс переупорядочивания списка страниц тратится заметная доля времени процессора.
СПИСОК ЛИТЕРАТУРЫ 1. Айлиф Дж. Принципы построения базовой машины. Пер. с англ. М., Мир, 1973. 120 с. 2. Алексенко А. Г. Основы микросхемотехники. М., Сов. радио, 1976. 408 с. 3. Апериодические автоматы. Под ред. В. И. Варшавского. М., Наука, 1976. 424 с. 4. Атстопас Ф. Ф., Жинтелис Г. Б. Сравнительный анализ искусственных языков, ориентированных к применению в системе автоматизированного струк- турного синтеза ЦВМ. —«Вычислительная техника. Материалы секции вы- числительной техники XXI республ. научно-техн, конференции Литовской ССР», т. 2, Каунасский политехи, ин-т, 1971, с. 320—329. 5. Атстопас Ф. Ф., Жинтелис Г. Б., Хомкис Р. Р. Входной язык для авто- матического структурного синтеза ЦВМ. — «Вычислительная техника. Мате- риалы XX юбилейной научно-техн, конференции Литовской ССР», т. 1, Каунас- ский политехи, ин-т, 1970, с. 34—48. 6. Баранов С. И. Синтез микропрограммных автоматов. Л., Энергия, 1974. 216 с. 7. Баранов С. И. Автоматы на матрицах. — Сб.: «Оптимизация в проекти- ровании дискретных устройств», ЛДНТП, 1976, с. 5—26. 8. Баранов С. И., Зимин В. Ф. Способ объединения структурных схем опе- рационных автоматов. — «Автоматика и вычислительная техника», 1978, № 2, с. 1—6. 9. Баранов С. И., Марин А. В. Языки микропрограммирования. — «Зару- бежная радиоэлектроника», 1977, № 6, с. 85—102. 10. Башлаков Е. П. Абстрактный синтез многорегистровых автоматов по микропрограммам. — «Кибернетика», 1972, № 2, с. 17—19. 11. Беляев А. К. Базовая система микроопераций и ее применение. — «Ки- бернетика», 1972, № 2, с. 71—76. 12. Беркс А., Голдстейн Г., Нейман Дж. Предварительное рассмотрение логической конструкции электронного вычислительного устройства. — «Кибер- нетический сборник», вып. 9, М., Мир, 1964, с. 7—67. 13. Брябрин В. М. Моделирование системы памяти, включающей буферное ассоциативное запоминающее устройство. — «Труды семинара отдела структур- ных и логических схем», № 4, М., ИТМ и ВТ АН СССР, 1965, с. 13—57. 14. Букреев И. Н., Мансуров Б. М., Горячев В. И. Микроэлектронные схемы цифровых устройств. Изд. 2-е. М., Сов. радио, 1975. 368 с. 15. Булей Г. Микропрограммирование. Пер. с франц. М., Мир, 1973. 128 с. 16. Вальков В. М., Ильюшенко Ю. М. Цифровые интегральные схемы, микропроцессоры и микро-ЭВМ. М., Сов. радио, 1977. 104 с. 17. Вычислительные машины с развитыми системами интерпретации. Киев, Наукова думка, 1970. 440 с. 18. Вычислительная система IBM/360. Принципы работы. Пер. с англ. М., Сов. радио, 1969. 440 с. 19. Гаврилов Ю. В., Пучко А. Н. Арифметические устройства быстродей- ствующих ЭЦВМ. М., Сов. радио, 1970. 280 с. 20. Глушков В. М. Два универсальных критерия эффективности вычисли- тельных машин. — «Доклады АН УССР», 1960, № 1, с. 25—31. 21. Глушков В. М. Теория автоматов и вопросы проектирования структур цифровых устройств. — «Кибернетика», 1965, № 1, с. 3—11. 379
22. Глушков В. М., Капитонова Ю. В., Летичевский А. А. О языках описа- ния данных в автоматизированной системе проектирования вычислительных машин (ПРОЕКТ). — «Кибернетика», 1970, № 6, с. 3—16. 23. Глушков В. М., Цейтлин Г. Е., Ющенко Е. Л. Алгебра, языки, програм- мирование. Киев, Наукова думка, 1974 . 328 с. 24. Глушков В. М. Синтез цифровых автоматов. М., Физматгиз, 1962. 476 с, 25. Голукков Ю. В. Алгоритмическая полнота и сложность микропрограмм. — «Кибернетика», 1977, № 3, с. 1—15. 26. Горбатов В. А. Схемы управления ЦВМ и графы. М., Энергия, 1970. 152 с. 27. Гороховский С. С., Хлебников А. И. Об одной методике синтеза опера- ционного блока. — «Кибернетика», 1971, № 5, с. 18—22. 28. Гусак Г. М. О влиянии адресности на скорость работы вычислительной машины. — «Известия АН СССР. Серия физико-математических наук», 1965, № 2, с. 41—42. 29. Дал У., Дейкстра Э., Хсор К. Структурное программирование. Пер. с англ. М., Мир, 1975. 247 с. 30. Дроздов Е. А., Комарницкий В. А., Пятибратов А. П. Электронные вычислительные машины единой системы. М., Машиностроение, 1976. 668 с. 31. Ершов А. П. Введение в теоретическое программирование. М., Наука, 1977. 288 с. 32. Закревский А. Д. Алгоритмы синтеза дискретных автоматов. М., Наука, 1971. 512 с. 33. Запоминающие устройства современных ЭЦВМ. Сб. статей. Пер. с англ. Под ред. А. А. Крупского М., Мир, 1968. 446 с. 34. Каган Б. М., Каневский М. М. Цифровые вычислительные машины и системы. Изд. 2-е. М., Энергия, 1973 . 680 с. 35. Карцев А. А. Арифметика цифровых машин. М., Наука, 1969. 576 с. 36. Касаткин В. Н. Семь задач по кибернетике. Киев, Вища школа, 1975. 96 с. 37. Коршунов Ю. М., Корячко В. П. О выборе оптимальной структуры опе- рационных автоматов. — В сб.: «Теоретическая кибернетика». Киев, ИК АН УССР, 1971, с. 151—160. 38. Корячко В. П., Коршунов Ю. М. О формальном выборе структуры циф- рового автомата. — В сб. трудов «Теория автоматов и методы формализации синтеза вычислительных машин и систем», вып. 3. Киев, ИК АН УССР, 1968, с. 75-82. 39. Корячко В. П., Коршунов Ю. М. Метод автоматического проектирования операционных автоматов по интегральному критерию. — «Материалы 1 Все- союзной конференции по автоматическим системам проектирования вычисли- тельных машин». Киев, КДНТП, 1970, с. 20—21. 40. Кравцов Л. Я., Черницкий Г. М. Проектирование микропрограммных устройств управления. Л., Энергия, 1976. 152 с. 41. Лазарев В. Г., Пийль Е. И. Синтез управляющих автоматов. М., Энер- гия, 1970. 418 с. 42. Линский В. С. О выборе рационального количества адресов цифровой вычислительной машины. — «Вопросы теории математических машин», сб. 1. М., Физматгиз, 1958, с. 181—191. 43. Лысиков Б. Г. Арифметические и логические основы ЭЦВМ. Минск, Высшая школа, 1974 . 262 с. 44. Малиновский Б. Н., Паленин А. В., Иванов В. А. Архитектура и струк- тура современных мини-ЭВМ. Основные задачи проектирования. — «Управляю- щие системы и машины», 1975, № 5, с. 71—80. 45. Майоров С. А., Новиков Г. И. Малогабаритные вычислительные машины. Проектирование цифровых управляющих систем. Л., Машиностроение, 1967. 236 с. 46. Майоров С. А., Новиков Г. И. Принципы организации цифровых машин. Л., Машиностроение, 1974 432 с. 47. Месарович М., Мако Д., Такахара И. Теория иерархических многоуров- невых систем. Пер. с англ. М., Мир, 1973. 168 с. 380
48. Миллер Р. Теория переключательных схем. Т. 1. Комбинационные схемы. Пер. с англ. М., Мир, 1970. 416 с. 49. Мухопад Ю. Ф. Автоматные модели вычислительных устройств. —В сб.| «Вычислительная техника», вып. 2. Л., Энергия, 1971, с. 12—21. 50. Мухопад Ю. Ф. Методика структурного проектирования специализиро- ванных вычислительных устройств. — «Вычислительные системы», вып. 46. Новосибирск, Наука, 1971, с. 51—64. 51. Никитин А. С. Оптимальное распределение и выбор числа регистров ЭЦВМ с помощью целочисленного программирования. — В сб.: «Вопросы теоре- тической кибернетики». Киев, ИК АН УССР, 1965, с. 47—54. 52. Новиков Г. И. Минимизация затрат на адресацию микрокоманд путем сегментации адресов. — «Известия вузов СССР. Приборостроение», 1974, № 1, с. 71—73. 53. Новиков Г. И. Оценка эффективности параллельной выборки микро- команд. — «Известия вузов СССР». Приборостроение, 1974, № 4, с. 60—64. 54. Новиков Г. И. Об иерархии систем микроопераций и логических усло- вий. — В сб.: «Оптимизация в проектировании дискретных устройств». ЛДНТП, 1976, с. 70-84. 55. Новиков Г. И. О структурной организации операционных автоматов. — «Управляющие системы и машины», 1977, № 2, с. 68—73. 56. Овсепян Г. Е., Оганян Г. А. Программируемые логические матрицы в электронных вычислительных машинах. — «Управляющие системы и ма- шины», 1976, № 1, с. 46—48. 57. Оганян Г. А., Сулим М. К. Оценка эффективности многоступенчатых микропрограммных устройств управления ЦВМ. — «Вопросы радиоэлектро- ники. Электронная вычислительная техника», 1972, вып. 7, с. 12—18. 58. Основы теории вычислительных систем. Под ред. С. А. Майорова. М., Высшая школа, 1978. 408 с. 59. Пискунов С. В., Сергеев С. Н., Сидристый Б. А. Язык для описания алгоритмов функционирования ЦВМ. — «Вычислительные системы», вып. 34, Новосибирск, Наука, 1969, с. 5—18. 60. Поспелов Д. А. Логические методы анализа и синтеза схем. М., Энергия, 1964 . 328 с. 61. Потемкин И. С. Функциональные узлы на потенциальных элементах. М., Энергия, 1976. 104 с. 62. Принципы работы системы IBM/370. Пер. с англ. М., Мир, 1975. 576 С. 63. Проектирование сверхбыстродействующих систем. Под ред. В. Бух- гольца. Пер. с англ. М., Мир, 1965. 440 с. 64. Рабинович 3. Л. Элементарные операции в вычислительных машинах. Киев, Техника, 1966. 303 с. 65. Самофалов К. Г., Корнейчук В. И., Тарасенко В. П. Электронные циф- ровые вычислительные машины. Киев, Вища школа, 1976. 480 с. 66. Система документации единой системы ЭВМ. Под ред. А. М. Ларионова. М., Статистика, 1975. 326 с. 67. Система ИБМ/360. Введение в запоминающие устройства с прямым доступом и методы организации данных. Пер. с англ. М., Статистика, 1974. 128 с. 68. Смирнов Г. Д., Пыхтин В. Я., Веселовский Г. Г. Сравнение «жесткого» и микропрограммного принципов управления ЭЦВМ. — «Известия вузов СССР. Электромеханика», 1966, № 10, с. 1045—1051. 69. Соучек Б. Мини-ЭВМ в системах обработки информации. Пер. с англ. М., Мир, 1976. 520 с. 70. Флорес А. Организация вычислительынх машин. Пер. с англ. М., Мир, 1972. 428 с. 71. Хассон С. Микропрограммное управление. Пер. с англ. М., Мир, т. 1, 1973, 240 с.; т. 2, 1974, 478 с. 72. Чу Я. Организация ЭВМ и микропрограммирование. Пер. с англ. М., Мир, 1975 592 с. 73. Knight К. Е. Changes in computer performance. — «Datamation», vol. 12, 1966, No 9, p. 40—42, 45—51, 54.
ОГЛАВЛЕНИЕ Введение —г.......... г . . :::::<wi44W 5 Глава 1. Принципы построения и функционирования ЭВМ...... 10 ''ХЛ. Основные факторы, влияющие на принципы построения ЭВМ — /1.2. Принцип программного управления................. 11 /.3. Состав и порядок функционирования ЭВМ ........... 15 /.4. Организация машинной памяти...................... 17 /1.5. Основные характеристики ЭВМ..................... 21 4,1.6. Классификация ЭВМ.............................. 29 X 1.7. Критерии эффективности ЭВМ .................... 34 \д1.8. Номенклатура ЭВМ ............................. 37 Глава 2. Функциональная организация ЭВМ ......................... 41 /2.1. Понятие функциональной организации ЭВМ................... — /2.2. Машинные элементы информации........................... 42 2.3. Представление данных в ЭВМ ......................... - 2.4. Машинные операции..................................... 53 0*2.5. Способы адресации информации........................... 60 /2.6. Форматы команд.......................................... 70 X 2.7. Функциональная организация ЭВМ общего назначения ... 75 >2.8. Функциональная организация мини-ЭВМ.................... 85 Глава 3. Функциональная организация мультипрограммных ЭВМ 91 3.1. Режимы работы ЭВМ ...................................... — 3.2. Средства мультипрограммирования........................ 96 3.3. Функции управляющих программ........................ 3.4. Привилегированные операции и состояния процессора . . . 100 I 3.5 Организация прерывания программ....................... 101 'J 3.6 Средства защиты памяти................................. 108 Глава 4. Принципы структурной организации ЭВМ ....................... 111 4.1. Понятие структурной организации ЭВМ ....................... — 4.2. Классы устройств ЭВМ....................................... — 4.3 Концепция интерфейса...................................... 114 4.4. Концепция единого интерфейса и канала ввода—вывода. . . 115 4.5. Структура ЭВМ общего назначения . . ... 119 4.6. Структура мини- и микро-ЭВМ............................. 122 4.7. Состав и характеристики устройств ЭВМ, работающих в реаль- ном масштабе времени....................................... . 124 4.8. Состав и характеристики устройств ЭВМ для пакетной обра- ботки задач................................................. 130 382
Г л а в a 5. Организация ввода—вывода информации................ 133 5.1. Организация ввода—вывода информации в ЭВМ общего на- значения ................................................... — 5.2. Команды ввода—вывода ЭВМ общего назначения .......... 134 5.3. Программы каналов ввода—вывода....................... 136 5.4. Интерфейс ввода—вывода............................... 139 5.5. Операции ввода—вывода в мини-ЭВМ..................... 142 5.6. Команды ввода—вывода и интерфейсы программного обмена и прямого доступа к памяти................................ 143 gf ' 5.7. Единый интерфейс...................................... 148 Глава 6. Принцип микропрограммного управления и структура опе- рационных устройств................................................ 151 6.1. Принцип микропрограммного управления..................... — ^6.2. Концепция операционного и управляющего автоматов .... 152 6.3. Влияние систем микроопераций и логических условий на характеристики операционных устройств ...................... 153 6.4. Задача проектирования операционных устройств и концеп- ция функционального микропрограммирования................... 159 6.5. Язык функционального микропрограммирования (Ф-язык) 160 6.6. Функции операционного и управляющего автоматов .... 175 6.7. Время выполнения микропрограммы........................ 180 Глава 7. Структурная организация операционных автоматов .... 186 7.1. Структурный базис операционных автоматов................. — 7.2. Каноническая структура операционного автомата ......... 193 7.3. Обеспечение устойчивости функционирования операционных автоматов............................—г»т.................... 202 7.4. Эквивалентные микрооперации и обобщенные операторы . . 205 7.5. Структурная организация и синтез 1-автоматов........... 208 7.6. Структурная организация и синтез М-автоматов........... 210 7.7. Структурная организация и синтез 1М-автоматов ......... 222 7.8. Использование запоминающих устройств в памяти автомата и класс S-автоматов ....................................... 229 Г л а в а 8. Операционные элементы................................ 231 8.1. Операционные элементы комбинационного типа............... — 8.2. Формирователи кодов и сдвигатели ..................... 239 8.3. Комбинационные сумматоры............................... 241 8.4. Комбинационные счетчики................................ 250 8.5. Вычисление значений логических условий................. 254 - 8.6. Дешифраторы, шифраторы и преобразователи кодов . . . 257 8.7. Комбинационные схемы на программируемых логических матрицах.................................................... 265 8.8. Операционные элементы накапливающего типа.............. 270 8.9. Сдвигающие регистры.................................... 276 8.10. Накапливающие счетчики................................ 279 8.11. Накапливающие сумматоры .............................. 284 Г л а в а 9. Управляющие автоматы с жесткой логикой ............. 286 9.1. Интерпретация микропрограммы автоматом с памятью ... — 9.2. Принципы структурной организации автоматов ........... 292 9.3. Эффект гонок в автоматах ......................... . 297 9.4. Канонические методы структурного синтеза автоматов .... 302 383
Глава 10. Управляющие автоматы с программируемой логикой. . . 311 <*-^Т0.1. Принцип управления по хранимой микропрограмме .... — (/ 10.2. Кодирование микроопераций............................. 315 •^10.3. Адресация микрокоманд.................................. 321 10.4. Структурные методы повышения быстродействия автоматов 329 10.5. Сравнение характеристик управляющих автоматов с жесткой и программируемой логикой.......................... . г . . • 332 Глава 11. Организация машинной памяти • ......................... 334 s 11.1. Запоминающие устройства.............................. — 11.2. Функции устройств управления внешними ЗУ.............. 343 11.3. Концепция многоуровневой памяти ....••••••• 349 11.4. Организация оперативной памяти....................... 352 </11.5. Буферные (сверхоперативные) запоминающие устройства 358 /11.6. Организация виртуальной памяти ........................ 369 Список литературы...................................... • • • 379 ИБ № 1943 Сергей Александрович МАЙОРОВ Геннадий Иванович НОВИКОВ. СТРУКТУРА ЭЛЕКТРОННЫХ ВЫЧИСЛИТЕЛЬНЫХ МАШИН Редактор Н. А. Жукова Художественный редактор С. С. Венедиктов Технический редактор Л. В. Щетинина Корректор Т Н.Гринчук Обложка художника Я. Д. С о с н ера Сдано в набор 25.12.78. Подписано в печать 04.06.79. М-26302. Формат 60Х 90l/i« Бумага типографская № 1. Гарнитура литературная Печать высокая Усл печ. л. 24,0. Уч.-изд. л 25,84 Тираж 24 000 экз. Зак 1244. Цена 1 р оО к. Ленинградское отделение издательства «МАШИНОСТРОЕ I1ИЕ» 191065, Ленинград, Д-65, ул Дзержинского, 10. Ленинградская типография № 6 Ленинградского производственного объединения «Техническая книга» Союзполиграфпрома при Государственном комитете СССР по делам издательств, полиграфии и книжной торговли 193144, Ленинград, С-144, ул. Моисеенко. 10
у у. в, fVX Л 11л